Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
ESTRUCTURA Y TECNOLOGÍA DE
COMPUTADORES
Programa
1. Introducción.
2. Realización de la función de transición de la unidad de control
mediante un secuenciador.
3. Microprogramación: definiciones.
4. Definición del formato de microinstrucción.
5. Realización de un microprograma para la unidad de control.
6. Traducción de un microprograma a circuitería.
7. Reducción del tamaño de la circuitería.
8. Conclusiones e implicaciones del diseño microprogramado.
2
Camino de datos y control: implementación microprogramada
1. Introducción
 En la primera parte del tema:
•Se han presentado varias instrucciones del repertorio del MIPS.
•Se han estudiado los elementos básicos que forman parte de un camino de datos en un
computador sencillo.
•Se han presentado algunos caminos de datos sencillos para ciertas operaciones.
 En esta parte del tema se estudiará una técnica que permitirá especificar y
diseñar de forma sencilla unidades de control arbitrariamente complejas para
caminos de datos multiciclo: la microprogramación.
3
Introducción
 El control del MIPS sencillo visto en las partes anteriores del tema es sencillo.
•El control para el repertorio de instrucciones completo del MIPS (unas 100) sería
bastante más elaborado y difícil.
RegDest El identificador de registro destino está en rt El identificador de registro destino está en rd (bits 15-
RegDst (bits 20-16) 11)
EscrReg El registro destino se escribe con el valor
Ninguno
RegWrite correspondiente
SelALUA El primer operando de la UAL proviene del
El primer operando de la UAL proviene del registro A
ALUSrcA PC
LeerMem Se lee una posición de memoria y su contenido se
Ninguno
MemRead coloca a la salida de datos
EscrMem Se escribe una posición de memoria con el valor
Ninguno
MemWrite dado en la entrada de datos
MemaReg El valor en la entrada del banco de registros El valor de la entrada del banco de registros procede
MemtoReg procede de la UAL del registro MDR
IoD El PC suministra la dirección para acceder a ALUOut suministra la dirección para acceder a
IorD memoria memoria
EscrIR
Ninguno La salida de memoria se escribe en el registro IR
IRWrite
EscrPC Escribir el PC un valor que depende de la señal
Ninguno
PCWrite FuentePC (PCSource)
EscrPCCond Escribir el PC cuando la señal de resultado nulo de la
Ninguno
PCWriteCond UAL está también activa
6
Camino de datos y control: implementación microprogramada
10 La operación realizada por la UAL viene dada por el campo Funct de la instrucción
(Op = 'JMP')
pe)
EQ
-Ty
=R
'B
') (Op
=
=
(O
p
=
'S
W
')
Memory Memory
access access R-type completion
3 5 7
RegDst = 1
MemRead MemWrite RegWrite
IorD = 1 IorD = 1 MemtoReg = 0
Write-back step
4
RegDst = 0
RegWrite
MemtoReg =1
8
Camino de datos y control: implementación microprogramada
un “salto”. 1
AddCtl).
Op[5-0]
Instruction register
opcode field
10
Camino de datos y control: implementación microprogramada
 Puede utilizarse una tabla (ROM o PLA) para cada estado en el que sea
preciso realizar un envío (bits de dirección: código de operación, quizá
PLA or ROM
compactado).
1
State
Valor de Adder
Acción
AddCtl Mux AddrCtl
3 2 1 0
010 (002) Pasar al estado 0
110 (012) Envío con ROM 1 0
210 (102) Envío con ROM 2
Dispatch ROM 2 Dispatch ROM 1
310 (112) Usar estado incrementado
Address select logic
Instruction register
opcode field
 Podría usarse una única tabla para todos los envíos (bits de dirección:
estado+código de operación, quizá compactados). 11
12
Camino de datos y control: implementación microprogramada
PCWriteCond
PCSource
PCSource
Estado
ALUSrcB
ALUSrcB
MemtoReg
MemWrite
MemRead
ALUOp
ALUOp
actual
AddCtr
AddCtl
RegWrite
ALUSrcA
PCWrite
IRWrite
RegDst
⇓
IorD
1 0 1 0 1 0 1 0
0000 1 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 1
0001 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1
0010 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0
0011 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1
0100 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0
0101 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0
0110 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 1
0111 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0
1000 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0
1001 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0
Resto
(estados
1010 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
hasta
1111)
 Control con ROM o PLA: tabla de salidas (bits 17-2) y transiciones (AddCtl: bits 1-0), junto
con las tablas de envío 1 y 2, el contador y el multiplexor de selección. 13
3. Microprogramación: definiciones
 Microinstrucción: conjunto de valores de las señales de control en una etapa
cualquiera de la ejecución de una instrucción.
•Ejecución de una microinstrucción: activación de las señales de control especificadas
en la misma en un instante determinado.
Microprogramación: definiciones
 Microprogramación: técnica de diseño del control como un microprograma
