Академический Документы
Профессиональный Документы
Культура Документы
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.
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.
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
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
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
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
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.
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.
Pila formada por una zona de memoria principal Utiliza la memoria principal Bajo coste Gran capacidad
Ventajas
Velocidad alta
Desventajas
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
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.
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.
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
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.
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.
Tema 4
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
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).
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
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.
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
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.
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.
n m
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.
n m
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
Seleccin
log2q
n m
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
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
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
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.
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.
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.
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
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.