estructura de computadores (eui: 2º itis) tema 4: diseño del procesador (parte ii)1 diseño de la...

19
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

Upload: anacleto-matalon

Post on 23-Jan-2016

251 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: 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

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

Page 2: 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

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

Page 3: 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

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

Page 4: 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

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

Page 5: 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

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

Page 6: 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

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

Page 7: 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

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.

Page 8: 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

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

Page 9: 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

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

Page 10: 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

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.

Page 11: 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

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!

Page 12: 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

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!

Page 13: 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

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

Page 14: 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

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

Page 15: 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

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 ->

Page 16: 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

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)

Page 17: 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

Estructura de Computadores (EUI: 2º ITIS)

Tema 4: Diseño del procesador (parte II) 17

Unidad de control microprogramada: Xilinx (I)

Page 18: 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

Estructura de Computadores (EUI: 2º ITIS)

Tema 4: Diseño del procesador (parte II) 18

Unidad de control microprogramada: Xilinx (II)

Page 19: 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

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.