1 Gestión eficiente de la LSQ basada en mecanismos de filtrado Fernando Castro ArTeCS Group.
-
Upload
eutropio-mestas -
Category
Documents
-
view
214 -
download
0
Transcript of 1 Gestión eficiente de la LSQ basada en mecanismos de filtrado Fernando Castro ArTeCS Group.
1
Gestión eficiente de la LSQ basada en
mecanismos de filtrado
Fernando CastroFernando Castro
ArTeCS GroupArTeCS Group
2
Motivación Introducción Diseño propuesto Entorno experimental Resultados Conclusiones y trabajo futuro
Índice
3
Creciente brecha entre la velocidad de procesamiento y el acceso a memoria
Técnicas que permiten la ejecución adelantada de los loads (preservando la semántica del programa)
Problema de escalabilidad de la LSQ Arquitecturas cada vez más agresivas Mayor latencia y consumo de energía
Motivación
4
Motivación Introducción Diseño propuesto Entorno experimental Resultados Conclusiones y trabajo futuro
5
Incremento de rendimiento Load bypassing Load forwarding
Un paso más allá: Especulación Procesador: Detectar, squash y reejecutar loads
prematuros
Las implementaciones convencionales utilizan la LSQ
Introducción I
6
LSQ: Realiza dinámicamente la desambiguación de memoria
Los requerimientos en el ordenamiento de memoria son tres: Chequear si es posible realizar forwarding:
store R5, 1000(R2) . .
load R8, 1000(R2)
Introducción II
7
Chequear si se precisa una acción correctora:
store R5, 1000(R2) . .
load R8, 1000(R2)
Loads y stores: deben alcanzar el sistema de memoria en el orden especificado por el modelo de consistencia de memoria
Introducción III
8
Lógica AsociativaLógica Asociativa
Introducción IV
LQ
AddrDataSquash?
SQ
AddrDataForwarding?
9
Motivación Introducción Diseño propuesto Entorno experimental Resultados Conclusiones y trabajo futuro
10
Idea fundamental Reducir el número de búsquedas asociativas Reducir el consumo de energía por acceso
Fundamento Las dependencias de memoria son bastante
infrecuentes (12% de los loads forwarding)
74% de las instrucciones de memoria son loads El comportamiento de los loads está fuertemente
sesgado
Diseño propuesto I
11
Estructura global Loads que sólo ocasionalmente se comunican
con stores in-flight tratamiento usando una cola especial
La LQ convencional es dividida : Associative Load Queue (ALQ) Banked Non-Associative Load Queue (BNLQ)
Necesitamos mecanismos adicionales para garantizar la corrección semántica de los programas Exclusive Bloom Filter (EBF)
Diseño propuesto II
12
Diseño propuesto III
ALQ
SQ
AddrData
AddrData
BNLQ
AddrData
EBF
Hash
Hash
Squash ?
Forwarding ? Squash ?
+1
Predictor
Load
13
Loads en la BNLQ Issue: Se incrementa el contador correspondiente en
el EBF Commit: Se decrementa el contador correspondiente
en el EBF
Todos los stores Chequean el correspondiente contador del EBF Valor mayor que cero squash
Deshacer modificaciones en el EBF bajo saltos mal predichos o reejecución de instrucciones
Diseño propuesto IV
14
Actualización del EBF bajo caminos incorrectos Los loads lanzados en caminos erróneos deben
decrementar el contador del EBF
Diseño propuesto V
BNLQ
EBF
-1
-1
-1
Hash
Data Add
Loads in wrong path
Data EA
-1
-1
EBF
-1
index
BNLQ
Loads in wrong path
15
1 2
Diseño propuesto VI
EBFs alternos
tail
head
ROB
limit
EBF1 EBF2
loadsstores
Chk
Inc
tail =
head
ROB
limit
EBF1 EBF2
loadsstores
Inc
Chk
16
3
EBFs alternos
Diseño propuesto VII
head =
tail
ROB
limit
EBF1 EBF2
loads
00000000000
stores
Chk
Inc
17
Predicción de dependencias de los loads
Predictor basado en profiling Predictor dinámico
Diseño propuesto VIII
18
Predictor basado en profiling La predicción de dependencia de los loads está
ligada a las instrucciones estáticas 82% todas sus instancias son independientes 10% todas sus instancias son dependientes 8% resto de loads
Nuestra clasificación está basada en un umbral :Durante la ejecución de entrenamiento:
100 es el número total de instancias de un cierto load estático Umbral de 0.2 (20%) Si el load indexa la misma entrada del EBF que algún store in-
flight para más de 20 instancias se predice como dependiente
Diseño propuesto IX
19
Predictor de dependencias dinámico Tabla dedicada indexada por PC Todos los loads son considerados inicialmente
como independientes Store encuentra acierto en el EBF
Identificar los loads que colisionan con el store Modo DPU
Predicción cambia a dependiente : Mantener durante el resto de la ejecución Refrescar periódicamente
Diseño propuesto X
20
Modo DPU (Dependence Predictor Update)
SAVED INFO
EBF_counter = 2EBF_index = 2005
DPU mode actived
Entry 2005
Store X
Load Y
Load X
Hash
EBF
2
Diseño propuesto XI
21
SAVED INFO
EBF_counter = 2EBF_index = 2005
DPU mode actived
Comitted
Load
Load_EA Hash =
Saved
EBF_counter
Saved
EBF_index
Load_PC
Prediction
Table
Diseño propuesto XII
DPU mode?
22
SAVED INFO
EBF_counter = 2EBF_index = 2005
DPU mode actived
Comitted
Load
Load_EA Hash =
DPU mode?
2
2005
Load_PC
Prediction
Table
Diseño propuesto XII
YES
INDEP
INDEP
23
SAVED INFO
EBF_counter = 2EBF_index = 2005
DPU mode actived
Comitted
Load
Load_EA Hash =
1
2005
Load_PC
Prediction
Table
Diseño propuesto XII
DPU mode?
YES
DEP
INDEP
24
SAVED INFO
EBF_counter = 2EBF_index = 2005
DPU mode actived
Comitted
Load
Load_EA Hash =
0
2005
Load_PC
Prediction
Table
Diseño propuesto XII
DPU mode?
NO
DEP
DEP
25
Diseño propuesto XIII
Predictor dinámico vs predictor basado en profiling PVP : probabilidad predicción correcta sobre load dependiente PVN : probabilidad predicción incorrecta sobre load independiente
Mejores resultados para el predictor basado en profiling Exploración de umbral
0
0,5
1
1,5
2
2,5
15 20 25 30 35 40PVP (%)
PV
N (
%)
profile-based
dynamic without refreshing
dynamic with refreshing
26
Exploración de umbral Algoritmo para hallar el umbral óptimo
Comenzamos desde el valor más pequeño y gradualmente lo incrementamos
Finalizamos cuando la razón entre ahorro de energía en el procesador y la degradación de IPC empieza a reducirse
Diseño propuesto XIV
1,5
2,5
3,5
4,5
0 1 2 3 4Slowdown (%)
Ene
rgy
Sav
ings
(%
)
gzipgapapsisixtrack
0.01
0.06
0.02
0.07
0
1
2
3
-6 -5 -4 -3 -2 -1 0Slowdown (%)
Ene
rgy
Sav
ings
(%
)
0.01
0.06 0.5
0
27
Tratamiento de falsos positivos en el EBF Existencia de falsos positivos
(A) Tratar falsas dependencias como dependencias verdaderas
+ Simplifica el diseño - Squashes innecesarios - Se incrementa la presión en la ALQ
(B) Recorrer la BNLQ bajo hit en el EBF e ignorar los falsos positivos
+ Reducido número de squashes + Disminuye la presión en la ALQ - Mayor retardo en iniciar el squash
Diseño propuesto XV
28
Motivación Introducción Diseño propuesto Entorno experimental Resultados Conclusiones y trabajo futuro
29
Parámetros de la LSQ y Simulación
LQ-SQ Baseline LQ: 80 entries SQ: 48 entries Proposed LQ-SQ BNLQ-ALQ: 32-48, 40-40, 48-32, 56-24 SQ: 48 entries EBF: 4K entries (4-bits per entry)
SimpleScalar + Wattch
Ref inputs
Single Sim-point regions (100M instructions)
Entorno experimental
30
Motivación Introducción Diseño propuesto Entorno experimental Resultados Conclusiones y trabajo futuro
31
Resultados experimentales IBasado en profiling
Dinámico
% Slowdown
% LQ-SQ Eng. Savings % Processor Eng. Savings
ALQ=48 ALQ=40 ALQ=32 ALQ=24
35-52% ahorro de energía en la LSQ 2-4% ahorro de energía en el procesador Pérdida de rendimiento reducida (<1% en promedio)
0
1
2
3
4
A B
30
35
40
45
50
55
A B
1,5
2
2,5
3
3,5
4
A B
0
0,5
1
1,5
2
2,5
A B30
35
40
45
50
55
A B
2
2,5
3
3,5
4
4,5
A B
32
Resultados experimentales II
Escalado de la BNLQ (ALQ=32)
-8
-6
-4
-2
0
2
Slo
wd
ow
n (
%)
BNLQ=48 BNLQ=60 BNLQ=100
0102030405060
BNLQ=48 BNLQ=60 BNLQ=100
LQ
-SQ
En
g. S
av. (
%)
0
2
4
6
8
BNLQ=48 BNLQ=60 BNLQ=100
Pro
c. E
n. S
av. (
%)
AVG_INT
AVG_FP
AVG
33
Resultados experimentales III
ALQ=48
0
10
20
30
40
50
60
BNLQ=32 BNLQ=60 BNLQ=100
LQ
-SQ
En
. Sav
ing
s (%
)
ALQ=40
0
10
20
30
40
50
60
BNLQ=40 BNLQ=60 BNLQ=100
LQ
-SQ
En
. Sav
ing
s (%
)
ALQ=32
0
10
20
30
40
50
60
BNLQ=48 BNLQ=60 BNLQ=100
LQ
-SQ
En
. Sav
ing
s (%
)
ALQ=24
0
10
20
30
40
50
60
BNLQ=56 BNLQ=80 BNLQ=100
LQ
-SQ
En
. Sav
ing
s (%
)
AVG_INT AVG_FP AVG
Escalado de la BNLQ (ALQ=32). Configuración agresiva
34
Resultados experimentales IV
Exploración del periodo de refresco óptimo para el predictor dinámico
0
2
4
6
8
10
0 500 1000Periodo de refresco (miles de ciclos)
Slo
wd
ow
n (
%)
ALQ=48
ALQ=40
ALQ=32
ALQ=24
∞-2
-1
0
1
2
3
0 500 1000Periodo de refresco (miles de ciclos)
Pro
c.
En
g.
Sa
vin
gs
(%
)
ALQ=48
ALQ=40
ALQ=32
ALQ=24
∞
35
Motivación Introducción Diseño propuesto Entorno experimental Resultados Conclusiones y trabajo futuro
36
Conclusiones Diseño particionado de la LQ Eficacia de los predictores dinámico y basado en
profiling Reducción del impacto de los falsos positivos en el EBF Ahorro de energía (con una muy pequeña pérdida de
rendimiento) de 35-50% en la LQ-SQ y 2-4% en el procesador
Trabajo actual y futuro Eliminación total de la LQ Incorporación de simultaneous multithreading (SMT)
Conclusiones y Trabajo futuro I
37
Conclusiones y Trabajo futuro II
Eliminación total de la LQ
LOAD STORE
Tabla de edad Tabla de edad
7
22
18
35
7
22
18
35
(ROB_id=35) (ROB_id=24)
Reejecución de instrucciones
38
Publicaciones F. Castro, D. Chaver, L. Pinuel, M. Prieto, M. C. Huang, F.Tirado.
“Load-Store Queue Management: an Energy Efficient Design based on a State Filtering Mechanism”. IEEE International Conference on Computer Design (ICCD), pp. 617-624, 2005.
F. Castro, D. Chaver, L. Pinuel, M. Prieto, M. C. Huang, F. Tirado. “A Power-Efficient and Scalable Load-Store Queue Design”. Lecture Notes on Computer Science, Vol. 3728, pp. 1-9, 2005.
F. Castro, D. Chaver, L. Pinuel, M. Prieto, M. C. Huang, F. Tirado. “Energy-Aware Load-Strore Queue State Filtering”. Conference on Design of Circuits and Integrated Systems (DCIS), 2005.
F. Castro, D. Chaver, L. Pinuel, M. Prieto, F. Tirado. “Gestión eficiente de la LSQ basada en mecanismos de filtrado”. Jornadas de Paralelismo, pp. 27-34, 2005.
F. Castro, D. Chaver, L. Pinuel, M. Prieto, M. C. Huang, F. Tirado.”A Load-Store Queue Design Based on Predictive State Filtering. Journal of Low Power Electronics, Vol. 2, pp. 1-10, 2006.
39
GRACIAS POR VUERSTRA ATENCIÓN
¿ALGUNA PREGUNTA?