Вы находитесь на странице: 1из 34

Estructura de Computadores II

Tema 1 Estructuras de interconexin de un computador.


En el nivel jerrquico superior, un computador consta de la UCP, la memoria y la unidad de E/S. Se puede describir un computador si se conoce: 1- La estructura externa de cada componente, es decir, los datos y seales de control que intercambia con otros mdulos. 2- La estructura de interconexin y las ordenes de control que se necesitan para gestionar su utilizacin.

Componentes de un Computador.
La arquitectura Von Newman se fundamenta en tres ideas claves: a- En la memoria del computador se almacenan simultneamente datos e instrucciones. b- Se puede acceder a la informacin contenida en la memoria especificando la direccin donde se encuentra almacenada. La memoria no distingue si lo que contiene es un dato o una instruccin. c- La ejecucin de un programa se realiza de forma secuencial de una instruccin a la que le sigue, al no ser que se modifique la frecuencia con una ruptura. Con esta filosofa se pueden plantear dos procedimientos de construccin, en primer lugar se puede disear un sistema a medida, la alternativa consiste en considerar una configuracin de mdulos aritmticos y lgicos de propsito general. Los componentes bsicos del sistema son: 1- Interprete de instrucciones: Unidad de Control. 2- Mdulo de funciones lgicas y aritmticas de propsito general: Unidad Aritmtico Lgica. Estas unidades constituyen la Unidad Central de Proceso. Para que el computador pueda funcionar necesita algunos componentes adicionales. La unidad de entrada/salida para la conexin con el exterior; y la unidad de memoria para el almacenamiento de datos. En su modo de funcionamiento normal es la UCP quien tiene el control del computador y opera intercambiando con la memoria. Para ello dispone de 2 registros: Registro de direccin de memoria: Especifica la prxima direccin de memoria de donde se va a leer o escribir. Registro de datos en memoria: Contiene el dato a escribir en la memoria o recibe el dato ledo. El mdulo de E/S tambin dispone de registros internos anlogos. Registro de direccin de E/S. Especifica un dispositivo particular de E/S Registro de datos de E/S. Se utiliza para el intercambio de datos entre un mdulo de E/S y la UCP. Funcin de un computador. La secuencia de operaciones realizadas en la ejecucin de una instruccin constituye lo que se denomina ciclo de instruccin. El punto de vista ms sencillo es considerar que el procesamiento del ciclo de instruccin consta de dos pasos: Fase o ciclo de bsqueda. Fase o ciclo de ejecucin La ejecucin de un programa consiste en la repeticin cclica de las fase de bsqueda y ejecucin de las instrucciones, y finaliza mediante una de las siguientes acciones: 1- Se desconecta el computador. 2- Ocurre algn tipo de error irrecuperable. 3- Se ejecuta una instruccin que fuerza su terminacin Ciclo de bsqueda y ejecucin. En el comienzo de cada ciclo de instruccin la UCP busca en la memoria una instruccin. En la UCP se dispone para ello de un registro llamado contador de programa. La instruccin leda se carga (almacena) en un registro de la UCP llamado registro de instruccin. La UCP interpreta la instruccin y ejecuta la accin indicada. En general la accin ser una combinacin de las siguientes categoras: UCP - Memoria UCP - Entrada/Salida Procesamiento de datos

Estructura de Computadores II

Control Ciclo de interrupcin. Todos los computadores disponen de un mecanismo para que otros mdulos puedan interrumpir a la UCP. El objetivo fundamental de las interrupciones es mejorar el rendimiento de los computadores desde el punto de vista de su velocidad de procesamiento. Para permitir el mecanismo de interrupciones se ha de aadir en el ciclo de instruccin un ciclo de interrupcin. En este ciclo la UCP comprueba si se ha producido alguna interrupcin y en caso afirmativo indica su presencia mediante una seal apropiada. Si no existe ninguna seal de interrupcin que este pendiente de estar atendida, la UCP contina con el ciclo de bsqueda de la siguiente instruccin del programa. Si por el contrario la UCP observa activada la seal de interrupcin hace lo siguiente: Guarda el contexto del programa que est ejecutando. Carga en el contador de programa la direccin de comienzo de un programa encargado de gestionar la interrupcin. Las interrupciones no se atienden siempre de forma inmediata. Es posible desactivarlas todas de forma selectiva y posteriormente volverlas a activar. Funcin de E/S Un mdulo de E/S puede intercambiar datos directamente con la UCP. De la misma forma que la UCP puede iniciar una operacin de lectura o escritura con memoria designando la direccin, la UCP puede leer o escribir en un mdulo de E/S. A veces puede ser deseable que los intercambios de E/S ocurran directamente con memoria. En tal caso, la UCP cede al mdulo de E/S la capacidad de leer o escribir en memoria, de manera que la transferencia E/S - memoria ocurre sin la intervencin de la UCP.

Estructuras de interconexin.
El conjunto de caminos que conectan los diferentes mdulos constituye la estructura de interconexin. El diseo de esta estructura depender de los intercambios que se tengan que hacer entre los mdulos. Se han propuesto diferentes estructuras de interconexin para la arquitectura de un computador: E/S a travs de la UCP: La UCP y los mdulos de E/S comparten la misma va de acceso a memoria, por lo que la UCP debe parar sus clculos al tener que controlar todos los intercambios. No es posible el acceso directo a memoria desde los mdulos de E/S. Es la forma ms econmica, pero reduce el rendimiento de la UCP. E/S a travs de memoria: Es posible el acceso directo a memoria principal de dos o ms componentes de forma independiente. El mdulo de memoria contiene la lgica de control necesaria para resolver los conflictos. Se puede realizar transferencias entre la unidad de E/S y la memoria mientras la UCP realiza clculos. Sus mecanismos de control son complejos y poco flexibles, es difcil aadir mdulos adicionales. E/S mediante conmutador central: Existe un mecanismo de distribucin centralizado al cual se unen todos los componentes. El conmutador central controla el acceso a memoria tanto de la UCP como de los mdulos de E/S. La UCP queda libre para realizar clculos. Al mismo tiempo se puede informar a la UCP sobre las actividades que se realizan y proporciona una conexin directa entre la UCP y la unidad de E/S. Se adopta en grandes sistemas y su coste es elevado y el conmutador complejo. Bus de E/S: Un conjunto de lneas que se comparten por todos los mdulos. En un instante slo un mdulo puede transmitir de forma satisfactoria, y una o ms de las unidades deben encargarse de controlar la utilizacin del bus. Es simple y flexible y se ha convertido en estndar.

Interconexin mediante bus.

Estructura de Computadores II

Un bus es un medio de transmisin compartido. Al bus se conectan mltiples dispositivos, y una seal transmitida por cualquiera de ellos puede ser recibida por todas las otras unidades. En un determinado instante de tiempo slo es posible la transmisin por parte de un nico elemento dispositivo. Estructura de bus Un bus es un conjunto de lneas independientes con una funcin particular. Se pueden clasificar en tres grupo funcionales: Lneas de datos. Lneas de direccin. Lneas de control. Las lneas de datos forman el bus de datos, cuya anchura es fundamental para determinar el rendimiento global del sistema. Las lneas de direccin seleccionan la fuente o el destino de la informacin que hay sobre el bus de datos. La anchura del bus de direcciones determina la capacidad de direccionamiento de la unidad de memoria del sistema. Las lneas de control gobiernan el acceso y el uso de las lneas de datos y direccin. Transmiten tanto rdenes como informacin de temporizacin entre los mdulos del sistema. Para que un mdulo enve los datos a otro se debe hacer dos cosas: 1- Obtener el uso del bus. 2- Transmitir al mdulo los datos a travs del bus. Si se quiere pedir datos de otro mdulo: 1- Obtener el uso del bus. 2- Transferir la peticin por las lneas de direccin y control. 3- Esperar los datos. Elementos de diseo del bus Las lneas del bus se agrupan en dos tipos genricas: dedicadas y no dedicadas. Una lnea de bus dedicada se asigna de forma permanente a una funcin o a un subconjunto de componentes del computador. Puede ser funcional o fsica. La dedicacin fsica se refiere al uso de mltiples buses, cada uno se conecta a un subconjunto de mdulos. Tiene mayor rendimiento debido a la menor contencin del bus, pero aumenta el tamao y el coste. En las lneas no dedicadas la informacin sobre la direccin y los datos se transmite por el mismo conjunto de lneas utilizando una lnea de direccin vlida. El mtodo de utilizar las mismas lneas con objetivos diferentes se conoce como multiplexacin en el tiempo. Aunque este sistema complica la circuitera y reduce el rendimiento del computador. Dado que se puede dar el caso de que ms de un mdulo desee el control del bus se requieren mtodos de arbitraje, estos pueden ser centralizados o distribuidos. En un esquema centralizado el controlador del bus o rbitro es el responsable de asignar el tiempo de utilizacin del bus. En un esquema distribuido cada mdulo contiene la lgica de control para acceder al bus, actuando de forma cooperativa para compartir el recurso. El objetivo de ambos mtodos de arbitraje es designar un dispositivo ( UCP o mdulo de E/S ) como maestro y otro acta como esclavo. La temporizacin contempla como se coordinan los sucesos sobre el bus. Si es sncrona los sucesos sobre el bus estn determinado sobre un reloj. El bus incluye una lnea de reloj sobre la que se transmite una secuencia regular. La temporizacin asncrona es ms simple de realizar y verificar pero es menos flexible, y el sistema no se beneficia de los avances que se producen en el rendimiento de sus dispositivos. Con la temporizacin asncrona pueden compartir el bus una mezcla de dispositivos lentos y rpidos. Ancho de banda (B): Mxima velocidad de transferencia en bits/seg. Fraccin de ancho de banda, cuantifica el grado de ocupacin de la velocidad de transferencia de la memoria cuando se realizan operaciones de E/S con un perifrico. Su valor est entre 0 y 1. B perifrico / B memoria. Consideraciones prcticas en la conexin mediante bus. La utilizacin del bus compartido implica el empleo de circuitos de acoplo con el fin de garantizar el funcionamiento correcto del bus. Para evitar problemas de Fan Out, antes de conectar una

Estructura de Computadores II

lnea del bus de direccin a travs de todos los circuitos de un bloque de memoria se le hace pasar a travs de una etapa de circuitos denominados drivers, que no realizan ninguna funcin lgica, y su nica misin es que desde el bus se contemple el bloque de memoria como un nico circuito.

Tema 2

Unidad de memoria.

Definiciones y conceptos bsicos:


