A it t d C t d Arquitectura de Computadores Índice

Anuncio
A
Arquitectura
it t
de
d Computadores
C
t d
Tema 3
S
Segmentación
ió (Pipelining)
( i li i )
1
Índice
Segmentación
Riesgos (Hazards)
Forwarding
Implementación del pipelining
Tratamiento de las interrupciones
Complicaciones del Repertorio de Instrucciones
E
Extensiones
i
para M
Multiciclo
li i l
1.
2.
3.
4.
5
5.
6.
7.
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
3
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



4
Tiempo
p ppor instrucción (p
(pipeline)=Tiempo
p
)
p ppor instrucción/(Nº
( Etapas
p ppipeline)
p
)
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

5
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


3 clases de instrucciones



6
R0 = 0
ALU
Load / Store
Branch and Jump
Fases de la Instrucción
IF
1.
Instruction Fetch: Búsqueda de la Instrucción
•

(PC)Adress Mem(Mem (PC))RI
ID
2.
Intruction Decoding: Decodificación de la Instrucción
•

Lectura de Registros
EX
3.
Execution: Ejecución de la instrucción
•




ALU
Cálculo de la dirección efectiva
Operaciones
p
Regg – Regg
Opereciones Reg – Inmediato
MEM
4.
Memoryy Access: Acceso de Memoria
•
WB
5.
Write Back : Escritura
•

Escritura de resultados
7
CPI
CPI: Ciclos por Instrucción


Branch



Store / Load



2 ciclos
Frecuencia 12 %
4 ciclos
Frecuencia 10%
Resto


5 ciclos
Frecuencia 78 %
CPI = 4.5 = 2*0.12 + 4*0.10 + 5*0.78


8
Ciclos promedio por instrucción
Pipelining
Idea: Comenzar una instrucción en cada ciclo

Nº
Instr
1
2
3
4
5
i
IF
ID
EX
MEM
WB
IF
ID
EX
MEM
WB
IF
ID
EX
MEM
WB
IF
ID
EX
MEM
WB
IF
ID
EX
MEM
i+1
i+2
Ciclo de Reloj
i+3
i+4
6
9

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

10
Información del pipeline
7
8
9
WB
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
Tciclo
CPI
Speed-up
con pipe
1 ns
1.2 ns
4.5
1 (ideal)
4.5/1.2 = 3.75
11
Índice
1.
2.
3.
4.
5
5.
6.
7.
Segmentación
Riesgos (Hazards)
Forwarding
Implementación del pipelining
Tratamiento de las interrupciones
Complicaciones del Repertorio de Instrucciones
E
Extensiones
i
para M
Multiciclo
li i l
12
Riesgos (Hazards)


El mayor problema de la segmentación
3 tipos
i

Estructurales


Datos


Dependencia con instrucciones anteriores
Control


Conflicto de Recursos
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)
Speed  Up 
TPI sin pipe
TPI con pipe

CPI  Tciclo
TPI

TPI p CPI p  Tciclo p
CPI p  CPI ideal  CPPI
CPI ideal  1
CPPI  Ciclos de Parada del Pipe por Instrucción

Suponiendo Equilibrio Completo y sobrecarga nula
Speed  Up 

CPI
1  CPPI
Si CPI = nº de etapas del pipe (segmentos) para todas las instrucciones
Speed  Up 
14
N º Segmentos
1  CPPI
Degradación del Rendimiento
Speed  Up 
T
CPI Tciclo
1


 ciclo
CPI p Tciclo p 1  CPPI Tciclo p
Speed  Up 
1
 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

Ejemplo con memoria única de datos e instrucciones
STOP
Nº
Instr
1
2
3
4
5
i
IF
ID
EX
MEM
WB
IF
ID
EX
MEM
WB
IF
ID
EX
MEM
WB
STOP
STOP
STOP
IF
i+1
i+2
i+3
i+4
16
Ci l de
Ciclo
d Reloj
R l j
6
7
8
9
10
ID
EX
MEM
Riesgos estructurales
Ejemplo Memoria única
i+1
3
Reg
Mem
i+2
4
5
6
Mem
Reg
Reg
Mem
Mem
Reg
Mem
Reg
Mem
Reg
i+3
i+4
7
8
9
10
Reg
Mem
Reg
Mem
Reg
ALU
Mem
2
A
ALU
1
AL
LU
i
Ciclo de Reloj
ALU
Nº
Instr
ALU

