Vous êtes sur la page 1sur 19

Diseo de la Unidad de Control Multiciclo:

Microprogramacin
Introduccin
Conceptos bsicos
Microinstrucciones: Definicin y Formato
Microprograma
Memoria de control
Funcionamiento de la Microprogramacin
Ventajas y desventajas del control microprogramado.
Microprogramacin aplicada a MIPS
Formato de las microinstrucciones
Seales de control de cada campo y valores asociados
Microprograma
Secuenciador del microprograma
Resumen

Estructura de Computadores (EUI: 2 Tema 4: Diseo del procesador (parte II) 1


ITIS)
Microprogramacin: Introduccin

IorD M e m R e ad M e m W rite IR W r ite R eg D st R eg W r ite A L U S rcA

PC 0
0
M Ins tru ctio n Read
M
u A d dr e ss [2 5 2 1 ] r eg ister 1
u
x Read
A x
Ins tru ctio n Read da ta 1 Z e ro
1 M e m o ry
[2 0 1 6 ] r eg ister 2 1
ALU ALU
M e m D a ta 0 R e g is te rs A LU O u t
Ins tru ctio n M W rite Read r es ult
[1 5 0 ] r eg ister B
da ta 2 0
In stru ctio n u
W rite x
In stru c tio n [1 5 1 1]
W rite 4 1 M
da ta 1 u
re g is ter d a ta 2 x
In s tru ctio n 0 3
[1 5 0 ] M
u
x
M e m o ry 1
d a ta 16 32 ALU
S ig n S h ift
r eg is ter c o ntro l
ex ten d le ft 2

In stru ctio n [5 0 ]

M e m to R e g A L U S r cB A L U O p

Estructura de Computadores (EUI: 2 Tema 4: Diseo del procesador (parte II) 2


ITIS)
Microprogramacin: Introduccin

Unidad de control multiciclo ms compleja que la del monociclo


Tcnicas para la implementacin del control
Mquina de estados finitos (control cableado)
Representacin en forma grfica (diagrama de estados)
La mquina consta de:
Un conjunto de estados
Funcin de estado siguiente: Hace corresponder el estado actual y las
entradas a un nuevo estado. Indica cmo cambian los estados.
En cada estado se genera un conjunto de seales de control
Un ciclo de reloj por estado
Microprogramacin (control microprogramado)
Utiliza una representacin programada para el control
Se utiliza para unidades de control complejas (cientos de estados)
De cada microinstruccin se obtienen: las seales de control que se aplican en
cada estado, y la informacin de la siguiente microinstruccin a ejecutar
Conjunto de microinstrucciones -> microprograma -> ROM

Estructura de Computadores (EUI: 2 Tema 4: Diseo del procesador (parte II) 3


ITIS)
Microprogramacin: Introduccin

El concepto de microprogramacin fue introducido por Maurice


Wilkes a principio de los aos 50
Despus de construir el primer computador de programada almacenado
(EDSAC), Wilkes trat de buscar una mejor forma de disear la Unidad de
Control.
Solucin: 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 microinstruccin

Estructura de Computadores (EUI: 2 Tema 4: Diseo del procesador (parte II) 4


ITIS)
Microprogramacin: Introduccin

Las seales de control se almacenan en


Microinstruccin
forma de microinstrucciones en una
memoria de control Control unit PCWrite
PCWriteCond

Las instrucciones del nivel ISA son Microcode memory


IorD
MemRead Datapath
MemWrite

interpretadas por un microprograma que IRWrite


BWrite
Outputs MemtoReg

consta de una secuencia de PCSource


ALUOp
ALUSrcB
microinstrucciones ALUSrcA
RegWrite
RegDst

Comparando con la implementacin de la 1


Input
AddrCtl

mquina de estados finitos, se observa Microprogram counter

que la lgica de control del siguiente Adder

Address select logic


estado (o siguiente microinstruccin a

Op[5 0]
ejecutar) es externa.
Se implementa con un contador y lgica Instruction register
opcode field
adicional dando lugar a un secuenciador Secuenciador
externo. externo