Localizacin: Es uno de los aspectos ms destacable de la memoria de un computador, desde este punto de vista se puede clasificar en tres grandes grupos: a. Memoria interna del procesador : est constituida por un pequeo conjunto de registros de alta velocidad que son internos a la UCP, donde se almacenan temporalmente instrucciones y datos. b. Memoria principal: es relativamente grande y rpida, utilizada para el almacenamiento de los programas y sus datos correspondientes. Se puede acceder a ella mediante instrucciones mquina. c. Memoria externa o secundaria: Dispositivos perifricos de almacenamiento accesibles a la UCP a travs de controladores de E/S. En los dispositivos externos se distingue entre controlador y soporte de la informacin. El controlador se encarga de dirigir los componentes mecnicos y electrnicos del dispositivo, de esta forma se libera a la UCP de gran parte de la gestin de E/S. El soporte es el medio fsico donde se almacena la informacin. Capacidad Es la cantidad de informacin que puede almacenar, se mide en palabras. La capacidad de memoria de p palabras con n bits cada palabra se representa como n x p bits. Unidad de transferencia En una memoria interna la unidad de transferencia es igual al nmero de lneas de entrada y salida al mdulo de memoria. Puede coincidir con la longitud de la palabra pero puede no hacerlo. En la memoria principal es el nmero de bits ledos o escritos en la memoria simultneamente, y no tiene porque ser una palabra. Para memorias externas los datos se transfieren en bloques. Mtodo de acceso a- Acceso aleatorio: Puede accederse a las informaciones en cualquier orden, siendo el tiempo independiente de la posicin donde est localizada la informacin. (RAM). La unidad de dato es la celda. b- Acceso secuencial: Se accede a la informacin almacenada mediante una secuencia lineal. El tiempo de acceso es variable y depende de la posicin ( SAM ). Las unidades de datos elementales de una memoria SAM se llaman registros. c- Acceso directo: Los bloques o registros individuales tienen una direccin nica que se basa en su posicin fsica. El acceso se realiza de forma aleatoria para alcanzar el registro donde se encuentra la informacin, y a continuacin se realiza una bsqueda secuencial dentro de l. El tiempo de acceso es variable. d- Acceso asociativo: Son de acceso aleatorio con la diferencia de que no pregunta por el contenido de una posicin, sino que se pregunta si existe una posicin de memoria que contiene una palabra determinada. Cada posicin tiene su propio mecanismo de direccionamiento y el tiempo de recuperacin de informacin es constante e independiente de la localizacin y configuracin del acceso previo. Tipos fsicos a) Memorias de semiconductor : memorias principales. b) Memorias magnticas: memorias secundarias. c) Memorias pticas : memorias secundarias.

Estructura de Computadores II Caractersticas fsicas

a) Alterabilidad: Hace referencia a la capacidad de alterar el contenido de una memoria. Si no se puede alterar se denominan ROM. Las memorias que se pueden escribir y leer se conocen como RWM. Algunas ROM son programables por el usuario PROM, si se borran y programan EPROM. Si una EPROM se borra elctricamente EEPROM o por rayos ultravioletas UVEPROM . b) Permanencia de la informacin: 1- Lectura destructiva: (Ncleos de ferrita) DRO, para evitar la destruccin del contenido hay que grabarlas despus de leerlas. Si no son destructivas NDRO. 2- Volatilidad :Posible destruccin de la informacin con un corte de suministro. Voltiles y no voltiles. 3- Almacenamiento esttico/dinmico : Una memoria es esttica si su informacin no vara con el tiempo, en caso contrario la informacin se pierde con el tiempo y hay que refrescarla, lo que supone una dificultad de diseo, aunque las memorias dinmicas suelen tener mayor capacidad y menos consumo que las estticas. Velocidad: Para medir el rendimiento se utilizan los siguientes parmetros: a) Tiempo de acceso ( TA ). Se define como el tiempo medio necesario para leer/escribir una cantidad fija de informacin. b) Tiempo de ciclo de memoria (tc) ; el intervalo de tiempo mnimo entre dos lecturas consecutivas, puede ser mayor que TA . c) Velocidad de transferencia o frecuencia de acceso ( fA): Es el nmero de palabras/segundo que pueden ser accedidas: En el caso de acceso aleatorio : fA = 1/tc En memorias de acceso no aleatorio: tn = tA + n/p donde: tn : Tiempo medio en leer/escribir n bits tA : Tiempo de acceso medio. n : Nmero de bits. p : Velocidad de transferencia (bits/seg.) Organizacin Es la disposicin fsica de los bits para formar palabras

Jerarquas de memoria.
El diseo de la unidad de memoria de un computador se ve afectada por una jerarqua de componentes que se ve afectada por tres parmetros: capacidad, coste y rapidez. Estos tres parmetros estn ntimamente ligados Menor tiempo de acceso Mayor coste por bit Mayor capacidad Menor coste por bit Mayor capacidad Mayor tiempo de acceso La solucin a este conflicto est en emplear una jerarqua de memorias en lugar de una nica tecnologa. Nivel Superior

Registros de la UCP Memoria Cach Datos a los que la UCP accede con frecuencia

Memoria Interna

fA decrece Memoria Principal Discos Magnticos Cintas Magnticas Nivel Inferior

Memoria Externa

Estructura de Computadores II

Cuando se va a los niveles inferiores de la jerarqua ocurre que: a) El coste por bit disminuye. b) La capacidad aumenta. c) El tiempo de acceso aumenta d) La frecuencia de acceso a memoria por la UCP disminuye. Con la utilizacin de las jerarquas de memoria las memorias rpidas de baja capacidad y alto coste se complementan con las memorias lentas de gran capacidad y bajo coste. La base de la validez de la condicin d, es un principio conocido como localidad de referencia. Las referencias a memoria que realiza la UCP, para acceder a datos e instrucciones suelen estas agrupadas. Por este motivo es posible organizar los datos en los diferentes niveles de memoria, de forma que la frecuencia de acceso sea mucho menor cuanto ms bajo se est en la jerarqua. El tiempo de acceso medio total (tA) empleado por la UCP para acceder a una palabra se puede expresar por la relacin: tA = tA1+ tA2 donde: tA1 es el tiempo de acceso a la memoria de nivel 1 tA2 es el tiempo de acceso a la memoria de nivel 2 T es el porcentaje de tiempo total en que la palabra a la que desea acceder la UCP se encuentra en la memoria de nivel 1.

Tt A2 100

Memorias de semiconductor.
Caractersticas de un CIM (Circuito Integrado de Memoria ): Un CIM est organizado internamente como una matriz de N x m celdas elementales, en la que se pueden almacenar N palabras de m bits. A cada palabra almacenada en el CIM se le asigna una nica direccin. n Bus de Direcciones m SC R/W El nmero de lneas n del bus de direccin es tal que 2n = N, siendo N el nmero de palabras del CIM. El nmero de lneas m del bus de datos se corresponden con la longitud de la palabra. Estructura de la celda bsica de memoria: Seleccin CIM Bus de Datos

Salida Entrada S R Q Q

Escritura

Seleccin

Escritura

Contenido

Salida

Estructura de Computadores II 0 1 1 X 0 1 Contenido Contenido Entrada 0 Contenido Entrada

El elemento bsico de un CIM es la celda de memoria que permite almacenar un bit de informacin. Aunque de diferentes tecnologas, todas las celdas de memoria de tipo semiconductor comparten ciertas propiedades: Presentan dos estados estables ( o semiestables) Se pueden escribir (al menos una vez ) para fijar su estado Se pueden leer para conocer su estado Organizacin interna: Cada CIM contiene una matriz de celdas de memoria su estructura interna suele ser de dos tipos: n Organizacin 2D ( por palabras o lineal ) Es el mtodo ms simple, aunque su coste es ms elevado. El mdulo de memoria se compone de una matriz de celdas bsicas. Para una memoria de 2n palabras de m bits la matriz est formada por 2n filas y m columnas. Adems el mdulo requiere un decodificador de n entradas y 2n salidas y para formar la salida m puertas OR de 2n entradas cada una.

Direccin

2n

Matriz de celdas (2n x m celdas)

Seleccin CS Control R/W m Dato de Entrada Dato de Salida m

Es una organizacin rpida ya que el nico retardo que presenta es el asociado con los circuitos de decodificacin y con el acceso a los elementos fsicos de almacenamiento. Como normalmente el nmero de palabras es mayor que el nmero de bits por palabra, la organizacin 2D da lugar a matrices de celdas excesivamente largas y estrechas que no son adecuadas para su realizacin en un circuito integrado. n Organizacin 2 D (Coincidencia): Utiliza un decodificador por coincidencia, en vez de usar un nico decodificador con n entradas y 2n salidas, usa dos decodificadores con n/2 entradas y 2n/2 salidas en cada uno de ellos, uno selecciona el eje X y el otro el eje Y. De esta manera se construyen matrices ms cuadradas. Adems requiere, menos puertas y con menor nmero de entradas por puerta. Utiliza una celda memoria ms compleja ya que incluye una puerta AND para la seleccin por coincidencia. Para seleccionar el bit de una palabra, la direccin de la palabra de divide en dos mitades. La primera parte de la direccin se introduce al decodificador Y, que selecciona la fila. El resto va al decodificador X conectado a las columnas.

Estructura de Computadores II

Diseo de bloques de memoria La ampliacin de componentes es una caracterstica fundamental en el diseo y en el caso de la memorias de semiconductor tiene dos objetivos: a) Incrementar el tamao de las palabras (nmero de bits / palabra ). b) Incrementar el nmero de palabras de la memoria. Para el primer objetivo basta con interconectar un nmero determinado de mdulos de memoria. Incrementar el nmero de palabras supone aumentar la capacidad de direccionamiento, es decir incrementar el nmero de bits del bus de direccin, lo que requiere el uso de un decodificador adicional Conexin de la unidad de memoria al bus del sistema Se realiza mediante el esquema de drivers, esta conexin es diferente segn el tipo de lnea del bus de que se trate. El bus de direccin y de control son unidireccionales. El bus de datos es bidireccional. Se pueden distinguir dos situaciones, segn que el bloque de memoria disponga de entrada y salida de datos separada o las tenga en comn sobre una sola lnea bidireccional. Estructura y direccionamiento de la unidad de memoria. En el diseo de la unidad de memoria principal se utiliza un bloque bsico, que se dispone en una placa de circuito impreso y se repite tantas veces como sea necesario. Este enfoque tiene como ventajas en el diseo global de la memoria: a) Abaratamiento de los costes. b) Modularidad y posibilidad de ampliacin. c) Facilidad de mantenimiento y preparacin. Con este sistema se debern realizar un pequeo circuito lgico de seleccin de placa, por lo que stas no seran idnticas, por este motivo se utiliza un circuito de comparacin con conmutadores que permiten personalizar cada una de las placas.

Memoria cach.
En todos los ciclos de instruccin la UCP accede a memoria al menos una vez para buscar la instruccin y frecuentemente realiza mltiples accesos para leer los operandos o almacenar los resultados. La velocidad con que la UCP ejecuta instrucciones est limitada por el tiempo de ciclo de memoria. Se conoce como tiempo de ciclo del procesador al tiempo que la UCP necesita para realizar una de sus operaciones bsicas. Para solucionar el compromiso entre velocidad, coste y capacidad se coloca una memoria pequea y rpida entre la UCP y la memoria principal, la memoria cach. La memoria cach almacena una copia de ciertas partes de la memoria principal. Cuando la UCP intenta leer una palabra en primer lugar comprueba si est en la cach. Si est, se lee, si no est, se transfiere a la memoria cach un bloque de la memoria principal, con un determinado nmero de palabras. La memoria principal consta de 2n palabras y cada palabra se puede referenciar mediante una direccin nica de n bits. Para realizar la transformacin entre la memoria principal y la cach, se considera que la memoria principal est constituida por una serie de bloques de longitud fija de k palabras/bloque, es decir, hay M = 2n/ k bloques. La memoria cach contiene C particiones de k palabras ( C << M). En cualquier instante de tiempo un determinado subconjunto de los bloques de memoria principal reside en las particiones de la memoria cach. Si se desea leer una palabra de un bloque que est en la memoria principal automticamente este bloque se transfiere a una de las particiones de la memoria cach. Cada particin incluye una marca o etiqueta que identifica al bloque de memoria principal que est conteniendo en ese momento, normalmente la etiqueta es parte de la direccin de la memoria principal. El rendimiento de una memoria cach se mide en una cantidad llamada tasa de acierto, que es la razn entre el nmero de aciertos y el nmero total de referencias a memoria de la UCP. Tasa de acierto = Acierto/( Acierto + Fallo) Capacidad de la cach: El tamao de la cach plantea el compromiso de ser pequea para disminuir el coste medio por bit almacenado en la memoria interna (cach + principal), por otro lado debe ser grande como para que tenga una tasa de acierto elevada.