Mem
Reg
7
8
9
17
Riesgos estructurales
Ejemplo Memoria única
i+3
3
Reg
Mem
4
5
Mem
Reg
Reg
Mem
Mem
Reg
6
Reg
Mem
Reg
Mem
Reg
Mem
Reg
i+4
18
10
Mem
R
ALU
A
i+2
Mem
2
ALU
A
i+1
1
AL
LU
i
Ciclo de Reloj
ALU
Nº
Instr
ALU

M
CC2
CC3
CC4
CC5
DADD R1,R2, R3 Mem
Reg
Mem
Reg
DSUB R4,R1, R5
Mem
Reg
ALU
U
Mem
Reg
AL
LU
Mem
Reg
g
OR R8,R1, R9
Mem
CC7
CC8
CC9
CC10
Re
g
Mem
Reg
ALU
A
, , R7
AND R6,R1,
CC6
XOR R10,R1, R11
Mem
Mem
Reg
g
Re
g
ALU
CC1
ALU
Hazards de datos
Mem
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º
Instr
1
2
3
4
5
i
IF
ID
EX
MEM
WB
IF
ID
EX
MEM
WB
IF
IF
ID
IF
BRANCH
i+2
i+3
i+4
20
Ci l de
Ciclo
d Reloj
R l j
6
7
8
9
EX
MEM
WB
ID
EX
MEM
WB
IF
ID
EX
MEM
10
WB
Reg
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

2.
Simple a nivel HW y SW
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
ALL NOT TAKEN
Nº Instr
Salto no Tomado ( i )
Ciclo de Reloj
1
2
3
4
IF
ID
EX
MEM
WB
IF
ID
EX
MEM
WB
IF
ID
EX
MEM
WB
IF
i+1
i 2
i+2
i+3
6
7
8
9
ID
EX
MEM
WB
i+4
IF
ID
EX
MEM
WB
Nº Instr
Ciclo de Reloj
6
7
8
9
Salto Tomado ( i )
i+1
Branch Target
Branch Target + 1
Branch Target + 2
22
5
1
2
3
4
IF
ID
EX
IF
IDLE
ID
IDLE
EX
IF
MEM
5
WB
IDLE
MEM
IDLE
WB
ID
EX
MEM
WB
IF
ID
EX
MEM
WB
IF
ID
EX
MEM
WB
Reducción de las penalizaciones por salto
3.
ALL TAKEN


4
4.
Tratar todos los saltos como tomados
No tiene sentido para este pipeline
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
Salto no Tomado ( i )
Ciclo de Reloj
1
2
3
4
IF
ID
EX
MEM
WB
IF
ID
EX
MEM
WB
IF
ID
EX
MEM
WB
IF
Branch Delay (i+1)
i 2
i+2
i+3
6
7
8
9
ID
EX
MEM
WB
i+4
IF
ID
EX
MEM
WB
Nº Instr
Ciclo de Reloj
6
7
8
9
Salto Tomado ( i )
Branch Delay (i+1)
Branch Target
Branch Target + 1
Branch Target + 2
24
5
1
2
3
4
5
IF
ID
EX
MEM
WB
IF
ID
EX
MEM
WB
IF
ID
EX
MEM
WB
IF
ID
EX
MEM
WB
IF
ID
EX
MEM
WB
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
Speed  Up pipeline

l

Nº Etapas
1  Ciclos de parada por saltos
Nº Etapas
p
1  frecsaltos  Penalsaltos
25
Índice
1.
2.
3.
4.
5
5.
6.
7.
Segmentación
Riesgos (Hazards)
Forwarding
Implementación del pipelining
Tratamiento de las interrupciones
Complicaciones del Repertorio de Instrucciones
E
Extensiones
i
para M
Multiciclo
li i l
26
Forwarding
El resultado estás disponible después de EXE
CC
2
CC
3
Mem
Reg
DSUB R4,R1, R5
Mem
AND R6,R1,
R6 R1 R7
Reg
Mem
CC
4
CC
5
Mem
Re
g
Mem
Reg
Mem
Reg
CC
6
CC
7
CC
8
CC
9
CC10
Aquí se necesita
Re
g
Mem
ALU
OR R8,R1, R9
XOR R10,R1, R11
Re
g
Mem
Reg
Mem
ALU
DADD R1,R2, R3
CC
1
Aquí se produce
ALU
U

