Logo Studenta

etcii

¡Este material tiene más páginas!

Vista previa del material en texto

Estructura de Computadores II 1
Tema 1 Estructuras de interconexión de un computador.
En el nivel jerárquico 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 señales de control que
intercambia con otros módulos.
2- La estructura de interconexión y las ordenes de control que se necesitan para gestionar su
utilización.
Componentes de un Computador.
La arquitectura Von Newman se fundamenta en tres ideas claves:
a- En la memoria del computador se almacenan simultáneamente datos e instrucciones.
b- Se puede acceder a la información contenida en la memoria especificando la dirección
donde se encuentra almacenada. La memoria no distingue si lo que contiene es un dato o
una instrucción.
c- La ejecución de un programa se realiza de forma secuencial de una instrucción a la que le
sigue, al no ser que se modifique la frecuencia con una ruptura.
Con esta filosofía se pueden plantear dos procedimientos de construcción, en primer lugar se
puede diseñar un sistema a medida, la alternativa consiste en considerar una configuración de módulos
aritméticos y lógicos de propósito general. Los componentes básicos del sistema son:
1- Interprete de instrucciones: Unidad de Control.
2- Módulo de funciones lógicas y aritméticas de propósito general: Unidad Aritmético Lógica.
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 conexión 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 dirección de memoria: Especifica la próxima dirección 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 leído.
El módulo de E/S también dispone de registros internos análogos.
• Registro de dirección 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 módulo de
E/S y la UCP.
Función de un computador.
La secuencia de operaciones realizadas en la ejecución de una instrucción constituye lo que se
denomina ciclo de instrucción. El punto de vista más sencillo es considerar que el procesamiento del
ciclo de instrucción consta de dos pasos:
• Fase o ciclo de búsqueda.
• Fase o ciclo de ejecución
La ejecución de un programa consiste en la repetición cíclica de las fase de búsqueda y
ejecución de las instrucciones, y finaliza mediante una de las siguientes acciones:
1- Se desconecta el computador.
2- Ocurre algún tipo de error irrecuperable.
3- Se ejecuta una instrucción que fuerza su terminación
Ciclo de búsqueda y ejecución.
En el comienzo de cada ciclo de instrucción la UCP busca en la memoria una instrucción. En la
UCP se dispone para ello de un registro llamado contador de programa. La instrucción leída se carga
(almacena) en un registro de la UCP llamado registro de instrucción. La UCP interpreta la instrucción y
ejecuta la acción indicada. En general la acción será una combinación de las siguientes categorías:
UCP - Memoria
UCP - Entrada/Salida
Procesamiento de datos
Estructura de Computadores II 2
Control
Ciclo de interrupción.
Todos los computadores disponen de un mecanismo para que otros módulos 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 añadir en el ciclo de instrucción un ciclo
de interrupción. En este ciclo la UCP comprueba si se ha producido alguna interrupción y en caso
afirmativo indica su presencia mediante una señal apropiada. Si no existe ninguna señal de interrupción
que este pendiente de estar atendida, la UCP continúa con el ciclo de búsqueda de la siguiente
instrucción del programa. Si por el contrario la UCP observa activada la señal de interrupción hace lo
siguiente:
• Guarda el contexto del programa que está ejecutando.
• Carga en el contador de programa la dirección de comienzo de un programa encargado de
gestionar la interrupción.
Las interrupciones no se atienden siempre de forma inmediata. Es posible desactivarlas todas de
forma selectiva y posteriormente volverlas a activar.
Función de E/S
Un módulo de E/S puede intercambiar datos directamente con la UCP. De la misma forma que
la UCP puede iniciar una operación de lectura o escritura con memoria designando la dirección, la UCP
puede leer o escribir en un módulo 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 módulo de E/S la capacidad de leer o
escribir en memoria, de manera que la transferencia E/S - memoria ocurre sin la intervención de la
UCP.
Estructuras de interconexión.
El conjunto de caminos que conectan los diferentes módulos constituye la estructura de
interconexión. El diseño de esta estructura dependerá de los intercambios que se tengan que hacer entre
los módulos. Se han propuesto diferentes estructuras de interconexión para la arquitectura de un
computador:
E/S a través de la UCP: La UCP y los módulos de E/S comparten la misma vía de acceso a
memoria, por lo que la UCP debe parar sus cálculos al tener que controlar todos los intercambios. No es
posible el acceso directo a memoria desde los módulos de E/S. Es la forma más económica, pero reduce
el rendimiento de la UCP.
E/S a través de memoria: Es posible el acceso directo a memoria principal de dos o más
componentes de forma independiente. El módulo de memoria contiene la lógica de control necesaria
para resolver los conflictos. Se puede realizar transferencias entre la unidad de E/S y la memoria
mientras la UCP realiza cálculos. Sus mecanismos de control son complejos y poco flexibles, es difícil
añadir módulos adicionales.
E/S mediante conmutador central: Existe un mecanismo de distribución centralizado al cual se
unen todos los componentes. El conmutador central controla el acceso a memoria tanto de la UCP como
de los módulos de E/S. La UCP queda libre para realizar cálculos. Al mismo tiempo se puede informar a
la UCP sobre las actividades que se realizan y proporciona una conexión 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 líneas que se comparten por todos los módulos. En un instante sólo
un módulo puede transmitir de forma satisfactoria, y una o más de las unidades deben encargarse de
controlar la utilización del bus. Es simple y flexible y se ha convertido en estándar.
Interconexión mediante bus.
Estructura de Computadores II 3
Un bus es un medio de transmisión compartido. Al bus se conectan múltiples dispositivos, y una
señal transmitida por cualquiera de ellos puede ser recibida por todas las otras unidades. En un
determinado instante de tiempo sólo es posible la transmisión por parte de un único elemento
dispositivo.
Estructura de bus
Un bus es un conjunto de líneas independientes con una función particular. Se pueden clasificar
en tres grupo funcionales:
• Líneas de datos.
• Líneas de dirección.
• Líneas de control.
Las líneas de datos forman el bus de datos, cuya anchura es fundamental para determinar el
rendimiento global del sistema. Las líneas de dirección seleccionan la fuente o el destino de la
información 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 líneas de control gobiernan el acceso y el
uso de las líneas de datos y dirección. Transmiten tanto órdenes como información de temporización
entre los módulos del sistema.
Para que un módulo envíe los datos a otro sedebe hacer dos cosas:
1- Obtener el uso del bus.
2- Transmitir al módulo los datos a través del bus.
Si se quiere pedir datos de otro módulo:
1- Obtener el uso del bus.
2- Transferir la petición por las líneas de dirección y control.
3- Esperar los datos.
Elementos de diseño del bus
Las líneas del bus se agrupan en dos tipos genéricas: dedicadas y no dedicadas. Una línea de
bus dedicada se asigna de forma permanente a una función o a un subconjunto de componentes del
computador. Puede ser funcional o física. La dedicación física se refiere al uso de múltiples buses, cada
uno se conecta a un subconjunto de módulos. Tiene mayor rendimiento debido a la menor contención del
bus, pero aumenta el tamaño y el coste.
En las líneas no dedicadas la información sobre la dirección y los datos se transmite por el
mismo conjunto de líneas utilizando una línea de dirección válida. El método de utilizar las mismas
líneas con objetivos diferentes se conoce como multiplexación en el tiempo. Aunque este sistema
complica la circuitería y reduce el rendimiento del computador.
Dado que se puede dar el caso de que más de un módulo desee el control del bus se requieren
métodos 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 utilización del bus. En un
esquema distribuido cada módulo contiene la lógica de control para acceder al bus, actuando de forma
cooperativa para compartir el recurso.
El objetivo de ambos métodos de arbitraje es designar un dispositivo ( UCP o módulo de E/S )
como maestro y otro actúa como esclavo.
La temporización contempla como se coordinan los sucesos sobre el bus. Si es síncrona los
sucesos sobre el bus están determinado sobre un reloj. El bus incluye una línea de reloj sobre la que se
transmite una secuencia regular.
La temporización asíncrona es más 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
temporización asíncrona pueden compartir el bus una mezcla de dispositivos lentos y rápidos.
Ancho de banda (B): Máxima velocidad de transferencia en bits/seg.
Fracción de ancho de banda, cuantifica el grado de ocupación de la velocidad de transferencia
de la memoria cuando se realizan operaciones de E/S con un periférico. Su valor está entre 0 y 1.
B periférico / B memoria.
Consideraciones prácticas en la conexión mediante bus.
La utilización 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 4
línea del bus de dirección a través de todos los circuitos de un bloque de memoria se le hace pasar a
través de una etapa de circuitos denominados “drivers”, que no realizan ninguna función lógica, y su
única misión es que desde el bus se contemple el bloque de memoria como un único circuito.
Tema 2 Unidad de memoria.
Definiciones y conceptos básicos:
Localización:
Es uno de los aspectos más 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 pequeño 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 rápida, utilizada para el almacenamiento de
los programas y sus datos correspondientes. Se puede acceder a ella mediante instrucciones
máquina.
c. Memoria externa o secundaria: Dispositivos periféricos de almacenamiento accesibles a la
UCP a través de controladores de E/S. En los dispositivos externos se distingue entre
controlador y soporte de la información. El controlador se encarga de dirigir los
componentes mecánicos y electrónicos del dispositivo, de esta forma se libera a la UCP de
gran parte de la gestión de E/S. El soporte es el medio físico donde se almacena la
información.
Capacidad
Es la cantidad de información 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 número de líneas de entrada y
salida al módulo de memoria. Puede coincidir con la longitud de la palabra pero puede no hacerlo.
En la memoria principal es el número de bits leídos o escritos en la memoria simultáneamente,
y no tiene porque ser una palabra. Para memorias externas los datos se transfieren en bloques.
Método de acceso
a- Acceso aleatorio: Puede accederse a las informaciones en cualquier orden, siendo el tiempo
independiente de la posición donde está localizada la información. (RAM). La unidad de
dato es la celda.
b- Acceso secuencial: Se accede a la información almacenada mediante una secuencia lineal.
El tiempo de acceso es variable y depende de la posición ( SAM ). Las unidades de datos
elementales de una memoria SAM se llaman registros.
c- Acceso directo: Los bloques o registros individuales tienen una dirección única que se basa
en su posición física. El acceso se realiza de forma aleatoria para alcanzar el registro donde
se encuentra la información, y a continuación se realiza una búsqueda 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 posición, sino que se pregunta si existe una posición de memoria que
contiene una palabra determinada. Cada posición tiene su propio mecanismo de
direccionamiento y el tiempo de recuperación de información es constante e independiente
de la localización y configuración del acceso previo.
Tipos físicos
a) Memorias de semiconductor : memorias principales.
b) Memorias magnéticas: memorias secundarias.
c) Memorias ópticas : memorias secundarias.
Estructura de Computadores II 5
Características físicas
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 eléctricamente EEPROM o por rayos
ultravioletas UVEPROM .
b) Permanencia de la información:
1- Lectura destructiva: (Núcleos de ferrita) DRO, para evitar la destrucción del
contenido hay que grabarlas después de leerlas. Si no son destructivas NDRO.
2- Volatilidad :Posible destrucción de la información con un corte de suministro.
Volátiles y no volátiles.
3- Almacenamiento estático/dinámico : Una memoria es estática si su información no
varía con el tiempo, en caso contrario la información se pierde con el tiempo y hay
que refrescarla, lo que supone una dificultad de diseño, aunque las memorias
dinámicas suelen tener mayor capacidad y menos consumo que las estáticas.
Velocidad: Para medir el rendimiento se utilizan los siguientes parámetros:
a) Tiempo de acceso ( TA ). Se define como el tiempo medio necesario para leer/escribir una
cantidad fija de información.
b) Tiempo de ciclo de memoria (tc) ; el intervalo de tiempo mínimo entre dos lecturas
consecutivas, puede ser mayor que TA .
c) Velocidad de transferencia o frecuencia de acceso ( fA): Es el número 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 : Número de bits.
p : Velocidad de transferencia (bits/seg.)
Organización
Es la disposición física de los bits para formar palabras
Jerarquías de memoria.
El diseño de la unidad de memoria de un computador se ve afectada por una jerarquía de
componentes que se ve afectada por tres parámetros: capacidad, coste y rapidez. Estos tres parámetros
están íntimamente ligados
Menor tiempode acceso à Mayor coste por bit
Mayor capacidad à Menor coste por bit
Mayor capacidad à Mayor tiempo de acceso
La solución a este conflicto está en emplear una jerarquía de memorias en lugar de una única
tecnología.
Nivel
Superior Registros de
la UCP Memoria
Interna
 Memoria Caché Datos a los