Estructura de Computadores II

Funcin de correspondencia La funcin de correspondencia es la que asigna a los bloques de la memoria principal posiciones definidas en la memoria cach. n Correspondencia directa. Cada bloque de memoria principal se transforma en una nica particin de la memoria cach. La funcin de transformacin es : S = Nmero de particin asignado en memoria cach S = A mdulo C A = Nmero de bloque de la memoria principal. C = Nmero de particiones que tiene la cach. La funcin de transformacin se realiza utilizando los bits de direccin. Los menos significativos sirven para localizar una palabra dentro de un bloque de la memoria principal. Los n restantes especifican uno de los bloques ( 2n = A) de la memoria principal. La lgica de la memoria cach interpreta la parte ms significativa como etiqueta y los otros identifican una particin dentro de la memoria cach. La tcnica de correspondencia directa es simple y poco costosa. Su desventaja es que cualquier bloque dado tiene asignada una posicin fija en la cach. Si un programa efecta repetidas referencias a palabras de dos bloques diferentes que se transforman en la misma particin, estos bloques se estarn moviendo continuamente entre la memoria principal y la cach, con perdida de rendimiento del sistema. Formato de instruccin Etiqueta Particin Palabra

n Correspondencia totalmente asociativa Permite que se cargue un bloque de memoria principal en cualquier particin de la memoria cach, a condicin que se almacene con l los n bits de su campo etiqueta. Para determinar si un bloque est ya en memoria cach es preciso que sta incorpore la lgica necesaria que le permita examinar simultneamente todas las particiones y ver si el campo elegido del bloque coincide con alguna de las etiquetas de las particiones almacenadas. Este sistema permite decidir cual es el bloque que ser sustituido en la cach por el nuevo bloque ledo en memoria principal. Su principal desventaja es la necesidad de una circuitera compleja para examinar en paralelo los campos de etiqueta de todas las particiones de la memoria cach. Formato de instruccin Etiqueta Palabra

n Correspondencia asociativa por conjuntos. Intenta juntar las ventajas de los dos mtodos anteriores. La memoria cach ( de capacidad C )se divide en I conjuntos, cada uno con J particiones C=IxJ K = A mdulo I

K = n de conjunto de la memoria cach

Con este algoritmo, el bloque que contiene la direccin A se puede almacenar en una particin cualquiera del conjunto I. al igual que en la correspondencia directa, la direccin de la memoria principal se interpreta como tres campos. Las dos tcnicas anteriores son casos particulares: a- I = C ; J = 1 Correspondencia directa b- I = 1 ; J = C Correspondencia totalmente asociativa. La utilizacin de I =C/2 , J = 2 ( 2 particiones por conjunto), es la organizacin ms usual, tambin se emplea I =C/4 , J =4 ( 4 particiones por conjunto ), a partir de este valor, el beneficio marginal que se obtiene al aumentar el nmero de particiones por conjunto no compensa el coste que supone. Formato de instruccin Etiqueta Conjunto Palabra

Estructura de Computadores II

10

Algoritmos de reemplazamiento: La sustitucin de un bloque por otro en el caso de la correspondencia directa, la particin est determinada y no se puede realizar ninguna eleccin. Sin embargo, en las tcnicas de tipo asociativo es necesario un algoritmo de reemplazamiento. Para lograr tasas de transferencia elevadas, estos algoritmos deben realizarse por hardware. Los algoritmos principales son: abcdParticin ms antigua en la memoria cach sin ser referenciada (LRU). Particin ms antigua en la memoria cach (FIFO). Particin utilizada menos frecuentemente. (LFU). Particin elegida de forma aleatoria.

Estrategia de escritura. Para reemplazar un bloque residente en la memoria cach, se debe tener en cuenta si ha sido modificado y se debe actualizar la memoria principal. En general se plantean dos problemas: a- Ms de un dispositivo tiene acceso a la memoria principal. Si la palabra ha sido modificada en la memoria cach el dato de la memoria principal no es vlido, si por el contrario ha sido modificado en memoria principal el dato de la cach no es vlido. b- Se conectan varias UPCs a un bus y cada una tiene su propia memoria cach local. La tcnica ms simple se denomina escritura directa y consiste en efectuar todas las operaciones de escritura tanto en memoria principal como en memoria cach, lo que asegura la validez del contenido. Su desventaja es que genera un trfico elevado con la memoria y puede crear un cuello de botella. Otra tcnica es la de realizar actuaciones slo en la memoria cach, mtodo que se conoce como postescritura. Cuando se produce una modificacin se pone a 1 un bit de actualizacin asociado con cada particin de la memoria cach. Si se reemplaza un bloque se reescribe la memoria principal si y slo si el bit de actualizacin est a 1. El problema es saber que partes de la memoria principal ya no son vlidas, para evitarlo los accesos de los mdulos de E/S se permiten nicamente a travs de la cach. En una organizacin de bus en la que ms de un dispositivo que tienen una memoria cach asociada y se comparte la memoria principal aparece un nuevo problema. Si se modifica una palabrea de la memoria cach se invalida, adems de la palabra en memoria principal, la misma palabra en otras memorias cach, en el caso de que la contengan. Incluso con la estrategia de escritura directa las memorias cach pueden tener datos invlidos. Un sistema que evita este problema se dice que mantiene la coherencia de la memoria cach. Tamao del bloque Cuando se transfiere un bloque de la memoria principal a la memoria cach, con la palabra deseada se mueve un conjunto de palabras adyacentes. Cuando se aumenta el tamao del bloque se aumenta la tasa de acierto por el principio de localidad; sin embargo, a partir de un tamao determinado, la tasa de acierto disminuye debido a que la probabilidad de utilizar la informacin del bloque se hace menor que la probabilidad de rehusar la informacin a reemplazar y con ello aparecen dos efectos especficos: 1- Cuando mayor sea el tamao de los bloques, menor ser el nmero de estos que es posible tener en memoria cach. Si el nmero de bloques es pequeo aumenta la frecuencia de utilizacin del algoritmo de reemplazo de bloques. 2- Cuando crece el tamao de un bloque, cada nueva palabra aadida a ese bloque estar a mayor distancia de la palabra requerida por la UCP, y por lo tanto es menos probable que sea necesitada a corto plazo.

Memorias asociativas
Estructura de una memoria asociativa:

Estructura de Computadores II

11

Consiste en una matriz de celdas de memoria, con su lgica asociada, organizada en n palabras con m bits/palabra. El registro argumento A y el registro de mscara k tienen m bits cada uno y el registro de marca M consta de n bits. Cada palabra de la memoria se compara en paralelo con el contenido del registro argumento, y se pone a 1 el bit del registro de marca asociado a aquellas palabras cuyo contenido coincide con el del registro argumento. El proceso de lectura se realiza mediante un acceso secuencial a las palabras de memoria cuyos bits en el registro de marca estn a 1.

Registro Argumento (A)

Registro Mscara (K)

Entrada Leer Escribir Matriz de celdas de Memoria Asociativa n palabras x m bits Registro de Marca (M)

Salida El registro de mscara proporciona la clave para seleccionar la parte que se desee en la palabra argumento. La celda bsica de memoria asociativa est formada por un elemento de memoria Q y la circuitera adecuada para hacer las funciones siguientes: a- Leer el bit almacenado en la celda durante una operacin de lectura. b- Transferir al elemento de memoria el bit que tiene la celda en su entrada durante una operacin de escritura. c- Comparar el contenido de la celda con el correspondiente bit sin enmascarar del registro argumento y proporcionar una salida para la lgica de decisin que actualiza el bit de marca (M). Determinacin de la funcin lgica del registro de mscara. M es 1 si se produce coincidencia y 0 en caso contrario. Si el registro de mscara contiene slo ceros, la salida de M valdr 1 independientemente del valor de A o de la palabra que hay en memoria por lo que es una situacin que debe evitarse. Operacin de lectura. Si hay ms de una palabra de memoria que concuerda con los bits sin enmascarar del registro A, todas ellas tendrn un 1en su posicin del registro de marca. Para la operacin de lectura es necesario examinar uno a uno los bits del registro de marca. Si Mi = 1 se aplica una seal de lectura a la palabra correspondiente. En la mayora de aplicaciones la memoria asociativa almacena una tabla que no tiene, para una mscara dada, dos filas idnticas. En este caso, solamente puede coincidir una palabra con los bits sin enmascarar del registro A. Si se conecta la salida de Mi directamente a la lnea de lectura

Estructura de Computadores II

12

de la palabra correspondiente, en lugar de conectarse al registro M, se presenta de forma automtica el contenido de la palabra que coincide y no se necesita seal de lectura Operacin de escritura Una memoria asociativa debe de poder almacenar la informacin que se desee. Dependiendo de la aplicacin, la escritura en este tipo de memoria puede adoptar diferentes formas. Si antes de las operaciones de bsqueda se carga la memoria con nueva informacin, su escritura se puede realizar direccionando secuencialmente cada posicin, lo que la convierte en una memoria de acceso aleatorio para su escritura y direccionable por contenido para su lectura. Tiene como ventaja que la direccin para la entrada se puede decodificar como si fuese una memoria de acceso aleatorio, y en lugar de tener un bus de direccin de n lneas se puede reducir con un Decodificador a p lneas, donde n=2p. Si se tienen que borrar las palabras que no se necesitan e insertar nuevas palabras una a una, es necesario un registro especial, llamado registro etiqueta, que distingue las palabras activas de las inactivas, tendr tantos bits como palabras la memoria.

Memorias compartidas.
En los sistemas en que diferentes elementos tienen acceso a una misma unidad de memoria la unidad bsica es el rbitro, que es el elemento encargado de permitir el acceso a la unidad de memoria a cada uno de los procesadores que solicitan dicho recurso. El problema que se plantea es establecer la estrategia de asignacin de prioridades a la peticin de servicios de los distintos elementos. Los procedimientos ms utilizados son: n Asignacin de la menor prioridad al elemento servido: Para cualquier estado presente, la transicin al prximo estado se obtiene asignando la menor prioridad al elemento servido. Con esta estrategia la complejidad del rbitro aumenta factorialmente con el nmero de procesadores a servir. n Rotacin de prioridades: Intenta reducir el nmero de estados del rbitro y en consecuencia simplificar su diseo. El prximo estado se calcula rotando el orden de prioridades actual hasta que el procesador al que acaba de dar servicio tiene la menor prioridad. El nmero de estados del rbitro coincide con el nmero de elementos a servir.

Memorias tipo pila


Devuelven la informacin de modo inverso al de su almacenamiento, y se caracterizan porque slo se puede leer el ltimo dato almacenado en ellas, que se encuentra en la cumbre de la pila. (LIFO) Hay dos formas bsicas de realizar una memoria de pila: A- Mediante un conjunto de registros. B- Mediante un conjunto de palabras de memoria principal. Para ello el procesador dispone de un registro especial, SP, puntero de pila; y del repertorio de instrucciones para su manejo.

Pila realizada como un conjunto de registros

Pila formada por una zona de memoria principal Utiliza la memoria principal Bajo coste Gran capacidad

Ventajas

Velocidad alta

Desventajas

Hardware propio en la UCP Alto coste Capacidad limitada

Velocidad baja

A veces se dan realizaciones mixtas, las primeras posiciones de la pila estn soportadas por un conjunto de registros y el resto sobre memoria principal.

Estructura de Computadores II Las memorias tipo pila tienen como principales aplicaciones: Salto a subrutinas Tratamiento de interrupciones Compilacin de expresiones aritmticas.

13

Tema 3 Unidad de Entrada Salida