Podemos adelantar el resultado
Bypassing o cortocircuito
ALU

ALU

Reg
Mem
Reg
27
CC1
CC2
CC3
CC4
CC5
DADD R1,R2, R3 Mem
Reg
ALU
Mem
Reg
DSUB R4,R1, R5
Mem
Reg
ALU
U
Mem
Reg
AL
LU
Mem
Reg
g
ALU
A
Mem
Mem
Re
g
ALU
Forwarding
, , R7
AND R6,R1,
OR R8,R1, R9
XOR R10,R1, R11
28
Mem
CC6
CC7
CC8
CC9
Re
g
Mem
Reg
Reg
g
Mem
Reg
CC10
CC1
CC2
CC3
CC4
CC5
DADD R1,R2,
, , R3 Mem
Reg
g
A
ALU
Mem
Reg
g
LD R4,0(R1)
Mem
Reg
ALU
Forwarding
Mem
Reg
Mem
Re
g
ALU
SD R4, 12 (R1)
CC6
Mem
Reg
29
OR R8,R1, R9
30
CC4
CC5
Mem
Reg
Mem
Reg
Mem
Reg
Mem
Reg
Mem
Mem
Reg
ALU
AND R6,R1, R7
CC3
ALU
DSUB R4,R1, R5
CC2
ALU
LD R1,0(R2)
, ( )
CC1
A
ALU
Algunos Riesgos no se solucionan
Mem
CC6
Re
g
Reg
Mem
Reg
Índice
1.
2.
3.
4.
Segmentación
Riesgos (Hazards)
Forwarding
Implementación del pipelining
1.
2.
3.
4
4.
5.
6
6.
7.
Modificaciones al cauce no segmentado
Implementación del control
Implementación del forwarding
Dificultades
Tratamiento de las interrupciones
Complicaciones del Repertorio de Instrucciones
Extensiones para Multiciclo
31
Implementación del Pipelining

Se parte de la implementación del MIPS

32
Registros entre etapas
Implementación del Pipelining
33
Eventos en cada etapa del pipe
34
Implementación del control

Detección y resolución de riesgos

Comparación de registros
35
Implementación del control

Detección y resolución de riesgos

36
Comparación de registros
Implementación

Detección de las paradas por Load en ID

Requiere 3 comparaciones
31
p R:
Tipo
Tipo I:
31
Tipo J:
6 bits
26
op
con memoria
salto condicional
salto incondicional
26
op
aritmético-lógicas
31
6 bits
26
op
6 bits
21
rs
5 bits
21
rs
5 bits
16
rt
5 bits
16
11
rd
5 bits
6
shamt
5 bits
0
funct
6 bits
0
inmediato
rt
5 bits
16 bits
0
dirección
26 bits
37
Implementación del Forwarding
38
Implementación del Forwarding
39
Diseño del control

Ejecución de instrucciones: diagrama RT
IR <- Mem[PC]; PC <– PC+4;
A <- R[rs]; B<– R[rt]
Tipo R
S <– A funct B;
R[rd] <– S;
Lw
S <– A + SigExt( Inme);
M <– Mem[S]
[ ]
R[rd] <– M;
Sw
Beq
S <– A + SigExt( Inme);
Mem[S]
[ ] <- B
•
If Cond
PC <
<– PCSalto
Recordatorio




40
Evaluar
E
l
Cond
C d
PCSalto <– PC+SX
rs = Ins[25-21]
I [25 21]
rt = Ins[20-16]
rd = Ins[15-11]
Inme = Ins[15-0]
Ins[15 0]
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
lw
Ifetch
Reg/Dec
Ejecu
Mem
Escri
lw
Ifetch
Reg/Dec
Ejecu
Mem
Escri
 Tipo-R.