fA decrece que la UCP
 Memoria Principal accede con
frecuencia
 Discos Magnéticos Memoria
Externa
 Cintas Magnéticas
Nivel
Inferior
Estructura de Computadores II 6
Cuando se va a los niveles inferiores de la jerarquía 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 utilización de las jerarquías de memoria las memorias rápidas 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 condición 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 más bajo se esté en la jerarquía.
El tiempo de acceso medio total (tA) empleado por la UCP para acceder a una palabra se puede
expresar por la relación:
tA = tA1+ tA2 - 
Tt A2
100
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.
Memorias de semiconductor.
Características 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
dirección.
n
Bus de Direcciones
m
SC CIM Bus de Datos
R/W
El número de líneas n del bus de dirección es tal que 2n = N, siendo N el número de palabras
del CIM. El número de líneas m del bus de datos se corresponden con la longitud de la palabra.
Estructura de la celda básica de memoria:
Selección
Salida
Entrada
 S Q
 R Q
Escritura
Selección Escritura Contenido Salida
Estructura de Computadores II 7
 0 X Contenido 0
 1 0 Contenido Contenido
 1 1 Entrada Entrada
El elemento básico de un CIM es la celda de memoria que permite almacenar un bit de
información. Aunque de diferentes tecnologías, 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
Organización interna:
Cada CIM contiene una matriz de celdas de memoria su estructura interna suele ser de dos
tipos:
n Organización 2D ( por palabras o lineal )
Es el método más simple, aunque su coste es más elevado. El módulo de memoria se compone
de una matriz de celdas básicas. Para una memoria de 2n palabras de m bits la matriz está formada por
2n filas y m columnas. Además el módulo requiere un decodificador de n entradas y 2n salidas y para
formar la salida m puertas OR de 2n entradas cada una.
Dirección n 2n Matriz de
celdas
(2n x m celdas)
Selección
CS
Control
R/W
m m
Dato de Dato de
Entrada Salida
Es una organización rápida ya que el único retardo que presenta es el asociado con los circuitos
de decodificación y con el acceso a los elementos físicos de almacenamiento. Como normalmente el
número de palabras es mayor que el número de bits por palabra, la organización 2D da lugar a matrices
de celdas excesivamente largas y estrechas que no son adecuadas para su realización en un circuito
integrado.
n Organización 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 más cuadradas. Además requiere,
menos puertas y con menor número de entradas por puerta. Utiliza una celda memoria más compleja ya
que incluye una puerta AND para la selección por coincidencia.
Para seleccionar el bit de una palabra, la dirección de la palabra de divide en dos mitades. La
primera parte de la dirección se introduce al decodificador Y, que selecciona la fila. El resto va al
decodificador X conectado a las columnas.
Estructura de Computadores II 8
Diseño de bloques de memoria
La ampliación de componentes es una característica fundamental en el diseño y en el caso de la
memorias de semiconductor tiene dos objetivos:
a) Incrementar el tamaño de las palabras (número de bits / palabra ).
b) Incrementar el número de palabras de la memoria.
Para el primer objetivo basta con interconectar un número determinado de módulos de
memoria.
Incrementar el número de palabras supone aumentar la capacidad de direccionamiento, es decir
incrementar el número de bits del bus de dirección, lo que requiere el uso de un decodificador adicional
Conexión de la unidad de memoria al bus del sistema
Se realiza mediante el esquema de drivers, esta conexión es diferente según el tipo de línea del
bus de que se trate. El bus de dirección y de control son unidireccionales. El bus de datos es
bidireccional. Se pueden distinguir dos situaciones, según que el bloque de memoria disponga de entrada
y salida de datos separada o las tenga en común sobre una sola línea bidireccional.
Estructura y direccionamiento de la unidad de memoria.
En el diseño de la unidad de memoria principal se utiliza un bloque básico, que se dispone en
una placa de circuito impreso y se repite tantas veces como sea necesario. Este enfoque tiene como
ventajas en el diseño global de la memoria:
a) Abaratamiento de los costes.
b) Modularidad y posibilidad de ampliación.
c) Facilidad de mantenimiento y preparación.
Con este sistema se deberán realizar un pequeño circuito lógico de selección de placa, por lo
que éstas no serían idénticas, por este motivo se utiliza un circuito de comparación con conmutadores
que permiten personalizar cada una de las placas.
Memoria caché.
En todos los ciclos de instrucción la UCP accede a memoria al menos una vez para buscar la
instrucción y frecuentemente realiza múltiples 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 básicas.
Para solucionar el compromiso entre velocidad, coste y capacidad se coloca una memoria
pequeña y rápida 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 número de
palabras.
La memoria principal consta de 2n palabras y cada palabra se puede referenciar mediante una
dirección única de n bits. Para realizar la transformación 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 automáticamente este bloque se transfiere a una de las particiones de la
memoria caché. Cada partición incluye una marca o etiqueta que identifica al bloque de memoria
principalque está conteniendo en ese momento, normalmente la etiqueta es parte de la dirección de la
memoria principal.
El rendimiento de una memoria caché se mide en una cantidad llamada tasa de acierto, que es
la razón entre el número de aciertos y el número total de referencias a memoria de la UCP.
Tasa de acierto = Acierto/( Acierto + Fallo)
Capacidad de la caché:
El tamaño de la caché plantea el compromiso de ser pequeña 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 9
Función de correspondencia
La función 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 partición de la memoria caché.
La función de transformación es :
S = Número de partición asignado en memoria
caché
S = A módulo C A = Número de bloque de la memoria principal.
 C = Número de particiones que tiene la caché.