La unidad de E/S proporciona un mtodo de comunicacin eficaz entre el sistema central y el usuario. La E/S se puede ver como un conjunto de controladores; cada controlador se conecta al bus del sistema o a un conmutador centralizado y supervisa a uno o ms dispositivos perifricos. Un controlador de E/S dispone de la lgica necesaria para realizar una funcin de comunicacin entre los perifricos del computador y el bus. Los motivos por los que no se conectan los perifricos al bus directamente son: a- La gran variedad de tipos y mtodos de operacin, por lo que no es prctico incorporar dentro de la UCP la lgica que se necesita para controlar un conjunto tan amplio de dispositivos. b- La velocidad de transferencia de datos de los perifricos suelen ser menor que la de la memoria con la UCP. c- Los perifricos utilizan formatos y longitudes de palabra distintas a las del computador. Estas razones justifican la existencia de los controladores de E/S, que tiene dos grandes funciones Comunicarse con la UCP y la memoria a travs del bus del sistema. Comunicarse con uno o varios dispositivos perifricos mediante enlaces de datos adaptados a cada perifrico.

Dispositivos externos
Un dispositivo externo se conecta al computador a travs de un enlace con un controlador de E/S. El enlace se utiliza para intercambiar datos e informacin, sobre su control y estado, entre el controlador de E/S y el dispositivo externo. Los perifricos pueden clasificarse en tres categoras: Adaptados al usuario. Adaptados a la mquina. De comunicacin. Lo dispositivos externos adaptados a la mquina pueden ser unidades de cinta y disco. Esto es debido a que desde el punto de vista funcional pertenecen a la jerarqua de memorias, pero estructuralmente estn supervisados por un controlador de E/S. La comunicacin con el controlador de E/S se efecta mediante seales de datos, control y de estado del dispositivo. Los datos estn constituidos por un conjunto de bit que se envan o reciben desde el controlador de E/S. Las seales de control determinan la funcin que realiza el dispositivo. La lgica de controla asociada con el perifrico gobierna su funcionamiento en respuesta a las ordenes enviadas por el controlador de E/S. En una operacin de salida los transductores convierten las seales elctricas en otras formas de energa y a la inversa. Normalmente el transductor lleva asociado un registro que almacena temporalmente el dato que se transfiere entre el controlador de E/S y el mundo exterior.

Estructura de Computadores II

14

Controlador de E/S
Es el mdulo del computador responsable del control de uno o ms dispositivos externos y del intercambio de datos entre dichos perifricos con la memoria principal o con los registros de la UCP. Funciones del controlador de E/S En cualquier instante de tiempo la UCP se puede comunicar con uno o ms dispositivos externos de manera no prefijada, dependiendo de las necesidades de E/S del programa que se est ejecutando. Por ello los recursos internos del computador deben de compartirse, la funcin de E/S requiere un mecanismo de control y temporizacin que coordine el intercambio de informacin entre los recursos internos y los externos. Si el sistema emplea un solo bus, cada una de las interacciones entre la UCP y el controlador de E/S implica uno o ms arbitrajes para conseguir el acceso al bus. La comunicacin del controlador con la UCP requiere: a- Decodificacin de la orden b- Intercambio de datos c- Informacin del estado d- Reconocimiento de la direccin. El controlador de E/S realiza tambin la comunicacin con el dispositivo, lo que comprende ordenes, informacin del estado del dispositivo y datos. Una tarea esencial de un controlador de E/S es el almacenamiento temporal de los datos, debido a las diferentes velocidades de transferencia que tienen los diferentes dispositivos. Este almacenamiento sirve para adecuar las diferentes velocidades entre la interfaz interna con el computador y la interfaz externa. El controlador de E/S es responsable de la deteccin de errores, y de informar a la UCP cuando ocurren. Estructura del controlador de E/S: Los controladores de E/S varan considerablemente en complejidad y en el nmero de dispositivos externos que pueden controlar. El controlador de E/S se conecta con el resto del computador a travs del bus del sistema. Al conjunto de registros que almacenan datos y estados se les denomina genricamente puertos. El controlador debe de reconocer y generar las direcciones asociadas con los dispositivos que controla. Estructura del sistema de E/S Hay tres maneras de utilizar el bus para interconectar la UCP con la memoria y la unidad de E/S: 1- Utilizar dos buses independientes, uno para memoria y otro para el sistema de E/S. 2- Bus comn para memoria y sistema de E/S, con lneas de control independientes. 3- Bus nico, con lneas de control comunes.

E/S controlada por programa.


Cuando se emplea E/S controlada por programa el computador adapta su velocidad de trabajo a la del perifrico. Si la UCP est ejecutando un programa y encuentra una instruccin de E/S, enva una orden al controlador E/S adecuado, el cual realiza la accin pedida y modifica el contenido de su registro de estado (RE) y no efecta ninguna accin ms para comunicrselo a la UCP. Es responsabilidad de la UCP comprobar peridicamente el estado del controlador de E/S, hasta que detecta el final de la operacin. Ordenes de E/S Para ejecutar una instruccin de E/S, la UCP enva una orden de E/S y una direccin que especifica el controlador y el perifrico en particular. La UCP puede enviar cuatro tipo de ordenes: de control, de comprobacin, de lectura y de escritura. Mientras se realiza una operacin despus de la transferencia de un dato, el computador permanece en un bucle de espera hasta que el perifrico est preparado para realizar la siguiente transferencia, es decir, el procesador no realiza ningn trabajo til mientras est en el bucle de espera.

Estructura de Computadores II

15

Instrucciones de E/S. En la E/S controlada por programa, hay una correspondencia muy estrecha entre las instrucciones de E/S que la UCP recibe de memoria y las ordenes de E/S que la UCP enva al controlador de E/S para su ejecucin. Las instrucciones se transforman fcilmente en rdenes de E/S, y a menudo hay una relacin biunvoca entre ambas. La forma de la instruccin depende de la manera en que se direccionan los dispositivos externos. Cuando la UCP, la memoria principal y la unidad de E/S comparten un bus comn, la forma de hacer el direccionamiento difiere segn la E/S est localizada en memoria o est aislada: a- E/S localizada en memoria: Hay un nico espacio de direcciones para las posiciones de memoria y los dispositivos de E/S. La UCP trata los registros de datos y de estado de los controladores de E/S como posiciones de memoria y utiliza las mismas instrucciones mquina para acceder a memoria y perifricos. Slo se necesita un conjunto de seales de lectura y escritura. Cada controlador de E/S se organiza como un conjunto de registros que responden a seales de lectura y escritura en el espacio normal de direcciones. Se reserva un segmento el espacio total de direcciones para los registros internos de los controladores de E/S, aunque pueden estar localizados en cualquier direccin mientras no existan palabras de memoria que respondan a la misma direccin. b- E/S aislada: El bus del sistema dispone, adems de las lneas de control de lectura y escritura en memoria, de lneas de control especficas de E/S para acceder a los perifricos. La lnea de control especifica si la direccin se refiere a una posicin de memoria o a un perifrico. El rango de direcciones completo est disponible para ambos. Los computadores que poseen E/S localizada en memoria pueden usar instrucciones de referencia a memoria para acceder a datos de E/S lo que permite usar el mismo repertorio de instrucciones para E/S que para memoria.

E/S por interrupciones.


La idea bsica es eliminar el bucle de espera. La UCP enva una orden de E/S al perifrico y prosigue la tarea que estaba ejecutando, en lugar de quedarse esperando a que se efecte la operacin de E/S. Cuando el perifrico est preparado para intercambiar informacin, fuerza una interrupcin en la tarea que realiza la UCP para que atienda la operacin de E/S. En ese momento la UCP realiza la transferencia de datos y a continuacin sigue ejecutando el programa interrumpido. El perifrico advierte a la UCP que est preparado para la transmisin activando una lnea del bus de control. La lnea de peticin de interrupcin. Para no inferir en la tarea que ejecuta, la UCP en el momento de ser interrumpida guarda el contenido del contador de programa y cualquier informacin que pueda afectar a la ejecucin cuando retorne al programa interrumpido. Salvaguardar el contexto supone una sobrecarga adicional en el tratamiento de interrupciones. En algunos sistemas se hace de forma automtica por el mismo sistema de interrupciones y en otros el encargado es el programa de servicio de interrupciones. La secuencia de pasos en el tratamiento de una peticin de interrupcin por parte de un perifrico son: 1- Activar el sistema de interrupciones en la UCP. 2- El perifrico activa la lnea de peticin de interrupcin 3- La UCP suspende la ejecucin del programa. Salva el contenido del CP y otros registros accesibles por programa. 4- La UCP inhibe las interrupciones (bit de mscara) y ejecuta el programa de servicio de interrupcin. 5- Se informa al perifrico de que se ha reconocido su peticin de interrupcin mediante la lnea RI (Reconocimiento de Interrupcin). El dispositivo se desactiva PI=0. 6- Cuando finaliza el programa de servicio de interrupcin se activa el sistema de interrupciones (bit de mscara). 7- La UCP continua con la ejecucin del programa. Clasificacin de las interrupciones

Clasificacin de interrupciones

Estructura de Computadores II a-. Externa: Provocadas por un perifrico. b-. Interna: Provocadas por la UCP ( divisin por0). c-. Simuladas: Provocadas por software. a-. Slo una lnea de interrupcin Pi. b-. Mltiples lneas Pi1,Pi2,Pin. a-. Enmascarables. La UCP las puede desactivar. b-. No enmascarables.

16

Origen

Nmero de lneas de interrupcin Control de la UCP sobre la interrupcin

Identificacin de la fuente programa. de interrupcin Gestin de la prioridad de la interrupcin Niveles de interrupcin

a-. Mltiples lneas. b-. Encuesta. La interrupcin se identifica por c-. Vectorizada. La interrupcin identifica al perifrico. a-. Por software. Un programa determina la prioridad. b-. Por hardware. Un circuito determina la prioridad. a-. nico. La interrupcin no puede interrumpirse. b-. Multinivel. Anidamiento de interrupciones.

Identificacin de la interrupcin y gestin de su prioridad. La forma ms directa de identificar la fuente de una interrupcin es proporcionar mltiples lneas de peticin de interrupcin; solucin que es poco prctica, por lo que se renen las peticiones de varios perifricos en una lnea. Hay varios mtodos para que la UCP diferencie cul de los perifricos ha solicitado la interrupcin: Identificacin por encuesta: Cuando la UCP detecta una peticin de interrupcin, lo primero que hace es ir a un programa de servicio de interrupciones, donde interroga a cada uno de los controladores de E/S para determinar cual de ellos origin la peticin. Una vez identificado el perifrico, la UCP comienza a ejecutar el programa de servicio especfico para esa interrupcin. Este mtodo tiene como desventaja el tiempo que se pierde en identificar al perifrico, aunque garantiza automticamente la gestin de prioridades. Interrupciones vectorizadas: Es un mecanismo de encuesta tipo hardware. El perifrico enva a la UCP un vector de interrupcin que, de forma directa o indirecta, determina el comienzo del programa de servicio especfico de la interrupcin. Esta tcnica se conoce como interrupciones encadenadas (daisy chain). Cuando hay peticiones simultneas est implcita la prioridad de los perifricos. Controlador de interrupciones. Cuando la UCP tiene mltiples lneas de interrupcin, y se producen algunas peticiones simultneas, es preciso dotar al sistema de algn mecanismo de seleccin de la interrupcin ms prioritaria. Cualquier solucin tipo hardware que se adopte se puede conseguir en versin software, a costa de perder velocidad al atender la interrupcin. Una de las alternativas es emplear un controlador de interrupciones (PIC), que amplia el nmero de lneas de interrupcin de la UCP y se encarga de la gestin del sistema de interrupciones. Las funciones que realiza el PIC son: a- Identificar la fuente de la interrupcin. b- Establecer las prioridades de cada perifrico. c- Activar o desactivar de forma selectiva las peticiones de interrupcin recibidas. d- Enviar a la UCP informacin sobre la peticin de interrupcin y cul es el perifrico que debe ser atendido. El PIC resuelve las peticiones simultneas de diferentes perifricos mediante un codificador de prioridad. La lgica del codificador de prioridad es tal que si le llegan al mismo tiempo dos o ms entradas, tendr preferencia la de prioridad ms alta. Otra de las funciones del PIC es activar o desactivar de forma selectiva las peticiones de interrupcin que recibe. Hay dos formas bsicas de realizar este enmascaramiento:

