Sei sulla pagina 1di 21

1

Estructura y Tecnologa de Computadores


Mdulo G. Estructura del procesador

Tema 16. Diseo de la ruta de datos y la


unidad de control

Jos Manuel Mendas Cuadros


Dpto.
Dpto. Arquitectura de Computadores y Automtica
Universidad Complutense de Madrid

contenidos
1. Introduccin
Importancia del diseo del procesador. Metodologa de diseo de un procesador.
Arquitectura MIPS: formato de la instruccin mquina y repertorio de instrucciones.

2. Diseo de la ruta de datos (monociclo)


Temporizacin monociclo. Componentes de la ruta de datos. Ensamblaje de la ruta de
datos. Ruta de datos monociclo: puntos de control.

3. Diseo del controlador (monociclo)


Determinacin de los valores de los puntos de control. Control global vs. Control local. Ruta
datos monociclo + controlador.

4. Diseo de la ruta de datos (multiciclo)


Problemas de los procesadores monociclo. Temporizacin multiciclo. Ruta de datos
multiciclo: con y sin buses.

5. Diseo del controlador (multiciclo)


Diagrama de estados del controlador. El controlador como una FSM. Alternativas de
implementacin del controlador

6. Estudio comparativo: monociclo vs. multiciclo


7. Microprogramacin
Comparacin de las alternativas de implementacin del controlador. Control
microprogramado: nocin y nomenclatura. Controlador microprogramado con formato de
microinstruccin horizontal. Controlador microprogramado con formato de microinstruccin
vertical por campos

estructura y tecnologa de computadores

1. introduccin
Importancia del diseo del procesador
El rendimiento de un computador est determinado por el tiempo que la CPU tarda
en ejecutar programas:

(tiempo de CPU) = (instrucciones por programa) CPI (tiempo de ciclo)


El diseo del procesador determina:
El tiempo de ciclo de reloj
Nmero de ciclos de reloj promedio por instruccin

Comnmente estos dos factores tienen una relacin inversa:


Procesador monociclo
1 ciclo por instruccin
Tiempo de ciclo largo
Procesador multiciclo
Varios ciclos por instruccin
Tiempo de ciclo corto

estructura y tecnologa de computadores

1. introduccin
Metodologa para el diseo de un procesador
Paso 1: Analizar el repertorio de instrucciones para obtener los requisitos de la ruta de datos
La ruta de datos debe incluir tantos elementos de almacenamiento como registros sean
visibles por el programador. Adems puede tener otros elementos de almacenamiento
transparentes.
La ruta de datos debe incluir tantos tipos de elementos operativos como tipos de
operaciones de clculo se indiquen en el repertorio de instrucciones
El significado de cada instruccin vendr dado por un conjunto de transferencias entre
registros. La ruta de datos debe ser capaz de soportar dichas transferencias.
Paso 2: Establecer la metodologa de temporizacin
Monociclo (CPI = 1): todas las transferencias de entre registros implicadas en una
instruccin se realizan en un nico ciclo de reloj.
Multiciclo (CPI > 1): las transferencias entre registros implicadas en una instruccin ser
reparten entre varios ciclos de reloj.
Paso 3: Seleccionar el conjunto de mdulos (de almacenamiento, operativos e interconexin)
que forman la ruta de datos
Paso 4: Ensamblar la ruta de datos de modo que se cumplan los requisitos impuestos por el
repertorio, localizando los puntos de control
Paso 5: Determinar los valores de los puntos de control analizando las transferencias entre
registros incluidas en cada instruccin.
Paso 6: Disear la lgica de control.

estructura y tecnologa de computadores

1. introduccin
Arquitectura MIPS: formato de la instruccin mquina de la
Todas las instrucciones del repertorio del MIPS tienen 32 bits de anchura, repartidas
en 3 formatos de instruccin diferentes:
31
Tipo R:
aritmtico-lgicas

Tipo I:
con memoria
salto condicional

Tipo J:
salto incondicional

26
op
6 bits
31
26
op
6 bits
31
26
op
6 bits

21
rs
5 bits
21
rs
5 bits

16
rt
5 bits
16
rt
5 bits

11
rd
5 bits

6
shamt
5 bits

0
funct
6 bits
0

inmediato
16 bits
0
direccin
26 bits

El significado de los campos es:

op: identificador de instruccin


rs, rt, rd: identificadores de los registros fuentes y destino
shamt: cantidad a desplazar (en operaciones de desplazamiento)
funct: selecciona la operacin aritmtica a realizar
inmediato: operando inmediato o desplazamiento en direccionamiento a registro-base
direccin: direccin destino del salto

estructura y tecnologa de computadores

1. introduccin
Arquitectura MIPS: subconjunto del repertorio de instrucciones
Instrucciones con referencia a memoria (formato tipo I):
lw rt, inmed(rs)
sw rt, inmed(rs)

rt Memoria( rs + SignExt( inmed ) ) , PC PC + 4


Memoria( rs + SignExt( inmed ) ) rt , PC PC + 4

Instrucciones aritmtico-lgicas con operandos en registros (formato tipo R)

