UNIDAD DE CONTROL: LA MENTE DE LA MAQUINA.
CAPITULO CUARTO
2º Cuatrimestre. Juana María López. Hoja 1
CONTENIDO
4.1. Operaciones elementales.
4.1.1. Operaciones de transferencia.
4.1.2. Operaciones de proceso.
4.2. Estructura de un computador elemental y señales de control.
4.2.1. Memoria principal.
4.2.2. Banco de registros.
4.2.3. Unidad aritmético-lógica.
4.2.4. Unidad de direccionamiento.
4.2.5. Unidad de control.
4.3. Temporización de las señales de control.
4.4. Ejecución de instrucciones.
4.4.1. Ejecución de ADD A, B.
4.4.2.Ejecución de
MOV A, [B+DESPLAZAMIENTO].
4.5. Diseño de la unidad de control.
4.6. Unidad de control cableada.
4.7. Unidad de control microprogramada.
4.7.1. Estructura básica de la unidad de control microprogramada.
4.7.2. Secuenciamiento en la unidad de control microprogramada.
4.7.3. Codificación de las microinstrucciones.
4.7.4. Microbifurcaciones condicionales.
4.8. Arranque del computador.
2º Cuatrimestre. Juana María López. Hoja 2
OBJETIVO
Objetivo del capítulo:
-Mostrar como se van desarrollando las instrucciones internamente.
-Describir el órgano capaz de que este funcionamiento sea posible: La unidad de control.
Estructura de computador sencilla.
Uso de cronogramas.
Mayor hincapié en estructura de computadores que en diseño digital.
No se consideran las unidades de Entrada / salida.
2º Cuatrimestre. Juana María López. Hoja 3
INTRODUCCION
Función básica de la U.C.: ejecución de esta secuencia..
• tomar la instrucción (a la que apunta el CP) de la memoria principal y llevarla a la unidad de control (fase de fetch).
• incrementar el CP.
• decodificar la instrucción .
• ejecutar la instrucción.
También resuelve situaciones anómalas y se comunica con los periféricos.
Información que utiliza:
• la propia instrucción.
• el registro de estado.
• señales de E/S (interrupciones, reset, etc.).
2º Cuatrimestre. Juana María López. Hoja 4
INTRODUCCION (CONT)
Información adicional del contador de programa.C.P.
Para automatizar el paso a la siguiente instrucción.
C.O., direccionamiento, localizar operandos, mandarlos a la ALU si necesario y almacenar resultado.
Información del registro de estado.
Rupturas de secuencia: programadas y automáticas.
Cada ejecución en pequeños pasos:
-suma de base más desplazamiento.
-lectura del operando.
-incremento del CP.
-ejecución de operación aritmética....
La unidad de control genera las señales necesarias.
2º Cuatrimestre. Juana María López. Hoja 5
INTRODUCCION (CONT+)
Trabajamos a nivel RTL (Register Transfer Logic).
Concepto de ruta de datos: órganos encargados de transferir, memorizar y procesar las informaciones de la memoria principal.
La unidad de control es la unidad más "inteligente".
2º Cuatrimestre. Juana María López. Hoja 6
OPERACIONES ELEMENTALES
Se clasifican en los dos grupos siguientes:
-Operaciones de transferencia.
-Operaciones de proceso.
REGISTRO A REGISTRO B REGISTRO C
LA LB LC
TA TB TC
BUS DE DATOS
Operaciones de transferencia requieren dos elementos de memoria (registros).
Registro origen- registro destino.
Transferencia a un bus (señal de activación de salida triestado).
Para la estabilización de la información señales de
"nivel" (de permiso o de transferencia) .
Señales de nivel sincronizadas con un reloj de impulsos periódicos.
2º Cuatrimestre. Juana María López. Hoja 7
SEÑALES DE CONTROL DE TRANSFERENCIA
señales de control
tiempo TA
LC
L[Registro] = load Registro
T[Registro] = Transfer Registro
Se debe esperar a que los datos se estabilicen en el bus de datos.
El dato debe estar presente en el bus todo el tiempo que sea necesario para que se copie en el registro destino.
Regla : Señales que establecen caminos=> De nivel.
Almacenan información => De flanco.
2º Cuatrimestre. Juana María López. Hoja 8
OPERACIONES DE PROCESO
La información origen se hace pasar a través de un operador en su camino hacia el destino.
Operaciones diádicas o monádicas.
Ejemplo de operación
A<= A+ D
mux. mux.
X Y
LA LB LC LD
BUS DE DATOS [S0, S1, ...]
REGISTRO A REGISTRO B REGISTRO C REGISTRO D
OPERADOR
Selección de operando (X,Y)
Selección de operación.
Carga del resultado L[Registro]
2º Cuatrimestre. Juana María López. Hoja 9
CRONOGRAMA
DE OPERACIONES DE PROCESO
señales de control
tiempo X
LC Y
S0, S1, ... suma
selección de operandos
operación selección de
carga del registro C
2º Cuatrimestre. Juana María López. Hoja 10
ESTRUCTURA DE UN
COMPUTADOR ELEMENTAL Y SEÑALES DE CONTROL
Estudiaremos las señales de control que genera una unidad de control basándonos en una máquina simplificada que sigue la arquitectura de Von Neumann.
ALU
UNIDAD DE CONTROL
MEMORIA
señales de control bus de direcciones y datos
Vamos a prescindir del bloque de E/S para simplificar el estudio.
Hay que añadir un banco de registros que podría incluirse en el bloque de la ALU y una unidad de direccionamiento para actualizar el contador de programa que forma parte de la unidad de control.
2º Cuatrimestre. Juana María López. Hoja 11
MEMORIA PRINCIPAL.
El bloque de memoria principal consta de los siguientes elementos:
• pastilla/s de memoria RAM.
• registro para mantener la dirección dada por el bus de direcciones.
• buffer bidireccional para la conexión al bus de datos.
• señales de control.
Se puede ver la interconexión entre los distintos elementos. Desde un punto de vista hardware el registro puede ser un 7495 o cualquier registro equivalente y el buffer bidireccional un 74245.
BUS DE DIRECCIONES BUS DE DATOS MEMORIA
PRINCIPAL MEM
MR MW
ALE
MR
registro
buffer bidireccional
2º Cuatrimestre. Juana María López. Hoja 12
MEM. PRINCIPAL (CONT).
señal activa por nombre significado
MEM nivel memory iniciar ciclo de memoria MR nivel memory read ciclo de lectura
MW nivel memory write ciclo de escritura ALE flanco address latch
enable
carga en el latch una dirección
MR nivel --- indica la dirección del
buffer; si el nivel es alto los datos se vuelcan al bus; si es bajo se lee el bus.
Los cronogramas de acceso a la memoria son los siguientes:
señales
MEM ALE MR MW MR
tiempo
vuelca contenido
al bus
ciclo de lectura
2º Cuatrimestre. Juana María López. Hoja 13
CRONOGRAMA DE ACCESOS A MEMORIA
señales
tiempo MEM
ALE MR MW
MR
lee elcontenidodel busciclo de escritura
La duración de la señales MR y MW depende de la memoria, es decir, de sus tiempos de lectura y escritura.
La duración de MEM será la mínima posible, es decir, la correspondiente al periodo básico de la máquina.
2º Cuatrimestre. Juana María López. Hoja 14
BANCO DE REGISTROS.
El banco de registros consta de los siguientes elementos:
• 16 registros de propósito general accesibles al usuario desde el ensamblador o lenguaje máquina.
• 2 puertas de salida que permiten leer 2 registros simultáneamente.
• la selección de ambos registros se efectúa mediante 2 conjuntos de direcciones de 4 bits (DIRECCIÓN A y DIRECCIÓN B) que provienen directamente de la unidad de control.
• 1 puerta de entrada que permite cargar un registro desde el bus de datos; se direcciona con el bloque DIRECCIÓN A y la carga se efectúa mediante la correspondiente señal de control (LR).
En la figura se puede observar la interconexión entre estos elementos.
2º Cuatrimestre. Juana María López. Hoja 15
2º Cuatrimestre. Juana María López. Hoja 16
BUS DE DIRECCIONES BUS DE DATOS BANCO DE REGISTROS
PUERTA DE ENTRADA
PUERTA DE SALIDA A PUERTA DE SALIDA B
16 registros
4 bits 4 bits
DIRECCIÓN A DIRECCIÓN B
LR
de la unidad de control de la unidad de control
a la ALU a la ALU
Las señales de control son las siguientes:
señal activa por nombre Significado
LR flanco load register carga el registro indicado por DIRECCIÓN A con un dato del bus de datos.
DIRECCION A
nivel (4 bits)
Selecciona un registro del banco.
DIRECCION B
nivel (4 bits)
Selecciona un registro del banco.
Cuando se carga un dato en un registro este mismo dato aparece en la puerta de salida A una vez cumplido el tiempo de retardo correspondiente.
2º Cuatrimestre. Juana María López. Hoja 17
Unidad Aritmético-Lógica.
Elementos que la componen:
• Un Operador: con 4 señales de control para selección de operación.(S0,....S3)
• Dos multiplexores: cada uno con 3 entradas y una salida que hace de entrada al operador.
Control: multiplexor_1(X0,X1) y multiplexor_2(Y0,Y1).
• Un acumulador: registro intermedio.
Su contenido puede ser volcado a : -operando X.
-bus de datos.
-bus de direcciones.
2º Cuatrimestre. Juana María López. Hoja 18
2º Cuatrimestre. Juana María López. Hoja 19
BUS DE DATOS
BUS DE DIRECCIONES
MULTIPLEXOR X MULTIPLEXOR Y
OPERADOR
X Y
de B de B de A del contador de programa (CP)
ACUMULADOR
[S0, ...S3]
[X0, X1] [Y0, Y1]
LAC
DT
AT
señal activa por nombre Significado
S0...S3 nivel selection Selecciona la operación a realizar.
X0, X1 nivel --- Selecciona uno entre 3 operandos.
Y0, Y1 nivel --- Selecciona uno entre 3 operandos.
LAC flanco load acumulator carga el acumulador con la salida del operador.
DT nivel data transfer Transfiere el contenido del acumulador al bus de datos.
AT nivel address transfer Transfiere el contenido del acumulador al bus de direcciones.
- Señales AT y DT para volcar acumulador en los buses.
-Posible implementación: Latch 74244.
-Estado de alta impedancia si están inactivos.
2º Cuatrimestre. Juana María López. Hoja 20
Unidad de Direccionamiento.
-Genera la siguiente instrucción a ejecutar en la secuencia del programa.
-Necesario que integre el CP y un sumador.
-Necesaria la posibilidad de transferencia con los buses.
-Supondremos igual anchura en ambos buses y en los registros.
-Ver en el gráfico un ejemplo de solución de esta unidad y sus posibilidades de transferencia y cálculo.
BUS DE DIRECCIONES BUS DE DATOS
CONTADOR DE PROGRAMA LPC CP
PCT
ACUMULADOR
OPERADOR
X Y
de B de B de A
del ACUMULADOR del BUS DE DATOS
[Y0, Y1]
LAC
AT
MULTIPLEXOR X MULTIPLEXOR Y
DT
2º Cuatrimestre. Juana María López. Hoja 21
Las señales de control para la unidad de direccionamiento son las siguientes:
Señal activa por nombre significado
LPC flanco load program counter carga una dirección nueva en el CP desde el bus de datos.
PCT nivel program counter transfer transfiere el contenido del registro CP al bus de direcciones.
2º Cuatrimestre. Juana María López. Hoja 22
Unidad de Control.
• Genera las señales de control que constituyen el bus de control.
• Contiene registros auxiliares para su misión:
• Buffer de Instrucciones: Almacena código máquina formado por una o varias instrucciones.
• Puerto de entrada de instrucciones: Activado por la señal LI, se carga con una instrucción que pasa al buffer.
• Puerto de salida: Transfiere al bus de datos, datos inmediatos o desplazamientos, gobernado por la señal DIT.
• Registro de estado: Contiene los flags. Se cargan los bits selectivamente según señales provenientes de la ALU activas por flanco.
• Registro contador de fases: Cuenta las fases del reloj del sistema y se encarga así de la temporización.
• Dos buses de 4 bits: Son de salida de la unidad de control y sirven para generar la dirección de
selección de registro de la ALU.
2º Cuatrimestre. Juana María López. Hoja 23
BUFFER DE INSTRUCCIONES
UNIDAD DE CONTROL
REGISTRO DE ESTADO (flags)
BUS DE DIRECCIONES BUS DE DATOS
señales de control SALIDA DE DESPLAZAMIENTOS
O DATOS INMEDIATOS
ENTRADA DE
INSTRUCCIONES CONTADOR
DE FASES
DIRECCIONES DE REGISTROS
DIRECCIÓN A
DIRECCIÓN B
OSCILADOR reloj
LI
DIT
LFlags RESET
2º Cuatrimestre. Juana María López. Hoja 24
Las señales de control de la unidad de control son las siguientes:
Señal activa por nombre significado
LI flanco load instruction carga una instrucción desde el bus de datos.
DIT nivel data intruction
transfer
transfiere un dato inmediato o un desplazamiento al bus de datos.
Lflags flanco load flags carga los flags después de una instrucción aritmética o lógica.
RESET flanco reset pone a 0 el contador de fases.
2º Cuatrimestre. Juana María López. Hoja 25
2º Cuatrimestre. Juana María López. Hoja 26
BUS DE DIRECCIONES BUS DE DATOS
MULTIPLEXOR X MULTIPLEXOR Y
OPERADOR
X Y MEMORIA
PRINCIPAL MEM MR MW
ALE
MR SALIDA A SALIDA B
BANCO DE REGISTROS 16 registros
4 bits 4 bits
DIRECCIÓN A DIRECCIÓN B
LR PUERTA
DE ENTRADA
REGISTRO DE ESTADO (flags) BUFFER DE INSTRUCCIONES
señales de control UNIDAD DE CONTROL
SALIDA DE DESPLAZAMIENTOS O DATOS INMEDIATOS ENTRADA DE
INSTRUCCIONES
CONTADOR DE FASES
DIRECCIONES DE REGISTROS
OSCILADOR reloj
[X0, X1] [Y0, Y1]
[S0,...S3]
ACUMULADOR
ACUMULADOR LAC
DT AT
CONTADOR DE PROGRAMA LPC CP
PCT
DIRECCIÓN A DIRECCIÓN B
LI IT
RESET
LFlags DIT
TEMPORIZACION DE LAS SEÑALES DE CONTROL.
• El funcionamiento de un computador es síncrono
• Ejecución de una instrucción.
FASES:
• Fetch (búsqueda de una instrucción).
• Decodificación y búsqueda de operandos.
• Operación.
• Almacenar resultado.
• El nº de ciclos de reloj varía según las instrucciones.
Depende de :
• Modo de direccionamiento.
• Tipo de operación.
reloj
fase de fetch busqueda de operación almacenar resultado
operandos
2º Cuatrimestre. Juana María López. Hoja 27
EJECUCION DE LAS INSTRUCCIONES.
Vamos a desglosar una ejecución en:
• Acciones a seguir.
• Descomposición en operaciones elementales.
• Temporización en cronogramas.
EJECUCION DE ADD A, B Formato de la instrucción:
código de operación registro registro
ADD A B
0 7 8 11 12 15
ACCIÓN OPERACIÓN ELEMENTAL SEÑAL DE
CONTROL traer instrucción ( fetch ):
• direccionar
• leer instrucción
- CP → bus direcciones
- cargar registro de direcciones
- ciclo de memoria - lectura
- cargar instrucción en la Unidad de control (UC)
PCT ALE
(desactivar) MEM MR
LI
(desactivar)
2º Cuatrimestre. Juana María López. Hoja 28
Incrementar CP:
(la UC tiene que decodificar la instrucción y esto es igual a un retardo)
• sumar CP+2
• cargar nuevo CP
- la UC entrega el 2 al bus de datos - selección de operandos y de operación (simultáneamente)
- carga del acumulador
- transferencia bus de datos - carga del nuevo CP
(periodo de reloj) DIT
X0,X1 e Y0, Y1 y S0, ...S3
LAC (desactivar) DT
LPC
(desactivar) Realizar suma:
• dar direcciones del banco de registros
• sumar
- la UC genera Dirección A y B
al decodificar la instrucción
-selección de operandos y operación
- carga del acumulador
4 + 4 bits
X0,X1 e Y0, Y1 y S0, ...S3
LAC (desactivar)
2º Cuatrimestre. Juana María López. Hoja 29
Guardar resultado:
• seleccionar A
• cargar registro
- transferencia al bus de datos - la UC genera dirección A - señal de carga
DT 4 bits LR
(desactivar)
Actualizar reg. de estado: LFlags
Contador de fases a 0: RESET
2º Cuatrimestre. Juana María López. Hoja 30
CRONOGRAMA DE ADD A,B
señales
MEM ALE
MR MW reloj
PCT
LI DIT X0, X1 Y0, Y1 S0, ...S3 LAC
DIRECCIÓN B
LFlags RESET LR DIRECCIÓN A
periodo 1 periodo 2 periodo 3 periodo 4 periodo 5 periodo 6 periodo 7 periodo 8
tiempo AT
LPC
puerto A
registro B puerto B
registro A registro A suma
DT
fase de fetch decodi - actualización de CP operación ficación
bus datos CP suma
2º Cuatrimestre. Juana María López. Hoja 31
COMENTARIOS AL CRONOGRAMA:
• Dos accesos a memoria necesarios si el bus de datos es de un byte.
• Periodo 4: decodificación de la instrucción.
• Periodos 5 y 6 de actualización de CP. Posible ahorro con sumador distinto.
• Actualización en un periodo menos si el resultado de la ALU no pasara por el acumulador.
• Optimización: Antes del fin de la ejecución, comenzar el fetch de la siguiente.
2º Cuatrimestre. Juana María López. Hoja 32
Optimización de ADD A, B.
señales
MEM ALE
MR MW reloj PCT
LI DIT X0, X1 Y0, Y1 S0, ...S3 LAC
DIRECCIÓN B
periodo 1 periodo 2 periodo 3 periodo 4 periodo 5 periodo 6 periodo 7 periodo 8
LFlags RESET LR DIRECCIÓN A
AT LPC
puerto A
registro B puerto B
registro A registro A suma
DT
tiempo
bus datos CP suma
2º Cuatrimestre. Juana María López. Hoja 33
EJECUCION DE
MOV A, [B+DESPLAZAMIENTO]
• Instrucción de transferencia con direccionamiento directo relativo a registro.
•
• Operación: [B+ Desplazamiento] --> A
• Formato de la instrucción:
ACCIÓN OPERACIÓN ELEMENTAL SEÑAL DE
CONTROL traer instrucción ( fetch ):
• direccionar
• leer instrucción
- CP → bus direcciones
- cargar registro de direcciones
- ciclo de memoria - lectura
- cargar instrucción en la Unidad de Control (UC)
PCT ALE
(desactivar) MEM MR
LI
(desactivar)
código de operación registro registro
MOV A B
0 7 8 11 12 15 16 31
desplazamiento
2º Cuatrimestre. Juana María López. Hoja 34
incrementar CP:
(la UC tiene que decodificar la instrucción y esto es igual a un retardo)
• sumar CP+4
• cargar nuevo CP
- la UC entrega el 2 al bus de datos - selección de operandos y de operación (simultáneamente)
- carga del acumulador
- transferencia bus de datos - carga del nuevo CP
(retardo de un periodo)
DIT
X0,X1 e Y0, Y1 y S0, ...S3
LAC (desactivar) DT
LPC
(desactivar)
2º Cuatrimestre. Juana María López. Hoja 35
calcular dirección operando fuente:
• selección de sumandos (B+DESPL.)
• sumar
- la UC entrega el
Desplazamiento al bus de datos
- la UC genera la dirección del registro B en Dirección A
- selección de operandos y de operación (simultáneamente)
- carga del acumulador
DIT
4 bits
X0,X1 e Y0, Y1 y S0, ...S3
LAC (desactivar)
guardar resultado:
• volcar al bus de datos el operando fuente
• cargar registro
- transferencia al bus de direcciones del contenido del Acumulador
- cargar registro de direcciones
- ciclo de memoria - lectura
- la UC genera la dirección del registro A con Dirección A
- señal de carga del registro
AT ALE
(desactivar) MEM MR
4 bits LR
(desactivar)
contador de fases a 0: RESET
2º Cuatrimestre. Juana María López. Hoja 36
CRONOGRAMA DE MOV A, [B+Desplazamiento]
DIRECCIÓN A DIRECCIÓN B MEM ALE
MR MW PCT
LI DIT X0, X1 Y0, Y1 S0, ...S3 LAC
bus de datos
suma puerto A
registro B registro A
reloj señales
tiempo
periodo 1 periodo 2 periodo 3 periodo 4 periodo 5 periodo 6 periodo 7 periodo 8 periodo 9 periodo 10 periodo 11
LR RESET
AT LPC DT
bus de datos
CP suma
2º Cuatrimestre. Juana María López. Hoja 37
Diseño de la unidad de control.
• Consideración de la unidad de control como una
“caja negra”.
• Entradas:
• Código de operación.
• Estado del sistema.
• Señales de Entrada/ Salida.
• Contador de fases.
• Salidas:
• Señales de control.
INSTRUCCIÓN
ESTADO
E/S
UNIDAD DE CONTROL
SEÑALES DE CONTROL CONTADOR
DE FASES
INFORMACIÓN
2º Cuatrimestre. Juana María López. Hoja 38
Métodos de diseño de la unidad de control.
• Unidad de control mediante lógica cableada.
• Unidad de control microprogramada.
• Cableada
• Método de diseño “lógico”. (diseño digital)
• Circuito más rápido.
• Más laborioso de diseñar. (Métodos CAD).
• Muy difícil de modificar.
• Compensa sólo en algunas máquinas.
• Métodos típicos:
• De la tabla de estados.
• De células de retardo.
• Del contador secuenciador.
2º Cuatrimestre. Juana María López. Hoja 39
Unidad de control microprogramada.
• Consiste en el almacenamiento de las “palabras” de control en memoria.
• Palabra de control = conjunto de señales de control para un periodo de reloj (= microinstrucción).
Ejemplo: microinstrucciones de ADD A, B
MICROINSTRUCCIONES señal de
control
MEM 0 1 0 0 0 0 0 0
MR 0 1 1 0 0 0 0 0
MW 0 0 0 0 0 0 0 0 ALE 1 0 0 0 0 0 0 0
MR 0 1 1 0 0 0 0 0
LR 0 0 0 0 0 0 0 1 S0...S3 0 0 0 0 1 0 1 0 X0, X1 0 0 0 0 1 0 1 0 Y0, Y1 0 0 0 0 1 0 1 0 LAC 0 0 0 0 1 0 1 0 DT 0 0 0 0 0 0 0 1 AT 0 0 0 0 0 1 0 0 LPC 0 0 0 0 0 1 0 0 DBT 0 0 0 0 0 0 0 0 PCT 1 0 0 0 0 0 0 0 LI 0 0 1 0 0 0 0 0 DIT 0 0 0 0 1 0 0 0
DIR. A 0 0 0 0 0 0 1 1
DIR. B 0 0 0 0 0 0 1 0
LFlags 0 0 0 0 0 0 0 1
RESET 0 0 0 0 0 0 0 1
fetch CP & instrucción
2º Cuatrimestre. Juana María López. Hoja 40
Unidad de control microprogramada(cont).
• Microprograma: conjunto de microinstrucciones para la ejecución de una instrucción.
• Microcódigo: conjunto de microprogramas que ejecutan las instrucciones.
• En la tabla se ven los microprogramas de fetch (1,2 y 3), actualización del CP (5 y 6) y el de ejecución de la instrucción propiamente dicha (4, 7 y 8).
• Se tratan igual señales de flanco y nivel.
• Ventajas:
• Fácil de depurar ( están en ROM).
• Instrucciones complejas-> basta reservar más memoria.
• Diferentes juegos de instrucciones cambiando los microprogramas. Emulación de máquinas.
2º Cuatrimestre. Juana María López. Hoja 41
Estructura básica de la unidad de control Microprogramada.
Ha de ser capaz de tres cosas:
1. Almacenar en memoria todas las microinstrucciones posibles.
Ejemplo: Instrucciones de C.O. de 7 bits, contador de fases de 5 bits y 150 señales de control,
4096 palabras x 150 bits / palabra = 614400 bits= 600 Kb
2.Unir cada instrucción con su microprograma.
3.Secuencia del microprograma.
Los problemas son: tamaño, codificación y secuenciamiento.
2º Cuatrimestre. Juana María López. Hoja 42
Secuenciamiento en la U. C. Microprogramada
Solución inmediata:
código de operación contador de fases
De esta manera, los microprogramas correspondientes a cada instrucción se encuentran a partir de la posición dada por:
código de operación 000...0000
Resultado:
instrucción 1 instrucción 2
instrucción 127 instrucción 128
32 posiciones microprograma de la instrucción 1
Se desperdicia memoria.
Soluciones: Secuenciamiento explícito e implícito.
2º Cuatrimestre. Juana María López. Hoja 43
Secuenciamiento Explícito.
• Cada microinstrucción incluye la dirección de la siguiente.
• Los códigos de operación apuntan al comienzo del microprograma.
• Cada microinstrucción incluye: campo de dirección, señales de control y un bit que indica si es la última.
• Ventaja: microinstrucciones repetidas.
• Inconveniente: exceso de memoria.
• 4096 microins. x 12 bits = 48 Kbits adicionales.
2º Cuatrimestre. Juana María López. Hoja 44
Secuenciamiento Explícito (cont)
señales de control dirección
bit de control del multiplexor FORMATO ESTANDAR
DE MICROINSTRUCCIÓN
POSICIONES CORRESPONDIENTES A LOS CÓDIGOS DE OPERACIÓN
0
apuntan a la primera microinstrucción de cada microprograma 0
1 0 0 0 0 0
dirección 000001000100000110010000010000 señales de control indica que es la última microinstrucción del microprograma
(el multiplexor tomará el siguiente código de operación) MUX.
CÓDIGO DE OPERACIÓN
2º Cuatrimestre. Juana María López. Hoja 45
Secuenciamiento Implícito.
• Consiste en tener ordenadas secuencialmente todas las microinstrucciones de cada microprograma.
• Necesitamos un contador de microprograma que apunte a la microinstrucción en curso.
• Primera microinstrucción de cada microprograma: con una ROM que tiene:
• como direcciones los códigos de operación.
• contiene las posiciones de la primera microinstrucción.
2º Cuatrimestre. Juana María López. Hoja 46
Secuenciamiento Implícito (cont)
0 0 0 0 0 0 1
señales de control
CÓDIGO DE OPERACIÓN bit de control
de carga del C P
µ
0 0 0 0 0 0 1
0 0 0 0 0 0 1 INCREMENTADOR
señal de carga del registro C Pµ (contador de microprograma)
registro C Pµ +1
00010001100001010001 MEMORIA DE CONTROL
ROM
8 bits
12 bits
microprograma correspondiente a un
código de operación
última microinstrucción
2º Cuatrimestre. Juana María López. Hoja 47
Codificación de las microinstrucciones.
• Codificando las microinstrucciones se puede ahorrar memoria de control.
• Microprogramación horizontal: no usa codificación.
• Formatos largos pero rápidas.
• Microprogramación vertical: alta codificación.
• Menor tamaño de memoria pero mayor lentitud para decodificación.
Formato de las microinstrucciones:
acceso bus de datos
acceso bus direcciones
gobierno ALU
banco de registros
memoria unidad de direccionamie
nto MR
DT DIT
AT PCT
S0, ...S3 X0, X1 Y0, Y1 LAC
LR DIR. A DIR. B
MEM MR MW ALE
LPC
FORMATO DE MICROINSTRUCCIÓN
bus datos direcciones ALU registros memoria U. DIR. estado condición
2º Cuatrimestre. Juana María López. Hoja 48
Codificación de campos de las microinstrucciones
• Se codifican fácilmente las señales excluyentes (sólo una de ellas puede estar activa a un tiempo).
• Ejemplo: señales que vuelcan datos en un bus.
acceso bus de datos
MR DT DIT
Codificación señal de control activa
00 MR 01 DT 10 DIT 11 --
• La microinstrucción no posee las señales de control sino una codificación que indica como generarlas.
• Inconveniente: requiere decodificación.
2º Cuatrimestre. Juana María López. Hoja 49
Solapamiento de campos.
• Hay instrucciones donde nunca se activan algunas señales.
• Ejemplo: en una instrucción de salto nunca se accede a memoria.
• Se solapa el campo no utilizado con uno que se utiliza.
• Hay un bit que controla a que campo pertenecen las señales.
• Ejemplo: en instrucción de salto, el campo no utilizado se solapa con la dirección de salto.
2º Cuatrimestre. Juana María López. Hoja 50
Microbifurcaciones condicionales.
• Las instrucciones de salto condicional tienen dos microprogramas posibles.
• Microsalto o microbifurcación: una microinstrucción debe poder elegir entre dos caminos alternativos.
• El mecanismo depende del tipo de secuenciamiento:
• Secuenciamiento explícito:
• Se dan dos direcciones que difieren en un sólo bit.
• Ese bit es el resultado de la comparación con la condición: 1 si se cumple y 0 si no se cumple.
señales de control campo de dirección
dirección
bit de última microinstrucción
bit de condición dos direcciones posibles:
- "dirección" 0 - "dirección" 1
2º Cuatrimestre. Juana María López. Hoja 51
Microbifurcaciones en el secuenciamiento implícito.
• No se puede incluir un campo de dirección de salto porque ya sería explícito.
• Solución: se solapa el campo de esta dirección con un campo de función excluyente.(Ejemplo: E/S)
0 0 0 0 0 0 1
señales de control bit de control de carga del C Pµ
0 0 0 0 0 0 1
0 0 0 0 0 0 1 INCREMENTADOR
señal de carga del registro C Pµ (contador de microprograma)
registro C Pµ +1 MEMORIA DE CONTROL
CÓDIGO DE OPERACIÓN
ROM 8 bits
12 bits
microprograma correspondiente a un
código de operación
última microinstrucción
dirección/E-S
condición señales de control
DIRECCIÓN
SEÑALES DE E/S decodificador
bit de control de función MUX
REG. DE ESTADO COMPARADOR