Professional Documents
Culture Documents
Contenido
Operaciones multi-ciclo.
Arquitectura de Computadores - Curso 2012
Introduccin a la segmentacin
Write Back
Adder
Next SEQ PC
Zero?
RS1
4
Address Address
Memory Memory
RS2
Inst
ALU ALU
Data Memory
RD
L M D
MUX
Imm
Sign Extend
WB Data
Next SEQ PC
RS1
Wr ite Ba ck
Adder
4
Address
MUX MUX
Memory
Reg File
RS2
ALU
I ns t
RD Imm
Data Memory
L M D
MUX
Sign Extend
WB Data
Ejecucin (Execution)
Operacin de ALU sobre registros. Alternativamente, clculo de direccin efectiva.
Next PC
Next SEQ PC
Wr ite Ba ck
Adder
4
Address
MUX MUX
Memory
Reg File
RS2
ALU
I ns t
RD Imm
Data Memory
L M D
MUX
Sign Extend
WB Data
Segmentacin
Idea: solapar la ejecucin de mltiples instrucciones. Idea similar a una lnea de ensamblaje de automviles.
Efectos:
Aumenta el throughput. No disminuye la latencia.
10
Segmentacin
IF1 IF2 IF3 IF4 IF5 IF6 IF7 IF8 DE1 DE2 DE3 DE4 DE5 DE6 DE7 EX1 EX2 EX3 EX4 EX5 EX6 M1 M2 M3 M4 M5 W1 W2 W3 W4
Latencia
Trhoughput (ideal)
11
ALU
I n s t r. O r d e r
ALU
Ifetch
Reg
DMem
Reg
Ifetch
Reg
DMem
Reg
ALU
Ifetch
Reg
DMem
Reg
ALU
Ifetch
Reg
DMem
Reg
12
Efectos del pipeline Un pipeline de profundidad n, multiplica por n el ancho de banda necesario de la versin sin pipeline con la misma frecuencia de reloj.
Cachs,
La separacin de cach de datos e instrucciones elimina algunos conflictos de memoria. Las instrucciones que estn en el pipeline no deberan intentar usar el mismo recurso en el mismo momento.
Introduccin de registros de pipeline entre etapas sucesivas.
13
Write Back
Adder
RS1
4
Address Address
Zero?
MEM/WB MEM/WB
Imm
Sign Extend
RD
RD
RD
WB Data
Memory Memory
EX/MEM EX/MEM
RS2
ID/EX ID/EX
IF/ID IF/ID
ALU ALU
Data Memory
MUX
14
Ejemplo
Un procesador no segmentado:
Ciclo de reloj: 1ns Operaciones ALU (40%) y bifurcaciones (20%): 4 ciclos. Operaciones de memoria (40%): 5 ciclos. Sobrecoste de segmentacin: 0.2 ns
15
Riesgos de segmentacin
Riesgos estructurales Riesgos de datos Riesgos de control
16
Riesgos Un riesgo es una situacin que impide que la siguiente instruccin pueda comenzar en el ciclo de reloj previsto.
Los riesgos reducen el rendimiento de las arquitecturas segmentadas.
Tipos de riesgos:
Riesgo estructural. Riesgo de datos. Riesgo de control.
17
Ciclo 1 Ciclo 2
Ciclo 3
ALU
Ciclo 4 Ciclo 5
DMem Reg
Ciclo 6 Ciclo 7
LOAD
Ifetch
Reg
ALU
Ifetch
Reg
DMem
Reg
ALU
Ifetch
Reg
DMem
Reg
ALU
Ifetch
Reg
DMem
Reg
ALU
Ifetch
Reg
DMem
Reg
18
Ejemplo de stall
Ciclo 1 Ciclo 2
Ciclo 3
ALU
Ciclo 4 Ciclo 5
DMem Reg
Ciclo 6 Ciclo 7
Instr
Ifetch
Reg
ALU
Ifetch
Reg
DMem
Reg
ALU
Ifetch
Reg
DMem
Reg
ALU
Ifetch
Reg
DMem
Reg
Ifetch
Reg
ALU
DMem
19
Riesgo estructural
Se produce cuando el hardware no puede soportar todas las posibles secuencias de instrucciones.
En un mismo ciclo dos etapas de la segmentacin necesitan hacer uso del mismo recurso.
Razones:
Unidades funcionales no totalmente segmentadas. Unidades funcionales no duplicadas.
20
Write Back
Adder
RS1
4
Address Address
Zero?
MEM/WB MEM/WB
Imm
Sign Extend
RD
RD
RD
WB Data
Memory Memory
EX/MEM EX/MEM
RS2
ID/EX ID/EX
IF/ID IF/ID
ALU ALU
Data Memory
MUX
21
Ciclo 1 Ciclo 2
Ciclo 3
ALU
Ciclo 4 Ciclo 5
DMem Reg
Ciclo 6 Ciclo 7
LOAD
Ifetch
Reg
ALU
Ifetch
Reg
DMem
Reg
ALU
Ifetch
Reg
DMem
Reg
ALU
Ifetch
Reg
DMem
Reg
22
tiempo medio instruccin no segmentado CPI no segmentado ciclo de relojno segmentado S= = tiempo medio instruccin segmentado CPI segmentado ciclo de relojsegmentado
En el caso ideal el CPI segmentado es 1.
Hay que aadir los ciclos de detencin por instruccin
El procesador no segmentado:
CPI es 1 con ciclo de reloj mucho mayor. Ciclo de reloj n veces el ciclo del segmentado.
N es profundidad del pipeline.
23
Qu alternativa es ms rpida?
tinst ( A) = CPI ciclo = 1 1ns = 1ns tinst ( B) = CPI ciclo = (0.6 1 + 0.4 (1 + 1)) 0.9 = 1.4 0.9 = 1.26ns
24
Riesgos de segmentacin
Riesgos estructurales Riesgos de datos Riesgos de control
25
Riesgos de datos Se produce un riesgo de datos cuando la segmentacin modifica el orden de accesos de lectura/escritura a los operandos. I1: DADD R1, R2, R3 I2: DSUB R4, R1, R5 I3: AND R6, R1, R7 I4: OR R8, R1, R9 I5: XORR10, R1, R11
I2 lee R1 antes de que I1 la modifique. I3 lee R1 antes de que I1 la modifique. I4 obtiene valor correcto BR ledo en segunda mitad de ciclo. I5 obtiene valor correcto.
26
Riesgos de datos
IF
ID/RF
Reg
EX
ALU
MEM
DMem
WB
Reg
Ifetch
ALU
Ifetch
Reg
DMem
Reg
ALU
Ifetch
Reg
DMem
Reg
ALU
Ifetch
Reg
DMem
Reg
ALU
Ifetch
Reg
DMem
Reg
27
ALU
IF
Reg
DM
Reg
ALU
IF
Reg
DM
Reg
ALU
IF
Reg
DM
Reg
ALU
IF
Reg
DM
Reg
ALU
IF
Reg
DM
Reg
28
i: i+1:
29
i: i+1: i+2:
30
i: i+1: i+2:
31
i: i+1: i+2:
i: i+1: i+2:
Dependencias RAW:
Envo adelantado (forwarding).
Arquitectura de Computadores - Curso 2012
32
Implantacin:
Los resultados de las fases EX y MEM se escriben en registros de entrada a ALU. La lgica de forwarding selecciona entre entradas reales y registros de forwarding.
Arquitectura de Computadores - Curso 2012
33
Forwarding
ALU
IM
Reg
DM
Reg
ALU
IM
Reg
DM
Reg
ALU
IM
Reg
DM
Reg
ALU
IM
Reg
DM
Reg
ALU
IM
Reg
DM
Reg
34
Limitaciones del forwarding No todos los riesgos se pueden evitar con forwarding.
No se puede viajar hacia atrs en el tiempo!
I1: LD R1, (0)R2 I2: DSUB R4, R1, R5 I3: AND R6, R1, R7 I4: OR R8, R1, R9 I5: XORR10, R1, R11
ALU
IM
Reg
DM
Reg
ALU
IM
Reg
DM
Reg
35
ALU
LD R1, 0(R2)
IM
Reg
DM
Reg
ALU
IM
Reg
DM
Reg
ALU
IM
Reg
DM
Reg
ALU
IM
Reg
DM
Reg
ALU
IM
Reg
DM
Reg
36
Riesgos de segmentacin
Riesgos estructurales Riesgos de datos Riesgos de control Alternativas en tiempo de compilacin Alternativas en tiempo de ejecucin
37
Riesgos de control Un riesgo de control se produce en una instruccin de alteracin del PC. Terminologa:
Bifurcacin tomada: Si se modifica el PC. Bifurcacin no tomada: Si no se modifica el PC.
Problema:
La segmentacin asume que lo bifurcacin no se tomar. Qu hacer si despus de la etapa ID se determina que hay que tomar la bifurcacin?
I1: LD R1, (0)R2 I2: IF R1=0 JUMP I5 I3: AND R6, R1, R7 I4: ELSE R8, R1, R9 I5: XORR10, R1, R11
38
39
40
Congelacin de pipeline
Idea: Si la instruccin actual es una bifurcacin entonces parar o eliminar del pipeline instrucciones posteriores hasta que se conozca el destino.
Penalizacin en tiempo de ejecucin conocida. El software (compilador) no puede hacer nada.
41
Repeticin de FETCH
Ciclo 1 Ciclo 2
Ifetch Reg
Ciclo 3
ALU
Ciclo 4 Ciclo 5
DMem Reg
Ciclo 6 Ciclo 7
ALU
Ifetch
Reg
DMem
Reg
ALU
Ifetch
Reg
DMem
Reg
Ifetch
ALU
Ifetch
Reg
DMem
Reg
42
Repeticin de FETCH
ALU
IF
Reg
DM
Reg
ALU
IF
IF
Reg
DM
Reg
ALU
IF
Reg
DM
Reg
Se repite IF
Instr i+3
ALU
IF
Reg
DM
Reg
43
44
45
ALU
IM
Reg
DM
Reg
ALU
IM
Reg
DM
Reg
ALU
IM
Reg
DM
Reg
ALU
IM
Reg
DM
Reg
46
ALU
IM
Reg
DM
Reg
IM
Inactivo
ALU
IM
Reg
DM
Reg
ALU
IM
Reg
DM
Reg
47
Bifurcacin retrasada Idea: La bifurcacin se produce despus de ejecutar las n instrucciones posteriores a la propia instruccin de bifurcacin.
En pipeline de 5 etapas: 1 ranura de retraso.
Instruccin branch Instruccin suc1 Instruccin suc2 Instruccin sucn Instruccin cond
Arquitectura de Computadores - Curso 2012
Retraso de longitud n
48
ETIQ:
ETIQ:
ETIQ:
ETIQ: ETIQ:
ETIQ:
ETIQ:
Preferible
XOR no puede pasar a ranura por dependencia de datos Arquitectura de Computadores - Curso 2012
49
Bifurcacin retrasada
ALU
IM
Reg
DM
Reg
ALU
IM
Reg
DM
Reg
ALU
IM
Reg
DM
Reg
50
Bifurcaciones retrasadas
51
52
Penalizacin incondicional 2 2 2
Penalizacin notomada 3 3 0
Penalizacin tomada 3 2 3
53
Solucin
Bifurcacin incondicional 4% 0.04 x 2 = 0.08 0.04 x 2 = 0.08 Bifurcacin no tomada 6% 0.06 x 3=0.18 0.06 x 3 = 0.18 Bifurcacin tomada 10% 0.10 x 3=0.30 0.10 x 2 = 0.20 Total 20% 0.56 0.46 0.38
0.04 x 2 = 0.08 0.06 x 0 = 0.00 0.10 x 3 = 0.30 Contribucin sobre CPI ideal
54
Riesgos de segmentacin
Riesgos estructurales Riesgos de datos Riesgos de control Alternativas en tiempo de compilacin Alternativas en tiempo de ejecucin
55
56
9% 10%
Enteros
Coma flotante
3% a 24%
Fallo de prediccin. Media: 9%. Desviacin estndar: 4% Fallo de prediccin. Media: 15%. Desviacin estndar: 5%
Arquitectura de Computadores - Curso 2012
57
58
12% 10% 5% 9% 5% 0%
c c 30 0 li pp ice ice
9%
9%
1%
eq nt ot es t pr es so
gc
do du
at ri x
na sa
fp p
sp
sp
59
60
Operaciones multi-ciclo
61
62
EX IF ID
Multiplicacin int/FP
WB
EX
Sumador FP
EX
Divisor int/FP
63
Latencia 0 1 3 6 24
Intervalo de iniciacin 1 1 1 1 25
64
Importante
Una arquitectura segmentada requiere mayor ancho de banda de memoria. Los riesgos en el pipeline provocan detenciones.
Degradacin del rendimiento.
Las detenciones de riesgos de datos se pueden mitigar con tcnicas de compilacin. Las detenciones de riesgos de control se pueden reducir con:
Alternativas en tiempo de compilacin. Alternativas en tiempo de ejecucin.
65
Referencias
Computer Architecture. A Quantitative Approach. Fifth Edition. Hennessy y Patterson. Secciones C.1, C2 y C5. Ejercicios recomendados:
C.1, C.2, C.3, C.4, C.5