p
Tiene 4 fases y no usa la memoria de datos
Ciclo 1 Ciclo2
Ciclo 3 Ciclo4
Clock
Tipo-R
Ifetch
 Conflicto
Reg/Dec
Ciclo 1
Ciclo2
Ifetch
Ejecu
Escri
Ciclo 3
Ciclo4
Ciclo5
Reg/Dec
Ejecu
Mem
Escri
Ifetch
Reg/Dec
Ejecu
Escri
Clock
lw
Tipo-R
Solo una puerta en
el bloque de registros
41
Diseño del control


Importante. ¿ como evitarlo ?

Cada etapa
p del pprocesador ppuede usarse en cada ciclo ppor una sola instrucción.

Cada instrucción debe usar cada etapa del procesador en la misma fase de ejecución.
Solución.
I t d i una etapa
Introducir
t
(Mem)
(M ) que no hace
h
nada.
d

Ciclo 1
Ciclo2
Ciclo 3
Ciclo4
Ifetch
Ciclo5
Reg/Dec
Ejecu
Mem
Escri
Ifetch
Reg/Dec
Ejecu
Mem
Ciclo6
Clock
lw
Tipo-R
Escri
• Store 4 etapas con actividad. Branch cuatro etapas activas
Ciclo 1
Ciclo2
Ifetch
Reg/Dec
Ciclo 3
Ciclo4
Ciclo5
Ejecu
Mem
Escri
Sw
Beq
Clock
Sw, Beq
42
Diseño del control
Ejecución de instrucciones: Diagrama RT modificado

IR <- Mem[PC]; PC <– PC+4;
A <- R[rs]; B<– R[rt]
Tipo R
Lw
Sw
S <– A + SigExt( Inme);
S <– A funct B;
M <– S
M <– Mem[S]
R[rd] <– M;
R[rd] <– M;
Beq
Evaluar Cond
PCSalto <– PC+SX
S <– A + SigExt( Inme);
If Cond
PC <– PCSalto
Mem[S] <- B
43
Ruta de
d d
datos d
dell DLX con llas ordenes
d
d
de controll necesarias
i
MU
UX
0
PcSrc
ID/EX
Reg Write
EX/MEM
Branch
MemWrite
Zero
AluScr
0
busW
ADDR
ALUctr
1
DR
Ins. [20-16]
Ins. [15-11]
Control
C
ALU
Ins. [15-0]
6
MUX
El Pc y los diferentes
registros
g
de desacoplo
p
(IF/ID ..) se deben cargar
en cada ciclo, por tanto no
necesitan orden especifica
Ex
xtensión
de
e signo
DW
3
MemRead
ALUop
Reg Dst
44
0
MUX
busB
Me
emoria
datos
d
RW
MUX
M
DR
MentoReg
busA
ALU
RB
Banco d
de
registros
s
Memoria
es
instruccione
PC
RA
ADDR
MEM/WB
<<2
Sum
mador
+4
IF/ID
Sumador
S
1
1
Señales de control
RegWrite
MemtoRe
eg
000000 (tipo-R)
Branch
100000 (add)
100010 ((sub)
b)
100100 (and)
100101 (or)
101010 (slt)
op
MemWrite
e
XXXXXX
ALUctr
010
010
110
010
110
000
001
111
MemRead
d
ALUop
00
00
01
10
10
10
10
10
ALUop
funct
ALUSrc
op
100011 (lw)
(l )
101011 (sw)
000100 (beq)
RegDst
Control principal
Control de la ALU
100011 (lw)
(l )
101011 (sw)
000100 (beq)
000000 (tipo-R)
0
X
X
1
1
1
0
0
00
00
01
10
1
0
0
0
0
1
0
0
0
0
1
0
1
0
0
1
0
X
X
1
Control
princ
cipal
WB
EX
M
WB
WB Escrribe
Reg
M
MEM: Ac
cceso a
Memoria
WB
instrucción
EX: Ejecución/
e Dir
Calculo de
El control de la alu se determina por ALUop que depende del tipo de
Instrucción y el campo de función en las instrucciones de tipo-R
Control segmentado
estacionario en los datos
IF/ID
ID/EX
MEM/WB
EX/MEM
45
Ruta de datos del DLX con las ordenes de
control y control estacionario en los datos
Control
principal
MEM/WB
<<2
Reg Write
Sumado
or
Branch
MemWrite
Zero
RW
AluScr
busB
0
busW
ADDR
MUX
M
DR
busA
ALU
RB
Banco de
e
registros
s
ADDR
Memoria
instruccione
es
PC
RA
DR
Me
emoria
datos
d
Sum
mador
IF/ID
EX/MEM
1
Ins. [20-16]
Ins. [15-11]
Control
C
ALU
6
ALUop
MUX
Ins. [15-0]
Ex
xtensión
de
e signo
DW
Reg Dst
46
MentoReg
+4
PcSrc
ID/EX
1
MemRead
0
MUX
MU
UX
0
1
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
Diseño del control con riesgos
Riesgos de datos