La función de transformación se realiza utilizando los bits de dirección. 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 lógica de la memoria
caché interpreta la parte más significativa como etiqueta y los otros identifican una partición dentro de
la memoria caché.
La técnica de correspondencia directa es simple y poco costosa. Su desventaja es que cualquier
bloque dado tiene asignada una posición fija en la caché. Si un programa efectúa repetidas referencias a
palabras de dos bloques diferentes que se transforman en la misma partición, estos bloques se estarán
moviendo continuamente entre la memoria principal y la caché, con perdida de rendimiento del sistema.
Formato de instrucción
Etiqueta Partición Palabra
n Correspondencia totalmente asociativa
Permite que se cargue un bloque de memoria principal en cualquier partición de la memoria
caché, a condición 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 lógica necesaria que le permita examinar
simultáneamente 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 leído en memoria principal. Su principal desventaja es la necesidad de una circuitería compleja
para examinar en paralelo los campos de etiqueta de todas las particiones de la memoria caché.
Formato de instrucción
Etiqueta Palabra
n Correspondencia asociativa por conjuntos.
Intenta juntar las ventajas de los dos métodos anteriores. La memoria caché ( de capacidad C
)se divide en I conjuntos, cada uno con J particiones
C = I x J
K = A módulo I K = nº de conjunto de la memoria caché
Con este algoritmo, el bloque que contiene la dirección A se puede almacenar en una partición
cualquiera del conjunto I. al igual que en la correspondencia directa, la dirección de la memoria
principal se interpreta como tres campos. Las dos técnicas anteriores son casos particulares:
a- I = C ; J = 1 à Correspondencia directa
b- I = 1 ; J = C à Correspondencia totalmente asociativa.
La utilización de I =C/2 , J = 2 ( 2 particiones por conjunto), es la organización más usual, también 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 número de particiones por conjunto no compensa el coste que supone.
Formato de instrucción
Etiqueta Conjunto Palabra
Estructura de Computadores II 10
Algoritmos de reemplazamiento:
La sustitución de un bloque por otro en el caso de la correspondencia directa, la partición está
determinada y no se puede realizar ninguna elección. Sin embargo, en las técnicas 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:
a- Partición más antigua en la memoria caché sin ser referenciada (LRU).
b- Partición más antigua en la memoria caché (FIFO).
c- Partición utilizada menos frecuentemente. (LFU).
d- Partición 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- Más 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 válido, si por el contrario ha sido
modificado en memoria principal el dato de la caché no es válido.
b- Se conectan varias UPC’s a un bus y cada una tiene su propia memoria caché local.
La técnica más 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 tráfico elevado con la memoria y puede crear un cuello de
botella.
Otra técnica es la de realizar actuaciones sólo en la memoria caché, método que se conoce como
postescritura. Cuando se produce una modificación se pone a “1” un bit de actualización asociado con
cada partición de la memoria caché. Si se reemplaza un bloque se reescribe la memoria principal si y
sólo si el bit de actualización está a “1”. El problema es saber que partes de la memoria principal ya no
son válidas, para evitarlo los accesos de los módulos de E/S se permiten únicamente a través de la caché.
En una organización de bus en la que más 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, además 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 inválidos. Un sistema que evita este problema se dice que mantiene
la coherencia de la memoria caché.
Tamaño 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 tamaño del bloque se
aumenta la tasa de acierto por el principio de localidad; sin embargo, a partir de un tamaño
determinado, la tasa de acierto disminuye debido a que la probabilidad de utilizar la información del
bloque se hace menor que la probabilidad de rehusar la información a reemplazar y con ello aparecen
dos efectos específicos:
1- Cuando mayor sea el tamaño de los bloques, menor será el número de estos que es posible
tener en memoria caché. Si el número de bloques es pequeño aumenta la frecuencia de
utilización del algoritmo de reemplazo de bloques.
2- Cuando crece el tamaño de un bloque, cada nueva palabra añadida 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 lógica asociada, organizada en n palabras
con m bits/palabra. El registro argumento A y el registro de máscara 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 están a “1”.
Registro Argumento (A)
Registro Máscara (K)Entrada
Matriz de celdas
Leer de Memoria Asociativa Registro de
n palabras x m bits Marca (M)
Escribir
Salida
El registro de máscara proporciona la clave para seleccionar la parte que se desee en la palabra
argumento.
La celda básica de memoria asociativa está formada por un elemento de memoria Q y la
circuitería adecuada para hacer las funciones siguientes:
a- Leer el bit almacenado en la celda durante una operación de lectura.
b- Transferir al elemento de memoria el bit que tiene la celda en su entrada durante una
operación de escritura.
c- Comparar el contenido de la celda con el correspondiente bit sin enmascarar del registro
argumento y proporcionar una salida para la lógica de decisión que actualiza el bit de marca
(M).
Determinación de la función lógica del registro de máscara.
M es ‘1’ si se produce coincidencia y ‘0’ en caso contrario. Si el registro de máscara contiene
sólo 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 situación que debe evitarse.
Operación de lectura.
Si hay más de una palabra de memoria que concuerda con los bits sin enmascarar del registro
A, todas ellas tendrán un ‘1’en su posición del registro de marca. Para la operación de lectura es
necesario examinar uno a uno los bits del registro de marca. Si Mi = 1 se aplica una señal de lectura a la
palabra correspondiente. En la mayoría de aplicaciones la memoria asociativa almacena una tabla que
no tiene, para una máscara dada, dos filas idénticas. 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 línea de lectura
Estructura de Computadores II 12
de la palabra correspondiente, en lugar de conectarse al registro M, se presenta de forma automática el
contenido de la palabra que coincide y no se necesita señal de lectura
Operación de escritura
Una memoria asociativa debe de poder almacenar la información que se desee. Dependiendo de
la aplicación, la escritura en este tipo de memoria puede adoptar diferentes formas. Si antes de las
operaciones de búsqueda se carga la memoria con nueva información, su escritura se puede realizar
direccionando secuencialmente cada posición, 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 dirección para
la entrada se puede decodificar como si fuese una memoria de acceso aleatorio, y en lugar de tener un
bus de dirección de n líneas se puede reducir con un Decodificador a p líneas, 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 básica 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 asignación de prioridades a la petición de servicios de los distintos elementos. Los
procedimientos más utilizados son:
n Asignación de la menor prioridad al elemento servido: Para cualquier estado presente, la
transición al próximo estado se obtiene asignando la menor prioridad al elemento servido.
Con esta estrategia la complejidad del árbitro aumenta factorialmente con el número de
procesadores a servir.
n Rotación de prioridades: Intenta reducir el número de estados del árbitro y en consecuencia
simplificar su diseño. El próximo estado se calcula rotando el orden de prioridades actual
hasta que el procesador al que acaba de dar servicio tiene la menor prioridad. El número de
estados del árbitro coincide con el número de elementos a servir.
Memorias tipo pila
Devuelven la información de modo inverso al de su almacenamiento, y se caracterizan porque
sólo se puede leer el último dato almacenado en ellas, que se encuentra en la cumbre de la pila. (LIFO)
Hay dos formas básicas 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 Pila formada por una zona
conjunto de registros de memoria principal
Utiliza la memoria principal
Ventajas Velocidad alta Bajo coste
Gran capacidad
Hardware propio en la UCP
Desventajas Alto coste Velocidad baja
Capacidad limitada
A veces se dan realizaciones mixtas, las primeras posiciones de la pila están soportadas por un
conjunto de registros y el resto sobre memoria principal.
Estructura de Computadores II 13
Las memorias tipo pila tienen como principales aplicaciones:
• Salto a subrutinas
• Tratamiento de interrupciones
• Compilación de expresiones aritméticas.
Tema 3 Unidad de Entrada Salida
La unidad de E/S proporciona un método de comunicación 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 más dispositivos periféricos. Un controlador
de E/S dispone de la lógica necesaria para realizar una función de comunicación entre los periféricos del
computador y el bus.
Los motivos por los que no se conectan los periféricos al bus directamente son:
a- La gran variedad de tipos y métodos de operación, por lo que no es práctico incorporar
dentro de la UCP la lógica que se necesita para controlar un conjunto tan amplio de
dispositivos.
b- La velocidad de transferencia de datos de los periféricos suelen ser menor que la de la
memoria con la UCP.
c- Los periféricos 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 través del bus del sistema.
• Comunicarse con uno o varios dispositivos periféricos mediante enlaces de datos adaptados
a cada periférico.
Dispositivos externos
Un dispositivo externo se conecta al computador a través de un enlace con un controlador de
E/S. El enlace se utiliza para intercambiar datos e información, sobre su control y estado, entre el
controlador de E/S y el dispositivo externo.
Los periféricos pueden clasificarse en tres categorías:
• Adaptados al usuario.
• Adaptados a la máquina.
• De comunicación.
Lo dispositivos externos adaptados a la máquina pueden ser unidades de cinta y disco. Esto es
debido a que desde el punto de vista funcional pertenecen a la jerarquía de memorias, pero
estructuralmente están supervisados por un controlador de E/S.
La comunicación con el controlador de E/S se efectúa mediante señales de datos, control y de
estado del dispositivo. Los datos están constituidos por un conjunto de bit que se envían o reciben desde
el controlador de E/S. Las señales de control determinan la función que realiza el dispositivo. La lógica
de controla asociada con el periférico gobierna su funcionamiento en respuesta a las ordenes enviadas
por el controlador de E/S. En una operación de salida los transductores convierten las señales eléctricas
en otras formas de energía 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 módulo del computador responsable del control de uno o más dispositivos externos y del
intercambio de datos entre dichos periféricos 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 más dispositivos
externos de manera noprefijada, dependiendo de las necesidades de E/S del programa que se esté
ejecutando. Por ello los recursos internos del computador deben de compartirse, la función de E/S
requiere un mecanismo de control y temporización que coordine el intercambio de información 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 más arbitrajes para conseguir el acceso al bus. La comunicación del controlador con
la UCP requiere:
a- Decodificación de la orden
b- Intercambio de datos
c- Información del estado
d- Reconocimiento de la dirección.
El controlador de E/S realiza también la comunicación con el dispositivo, lo que comprende
ordenes, información 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
detección de errores, y de informar a la UCP cuando ocurren.
Estructura del controlador de E/S:
Los controladores de E/S varían considerablemente en complejidad y en el número de
dispositivos externos que pueden controlar. El controlador de E/S se conecta con el resto del computador
a través del bus del sistema. Al conjunto de registros que almacenan datos y estados se les denomina
genéricamente 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 común para memoria y sistema de E/S, con líneas de control independientes.
3- Bus único, con líneas 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 periférico. Si la UCP está ejecutando un programa y encuentra una instrucción de E/S, envía una
orden al controlador E/S adecuado, el cual realiza la acción pedida y modifica el contenido de su registro
de estado (RE) y no efectúa ninguna acción más para comunicárselo a la UCP. Es responsabilidad de la
UCP comprobar periódicamente el estado del controlador de E/S, hasta que detecta el final de la
operación.
Ordenes de E/S
Para ejecutar una instrucción de E/S, la UCP envía una orden de E/S y una dirección que
especifica el controlador y el periférico en particular. La UCP puede enviar cuatro tipo de ordenes: de
control, de comprobación, de lectura y de escritura.
Mientras se realiza una operación después de la transferencia de un dato, el computador
permanece en un bucle de espera hasta que el periférico esté preparado para realizar la siguiente
transferencia, es decir, el procesador no realiza ningún 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 envía al
controlador de E/S para su ejecución. Las instrucciones se transforman fácilmente en órdenes de E/S, y a
menudo hay una relación biunívoca entre ambas. La forma de la instrucción 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 común, la forma de
hacer el direccionamiento difiere según 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
máquina para acceder a memoria y periféricos. Sólo se necesita un conjunto de señales de
lectura y escritura. Cada controlador de E/S se organiza como un conjunto de registros que
responden a señales 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 dirección mientras no existan palabras de
memoria que respondan a la misma dirección.
b- E/S aislada: El bus del sistema dispone, además de las líneas de control de lectura y
escritura en memoria, de líneas de control específicas de E/S para acceder a los periféricos.
La línea de control especifica si la dirección se refiere a una posición de memoria o a un
periférico. 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 básica es eliminar el bucle de espera. La UCP envía una orden de E/S al periférico y
prosigue la tarea que estaba ejecutando, en lugar de quedarse esperando a que se efectúe la operación de
E/S. Cuando el periférico está preparado para intercambiar información, fuerza una interrupción en la
tarea que realiza la UCP para que atienda la operación de E/S. En ese momento la UCP realiza la
transferencia de datos y a continuación sigue ejecutando el programa interrumpido. El periférico
advierte a la UCP que está preparado para la transmisión activando una línea del bus de control. La
línea de petición de interrupción.
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 información que pueda afectar a la ejecución cuando
retorne al programa interrumpido. Salvaguardar el contexto supone una sobrecarga adicional en el
tratamiento de interrupciones. En algunos sistemas se hace de forma automática 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 petición de interrupción por parte de un
periférico son:
1- Activar el sistema de interrupciones en la UCP.
2- El periférico activa la línea de petición de interrupción
3- La UCP suspende la ejecución del programa. Salva el contenido del CP y otros registros
accesibles por programa.
4- La UCP inhibe las interrupciones (bit de máscara) y ejecuta el programa de servicio de
interrupción.
5- Se informa al periférico de que se ha reconocido su petición de interrupción mediante la
línea RI (Reconocimiento de Interrupción). El dispositivo se desactiva PI=0.
6- Cuando finaliza el programa de servicio de interrupción se activa el sistema de
interrupciones (bit de máscara).
7- La UCP continua con la ejecución del programa.
Clasificación de las interrupciones
Clasificación de interrupciones
Estructura de Computadores II 16
a-. Externa: Provocadas por un periférico.
Origen b-. Interna: Provocadas por la UCP ( división por0).
c-. Simuladas: Provocadas por software.
Número de líneas de a-. Sólo una línea de interrupción Pi.
 interrupción b-. Múltiples líneas Pi1,Pi2,…Pin.
