estructura y tecnología de computadores módulo g ...estructura y tecnología de computadores...
TRANSCRIPT
1
Estructura y Tecnología de ComputadoresEstructura y Tecnología de Computadores
Módulo G. Estructura del procesador
Tema 16. Diseño de la ruta de datos y laTema 16. Diseño de la ruta de datos y la unidad de control unidad de control
José Manuel Mendías CuadrosJosé Manuel Mendías CuadrosDptoDpto. Arquitectura de Computadores y Automática. Arquitectura de Computadores y Automática
Universidad Complutense de MadridUniversidad Complutense de Madrid
2
estructura y tecnología deestructura y tecnología de computadores computadores
contenidoscontenidos
1. IntroducciónImportancia del diseño del procesador. Metodología de diseño de un procesador.Arquitectura MIPS: formato de la instrucción máquina y repertorio de instrucciones.
2. Diseño de la ruta de datos (monociclo)Temporización monociclo. Componentes de la ruta de datos. Ensamblaje de la ruta dedatos. Ruta de datos monociclo: puntos de control.
3. Diseño del controlador (monociclo)Determinación de los valores de los puntos de control. Control global vs. Control local. Rutadatos monociclo + controlador.
4. Diseño de la ruta de datos (multiciclo)Problemas de los procesadores monociclo. Temporización multiciclo. Ruta de datosmulticiclo: con y sin buses.
5. Diseño del controlador (multiciclo)Diagrama de estados del controlador. El controlador como una FSM. Alternativas deimplementación del controlador
6. Estudio comparativo: monociclo vs. multiciclo
7. MicroprogramaciónComparación de las alternativas de implementación del controlador. Controlmicroprogramado: noción y nomenclatura. Controlador microprogramado con formato demicroinstrucción horizontal. Controlador microprogramado con formato de microinstrucciónvertical por campos
3
estructura y tecnología deestructura y tecnología de computadores computadores
1. introducción1. introducción
⌦ El rendimiento de un computador está determinado por el tiempo que la CPU tardaen ejecutar programas:
⌦ El diseño del procesador determina:Ø El tiempo de ciclo de reloj
Ø Número de ciclos de reloj promedio por instrucción
⌦ Comúnmente estos dos factores tienen una relación inversa:Ø Procesador monociclo
ð 1 ciclo por instrucción
ð Tiempo de ciclo largo
Ø Procesador multiciclo
ð Varios ciclos por instrucción
ð Tiempo de ciclo corto
(tiempo de CPU) = (instrucciones por programa) × CPI × (tiempo de ciclo)
Importancia del diseño del procesador
4
estructura y tecnología deestructura y tecnología de computadores computadores
1. introducción1. introducción
⌦ 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 seanvisibles por el programador. Además puede tener otros elementos de almacenamientotransparentes.
Ø La ruta de datos debe incluir tantos tipos de elementos operativos como tipos deoperaciones de cálculo se indiquen en el repertorio de instrucciones
Ø El significado de cada instrucción vendrá dado por un conjunto de transferencias entreregistros. La ruta de datos debe ser capaz de soportar dichas transferencias.
⌦ Paso 2: Establecer la metodología de temporización
Ø Monociclo (CPI = 1): todas las transferencias de entre registros implicadas en unainstrucción se realizan en un único ciclo de reloj.
Ø Multiciclo (CPI > 1): las transferencias entre registros implicadas en una instrucción serreparten entre varios ciclos de reloj.
⌦ Paso 3: Seleccionar el conjunto de módulos (de almacenamiento, operativos e interconexión)que forman la ruta de datos
⌦ Paso 4: Ensamblar la ruta de datos de modo que se cumplan los requisitos impuestos por elrepertorio, localizando los puntos de control
⌦ Paso 5: Determinar los valores de los puntos de control analizando las transferencias entreregistros incluidas en cada instrucción.
⌦ Paso 6: Diseñar la lógica de control.
Metodología para el diseño de un procesador
5
estructura y tecnología deestructura y tecnología de computadores computadores
1. introducción1. introducción
⌦ Todas las instrucciones del repertorio del MIPS tienen 32 bits de anchura, repartidasen 3 formatos de instrucción diferentes:
op dirección
02631
6 bits 26 bits
op rs rt rd shamt funct
061116212631
6 bits 6 bits5 bits5 bits5 bits5 bits
op rs rt inmediato016212631
6 bits 16 bits5 bits5 bits
Arquitectura MIPS: formato de la instrucción máquina de la Arquitectura MIPS: formato de la instrucción máquina de la
⌦ El significado de los campos es:Ø op: identificador de instrucciónØ rs, rt, rd: identificadores de los registros fuentes y destinoØ shamt: cantidad a desplazar (en operaciones de desplazamiento)Ø funct: selecciona la operación aritmética a realizarØ inmediato: operando inmediato o desplazamiento en direccionamiento a registro-baseØ dirección: dirección destino del salto
Tipo R:aritmético-lógicas
Tipo I:con memoria
salto condicional
Tipo J:salto incondicional
6
estructura y tecnología deestructura y tecnología de computadores computadores
1. introducción1. introducción
⌦ Instrucciones con referencia a memoria (formato tipo I):Ø lw rt, inmed(rs) rt ← Memoria( rs + SignExt( inmed ) ) , PC ← PC + 4
Ø sw rt, inmed(rs) Memoria( rs + SignExt( inmed ) ) ← rt , PC ← PC + 4
⌦ Instrucciones aritmético-lógicas con operandos en registros (formato tipo R)Ø add rd, rs, rt rd ← rs + rt, PC ← PC + 4
Ø sub rd, rs, rt rd ← rs - rt , PC ← PC + 4
Ø and rd, rs, rt rd ← rs and rt , PC ← PC + 4
Ø or rd, rs, rt rd ← rs or rt , PC ← PC + 4
Ø slt rd, rs, rt ( 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 + 4·SignExp( inmed ) )
en otro caso PC ← PC + 4
Arquitectura MIPS: subconjunto del repertorio de instruccionesArquitectura MIPS: subconjunto del repertorio de instrucciones
1. El ciclo de instrucción comienza buscando la instrucción en memoria (fetch)Ø instrucción ← Memoria( PC )
2. En función del tipo de instrucción se realiza una de las anteriores operaciones3. Se vuelve a comenzar
7
estructura y tecnología deestructura y tecnología de computadores computadores
2. diseño de la ruta de datos (monociclo)2. diseño de la ruta de datos (monociclo)
Clk
Don’t Care
Setup Hold
.
.
.
.
.
.
.
.
.
.
.
.
Setup Hold
⌦ Ejecución típica (de una instrucción)
Ø Todos los registros se cargan simultáneamente (de modo selectivo)
Ø Todos los valores se propagan a través de las redes combinacionales hasta estabilizarseen las entradas de los registros
Ø Se repite indefinidamente el proceso
⌦ Todos los elementos de almacenamiento están sincronizados al mismo flanco de reloj:Ø Tiempo de ciclo = CKL-to-Q + Camino con retardo máximo + Setup + Clock Skew
Ø ( CLK-to-Q + Camino con retardo mínimo - Clock skew ) > Hold
Temporización monocicloTemporización monociclo
8
estructura y tecnología deestructura y tecnología de computadores computadores
⌦ Para implementar el subconjunto del repertorio del MIPS en una implementaciónmonociclo se requieren (el tamaño de palabra es de 32 bits):Ø 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, comparación de mayoría e indicación de que elresultado es cero (para realizar la comparación de igualdad mediante resta)
Ø Extensor de signo: para adaptar el operando inmediato de 16 bits al tamaño de palabra.
Ø Desplazador a la derecha: para implementar la multiplicación por 4.
2. diseño de la ruta de datos (monociclo)2. diseño de la ruta de datos (monociclo)
PC
PCWrite
3232+
32
32
32
AL
U
Zero3
ALUctr
32
32 32
ALUctr función
000 A and B
001 A or B
010 A + B
110 A – B
1111 si (A<B),
sino 0
16 32
Ext
ensi
ón
d
e si
gn
o
<<
2
32 32
Componentes de la ruta de datosComponentes de la ruta de datos
9
estructura y tecnología deestructura y tecnología de computadores computadores
2. diseño de la ruta de datos (monociclo)2. diseño de la ruta de datos (monociclo)
⌦ Los 32 registros se almacenan en un banco de registros. Dado que en lasinstrucciones de tipo R, se requiere un acceso simultáneo a 3 registros:Ø 2 salidas de datos de 32 bits
Ø 1 entradas de datos de 32 bits
Ø 3 entradas de 5 bits para la identificación de los registros
Ø 1 entrada de control para habilitar la escritura sobre uno de los registros
Ø 1 puerto de reloj (sólo determinante durante las operaciones de escritura, las de lectura soncombinacionales)
Registro 0
Registro 1....
Registro 31
busA
busB
MU
XM
UX
RA
RB
Registro 32
Registro 0
C
C
D
D
C
C
D
D
0
1
31
32
RegWr
RW
BusW
Registro 1
Registro 30
Registro 31
De
cod
ifica
do
r5
a 3
2
Mecanismo de escrituraMecanismo de lectura
RegWr
Ban
co d
ere
gis
tro
s
RA
RB
busA
busBRW
busW
Componentes de la ruta de datos (cont.)Componentes de la ruta de datos (cont.)
10
estructura y tecnología deestructura y tecnología de computadores computadores
2. diseño de la ruta de datos (monociclo)2. diseño de la ruta de datos (monociclo)
⌦ La memoria tendrá un comportamiento idealizado.Ø “Integrada” dentro de la CPU.
Ø Direccionable por bytes, pero capaz de aceptar/ofrecer 4 bytes por acceso
ð 1 entrada de dirección
ð 1 salida de datos de 32 bits
ð 1 entrada de datos de 32 bits (sólo en la de datos)
Ø 1 entrada de control para seleccionar el tipo de operación (lectura/escritura)
Ø Se supondrá que se comporta temporalmente como el banco de registros (síncronamente)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
ADDR
DW
Mem
ori
a d
e d
ato
s
MemWrite
DRADDR
Mem
ori
a d
e in
stru
ccio
nes
DR
Componentes de la ruta de datos (cont.)Componentes de la ruta de datos (cont.)
11
estructura y tecnología deestructura y tecnología de computadores computadores
2. diseño de la ruta de datos (monociclo)2. diseño de la ruta de datos (monociclo)
⌦ La búsqueda de instrucciones implica:Ø Leer la instrucción ubicada en la dirección de la memoria de instrucciones indicada por
el contador de programa:
⌦ La ejecución secuencial de programas implica:Ø Actualizar el contador de programa para que apunte a la siguiente instrucción (sumando
4 por ser una memoria direccionable por bytes y una arquitectura con tamaño de palabrade 32 bits
4M
emo
ria
de
inst
rucc
ion
esPC
+
ADDR
DR instrucción
Ensamblaje de la ruta de datosEnsamblaje de la ruta de datos
12
estructura y tecnología deestructura y tecnología de computadores computadores
2. diseño de la ruta de datos (monociclo)2. diseño de la ruta de datos (monociclo)
⌦ Las instrucciones aritmético lógicas (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 instrucción:
Ø Operar sobre ellos según el contenido del campo de código de operación aritmética (funct)de la instrucción
Ø Almacenar el resultado en otro registro cuyo identificador se localiza en el campo rd de lainstrucción
AL
U
Ban
co d
ere
gis
tro
s
ALUCtr
busA
busB
RA
RB
RW
busW
RegWrite
rs
rt
rdinst
rucc
ión
3
Ensamblaje de la ruta de datos (cont.)Ensamblaje de la ruta de datos (cont.)
13
estructura y tecnología deestructura y tecnología de computadores computadores
Clk
PC
Rs, Rt, Rd,Op, Func
Clk-to-Q
ALUOp
Tiempo de acceso a memoria de instrucciones
Valor antiguo Valor nuevo
RegWrite Valor antiguo Valor nuevo
Retardo de la lógica de control
busA, BTiempo de acceso al banco de registros
Valor antiguo Valor nuevo
busWRetardo de la ALU
Valor antiguo Valor nuevo
Valor antiguo Valor Nuevo
Valor nuevoValor antiguo
aquí se escribeel registro
AL
U
Ban
co d
ere
gis
tro
sALUCtr
busA
busB
RA
RB
RW
busW
RegWrite
rs
rt
rdinst
rucc
ión
3
2. diseño de la ruta de datos (monociclo)2. diseño de la ruta de datos (monociclo)
cronograma de unacronograma de unaoperación arimético-lógicaoperación arimético-lógica
14
estructura y tecnología deestructura y tecnología de computadores computadores
⌦ La instrucción de carga (lw) implica:Ø BR(rt) ←← Memoria( BR(rs) + SignExt( inmed ) )Ø Calcular la dirección efectiva de memoria:
ð Leyendo el registro base cuyo identificador se ubica en el campo rs de la instrucciónð Obteniendo un desplazamiento de 32 bits a partir de la extensión del campo de
operando inmediato (inmed) de la instrucciónð Sumando base y desplazamiento.
Ø Leer dato ubicado en la memoria de datos cuya dirección es la anteriormente calculadaØ Almacenar el dato leído de memoria en el registro cuyo identificador se especifica en el
campo rt de la instrucción
2. diseño de la ruta de datos (monociclo)2. diseño de la ruta de datos (monociclo)Ensamblaje de la ruta de datos (cont.)Ensamblaje de la ruta de datos (cont.)
0
0
1
10
1
MU
X
MU
X
MU
X
Ext
ensi
ón
d
e si
gn
o
AL
U
Ban
co d
ere
gis
tro
s
Mem
ori
a d
ed
ato
s
16 32
MemtoReg
ALUCtr
ALUSrc
RegDst
ADDR DR
DW
busA
busB
RA
RB
RW
busW
MemRead
MemWrite
RegWrite
inmed
rs
rt
rd
15
estructura y tecnología deestructura y tecnología de computadores computadores
2. diseño de la ruta de datos (monociclo)2. diseño de la ruta de datos (monociclo)
0
0
1
10
1
MU
X
MU
X
MU
X
Ext
ensi
ón
d
e si
gn
o
AL
U
Ban
co d
ere
gis
tro
s
Mem
ori
a d
ed
ato
s
16 32
MemtoReg
ALUCtr
ALUSrc
RegDst
ADDR DR
DW
busA
busB
RA
RB
RW
busW
MemRead
MemWrite
RegWrite
inmed
rs
rt
rd
⌦ La instrucción 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
instrucciónØ Calcular la dirección efectiva de memoria:
ð Leyendo el registro base cuyo identificador se ubica en el campo rs de la instrucciónð Obteniendo un desplazamiento de 32 bits a partir de la extensión del campo de
operando inmediato (inmed) de la instrucciónð Sumando base y desplazamiento.
Ø Almacenar el dato leído en la memoria de datos en la dirección anteriormente calculada
Ensamblaje de la ruta de datos (cont.)Ensamblaje de la ruta de datos (cont.)
16
estructura y tecnología deestructura y tecnología de computadores computadores
2. diseño de la ruta de datos (monociclo)2. diseño de la ruta de datos (monociclo)
⌦ La instrucción de salto condicional (beq) implicaØ si ( BR(rs) = BR(rt) ) entonces ( PC ← PC + 4·SignExp( inmed ) )Ø Leer dos registros cuyos identificadores se ubican en los campos rs y rt de la instrucción:Ø Comparar la igualdad de sus contenidos y en función del resultado:
ð No hacer nada oð Sumar al contador del programa un desplazamiento de 32 bits obtenido a partir de la
extensión del campo de operando inmediato (inmed) de la instrucción
4
0
0
1
1
0
1
MU
X
MU
X
MU
X
+
<<
2
Ext
ensi
ón
d
e si
gn
o
AL
U
Ban
co d
ere
gis
tro
s
Mem
ori
a d
ein
stru
ccio
nesPC
+
rs
rt
rd
inmed 16 32
ADDR
DR
ALUCtr
ALUSrc
RegDst
busA
busB
RA
RB
RW
busW
PCSrcRegWrite
Zero
Ensamblaje de la ruta de datos (cont.)Ensamblaje de la ruta de datos (cont.)
17
estructura y tecnología deestructura y tecnología de computadores computadores
2. diseño de la ruta de datos (monociclo)2. diseño de la ruta de datos (monociclo)
4
0
0
0
1
1
10
1
MU
X
MU
X
MU
X
MU
X
+
<<
2
Ext
ensi
ón
d
e si
gn
o
AL
U
Ban
co d
ere
gis
tro
s
Mem
ori
a d
ed
ato
s
Mem
ori
a d
ein
stru
ccio
nesP
C
+
Instrucción [25-21]
Instrucción [20-16]
Instrucción [15-11]
Instrucción [15-0] 16 32
ADDR
DR
MemtoReg
ALUCtr
ALUSrc
RegDst
ADDR DR
DW
busA
busB
RA
RB
RW
busW
MemRead
MemWrite
PCSrcRegWrite
Zero
⌦ La ejecución monociclo ha obligado a:Ø No usar más de una vez por instrucción cada recurso. Duplicarlo si es necesario
Ø Memoria de instrucciones y datos separadas
Ø Añadir multiplexores cuando un valor pueda provenir de varias fuentes
Ruta de datos monociclo
18
estructura y tecnología deestructura y tecnología de computadores computadores
3. diseño del controlador (monociclo)3. diseño del controlador (monociclo)
⌦ La tarea del controlador es:Ø Seleccionar las operaciones a realizar por los módulos multifunción (ALU, read/write, ...)
Ø Controlar el flujo de datos, controlando la entrada de selección de los multiplexores y la señal decarga de los registros
si ( rs = rt ) entonces ( PC ←← PC + 4 + 4·SignExp( inmed ) ) en otro caso PC ←← PC + 4
RegDest ←X, RegWrite ← 0, ALUsrc ← 0, ALUctr ← 110, PCSrc ← Zero, MemWrite ← 0, MemRead ← 0, MemtoReg ← X
rd ←← rs and rt, PC ←← PC + 4
RegDest ← 1, RegWrite ← 1, ALUsrc ← 0, ALUctr ← 000, PCSrc ← 0, MemWrite ← 0, MemRead ← 0, MemtoReg ← 0
Memoria( rs + SignExt( inmed ) ) ←← rs, PC ←← PC + 4
RegDest ←X, RegWrite ← 0, ALUsrc ← 1, ALUctr ← 010, PCSrc ← 0, MemWrite ← 1, MemRead ← 0, MemtoReg ← X
rt ←← Memoria( rs + SignExt( inmed ) ), PC ←← PC + 4
RegDest ← 0, RegWrite ← 1, ALUsrc ← 1, ALUctr ← 010, PCSrc ← 0, MemWrite ← 0, MemRead ← 1, MemtoReg ← 1
Instrucción de salto condicional (beq)Instrucción de salto condicional (beq)
Instrucción de carga (lw)Instrucción de carga (lw)
Instrucción de almacenaje (sw)Instrucción de almacenaje (sw)
Instrucción Instrucción andand
Determinación de los valores de los puntos de controlDeterminación de los valores de los puntos de control
19
estructura y tecnología deestructura y tecnología de computadores computadores
3. diseño del controlador (monociclo)3. diseño del controlador (monociclo)
⌦ Todas las operaciones aritméticas comparten el mismo código de operación y durante su ejecución todaslas señales generales de la ruta de dato son iguales. Por ello, utilizaremos:Ø Un control principal para decodificar el campo de código de operación (op) y configurar
globalmente la ruta de datosØ Un control local a la ALU que decodifique el campo de operación aritmética (funct) y seleccione la
operación que debe realizar la ALUØ Adicionalmente en operaciones no aritméticas (lw, sw y beq) el control principal puede ordenar
alguna operación a la ALU para calcular las DE o realizar comparaciones.⌦ Utilizaremos la señal intermedia ALUop cuyo valor será:
Ø 00 en operaciones con acceso a memoriaØ 01 en operaciones de saltoØ 11 en operaciones aritméticas
⌦ Del mismo modo para controlar qué dirección debe cargar el PC se utilizará una señal intermedia Branch(activada durante la instrucción beq) a la que se hará la y-lógica con la señal Zero que genera la ALU.
Co
ntro
lp
rincip
al
op6
Co
ntro
l de
AL
U (lo
cal)
funct
2
6
ALUopALUctr
3
Branch
Zero
PCSrc
Control global vs. Control localControl global vs. Control local
20
estructura y tecnología deestructura y tecnología de computadores computadores
4
0
0
0
1
1
10
1
MU
X
MU
X
MU
X
MU
X
+
<<
2C
on
tro
l d
e A
LU
Ext
ensi
ón
d
e si
gn
o
AL
U
Ban
co d
ere
gis
tro
s
Mem
ori
a d
ed
ato
s
Mem
ori
a d
ein
stru
ccio
nesP
C
+
Co
ntr
ol
pri
nci
pal
Instrucción [31-26]
Instrucción [25-21]
Instrucción [20-16]
Instrucción [15-11]
Instrucción [15-0]
Instrucción [5-0]
16 32
ADDR
DR
BranchMemReadMemtoReg
ALUOpMemWrite
ALUSrcRegWrite
RegDst
Zer
o
ADDR DR
DW
busA
busB
RA
RB
RW
busW
3. diseño del controlador (monociclo)3. diseño del controlador (monociclo)
Ruta de datos monociclo + controlador
21
estructura y tecnología deestructura y tecnología de computadores computadores
3. diseño del controlador (monociclo)3. diseño del controlador (monociclo)
op funct ALUop ALUctr100011 (lw) 00 010101011 (sw) 00 010000100 (beq)
XXXXXX01 110
100000 (add) 11 010100010 (sub) 11 110100100 (and) 11 000100101 (or) 11 001
000000 (tipo-R)
101010 (slt) 11 111
op
Reg
Dst
ALU
Src
Mem
toR
eg
Reg
Writ
e
Mem
Rea
d
Mem
Writ
e
Bra
ch
ALU
op
100011 (lw) 0 1 1 1 1 0 0 00101011 (sw) X 1 X 0 0 1 0 00000100 (beq) X 0 X 0 0 0 1 01000000 (tipo-R) 1 0 0 1 0 0 0 10
funct
ALUop
ALUctr2
ALUctr1
ALUctr0
ALUctr
ALUop0
ALUop1
f3
f2
f1
f0
tipo-R Iw sw beq
op5op4op3
op2op1
op0
RegDst
ALUSrc
MemtoReg
RegWrite
MemRead
MemWrite
Branch
ALUop1
ALUop0
Control de la ALUControl de la ALU
Control principalControl principal
22
estructura y tecnología deestructura y tecnología de computadores computadores
4. diseño de la ruta de datos (multiciclo)4. diseño de la ruta de datos (multiciclo)
Valor Nuevo
Valor Nuevo
Valor Nuevo
Clk
PC
Rs, Rt, Rd,Op, Func
Clk-to-Q
ALUctr
Tiempo de acceso a la Memoria de Instrucciones
Valor Antiguo Valor Nuevo
RegWr Valor Antiguo
Retardo de la lógica de control
busATiempo de acceso al Banco de Registros
Valor Antiguo
busB
Retardo de la ALU
Valor Antiguo Valor Nuevo
Valor Antiguo
Valor NuevoValor antiguo
ExtOp Valor Antiguo Valor Nuevo
ALUSrc Valor Antiguo Valor Nuevo
MemtoReg Valor Antiguo Valor Nuevo
Addr Valor Antiguo Valor Nuevo
busW Valor Antiguo Valor Nuevo
Retado del Extensor y el MUX
aquí se escribeel registro
Tiempo de acceso a la Memoria de Datoscro
no
gra
ma
com
ple
to d
e la
eje
cuci
ón
de
la in
stru
cció
n lw
cro
no
gra
ma
com
ple
to d
e la
eje
cuci
ón
de
la in
stru
cció
n lw
23
estructura y tecnología deestructura y tecnología de computadores computadores
4. diseño de la ruta de datos (multiciclo)4. diseño de la ruta de datos (multiciclo)
⌦ Problema: en un controlador monociclo:Ø El reloj debe tener igual periodo que la instrucción más lenta
ð Dado que dicho periodo es fijo, en las instrucciones rápidas se desperdicia tiempo.ð En repertorios reales, existen instrucciones muy largas: aritmética en punto flotante, modos
de direccionamiento complejos, etc.Ø No se puede reusar hardware
ð Si en una instrucción se necesitaran hacer 4 sumas (resolver los 3 modos dedireccionamiento de los operandos y sumarlos) se necesitarían 4 sumadores
⌦ Solución: dividir la ejecución de la instrucción en varios ciclos más pequeños:Ø Cada instrucción usará el número de ciclos que necesiteØ Un mismo elemento hardware se puede ser utilizado varias veces en la ejecución de una
instrucción 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.
PC mux ALU mem. dato mux
PC banco reg. mux ALU mux
PC mux ALU mem. dato
PC mem. instrución
tipo-R
lw
sw
beq
Camino crítico
setup
setup
mem. instrución
mem. instrución
mem. instrución
banco reg.
banco reg.
banco reg.
desperdicio
desperdicio
mux ALU mux setupdesperdicio
24
estructura y tecnología deestructura y tecnología de computadores computadores
4. diseño de la ruta de datos (multiciclo)4. diseño de la ruta de datos (multiciclo)Clk
Tiempo de acceso a la Memoria de Instrucciones
Tiempo de acceso al Banco de RegistrosRetardo de la ALU
Tiempo de acceso a la Memoria de Datos
Busqueda de instrucciones
Búsqueda de componentes
de DE
Cál
culo
de
DE Busqueda de
operando
Eje
cuci
ón(a
lmac
enaj
e)
Lógica combinacional acíclicaPC
BR
( x)
Lóg.comb.
Lóg.comb.
Lóg.comb.
Lóg.comb.
Lóg.comb.P
C IR
A o
B
AL
Uo
ut
MD
R
BR
( x)
Nuevo Clk
o M
emo
ria
o M
emo
ria
Controladormonociclo
Controladormulticiclo
Tem
po
riza
ció
n
Tem
po
riza
ció
n m
ult
icic
lom
ult
icic
lo
25
estructura y tecnología deestructura y tecnología de computadores computadores
4. diseño de la ruta de datos (multiciclo)4. diseño de la ruta de datos (multiciclo)
Mem
ori
a
ADDR
DR
DW
MemRead
MemWrite
0
1
MU
X
IorD
Ban
co d
ere
gis
tro
s busA
busB
RA
RB
RW
busW
RegWrite
AL
U
Zero
Ext
ensi
ón
d
e si
gn
o
<<
2
PC
AB
1
0
3
2
0
1
MU
XM
UX
AL
Uo
ut
IRM
DR
RegDst
0
1
MU
X
0
1
MU
X
Instrucción [25-21]
Instrucción [20-16]
Instrucción [15-11]
Instruc. [15-0]
4
PCWrite IRWrite ALUSrcA
ALUSrcB
MemtoReg
AWrite
BWrite
OutWrite
MDRWrite
Control de ALU
ALUop
Ruta de datos multiciclo
26
estructura y tecnología deestructura y tecnología de computadores computadores
4. diseño de la ruta de datos (multiciclo)4. diseño de la ruta de datos (multiciclo)
Cada bus sólo puede ser usado para escribir desde una fuente (aunque puede ser leido desde varios destinos)
0
1
MU
X
Instrucción [25-21]
Instrucción [20-16]
Instrucción [15-11]
Instruc. [15-0]
Ban
co d
ere
gis
tro
s busA
busB
busW
RA
RB
RW
AB
Ext
ensi
ón
d
e si
gn
o
<<
2
AL
U
Zero
AL
Uo
ut
Control de ALU
Mem
ori
a
IR
MDR
DR
ADDR
DW
4
PC
Decod.busB
IRWrite
MemWrite
MemRead
RegDst AWrite
BWrite
MDRWrite RegWrite PCWrite
OutWriteALUop
Decod.busA
BusA
ALUop
Ruta de datos multiciclo con buses
27
estructura y tecnología deestructura y tecnología de computadores computadores
5. diseño del controlador (multiciclo)5. diseño del controlador (multiciclo)
Transferencias entre registros “lógicas”
BR( rd ) ← BR( rs ) funct BR( rt ), PC ← PC + 4
Transferencias entre registros “físicas”
1. IR ← Memoria( PC ), PC ← PC + 4
2. A ← BR( rs ), B ← BR( rt )
3. ALUout ← A funct B
4. BR( rd ) ← ALUout
Transferencias entre registros “lógicas”
BR( rt ) ← Memoria( BR( rs ) + SignExt( inmed ) ),PC ← PC + 4
Transferencias entre registros “físicas”
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 “lógicas”
Memoria( BR( rs ) + SignExt( inmed ) ) ← BR( rt ),PC ← PC + 4
Transferencias entre registros “físicas”
1. IR ← Memoria( PC ), PC ← PC + 4
2. A ← BR( rs ), B ← BR( rt )
3. ALUout ← A + SignExt( inmed )
4. Memoria( ALUout ) ← B
Transferencias entre registros “lógicas”
si ( BR( rs ) = BR( rt ) )
entonces PC ← PC + 4 + 4·SignExt( inmed )
sino PC ← PC + 4
Transferencias entre registros “físicas”
1. IR ← Memoria( PC ), PC ← PC + 4
2. A ← BR( rs ), B ← BR( rt ),
3. A - B
4. si Zero entonces PC ← PC + 4·SignExt( inmed )
Instrucción de salto condicional (beq)Instrucción de salto condicional (beq)
Instrucción de carga (lw)Instrucción de carga (lw) Instrucción de almacenaje (sw)Instrucción de almacenaje (sw)
Instrucción aritmética (tipo-R)Instrucción aritmética (tipo-R)
Observaciones: en todas las instrucciones las acciones 1. y 2. son iguales (excepto en lw que no habríaproblema en modificarla)
28
estructura y tecnología deestructura y tecnología de computadores computadores
5. diseño del controlador (multiciclo)5. diseño del controlador (multiciclo)
ALUout ← A funct B
BR( rd ) ← ALUout
A - B
IR ← Memoria( PC )PC ← PC + 4
A ← BR( rs )B ← BR( rt )
ALUout ← A + SignExt( inmed )
MDR ← Memoria( ALUout ) Memoria( ALUout ) ← B
BR( rt ) ← MDR
op = ‘beq’
op = ‘tipo-R’
op = ‘lw’
0
1
2
3
4
57
8
9
PC ← PC + 4·SignExt( inmed )
10
Zero = 1
Zero = 0
ALUout ← A + SignExt( inmed )
op = ‘sw’
6
Bú
squ
eda
de
inst
rucc
ión
Dec
od
.E
jecu
ció
nA
cces
o a
m
emo
ria
Wri
te-b
ack
Diagrama de estados del controlador multiciclo
29
estructura y tecnología deestructura y tecnología de computadores computadores
5. diseño del controlador (multiciclo)5. diseño del controlador (multiciclo)
Registroestado
6
4
11
op
IR
ZeroEsta
do de la
ruta de datos
Estado del
controlador
Lógica combinacionalde control
IRW
rite
PC
Writ
eB
Writ
eA
LUS
rcA
ALU
Src
BA
LUO
pM
emW
rite
Mem
Rea
dIo
rDM
emto
Reg
Reg
Des
tR
egW
rite
AW
rite
Out
Writ
eM
DR
Writ
e
El controlador como FSM (El controlador como FSM (finite state machinefinite state machine))1. Se traducen las transferencias entre registros como conjuntos de activaciones de los puntos de control de la ruta de datos2. Se codifican los estados3. Mediante tablas de verdad se describen:
ü las transiciones de estado en función del código de operación y del estado de la ruta de datosü el valor de las señales de control en función del estado (controlador tipo Moore) y adicionalmente en función del
estado de la ruta de datos (controlador tipo Mealy).4. La estructura del controlador estará formada por:
ü Registro de estadoü Conjunto de lógica combinacional de control que implementa las anteriores tablas
30
estructura y tecnología deestructura y tecnología de computadores computadores
5. diseño del controlador (multiciclo)5. diseño del controlador (multiciclo)
Est
ad
oa
ctu
al
op
Ze
ro
Est
ad
osi
guie
nte
IRW
rite
PC
Writ
e
AW
rite
BW
rite
AL
US
rcA
AL
US
crB
AL
UO
p
Out
Writ
e
Mem
Writ
e
Me
mR
ea
d
IorD
MD
RW
rite
Me
mto
Re
g
Reg
Des
t
Re
gW
rite
0000 XXXXXX X 0001 1 1 0 01 00 (add) 0 1 0 0
0001 100011 (lw) X 0010
0001 101011 (sw) X 0101
0001 000000 (tipo-R) X 0111
0001 000100 (beq) X 1001
0 0 1 1 0 0 0
0010 XXXXXX X 0011 0 0 1 10 00 (add) 1 0 0 0
0011 XXXXXX X 0100 0 0 0 1 1 1 0
0100 XXXXXX X 0000 0 0 0 0 1 0 1
0101 XXXXXX X 0110 0 0 0 1 10 00 (add) 1 0 0 0
0110 XXXXXX X 0000 0 0 1 0 1 0
0111 XXXXXX X 1000 0 0 1 00 11 (funct) 1 0 0 0
1000 XXXXXX X 0000 0 0 0 0 0 1 1
1001 XXXXXX 0 0000
1001 XXXXXX 1 10100 0 1 00 01 (sub) 0 0 0
1010 XXXXXX X 0000 0 1 0 11 00 (add) 0 0 0
Tab
la d
e ve
rdad
del
co
ntr
ola
do
rT
abla
de
verd
ad d
el c
on
tro
lad
or
31
estructura y tecnología deestructura y tecnología de computadores computadores
5. diseño del controlador (multiciclo)5. diseño del controlador (multiciclo)
⌦Lógica discreta:Ø 21 funciones de conmutaciónØ 11 variables diferentes
⌦1 PLAØ 11 entradasØ 21 salidasØ 15 términos producto
⌦1 ROM (~42 Kbits):Ø 11 bits de dirección (211 palabras)Ø palabras de 21 bits
⌦2 ROM (~10 Kbits)Ø ROM de control:
ð4 bits de dirección (24 palabras)ðpalabra de 17 bits
Ø ROM de siguiente estado:ð11 bits de dirección (211 palabras)ðpalabras de 4 bits
s3
s2
s1
op3
op2
op1
op0
op5
op4
zero
s0
ns3
ns2
ns1
ns0
IRWritePCWriteAWriteBWriteALUSrcAALUSrcB1
ALUSrcB0
ALUOp1
ALUOp0
OutWriteMemWriteMemReadIorDMRDWriteMemtoRegRegDestRegWrite
Alternativas de implementaciónAlternativas de implementaciónde la lógica de controlde la lógica de control
⌦Ventajas de la lógica discreta:Ø velocidad y coste
⌦Ventajas de la lógica almacenada:Ø facilidad de diseñoØ adaptabilidad
32
estructura y tecnología deestructura y tecnología de computadores computadores
6. Comparación: monociclo vs. multiciclo6. Comparación: monociclo vs. multiciclo
lw $t2, 0($t3)
lw $t3, 4($t3)
beq $t2, $t3, Label #asumir que no se salta
add $t5, $t2, $t3
sw $t5, 8($t3)
Asumir que el tiempo de ciclo en elprocesador muticiclo es 5 veces menorque el tiempo de ciclo en el procesador
monociclo
lw lw beq add sw
lw lw beq add sw
diferencia
Operación Frecuencia Ciclos CPItipo-R 50% 4 2.0lw 20% 5 1.0st 10% 4 .4beq (salta) 2.5% 4 .1beq (no salta) 17.5% 3 0.53 4.03
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
33
estructura y tecnología deestructura y tecnología de computadores computadores
7. control microprogramado7. control microprogramado
⌦ El diseño con lógica discreta o PLA:Ø No es sistemático
Ø Una vez diseñado es inflexible: un error o modificación requieren el rediseño completo dela lógica de control
Ø Una mayor complejidad del repertorio se traduce en un mayor complejidad del diseño
⌦ El diseño con lógica almacenada:Ø Es sistemático: el método de diseño es similar a los métodos de programación:
ð traducir cada instrucción en una secuencia de palabras de control que se almacenanen la memoria de control.
Ø Es flexible: para modificar o corregir una acción de control basta con modificar elcontenido de una palabra de la memoria (ROM o PROM) sin modificar la estructura delcontrolador
Ø Mayor complejidad de las instrucciones sólo implica mayor tamaño de la memoria
⌦ Además en cualquiera de ambas alternativas:Ø Mucha de la lógica de control está dedicada a especificar el estado siguiente, siendo en
realidad mucho de ese secuenciamiento consecutivo:
ð En sistemas reales el número de estados es muy grande
Ø Muchas de de las palabras de control están repetidas, luego existe lógica desperdiciada
ð Por ejemplo, cálculo de DE, acceso a memorias, etc..
Comparación de las alternativas de implementación de la lógica de controlComparación de las alternativas de implementación de la lógica de control
34
estructura y tecnología deestructura y tecnología de computadores computadores
7. control microprogramado7. control microprogramado
Programa de usuario:• formado por instrucciones• puede cambiar
µ-programa de la instrucción AND:• µ-rutina de búsqueda de instrucción• µ-rutina de cálculo de DE• µ-rutina de búsqueda de operandos• µ-rutina de cálculo• µ-rutina de almacenaje de resultado(s)
Cada tipo de instruccióntiene asociado un
µ-programa diferente
Su
bsi
stem
ad
e m
emo
ria
ruta de datos
controlador
CP
U
.
.
.
SUBADDAND
µ-programa de control:• formado por µ-instrucciones• no puede cambiarse (pero no sería
dificil hacerlo)
35
estructura y tecnología deestructura y tecnología de computadores computadores
NomenclaturaNomenclatura
7. control microprogramado7. control microprogramado
⌦ µµ-órdenes: conjunto de señales de control que gobiernan las transferencias entreregistros que realiza la ruta de datos.
⌦ µµ-instrucción: palabra de control almacenada. Incluye una colección de bits queindican las µ-órdenes que se realizan en un ciclo de reloj
⌦ formato de µµ-instrucción: distribución, codificación y tamaño de cada una de las µ-órdenes dentro de una µ-instrucción.Ø Formato horizontal: cada bit de la µ-instrucción está asociado a un punto de control de la
ruta de datosØ Formato vertical: definir todas las µ-instrucciones diferentes y codificarlas con el menor
número de bits posibles. Requieren de un decodificador complejo que a veces se resuelvemediante nano-programación
Ø Formato vertical por campos: compactar el formato de la microinstrucción para cadaclase de µ-operación, y decodificarla localmente para generar los valores de las señales decontrol
⌦ µµ-rutina: secuencia de µ-instrucciones encargadas de implementar una instrucciónmáquina o una porción de ella (por ejemplo, cálculo de la DE de memoria)
⌦ memoria de µµ-programa: memoria ROM (o PROM) donde se almacenan cada unade las µ-rutinas que implementan el repertorio de instrucciones de un computador
⌦ µµ-secuenciador: módulo del controlador encargado de direccionar adecuadamentela memoria de µ-programa para ejecutar las µ-instrucciones que forman unainstrucción máquina.
36
estructura y tecnología deestructura y tecnología de computadores computadores
7. control microprogramado7. control microprogramado
µµ-P
C
op
IR
1
0
3
2 MU
X
1
+
0
tab
la d
eµµ-
salt
os
Zero
4
6
Estado de la ruta de datos
seq
Memoria de µµ-programa
IRW
rite
PC
Writ
eB
Writ
eA
LUS
rcA
ALU
Src
BA
LUO
pM
emW
rite
Mem
Rea
dIo
rDM
emto
Reg
Reg
Des
tR
egW
rite
AW
rite
Out
Writ
eM
DR
Writ
e
Controlador microprogramado con formato de µµ-instrucción horizontal
µµ-secuenciador
37
estructura y tecnología deestructura y tecnología de computadores computadores
7. control microprogramado7. control microprogramado
op
µ-di
recc
ión
de s
alto
100011 (lw) 0010
101011 (sw) 0101
000000 (tipo-R) 0111
000100 (beq) 1001
Tabla de Tabla de µµµµ-saltos-saltosµ-
dir
ecc
ión
(est
ad
o a
ctu
al)
Se
q
IRW
rite
PC
Wri
te
AW
rite
BW
rite
AL
US
rcA
AL
US
crB
AL
UO
p
Ou
tWri
te
Me
mW
rite
Me
mR
ea
d
IorD
MD
RW
rite
Me
mto
Re
g
Re
gD
est
Re
gW
rite
0000 00 (inc) 1 1 0 01 00 (add) 0 1 0 0
0001 10 (saltar) 0 0 1 1 0 0 0
0010 00 (inc) 0 0 1 10 00 (add) 1 0 0 0
0011 00 (inc) 0 0 0 1 1 1 0
0100 01 (cero) 0 0 0 0 1 0 1
0101 00 (inc) 0 0 0 1 10 00 (add) 1 0 0 0
0110 01 (cero) 0 0 1 0 1 0
0111 00 (inc) 0 0 1 00 11 (funct) 1 0 0 0
1000 01 (cero) 0 0 0 0 0 1 1
1001 11 (cond) 0 0 1 00 01 (sub) 0 0 0
1010 01 (cero) 0 1 0 11 00 (add) 0 0 0
Contenido de la memoria de Contenido de la memoria de µµµµ-programa-programa
sw
lw
tipo-
R
beq
fetc
h y
dec
od.
Problemas del formato horizontal:� µ-instrucciones muy largas: grandes memorias de µ-programa� la mayor parte de los bits de la µ-instrucción están a 0, o no son relevantes
38
estructura y tecnología deestructura y tecnología de computadores computadores
7. control microprogramado7. control microprogramado
µ-di
recc
ión
(est
ado
actu
al)
seq
IRW
rite
PC
Writ
e
BW
rite
ALU
Src
A
ALU
Scr
B
AL
UO
p
Mem
Writ
e
Mem
Rea
d
IorD
Me
mto
Re
g
Reg
Des
t
Reg
Writ
e
0000 00 1 1 0 01 00 0 1 0 0
0001 10 0 0 1 0 0 0
0010 00 0 0 1 10 00 0 0 0
0011 00 0 0 0 1 1 0
0100 01 0 0 0 0 1 0 1
0101 00 0 0 0 1 10 00 0 0 0
0110 01 0 0 1 0 1 0
0111 00 0 0 1 00 11 0 0 0
1000 01 0 0 0 0 0 1 1
1001 11 0 0 1 00 01 0 0 0
1010 01 0 1 0 11 00 0 0 0
4 µ-op5 µ-op 3 µ-op
ALU MEM WB
seq IR PC B ALU MEM WB
Solución:� Detectar señales constantes: Awrite,OutWrite y MDRWrite pueden ser igual a 1en todos los estados. Con eso reducimosen 3 las líneas de control� Agrupar aquellas señales que no seactivan simultáneamente y codificarlas� Sólo una µ-operación por grupo seespecifica en cada µ-instrucción� Se requieren decodificadores locales paragenerar las señales de control
Método de agrupamiento: Se suelen agruparaquellas señales que tienen fines similares:
ü Control de la ALUü Control de la Memoriaü Control del banco de registros
Formato de Formato de µµµµ-instrucci-instruccióónn
39
estructura y tecnología deestructura y tecnología de computadores computadores
7. control microprogramado7. control microprogramado
WB
Mem
toR
eg
Reg
Des
t
Reg
Writ
e
µ-operación
00 - - 0 nop
01 0 1 1 Memoria → BR
10 1 0 1 MDR → BR
11 - - - nop
ME
M
Mem
Writ
e
Mem
Rea
d
IorD
µ-operación
00 0 0 - nop
01 1 0 1 B → Memoria( ALUout )
10 0 1 0 Memoria( PC ) → ???
11 0 1 1 Memoria( ALUout ) → ???
AL
U
AL
US
rcA
AL
US
rcB
AL
Uo
p µ-operación
000 1 00 11 A funct B → ???
001 0 01 00 PC + 4 → ???
010 1 10 00 A + SignExt( IR ) → ???
011 0 11 00 PC + 4·SignExt( IR ) → ???
100 1 00 01 A – B → ???
resto - -- -- nop
Codificación de los campos de Codificación de los campos de µµµµ-instrucci-instruccióónn
40
estructura y tecnología deestructura y tecnología de computadores computadores
7. control microprogramado7. control microprogramado
µ-di
recc
ión
(est
ado
actu
al)
seq
IRW
rite
PC
Writ
e
BW
rite
ALU
ME
M
WB
0000 00 1 1 001 10 00
0001 10 0 0 1 00 00
0010 00 0 0 010 00 00
0011 00 0 0 11 00
0100 01 0 0 00 10
0101 00 0 0 0 010 00 00
0110 01 0 0 01 00
0111 00 0 0 000 00 00
1000 01 0 0 00 01
1001 11 0 0 100 00 00
1010 01 0 1 011 00 00
⌦FSM con 1 ROM (~42 Kbits):Ø 11 bits de dirección (211 palabras)Ø palabras de 21 bits
⌦µµ-programado horizontal (~0.3 Kbits)Ø 4 bits de dirección (24 palabras)Ø palabra de 19 bits
⌦µµ-programado vertical por campos (~0.2 Kbits)Ø 4 bits de dirección (24 palabras)Ø palabra de 16 bits
Contenido de la memoria de Contenido de la memoria de µµµµ-programa-programa
Alternativas de implementaciónAlternativas de implementaciónde la lógica de controlde la lógica de control
41
estructura y tecnología deestructura y tecnología de computadores computadores
7. control microprogramado7. control microprogramado
µµ-P
Cop
IR
1
0
3
2 MU
X
1
+
0
tab
la d
eµµ-
salt
os
Zero
4
6
Estado de la ruta de datos
seq
Memoria de µµ-programa
IR PC B ALU MEM WB
IRW
rite
PC
Writ
eB
Writ
e
Dec
1A
LUS
rcA
ALU
Src
BA
LUO
p
Dec
2M
emW
rite
Mem
Rea
dIo
rD
Dec
3M
emto
Reg
Reg
Des
tR
egW
rite
AW
rite
Out
Writ
eM
DR
Writ
e
1 1 1
Controlador microprogramado con formato de µµ-instrucción vertical por campos