add rd, rs, rt


sub rd, rs, rt
and rd, rs, rt
or rd, rs, rt
slt rd, rs, rt

rd rs + rt, PC PC + 4
rd rs - rt , PC PC + 4
rd rs and rt , PC PC + 4
rd rs or rt , PC PC + 4
( si ( rs < rt ) entonces ( rd 1 )
en otro caso ( rd 0 ) ), PC PC+4

Instrucciones de salto condicional (formato tipo I)


beq rs, rt, inmed

si ( rs = rt ) entonces ( PC PC + 4 + 4SignExp( inmed ) )


en otro caso PC PC + 4

1. El ciclo de instruccin comienza buscando la instruccin en memoria (fetch)


instruccin Memoria( PC )

2. En funcin del tipo de instruccin se realiza una de las anteriores operaciones


3. Se vuelve a comenzar
estructura y tecnologa de computadores

2. diseo de la ruta de datos (monociclo)


Temporizacin monociclo
Ejecucin tpica (de una instruccin)
Todos los registros se cargan simultneamente (de modo selectivo)
Todos los valores se propagan a travs de las redes combinacionales hasta estabilizarse
en las entradas de los registros
Se repite indefinidamente el proceso
Todos los elementos de almacenamiento estn sincronizados al mismo flanco de reloj:

Tiempo de ciclo = CKL-to-Q + Camino con retardo mximo + Setup + Clock Skew
( CLK-to-Q + Camino con retardo mnimo - Clock skew ) > Hold

Clk
Setup

Hold

Setup

Hold

Dont Care

.
.
.

.
.
.

.
.
.

.
.
.

estructura y tecnologa de computadores

2. diseo de la ruta de datos (monociclo)


Componentes de la ruta de datos
Para implementar el subconjunto del repertorio del MIPS en una implementacin
monociclo se requieren (el tamao de palabra es de 32 bits):

32
32
PC

32

+
32

ALUctr

32

3
32
16

estructura y tecnologa de computadores

Zero

32
ALU

32

32

Extensin
de signo

PCWrite

<< 2

Memoria de instrucciones
Memoria de datos
32 registros de datos: visibles por el programador.
Contador de programa
2 Sumadores: para sumar 4 al PC, y para sumar al PC el valor inmediato de salto.
ALU: capaz de realizar suma, resta, and, or, comparacin de mayora e indicacin de que el
resultado es cero (para realizar la comparacin de igualdad mediante resta)
Extensor de signo: para adaptar el operando inmediato de 16 bits al tamao de palabra.
Desplazador a la derecha: para implementar la multiplicacin por 4.

32

32

ALUctr
000
001
010
110
111

funcin
A and B
A or B
A+B
AB
1 si (A<B),
sino 0

2. diseo de la ruta de datos (monociclo)


Componentes de la ruta de datos (cont.)
Los 32 registros se almacenan en un banco de registros. Dado que en las
instrucciones de tipo R, se requiere un acceso simultneo a 3 registros:

2 salidas de datos de 32 bits


1 entradas de datos de 32 bits
3 entradas de 5 bits para la identificacin de los registros
1 entrada de control para habilitar la escritura sobre uno de los registros
1 puerto de reloj (slo determinante durante las operaciones de escritura, las de lectura son
combinacionales)
RegWr

RA

Decodificador
5 a 32

Registro 32
Registro 31

RA

busA

busA
RB

RB
RW

Banco de
registros

Registro 1
....

MUX

Registro 0

RW

0
1

C
Registro 0
D
C
Registro 1

31

32

busB

MUX

busW

busB

Registro 30

RegWr

D
C
Registro 31
D

BusW
Mecanismo de lectura

Mecanismo de escritura

estructura y tecnologa de computadores

10

2. diseo de la ruta de datos (monociclo)


Componentes de la ruta de datos (cont.)
La memoria tendr un comportamiento idealizado.

MemWrite
ADDR
DR

estructura y tecnologa de computadores

DW

Memoria
de datos

ADDR

Memoria
de instrucciones

Integrada dentro de la CPU.


Direccionable por bytes, pero capaz de aceptar/ofrecer 4 bytes por acceso
1 entrada de direccin
1 salida de datos de 32 bits
1 entrada de datos de 32 bits (slo en la de datos)
1 entrada de control para seleccionar el tipo de operacin (lectura/escritura)
Se supondr que se comporta temporalmente como el banco de registros (sncronamente)
y que tiene un tiempo de acceso menor que el tiempo de ciclo
Se supondr dividida en dos para poder hacer dos accesos a memoria en el mismo ciclo:
Memoria de instrucciones
Memoria de datos

DR

11

2. diseo de la ruta de datos (monociclo)


Ensamblaje de la ruta de datos
La bsqueda de instrucciones implica:
Leer la instruccin ubicada en la direccin de la memoria de instrucciones indicada por
el contador de programa:

La ejecucin secuencial de programas implica:

Actualizar el contador de programa para que apunte a la siguiente instruccin (sumando


4 por ser una memoria direccionable por bytes y una arquitectura con tamao de palabra
de 32 bits

ADDR

Memoria de
instrucciones

PC

DR

instruccin

estructura y tecnologa de computadores

12

2. diseo de la ruta de datos (monociclo)


Ensamblaje de la ruta de datos (cont.)
Las instrucciones aritmtico lgicas (tipo-R) implican:
BR(rd) BR(rs) funct BR(rt)
Leer dos registros cuyos identificadores se ubican en los campos rs y rt de la instruccin:
Operar sobre ellos segn el contenido del campo de cdigo de operacin aritmtica (funct)
de la instruccin
Almacenar el resultado en otro registro cuyo identificador se localiza en el campo rd de la
instruccin

RegWrite
ALUCtr
RA
RB
RW

busA

ALU

rt
rd

Banco de
registros

instruccin

3
rs

busB

busW

estructura y tecnologa de computadores

13

2. diseo de la ruta de datos (monociclo)


Clk
PC

Valor antiguo

Clk-to-Q
Valor nuevo

Rs, Rt, Rd,


Op, Func

Valor antiguo

ALUOp

Valor antiguo

RegWrite

Valor antiguo

busA, B

Valor antiguo

busW

Valor antiguo

Tiempo de acceso a memoria de instrucciones


Valor Nuevo
Retardo de la lgica de control
Valor nuevo
Valor nuevo
Tiempo de acceso al banco de registros
Valor nuevo
Retardo de la ALU
Valor nuevo
RegWrite

aqu se escribe
el registro

rt

RB
RW

rd

busW

busA
ALU

cronograma de una
operacin arimtico-lgica

RA
Banco de
registros

instruccin

ALUCtr
rs

busB

estructura y tecnologa de computadores

14

2. diseo de la ruta de datos (monociclo)


Ensamblaje de la ruta de datos (cont.)
La instruccin de carga (lw) implica:
BR(rt) Memoria( BR(rs) + SignExt( inmed ) )
Calcular la direccin efectiva de memoria:
Leyendo el registro base cuyo identificador se ubica en el campo rs de la instruccin
Obteniendo un desplazamiento de 32 bits a partir de la extensin del campo de
operando inmediato (inmed) de la instruccin
Sumando base y desplazamiento.
Leer dato ubicado en la memoria de datos cuya direccin es la anteriormente calculada
Almacenar el dato ledo de memoria en el registro cuyo identificador se especifica en el
campo rt de la instruccin
RegDst

RegWrite
ALUCtr
MemWrite
ALUSrc

busW

busB

ADDR

16

inmed

DW
32

estructura y tecnologa de computadores

MemRead

DR

MUX

RW

Extensin
de signo

rd

MUX

MemtoReg
busA

Memoria de
datos

RB

ALU

rt

MUX

RA

Banco de
registros

rs

15

2. diseo de la ruta de datos (monociclo)


Ensamblaje de la ruta de datos (cont.)
La instruccin de almacenaje (sw) implica:
Memoria( BR(rs) + SignExt( inmed ) ) BR(rt)
Leer el dato almacenado en el registro cuyo identificador se especifica en el campo rt de la
instruccin
Calcular la direccin efectiva de memoria:
Leyendo el registro base cuyo identificador se ubica en el campo rs de la instruccin
Obteniendo un desplazamiento de 32 bits a partir de la extensin del campo de
operando inmediato (inmed) de la instruccin
Sumando base y desplazamiento.
Almacenar el dato ledo en la memoria de datos en la direccin anteriormente calculada
RegDst

RegWrite
ALUCtr
MemWrite
ALUSrc
RA

busB

ADDR

16

inmed

Memoria de
datos

busW

ALU

RW

Extensin
de signo

rd

MUX

MemtoReg

MUX

RB

Banco de
registros

rt

busA

DR

MUX

rs

DW
32

MemRead

estructura y tecnologa de computadores

16

2. diseo de la ruta de datos (monociclo)


Ensamblaje de la ruta de datos (cont.)
La instruccin de salto condicional (beq) implica

si ( BR(rs) = BR(rt) ) entonces ( PC PC + 4SignExp( inmed ) )


Leer dos registros cuyos identificadores se ubican en los campos rs y rt de la instruccin:
Comparar la igualdad de sus contenidos y en funcin del resultado:
No hacer nada o
Sumar al contador del programa un desplazamiento de 32 bits obtenido a partir de la
extensin del campo de operando inmediato (inmed) de la instruccin

<<2

MUX

PCSrc
RegDst

RegWrite
ALUCtr
ALUSrc

Zero

RW

busW

inmed

estructura y tecnologa de computadores

busB

16

32

ALU

rd

MUX

DR

busA

Extensin
de signo

RB

Banco de
registros

RA

rt
MUX

Memoria de
instrucciones

PC

rs
ADDR

17

2. diseo de la ruta de datos (monociclo)

<<2

MUX

PCSrc
RegDst

RegWrite
ALUCtr
MemWrite
ALUSrc

Zero

RA

Instruccin [15-0]

busB

ADDR

16

Ruta de datos monociclo

DW

DR

MUX

busW

Memoria de
datos

RW

ALU

Instruccin [15-11]

MUX

DR

MemtoReg
busA

Extensin
de signo

RB

Banco de
registros

Instruccin [20-16]

MUX

Memoria de
instrucciones

PC

Instruccin [25-21]
ADDR

32

MemRead

La ejecucin monociclo ha obligado a:


No usar ms de una vez por instruccin cada recurso. Duplicarlo si es necesario
Memoria de instrucciones y datos separadas
Aadir multiplexores cuando un valor pueda provenir de varias fuentes

estructura y tecnologa de computadores

18

3. diseo del controlador (monociclo)


Determinacin de los valores de los puntos de control
La tarea del controlador es:
Seleccionar las operaciones a realizar por los mdulos multifuncin (ALU, read/write, ...)
Controlar el flujo de datos, controlando la entrada de seleccin de los multiplexores y la seal de
carga de los registros
Instruccin de carga (lw)
rt Memoria( rs + SignExt( inmed ) ), PC PC + 4
RegDest 0, RegWrite 1, ALUsrc 1, ALUctr 010, PCSrc 0, MemWrite 0, MemRead 1, MemtoReg 1

Instruccin de almacenaje (sw)


Memoria( rs + SignExt( inmed ) ) rs, PC PC + 4
RegDest X, RegWrite 0, ALUsrc 1, ALUctr 010, PCSrc 0, MemWrite 1, MemRead 0, MemtoReg X

Instruccin and
rd rs and rt, PC PC + 4
RegDest 1, RegWrite 1, ALUsrc 0, ALUctr 000, PCSrc 0, MemWrite 0, MemRead 0, MemtoReg 0

Instruccin de salto condicional (beq)


si ( rs = rt ) entonces ( PC PC + 4 + 4SignExp( inmed ) ) en otro caso PC PC + 4
RegDest X, RegWrite 0, ALUsrc 0, ALUctr 110, PCSrc Zero, MemWrite 0, MemRead 0, MemtoReg X

estructura y tecnologa de computadores

19

3. diseo del controlador (monociclo)


Control global vs. Control local
Todas las operaciones aritmticas comparten el mismo cdigo de operacin y durante su ejecucin todas
las seales generales de la ruta de dato son iguales. Por ello, utilizaremos:
Un control principal para decodificar el campo de cdigo de operacin (op) y configurar
globalmente la ruta de datos
Un control local a la ALU que decodifique el campo de operacin aritmtica (funct) y seleccione la
operacin que debe realizar la ALU
Adicionalmente en operaciones no aritmticas (lw, sw y beq) el control principal puede ordenar
alguna operacin a la ALU para calcular las DE o realizar comparaciones.
Utilizaremos la seal intermedia ALUop cuyo valor ser:
00 en operaciones con acceso a memoria
01 en operaciones de salto
11 en operaciones aritmticas
Del mismo modo para controlar qu direccin debe cargar el PC se utilizar una seal intermedia Branch
(activada durante la instruccin beq) a la que se har la y-lgica con la seal Zero que genera la ALU.
funct

6
ALUop
2
Branch

PCSrc

Control
principal

Control de
ALU (local)

ALUctr

op

Zero

estructura y tecnologa de computadores

20

3. diseo del controlador (monociclo)

RegDst
Branch
MemRead
MemtoReg
ALUOp
MemWrite
ALUSrc
RegWrite

Zero

busW

Instruccin [5-0]

Ruta de datos monociclo + controlador

estructura y tecnologa de computadores

ADDR

16

Instruccin [15-0]

busB

DW
32

DR

MUX

ALU

RW

MUX

Instruccin [15-11]

busA

Control
de ALU

Extensin
de signo

RB
DR

Banco de
registros

RA
Instruccin [20-16]

MUX

Memoria de
instrucciones

PC

Instruccin [25-21]
ADDR

Memoria de
datos

Instruccin [31-26]

Control
principal

<<2

MUX

21

3. diseo del controlador (monociclo)


Control de la ALU
op
100011 (lw)
101011 (sw)
000100 (beq)

ALUop ALUctr
00
010
00
010
01
110
11
010
11
110
11
000
11
001
11
111

XXXXXX

100000 (add)
100010 (sub)
000000 (tipo-R) 100100 (and)
100101 (or)
101010 (slt)

Brach

ALUop

1
0
0
1

MemRead
MemWrite

MemtoReg
RegWrite

RegDst
ALUSrc

100011 (lw)
0 1 1
101011 (sw)
X 1 X
000100 (beq)
X 0 X
000000 (tipo-R) 1 0 0

1
0
0
0

0
0
1
0

00
00
01
10

0
1
0
0

ALUop1
ALUctr2

f3
f2

ALUctr

ALUctr1

funct
f1

ALUctr0

f0
op5
op4
op3
op2
op1
op0

Control principal

op

ALUop0

ALUop

funct

tipo-R

Iw

sw

beq

RegDst
ALUSrc
MemtoReg
RegWrite
MemRead
MemWrite
Branch
ALUop1
ALUop0

estructura y tecnologa de computadores

22

4. diseo de la ruta de datos (multiciclo)


cronograma completo de la ejecucin de la instruccin lw

Clk
PC

Valor antiguo

Clk-to-Q
Valor Nuevo
Tiempo de acceso a la Memoria de Instrucciones
Valor Nuevo
Retardo de la lgica de control
Valor Nuevo

Rs, Rt, Rd,


Op, Func

Valor Antiguo

ALUctr

Valor Antiguo

ExtOp

Valor Antiguo

Valor Nuevo

ALUSrc

Valor Antiguo

Valor Nuevo

MemtoReg

Valor Antiguo

Valor Nuevo

RegWr

Valor Antiguo

Valor Nuevo

busA
busB
Addr
busW

Valor Antiguo

Tiempo de acceso al Banco de Registros


Valor Nuevo

Retado del Extensor y el MUX


Valor Antiguo
Valor Antiguo
Tiempo de acceso a la Memoria de Datos
Valor Antiguo

estructura y tecnologa de computadores

aqu se escribe
el registro

Valor Nuevo
Retardo de la ALU
Valor Nuevo
Valor Nuevo

23

4. diseo de la ruta de datos (multiciclo)


lw

PC

mem. instrucin

banco reg. mux


ALU
Camino crtico

mem. dato

sw

PC

mem. instrucin

banco reg.

mux

ALU

mem. dato

beq

PC

mem. instrucin

banco reg.

mux

ALU

mux setup

tipo-R

PC

mem. instrucin

banco reg.

mux

ALU

mux setup

mux setup

desperdicio

desperdicio
desperdicio

Problema: en un controlador monociclo:


El reloj debe tener igual periodo que la instruccin ms lenta
Dado que dicho periodo es fijo, en las instrucciones rpidas se desperdicia tiempo.
En repertorios reales, existen instrucciones muy largas: aritmtica en punto flotante, modos
de direccionamiento complejos, etc.
No se puede reusar hardware
Si en una instruccin se necesitaran hacer 4 sumas (resolver los 3 modos de
direccionamiento de los operandos y sumarlos) se necesitaran 4 sumadores
Solucin: dividir la ejecucin de la instruccin en varios ciclos ms pequeos:
Cada instruccin usar el nmero de ciclos que necesite
Un mismo elemento hardware se puede ser utilizado varias veces en la ejecucin de una
instruccin si se hace en ciclos diferentes
Se requieren elementos adicionales para almacenar valores desde el ciclo en que se calculan
hasta el ciclo en que se usan.

estructura y tecnologa de computadores

24

4. diseo de la ruta de datos (multiciclo)


Clk
Tiempo de acceso a la Memoria de Instrucciones

Nuevo Clk

estructura y tecnologa de computadores

BR( x)

o Memoria

Lg.
comb.

BR( x)

Lg.
comb.

MDR

Lg.
comb.

ALUout

Lg.
comb.

AoB

Lg.
comb.

o Memoria

Ejecucin
(almacenaje)

Busqueda de
operando

Lgica combinacional acclica

IR

Controlador
multiciclo

PC

Controlador
monociclo

Clculo de
DE

Bsqueda de
componentes
de DE

Busqueda de
instrucciones

PC

Temporizacin multiciclo

Tiempo de acceso al Banco de Registros


Retardo de la ALU
Tiempo de acceso a la Memoria de Datos

25

4. diseo de la ruta de datos (multiciclo)


PCWrite

MemWrite

IorD

IRWrite

RegDst

AWrite

ALUSrcA

Control
de ALU

RegWrite

Instruccin [15-11]

DW

busB

busW

1
2

MUX

MDR

BWrite

MDRWrite

MemtoReg

ALUSrcB

<<2

Instruc. [15-0]

Extensin
de signo

MemRead

ALUout

RW

Zero

ALU

RB
0

busA

DR

MUX

IR

Memoria

Instruccin [20-16]

ADDR

Banco de
registros

RA

MUX

Instruccin [25-21]

MUX

0
0

MUX

PC

OutWrite

ALUop

Ruta de datos multiciclo

estructura y tecnologa de computadores

26

4. diseo de la ruta de datos (multiciclo)


MemWrite

MDRWrite

BusA

RegDst

RegWrite

AWrite

PCWrite

Decod.
busA

RA
RB

busB

<<2

Extensin
de signo

DW

Decod.
busB

MemRead

IRWrite

ALUop

Zero

RW

Instruc. [15-0]

PC

ALUout

MUX

Instruccin [15-11]

DR

IR

ADDR

Memoria

busA

ALU

Instruccin [20-16]

Instruccin [25-21]

Banco de
registros

busW

MDR

Control
de ALU

BWrite

ALUop

OutWrite

Ruta de datos multiciclo con buses


Cada bus slo puede ser usado para escribir desde una fuente (aunque puede ser leido desde varios destinos)

estructura y tecnologa de computadores

27

5. diseo del controlador (multiciclo)


Instruccin de carga (lw)

Instruccin de almacenaje (sw)

Transferencias entre registros lgicas


BR( rt ) Memoria( BR( rs ) + SignExt( inmed ) ),
PC PC + 4
Transferencias entre registros fsicas
1. IR Memoria( PC ), PC PC + 4
2. A BR( rs )
3. ALUout A + SignExt( inmed )
4. MDR Memoria( ALUout )
5. BR( rt ) MDR

Transferencias entre registros lgicas


Memoria( BR( rs ) + SignExt( inmed ) ) BR( rt ),
PC PC + 4
Transferencias entre registros fsicas
1. IR Memoria( PC ), PC PC + 4
2. A BR( rs ), B BR( rt )
3. ALUout A + SignExt( inmed )
4. Memoria( ALUout ) B

Instruccin aritmtica (tipo-R)

Instruccin de salto condicional (beq)


Transferencias entre registros lgicas
si ( BR( rs ) = BR( rt ) )
entonces PC PC + 4 + 4SignExt( inmed )
sino PC PC + 4
Transferencias entre registros fsicas
1. IR Memoria( PC ), PC PC + 4
2. A BR( rs ), B BR( rt ),
3. A - B
4. si Zero entonces PC PC + 4SignExt( inmed )

Transferencias entre registros lgicas


BR( rd ) BR( rs ) funct BR( rt ), PC PC + 4
Transferencias entre registros fsicas
1. IR Memoria( PC ), PC PC + 4
2. A BR( rs ), B BR( rt )
3. ALUout A funct B
4. BR( rd ) ALUout

Observaciones: en todas las instrucciones las acciones 1. y 2. son iguales (excepto en lw que no habra
problema en modificarla)

estructura y tecnologa de computadores

28

Bsqueda
de instruccin

IR Memoria( PC )
PC PC + 4

Decod.

5. diseo del controlador (multiciclo)

A BR( rs )
B BR( rt )

Ejecucin

op

-R
ipo
= t

Diagrama de estados del controlador multiciclo

op = b
eq

op =
sw

op = lw

7
ALUout A funct B

2
ALUout A + SignExt( inmed )

9
Zero = 0

ALUout A + SignExt( inmed )

A -B

Write-back

Acceso a
memoria

Zero = 1
6

3
MDR Memoria( ALUout )

8
BR( rd ) ALUout

4
BR( rt ) MDR

estructura y tecnologa de computadores

Memoria( ALUout ) B

10
PC PC + 4SignExt( inmed )

29

5. diseo del controlador (multiciclo)


El controlador como FSM (finite
(finite state machine)
machine)
1. Se traducen las transferencias entre registros como conjuntos de activaciones de los puntos de control de la ruta de datos
2. Se codifican los estados
3. Mediante tablas de verdad se describen:
las transiciones de estado en funcin del cdigo de operacin y del estado de la ruta de datos
el valor de las seales de control en funcin del estado (controlador tipo Moore) y adicionalmente en funcin del
estado de la ruta de datos (controlador tipo Mealy).
4. La estructura del controlador estar formada por:
Registro de estado
Conjunto de lgica combinacional de control que implementa las anteriores tablas

11

Zero

Lgica combinacional
de control

op

a
el s
o d ato
tad e d
s
E ta d
ru

IR

Registro
estado
4
AWrite
OutWrite
MDRWrite
IRWrite
PCWrite
BWrite
ALUSrcA
ALUSrcB
ALUOp
MemWrite
MemRead
IorD
MemtoReg
RegDest
RegWrite

del
ado or
Est trolad
n
co

estructura y tecnologa de computadores

30

RegWrite

RegDest

MemtoReg

000100 (beq)

MDRWrite

0001

IorD

0111

MemRead

0101

00 (add)

MemWrite

000000 (tipo-R)

01

OutWrite

101011 (sw)

0001

ALUOp

0001

ALUScrB

0010

ALUSrcA

PCWrite
0

BWrite

IRWrite
0

100011 (lw)

AWrite

Estado
siguiente

Zero

XXXXXX

0001

0000

Tabla de verdad del controlador

0001

op

Estado
actual

5. diseo del controlador (multiciclo)

1001

0010

XXXXXX

0011

0011

XXXXXX

0100

0100

XXXXXX

0000

0101

XXXXXX

0110

0110

XXXXXX

0000

0111

XXXXXX

1000

1000

XXXXXX

0000

1001

XXXXXX

0000
0

00

01 (sub)

1001

XXXXXX

1010

1010

XXXXXX

0000

11

00 (add)

estructura y tecnologa de computadores

10

10

00

00 (add)

00 (add)

11 (funct)

0
1

0
1

1
0

0
0
0

31

5. diseo del controlador (multiciclo)


Alternativas de implementacin
de la lgica de control

s3

Lgica discreta:
21 funciones de conmutacin
11 variables diferentes
1 PLA
11 entradas
21 salidas
15 trminos producto
1 ROM (~42 Kbits):
11 bits de direccin (211 palabras)
palabras de 21 bits
2 ROM (~10 Kbits)
ROM de control:
4 bits de direccin (24 palabras)
palabra de 17 bits
ROM de siguiente estado:
11 bits de direccin (211 palabras)
palabras de 4 bits

s1

s2

s0
op5
op4
op3
op2
op1
op0
zero
ns3
ns2
ns1
ns0
IRWrite
PCWrite
AWrite
BWrite
ALUSrcA
ALUSrcB1
ALUSrcB0
ALUOp1
ALUOp0
OutWrite
MemWrite
MemRead
IorD
MRDWrite
MemtoReg
RegDest
RegWrite

Ventajas de la lgica discreta:


velocidad y coste
Ventajas de la lgica almacenada:
facilidad de diseo
adaptabilidad

estructura y tecnologa de computadores

32

6. Comparacin: monociclo vs. multiciclo


Asumir que el tiempo de ciclo en el
procesador muticiclo es 5 veces menor
que el tiempo de ciclo en el procesador
monociclo

lw

lw

lw

lw

lw $t2, 0($t3)
lw $t3, 4($t3)
beq $t2, $t3, Label
add $t5, $t2, $t3
sw $t5, 8($t3)

beq

add

beq

106 instrucciones tardan en ejecutarse:


tmulti = 106 CPImulti tmulti = 106 4.03 tmulti
tmono = 106 CPImono tmono = 106 1 5 tmulti
tmulti / tmono = 4.03 / 5 = 0.8
los programas tardan un 20% menos en
ejecutarse en el computador multiciclo

estructura y tecnologa de computadores

#asumir que no se salta

sw

add

Operacin
tipo-R
lw
st
beq (salta)
beq (no salta)

diferencia

sw

Frecuencia
50%
20%
10%
2.5%
17.5%

Ciclos
4
5
4
4
3

CPI
2.0
1.0
.4
.1
0.53
4.03

33

7. control microprogramado
Comparacin de las alternativas de implementacin de la lgica de control
El diseo con lgica discreta o PLA:
No es sistemtico
Una vez diseado es inflexible: un error o modificacin requieren el rediseo completo de
la lgica de control
Una mayor complejidad del repertorio se traduce en un mayor complejidad del diseo

El diseo con lgica almacenada:


Es sistemtico: el mtodo de diseo es similar a los mtodos de programacin:
traducir cada instruccin en una secuencia de palabras de control que se almacenan
en la memoria de control.
Es flexible: para modificar o corregir una accin de control basta con modificar el
contenido de una palabra de la memoria (ROM o PROM) sin modificar la estructura del
controlador
Mayor complejidad de las instrucciones slo implica mayor tamao de la memoria

Adems en cualquiera de ambas alternativas:


Mucha de la lgica de control est dedicada a especificar el estado siguiente, siendo en
realidad mucho de ese secuenciamiento consecutivo:
En sistemas reales el nmero de estados es muy grande
Muchas de de las palabras de control estn repetidas, luego existe lgica desperdiciada
Por ejemplo, clculo de DE, acceso a memorias, etc..

estructura y tecnologa de computadores

34

CPU

Subsistema
de memoria

7. control microprogramado
Programa de usuario:
formado por instrucciones
puede cambiar

SUB
ADD
AND
.
.
.

ruta de datos
controlador

Cada tipo de instruccin


tiene asociado un
-programa diferente

-programa de la instruccin AND:


-rutina de bsqueda de instruccin
-rutina de clculo de DE
-rutina de bsqueda de operandos
-rutina de clculo
-rutina de almacenaje de resultado(s)
-programa de control:
formado por -instrucciones
no puede cambiarse (pero no sera
dificil hacerlo)

estructura y tecnologa de computadores

35

7. control microprogramado
Nomenclatura
-rdenes: conjunto de seales de control que gobiernan las transferencias entre
registros que realiza la ruta de datos.
-instruccin: palabra de control almacenada. Incluye una coleccin de bits que
indican las -rdenes que se realizan en un ciclo de reloj
formato de -instruccin: distribucin, codificacin y tamao de cada una de las rdenes dentro de una -instruccin.
Formato horizontal: cada bit de la -instruccin est asociado a un punto de control de la
ruta de datos
Formato vertical: definir todas las -instrucciones diferentes y codificarlas con el menor
nmero de bits posibles. Requieren de un decodificador complejo que a veces se resuelve
mediante nano-programacin
Formato vertical por campos: compactar el formato de la microinstruccin para cada
clase de -operacin, y decodificarla localmente para generar los valores de las seales de
control

-rutina: secuencia de -instrucciones encargadas de implementar una instruccin


mquina o una porcin de ella (por ejemplo, clculo de la DE de memoria)
memoria de -programa: memoria ROM (o PROM) donde se almacenan cada una
de las -rutinas que implementan el repertorio de instrucciones de un computador
-secuenciador: mdulo del controlador encargado de direccionar adecuadamente
la memoria de -programa para ejecutar las -instrucciones que forman una
instruccin mquina.
estructura y tecnologa de computadores

36

7. control microprogramado
-secuenciador

0
1
2
3

-PC

MUX

tabla de
-saltos

Memoria de
-programa
4
seq

op
Est
a
ruta do de
la
de
dat
os

IR

AWrite
OutWrite
MDRWrite
IRWrite
PCWrite
BWrite
ALUSrcA
ALUSrcB
ALUOp
MemWrite
MemRead
IorD
MemtoReg
RegDest
RegWrite

Zero

Controlador microprogramado
con formato de -instruccin horizontal

estructura y tecnologa de computadores

37

7. control microprogramado

tipo-R

sw

beq

0011

00 (inc)

0100

01 (cero)

0101

00 (inc)

0110

01 (cero)

0111

00 (inc)

1000

01 (cero)

1001

11 (cond)

00

1010

01 (cero)

11

10

100011 (lw)

0010

101011 (sw)

0101

000000 (tipo-R)

0111

000100 (beq)

1001

01 (sub)

00 (add)

00 (add)

10

00 (add)

00

op

00 (add)

1
1

-direccin
de salto

RegWrite

RegDest

00 (inc)

MemtoReg

0010

MDRWrite

IorD

MemRead

10 (saltar)

MemWrite

0001

OutWrite

ALUScrB

BWrite

AWrite

00 (inc)

Seq

0000

Tabla de -saltos

ALUOp

ALUSrcA

01

PCWrite

lw

IRWrite

fetch y
decod.

-direccin

(estado actual)

Contenido de la memoria de -programa

11 (funct)

0
1

1
0

0
0
0

Problemas del formato horizontal:


-instrucciones muy largas: grandes memorias de -programa
la mayor parte de los bits de la -instruccin estn a 0, o no son relevantes

estructura y tecnologa de computadores

38

7. control microprogramado
MEM

MEM

WB

0100

01

0101

00

0110

01

0111

00

1000

01

1001

11

00

1010

01

11

estructura y tecnologa de computadores

01

00

00

10

10

00

5 -op

00

00

11

4 -op

RegWrite

01

RegDest

MemtoReg

00

0
1

MemWrite

00

0011

1
0

ALUOp

0010

0
0

ALUScrB

ALUSrcA

BWrite

10

IorD

ALU

00

0001

WB

MemRead

IR PC B

PCWrite

seq

IRWrite

Formato de -instrucci
-instruccin

seq

Mtodo de agrupamiento: Se suelen agrupar


aquellas seales que tienen fines similares:
Control de la ALU
Control de la Memoria
Control del banco de registros

0000

-direccin

Solucin:
Detectar seales constantes: Awrite,
OutWrite y MDRWrite pueden ser igual a 1
en todos los estados. Con eso reducimos
en 3 las lneas de control
Agrupar aquellas seales que no se
activan simultneamente y codificarlas
Slo una -operacin por grupo se
especifica en cada -instruccin
Se requieren decodificadores locales para
generar las seales de control

(estado actual)

ALU

0
0
0

0
1

1
0

0
0
0

3 -op

39

7. control microprogramado

RegWrite

00

nop

01

Memoria BR

10

MDR BR

11

nop

ALUSrcA

ALUSrcB

ALUop

-operacin

000

00

11

A funct B ???

00

010

10

00

A + SignExt( IR ) ???

011

11

00

PC + 4SignExt( IR ) ???

100

00

01

A B ???

resto

--

--

nop

MemRead

01

MemWrite

-operacin

MEM

PC + 4 ???

001

00

nop

01

B Memoria( ALUout )

10

Memoria( PC ) ???

11

Memoria( ALUout ) ???

IorD

ALU

WB

RegDest

MemtoReg

Codificacin de los campos de -instrucci


-instruccin

-operacin

estructura y tecnologa de computadores

40

7. control microprogramado

IRWrite

PCWrite

00

0001

10

0010

00

0011

00

0100

01

0101
0110

ALU

MEM

WB

BWrite

seq

0000

-direccin

(estado actual)

Contenido de la memoria de -programa

001

10

00

00

00

00

00

11

00

00

10

00

00

00

01

01

00

0111

00

00

00

1000

01

00

01

1001

11

100

00

00

1010

01

011

00

00

1
010

010

000

Alternativas de implementacin
de la lgica de control
FSM con 1 ROM (~42 Kbits):
11 bits de direccin (211 palabras)
palabras de 21 bits
-programado horizontal (~0.3 Kbits)
4 bits de direccin (24 palabras)
palabra de 19 bits
-programado vertical por campos (~0.2 Kbits)
4 bits de direccin (24 palabras)
palabra de 16 bits

estructura y tecnologa de computadores

41

7. control microprogramado
1

0
1
2
3

-PC

MUX

tabla de
-saltos

Memoria de
-programa
4
seq IR PC B

ALU

MEM

WB

Dec2

Dec3

MemWrite
MemRead
IorD

MemtoReg
RegDest
RegWrite

1 1 1
IR

Controlador microprogramado
con formato de -instruccin vertical por campos

estructura y tecnologa de computadores

AWrite
OutWrite
MDRWrite
IRWrite
PCWrite
BWrite

Est
a
ruta do de
la
de
dat
os

Dec1

Zero
op

ALUSrcA
ALUSrcB
ALUOp

Potrebbero piacerti anche