R( i )  D( i+? )  
LDE (RAW).
C
Cortocircuito.
i i Enviar
E i ell dato
d
a llas etapas que llo necesitan,
i
cuanto esta listo
li

Tiempo(ciclos)
r4, r1 ,r3
i+2
and
r6, r1 ,r7
i+3
Lw
r1 ,0 (r2)
i+4
sub
r4, r1 ,r3
Dm
Im
Reg
Im
Reg
Im
Reg
Reg
Dm
Im
Reg
Dm
Reg
Dm
Reg
ALU
sub
Reg
ALU
U
i+1
Im
ALU
r1 ,r2,r3
ALU
U
add
ALU
i
Reg
Dm
Dos caminos de datos: Desde salida ALU (EX/MEM) a entrada ALU
Desde la salida de la memoria (MEM/WB) a entrada ALU
Información necesaria: Registro a escribir en ultima etapa ( Rd en Tipo-R y Rt en Lw)
Registros que se leen en segunda etapa ( Rs y Rt )
48
Reg
Diseñando el control con riesgos LDE:
Implementación del cortocircuito
 Cortocircuitos de datos
nformac ón de control del cortoc
cortocircuito
rcu to
 Información
ID/EX
EX/MEM
M
EX: Ejecución/
Calculo de Dir
RB
RW
busW
Ex.IR[15:0]
B
busB
WB
Corto A
1
ADDR
DR
0
1
DW
Corto B
Rd
MEM/WB Rd
EX/MEM Rd
MU
UX
Rt
Unidad
Cortocircuito
49
Diseño del control con riesgos
Riesgos de datos LDE: Caso del load
Tiempo(ciclos)
sub
r4 r1 r3
r4,r1,r3
Im
Reg
Im
Dm
Reg
g
AL
LU
r1,0(r2)
ALU
lw
Reg
Dm
Reg
g
• Se debe esperar un ciclo a pesar del cortocircuito
Tiempo(ciclos)
r1,0(r2)
sub
r4,r1,r3
Im
Reg
Im
Reg
Dm
Burbuja
Reg
ALU
lw
ALU
50
0
Rs
Rt

