Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Arquitectura
it t de
d Computadores
C t d
Tema 3
S
Segmentación
ió (Pipelining)
( i li i )
Índice
1. Segmentación
2. Riesgos (Hazards)
3. Forwarding
4. Implementación del pipelining
5
5. Tratamiento de las interrupciones
6. Complicaciones del Repertorio de Instrucciones
7. E
Extensiones
i para M
Multiciclo
li i l
2
Pipelining
Técnica de implementación por la que varias
i
instrucciones
i se superponen en ejecución
j ió
Se aprovecha el paralelismo inherente en la instrucción
E la
Es l técnica
é i más á importante
i en la
l actualidad
lid d para
mejorar el rendimiento de un procesador
Consiste en dividir la ruta de datos en etapas
Operan en paralelo
Cada etapa ejecuta una instrucción
Pipe stage
Pipe segment
Etapa
Segmento
Rendimiento de un pipe-line
pipe line
¿Cuanto tarda una instrucción en recorrer el pipe?
Nº de Etapas
Ciclo del procesador
Ci l d
Ciclo dell procesador
d
Tiempo que tarda una instrucción en pasar de una etapa a otra
Normalmente un ciclo
A veces dos ciclos
Raramente + de 2 ciclos
(Sin operaciones segmentadas)
El diseñador debe buscar el equilibrio entre la longitud de
las etapas
Rendimiento Ideal
Tiempo
p ppor instrucción (p
(pipeline)=Tiempo
p ) p ppor instrucción/(Nº
( Etapas
p ppipeline)
p )
4
Ventajas
Reducción de CPI
Se pasa por las mismas etapas
La ejecución de la siguiente instrucción comienza antes
No ideal
Paradas
Ri
Riesgos
Reducción del ciclo de Reloj
Equilibrio
E ilib i en lla d
duración
ió
Mayor posibilidad de optimización de cada etapa
N es visible
No i ibl all programador
d
Instrucciones RISC
Características básicas de un ISA RISC
Todas
T d las
l operaciones
i de
d datos
d t operan entre
t registros
it
Reducción de las operaciones intermedias por no acceder a la
memoria
Solo Load/Store acceden a memoria
Pocas instrucciones
Pocos formatos
MIPS64
32 Registros
g de propósito
p p general
g
R0 = 0
3 clases de instrucciones
ALU
Load / Store
Branch and Jump
6
Fases de la Instrucción
1. IF
• Instruction Fetch: Búsqueda de la Instrucción
(PC)Adress Mem(Mem (PC))RI
2. ID
• Intruction Decoding: Decodificación de la Instrucción
Lectura de Registros
3. EX
• Execution: Ejecución de la instrucción
ALU
Cálculo de la dirección efectiva
Operaciones
p Regg – Regg
Opereciones Reg – Inmediato
4. MEM
• Memoryy Access: Acceso de Memoria
5. WB
• Write Back : Escritura
Escritura de resultados
CPI
CPI: Ciclos por Instrucción
Branch
2 ciclos
Frecuencia 12 %
Store / Load
4 ciclos
Frecuencia 10%
Resto
5 ciclos
Frecuencia 78 %
CPI = 4.5 = 2*0.12 + 4*0.10 + 5*0.78
Ciclos promedio por instrucción
8
Pipelining
Idea: Comenzar una instrucción en cada ciclo
Nº Ciclo de Reloj
Instr 1 2 3 4 5 6 7 8 9
i IF ID EX MEM WB
i+1 IF ID EX MEM WB
i+2 IF ID EX MEM WB
i+3 IF ID EX MEM WB
i+4 IF ID EX MEM WB
Aspectos a considerar
Que pasa en cada ciclo
Está ocupado el camino de datos?
Está ocupada la parte que quiero usar?
Hay recursos?
Ocupación de los buses?
Soluciones básicas
+ Hardware
Modificaciones al control
Incremento de registros
Información del pipeline
10
Aspectos
p básicos del Rendimiento
Pipe
M j
Mejora ell Rendimiento
R di i
Reduce el tiempo de ejecución total
Tiempo de cpu de cada instrucción no se modifica
Problemas
Desequilibrio entre etapas e instrucciones
Clock Skew
Sobrecarga
Ejemplo
sin pipe con pipe
Tciclo 1 ns 1.2 ns
CPI 4.5 1 (ideal)
Speed-up 4.5/1.2 = 3.75
11
Índice
1. Segmentación
2. Riesgos (Hazards)
3. Forwarding
4. Implementación del pipelining
5
5. Tratamiento de las interrupciones
6. Complicaciones del Repertorio de Instrucciones
7. E
Extensiones
i para M
Multiciclo
li i l
12
Riesgos (Hazards)
El mayor problema de la segmentación
3 tipos
i
Estructurales
Conflicto de Recursos
Datos
Dependencia con instrucciones anteriores
Control
Decisión en los saltos y bifurcaciones
Hazard:
Situación que impide la ejecución de la siguiente instrucción
Provoca una parada en el pipe
Se ejecuta lo que quedaba
Se elimina lo posterior
Degrada el Rendimiento
13
Degradación
g del Rendimiento
Rdto del Pipe con Paradas (Stalls)
TPI sin pipe TPI CPI Tciclo
Speed Up
TPI con pipe TPI p CPI p Tciclo p
CPI p CPI ideal CPPI
CPI ideal 1
CPPI Ciclos de Parada del Pipe por Instrucción
14
Degradación del Rendimiento
CPI Tciclo 1 T
Speed Up ciclo
CPI p Tciclo p 1 CPPI Tciclo p
1
Speed Up N º Etapas pipe
1 CPPI
1
15
Hazars estructurales
Una combinación de instrucciones no se puede ejecutar por un conflicto de
recursos Hardware
Implica la parada de la instrucción
Se crea una “burbuja”
Se crea un hueco en el pipe STOP
Ejemplo con memoria única de datos e instrucciones
Nº Ci l de
Ciclo d Reloj
R l j
Instr 1 2 3 4 5 6 7 8 9 10
i IF ID EX MEM WB
i+1 IF ID EX MEM WB
i+2 IF ID EX MEM WB
i+3 STOP STOP STOP IF ID EX MEM
i+4
16
Riesgos estructurales
Ejemplo Memoria única
Nº Ciclo de Reloj
Instr 1 2 3 4 5 6 7 8 9 10
i
ALU
Mem Reg Mem Reg
i+1
ALU
Mem Reg Mem Reg
i+2
LU
Mem Reg Mem Reg
AL
i+3
ALU
Mem Reg Mem Reg
A
i+4
ALU
Mem Reg Mem Reg
17
Riesgos estructurales
Ejemplo Memoria única
Nº Ciclo de Reloj
Instr 1 2 3 4 5 6 7 8 9 10
i
ALU
i+1
ALU
i+2
LU
i+3
ALU
i+4
ALU
Mem Reg M
A
18
Hazards de datos
CC1 CC2 CC3 CC4 CC5 CC6 CC7 CC8 CC9 CC10
ALU
DADD R1,R2, R3 Mem Reg Mem Reg
ALU
U
DSUB R4,R1, R5 Mem Reg Mem Re
g
, , R7
AND R6,R1,
LU
Mem Reg Mem Reg
AL
OR R8,R1, R9
ALU
Mem Reg
g Mem Reg
g
A
XOR R10,R1, R11
ALU
Mem Re Mem Reg
g
19
Hazards de Control
Si un salto cambia el PC
Salto tomado (taken branch)
PC no cambia hasta después de la fase de ID
Solución Básica: Repetir IF de la instrucción siguiente al BRANCH
Es una parada pero evita la propagación
Nº Ci l de
Ciclo d Reloj
R l j
Instr 1 2 3 4 5 6 7 8 9 10
i IF ID EX MEM WB
BRANCH
IF ID EX MEM WB
i+2 IF IF ID EX MEM WB
i+3 IF ID EX MEM WB
i+4 IF ID EX MEM WB
20
Reducción de las penalizaciones por salto
Soluciones simples en tiempo de compilación
1. FLUSH or FREEZE
Repetir o borrar cualquier instrucción después del salto hasta
c n cer el destino
conocer destin del mism
mismo
Simple a nivel HW y SW
2. ALL NOT TAKEN
Tratar todos los saltos como no tomados
Se continúa la ejecución y si se toma se ignoran las fases
correspondientes
Algo más complejo
21
22
Reducción de las penalizaciones por salto
3. ALL TAKEN
Tratar todos los saltos como tomados
No tiene sentido para este pipeline
4
4. BRANCH DELAY SLOT
Se retarda una instrucción el salto
El compilador debe buscar que el sucesor secuencial sea siempre
válido
Branch instruction
Sucesor secuencial 1
Objetivo si el salto es tomado
23
Salto Retardado
Nº Instr Ciclo de Reloj
1 2 3 4 5 6 7 8 9
24
Efectos en el Rendimiento
Aspectos a considerar
Frecuencia de los Saltos
Penalización por saltos
Tipo de saltos
Condicionales
N condicionales
No di i l
Los más frecuentes
Nº Etapas
Speed Up pipeline
1 Ciclos de parada por saltos
l
Nº Etapas p
1 frecsaltos Penalsaltos
25
Índice
1. Segmentación
2. Riesgos (Hazards)
3. Forwarding
4. Implementación del pipelining
5
5. Tratamiento de las interrupciones
6. Complicaciones del Repertorio de Instrucciones
7. E
Extensiones
i para M
Multiciclo
li i l
26
Forwarding
El resultado estás disponible después de EXE
Podemos adelantar el resultado
Bypassing o cortocircuito Aquí se produce
CC CC CC CC CC CC CC CC CC CC10
1 2 3 4 5 6 7 8 9
ALU
DADD R1,R2, R3
Mem Reg Mem
Re Aquí se necesita
g
ALU
DSUB R4,R1, R5 Re
Mem Reg Mem
g
ALU
U
AND R6,R1,
R6 R1 R7
Mem Reg Mem Reg
OR R8,R1, R9
ALU
Mem Reg Mem Reg
ALU
Re Mem Reg
Mem
g
27
Forwarding
CC1 CC2 CC3 CC4 CC5 CC6 CC7 CC8 CC9 CC10
ALU
, , R7
AND R6,R1,
LU
OR R8,R1, R9
ALU
Mem Reg
g Mem Reg
g
A
28
Forwarding
ALU
DADD R1,R2,
, , R3 Mem Reg
g Mem Reg
g
ALU
LD R4,0(R1) Mem Reg Mem Re
g
SD R4, 12 (R1)
ALU
Mem Reg Mem Reg
29
LD R1,0(R2)
, ( ) Mem Reg Mem Reg
A
ALU
30
Índice
1. Segmentación
2. Riesgos (Hazards)
3. Forwarding
4. Implementación del pipelining
1. Modificaciones al cauce no segmentado
2. Implementación del control
3. Implementación del forwarding
4
4. Dificultades
5. Tratamiento de las interrupciones
6
6. Complicaciones del Repertorio de Instrucciones
7. Extensiones para Multiciclo
31
32
Implementación del Pipelining
33
34
Implementación del control
Detección y resolución de riesgos
Comparación de registros
35
36
Implementación
Detección de las paradas por Load en ID
Requiere 3 comparaciones
31 26 21 16 11 6 0
p R:
Tipo op rs rt rd shamt funct
aritmético-lógicas
6 bits 5 bits 5 bits 5 bits 5 bits 6 bits
Tipo I: 31 26 21 16 0
con memoria op rs rt inmediato
salto condicional
6 bits 5 bits 5 bits 16 bits
31 26 0
Tipo J:
salto incondicional op dirección
6 bits 26 bits
37
38
Implementación del Forwarding
39
Tipo R Lw Sw Beq
If Cond
R[rd] <– S; M <– Mem[S]
[ ] Mem[S]
[ ] <- B
PC <<– PCSalto
R[rd] <– M;
• Recordatorio
rs = Ins[25-21]
I [25 21]
rt = Ins[20-16]
rd = Ins[15-11]
Inme = Ins[15-0]
Ins[15 0]
40
Diseño del control
Las instruciones: Load (lw) y tipo-R
Load. Tiene 5 fases y cada una utiliza una de las etapas
Ciclo 1 Ciclo2 Ciclo 3 Ciclo4 Ciclo5
Clock
Tipo-R.
p Tiene 4 fases y no usa la memoria de datos
Ciclo 1 Ciclo2 Ciclo 3 Ciclo4
Clock
41
42
Diseño del control
Ejecución de instrucciones: Diagrama RT modificado
Tipo R Lw Sw Beq
S <– A funct B; S <– A + SigExt( Inme); S <– A + SigExt( Inme); Evaluar Cond
PCSalto <– PC+SX
If Cond
M <– S M <– Mem[S] Mem[S] <- B
PC <– PCSalto
43
Ruta de
d ddatos d
dell DLX con llas ordenes
d d
de controll necesarias
i
0
UX
MU
PcSrc
1
Sumador
S
Sum
Branch
+4 Reg Write
<<2
MemWrite
RA Zero MentoReg
PC
busA
es
de
registros
s
ADDR
instruccione
Banco d
RB
Memoria
AluScr
ADDR DR 0
ALU
DR RW
MUX
busB
emoria
0
datos
busW
MUX
1
M
Me
d
ALUctr
1
DW
xtensión
e signo
El Pc y los diferentes
Control
Ins. [15-0] 3
ALU
6
registros
g de desacoplo
p
de
Ins. [20-16]
MemRead
en cada ciclo, por tanto no ALUop
MUX
44
Señales de control
Control de la ALU Control principal
op funct ALUop ALUctr
eg
MemRead
d
MemWrite
e
MemtoRe
100011 (lw)
(l ) 00 010
RegWrite
ALUSrc
RegDst
Branch
ALUop
101011 (sw) XXXXXX 00 010 op
000100 (beq) 01 110
100000 (add) 10 010
100010 ((sub)
b) 10 110 100011 (lw)
(l ) 0 1 00 1 0 0 1 0
000000 (tipo-R) 100100 (and) 10 000 101011 (sw) X 1 00 0 1 0 0 X
100101 (or) 10 001 000100 (beq) X 0 01 0 0 1 0 X
101010 (slt) 10 111 000000 (tipo-R) 1 0 10 0 0 0 1 1
El control de la alu se determina por ALUop que depende del tipo de
EX: Ejecución/
Calculo de
WB Escrribe
Instrucción y el campo de función en las instrucciones de tipo-R
MEM: Ac
WB
Memoria
Reg
cipal
instrucción
Control
M WB
cceso a
princ
e Dir
EX M WB
Control segmentado
estacionario en los datos
45
ID/EX PcSrc
principal
EX/MEM
Control
IF/ID MEM/WB
mador
or
Sumado
Branch
Sum
MentoReg
+4 Reg Write
<<2
MemWrite
RA Zero
PC
busA
es
Banco dee
registros
s
ADDR
instruccione
RB
Memoria
AluScr
ADDR DR 0
ALU
DR RW
MUX
busB
emoria
0
datos
busW
MUX
1
M
Me
d
1
DW
xtensión
e signo
Control
Ins. [15-0]
ALU
6
de
Ex
ALUop MemRead
Ins. [20-16]
MUX
Ins. [15-11]
Reg Dst
46
Diseño del control
¿Qué facilita el control segmentado?
Todas
T d llas iinstrucciones
i con igual
i ld duración
ió
Pocos formatos diferentes de instrucción
Accesos a memoria solo en load y store
¿Qué dificulta el control segmentado?
Riesgos estructurales. Conflictos de recursos
Riesgos de datos. Solo LDE
Riesgos de control
El diseño
di ñ anterior
t i no ttenía í en cuenta
t llos riesgos
i d
de datos
d t y los
l
riesgos de control las eliminaba con saltos retardados
Implementación
p del cortocircuito
Caso del load
Mejora en el comportamiento de los saltos.
47
Tiempo(ciclos)
ALU
Im Reg Dm Reg
i add r1 ,r2,r3
ALU
Im Reg Dm Reg
i+1 sub r4, r1 ,r3
U
ALU
Im Reg Dm Reg
48
Diseñando el control con riesgos LDE:
Implementación del cortocircuito
Cortocircuitos de datos
nformac ón de control del cortoc
Información cortocircuito
rcu to
ID/EX Indica si se escribe Reg
WB
EX/MEM
ontrol
Instrucción
M MEM/WB
WB
Co
EX EX: Ejecución/ M WB
Calculo de Dir MEM: Acceso a WB Escribe
ID: Decodificación/ Memoria Reg
MUX
UX
Lectura de Reg A
AluScr
ADDR DR
ALU
RA busA 0
Corto A
MUX
1
emoria
Banco de
gistros
Ex.IR[15:0]
datos
MUX
RB
MUX
UX 1
B
Me
d
reg
RW 0
busW busB DW
Rs
Rt Corto B
Rt
EX/MEM Rd MEM/WB Rd
UX
MU
Rd
Unidad
Cortocircuito
49
Im Reg
g Dm Reg
g
LU
sub r4 r1 r3
r4,r1,r3
Tiempo(ciclos)
ALU
Im Reg Dm Reg
lw r1,0(r2)
sub r4,r1,r3
ALU
50
Diseño del control con Riesgos LDE: Caso
del load
• Solución SW :
– Anticipar el Load en la planificación de instrucciones que hace el compilador
Antes:
Despues:
LW Rb,b
LW Rb,b
LW Rc,c
LW Rc,c
ADD Ra,Rb,Rc
a := b + c SW a,Ra LW Re,e
LW Re,e ADD Ra,Rb,Rc
d := e - f LW Rf f
Rf,f LW Rf f
Rf,f
SUB Rd,Re,Rf SW a,Ra
SW d,Rd SUB Rd,Re,Rf
sin planificar planificado
SW d,Rd
25
tex 65
14
spice 42
23
gcc 54
0 20 40 60 80
51
EX/MEM
Control
MUX
No cargar
M WB MEM/WB
0
Instrucción EX: Ejecución/
E Calculo de Dir WB WB Escribe
M MEM: Acceso a
X Reg
Memoria
ID: Decodificación/
Memoria de instrucciones
MUX
Lectura de Reg
AluScr
ADDR
ALU
RA DR 0
MUX
bus
o de
moria
1
registros
dattos
RB A
UX
PC
Banco
MU
Mem
1
MUX
RW
busB 0
busW DW
Rs
Rt
Rt
UX
MU
Rd
Unidad
Cortocircuito
52
Diseño del control con riesgos
Riesgos de control
Solución: Desplazar el calculo de la dirección y la evaluación de la condición a la etapa anterior
Ti
Tiempo (ciclos)
( i l )
ALU
Add r1,r2,r3 Im Reg Mem Reg
Genera la condición
ALU
Beq r1, loop Im Reg Mem Reg
ALU
Reg Mem Reg
Solo se espera un ciclo para la Im
instrucción que sigue al salto
(Branch delay slot)
53
1 Mover bloque HW
or
Sumado
Sumador
+4
<<2
RA Zero
PC
bus
es
de
os
instruccione
Banco d
ADDR A
registro
RB
Memoria
D
ADDR
ALU
0
DR RW R
MUX
Memoria
busB 0
datos
busW
MUX
1 D
W
Extensión
de signo
54
Reducción de las paradas por Riesgos de
control
Mover el cálculo de la condición de salto a la etapa
anterior
55
56
Dificultades en la implementación de
pipelines
Tratar de las excepciones
Paradas de la ejecución
Reinicio tras las paradas
p
Complicaciones del repertorio de instrucciones
57
Índice
1. Segmentación
2. Riesgos (Hazards)
3. Forwarding
4. Implementación del pipelining
5
5. Tratamiento de las interrupciones
6. Complicaciones del Repertorio de Instrucciones
7. E
Extensiones
i para M
Multiciclo
li i l
58
Tratamiento de Interrupciones
Situaciones en las que se cambia el orden natural de la ejecución
Tipos de Excepciones
Peticiones de dispositivos de E/S
Solicitud de utilización del SO
Realización de trazas
Breakpoints
O f
Overflows de las unidades ffuncionales de enteros
Situaciones anómalas de punto flotante
Fallo de página
p g
Desalinamiento de memoria
Violación de la protección de memoria
I
Instrucciones
i no ddefinidas
fi id
Problema de Hardware
Problema de p potencia
59
60
Clasificación
Tipo Síncronas Usuario Enmascarable? Dentro Reinicio
de Excepción o o o o
Asíncronas Forzada entre Finalización
Instrucciones
Petición E/S Asíncronas Forzada No Entre Reinicio
Solicitud SO Síncronas Usuario No Entre Reinicio
Trazas Síncronas Usuario Sí Entre Reinicio
Breakpoints Síncronas Usuario Sí Entre Reinicio
61
62
Utilización de saltos retardados
No se puede recrear el estado del procesador con un único
PC
Las instrucciones en el pipe pueden no estar relacionadas
secuencialmente
Podemos necesitar tantos PC´s como longitud del salto +1
Excepciones precisas
SSe puede
d parar ell pipe
Las instrucciones justo antes se terminan
Continuan las siguientes desde el principio
Excepciones en PF
A veces escriben el resultado antes de que aparezca la excepción
Eliminar operandos
Finalización fuera de orden
63
Interrupciones Precisas
2 Modos de funcionamiento
Precisas
No precisas
Asegurar siempre aunque sea por Software
Fácil en Integer
Difícil en FP
64
Excepciones en el MIPS
Pueden ocurrir fuera de orden
V t d
Vector de estado
t d
Se chequea después de MEM
S manejan
Se j en orden
d de d ejecución
j ió
Deshabilitación de las escrituras
Etapa Problema
IF Fallo de Página en Instrucción, desaliniamiento,
violación de protección
ID O
Opcode
d no definido
d fi id o ilegal
il l
EX Excepción aritmética
WB Ninguna
65
Índice
1. Segmentación
2. Riesgos (Hazards)
3. Forwarding
4. Implementación del pipelining
5
5. Tratamiento de las interrupciones
6. Complicaciones del Repertorio de Instrucciones
7. E
Extensiones
i para M
Multiciclo
li i l
66
Complicaciones del Repertorio de
Instrucciones
Algunos procesos pueden ocasionar excepciones entre
medias de una instrucción
Autoincremento de la dirección en un IA-32 puede actualizar
l registros
los i en medio
di de
d la
l ejecución
j ió
Hace falta Hardware para gestionarlos
A
Actualización
li ió d de lla memoria
i ddurante lla ejecución
j ió
VAX; IBM360
S puede
Se d solucionar
l i
Se pueden utilizar bancos de registros temporales, para guardar
trabajos parcialmente completados
Se añaden bits de estado para saber si está completado o no
67
Operaciones Multi-ciclo
68
Índice
1. Segmentación
2. Riesgos (Hazards)
3. Forwarding
4. Implementación del pipelining
5
5. Tratamiento de las interrupciones
6. Complicaciones del Repertorio de Instrucciones
7. E
Extensiones
i para M
Multiciclo
li i l
69
Operaciones Multi-ciclo
Multi ciclo
Operaciones de un solo ciclo
Mucho Hardware
Reloj muy lento
Operaciones en Punto Flotante
Las fases de ejecución se puede repetir tantas veces como sea
necesario
Puede haber varias unidades funcionales
E
Ejemplol con 4 unidades
d d funcionales
f l
Enteros: ALU, Branches, LD y Store
Multiplicación: Entera y FP
Sumador FP
División: Entera y PF
70
Operaciones Multi-ciclo
Multi ciclo
Permitir un pipe similar al hecho con MIPS
Latencia de las Ufs
Nº de ciclos que hay que esperar para poder utilizar el resultado
Intervalo de inicialización
Nº ciclos que hay que dejar pasar para lanzar dos intrucciones del
mismo tipo
Ejemplo UF Latencia I. Incialización
IALU 0 1
Dmem 1 1
FP add 3 1
FP MUL 6 1
FP DIV 24
EL resultado de IALU se ppuede usar en25el siguiente
g ciclo
Sol: Reducir Lógica Aumenta el nº de etapas II Relojes + rápidos
Aumento de la latencia
71
Operaciones Multi-ciclo
Multi ciclo
Solo puede haber activa una operación
Mayor Latencia => riesgos de LDE y sus paradas
Nuevos registros entre etapas y modificaciones a la conexión
Información de control solo con una etapa
72
Hazards y Forwarding para pipelines de
latencia mayores
Aspectos a considerar
Riesgos estructurales
La división no está totalmente segmentada
Número de escrituras en Registros
Puede ser mayor que 1 en un ciclo
Riesgos
g de Escritura después
p de Escritura
No se alcanza al etapa de WB en orden
Terminación fuera de orden
No Riesgos
N Ri de
d Escritura
E i después
d é de
d lectura
l
La lectura de registros se realiza siempre en ID
Incremento de la latencia
Puede provocar paradas por Riesgos de Lectura después de escritura
RAW / LDE
73
74
Operaciones Multi-ciclo
Multi ciclo
2 soluciones
Registro de desplazamiento + Stall
Realizar la comprobación en ID
Parada de las instrucciones en conflicto después de EXE
Necesidad de Prioridades de Accesso
Lógica de Chequeo
Paso a atrás de memoria
Dejar
j ppasar la de mayor
y latencia
Riesgos WAW
Si el load va un ciclo antes
Useless instruction
75
Implementación
Lógica de Riesgos y lanzamiento para el pipeline FP
Suponemos que se realiza la detección en ID
Mismos conceptos que en MIPS
Forwarding en:
EX/MEM
A4/MEM
M7/MEM
D/MEM
MEM/WB
Necesitamos 3 comprobaciones
p
1. Riesgos estructurales
• Esperar hasta que la UF necesaria esté libre
• Asegurarse
g de que
q el puerto
p de escritura esté libre
2. RAW
• Esperar hasta que los registros fuente estén disponibles
3
3. WAW
• Determinar si alguna instrucción en A1,...,A4, D y M1,.....,M7 tienen el mismo
registro de destino
76
Influencia en las Excepciones
Mantenimiento de las excepciones precisas
DIV.D F0,F2,F4
ADD.D F10,F10,F8
SUB.D F12,F12,F14
No hay dependencias pero DIV acabará + tarde
Terminamos fuera de orden
Problema excepción en medio de DIV
Si ha terminado ADD puede no recuperarse porque F10 se destruye y no
podemos volver atrás
Aproximaciones
Ignorarlos (Problema con la MV)
60’s y 70’s
Dos modos de ejecución (Impreciso y preciso). 1operación de PF cada vez
21064, 21164, Power1, Power2, MIPS R8000
Almacenar Resultados Parciales
Comparadores y MUX
Registros de Historia
Registro de futuro
Permitir algunas condiciones de imprecisión
77
78
Paradas por operaciones en PF
79
80
MIPS R4000 Pipeline
IF: PRIMERA PARTE DEL FETCH
Selección del PC
Inicio del acceso a la cache de Instrucciones
IS: SEGUNDA PARTE DEL FETCH
Finalización del acceso a la Cache de instrucciones
RF: DECODIFICACIÓN Y FETCH DE REGISTROS
Decodificación de la instrucción
Comprobación de Riesgos
Detección de acierto en acceso a la Cache de Instrucciones
EX: EJECUCIÓN
Cálculo de la Dirección efectiva
Operaciones Aritmético Lógica
Evaluación de la condición de salto
Cálculo de la dirección de salto
DF: DATA FETCH PRIMERA PARTE
Primera parte del acceso a la cachéé de datos
DS: DATA FETCH SEGUNDA PARTE
Finalización del acceso a la caché de datos
TC: COMPARACIÓN DE ETIQUETAS
Comprobación
C b ió de
d etiquetas
ti t
Detección de acierto en acceso a la Cache de Datos
WB: ESCRITURA
Escritura de resultados para operaciones de Load y ALU
81
Incremento en la penalización
82
Operaciones en PF
Existen 3 unidades funcionales en PF
División
Di i ió en PF
Multiplicación en PF
Suma en PF
También se utiliza al final de las operaciones de mul y div
Duración desde 2 ciclos a 112
Segmentado en 8 etapas
Combinadas en diferente orden
A: +FP suma de mantisa
D %FP Et
D: Etapa d
de di
división
i ió
E: *FP Chequeo de excepciones
M: *FP Primera etapa de Mul
N: *FP Segunda Etapa de Mul
R: +FP Redondeo
S: +FP Desplazamientp
U: Desempaquetado de números en PF
83
División
ó U A R D28 D+A D+R D+A D+R A R 36 35
N
Negación
ió U S 2 1
Valor absoluto U S 2 1
Comparación FP U A R 3 2
84
Conflictos entre operaciones en PF
MUL, ADD
Oper Lanzar/Parar 0 1 2 3 4 5 6 7 8 9
85
Oper Lanzar/Parar 0 1 2 3 4 5 6 7 8 9
86
Conflictos entre operaciones en PF
Ejercicio DIV, ADD
87
Solución
Oper
p Lanzar/Parar
/ 25 26 27 28 29 30 31 32 33 34 35 36
DIV Lanzar D D D D D D+A D+R D+A D+R A R
Add
dd Lanzar
a a U S+A A+R R+S
88
Ejemplo Rendimiento R4000
89
Bibliografía
Apéndice A de [HePa06]
Standard Performance Evaluation Corporation.
http://www.spec.org
MIPS R4000 Microprocessor User’s Manual
cag.csail.mit.edu/raw/documents/R4400_Uman_book_Ed2.pdf
g _ _ _ p
Simulador WinDLX
http://cs.uns.edu.ar/~jechaiz/arquitectura/windlx/windlx.html
p j q
90