Control de la UCP sobre a-. Enmascarables. La UCP las puede desactivar.
la interrupción b-. No enmascarables.
a-. Múltiples líneas.
Identificación de la fuente b-. Encuesta. La interrupción se identifica por
programa.
de interrupción c-. Vectorizada. La interrupción identifica al periférico.
Gestión de la prioridad a-. Por software. Un programa determina la prioridad.
de la interrupción b-. Por hardware. Un circuito determina la prioridad.
Niveles de interrupción a-. Único. La interrupción no puede interrumpirse.
b-. Multinivel. Anidamiento de interrupciones.
Identificación de la interrupción y gestión de su prioridad.
La forma más directa de identificarla fuente de una interrupción es proporcionar múltiples
líneas de petición de interrupción; solución que es poco práctica, por lo que se reúnen las peticiones de
varios periféricos en una línea. Hay varios métodos para que la UCP diferencie cuál de los periféricos ha
solicitado la interrupción:
• Identificación por encuesta: Cuando la UCP detecta una petición de interrupción, 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 petición. Una vez
identificado el periférico, la UCP comienza a ejecutar el programa de servicio específico
para esa interrupción. Este método tiene como desventaja el tiempo que se pierde en
identificar al periférico, aunque garantiza automáticamente la gestión de prioridades.
• Interrupciones vectorizadas: Es un mecanismo de encuesta tipo hardware. El periférico
envía a la UCP un vector de interrupción que, de forma directa o indirecta, determina el
comienzo del programa de servicio específico de la interrupción. Esta técnica se conoce
como interrupciones encadenadas (daisy chain). Cuando hay peticiones simultáneas está
implícita la prioridad de los periféricos.
Controlador de interrupciones.
Cuando la UCP tiene múltiples líneas de interrupción, y se producen algunas peticiones
simultáneas, es preciso dotar al sistema de algún mecanismo de selección de la interrupción más
prioritaria. Cualquier solución tipo hardware que se adopte se puede conseguir en versión software, a
costa de perder velocidad al atender la interrupción.
Una de las alternativas es emplear un controlador de interrupciones (PIC), que amplia el
número de líneas de interrupción de la UCP y se encarga de la gestión del sistema de interrupciones. Las
funciones que realiza el PIC son:
a- Identificar la fuente de la interrupción.
b- Establecer las prioridades de cada periférico.
c- Activar o desactivar de forma selectiva las peticiones de interrupción recibidas.
d- Enviar a la UCP información sobre la petición de interrupción y cuál es el
periférico que debe ser atendido.
El PIC resuelve las peticiones simultáneas de diferentes periféricos mediante un codificador de
prioridad. La lógica del codificador de prioridad es tal que si le llegan al mismo tiempo dos o más
entradas, tendrá preferencia la de prioridad más alta.
Otra de las funciones del PIC es activar o desactivar de forma selectiva las peticiones de
interrupción que recibe. Hay dos formas básicas de realizar este enmascaramiento:
Estructura de Computadores II 17
1- Individualmente: Cada una de las n entradas al PIC de petición de interrupción está
controlada por una puerta AND de dos entradas, cuya segunda entrada es el bit
correspondiente de un registro de máscara de interrupciones. Cada uno de los bits
del registro de máscara son accesibles por programa y en cada momento la UCP
recibe el valor deseado. El registro de estado almacena las peticiones de
interrupción que han sido autorizadas por el registro de máscara. Las peticiones de
interrupción se deben resolver por programa.
2- Por nivel: Las peticiones de interrupción, se ordenan siguiendo un criterio de
prioridad que el codificador de prioridades se encarga de resolver. El codificador
entrega a su salida un código que indica la entrada de mayor prioridad que ha
solicitado una interrupción. 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 organización de prioridades en una estructura multinivel significa que durante la ejecución
de un programa de servicio de interrupciones se podrán aceptar peticiones de interrupción de algunos
dispositivos, mientras que de otros no, dependiendo de sus prioridades relativas.
Para la realización 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 sólo de aquellos dispositivos que tengan una prioridad mayor que la suya.
Acceso directo a Memoria
Controlador de DMA
El DMA necesita un módulo 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, dirección y contador de palabras. Estos registros permiten al
controlador de DMA transferir datos desde (o hacia) una zona contigua de memoria. El registro de
dirección almacena la dirección de la siguiente palabra que se va a transmitir y se incrementa de forma
automática después de cada transferencia. El contador de palabras almacena el número 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 envía una señal de interrupción a la UCP que le indica el fin de la
transferencia.
En resumen la técnica de DMA funciona de la forma siguiente: La UCP emite una orden al
controlador de DMA con la siguiente información:
a- Si la operación de E/S es de lectura o escritura.
b- Dirección del periférico.
c- Posición de comienzo de memoria de donde hay que leer o escribir.
d- Número de palabras que se tienen que leer o escribir.
A partir de ese momento la UCP continúa realizando otra tarea. El controlador de DMA
transfiere directamente, palabra a palabra, el bloque completo de datos entre el periférico y la memoria
sin pasar por la UCP. Cuando la transferencia termina, envía una señal de interrupción a la UCP.
Transferencia de datos mediante DMA.
El controlador de DMA necesita el control del bus para transmitir los datos. Hay varios
métodos:
a- Ráfagas: Cuando el DMA toma el control del bus no lo libera hasta haber transmitido el
bloque de datos completo. La velocidad de transferencia es máxima, 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 máximo la velocidad de transmisión y la interferencia del controlador sobre la UCP.
c- DMA Transparente: Elimina totalmente la interferencia entre el controlador DMA y la
UCP. El DMA sólo roba ciclos cuando la UCP no está utilizando el sistema.
d- Por demanda: El periférico comienza la transferencia por DMA, devuelve el control del bus
a la UCP cuando no tiene más datos. Cuando tiene más datos retoma el control del bus.
e- Dato a dato: Cuando el periférico solicita una transferencia por DMA envía 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
método es útil cuando se ejecuta de forma simultánea un programa con la transmisión
recepción de datos a velocidades moderadas.
Configuración del DMA.
• Todos los módulos comparten el mismo bus del sistema. El controlador de DMA, que actúa
como sustituto de la UCP, utiliza E/S controlada por programa para intercambiar datos entre la memoria
y un periférico a través del DMA. Esta configuración es económica 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 más 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 número de interfaces de E/S en el controlador de DMA
y proporciona una configuración ampliable.
Procesador de E/S (PE/S).
Características de los PE/S.
El PE/S representa una extensión del concepto de DMA. Un PE/S tiene capacidad de ejecutar
instrucciones de E/S, lo que le da un control completo sobre dicha operación. 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 paraejecutar un programa en memoria, el cual especifica: el periférico 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 múltiples dispositivos de alta velocidad y en un instante de tiempo
está dedicado a la transferencia de datos con uno sólo de estos dispositivos.
2. Canal multiplexor: Puede controlar de manera simultánea operaciones de E/S con múltiples
dispositivos.
Tema 4 Unidad Aritmético Lógica
La UAL es la parte del computador donde se efectúan 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 través de los
registros y los resultados que se generan también se almacenan en registros.
SUMADORES BINARIOS
Un sumador binario se puede considerar como un conversor de código que recibe a la entrada
dos números 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 números de n bits en n problemas idénticos de suma de dos
números de 1 bit. Cada una de estas n sumas precisan información de los sumadores de las etapas
previas.
Semisumador binario:
x xy xy
c xy
= +
= x y c s
x y 0 0 0 0 l
0 1 0 1 l
1 0 0 1
1 1 1 0 l l
 SSB