Estructura de Computadores II

17

1- Individualmente: Cada una de las n entradas al PIC de peticin de interrupcin est controlada por una puerta AND de dos entradas, cuya segunda entrada es el bit correspondiente de un registro de mscara de interrupciones. Cada uno de los bits del registro de mscara son accesibles por programa y en cada momento la UCP recibe el valor deseado. El registro de estado almacena las peticiones de interrupcin que han sido autorizadas por el registro de mscara. Las peticiones de interrupcin se deben resolver por programa. 2- Por nivel: Las peticiones de interrupcin, se ordenan siguiendo un criterio de prioridad que el codificador de prioridades se encarga de resolver. El codificador entrega a su salida un cdigo que indica la entrada de mayor prioridad que ha solicitado una interrupcin. La UCP fija un nivel que puede ser modificado por programa. Todas las interrupciones que tengan un nivel superior al especificado pueden ser atendidas, las otras quedan prohibidas. Interrupciones multinivel. Anidamiento de interrupciones. La organizacin de prioridades en una estructura multinivel significa que durante la ejecucin de un programa de servicio de interrupciones se podrn aceptar peticiones de interrupcin de algunos dispositivos, mientras que de otros no, dependiendo de sus prioridades relativas. Para la realizacin de este esquema, se debe asignar a la UCP un nivel de prioridad modificable por programa. El nivel de prioridad de la UCP es la prioridad del programa que se est ejecutando. La UCP aceptar interrupciones slo de aquellos dispositivos que tengan una prioridad mayor que la suya.

Acceso directo a Memoria


Controlador de DMA El DMA necesita un mdulo adicional conectado al bus del sistema: el controlador de DMA que es capaz de hacer las funciones asignadas a la UCP y asumir el control del sistema. El controlador de DMA tiene tres registros; datos, direccin y contador de palabras. Estos registros permiten al controlador de DMA transferir datos desde (o hacia) una zona contigua de memoria. El registro de direccin almacena la direccin de la siguiente palabra que se va a transmitir y se incrementa de forma automtica despus de cada transferencia. El contador de palabras almacena el nmero de palabras por enviar. La Unidad de Control del DMA comprueba si el contenido del registro contador de palabras es 0 y cuando alcanza este valor enva una seal de interrupcin a la UCP que le indica el fin de la transferencia. En resumen la tcnica de DMA funciona de la forma siguiente: La UCP emite una orden al controlador de DMA con la siguiente informacin: a- Si la operacin de E/S es de lectura o escritura. b- Direccin del perifrico. c- Posicin de comienzo de memoria de donde hay que leer o escribir. d- Nmero de palabras que se tienen que leer o escribir. A partir de ese momento la UCP contina realizando otra tarea. El controlador de DMA transfiere directamente, palabra a palabra, el bloque completo de datos entre el perifrico y la memoria sin pasar por la UCP. Cuando la transferencia termina, enva una seal de interrupcin a la UCP. Transferencia de datos mediante DMA. El controlador de DMA necesita el control del bus para transmitir los datos. Hay varios mtodos: a- Rfagas: Cuando el DMA toma el control del bus no lo libera hasta haber transmitido el bloque de datos completo. La velocidad de transferencia es mxima, pero la UCP est inactiva durante periodos grandes. b- Robo de ciclos : Toma el control durante un ciclo, transfiere una palabra y lo libera. Reduce al mximo la velocidad de transmisin y la interferencia del controlador sobre la UCP. c- DMA Transparente: Elimina totalmente la interferencia entre el controlador DMA y la UCP. El DMA slo roba ciclos cuando la UCP no est utilizando el sistema. d- Por demanda: El perifrico comienza la transferencia por DMA, devuelve el control del bus a la UCP cuando no tiene ms datos. Cuando tiene ms datos retoma el control del bus. e- Dato a dato: Cuando el perifrico solicita una transferencia por DMA enva un nico dato y devuelve el control a la UCP. El proceso acaba cuando se transfiere todo el bloque. Este

Estructura de Computadores II

18

mtodo es til cuando se ejecuta de forma simultnea un programa con la transmisin recepcin de datos a velocidades moderadas. Configuracin del DMA. Todos los mdulos comparten el mismo bus del sistema. El controlador de DMA, que acta como sustituto de la UCP, utiliza E/S controlada por programa para intercambiar datos entre la memoria y un perifrico a travs del DMA. Esta configuracin es econmica y poco eficaz, ya que cada transferencia de palabra consume dos ciclos de bus. Las funciones de DMA y E/S se integran, lo que supone que hay un camino entre el DMA y uno o ms controladores de E/S que no incluyen el bus del sistema. Generalizando el concepto anterior, se utiliza en bus de E/S para conectar los controladores de E/S al controlador de DMA. Reduce a uno el nmero de interfaces de E/S en el controlador de DMA y proporciona una configuracin ampliable.

Procesador de E/S (PE/S).


Caractersticas de los PE/S. El PE/S representa una extensin del concepto de DMA. Un PE/S tiene capacidad de ejecutar instrucciones de E/S, lo que le da un control completo sobre dicha operacin. En los computadores con PE/S, la UCP no ejecuta instrucciones de E/S, As la UCP inicia una transferencia de E/S al dar la orden al PE/S para ejecutar un programa en memoria, el cual especifica: el perifrico que interviene; la zona de memoria utilizada; las prioridades y las acciones a realizar en caso de error. El PE/S sigue estas instrucciones y controla la transferencias de datos. Hay dos tipos de PE/S: 1. Canal selector: Controla mltiples dispositivos de alta velocidad y en un instante de tiempo est dedicado a la transferencia de datos con uno slo de estos dispositivos. 2. Canal multiplexor: Puede controlar de manera simultnea operaciones de E/S con mltiples dispositivos.

Tema 4

Unidad Aritmtico Lgica

La UAL es la parte del computador donde se efectan las operaciones sobre los datos. Las otras unidades del computador, unidad de control, memoria y Entrada/Salida, son las encargadas de suministrar los datos y de recibirlos una vez procesados. Los datos llegan a la UAL a travs de los registros y los resultados que se generan tambin se almacenan en registros.

SUMADORES BINARIOS
Un sumador binario se puede considerar como un conversor de cdigo que recibe a la entrada dos nmeros binarios x e y de n bits cada uno y produce una salida s de n+1 bits que es la suma de los operandos. Para conseguir un compromiso entre la velocidad y coste se emplea la estrategia de transformar el problema de la suma de dos nmeros de n bits en n problemas idnticos de suma de dos nmeros de 1 bit. Cada una de estas n sumas precisan informacin de los sumadores de las etapas previas. Semisumador binario:

x = xy + xy c = xy
x y

x 0 0 1 1

y 0 1 0 1

c 0 0 0 1

s 0 1 1 0 l l l l

SSB Tabla de verdad Representacin por puntos

Estructura de Computadores II

19

Semisumador completo: Se diferencia del semisumador porque tiene una tercer entrada, Ci-1, de arrastre de las etapa anterior, que le permite encadenarse con otros SBC para el diseo de circuitos de suma de nmeros de n bits ( n>1).

x x 0 0 0 0 1 1 1 1 l l l l l Funciones lgicas: y 0 0 1 1 0 0 1 1 ci-1 0 1 0 1 0 1 0 1 ci 0 0 0 1 0 1 1 1 s 0 1 1 0 1 0 0 1

SSB c ci s ci-1 SSB

si = x i yi ci 1 + xi yi ci 1 + x i yi ci 1 + xi yi ci 1

ci = xi yi + xi ci-1 + yi ci-1 Se sintetizan mediante circuitos lgicos de dos niveles ya que mediante SSBs conectados en cascada resulta ms lento ya que deben de atravesar ms puertas. Sumador binario serie. Con un SBC de 1 bit, dos registros y un elemento de memoria, que realiza la funcin de retardo unitario, se puede disear un circuito que realiza la suma de dos nmeros de n bits. Cuya complejidad es independiente del nmero de bits que hay que sumar, sin embargo el tiempo de operacin crece linealmente con el nmero de bits n. Sumador binario paralelo Mejora la velocidad de los sumadores binarios serie. Se conecta una cadena de SBCs de forma que se introduzcan en paralelo todos los bits de cada uno de los dos operandos. Para sumar n bits se encadenan n SBCs. xn-1 yn-1 x1 y1 x0 y0

cn-1 sn-1

cn-2

c1 s1

c0 s0

c-1

La salida sn-1 no ser vlida hasta que se conozca el arrastre cn-2 producido por el SBC de la etapa anterior. En el caso ms desfavorable el resultado de la suma no ser efectivo hasta que haya pasado un tiempo t = nd , siendo d el tiempo que tarda un SBC en general el arrastre. Por este motivo se le conoce como sumador con propagacin de arrastre. Sumador - restador binario paralelo La forma adecuada de sumar nmeros negativos depende del tipo de representacin que se utilice, magnitud signo, complemento a 1 o complemento a 2. En el caso del complemento a 2 la resta es especialmente sencilla, ya que el valor negativo es fcil de realizar: Se complementan todos los bits

Estructura de Computadores II Se suma 1 teniendo en cuenta esto, se puede disear fcilmente un nico circuito sumador restador:

20

En la representacin de complemento a 1 el resultado obtenido no siempre sera correcto ya que no se puede ignorar la salida cn-1. Si cn-1= 1 hay que sumar 1 al resultado, lo que complica el circuito con respecto al complemento a 2. Deteccin del rebose en el circuito sumador - restador. Cuando se suman nmeros sin signo el arrastre de la ltima etapa sirve de indicador de rebose. En nmeros con signos distintos nunca se produce rebose, por lo que slo queda la situacin en que el signo es igual lo que produce dos casos: Los dos son positivos: El bit de signo es 0 y no puede generar ningn arrastre. El bit de signo de la suma sn-1 ser 1 si se genera algn arrastre de la etapa anterior y el resultado ser incorrecto. Son negativos: Siempre se genera un arrastre en la posicin del bit de signo ( c n1=1). El bit de suma Sn-1 ser 0 sino genera o propaga arrastre desee la etapa anterior ( cn-2=0 ) y el resultado ser incorrecto.

xn-1 0 0 0 0 1

yn-1 0 0 1 1 0

sn-1 0 1 0 1 0

Rebose

0 1 0 0 0 R= Cn 2 Cn 1

Estructura de Computadores II

21

1 1 1

0 1 1

1 0 1

0 1 0

SUMADORES DE ALTA VELOCIDAD


La naturaleza secuencial de la propagacin del arrastre es el problema ms difcil que hay que resolver para acelerar la suma. Las diferentes soluciones son: Aceptacin de la existencia de los arrastres. Anticipacin del arrastre: circuitera extra que desva la generacin del arrastre. Suma condicional: Produce la suma en tiempo O (log n), para n operandos. Detector de fin de arrastre. Disminucin del nmero de arrastres subiendo la base de numeracin. Arrastre almacenado: Para ms de dos sumandos. Caractersticas de los arrastres. El arrastre se genera cuando la suma de los bits es mayor que uno; se propaga desde la posicin (i-1)-sima a (i+1)-sima si la suma de los bits xi, yi es uno: y=0 y=1 x=0 x=1 --p p g