WB Escribe
Reg
AluScr
MUX
UX
Banco de
reg
gistros
busA
MEM: Acceso a
Memoria
MUX
A
M
ALU
RA
MUX
UX
EX
ID: Decodificación/
Lectura de Reg
MEM/WB
WB
MUX
Instrucción
Me
emoria
datos
d
Co
ontrol
WB
Indica si se escribe Reg
Dm
Reg
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:
LW
LW
ADD
SW
LW
LW
SUB
SW
a := b + c
d := e - f
Despues:
Rb,b
Rc,c
Ra,Rb,Rc
a,Ra
Re,e
Rf f
Rf,f
Rd,Re,Rf
d,Rd
sin planificar
LW
LW
LW
ADD
LW
SW
SUB
SW
planificado
Rb,b
Rc,c
Re,e
Ra,Rb,Rc
Rf f
Rf,f
a,Ra
Rd,Re,Rf
d,Rd
25
tex
65
14
spice
42
23
gcc
54
0
20
40
60
80
51
Solución HW: Detección de riesgos y parada del
procesador un
n ciclo
Detector de riesgos
Debe actuar en ID impidiendo la carga y lectura de una nueva instrucción
Condiciones : Que la instrucción en EX sea un load
Detector
de riesgos
Registros fuentes de la instrucción siguiente Rs y Rt
Registro destino del load Rt
ID/EX
WB
busW
AluScr
1
MUX
RW
bus
A
busB
0
Rs
Rt
Rt
Rd
MU
UX
RB
Banco
o de
registros
RA
MUX
ID: Decodificación/
Lectura de Reg
M
Unidad
Cortocircuito
52
MEM/WB
MEM: Acceso a
Memoria
ADDR
Mem
moria
dattos
EX: Ejecución/
Calculo de Dir
DW
DR
WB
WB Escribe
Reg
0
MUX
M
ALU
0
EX/MEM
MU
UX
Instrucción
MUX
Control
WB
E
X
Memoria de instrucciones
PC
No cargar
No cargar
Rt
1
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 )
r1, loop
Reg
Im
Reg
ALU
Beq
Im
ALU
Add
r1,r2,r3
Genera la condición
Burbuja
Burbuja
Parada
Mem
Mem
Reg
Burbuja
Burbuja
Reg
Im
Burbuja
ALU
Solo se espera un ciclo para la
instrucción que sigue al salto
(Branch delay slot)
Reg
Mem
Reg
53
Diseño del control con riesgos
Mejora del comportamiento de los saltos. Solo un ciclo de parada

Calculo de la dirección. Operandos disponibles ( Pc y desplazamiento)
Calculo de la condición. Unidad de detección de cero
IF:Busqueda de instrucción
ID: Decodificación/
Lectura de Reg
EX: Ejecución/
Calculo de Dir
MEM: Acceso a
Memoria
WB Escribe
Reg
MUX
0
Sumador
MEM/WB
Zero
busW
0
ADDR
Extensión
de signo
D
W
Memoria
datos
busB
ALU
RW
bus
A
MUX
DR
Banco d
de
registro
os
RB
1
54
EX/MEM
<<2
ID/EX
RA
ADDR
Memoria
instruccione
es
+4
IF/ID
Sumado
or
Mover bloque HW
1
D
R
0
MUX

PC

1
Reducción de las paradas por Riesgos de
control

Mover el cálculo de la condición de salto a la etapa
anterior
55
Reducción de las paradas por Riesgos de
control

Mover el cálculo de la condición de salto a la etapa
anterior
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.
2.
3.
4.
5
5.
6.
7.
Segmentación
Riesgos (Hazards)
Forwarding
Implementación del pipelining
Tratamiento de las interrupciones
Complicaciones del Repertorio de Instrucciones
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 d
definidas
fi id
Problema de Hardware
Problema de p
potencia
59
Caracterización de las Excepciones

Por su solicitud



Quién las solicita



Solicitadas por el usuario
Forzadas
Por su prioridad


Síncronas
Asíncronas
Enmascarables o no
Cuando se producen
p


60
Dentro o fuera de la ejecución de una instrucción
Al final o dentro de un programa
Clasificación
Tipo
de Excepción
Síncronas
o
Asíncronas
Usuario
o
Forzada
Enmascarable?
Dentro
o
entre
Instrucciones
Reinicio
o
Finalización
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
Overflows INT
Síncronas
Forzada
Sí
Dentro
Reinicio
PF
Síncronas
Forzada
Sí
Dentro
Reinicio
Fallo de página
Síncronas
Forzada
No
Dentro
Reinicio
Desalinamiento
Síncronas
Forzada
Sí
Dentro
Reinicio
Protección Mem.
Síncronas
Forzada
No
Dentro
Reinicio
I. no definidas
Síncronas
Forzada
No
Dentro
Finalización
Problema de Hw
Asíncronas
Forzada
No
Dentro
Finalización
Problema Pot.
Asíncronas
Forzada
No
Dentro
Finalización
61
Parada y reinicio de la ejecución

Las excepciones más difíciles ocurren dentro de las instrucciones (fases EX
o MEM)


