organización del computador i verano procesador multiciclo basado en el capítulo 5 del libro de...
Post on 24-Jan-2016
215 Views
Preview:
TRANSCRIPT
Organización del Computador I Verano
Procesador Multiciclo Basado en el capítulo 5 del libro de Patterson y Hennessy
Verano 2004 Profesora Borensztejn
2
Diseño monociclo• Todas las instrucciones tardan tanto como la más
lenta• Ciclo de reloj es largo, pero CPI=1• No hay reuso de unidades funcionales
Diseño multiciclo• Reduce el tiempo de ciclo• Un ciclo de reloj=una etapa de ejecución• Reuso de Unidades Funcionales• Cada instrucción puede utilizar o no todas las
etapas, el CPI > 1.
3
Único ciclo Multiciclo
Sistema Combinacional
Registro/memoria
Registro/memoria
Registro/memoria
Sistema Combinacional A
Registro/memoria
Sistema Combinacional B
Registro/memoria
Fetch
Lectura Op.
Ejecución
Memoria Op.
Escritura Op.
En un ciclo:
Como máximo una operación de la ALU, un acceso a memoria, un acceso a Registros===> la duración del ciclo puede ser tan corta como la más larga de estas operaciones.
4
• Fetch de Instrucción (Fetch)
• Decodificación y Lectura (Decode)
• Ejecución, Cálculo de Dirección de memoria (X: execution)
• Acceso a datos en memoria (Memory)
• Escritura en registros (Write Back)
Las instrucciones tardan de 3 a 5 ciclos
Cinco Etapas de Ejecución
5
Diseño del Procesador
• 1er Paso: ISA + RTL• 2o Paso: Componentes del Camino de
Datos• 3er Paso: RTL + Componentes===>>
Camino de Datos• 4o Paso: Camino de Datos + RTL==>
Transferencias Físicas de Registros • 5o Paso: RTs físicas ===>> Control
6
2o Paso: Componentes
• Una única ALU, una única Memoria, un único Banco de Registros
• Problemas con el uso de los recursos??
• Dos tipos de problemas:– Una instrucción utiliza un mismo recurso
varias veces y se pierden los valores anteriores– Una instrucción utiliza un mismo recurso en la
misma etapa para dos o mas cosas distintas.
7
Uso de U.F
Paso Registros ALU Memoria
Fetch Todas PC<--PC+4 Todas Inst<--M[PC]
Lectura Todas
Eje Tipo R: operación
Lw y Sw: dirección
Beq: operación y dirección !!
Mem Lw y Sw
PostW Lw
Tipo R
8
Uso de U.F
Instrucción Registros ALU Memoria
Tipo R Lectura/WB Fetch/Eje Fetch
Lw Lectura/WB Fetch/Eje Fetch/Memoria
Sw Lectura Fetch/Eje Fetch/Memoria
Beq Lectura Fetch/Decod/Eje. Fetch
9
Mas componentes
• Para solucionar el problema de usar la ALU para dos etapas distintas: fetch y ejecución, necesitamos..........
• Para solucionar el problema de usar la Memoria para las etapas de fetch y acceso a memoria necesitamos.........
• Para solucionar el problema de usar la ALU para las etapas de fetch, ejecución y cálculo de dirección destino de salto necesitamos........
10
3er Paso: Reuso de Unidades Funcionales: Memoria Única
• Una sola memoria para instrucciones y datos
WE
CLK
dirección
Dato In
Dato Out
Memoria
32
32
32
MUX
De la ALU
Del PC
IR
IoD
IRW
11
3er Paso: Reuso de Unidades Funcionales: ALU única
• ALU debe realizar– operaciones sobre registros– base + desplazamiento para loads y stores– dirección destino de salto: registro + signo_ext(inmm16) * 4– PC=PC+4
BusB32
PC
32
MUX
32
ALUctr
MUX
BusA32
Inm16
SignExt
>>
2
4
32
32
12
3er Paso: Registro Destino (Beq)
BusB32
PC
32
MUX
32
ALUctr
MUX
BusA32
Inm16
SignExt >
>2
4
32
32
Destino
DstW
13
RegW
CLK
rs
rt
BusW
BusA
BusB32 Registros de 32 bits
32
5
5
5
32
32
LRA
LRB
WR
rd
RegDst
MU
X
Inm16
EX
tension
32
MUX
AluselB
Ex/Op
32
PC
CLK
instrucción
Memoria
32
>>
2
32
ALUctr
MUX
@W_src
MU
X
Pcsrc
3er Paso:Juntando Todo
ZERO
Dst
DstW
4
MUX
AluselA
IRWWE
IoD
CLK
PCW
14
4o Paso:Tipo R (add, sub..)
• Transferencias Lógicas (RTL)ADDU R[rd]<-- R[rs]+R[rt]; PC<--PC+ 4
• Transferencias Físicas IR<---MEM[PC]; PC<--PC+ 4;
BusA<---R[rs]; BusB<---R[rt]
BusS<---BusA+BusB
R[rd]<--BusS
15
RegW
CLK
rs
rt
BusW
BusA
BusB32 Registros de 32 bits
32
5
5
5
32
32
LRA
LRB
WR
rd
RegDst
MU
X
Inm16
EX
tension
32
MUX
AluselB
Ex/Op
32
PC
CLK
instrucción
Memoria
32
>>
2
32
ALUctr
MUX
@W_src
MU
X
Pcsrc
Add: Lectura
ZERO
Dst
DstW
4
MUX
AluselA
IRWWE
IoD
CLK
PCW
16
RegW
CLK
rs
rt
BusW
BusA
BusB32 Registros de 32 bits
32
5
5
5
32
32
LRA
LRB
WR
rd
RegDst
MU
X
Inm16
EX
tension
32
MUX
AluselB
Ex/Op
32
PC
CLK
instrucción
Memoria
32
>>
2
32
ALUctr
MUX
@W_src
MU
X
Pcsrc
Add: Ejecución
ZERO
Dst
DstW
4
MUX
AluselA
IRWWE
IoD
CLK
PCW
17
RegW
CLK
rs
rt
BusW
BusA
BusB32 Registros de 32 bits
32
5
5
5
32
32
LRA
LRB
WR
rd
RegDst
MU
X
Inm16
EX
tension
32
MUX
AluselB
Ex/Op
32
PC
CLK
instrucción
Memoria
32
>>
2
32
ALUctr
MUX
@W_src
MU
X
Pcsrc
Add: Write Back
ZERO
Dst
DstW
4
MUX
AluselA
IRWWE
IoD
CLK
PCW
18
4o Paso:Tipo I (lógicas con inmediato)
• Transferencias Lógicas (RTL)ORI R[rt]<-- R[rs] OR zx(Inm16); PC<--PC+ 4
• Transferencias Físicas IR<---MEM[PC] ; PC<--PC+ 4;
BusA<---R[rs];
BusS<---A OR Zeroext(inm16)
R[rt]<--BusS
19
4o Paso:Load
• Transferencias Lógicas (RTL)Lw R[rt]<-- MEM(R[rs] + sx(Inm16)); PC<--PC+ 4
• Transferencias Físicas IR<---MEM[PC]; PC<--PC+ 4;
BusA<---R[rs];
BusS<---BusA+ Signext(inm16);
dato<---MEM[S];
R[rt]<--dato
20
RegW
CLK
rs
rt
BusW
BusA
BusB32 Registros de 32 bits
32
5
5
5
32
32
LRA
LRB
WR
rd
RegDst
MU
X
Inm16
EX
tension
32
MUX
AluselB
Ex/Op
32
PC
CLK
instrucción
Memoria
32
>>
2
32
ALUctr
MUX
@W_src
MU
X
Pcsrc
Instrucción load: Fetch
ZERO
Dst
DstW
4
MUX
AluselA
IRWWE
IoD
CLK
PCW
21
RegW
CLK
rs
rt
BusW
BusA
BusB32 Registros de 32 bits
32
5
5
5
32
32
LRA
LRB
WR
rd
RegDst
MU
X
Inm16
EX
tension
32
MUX
AluselB
Ex/Op
32
PC
CLK
instrucción
Memoria
32
>>
2
32
ALUctr
MUX
@W_src
MU
X
Pcsrc
Load : Lectura
ZERO
Dst
DstW
4
MUX
AluselA
IRWWE
IoD
CLK
PCW
22
RegW
CLK
rs
rt
BusW
BusA
BusB32 Registros de 32 bits
32
5
5
5
32
32
LRA
LRB
WR
rd
RegDst
MU
X
Inm16
EX
tension
32
MUX
AluselB
Ex/Op
32
PC
CLK
instrucción
Memoria
32
>>
2
32
ALUctr
MUX
@W_src
MU
X
Pcsrc
Load : Ejecución
ZERO
Dst
DstW
4
MUX
AluselA
IRWWE
IoD
CLK
PCW
23
RegW
CLK
rs
rt
BusW
BusA
BusB32 Registros de 32 bits
32
5
5
5
32
32
LRA
LRB
WR
rd
RegDst
MU
X
Inm16
EX
tension
32
MUX
AluselB
Ex/Op
32
PC
CLK
instrucción
Memoria
32
>>
2
32
ALUctr
MUX
@W_src
MU
X
Pcsrc
Load : Memoria
ZERO
Dst
DstW
4
MUX
AluselA
IRWWE
IoD
CLK
PCW
24
RegW
CLK
rs
rt
BusW
BusA
BusB32 Registros de 32 bits
32
5
5
5
32
32
LRA
LRB
WR
rd
RegDst
MU
X
Inm16
EX
tension
32
MUX
AluselB
Ex/Op
32
PC
CLK
instrucción
Memoria
32
>>
2
32
ALUctr
MUX
@W_src
MU
X
Pcsrc
Load : Write Back
ZERO
Dst
DstW
4
MUX
AluselA
IRWWE
IoD
CLK
PCW
25
4o Paso:STORE
• Transferencias Lógicas (RTL)SW MEM(R[rs] + sx(Inm16))<-- R[rt]; PC<--PC+ 4
• Transferencias Físicas IR<---MEM[PC]; PC<--PC+ 4;
BusA<---R[rs]; BusB<---R[rt];
BusS<---BusA+ Signext(inm16);
MEM[S]<--BusB;
26
4o Paso:BEQ
• Transferencias Lógicas (RTL)BEQ if (R[rs]==R[rt]) then
PC<--PC+4+(signext(Inm16)*4)
else PC<--PC+ 4
• Transferencias Físicas IR<---MEM[PC]; PC<--PC+ 4;
BusA<--R[rs]; BusB<--R[rt]; DST<-PC+Signext(inm16)*4;
Z<-- (BusA==BusB) ; si (Z) entonces PC<---DST;
27
Etapas de cada instrucción
Paso Tipo R Load Store Lógicas Beq
Fetch IR<----MEM[PC];
PC<--PC+4
Lectura A<-----R[rs];
B<-----R[rt];
DST<---PC+(signext(inm16)<<2)
Eje S<---AopB; S<---A+ signext(inm16); S<---A op Z<---AopB
Zext(inm16) si (Z) PC<--DST
Mem R[rd]<---S; dato<---MEM[S]; MEM[S]<--B; R[rt]<---S;
PostW R[rt]<---dato;
28
RegW
CLK
rs
rt
BusW
BusA
BusB32 Registros de 32 bits
32
5
5
5
32
32
LRA
LRB
WR
rd
RegDst
MU
X
Inm16
EX
tension
32
MUX
AluselB
Ex/Op
32
PC
CLK
instrucción
Memoria
32
>>
2
32
ALUctr
MUX
@W_src
MU
X
Pcsrc
4o Paso:Juntando Todo
ZERO
Dst
DstW
4
MUX
AluselA
IRW
WE
IoD
SaltoPCW
29
Grafo de Estados
IR<--MEM[PC];
PC<-PC+4
A<-----R[rs];
B<-----R[rt];
DST<---PC+(signext(inm16)<<2)
S<---AopB
S<---A+ signext(inm16)
Z<---AopB
si (Z) PC<--DST
dato<---MEM[S]MEM[S]<--B
R[rd]<---S R[rt]<---dato
30
Grafo de Estados
S0
S1
S2S8S6
S3
S4
S5
S7
31
ControlS0 S1 S2 S3 S4 S5 S6 S7 S8
DstW
RegW
IRW
WE
PCW
Salto
PCsrc
ALUselA
ALUselB
W_src
RegDst
IoD
ALUop
Ex/Op
32
ControlS0 S1 S2 S3 S4 S5 S6 S7 S8
DstW 0 1 0 0 0 0 0 0 0
RegW 0 0 0 0 1 0 0 1 0
IRW 1 0 0 0 0 0 0 0 0
WE 0 0 0 0 0 1 0 0 0
PCW 1 0 0 0 0 0 0 0 0
Salto 0 0 0 0 0 0 0 0 1
PCsrc 0 0 x x x x x x 1
ALUselA 0 0 1 1 1 1 1 1 1
ALUselB 01 11 10 10 10 10 00 00 00
W_src x x x x 1 x x 0 x
RegDst x x x x 0 x x 1 x
IoD 0 x x 1 1 1 x x x
ALUop 00 00 00 xx xx xx 10 xx 01
Ex/Op x 1 1 1 1 1 x x x
33
Control: Especificación e Implementación
Representación Inicial
Diagrama de Estados Finitos
Microprograma
Control del Secuenciamiento
Función explícita del estado futuro
Contador de microprograma + ROM
Representación Lógica
Ecuaciones Lógicas
Tabla de Verdad
Técnica de Implementación
Array Lógico Programable
ROMControl microprogranadoControl cableado
34
• Implementación:
Máquina de Estados Finitos
NS3NS2NS1NS0
Op5
Op4
Op3
Op2
Op1
Op0
S3
S2
S1
S0
State registerInstruction r egisteropcode field
Outputs
Control logic
Inputs
PCW
WEIoDBranch
W_srcIRW
ALUselA
ALUopALUselB
PCsrc
RegDstRegW
35
Rendimiento
• El diagrama de estados nos da el CPI por instrucción (y el camino crítico)
Tipo CPI Frecuencia CPIxFrecuencia
ALU 4 40% 1.6
Load 5 30% 1.5
Store 4 10% 0.4
Branch 3 20% 0.6
CPI Medio= 4.1
36
Problema 1• Comparar el rendimiento de una máquina de 500Mhz, con el rendimiento de otra
máquina de 750 Mhz pero en la cual el acceso a memoria de datos tarda dos ciclos.
Tipo CPI1 CPI2 %inst CPI1x %inst CPI1x %inst
ALU 4 4 40% 1.6 1.6
Load 5 6 30% 1.5 1.8
Store 4 5 10% 0.4 0.5
Branch 3 3 20% 0.6 0.6
CPI 1Medio= 4.1 CPI2 Medio= 4.5
3,162,8
75100*5,4
50100*1,4
****
2
1
1
2 tCPINtCPIN
TT
RR
37
Problema 2.a
Paso Tipo R Load Store Lógicas Beq
Fetch IR<----MEM[PC];
PC<--PC+4
Decod A<-----R[rs];
B<-----R[rt];
DST<---PC+(signext(inm16)<<2)
Eje S<---AopB; S<---A+ signext(inm16); S<---A op Z<---AopB
R[rd]<---S; Zext(inm16) si (Z) PC<--DST
R[rt]<---S;
Mem dato<---MEM[S]; MEM[S]<--B;
R[rt]<---dato;
• Diseñar el control de la máquina multiciclo suponiendo que las escrituras del Banco de Registros se realizan en el mismo ciclo que la operación de la ALU o que la lectura a memoria. Calcular el camino crítico de esta máquina.
38
Problema 2.a: Grafo de Estado
IR<--MEM[PC];
PC<-PC+4
A<-----R[rs];
B<-----R[rt];
DST<---PC+(signext(inm16)<<2)
S<---AopB
R[rd]<---SS<---A+ signext(inm16)
Z<---AopB
si (Z) PC<--DST
MEM[S]<--B dato<---MEM[S]
R[rt]<---dato
39
Problema 2.a: Rendimiento• El diagrama de estados nos da el CPI por instrucción (y el
camino crítico). Comparamos la máquina original a 50 Mhz con ésta que tiene un ciclo más largo: 40Mhz
Tipo CPI1 CPI2 %inst CPI1x %inst CPI1x %inst
ALU 4 3 40% 1.6 1.2
Load 5 4 30% 1.5 1.2
Store 4 4 10% 0.4 0.4
Branch 3 3 20% 0.6 0.6
CPI 1Medio= 4.1 CPI2 Medio= 3.4
09,17582
401000*4,3
501000*1,4
****
2
1
1
2 tCPINtCPIN
TT
RR
40
Problema 2.b
Paso Tipo R Load Store Beq
Fetch IR<----MEM[PC];
PC<--PC+4
Decod A<-----R[rs];
B<-----R[rt];
DST<---PC+(signext(inm16)<<2)
Eje y S<---AopB; S<---A+ signext(inm16); S<---A+ signext(inm16); Z<---AopB
Mem R[rd]<---S; dato<---MEM[S]; MEM[S]<--B; si (Z) PC<--DST
R[rt]<---dato;
• Diseñar el control de la máquina multiciclo suponiendo que, además de lo supuesto en el Problema 2, el cálculo de las direcciones efectivas se realizan en el mismo ciclo que el acceso a memoria. Esta máquina tiene un reloj de 25 Mhz. Comparar rendimientos.
41
Problema 2.b: Grafo de Estado
IR<--MEM[PC];
PC<-PC+4
A<-----R[rs];
B<-----R[rt];
DST<---PC+(signext(inm16)<<2)
S<---AopB
R[rd]<---S
Z<---AopB
si (Z) PC<--DST
S<---A+ signext(inm16) MEM[S]<--B
S<---A+ signext(inm16)
dato<---MEM[S]
R[rt]<---dato
42
Problema 2.b: Rendimiento• El diagrama de estados nos da el CPI por instrucción (y el
camino crítico). Comparamos la máquina original a 50 Mhz con ésta que tiene un ciclo más largo: 25Mhz
Tipo CPI1 CPI2 %inst CPI1x %inst CPI1x %inst
ALU 4 3 40% 1.6 1,2
Load 5 3 30% 1.5 0,9
Store 4 3 10% 0.4 0.3
Branch 3 3 20% 0.6 0.6
CPI 1Medio= 4.1 CPI2 Medio= 3
46,11
12082
251000*3
501000*1,4
****
2
1
1
2 tCPINtCPIN
TT
RR
43
Problema 2.c: Conclusiones??• Cuales serán las mezclas de instrucciones que
hagan más rápida a una de las máquinas respecto a las otras?
• M2 es 1,09 veces más rápida que M1• M2 es 1,6 veces más rápida que M3• M1 es 1,46 veces más rápida que M3
Tipo M1 M2 M3
T_ejec 82nseg 75nseg 120nseg
CPI 4,1 4,5 3
Frecuencia 50Mhz 40Mhz 25Mhz
Rendimiento 1/82 1/75 1/120
top related