Estas situaciones [ - , p , g ] son mutuamente excluyentes. Sumador con anticipacin de arrastre. Es la forma ms extendida de disear sumadores de alta velocidad. Su principio bsico es el de reducir el retardo producido por la propagacin de los arrastres de los SBCs de menor peso a los de mayor peso. Generando la entrada de arrastre de la entrada i-sima directamente a partir de los bits de entrada a las etapas precedentes. La suma y arrastre i-simo se definen como:

si = pi ci 1 ;

ci = g i + ci 1 pi

A medida que aumenta el nmero de bits del sumador crece la complejidad por lo que esta tcnica no resulta viable. Como solucin se encadenan N SBAAs de X bits con propagacin de arrastre. A pesar de que el SBAA de mayor peso no puede dar su resultado mientras no conozca el acarreo del anterior, el retardo es menor que en la solucin de SBCs. A este tipo de sumadores se les conoce como sumadores con propagacin de arrastre anticipado. Sumadores de suma condicional. En cada bit del sumador se efectan dos sumas diferentes si(0) y si(1), la primera supone que el arrastre de entrada ( ce) a esa posicin es 0 y la segunda que es 1. Sumadores con deteccin de fin de arrastre. El tiempo de operacin de la suma depende de forma lineal del nmero de bits de los sumandos. Como un arrastre de mxima longitud no se da frecuentemente, si esperamos este tiempo siempre, en la mayora de los casos se emplear un tiempo excesivo en el clculo de una suma. La realizacin entre las longitudes de propagacin del arrastre ms desfavorable y el valor medio de la longitud mxima viene expresada por:

t=

n log 2 n

Un sumador que detecte cuando termina la operacin es de naturaleza asncrona ya que no es necesario un intervalo fijo para la realizacin de la suma.

Estructura de Computadores II

22

Sumadores que minimizan el nmero de arrastres. Aumentando la base de numeracin de los operandos con lo que se trabaja se disminuye la propagacin de los arrastres, sin embargo esto se consigue en base a complicar la circuitera, adems de trabajar a velocidades ms bajas. Una forma alternativa de realizar la suma aritmtica en bases superiores a dos es utilizando una tabla de consulta. Si los operandos de entrada son nmeros de m bits, dicha tabla tendr 2m filas X 2m columnas y 22m entradas. Se necesita pues una ROM de 22m palabras (m+1) bits. Los dos sumadores concatenados dan la direccin de memoria cuyo contenido es su suma.

Sumadores BCD. Si se suman dos dgitos BCD en un sumador binario de 4 bits el resultado es correcto si es menor que 10. Cuando es mayor o igual que 10 la suma no es correcta y debe ser corregida sumando 6 en BCD al resultado anterior. El circuito lgico que detecta cuando es necesario corregir el resultado ( c = 1 ) se obtiene de la forma siguiente: Si hay un arrastre en el primer sumador ( suma > 15 ) Si la suma est entre 10 y 15. Las configuraciones desde 1010 hasta 1111 Organizacin de sumadores en cdigo BCD. Sumador paralelo: contiene n sumadores BCD. El arrastre de salida de cada sumador se conecta al arrastre de entrada del siguiente. La suma se genera en paralelo. Sumador dgito serie, bit paralelo: Los dgitos se aplican en serie a un nico sumador BCD, los bits de cada dgito se aplican en paralelo. Sumador dgito serie, bit serie: Es la ms lenta, los bits se desplazan de uno en uno a travs de un SBC. La suma binaria despus de cuatro desplazamientos debe ser corregida para obtener un dgito vlido en BCD.

Restador en cdigo BCD. Una forma econmica de efectuar la resta en cdigo BCD es la de formar el complementa a 9 10 del sustrayendo y sumar al minuendo. Como el cdigo BCD no es autocomplementario, el complemento a 9 se obtiene mediante un circuito que resta cada dgito BCD de 9. Esto se consigue complementando los bits a condicin de que se incluya la correccin necesaria. Existen dos mtodos para efectuar la correccin: Se suma el nmero 10 ( 1010) a cada dgito BCD complementado; no se considera el arrastre despus de cada suma. Se le suma el nmero 6 ( 0100 ) a cada dgito BCD antes de complementarlo.

Estructura de la Unidad Aritmtico Lgica


La complejidad de la UAL viene impuesta por los tipos de operaciones que puede efectuar y la forma que las ejecuta. Si se usan algoritmos anlogos para diferentes operaciones se puede simplificar su diseo.

Circuito comparador.
Un circuito comparador se puede realizar de tres formas: Utilizando un circuito combinacional Utilizando un circuito secuencial Utilizando un sumador Circuito combinacional. En el caso ms general hay que sintetizar tres funciones lgicas Mayor, Menor e Igual, de 2n variables. La complejidad y coste del circuito aumenta de forma considerable con n. Circuito secuencial.

Estructura de Computadores II

23

Un comparador recibe los bits xi, yi de forma serie, comenzando por los ms significativos. El circuito parte de un estado inicial en el que considera que los dos nmeros son iguales y continua en este estado mientras xi = yi. Cuando detecta que xi # yi puede decidir si x > y o x < y. A partir de ese instante el circuito no cambia de estado. El coste del comparador secuencial es independiente de la longitud n de los nmeros, que sin embargo si que afecta al tiempo de ejecucin. Mediante sumador. Dado que la UAL dispone de un sumador, la forma ms usual de realizar la comparacin de dos operandos es restando uno de otro y comprobar el signo del resultado. El procedimiento difiere segn sean nmeros con signo o sin signo.

Estructura de Computadores II

24

Tema 5 Metodologa de diseo


Un sistema digital se puede definir como una coleccin de objetos denominados componentes, que se conectan con un objetivo definido. La funcin que realiza el sistema queda determinada cuando se conoce: La funcin individual de cada componente. La forma en que los componentes se interconectan entre s. El mtodo de diseo puede considerarse a diferentes niveles de detalle o complejidad. Se suelen emplear los siguientes niveles: Nivel de puertas lgicas. Nivel de registros Nivel de procesador La descripcin de un sistema digital se divide en dos partes: la Unidad de Procesamiento y la Unidad de Control. La Unidad de Procesamiento es la parte del sistema digital en la que se almacenan y transforman los datos. Consta de los siguientes elementos: Registros de almacenamiento. Operadores aritmtico lgicos ( recursos de clculo). Red de interconexin ( Camino de datos ). Puntos de control. Seales de condicin. La funcin de la Unidad de Control es generar una secuencia de seales de control de acuerdo con el algoritmo de transferencia de registros, que especifica la realizacin de la operacin deseada. Mdulos de un sistema. Un sistema se puede considerar constituido por dos clases de elementos: Un conjunto de componentes, C, para el procesamiento de la informacin. Un conjunto de seales, S, que transmiten la informacin entre los componentes. Cuando se modela un sistema digital se efecta la correspondencia entre C y los nodo y S y los arcos obteniendo un grafo que recibe el nombre de diagrama de bloques del sistema. Este diagrama sirve para modelar la estructura del sistema pero no muestra su conducta funcional. Para mostrar la conducta funcional se usan las tablas de verdad, puertas lgicas y funciones de conmutacin.

Niveles de diseo: Diseo jerrquico.


Si un sistema complejo se va a disear con puertas lgicas, el proceso de diseo constar de los siguientes pasos: Especificar a nivel de procesador la estructura del sistema. Especificar a nivel de registro la estructura de cada unidad del nivel de procesador. Especificar a nivel de puertas lgicas la estructura de cada componente del nivel registro. Este punto de vista del diseo se conoce como diseo descendente o diseo estructurado. Un buen diseo debe promover la utilizacin de los componentes ms adecuados en cada nivel. Desde esta perspectiva, conviene tener en cuenta las siguientes caractersticas: Independencia de los componentes. Modularidad del diseo.

Nivel de registro.
A este nivel la unidad bsica es la palabra. Atendiendo al tipo de informacin se pueden distinguir dos clase de palabras, la palabra de datos y la de control. Los componentes que se emplean en un cierto nivel de diseo constituyen su principal caracterizacin. Un conjunto de componentes es completo si se puede realizar cualquier funcin lgica utilizando slo mdulos de ese conjunto.

Modelo de un Sistema Digital.


Cuando una mquina es capaz de efectuar diferentes operaciones las seales de seleccin de funcin estn agrupadas en palabras llamadas instrucciones. En estos casos se habla de procesador de un conjunto de instrucciones. El problema de diseo a nivel de transferencia de registros se puede plantear en los trminos siguientes: Dados un conjunto de algoritmos, un repertorio de instrucciones y un conjunto de restricciones, obtener la estructura del circuito que realiza las funciones deseadas empleando slo componentes de este nivel.

Estructura de Computadores II

25

Las ligaduras o restricciones especificadas en un problema de diseo imponen un compromiso entre el coste del circuito y su comportamiento (velocidad, fiabilidad, compatibilidad, ). Para proceder al diseo del sistema digital que realiza una operacin genrica, se subdivide ste en dos partes, Unidad de Procesamiento y Unidad de Control. La Unidad de Procesamiento realiza las funciones de almacenamiento y transformacin de los datos mientras que la Unidad de Control controla la transferencia de los datos, las transformaciones y el secuenciamiento de acciones. La Unidad de Control produce secuencias de seales de control que gobiernan los clculos realizados en la Unidad de Procesamiento. Las unidades de Control y Procesamiento se definen especificando los siguientes elementos: Un conjunto de componentes. La estructura de interconexin entre los componentes. La funcin realizada por los componentes interconectados. La arquitectura de la Unidad de Procesamiento incluye: Un conjunto de registros que almacenan los datos procesados. Un conjunto de primi tivas o recursos que realizan el tratamiento sobre los datos. Una red de interconexin capaz de conectar los registros con los recursos de clculo. Un conjunto de entradas de control denominadas puntos de control. Un conjunto de salidas que constituyen las seales de condicin o seleccin. La funcin que realiza un componente (recurso de clculo, registro o red de interconexin) se determina por las seales de control generadas en la Unidad de Control, que estn presentes en los puntos de control, es decir, se controlan externamente a travs de la Unidad de Control que es un sistema o mquina secuencial.

Unidad de Procesamiento
La Unidad de Procesamiento es aquella parte del sistema en la que se almacenan y transforman los datos. Consta de registros de almacenamiento, operadores (recursos de clculo), red de interconexin (camino de datos), puntos de control y seales de condicin. Estos elementos se organizan de forma que permiten la ejecucin de las operaciones o algoritmos que se necesitan y satisfacen ciertos requisitos de compromiso coste/prestaciones. Las unidades de procesamiento se pueden clasificar en dos grandes grupos; de propsito general o de propsito particular. Puntos de control. Las entradas de la Unidad de Procesamiento que reciben las seales de control se denominan puntos de control y se emplean para controlar la seleccin de operaciones, los caminos de datos y la carga de los registros. Permiten controlar el flujo de informacin a travs de la estructura de la Unidad de Procesamiento. El conjunto de seales de control se pueden clasificar en tres categoras: Relojes. Su activacin permite cargar el registro correspondiente con el contenido presente en ese instante en el camino de datos que le llega Conmutadores. Son dispositivos que controlan y/o seleccionan el paso de informacin de un camino de datos a otro. De transformacin. Controlan las distintas funciones de transformacin que pueden efectuar las unidades funcionales de la Unidad de Procesamiento. Seales de condicin o seleccin. Son salidas de la Unidad de Procesamiento que se utilizan por la Unidad de Control para determinar las seales de control condicionales o secuencias alternativas. En el lenguaje de descripcin se especifican en secuencias de asignacin condicionales o rupturas de secuencias condicionales.