Estructura de Computadores (EUI: 2 Tema 4: Diseo del procesador (parte II) 5


ITIS)
Conceptos bsicos: Microinstrucciones

Microinstruccin
Especifica todas las seales de control del camino de datos ms la
posibilidad de decidir condicionalmente qu microinstruccin se debe
ejecutar a continuacin
Cada palabra de la memoria de control es una microinstruccin.
Formato de las microinstrucciones
Seales de control: Seales para el camino de datos
Condiciones: Bits que se pueden usar para seleccionar la condicin
que se desea utilizar para, en funcin de si es cierta o no, ejecutar la
siguiente microinstruccin o saltar a otra.
Siguiente instruccin: Campo que indica la siguiente instruccin a
ejecutar

Seales de control Condiciones Siguiente instruccin

Estructura de Computadores (EUI: 2 Tema 4: Diseo del procesador (parte II) 6


ITIS)
Conceptos bsicos:
Formato de las microinstrucciones
Microinstruciones HORIZONTALES y VERTICALES
Clasificacin en base al grado de codificacin de los campos de la
microinstrucciones
Microinstruccin horizontal: Campos no codificados. Las seales de control se
obtienen directamente de los bits de la microinstruccin.
Pocas microinstrucciones y anchas.
Microinstruccin vertical: Campos codificados. Para obtener las seales de
control necesitamos un decodificador.
Muchas microinstrucciones y cortas.
Diseos intermedios: Algunos campos muy codificados y otros no codificados
para proporcionar las seales de control directamente.

Microinstruccin horizontal Microinstruccin vertical


Bits de Direccin siguiente Direccin
Bits de
Seales de control siguiente
condicin microinstruccin Cdigo condicin
microinstruccin

..al camino de
datos.. Decodificador
Seales de control
Estructura de Computadores (EUI: 2 Tema 4: Diseo del procesador (parte II) 7
ITIS)
Conceptos bsicos:
Microprograma
Microprograma
Secuencia coherente de microinstrucciones cuya ejecucin permite interpretar una
instruccin del nivel ISA (macroinstruccin)
Ejecutar una microinstruccin Leer una microinstruccin de la memoria
Una vez diseado el camino de datos y la memoria de microinstrucciones, el control
se convierte bsicamente en una tarea de programacin.
Cambiando los microprogramas podemos ejecutar otros repertorios de instrucciones
(implementacin de distintas arquitecturas).

Memoria de control

<- bsqueda
Salto a ejecucin

Salto a rutina segn instruccin <- ejecucin



<- ADD routine
salto a bsqueda

<- OR routine
salto a bsqueda

<- otras
Salto a bsqueda

Estructura de Computadores (EUI: 2 Tema 4: Diseo del procesador (parte II) 8


ITIS)
Conceptos bsicos:
Memoria de control

Memoria de control
En esta memoria se guardan los microprogramas o conjuntos de
microinstrucciones a partir de los que se obtienen las seales de control
necesarias para la ejecucin del repertorio de instrucciones del nivel ISA

Normalmente se utiliza una ROM para esta memoria de control. Sin


embargo, se han desarrollado mquinas en las que el microprograma se
carga en memoria RAM -> permiten al usuario alterar su contenido

Estructura de Computadores (EUI: 2 Tema 4: Diseo del procesador (parte II) 9


ITIS)
Funcionamiento de la unidad de control
microprogramada
Funcionamiento generalizado
Para ejecutar una instruccin el mdulo
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 (microinstruccin) genera
las seales de control para el camino de datos y
la informacin de direccin de la siguiente
microinstruccin para SL
SL carga una nueva direccin de microinstruccin
en el Control Address Register (CAR) basado en
la informacin de la propia microinstrucin y del
campo de condicin. La direccin puede ser:
Siguiente microinstruccin
Salto a una nueva rutina en funcin del campo
siguiente direccin de la microinstruccin
Salto a una rutina de instruccin basado en el
cdigo de operacin de la instruccin ISA.

