William Stallings
Organización y Arquitectura
de Computadores
Capítulo 15
Control microprogramado
Unidad de control
microprogramado
Utiliza las secuencias de instrucciones para
controlar las operaciones complejas.
Una secuencia de microinstrucciones se conoce
como microprograma, o firmware.
Implementación
Todo lo que la unidad de control puede hacer es
generar un conjunto de señales de control.
Cada línea de control está activa o inactiva.
Cada línea de control puede representarse con un dígito
binario.
Podríamos construir una palabra de control para cada
microoperación.
Tenga una secuencia de palabras de control para cada
instrucción de código de máquina.
Añada un campo de dirección indicando la siguiente
microinstrucción, dependiendo de las condiciones.
Implementación
El mayor microprocesador de nuestros días:
ִMuchas instrucciones y hardwares de nivel de
registro asociado.
ִMuchos puntos de control para manipular.
En la memoria de control, esto se traduce en:
ִLa contención de un gran número de palabras:
que corresponden al número de instrucciones que se
ejecutarán.
ִUna gran expansión mundial:
Debido al gran número de puntos de control que se
manipularán.
Formato de la microinstrucción o
palabra de control
Basado en 3 factores:
ִActivación del máximo número de microoperaciones
simultáneas.
ִLa manera en que se representa o codifica la
información de control.
ִLa manera en que se especifica la próxima dirección
de microinstrucción.
Tipos de microinstrucción
Microinstrucción vertical:
ִCada microinstrucción especifica una sola
microoperación (o unas pocas) para que se realicen.
Microinstrucción horizontal:
ִCada microinstrucción especifica muchas
microoperaciones diferentes para que se realicen en
paralelo.
Diagrama de microprogramación
vertical
Dirección de microinstrución
Códigos de
función
Condición
de salto
Diagrama de microprogramación
horizontal
Señales de control internas a la CPU Micro-instruction Address
Dirección de microinstrucción
Señales de control Condición de salto
del bus del sistema
Alternativa
Dividir las señales de control en grupos
inconexos.
Implementar cada grupo como un campo
separado en la palabra de memoria.
Mantener niveles razonables de paralelismo sin
demasiada complejidad.
Funcionamiento de una unidad
de control microprogramada
Registro de instrucción
Unidad de control
Decodificador
Indicadores
de la ALU Lógica de secuen-
Registro de dirección de control
Reloj ciamiento
Lectura Memoria de
control
Registro intermedio de control
Dirección de
control siguiente
Decodificador
Señales de control Señales de control
hacia dentro de la CPU hacia el bus del sistema
Funcionamiento de la unidad de
control
La unidad lógica de secuenciamiento emite una orden
de lectura a la memoria de control.
La palabra especificada en el registro de dirección de
control se lee en el registro intermedio de control.
Los contenidos del registro intermedio de control
generan señales de control y la información de dirección
siguiente.
La unidad lógica de secuenciamiento carga una nueva
dirección en el registro de dirección de control, basada
en la información de dirección siguiente del registro
intermedio de control y en los indicadores de la ALU.
Ventajas e inconvenientes
Simplifica el diseño de la unidad de control:
ִImplementación más barata.
ִMenos propensa a errores.
Más lenta que una unidad cableada de
tecnología comparable.
Tareas realizadas por una
unidad de control
microprogramada
Secuenciamiento de microinstrucciones.
Ejecución de microinstrucciones.
Las dos taresas deben considerarse a la vez.
Consideraciones respecto al
diseño
Tamaño de la microinstrucción.
Tiempo de generación de la dirección:
ִViene determinada por el registro de instrucción:
Una vez por ciclo, justo tras la captación de la instrucción.
ִEs la siguiente dirección secuencial:
La situación más común en la mayoría de los diseños.
ִEs el destino de un salto:
Tanto condicionales como incondicionales.
Técnicas de secuenciamiento
A partir de la microinstrucción en curso, de los
indicadores de condición y del contenido del
registro de instrucción, hay que generar una
dirección de la memoria de control.
Categorías basadas en el formato de la
información de dirección de la microinstrucción:
ִDos campos de dirección.
ִUn único campo de dirección.
ִFormato variable.
Generación de direcciones
Explícitas Implícitas
Dos campos Traducción
Salto incondicional Adición
Salto condicional Control residual
Ejecución de
microinstrucciones
El ciclo es el evento básico.
Cada ciclo se compone de dos partes:
ִCaptación:
Depende de la generación de una dirección de
microinstrucción.
ִEjecución.
Ejecución
El resultado es la generación de señales de
control.
Algunas de estas señales controlan puntos
internos del procesador.
Las demás señales van al bus de control externo
o a otras interfaces externas.