Deben ser reiniciables
Ejemplo:
j p

Fallo de página virtual

Debe ser reiniciable

Requiere la intervención de otro proceso (SO)

Salvar el PC



Branch: reevaluación de la condición
No Branch: Normal
Que puede hacer el control del pipe



62
Hacer IF trap a la instrucción
Apagar escrituras para la instrucción que provoca la excepción y las siguientes
Salvar el PC
Utilización de saltos retardados

No se puede recrear el estado del procesador con un único
PC



Excepciones precisas




Las instrucciones en el pipe pueden no estar relacionadas
secuencialmente
Podemos necesitar tantos PC´s como longitud del salto +1
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


64
Fácil en Integer
Difícil en FP
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
MEM
Fallo de Página en Datos,
Datos desaliniamiento,
desaliniamiento
violación de protección
WB
Ninguna
65
Índice
1.
2.
3.
4.
5
5.
6.
7.
Segmentación
Riesgos (Hazards)
Forwarding
Implementación del pipelining
Tratamiento de las interrupciones
Complicaciones del Repertorio de Instrucciones
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 d
durante 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
Complicaciones del Repertorio de
Instrucciones

Códigos de condición incluídos en la instrucción



Dificultades de planificación de retardos del pipeline
Decidir cuando es fija la condción de salto
Operaciones Multi-ciclo
MOVL R1, R2 ;
ADDL3 42(R1),56(R1)
42(R1),56(R1)+,@(R1);
,@(R1);
SUBL2 R2,R3 ;
MOVC3 @R1[R2],74(R2), R3;

68
Movimiento entre registros
Suma posiciones de memoria
Resta entre registros
Mover un carácter
Solución : Hacer pipelining a nivel de microinstrucción
Índice
1.
2.
3.
4.
5
5.
6.
7.
Segmentación
Riesgos (Hazards)
Forwarding
Implementación del pipelining
Tratamiento de las interrupciones
Complicaciones del Repertorio de Instrucciones
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
Ejemplo
l con 4 unidades
d d funcionales
f
l




70
Enteros: ALU, Branches, LD y Store
Multiplicación: Entera y FP
Sumador FP
División: Entera y PF
Operaciones Multi-ciclo
Multi ciclo


Permitir un pipe similar al hecho con MIPS
Latencia de las Ufs


Intervalo de inicialización


Nº de ciclos que hay que esperar para poder utilizar el resultado
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




72
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
Hazards y Forwarding para pipelines de
latencia mayores

Aspectos a considerar

Riesgos estructurales


Número de escrituras en Registros


No se alcanza al etapa de WB en orden
Terminación fuera de orden



Puede ser mayor que 1 en un ciclo
Riesgos
g de Escritura después
p
de Escritura


La división no está totalmente segmentada
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
RAW y Escrituras simultaneas
74
Operaciones Multi-ciclo
Multi ciclo

2 soluciones
Registro de desplazamiento + Stall


Parada de las instrucciones en conflicto después de EXE






Realizar la comprobación en ID
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
Riesgos estructurales
1.
•
•
Esperar hasta que la UF necesaria esté libre
Asegurarse
g
de que
q el puerto
p
de escritura esté libre
RAW
2.
•
Esperar hasta que los registros fuente estén disponibles
WAW
3
3.
•
76
Determinar si alguna instrucción en A1,...,A4, D y M1,.....,M7 tienen el mismo
registro de destino
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)

Dos modos de ejecución (Impreciso y preciso). 1operación de PF cada vez

Almacenar Resultados Parciales






60’s y 70’s
21064, 21164, Power1, Power2, MIPS R8000
Comparadores y MUX
Registros de Historia
Registro de futuro
Permitir algunas condiciones de imprecisión
77
Influencia en las Excepciones

Ejemplo
IInstrucción
ió 11;
Causa la interrupción
Instrucción 2;
No completada
.................. No completada
Instrucción n-1;
No completada
Instrucción n;
Completada

Se almacena el PC para I2 a In-1 y luego se continúa con In


Variación ejecutar
j
solo las instrucciones en PF qque haya
y entre I2 e
In-1
Técnicas Híbridas