encargado de realizar las instrucciones de la máquina en términos de
microinstrucciones más simples.
Campo Función
Control ALU Especifica la operación ejecutada en la UAL. El resultado siempre se guardará en ALUOut.
ControlRegistros Especifica la lectura y escritura del banco de registros, y de dónde viene el valor escrito.
Especifica la lectura y escritura de la memoria, y de dónde viene el valor escrito y adónde va el
Memoria
valor leído.
ControlEscrPC
Especifica la escritura en el PC.
(PCWriteControl)
Secuenciación Especifica cómo se elige la siguiente microinstrucción.
16
Camino de datos y control: implementación microprogramada
18
Camino de datos y control: implementación microprogramada
19
Tabla de envío 2
20
Camino de datos y control: implementación microprogramada
')
(Op = 'JMP')
R-T
EQ
= 'S =
•Decodificar la instrucción. Op (Op
or (
'B
')
=
= 'LW
p
•Leer dos registros del banco y (Op
(O
guardarlos en A y B.
•Calcular la hipotética dirección de Memory reference FSM R-type FSM Branch FSM Jump FSM
ramificación y guardarla en ALUOut. (Figure 5.38) (Figure 5.39) (Figure 5.40) (Figure 5.41)
Control Control
Etiqueta ControlALU Fuente1 Fuente2 Memoria Secuenciación
Registros EscrPC
Fetch Add PC 4 ReadPC ALU Seq
Add PC Extshft Read Dispatch1
21
Si Op=LW
(O
(Op = 'LW')
p
=
Microinstrucción 3:
'S
W
')
Memory Memory
Microinstrucción 4: MemRead
IorD = 1
MemWrite
IorD = 1
•Escribir el contenido de MDR en el banco de registros.
•Saltar a microinstrucción 0 (fetch).
Write-back step
Si Op=SW 4
Microinstrucción 5: RegWrite
MemtoReg = 1
To state 0
(Figure 5.37)
Execution
 Acciones: 6
Microinstrucción 6:
ALUSrcA = 1
•Sumar los contenidos de los registros A y B y guardar el resultado ALUSrcB = 00
en ALUOut. ALUOp = 10
Microinstrucción 7:
•Escribir el contenido de ALUOut en el banco de registros.
•Saltar a microinstrucción 0 (fetch). R-type completion
7
RegDst = 1
RegWrite
MemtoReg = 0
To state 0
(Figure 5.37)
Control Control
Etiqueta ControlALU Fuente1 Fuente2 Memoria Secuenciación
Registros EscrPC
Rformat1 FuncCode A B Seq
WriteALU Fetch
23
To state 0
(Figure 5.37)
Control Control
Etiqueta ControlALU Fuente1 Fuente2 Memoria Secuenciación
Registros EscrPC
BEQ1 Subt A B ALUOut-Cond Fetch
24
Camino de datos y control: implementación microprogramada
To state 0
(Figure 5.37)
Control Control
Etiqueta ControlALU Fuente1 Fuente2 Memoria Secuenciación
Registros EscrPC
JUMP1 Jump address Fetch
25
Microcódigo completo
Control Control
Etiqueta ControlALU Fuente1 Fuente2 Memoria Secuenciación
Registros EscrPC
Fetch Add PC 4 ReadPC ALU Seq
Add PC Extshft Read Dispatch1
Mem1 Add A Extend Dispatch2
LW2 ReadALU Seq
WriteMDR Fetch
SW2 WriteALU Fetch
Rformat1 FuncCode A B Seq
WriteALU Fetch
BEQ1 Subt A B ALUOut-Cond Seq
JUMP1 Jump address Fetch
Datapath
Outputs control
 La lógica de selección de outputs
1 0
nd
MUX
nd nd
Señales de control Siguiente dirección
Registro Reg. Reloj
Instrucción S1 S2 S3 Sn
nd
000...0
Decodificador 000...0
000...11
de Dx.c
Dx.c'
direcciones
 Hoy en día el diseño de UCP con unidad de control microprogramada está en desuso.
•El tiempo de acceso a la memoria de control a la RAM de instrucciones es similar: la solución
microprogramada es muy lenta.
•La UCP se realiza en un solo chip (microprocesador), no mediante componentes discretos.
•Están en boga los diseños RISC, que implican un control más sencillo.
•En cualquier caso, para realizar el control se recurre a herramientas CAD.
31
 El microcódigo puede residir en una memoria de control (ROM o incluso RAM), en una
PLA o en una red de puertas.
•Si el microcódigo reside en una memoria de control ROM o RAM, se habla de firmware.
•La PLA será más compacta, barata y rápida si la matriz de control tiene pocos bits a 1.
•Si la función de control es densa, la PLA será grande (y lenta).
•La opción de utilizar una ROM siempre es más flexible.
•Una ROM es más lenta y cara que una PLA.
•El control mediante una red de puertas (cableado) se realiza con la ayuda de herramientas CAD.