Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Multiple-issue
Speculation
Static Multiple-issue
Organizacion de Computadores
Captulo II: Paralelismo a Nivel de
Instrucciones
Erika Rosas Olivos
erika.rosas@usach.cl
Departamento de Ingeniera Inform
atica
Universidad de Santiago de Chile
Organizaci
on de Computadores
1 / 36
ILP
Multiple-issue
Speculation
Static Multiple-issue
instrucciones.
Replicar componentes internos del computador para lanzar
m
ultiples instrucciones en cada etapa del pipeline.
Organizaci
on de Computadores
2 / 36
ILP
Multiple-issue
Speculation
Static Multiple-issue
Multiple issue
Esquema donde m
ultiples instrucciones son lanzadas en un ciclo de
reloj.
CPI puede ser menor a 1.
M
etrica IPC (Instructions per clock cycle).
Ej. un microprocesador de 4GHz con un multiple issue de 4
reloj.
Organizaci
on de Computadores
3 / 36
ILP
Multiple-issue
Speculation
Static Multiple-issue
Multiple issue
Hay dos formas principales de implementar procesadores de
multiple-issue.
La diferencia principal es la divisi
on de trabajo entre el compilador
y el hardware.
Decisiones est
aticas, hechas por el compilador: Static
Multiple-issue.
Decisiones din
amicas, hechas durante la ejecucion: Dynamic
Multiple-issue.
Organizaci
on de Computadores
4 / 36
ILP
Multiple-issue
Speculation
Static Multiple-issue
Multiple issue
Problemas:
1
Organizaci
on de Computadores
5 / 36
ILP
Multiple-issue
Speculation
Static Multiple-issue
Issue slots
Issue slots se llama a las posiciones desde las cuales las
instrucciones pueden emitirse en un ciclo de reloj dado.
Organizaci
on de Computadores
6 / 36
ILP
Multiple-issue
Speculation
Static Multiple-issue
Especulacion
Tecnica donde el compilador o procesador adivina la salida de una
instruccion para removerla como una dependencia al ejecutar otras
instrucciones.
Especular sobre un branch, para que las instrucciones que le
Organizaci
on de Computadores
7 / 36
ILP
Multiple-issue
Speculation
Static Multiple-issue
Especulacion
La especulaci
on puede fallar.
M
etodo para chequear is la especulaci
on fue correcta.
M
etodo para retractar los efectos de las instrucciones
hardware.
Organizaci
on de Computadores
8 / 36
ILP
Multiple-issue
Speculation
Static Multiple-issue
Especulacion
Compilador: se insertan otras instrucciones para chequear
Organizaci
on de Computadores
9 / 36
ILP
Multiple-issue
Speculation
Static Multiple-issue
VLIW
Un estilo de arquitectura de conjunto de instrucciones que lanza
muchas operaciones que son definidas independientes en una sola instruccion larga, generalmente con muchos campos de opcode
separados.
Organizaci
on de Computadores
10 / 36
ILP
Multiple-issue
Speculation
Static Multiple-issue
Organizaci
on de Computadores
11 / 36
ILP
Multiple-issue
Speculation
Static Multiple-issue
Organizaci
on de Computadores
12 / 36
ILP
Multiple-issue
Organizaci
on de Computadores
Speculation
Static Multiple-issue
13 / 36
ILP
Multiple-issue
Speculation
Static Multiple-issue
Code Scheduling
Loop:
lw
addu
sw
addi
bne
Organizaci
on de Computadores
$t0,
$t0,
$t0,
$s1,
$s1,
0($s1)
$t0, $s2
0($s1)
$s1, -4
$zero, Loop
14 / 36
ILP
Multiple-issue
Speculation
Static Multiple-issue
Code Scheduling
Loop:
lw
addu
sw
addi
bne
$t0,
$t0,
$t0,
$s1,
$s1,
0($s1)
$t0, $s2
0($s1)
$s1, -4
$zero, Loop
Reordenar
Organizaci
on de Computadores
14 / 36
ILP
Multiple-issue
Speculation
Static Multiple-issue
Organizaci
on de Computadores
15 / 36
ILP
Multiple-issue
Speculation
Static Multiple-issue
dependencias de nombre.
Dependencia de nombre o antidependencia: Orden forzado
Organizaci
on de Computadores
16 / 36
ILP
Multiple-issue
Speculation
Static Multiple-issue
Organizaci
on de Computadores
17 / 36
ILP
Multiple-issue
Speculation
Static Multiple-issue
Organizaci
on de Computadores
18 / 36
ILP
Multiple-issue
Speculation
Static Multiple-issue
Organizaci
on de Computadores
19 / 36
ILP
Multiple-issue
Speculation
Static Multiple-issue
Orden instrucciones
Out-of-order execution
Una situacion de la ejecuci
on del pipeline cuando una instruccion
bloqueada no causa la espera de la instrucci
on siguiente.
In-Orden Commit
Un commit donde los resultados de la ejecuci
on en pipeline tiene un
estado visible en el mismo orden que las instrucciones son buscadas.
Organizaci
on de Computadores
20 / 36
ILP
Multiple-issue
Speculation
Static Multiple-issue
Power efficiency
Organizaci
on de Computadores
21 / 36
ILP
Multiple-issue
Speculation
Static Multiple-issue
micro-operaciones.
Rops son ejecutadas en un pipeline planificado din
amicamente
y con especulacion.
Soporta hasta 3 Rops por ciclo de reloj.
Microarchitectura: La organizaci
on del procesador, incluyendo
Organizaci
on de Computadores
22 / 36
ILP
Multiple-issue
Speculation
Static Multiple-issue
Organizaci
on de Computadores
23 / 36
ILP
Multiple-issue
Speculation
Static Multiple-issue
Organizaci
on de Computadores
24 / 36
ILP
Multiple-issue
Speculation
Static Multiple-issue
Organizaci
on de Computadores
25 / 36
ILP
Multiple-issue
Speculation
Static Multiple-issue
Performance
Problemas de rendimiento se dan por:
Uso de instrucciones que no se traduzcan en operaciones
RISC.
Branches que son difciles de predecir llevan a esperas y
Organizaci
on de Computadores
26 / 36
ILP
Multiple-issue
Speculation
Static Multiple-issue
Problema 1
Codigo C:
for i:=1 to 100
Y[i]:=a*X[i]+Y[i];
Organizaci
on de Computadores
;
;
;
;
;
;
;
;
;
load X[i]
multiplicar a*X[i]
load Y[i]
suma aX[i] + Y[i]
store Y[i]
incrementar
ndice X
incrementar
ndice Y
test si termino (R3 := (R1>done))
loop no terminado.
27 / 36
ILP
Multiple-issue
Speculation
Static Multiple-issue
Problema 1
Supuestos:
28 / 36
ILP
Multiple-issue
Speculation
Static Multiple-issue
LD
MULTD
LD
ADDD
SD
ADDI
ADDI
SGTI
BEQZ
IF
ID
IF
EX
ID
IF
M
stall
stall
WB
EX
ID
IF
10
EX
EX
ID
IF
EX
M
stall
stall
EX
WB
stall
stall
EX
WB
stall
stall
EX
ID
IF
11
12
EX
EX
ID
IF
WB
M
EX
ID
IF
13
14
M
EX
ID
IF
WB
M
EX
ID
Organizaci
on de Computadores
29 / 36
ILP
Multiple-issue
Speculation
Static Multiple-issue
Organizaci
on de Computadores
; load X[i]
; multiplicar a*X[i]
; load Y[i]
; sumar aX[i] + Y[i]
; store Y[i]
; load X[i+1]
; multiplicar a*X[i+1]
; load Y[i+1]
; sumar aX[i+1] + Y[i+1]
; store Y[i+1]
; load X[i+2]
; multiplicar a*X[i+2]
; load Y[i+2]
; sumar aX[i+1] + Y[i+1]
; store Y[i+1]
; incrementar
ndice X para las 3 iteraciones
; incrementar
ndice Y para las 3 iteraciones
; test si terminado (R3 := (R1>done))
; loop no terminado.
30 / 36
ILP
Multiple-issue
Speculation
Static Multiple-issue
Organizaci
on de Computadores
31 / 36
ILP
Multiple-issue
Speculation
Static Multiple-issue
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
Organizaci
on de Computadores
32 / 36
ILP
Multiple-issue
Speculation
Static Multiple-issue
Organizaci
on de Computadores
33 / 36
ILP
Multiple-issue
Speculation
Static Multiple-issue
Organizaci
on de Computadores
34 / 36
ILP
Multiple-issue
Speculation
Static Multiple-issue
Int Op 2
Mem Op 1
Mem Op 2
FP Suma
FP Multiplicaci
on
Organizaci
on de Computadores
35 / 36
ILP
Multiple-issue
Speculation
Static Multiple-issue
Int1
Int2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
addi $n
addi $i
Mem1
Mem2
flw $a0
flw $a1
flw $b0
flw $b1
FP Sum
FP Mult
fadd $c0
fadd $c1
fsw $c0
fsw $c1
add $n
addi $i
Organizaci
on de Computadores
bnez (ins2)
fmul $d0
fmul $d1
fsw $d0
fsw $d1
36 / 36