Tabla de verdad Representación por puntos
c s
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 diseño de circuitos de
suma de números de n bits ( n>1).
 x y 
x y ci-1 ci s
0 0 0 0 0 SSB
0 0 1 0 1 c
0 1 0 0 1 ci
0 1 1 1 0 s
1 0 0 0 1 ci-1
1 0 1 1 0 SSB
1 1 0 1 0
1 1 1 1 1
 l
 l
 l
 l l
Funciones lógicas:
s x y c x y c x y c x y ci i i i i i i i i i i i i= + + +− − − −1 1 1 1
ci = xiyi + xi ci-1 + yi ci-1
Se sintetizan mediante circuitos lógicos de dos niveles ya que mediante SSB’s conectados en cascada
resulta más lento ya que deben de atravesar más puertas.
Sumador binario serie.
Con un SBC de 1 bit, dos registros y un elemento de memoria, que realiza la función de retardo
unitario, se puede diseñar un circuito que realiza la suma de dos números de n bits. Cuya complejidad es
independiente del número de bits que hay que sumar, sin embargo el tiempo de operación crece
linealmente con el número de bits n.
Sumador binario paralelo
Mejora la velocidad de los sumadores binarios serie. Se conecta una cadena de SBC’s de forma
que se introduzcan en paralelo todos los bits de cada uno de los dos operandos. Para sumar n bits se
encadenan n SBC’s.
xn-1 yn-1 x1 y1 x0 y0
 cn-1 cn-2 c1 c0 c-1
 sn-1 s1 s0
