Control microprogramado
• Usa secuencias de instrucciones para controlar operaciones complejas
• Llamado micro-programación o firmware
Implementación (1)
• Todo lo que hace la unidad de control es generar
un conjunto de señales de control
• Cada señal de control está encendida o apagada
• Representar cada señal de control por un bit
• Tiene una palabra de control por cada
microoperación
• Tiene una secuencia de palabras de control por
cada instrucción máquina
• Añade una dirección para especificar la siguiente
micro-instrucción, dependiendo de condiciones
Implementación (2)
• Microprocesadores actuales
– Muchas instrucciones y asociadas al nivel de registro del hardware
– Muchos puntos de control a ser manipulados
• Esto resulta en memoria de control que
– Contiene un número grande de palabras
• Correspondiente al número de instrucciones a ser ejecutadas
– Tiene un tamaño amplio de palabra
• Debido al gran número de puntos de control a ser manipulados
Longitud de palabra de microprograma
• Basado en 3 factores
– Número máximo de microoperaciones
simultáneas soportado
– La forma como la información de control es
representada o codificada
– La forma en la cual se especifica la siguiente
dirección de microinstrucción
Tipos de microinstrucción
• Cada microinstrucción especifica una sola
(o pocas) microoperaciones a ser ejecutadas
– (microprogramación vertical)
• Cada microinstrucción especifica varias
microoperaciones diferentes a ejecutarse en
paralelo
– (microprogramación horizontal)
Microprogramación vertical
* Son más compactas (ocupan menos bits)
* N señales de control condificadas en log2n bits
* Capacidad limitada para expresar paralelismo
* Información de codificación de control requiere
una palabra decodificadora externa de memoria
para identificar la línea de control exacta que está
siendo manipulada
Microprogramación horizontal
• Palabra de memoria amplia
• Alto grado de operaciones paralelas
posibles
• Poca codificación de información de control
Compromiso
• Divide las señales de control en grupos
• Implementa cada grupo como un campo
separado en la palabra de memoria
• Soporta niveles razonables de paralelismo
sin mucha complejidad
Función de la unidad de control
*La unidad de secuenciamiento carga el registro de dirección de control (CAR) y emite un comando de lectura* El registro de dirección de control contiene la dirección de la siguiente microinstruccion a leer*Cuando se lee una microinstruccion de la memoria de control, se transfiere al registro intermedio de control (CBR)* El contenido del registro intermedio de control se conecta a las señales de control - leer microinstruccion es lo mismo ejecutarla* La lógica de secuenciamiento carga la nueva dirección en el registro de dirección de control basado en la información de la siguiente dirección del registro intermedio de control y las banderas de la ALU.
Ventajas y desventajas
• Simplifica el diseño de la unidad de control
– Más barata
– Menos propensa a errores
• Más lenta
Tareas hechas por una unidad de control microprogramada
• Secuenciamiento de microinstrucciones
• Ejecución de microinstrucciones
• Deben considerarse ambas a la vez
Consideraciones de diseño
• Tamaño de las microinstrucciones
• Tiempo de generación de direcciones
– Determinado por el registro de instrucción
• Una por ciclo, después de que se captó la instrucción
– Siguiente dirección secuencial
• Lo más común
– Saltos
• Condicionales e incondicionales
Técnicas de secuenciamiento
• Basadas en:
- La microinstrucción actual
- Banderas de condición
- Contenidos del IR
- La dirección de la memoria de control debe generarse
• Basado en el formato de la información de la
dirección
– Dos campos de dirección
– Un campo de dirección
– Formato variable
Generación de direcciones
Explícitas |
Implícitas |
Doscampos
|
Traducción
|
Ejecución