Unidad de Control
La funcin de la Unidad de Control es generar una secuencia de seales de control de acuerdo con el algoritmo de transferencia de registro que describe la operacin deseada Sus entradas son las seales de condicin generadas por la Unidad de Procesamiento, ms las entradas de control externas. Sus salidas son las seales de control que se distribuyen por los correspondientes puntos de control de la Unidad de Procesamiento. La especificacin de la Unidad de Control consiste en definir sus dos funciones: Generacin de seales de control. Secuenciamiento de las seales de control.

Estructura de Computadores II

26

Existen varios mtodos de realizar la Unidad de Control que van desde las estructuras fijas de lgica cableada sintetizadas con elementos de memoria y puertas lgicas, a estructuras flexibles y modificables de tipo programable. Unidad de Control con lgica cableada. Es el procedimiento convencional de diseo de circuitos secuenciales que se conoce como mtodo de la tabla de estados. Las funciones de transicin de estados y de salida se realizan con lgica combinacional y no son modificables sin tener que volver a sintetizar el circuito. Por lo que no se puede comenzar el diseo hasta que no se conocen de manera precisa todos los detalles del mismo. Dados el algoritmo de transferencia de registros y la Unidad de Procesamiento, el diseo de la Unidad de Control cableada por el mtodo de los estados consta de los siguientes pasos: Introducir un estado por cada sentencia del algoritmo de transferencia de registros. Si las microoperaciones son independientes y se pueden completar en un ciclo de reloj, se agrupan en un nico estado. Construir el diagrama de estados de acuerdo con las relaciones especificadas en el algoritmo de transferencia de registros. Por cada nodo (estado) determinar las salidas (seales de control) que estn activas. Para cada arista determinar las entradas (externas y seales de condicin) que originan la transicin entre estados. Aplicar el procedimiento general de sntesis de circuitos secuenciales al diagrama de estados. Modelo sistemtico de sntesis de circuitos secuenciales. Modelar las especificaciones de la conducta secuencial deseada. Minimizar el nmero de estados. Codificar las entradas, salidas y estados. Seleccionar el tipo de elemento de memoria. Diseo de la circuitera combinacional. Unidad de Control basada en elemento de retardo. Esta realizacin es adecuada cuando el nmero de estados es pequeo. La codificacin de cada estado se realiza con un elemento de memoria tipo D, lo que simplifica el procedimiento de diseo. De esta manera, la transformacin entre el diagrama de estados y el circuito secuencial es directa. Cuando la transicin al prximo estado no depende de ninguna variable de condicin su realizacin es inmediata, la salida del elemento de memoria asociado con el estado Si se conecta a la entrada del elemento de memoria asociado con el elemento Sj. Cuando la transicin depende del valor que toman las variables de condicin la transformacin se puede hacer con una puerta OR y un demultiplexor. Unidad de Control basada en contadores. La utilizacin de un contador como registro de estado en la sntesis de un circuito secuencial tiene ciertas ventajas: Si el algoritmo de transferencia de registros presenta una estructura lineal (flujo secuencial de sentencias), la Unidad de Control se puede realizar programando el contador para que est en modo contaje (H=1). Las rupturas de secuencia en el algoritmo de transferencia de registro se efectan programando el contador para que este en modo carga paralela (L=1). Unidad de Control basada en registros de desplazamiento. Presenta las mismas ventajas que la realizacin basada en contadores. En este caso, la asignacin del prximo estado corresponde a un cdigo obtenido por uno de los dos mtodos siguientes: a. Desplazando a derecha o izquierda el estado presente. b. Cargando un nuevo estado en el registro de desplazamiento a travs de las entradas de carga en paralelo. La primera opcin se utiliza para codificar estados que van en secuencia en el diagrama de estados, mientras que la segunda se usa cuando hay rupturas se secuencia. Unidad de Control basada en memorias ROMs. Proporciona una realizacin de la Unidad de Control ms flexible que las consideradas anteriormente. Las distintas arquitecturas que incorporan ROMs difieren en la forma que trata las variables de condicin. En el esquema tpico, todas las variables de condicin se utilizan con parte de las lneas de direccin de la ROM. Si hay q variables de condicin, para cada estado se requieren 2q palabras ROM. Para n variables de estado se hay 2n grupos de 2q palabras, lo que hace un total de 2n+q palabras. Cada

Estructura de Computadores II

27

palabra de la ROM consta de dos campos uno de n bits que representa el prximo estado y otro de m bits que constituyen las palabras de control.

ROM Variables de condicin Direccin q n+q 2n+q palabras (n+m) bits

Prximo estado Inicio Reloj Estado presente Cl

n m

Registro n Seales de control

Un mtodo para reducir el tamao de la ROM se basa en el hecho de que no todas las variables de condicin son necesarias para cada estado. Si slo se necesita una variable de condicin en cualquier estado es mejor seleccionar dicha variable fuera de la ROM, lo que reduce su tamao a dos palabras por estado, lo que da un tamao de 2n+1 palabras. Para seleccionar la variable de condicin que se precisa en cada estado se puede emplear un multiplexor controlado por las variables de estado.

Multiplexor Variables de condicin 2n Seleccin

ROM Direccin 1 n+1 2n+1 palabras (n+m) bits

Prximo estado Inicio Reloj Estado presente Cl

n m

Registro n Seales de control

Como alternativa se puede emplear un multiplexor de q entradas y log2q variables de control que permite seleccionar una condicin para cada estado. El tamao de la ROM ser de 2n+1 palabras con una longitud de log2q + m+ n bits. El mtodo de seleccin por campo es preferible al de seleccin por estado si el nmero total de variables de condicin es ms pequeo que el nmero de estados.

Estructura de Computadores II

28

Multiplexor Variables de condicin q

ROM Direccin 1 n+1 2n+1 palabras (log2q+n+m) bits

Seleccin

log2q

Prximo estado Inicio Reloj Cl

n m

Registro n Seales de control

Estado presente

Unidad de Control basada en PLAs. Las variables de condicin y de estado son las entradas al array AND del PLA. El prximo estado y las seales de control son las salidas del array OR. La transformacin de un diagrama de estados en una realizacin con PLA y un registro es directa: En el array AND se asigna una columna a cada uno de los prximos estados de todos los estados. En el array OR la correspondiente columna del array AND especifica el prximo estado y las seales de control.

Estructura de Computadores II

29

Tema 6 Unidad de Control.


La funcin de la Unidad de Control de un computador es la bsqueda de las instrucciones de memoria, su interpretacin y generacin, en los instantes adecuados, de las seales de control necesarias para ejecutar la operacin especificada por cada instruccin. En este proceso se pueden distinguir dos aspectos: el secuenciamiento de las instrucciones y la interpretacin de las mismas.

Secuenciamiento de Instrucciones.
Es el proceso por el cual las instrucciones de un programa van siendo seleccionadas para su ejecucin en un orden determinado. El mtodo ms simple sera que cada instruccin especifique su sucesora o sucesoras, especificacin explcita, tiene como desventaja que alarga el formato de las instrucciones provocando el consiguiente aumento de memoria necesaria para almacenar un programa. Dado que la mayor parte de las instrucciones de un programa tienen una nica sucesora, si una instruccin i se almacena en la posicin de memoria m y tiene una nica sucesora i1 resulta natural almacenar la instruccin i1 en la posicin m+1. Con este sistema se puede emplear para el secuenciamiento de instrucciones, un registro contador de programa. En general, si la instruccin i necesita p palabras de memoria, el incremento que debe sufrir el Contador de Programa para pasar a i1 ser CP CP + p. La seleccin de un camino y la realizacin de bucles, requieren instrucciones capaces de transferir el control a una instruccin distinta a la que le sigue, son las rupturas condicionales e incondicionales. Con frecuencia tambin es necesario la realizar un mecanismo de transferencia de control temporal desde un programa P a un subprograma S. Existen dos situaciones en las que esto ocurre, los saltos a subrutinas y las interrupciones.

Microoperaciones.
La operacin de un computador, al ejecutar un programa es una secuencia ciclos de instruccin con una instruccin mquina por ciclo. La secuencia de ciclos de instruccin no es necesariamente la misma que la secuencia de instrucciones del programa debido a la existencia de instrucciones de ruptura de secuencia. Cada ciclo de control se puede considerar compuesto de una serie de unidades ms pequeas llamadas fases o ciclos, que son: bsqueda, direccionamiento indirecto, ejecucin e interrupcin. De ellos slo los ciclos de bsqueda y ejecucin estn presentes en todas las instrucciones. Cada una de las fases de una instruccin supone una serie de pasos en los que intervienen los registros de la UCP. A estos pasos elementales se les conoce como micooperaciones. El prefijo micro se refiere al hecho de que se considera cada paso como una unidad indivisible, que cuando se ejecuta supone un pequeo cambio en el estado del procesador. Ciclo de bsqueda. Ocurre al comienzo de cada ciclo de instruccin y origina que se realice la bsqueda de la instruccin en memoria.

Memoria

Bus de Control Bus de Datos Bus de Direccin

RD UCP CP

Unidad de Control

RM

RI

Estructura de Computadores II

30

Se utilizan los cuatro registros siguientes: Registro de direccin de memoria (RD). Conectado a las lneas del bus del sistema, especifica la prxima direccin de memoria a leer o escribir. Registro de datos de memoria (RM). Conectado al bus de datos de sistema, contiene el dato a escribir en memoria o ledo de memoria. Contador de programa (CP). Almacena la direccin de la prxima instruccin que hay que buscar en memoria. Registro de instruccin (RI). Almacena la ltima instruccin leda de memoria. El ciclo de bsqueda consta de tres pasos y cuatro microoperaciones, cada microoperacin implica el movimiento de algn dato desde o hacia alguno de los cuatro registros. Si estos movimientos no interfieren unos con otros, pueden tener lugar dentro del mismo paso, lo que acelera la ejecucin del ciclo. Posibles secuencias del ciclo de bsqueda
Ciclo de bsqueda Microoperaciones Ciclo de bsqueda Microoperaciones

Paso 1 Paso 2 Paso 3

RD (CP) RM Memoria CP (CP) + 1 RI (RM)

Paso 1 Paso 2 Paso 3

RD (CP) RM Memoria CP (CP) +1 RI (RI) + 1

Para agrupar microoperaciones se deben seguir dos reglas simples: Respeta r la secuencia de acciones. Evitar conflictos de lectura/escritura. Ciclo de direccionamiento indirecto Una vez buscada la instruccin, el paso siguiente es encontrar los operandos a los que se refiere. Se supone que la instruccin tiene un formato unidireccional y que son posibles los direccionamientos directo e indirecto. Si la instruccin especifica un direccionamiento indirecto, un ciclo de este tipo debe preceder al de ejecucin. Ciclo de interrupcin. A la finalizacin del ciclo de instruccin, se efecta un test para determinar si existe alguna peticin de interrupcin pendiente, Si es as se pasa al ciclo de interrupcin. La naturaleza de este ciclo vara mucho de una mquina a otra. Ciclo de ejecucin Los ciclo de bsqueda, direccionamiento indirecto e interrupcin son simples y predecibles. Cada uno de ellos contiene una secuencia fija de microoperaciones y en cada caso, las mismas microoperaciones se repiten una y otra vez. Esto no sucede con el ciclo de ejecucin, ya que para una mquina con N cdigos de operacin, hay N secuencias distintas de microoperaciones. Ciclo de instruccin. Cada fase del ciclo de instruccin se puede descomponer en una secuencia de operaciones elementales llamadas microoperaciones. Para reconocer en que fase de instruccin se encuentra se introduce el cdigo de ciclo de instruccin de dos bits.