Estructura de Computadores (EUI: 2 Tema 4: Diseo del procesador (parte II) 10


ITIS)
Ventajas y desventajas del control
microprogramado
Como las seales de control son almacenadas en una memoria las
unidades de control microprogramadas:
Son sistemticas con un formato bien definido
Pueden ser fcilmente modificables durante el proceso de diseo
Requieren ms componentes para su implementacin
Tienden a ser ms lentas que las unidades de control cableadas debido a
que tienen que realizar operaciones de lectura de una memoria para
obtener las seales de control

Emulacin
Podemos modificar el microprograma para que la unidad de control
interprete otro lenguaje mquina distinto (el de la mquina a emular) sin
necesidad de realizar modificaciones en el hardware de la unidad de control
-> slo cambiamos el microprograma!

Estructura de Computadores (EUI: 2 Tema 4: Diseo del procesador (parte II) 11


ITIS)
La tcnica de microprogramacin aplicada a la
implementacin de un subconjunto de MIPS
Aplicaremos la tcnica de microprogramacin para disear la
unidad de control como alternativa al anterior diseo basado en
maquinas de estados finitos
Implementacin de la funcin siguiente estado Implementacin de la funcin siguiente estado
en la Mquina de Estados Finitos en el control microprogramado
Control unit PCWrite
PCWrite
PCWriteCond
PCWriteCond IorD
IorD MemRead
MemRead PLA or ROM MemWrite
MemWrite IRWrite
IRWrite BWrite
Control logic Outputs MemtoReg
MemtoReg
PCSource
Interno! PCSource
ALUOp
ALUOp
ALUSrcB
Outputs ALUSrcA
ALUSrcB
ALUSrcA RegWrite

RegW rite Externo! Input


RegDst
AddrCtl
RegDst
1
NS3
NS2
NS1 State
Inputs NS0 Adder

Address select logic


Op3
Op5

Op4

Op2

Op1

Op0

S3

S2

S1

S0

Op[5 0]
Instruction register State register
opcode field

Instruction register
opcode field

Estructura de Computadores (EUI: 2 Tema 4: Diseo del procesador (parte II) 12


ITIS)
Formato de las microinstrucciones

7 Campos -> Seales de Control (6) + Siguiente Microinstruccin (1)

Control Control Control


SRC1 SRC2 Memoria Secuenciamiento
ALU Registro PCWrite

Nombre del campo Funcin del campo Valores del campo


Control ALU Especifica la operacin que va a realizar la ALU add
durante el ciclo. subt
Func code
SRC1 Especifica la fuente para el primer operando de PC
la ALU A
SRC2 Especifica la fuente para el segundo operando B
de la ALU 4
Extend
ExtShft
Control Registro Especifica el nmero de registro y fuente del Read
dato que se escribe en el mismo Write ALU (rd <- ALUout)
Write MDR (rt <- MDR)
Memoria Especifica lectura o escritura y la fuente de la Read PC (IR <- M[PC])
direccin 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 microinstruccin que se Seq
va a ejecutar Fetch
Dispatch i

Estructura de Computadores (EUI: 2 Tema 4: Diseo del procesador (parte II) 13


ITIS)
Seales asociadas a los campos y sus valores

Control ALU SRC1 SRC2


Operacin Operacin Operacin
ALUop1 ALUOp0 AddrSrcA ALUSrB1 ALUSrcB0
0 0 Suma 0 PC 0 0 B
0 1 Resta 1 A
0 1 4
1 0 Func. code 1 0 Extend
1 1 ExtShft

Register Control Memoria


Oper. Oper.
RegWrite RegDst MemToReg IRWrite MemRead MemWrite IorD
1 1 0 Write ALU 1 1 0 0 Read PC
1 0 1 Write MDR 0 1 0 1 Read ALU
0 0 1 1 Write ALU

Control PCWrite Sec


