Post on 23-Jan-2016
Estructura de Computadores (EUI: 2º ITIS)
Tema 4: Diseño del procesador (parte II) 1
Diseño de la Unidad de Control Multiciclo: Microprogramación
• Introducción
• Conceptos básicos– Microinstrucciones: Definición y Formato
– Microprograma
– Memoria de control
– Funcionamiento de la Microprogramación
• Ventajas y desventajas del control microprogramado.
• Microprogramación aplicada a MIPS– Formato de las microinstrucciones
– Señales de control de cada campo y valores asociados
– Microprograma
– Secuenciador del microprograma
• Resumen
Estructura de Computadores (EUI: 2º ITIS)
Tema 4: Diseño del procesador (parte II) 2
Microprogramación: Introducción
S hift
le ft 2
M em toR eg
IorD M e mR ead M em W rite
P C
M em ory
M emD ata
W rite
da ta
M
ux
0
1
R eg is te rsW ritereg ister
W riteda ta
R eadda ta 1
Read
da ta 2
R e adreg ister 1
R e adreg ister 2
In structio n[1 5– 1 1]
M
ux
0
1
Mux
0
1
4
AL U O pA LU SrcB
R egD st R egW rite
In structio n
[15 – 0 ]
In structio n [5– 0 ]
S ign
ex ten d
3216
Ins truction[2 5– 21 ]
Ins truction[2 0– 16 ]
Ins truction[15– 0 ]
In structio n
reg is ter
1 M
ux
0
3
2
ALU
c ontro l
Mu
x
0
1
ALU
res ult
A LU
AL US rcA
ZeroA
B
A LU Ou t
IR W rite
A ddress
Memo ry
da ta
reg is ter
Estructura de Computadores (EUI: 2º ITIS)
Tema 4: Diseño del procesador (parte II) 3
Microprogramación: Introducción
• Unidad de control multiciclo más compleja que la del monociclo• Técnicas para la implementación del control
– Máquina de estados finitos (control cableado)• Representación en forma gráfica (diagrama de estados)• La máquina consta de:
– Un conjunto de estados– Función de estado siguiente: Hace corresponder el estado actual y las
entradas a un nuevo estado. Indica cómo cambian los estados. – En cada estado se genera un conjunto de señales de control– Un ciclo de reloj por estado
– Microprogramación (control microprogramado)• Utiliza una representación programada para el control• Se utiliza para unidades de control complejas (cientos de estados)• De cada microinstrucción se obtienen: las señales de control que se aplican en
cada estado, y la información de la siguiente microinstrucción a ejecutar– Conjunto de microinstrucciones -> microprograma -> ROM
Estructura de Computadores (EUI: 2º ITIS)
Tema 4: Diseño del procesador (parte II) 4
Microprogramación: Introducción
• El concepto de microprogramación fue introducido por Maurice Wilkes a principio de los años 50– Después de construir el primer computador de programada almacenado
(EDSAC), Wilkes trató de buscar una mejor forma de diseñar la Unidad de Control.
– Solución: Convierte la Unidad de Control en un computador en miniatura, que tiene una tabla para especificar el control del camino de datos, y una segunda tabla para determinar el flujo de control a nivel de microinstrucción
Estructura de Computadores (EUI: 2º ITIS)
Tema 4: Diseño del procesador (parte II) 5
Microprogramación: Introducción
• Las señales de control se almacenan en
forma de microinstrucciones en una
memoria de control
• Las instrucciones del nivel ISA son
interpretadas por un microprograma que
consta de una secuencia de
microinstrucciones
• Comparando con la implementación de la
máquina de estados finitos, se observa
que la lógica de control del siguiente
estado (o siguiente microinstrucción a
ejecutar) es externa.
– Se implementa con un contador y lógica
adicional dando lugar a un secuenciador
externo.
PCWritePCWriteCondIorD
MemtoRegPCSourceALUOpALUSrcBALUSrcARegWrite
AddrCtl
Outputs
Microcode memory
IRWrite
MemReadMemWrite
RegDst
Control unit
Input
Microprogram counter
Address select logic
Op
[5–
0]
Adder
1
Datapath
Instruction registeropcode field
BWrite
Secuenciador externo
Microinstrucción
Estructura de Computadores (EUI: 2º ITIS)
Tema 4: Diseño del procesador (parte II) 6
Conceptos básicos: Microinstrucciones
• Microinstrucción– Especifica todas las señales de control del camino de datos más la
posibilidad de decidir condicionalmente qué microinstrucción se debe ejecutar a continuación
– Cada palabra de la memoria de control es una microinstrucción.
– Formato de las microinstrucciones
• Señales de control: Señales para el camino de datos
• Condiciones: Bits que se pueden usar para seleccionar la condición que se desea utilizar para, en función de si es cierta o no, ejecutar la siguiente microinstrucción o saltar a otra.
• Siguiente instrucción: Campo que indica la siguiente instrucción a ejecutar
Señales de control Condiciones Siguiente instrucción
Estructura de Computadores (EUI: 2º ITIS)
Tema 4: Diseño del procesador (parte II) 7
Microinstrucción horizontal
Señales de controlBits de
condiciónDirección siguiente
microinstrucción
..al camino dedatos..
Microinstrucción vertical
CódigoBits de
condición
Direcciónsiguiente
microinstrucción
Señales de controlDecodificador
Conceptos básicos:Formato de las microinstrucciones
• Microinstruciones HORIZONTALES y VERTICALES – Clasificación en base al grado de codificación de los campos de la
microinstrucciones • Microinstrucción horizontal: Campos no codificados. Las señales de control se
obtienen directamente de los bits de la microinstrucción.– Pocas microinstrucciones y anchas.
• Microinstrucción vertical: Campos codificados. Para obtener las señales de control necesitamos un decodificador.
– Muchas microinstrucciones y cortas. • Diseños intermedios: Algunos campos muy codificados y otros no codificados
para proporcionar las señales de control directamente.
Estructura de Computadores (EUI: 2º ITIS)
Tema 4: Diseño del procesador (parte II) 8
Conceptos básicos:Microprograma• Microprograma
– Secuencia coherente de microinstrucciones cuya ejecución permite interpretar una instrucción del nivel ISA (macroinstrucción)
– Ejecutar una microinstrucción Leer una microinstrucción de la memoria– Una vez diseñado el camino de datos y la memoria de microinstrucciones, el control
se convierte básicamente en una tarea de programación.– Cambiando los microprogramas podemos ejecutar otros repertorios de instrucciones
(implementación de distintas arquitecturas).
Memoria de control Salto a ejecución
<- búsqueda
Salto a rutina según instrucción <- ejecución salto a búsqueda
<- ADD routine
salto a búsqueda
<- OR routine
Salto a búsqueda
<- otras
Estructura de Computadores (EUI: 2º ITIS)
Tema 4: Diseño del procesador (parte II) 9
• Memoria de control– En esta memoria se guardan los microprogramas o conjuntos de
microinstrucciones a partir de los que se obtienen las señales de control necesarias para la ejecución del repertorio de instrucciones del nivel ISA
– Normalmente se utiliza una ROM para esta memoria de control. Sin embargo, se han desarrollado máquinas en las que el microprograma se carga en memoria RAM -> permiten al usuario alterar su contenido
Conceptos básicos:Memoria de control
Estructura de Computadores (EUI: 2º ITIS)
Tema 4: Diseño del procesador (parte II) 10
Funcionamiento de la unidad de control microprogramada
• Funcionamiento generalizado– Para ejecutar una instrucción el módulo
“Sequencing Logic” (SL) lanza un comando de lectura sobre la memoria de control
– Se lee la palabra y se almacena en el “Control Buffer Register” (CBR)
– El contenido de CBR (microinstrucción) genera las señales de control para el camino de datos y la información de dirección de la siguiente microinstrucción para SL
– SL carga una nueva dirección de microinstrucción en el Control Address Register (CAR) basado en la información de la propia microinstrución y del campo de condición. La dirección puede ser:
• Siguiente microinstrucción• Salto a una nueva rutina en función del campo
“siguiente dirección” de la microinstrucción• Salto a una rutina de instrucción basado en el
código de operación de la instrucción ISA.
Estructura de Computadores (EUI: 2º ITIS)
Tema 4: Diseño del procesador (parte II) 11
Ventajas y desventajas del control microprogramado
• Como las señales de control son almacenadas en una memoria las unidades de control microprogramadas:– Son sistemáticas con un formato bien definido
– Pueden ser fácilmente modificables durante el proceso de diseño
– Requieren más componentes para su implementación
– Tienden a ser más lentas que las unidades de control cableadas debido a que tienen que realizar operaciones de lectura de una memoria para obtener las señales de control
• Emulación– Podemos modificar el microprograma para que la unidad de control
interprete otro lenguaje máquina distinto (el de la máquina a emular) sin necesidad de realizar modificaciones en el hardware de la unidad de control
-> sólo cambiamos el microprograma!
Estructura de Computadores (EUI: 2º ITIS)
Tema 4: Diseño del procesador (parte II) 12
La técnica de microprogramación aplicada a la implementación de un subconjunto de MIPS
• Aplicaremos la técnica de microprogramación para diseñar la unidad de control como alternativa al anterior diseño basado en maquinas de estados finitos
PCWrite
PCWriteCond
IorD
MemtoReg
PCSource
ALUOp
ALUSrcB
ALUSrcA
RegWrite
RegDst
NS3NS2NS1NS0
Op
5
Op
4
Op
3
Op
2
Op
1
Op
0
S3
S2
S1
S0
State register
IRWrite
MemRead
MemWrite
Instruction registeropcode field
Outputs
Control logic
Inputs
AddrCtl
Outputs
PLA or ROM
State
Address select logic
Op
[5–
0]
Adder
Instruction registeropcode field
1
Control unit
Input
PCWritePCWriteCondIorD
MemtoRegPCSourceALUOpALUSrcBALUSrcARegWrite
RegDst
IRWrite
MemReadMemWrite
BWrite
Implementación de la función “siguiente estado” en la Máquina de Estados Finitos
Implementación de la función “siguiente estado”en el control microprogramado
Externo!
Interno!
Estructura de Computadores (EUI: 2º ITIS)
Tema 4: Diseño del procesador (parte II) 13
ControlALU
SRC1 SRC2ControlRegistro
MemoriaControlPCWrite
Secuenciamiento
Formato de las microinstrucciones
• 7 Campos -> Señales de Control (6) + Siguiente Microinstrucción (1)
Nombre del campo Función del campo Valores del campo Control ALU Especifica la operación que va a realizar la ALU
durante el ciclo. add subt Func code
SRC1 Especifica la fuente para el primer operando de la ALU
PC A
SRC2 Especifica la fuente para el segundo operando de la ALU
B 4 Extend ExtShft
Control Registro Especifica el número de registro y fuente del dato que se escribe en el mismo
Read Write ALU (rd <- ALUout) Write MDR (rt <- MDR)
Memoria Especifica lectura o escritura y la fuente de la dirección
Read PC (IR <- M[PC]) Read ALU (MDR <- M[ALUout] Write ALU (M[ALUout] <- B)
Control PCWrite Especifica la escritura del PC ALU ALUOut-Cond Jump Address
Secuenciamiento Especifica la siguiente microinstrucción que se va a ejecutar
Seq Fetch Dispatch i
Estructura de Computadores (EUI: 2º ITIS)
Tema 4: Diseño del procesador (parte II) 14
Señales asociadas a los campos y sus valores
Control ALU
ALUop1 ALUOp0Operación
0 0 Suma
0 1 Resta
1 0 Func. code
SRC2
ALUSrB1 ALUSrcB0Operación
0 0 B
0 1 4
1 0 Extend
1 1 ExtShft
Register Control
RegWrite RegDst MemToRegOper.
1 1 0 Write ALU
1 0 1 Write MDR
Memoria
IRWrite MemRead MemWrite IorDOper.
1 1 0 0 Read PC
0 1 0 1 Read ALU
0 0 1 1 Write ALU
Control PCWrite
PCSrc1 PcSrc0 PCwrite PCWrtCondOper.
0 0 1 0 ALU
0 1 0 1 ALUOut-Cond
1 0 1 0 Jump address
Sec
AddrCtl1 AddrCtl0Operación
1 1 Seq.
0 0 Fetch
0 1 Dispatch1
1 0 Dispatch2
SRC1
AddrSrcAOperación
0 PC
1 A
Estructura de Computadores (EUI: 2º ITIS)
Tema 4: Diseño del procesador (parte II) 15
Microprograma de la unidad de control para el subconjunto MIPS
Estado Etiqueta ControlALU
SRC1 SRC2 ControlRegistros
Memoria ControlPCWrite
Secuenc.
0 Fetch Add PC 4 Read PC ALU Seq.1 Add PC Extshft Read Dispatch 12 Mem1 Add A Extend Dispatch 23 LW2 Read ALU Seq4 Write MDR Fetch5 SW2 Write ALU Fetch6 Rformat1 Func
CodA B Seq
7 Write ALU Fetch8 BEQ1 Subt A B ALUOut-
condFetch
9 JUMP1 JumpAddress
Fetch
Control ALU SRC1 SRC2ControlRegistro
Memoria Control PCWrite Sec.
Alu
op1
Alu
op0
Alu
Src
A
ALU
Src
B1
ALU
Src
B0
Reg
Writ
e
Reg
Dst
Mem
ToR
eg
IRW
rite
Mem
Rea
d
IorD
Mem
Writ
e
PC
Sou
rce1
PC
Sou
rce0
PC
Writ
e
PC
Writ
eCon
d
Add
rCtl1
Add
rCtl0
18 señales de control ->
Estructura de Computadores (EUI: 2º ITIS)
Tema 4: Diseño del procesador (parte II) 16
Lógica de selección siguiente microinstrucción (secuenciador de microprograma)• La lógica de selección de direcciones genera la dirección de la siguiente
microinstrucción a ejecutar. La siguiente dirección puede ser:– Siguiente microinstrucción (AddrCtl = 3)
– Obtenida de la ROM 2 (AddrCtl=2)
– Obtenida de la ROM 1 (AddrCtl = 1)
– Dirección 0 (AddrCtl = 0)
State
Op
Adder
1
PLA or ROM
Mux3 2 1 0
Dispatch ROM 1Dispatch ROM 2
0
AddrCtl
Address select logic
Instruction registeropcode field
Sec
AddrCtl1 AddrCtl0Operación
1 1 Seq.
0 0 Fetch
0 1 Dispatch1
1 0 Dispatch2
Dispatch ROM1Op [5:0] Nombre Valor
000000 R-Format R-Format1 (6)000010 jmp JUMP1 (9)000100 beq BEQ1 (8)100011 lw MEM1 (2)101011 sw MEM1 (2)
Dispatch ROM2Op [5:0] Nombre Valor
100011 lw LW2 (3)101011 sw SW2 (5)
Estructura de Computadores (EUI: 2º ITIS)
Tema 4: Diseño del procesador (parte II) 17
Unidad de control microprogramada: Xilinx (I)
Estructura de Computadores (EUI: 2º ITIS)
Tema 4: Diseño del procesador (parte II) 18
Unidad de control microprogramada: Xilinx (II)
Estructura de Computadores (EUI: 2º ITIS)
Tema 4: Diseño del procesador (parte II) 19
Resumen
• En MIPS hemos utilizado microinstrucciones horizontales (poco codificadas).
• Las microinstrucciones poseen 6 campos de control y 1 campo de secuenciamiento.
• El microprograma está estructurado de tal manera que todas las instrucciones del ISA comienzan ejecutándose siguiendo los mismos pasos.
• A continuación, las tablas de dispatch nos permiten seleccionar la siguiente microinstrucción a ejecutar cuando ésta no es la siguiente secuencial (ni hay que volver al principio).
• En cualquier instante, la dirección de la siguiente microinstrucción a ejecutar puede ser:– La siguiente microinstrucción secuencial– La microinstrucción obtenida de la tabla dispatch 1 (indexada con el opcode)– La microinstrucción obtenida de la tabla dispatch 2 (indexada con el opcode)– La primera microinstrucción
• El registro de estado es el “contador del microprograma”, que señala siempre la dirección de la siguiente microinstrucción a ejecutar.