Interpretacin de las instrucciones.


Todas las microoperaciones que se necesitan para realizar un ciclo de instruccin, incluyendo las especficas de cada una de las instrucciones del repertorio de instrucciones de la UCP, pertenecen a una de las categoras siguientes: 1- Transferencia de datos desde un registro a otro 2- Transferencia de datos desde un registro al bus del sistema 3- Transferencia de datos desde el bus del sistema a un registro 4- Realizacin de una operacin aritmtico lgica, utilizando registros como E/S. La unidad de control realiza dos funciones bsicas:

Estructura de Computadores II

31

Secuenciamiento de las microoperaciones de la UCP Ejecucin de las microoperaciones. Para que la Unidad de Control realice su tarea debe poseer entradas que le permitan determinar el estado del sistema y salidas que puedan controlar su funcionamiento, Son las especificaciones externas de la Unidad de Control. Internamente la Unidad de Control contiene los componentes lgicos necesarios para hacer sus funciones se secuenciamiento y ejecucin. Las entradas a una Unidad de Control son: Reloj: Permite a la UCP mantener la temporizacin bsica de todo el sistema. La Unidad de Control realiza una microoperacin ( o un conjunto de ellas simultneas) durante cada pulso de reloj, que se denomina ciclo del procesador. Registro de instruccin. El cdigo de operacin de la instruccin actual se utiliza para determinar que microoperacin hay que ejecutar durante el ciclo de ejecucin. Seales de condicin. Las necesita la Unidad de Control para conocer el estado en que se encuentran la UCP y el resultado de las operaciones anteriores realizadas por la UAL. Seales de control del bus del sistema. Seales de interrupcin, etc. Sus salidas son: Seales de control internas a la UCP. Hay dos tipos: las que originan que los datos se muevan entre los registros y las que activan funciones especficas de la UAL. Seales de control hacia el bus del sistema: de control de memoria y de control a mdulos E/S. Organizacin interna de la UCP. Para simplificar la organizacin y diseo de la UCP se organizan todos sus elementos alrededor de un bus interno. Con esta disposicin se deben de proporcionar los puntos de control necesarios para permitir el movimiento de entradas y salidas del bus desde todos los registros. Se necesitan puntos de control adicionales para transferir datos a y desde el bus externo del computador y para gobernar el funcionamiento de la UAL.

Unidad de Control con Lgica Programada


Es esencialmente un circuito secuencial. Sus entradas se transforman en un conjunto de salidas que son sus seales de control. Entradas de la Unidad de Control

Registro de instruccin

Decodificador

I0 I1

IK

Reloj

Generador de subciclos

Unidad de Control

S0 Sp

C0 C1 .. Cm Seales de control

Dado que el computador ejecuta un conjunto de instrucciones ser necesario un circuito asociado a la Unidad de Control que identifique cual es la instruccin que se est ejecutando, de tal forma que si la UCP est ejecutando la instruccin I, la Unidad de Control genera exclusivamente la secuencia de microoperaciones que realiza la instruccin. El elemento responsable de esta funcin es el decodificador

Estructura de Computadores II

32

de instrucciones, que es un circuito combinacional que tiene como entrada el cdigo de instruccin almacenado en el registro de instruccin. El generador de subciclos de la Unidad de Control produce una secuencia de pulsos repetitivos que se utilizan para medir la duracin de las microoperaciones. El periodo de impulsos del reloj debe ser suficiente para permitir la propagacin de las seales a travs de los distintos caminos de datos que existen en la UCP. Dado que la Unidad de Control genera seales de control en diferentes instantes de tiempo durante un ciclo de instruccin, se divide el ciclo en un conjunto de subciclos suficiente para que se puedan ejecutar todas las instrucciones mquina del computador. Esta secuencia se repite peridicamente con la ejecucin de cada instruccin. Dado que el nmero de ecuaciones lgicas que se necesitan para definir la UCP es muy grande se usa un enfoque ms sistemtico para la Unidad de Control que se conoce como microprogramacin.

Unidad de control microprogramada.


La microprogramacin es un mtodo para el diseo de la Unidad de Control que se basa en el hecho de que una instruccin se puede especificar mediante una secuencia de instrucciones primitivas llamadas microinstrucciones. La ejecucin de una microinstruccin requiere una secuencia de bsqueda - decodificacin ejecucin que aunque es ms simple debe ser controlada por otra Unidad de Control. De una forma recursiva se podra considerar que esta nueva y ms sencilla Unidad de Control se realiza con tcnicas de microprogramacin. La solucin de este problema recursivo obliga a que la Unidad de Control final se realice mediante lgica de tipo cableado. La microprogramacin se puede considerar como un mtodo sistemtico para disear la Unidad de Control de cualquier sistema digital. Conceptos bsicos. La microprogramacin permite generalizar un diseo de la Unidad de Control basado en la utilizacin de memorias ROM. Las funciones de transicin de estado y de salida se sintetizan mediante tablas de consulta que estn en una RAM o ROM. Cada sentencia del algoritmo de transferencia de registros que se almacena en una palabra de la memoria constituye lo que se denomina microinstruccin. Una microinstruccin es pues una o ms microoperaciones que se pueden ejecutar de forma simultnea y que est contenida en una palabra de la ROM o RAM (palabra de control). Cada microinstruccin estara representada por un conjunto diferente de 1s y 0s contenidos en las palabras de control. Los elementos que definen una microinstruccin son: 1- Las seales de control que estn activas durante la ejecucin de la microinstruccin y su temporizacin 2- El secuenciamiento de informacin que determina la prxima microinstruccin que hay que ejecutar. As pues, una microinstruccin est compuesta de algunos campos que definen las seales de control, la direccin de la prxima microinstruccin y su temporizacin. El campo de control especifica los valores de las seales de control durante la ejecucin de la microinstruccin y est dividido en subcampos, cada uno de los cuales gobierna una microoperacin cuando se ejecuta la microinstruccin, por lo que el nmero de microoperaciones concurrentes no puede ser mayor que el nmero de subcampos de control. Existen dos formas bsicas de definir los subcampos de control: a- Formato horizontal: Cada seal de control tiene un subcampo independiente de un bit que indica el correspondiente valor de la seal de control. Proporciona la mxima concurrencia entre seales de control. b- Formato vertical: Emplea un subcampo con varios bits para codificar subconjunto de las seales de control. Un subcampo de j bits puede especificar 2j-1 seales de control. Como en cada momento slo puede haber una seal activa por subcampo, hay que elegirlos de forma que se garantice que las operaciones que controlan nunca se necesitan de forma simultnea. Es ms lento que el formato horizontal, pero utiliza longitudes de palabra ms pequeas y requiere memorias de control ms pequeas. No tiene las seales de control decodificadas. Arquitectura de una Unidad de Control microprogramada

Estructura de Computadores II

33

Los elementos clave son: El registro de direccin de memoria de control (RDC) que mantiene la direccin de la prxima microinstruccin que se va a leer. Cuando se lee una microinstruccin de la memoria de control, se transfiere al registro de datos de la memoria de control (RMC).

Secuenciamiento de las microinstrucciones: Las dos tareas bsicas realizadas por una Unidad de Control microprogramada son: Secuenciamiento de las microinstrucciones. Obtener la prxima microinstruccin de la memoria de control. Ejecucin de las microinstrucciones, consiste en generar las seales de control que se necesitan para ejecutar la microinstruccin. La determinacin de la siguiente microinstruccin se puede realizar: Por direccionamiento explcito: La direccin de la prxima instruccin se especifica en un campo separado. Es muy flexible y rpida, pero precisa una longitud grande. Trata de optimizar la utilizacin de la memoria de control. Esta direccin se carga en el registro de direccin de memoria de control (RDC). Cuando en el microprograma existen rupturas de secuencia condicional se necesitan dos o ms direcciones por microinstruccin. En este esquema la memoria de control puede ser vista como una lista encadenada En la arquitectura de una Unidad de Control microprogramada con dos direcciones por instruccin cada microinstruccin tiene asociada su propio microprograma, almacenado a partir de una posicin determinada de la memoria de control. La transformacin de los bits del cdigo de operacin de la instruccin, en una direccin de la memoria de control donde est localizado el microprograma, la realiza un bloque denominado lgica de transformacin. Un procedimiento de transformacin es una regla que convierte el cdigo de una instruccin en una direccin de la memoria de control. El bloque lgica de bifurcacin proporciona la capacidad de toma de decisiones en la Unidad de Control. El formato con dos campos de direccin por microinstruccin produce memorias de control con longitudes de palabras grandes. Otra posibilidad de direccionamiento explcito que mejora este aspecto es el de usar un formato de microinstruccin con slo un campo de direccin. Por direccionamiento implcito: Reduce el tamao. La microinstruccin se ejecuta en el orden que se almacena en la memoria de control. Por lo que no se necesita ninguna informacin de secuenciamiento en la misma microinstruccin que slo contiene los campos de control. Se necesita una microinstruccin especial para especificar una bifurcacin, que tendr dos campos. El primero define la condicin que se utiliza para efectuar la bifurcacin y el segundo la direccin de sta. Ejecucin de una microinstruccin El ciclo de ejecucin de una microinstruccin consta de las siguientes fases: Bsqueda (lectura de una microinstruccin). Decodificacin de los campos de la microinstruccin. Ejecucin de las microoperaciones. Clculo de la direccin de la siguiente microinstruccin. Atendiendo a la forma en que cada microinstruccin se ejecuta se pueden clasificar en: Monofsicas: Las microoperaciones especificadas en la microinstruccin se pueden ejecutar todas a la vez. Polifsicas: Sus campo se utilizan de forma escalonada a los largo del tiempo de ejecucin. Apropiadas cuando la bsqueda es lenta a comparacin con su ejecucin.

Conclusiones
Un computador es una mquina programable de propsito general. El programador ve al computador como una mquina en cuya estructura se puede suponer que existe una jerarqua de niveles de abstraccin: Nivel lgico Microprogramacin Lenguaje mquina Lenguaje ensamblador

Estructura de Computadores II Lenguaje de alto nivel

34

Un intrprete es un sistema que analiza y ejecuta instrucciones del lenguaje que describe un determinado nivel. Cada nivel de abstraccin de un computador es idealmente ejecutado por un intrprete realizado en el nivel inmediatamente superior de la jerarqua. La Unidad de Control de un computador se encarga de extraer de la memoria cada instruccin, decodificarla y generar la secuencia correcta de seales de control para que pueda ejecutarse. Es decir, interpreta el lenguaje mquina de un computador y est constituida por niveles lgicos y de microprogramacin. Un interprete del nivel de microprogramacin interpreta las instrucciones del lenguaje de microprogramacin, llamadas microinstrucciones, directamente sobre los circuitos digitales del nivel lgico. Un interprete del nivel de lenguaje mquina interpreta las instrucciones del lenguaje mquina del computador con la ayuda de una Unidad de Control microprogramada. Si se suprime y se interpreta el lenguaje mquina directamente sobre el nivel lgico se habla de una Unidad de Control con lgica cableada, mientras que en el anterior se dispone de una Unidad de Control con lgica microprogramada. En la Unidad de Control microprogramada las seales de control se generan por programa y resulta sencillo introducir modificaciones en el diseo, ya que slo se necesita alterar el contenido de la memoria de control. Cuando esta es del tipo RAM se dice que la Unidad de Control es microprogramable.

Вам также может понравиться