Oper. Operacin
PCSrc1 PcSrc0 PCwrite PCWrtCond AddrCtl1 AddrCtl0
1 1 Seq.
0 0 1 0 ALU
0 0 Fetch
0 1 0 1 ALUOut-Cond
0 1 Dispatch1
1 0 1 0 Jump address
1 0 Dispatch2

Estructura de Computadores (EUI: 2 Tema 4: Diseo del procesador (parte II) 14


ITIS)
Microprograma de la unidad de control para el
subconjunto MIPS
Control
Control ALU SRC1 SRC2 Memoria Control PCWrite Sec.
Registro

PCWriteCond
MemToReg

PCSource1

PCSource0
ALUSrcB1

ALUSrcB0

MemRead

MemWrite
RegWrite

AddrCtl1

AddrCtl0
PCWrite
AluSrcA

IRWrite
RegDst
Aluop1

Aluop0

IorD
18 seales de control ->

Estado Etiqueta Control SRC1 SRC2 Control Memoria Control Secuenc.


ALU Registros PCWrite
0 Fetch Add PC 4 Read PC ALU Seq.
1 Add PC Extshft Read Dispatch 1
2 Mem1 Add A Extend Dispatch 2
3 LW2 Read ALU Seq
4 Write MDR Fetch
5 SW2 Write ALU Fetch
6 Rformat1 Func A B Seq
Cod
7 Write ALU Fetch
8 BEQ1 Subt A B ALUOut- Fetch
cond
9 JUMP1 Jump Fetch
Address
Estructura de Computadores (EUI: 2 Tema 4: Diseo del procesador (parte II) 15
ITIS)
Lgica de seleccin siguiente microinstruccin
(secuenciador de microprograma)
La lgica de seleccin de direcciones genera la direccin de la siguiente
microinstruccin a ejecutar. La siguiente direccin puede ser:
Siguiente microinstruccin (AddrCtl = 3) Sec
Operacin
Obtenida de la ROM 2 (AddrCtl=2) AddrCtl1 AddrCtl0
Obtenida de la ROM 1 (AddrCtl = 1) 1 1 Seq.
Direccin 0 (AddrCtl = 0) PLA or ROM 0 0 Fetch
0 1 Dispatch1
1
1 0 Dispatch2
State

Adder

Mux AddrCtl
3 2 1 0

Dispatch ROM 2 Dispatch ROM 1

Address select logic


Dispatch ROM1
Op

Dispatch ROM2 Op [5:0] Nombre Valor


Instruction register
Op [5:0] Nombre Valor opcode field 000000 R-Format R-Format1 (6)
100011 lw LW2 (3) 000010 jmp JUMP1 (9)
101011 sw SW2 (5) 000100 beq BEQ1 (8)
100011 lw MEM1 (2)
101011 sw MEM1 (2)
Estructura de Computadores (EUI: 2 Tema 4: Diseo del procesador (parte II) 16
ITIS)
Unidad de control microprogramada: Xilinx (I)

Estructura de Computadores (EUI: 2 Tema 4: Diseo del procesador (parte II) 17


ITIS)
Unidad de control microprogramada: Xilinx (II)

Estructura de Computadores (EUI: 2 Tema 4: Diseo del procesador (parte II) 18


ITIS)
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 ejecutndose siguiendo los mismos
pasos.
A continuacin, las tablas de dispatch nos permiten seleccionar la
siguiente microinstruccin a ejecutar cuando sta no es la siguiente
secuencial (ni hay que volver al principio).
En cualquier instante, la direccin de la siguiente microinstruccin a
ejecutar puede ser:
La siguiente microinstruccin secuencial
La microinstruccin obtenida de la tabla dispatch 1 (indexada con el opcode)
La microinstruccin obtenida de la tabla dispatch 2 (indexada con el opcode)
La primera microinstruccin
El registro de estado es el contador del microprograma, que seala
siempre la direccin de la siguiente microinstruccin a ejecutar.

Estructura de Computadores (EUI: 2 Tema 4: Diseo del procesador (parte II) 19


ITIS)

Vous aimerez peut-être aussi