La salida sn-1 no será válida hasta que se conozca el arrastre cn-2 producido por el SBC de la
etapa anterior. En el caso más desfavorable el resultado de la suma no será efectivo hasta que haya
pasado un tiempo t d= n , siendo d el tiempo que tarda un SBC en general el arrastre. Por este
motivo se le conoce como sumador con propagación de arrastre.
Sumador - restador binario paralelo
La forma adecuada de sumar números negativos depende del tipo de representación 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 fácil de realizar:
• Se complementan todos los bits
Estructura de Computadores II 20
• Se suma 1
teniendo en cuenta esto, se puede diseñar fácilmente un único circuito sumador restador:
En la representación de complemento a 1 el resultado obtenido no siempre sería 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.
Detección del rebose en el circuito sumador - restador.
Cuando se suman números sin signo el arrastre de la última etapa sirve de indicador de rebose.
En números con signos distintos nunca se produce rebose, por lo que sólo queda la situación 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 ningún arrastre. El bit
de signo de la suma sn-1 será 1 si se genera algún arrastre de la etapa anterior y el
resultado será incorrecto.
• Son negativos: Siempre se genera un arrastre en la posición del bit de signo ( c n-
1=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 yn-1 sn-1 Rebose
 0 0 0 0
 0 0 1 1
 0 1 0 0
 0 1 1 0 R= C Cn n− −⊕2 1
 1 0 0 0
Estructura de Computadores II 21
 1 0 1 0
 1 1 0 1
 1 1 1 0
SUMADORES DE ALTA VELOCIDAD
La naturaleza secuencial de la propagación del arrastre es el problema más difícil que hay que
resolver para acelerar la suma. Las diferentes soluciones son:
• Aceptación de la existencia de los arrastres.
• Anticipación del arrastre: circuitería extra que desvía la generación del arrastre.
• Suma condicional: Produce la suma en tiempo O (log n), para n operandos.
• Detector de fin de arrastre.
• Disminución del número de arrastres subiendo la base de numeración.
• Arrastre almacenado: Para más de dos sumandos.
Características de los arrastres.
El arrastre se genera cuando la suma de los bits es mayor que uno; se propaga desde la posición
(i-1)-ésima a (i+1)-ésima si la suma de los bits xi, yi es uno:
 y = 0 y = 1
 x = 0 --- p
 x = 1 p g
Estas situaciones [ - , p , g ] son mutuamente excluyentes.
Sumador con anticipación de arrastre.
Es la forma más extendida de diseñar sumadores de alta velocidad. Su principio básico es el de
reducir el retardo producido por la propagación de los arrastres de los SBC’s 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:
s p c c g c pi i i i i i i= ⊕ = + ⋅− −1 1;
A medida que aumenta el número de bits del sumador crece la complejidad por lo que esta
técnica no resulta viable. Como solución se encadenan N SBAA’s de X bits con propagación 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 solución de SBC’s. A este tipo de sumadores se les conoce como
sumadores con propagación de arrastre anticipado.
Sumadores de suma condicional.
En cada bit del sumador se efectúan dos sumas diferentes si(0) y si(1), la primera supone que el
arrastre de entrada ( ce) a esa posición es 0 y la segunda que es 1.
Sumadores con detección de fin de arrastre.
El tiempo de operación de la suma depende de forma lineal del número de bits de los sumandos.
Como un arrastre de máxima longitud no se da frecuentemente, si esperamos este tiempo siempre, en la
mayoría de los casos se empleará un tiempo excesivo en el cálculo de una suma. La realización entre las
longitudes de propagación del arrastre más desfavorable y el valor medio de la longitud máxima viene
expresada por:
t =
n
nlog2
Un sumador que detecte cuando termina la operación es de naturaleza asíncrona ya que no es
necesario un intervalo fijo para la realización de la suma.
Estructura de Computadores II 22
Sumadores que minimizan el número de arrastres.
Aumentando la base de numeración de los operandos con lo que se trabaja se disminuye la
propagación de los arrastres, sin embargo esto se consigue en base a complicar la circuitería, además de
trabajar a velocidades más bajas. Una formaalternativa de realizar la suma aritmética en bases
superiores a dos es utilizando una tabla de consulta. Si los operandos de entrada son números 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 dirección de memoria cuyo contenido es su suma.
Sumadores BCD.
Si se suman dos dígitos 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 lógico 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
Organización de sumadores en código 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 dígito serie, bit paralelo: Los dígitos se aplican en serie a un único sumador BCD,
los bits de cada dígito se aplican en paralelo.
• Sumador dígito serie, bit serie: Es la más lenta, los bits se desplazan de uno en uno a través
de un SBC. La suma binaria después de cuatro desplazamientos debe ser corregida para obtener un
dígito válido en BCD.
Restador en código BCD.
Una forma económica de efectuar la resta en código BCD es la de formar el complementa a 9 ó
10 del sustrayendo y sumar al minuendo. Como el código BCD no es autocomplementario, el
complemento a 9 se obtiene mediante un circuito que resta cada dígito BCD de 9. Esto se consigue
complementando los bits a condición de que se incluya la corrección necesaria. Existen dos métodos
para efectuar la corrección:
• Se suma el número 10 ( 1010) a cada dígito BCD complementado; no se considera el arrastre
después de cada suma.
• Se le suma el número 6 ( 0100 ) a cada dígito BCD antes de complementarlo.
Estructura de la Unidad Aritmético Lógica
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 análogos para diferentes operaciones se puede simplificar su
diseño.
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 más general hay que sintetizar tres funciones lógicas 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 más significativos. El
circuito parte de un estado inicial en el que considera que los dos números 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 números, que sin embargo si que afecta al tiempo de ejecución.
Mediante sumador.
Dado que la UAL dispone de un sumador, la forma más usual de realizar la comparación de dos
operandos es restando uno de otro y comprobar el signo del resultado. El procedimiento difiere según
sean números con signo o sin signo.
Estructura de Computadores II 24
Tema 5 Metodología de diseño
Un sistema digital se puede definir como una colección de objetos denominados componentes,
que se conectan con un objetivo definido. La función que realiza el sistema queda determinada cuando se
conoce:
• La función individual de cada componente.
• La forma en que los componentes se interconectan entre sí.
El método de diseño puede considerarse a diferentes niveles de detalle o complejidad. Se suelen
emplear los siguientes niveles:
• Nivel de puertas lógicas.
• Nivel de registros
• Nivel de procesador
La descripción 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 aritmético lógicos ( recursos de cálculo).
• Red de interconexión ( Camino de datos ).
• Puntos de control.
• Señales de condición.
La función de la Unidad de Control es generar una secuencia de señales de control de acuerdo
con el algoritmo de transferencia de registros, que especifica la realización de la operación deseada.
Módulos de un sistema.
Un sistema se puede considerar constituido por dos clases de elementos:
• Un conjunto de componentes, C, para el procesamiento de la información.
• Un conjunto de señales, S, que transmiten la información entre los componentes.
Cuando se modela un sistema digital se efectúa 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 lógicas y funciones de conmutación.
Niveles de diseño: Diseño jerárquico.
Si un sistema complejo se va a diseñar con puertas lógicas, el proceso de diseño 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 lógicas la estructura de cada componente del nivel
registro.
Este punto de vista del diseño se conoce como diseño descendente o diseño estructurado. Un
buen diseño debe promover la utilización de los componentes más adecuados en cada nivel. Desde esta
perspectiva, conviene tener en cuenta las siguientes características:
• Independencia de los componentes.
• Modularidad del diseño.
Nivel de registro.
A este nivel la unidad básica es la palabra. Atendiendo al tipo de información 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 diseño constituyen su principal caracterización. Un conjunto de componentes es
completo si se puede realizar cualquier función lógica utilizando sólo módulos de ese conjunto.
Modelo de un Sistema Digital.
Cuando una máquina es capaz de efectuar diferentes operaciones las señales de selección de
función están agrupadas en palabras llamadas instrucciones. En estos casos se habla de procesador de un
conjunto de instrucciones. El problema de diseño a nivel de transferencia de registros se puede plantear
en los términos 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
sólo componentes de este nivel.
Estructura de Computadores II 25
Las ligaduras o restricciones especificadas en un problema de diseño imponen un compromiso
entre el coste del circuito y su comportamiento (velocidad, fiabilidad, compatibilidad, … ). Para
proceder al diseño del sistema digital que realiza una operación genérica, se subdivide éste en dos partes,
Unidad de Procesamiento y Unidad de Control.
La Unidad de Procesamiento realiza las funciones de almacenamiento y transformación 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 señales de control que
gobiernan los cálculos 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 interconexión entre los componentes.
• La función realizada por los componentes interconectados.
La arquitectura de la Unidad de Procesamiento incluye:
• Un conjuntode registros que almacenan los datos procesados.
• Un conjunto de primi tivas o recursos que realizan el tratamiento sobre los datos.
• Una red de interconexión capaz de conectar los registros con los recursos de cálculo.
• Un conjunto de entradas de control denominadas puntos de control.
• Un conjunto de salidas que constituyen las señales de condición o selección.
La función que realiza un componente (recurso de cálculo, registro o red de interconexión) se
determina por las señales de control generadas en la Unidad de Control, que están presentes en los
puntos de control, es decir, se controlan externamente a través de la Unidad de Control que es un
sistema o máquina 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 cálculo), red de interconexión
(camino de datos), puntos de control y señales de condición. Estos elementos se organizan de forma que
permiten la ejecución 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 propósito general o de propósito particular.
Puntos de control.
Las entradas de la Unidad de Procesamiento que reciben las señales de control se denominan
puntos de control y se emplean para controlar la selección de operaciones, los caminos de datos y la
carga de los registros. Permiten controlar el flujo de información a través de la estructura de la Unidad
de Procesamiento.
El conjunto de señales de control se pueden clasificar en tres categorías:
• Relojes. Su activación 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
información de un camino de datos a otro.
• De transformación. Controlan las distintas funciones de transformación que pueden
efectuar las unidades funcionales de la Unidad de Procesamiento.
 Señales de condición o selección.