78
Permitir
P
iti ell lanzamiento
l
i t para continuar
ti
Solo en caso de que se hayan terminado las anteriores sin
excepciones
Paradas por operaciones en PF
79
Ejemplo: MIPS R4000 Pipeline

8 etapas



Incremento en el Forwardingg
Incremento de retardos por load y branch
MI está activa en la etapa RF para comprobación de etiquetas








80
IF: PRIMERA PARTE DEL FETCH
IS: SEGUNDA PARTE DEL FETCH
RF: DECODIFICACIÓN
Ó Y FETCH DE REGISTROS
EX: EJECUCIÓN
DF: DATA FETCH PRIMERA PARTE
DS: DATA FETCH SEGUNDA PARTE
TC: COMPARACIÓN DE ETIQUETAS
WB: ESCRITURA
MIPS R4000 Pipeline

IF: PRIMERA PARTE DEL FETCH



IS: SEGUNDA PARTE DEL FETCH







Finalización del acceso a la caché de datos
TC: COMPARACIÓN DE ETIQUETAS



Primera parte del acceso a la cachéé de datos
DS: DATA FETCH SEGUNDA PARTE


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


Decodificación de la instrucción
Comprobación de Riesgos
Detección de acierto en acceso a la Cache de Instrucciones
EX: EJECUCIÓN


Finalización del acceso a la Cache de instrucciones
RF: DECODIFICACIÓN Y FETCH DE REGISTROS


Selección del PC
Inicio del acceso a la cache de Instrucciones
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
Latencias e Intervalos de Inicialización
Instrucción
Fases que utiliza
Lat II
Suma y Resta
U
S+A
A+R
R+S
Multiplicación
U
E+M
M
M
M
N
N+A
R
División
ó
U
A
R
D28
D+A
D+R
D+A
D+R
Raíz cuadrada
U
E
(A+R)
A
R
N
Negación
ió
U
Valor absoluto
Comparación FP
84
4
3
8
4
36
35
112
111
S
2
1
U
S
2
1
U
A
3
2
108
R
A
R
Conflictos entre operaciones en PF

MUL, ADD
Oper Lanzar/Parar
0
1
2
3
4
5
6
7
Mul
Lanzar
U
E+M
M
M
M
N
N+A
R
Add
Lanzar
U
S+A
A+R
R+S
U
S+A
A+R
R+S
U
S+A
A+R
R+S
U
S+A
A+R
R+S
U
S+A
A+R
R+S
U
S+A
A+R
Lanzar
Parar
Parar
Lanzar
Lanzar
8
9
R+S
85
Conflictos entre operaciones en PF

ADD , MUL
Oper Lanzar/Parar
0
1
2
3
Add
Lanzar
U
S+A
A+R
R+S
Mul
Lanzar
U
E+M
U
Lanzar
86
4
5
6
7
8
M
M
M
N
N+A
R
E+M
M
M
M
N
N+A
9
R
Conflictos entre operaciones en PF

Ejercicio DIV, ADD
87
Solución
Oper
p
Lanzar/Parar
/
25
DIV
Lanzar
Add
dd
Lanzar
a a
Lanzar
Parar
Parar
Parar
Parar
Parar
Lanzar
88
D
26
27
28
29
30
31
32
33
34
35
D
D
D
D
D+A
D+R
D+A
D+R
A
R
U
S+A
A+R
R+S
U
S+A
A+R
R+S
U
S+A
A+R
R+S
U
S+A
A+R
R+S
U
S+A
A+R
R+S
U
S+A
A+R
R+S
U
S+A
A+R
R+S
U
S+A
A+R
36
R+S
Ejemplo Rendimiento R4000
89
Bibliografía


Apéndice A de [HePa06]
Standard Performance Evaluation Corporation.


MIPS R4000 Microprocessor User’s Manual


http://www.spec.org
cag.csail.mit.edu/raw/documents/R4400_Uman_book_Ed2.pdf
g
_
_
_
p
Simulador WinDLX

90
http://cs.uns.edu.ar/~jechaiz/arquitectura/windlx/windlx.html
p
j
q
Descargar