Son salidas de la Unidad de Procesamiento que se utilizan por la Unidad de Control para
determinar las señales de control condicionales o secuencias alternativas. En el lenguaje de descripción
se especifican en secuencias de asignación condicionales o rupturas de secuencias condicionales.
Unidad de Control
La función de la Unidad de Control es generar una secuencia de señales de control de acuerdo
con el algoritmo de transferencia de registro que describe la operación deseada Sus entradas son las
señales de condición generadas por la Unidad de Procesamiento, más las entradas de control externas.
Sus salidas son las señales de control que se distribuyen por los correspondientes puntos de control de la
Unidad de Procesamiento. La especificación de la Unidad de Control consiste en definir sus dos
funciones:
• Generación de señales de control.
• Secuenciamiento de las señales de control.
Estructura de Computadores II 26
Existen varios métodos de realizar la Unidad de Control que van desde las estructuras fijas de
lógica cableada sintetizadas con elementos de memoria y puertas lógicas, a estructuras flexibles y
modificables de tipo programable.
Unidad de Control con lógica cableada.
Es el procedimiento convencional de diseño de circuitos secuenciales que se conoce como
método de la tabla de estados. Las funciones de transición de estados y de salida se realizan con lógica
combinacional y no son modificables sin tener que volver a sintetizar el circuito. Por lo que no se puede
comenzar el diseño 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 diseño de la
Unidad de Control cableada por el método 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 (señales de control) que están activas.
• Para cada arista determinar las entradas (externas y señales de condición) que originan la
transición entre estados.
• Aplicar el procedimiento general de síntesis de circuitos secuenciales al diagrama de estados.
Modelo sistemático de síntesis de circuitos secuenciales.
¤ Modelar las especificaciones de la conducta secuencial deseada.
¤ Minimizar el número de estados.
¤ Codificar las entradas, salidas y estados.
¤ Seleccionar el tipo de elemento de memoria.
¤ Diseño de la circuitería combinacional.
Unidad de Control basada en elemento de retardo.
Esta realización es adecuada cuando el número de estados es pequeño. La codificación de cada
estado se realiza con un elemento de memoria tipo D, lo que simplifica el procedimiento de diseño. De
esta manera, la transformación entre el diagrama de estados y el circuito secuencial es directa.
Cuando la transición al próximo estado no depende de ninguna variable de condición su
realización 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 transición depende del valor
que toman las variables de condición la transformación se puede hacer con una puerta OR y un
demultiplexor.
Unidad de Control basada en contadores.
La utilización de un contador como registro de estado en la síntesis 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 efectúan
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 realización basada en contadores. En este caso, la
asignación del próximo estado corresponde a un código obtenido por uno de los dos métodos siguientes:
a. Desplazando a derecha o izquierda el estado presente.
b. Cargando un nuevo estado en el registro de desplazamiento a través de las entradas de carga
en paralelo.
La primera opción 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 ROM’s.
Proporciona una realización de la Unidad de Control más flexible que las consideradas
anteriormente. Las distintas arquitecturas que incorporan ROM’s difieren en la forma que trata las
variables de condición.
En el esquema típico, todas las variables de condición se utilizan con parte de las líneas de
dirección de la ROM. Si hay q variables de condición, 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 próximo estado y otro de m bits
que constituyen las palabras de control.
ROM
Variables de Dirección
condición q n+q
2n+q palabras × (n+m) bits
Próximo estado n
 Inicio Cl m
Reloj Registro
Estado presente n Señales de
control
Un método para reducir el tamaño de la ROM se basa en el hecho de que no todas las variables
de condición son necesarias para cada estado. Si sólo se necesita una variable de condición en cualquier
estado es mejor seleccionar dicha variable fuera de la ROM, lo que reduce su tamaño a dos palabras por
estado, lo que da un tamaño de 2n+1 palabras. Para seleccionar la variable de condición que se precisa en
cada

Continuar navegando