![Page 1: UCMUCM 1 2 primeros años en el Departamento: Optimización de la Transformada Wavelet en Microprocesadores de propósito general a) Mejorar el acceso a memoria](https://reader035.vdocumento.com/reader035/viewer/2022062309/5665b42e1a28abb57c8fd4ce/html5/thumbnails/1.jpg)
1
UCM
2 primeros años en el Departamento:
Optimización de la Transformada Wavelet en Microprocesadores de
propósito general
a) Mejorar el acceso a memoria de la transformada
b) Paralelizar y vectorizar la transformada
Mi trabajo en el departamento
![Page 2: UCMUCM 1 2 primeros años en el Departamento: Optimización de la Transformada Wavelet en Microprocesadores de propósito general a) Mejorar el acceso a memoria](https://reader035.vdocumento.com/reader035/viewer/2022062309/5665b42e1a28abb57c8fd4ce/html5/thumbnails/2.jpg)
2
UCM
2 últimos años en el Departamento:
Estudio de técnicas para la mejora en el consumo de potencia
a) Mejora del predictor de saltos de cara al consumo por medio de profiling
b) Extensión de las técnicas anteriores por medio del compilador (TRABAJO ACTUAL)
c) Mejora de la LSQ de cara al consumo (TRABAJO ACTUAL)
Mi trabajo en el departamento
![Page 3: UCMUCM 1 2 primeros años en el Departamento: Optimización de la Transformada Wavelet en Microprocesadores de propósito general a) Mejorar el acceso a memoria](https://reader035.vdocumento.com/reader035/viewer/2022062309/5665b42e1a28abb57c8fd4ce/html5/thumbnails/3.jpg)
UCM
Reducción de la Complejidad y el Consumo de Potencia del Predictor
de Saltos
![Page 4: UCMUCM 1 2 primeros años en el Departamento: Optimización de la Transformada Wavelet en Microprocesadores de propósito general a) Mejorar el acceso a memoria](https://reader035.vdocumento.com/reader035/viewer/2022062309/5665b42e1a28abb57c8fd4ce/html5/thumbnails/4.jpg)
4
UCM
Circuitos integrados cada vez más complicados
Consumo cada vez mayor
• Vida de las baterías menor
• Se hace cada vez más complicado disipar todo el calor que desprende el chip
• Costes de empaquetado y de “sistemas de enfriamiento” están aumentando mucho
• Puede llegarse a un límite tecnológico en los “sistemas de enfriamiento”
Problema en el Consumo de Potencia
![Page 5: UCMUCM 1 2 primeros años en el Departamento: Optimización de la Transformada Wavelet en Microprocesadores de propósito general a) Mejorar el acceso a memoria](https://reader035.vdocumento.com/reader035/viewer/2022062309/5665b42e1a28abb57c8fd4ce/html5/thumbnails/5.jpg)
5
UCM
Nuestro Objetivo
• Reducir el consumo del Predictor de Saltos del Procesador, ya que constituye un factor importante en el consumo total del procesador (En torno al 10%)
• ¿Cómo conseguirlo?
Adaptando el predictor en cada momento a las necesidades del programa
¡¡ CUIDADO !!
Es muy importante no aumentar el % de fallos del predictor, pues más fallos implican más ejecuciones especulativas incorrectas
![Page 6: UCMUCM 1 2 primeros años en el Departamento: Optimización de la Transformada Wavelet en Microprocesadores de propósito general a) Mejorar el acceso a memoria](https://reader035.vdocumento.com/reader035/viewer/2022062309/5665b42e1a28abb57c8fd4ce/html5/thumbnails/6.jpg)
6
UCM
Lo que voy a explicar
• Resumiré el funcionamiento de los Predictores de Salto
• Describiré el punto de partida de nuestro trabajo:
• 3 trabajos relacionados con el Low-Power
• Explicaré nuestro trabajo y resultados obtenidos
• Trabajo actual y futuro
![Page 7: UCMUCM 1 2 primeros años en el Departamento: Optimización de la Transformada Wavelet en Microprocesadores de propósito general a) Mejorar el acceso a memoria](https://reader035.vdocumento.com/reader035/viewer/2022062309/5665b42e1a28abb57c8fd4ce/html5/thumbnails/7.jpg)
7
UCM
Predictores de Saltos
![Page 8: UCMUCM 1 2 primeros años en el Departamento: Optimización de la Transformada Wavelet en Microprocesadores de propósito general a) Mejorar el acceso a memoria](https://reader035.vdocumento.com/reader035/viewer/2022062309/5665b42e1a28abb57c8fd4ce/html5/thumbnails/8.jpg)
8
UCM
Predictores de Salto
• Los saltos son un factor crítico en el rendimiento del pipe (1 de cada 6 instrucciones son de salto)
• La búsqueda de instrucciones se para hasta que:
SALTOS CONDICIONALES:
a) La condición es evaluada
b) La dirección de la siguiente instrucción se conoce
SALTOS INCONDICIONALES:
a) La dirección de la siguiente instrucción se conoce
• Para aliviar el problema: Predictor de Saltos
![Page 9: UCMUCM 1 2 primeros años en el Departamento: Optimización de la Transformada Wavelet en Microprocesadores de propósito general a) Mejorar el acceso a memoria](https://reader035.vdocumento.com/reader035/viewer/2022062309/5665b42e1a28abb57c8fd4ce/html5/thumbnails/9.jpg)
9
UCM
Esquema general del Predictor
PCPC+4
I CACHE
BTB
Predictor de Dirección
![Page 10: UCMUCM 1 2 primeros años en el Departamento: Optimización de la Transformada Wavelet en Microprocesadores de propósito general a) Mejorar el acceso a memoria](https://reader035.vdocumento.com/reader035/viewer/2022062309/5665b42e1a28abb57c8fd4ce/html5/thumbnails/10.jpg)
10
UCM
• Existen muchos tipos distintos de predictores, que se pueden clasificar en dos grupos:
• Predictores estáticos (basados en compilación o profiling)
• Predictores dinámicos
• Los predictores más estudiados y utilizados han sido los dinámicos
• De las dos estructuras, presentaré en detalle los distintos Predictores de Dirección existentes, pues la BTB no es más que una cache
Clasificación de los Predictores
![Page 11: UCMUCM 1 2 primeros años en el Departamento: Optimización de la Transformada Wavelet en Microprocesadores de propósito general a) Mejorar el acceso a memoria](https://reader035.vdocumento.com/reader035/viewer/2022062309/5665b42e1a28abb57c8fd4ce/html5/thumbnails/11.jpg)
11
UCM
Tipos de Predictores
• Predictor Estático
• Predictor Bimodal
• Predictor basado en Historia Global
• Predictor basado en Historia Local
• Predictores Gselect y Gshare
• Predictores Híbridos
![Page 12: UCMUCM 1 2 primeros años en el Departamento: Optimización de la Transformada Wavelet en Microprocesadores de propósito general a) Mejorar el acceso a memoria](https://reader035.vdocumento.com/reader035/viewer/2022062309/5665b42e1a28abb57c8fd4ce/html5/thumbnails/12.jpg)
12
UCM
Predictor Estático
• Ejemplo: considerar todos los saltos como tomados o no tomados.
• Todos los saltos no tomados:
a) Peor porcentaje de aciertos
b) No requiere BTB
• Todos los saltos tomados:
a) Mejor porcentaje de aciertos
b) Requiere BTB
![Page 13: UCMUCM 1 2 primeros años en el Departamento: Optimización de la Transformada Wavelet en Microprocesadores de propósito general a) Mejorar el acceso a memoria](https://reader035.vdocumento.com/reader035/viewer/2022062309/5665b42e1a28abb57c8fd4ce/html5/thumbnails/13.jpg)
13
UCM
Predictor Bimoldal
• Asigna contadores de 2 bits a cada entrada de la tabla
• Cuando el salto es TOMADO Incrementa contador
• Cuando el salto es NO TOMADO Decrementa contador
• La predicción viene dada por el bit más significativo
![Page 14: UCMUCM 1 2 primeros años en el Departamento: Optimización de la Transformada Wavelet en Microprocesadores de propósito general a) Mejorar el acceso a memoria](https://reader035.vdocumento.com/reader035/viewer/2022062309/5665b42e1a28abb57c8fd4ce/html5/thumbnails/14.jpg)
14
UCM
Predictor Bimoldal
¿Por qué utilizar 2 bits?
0000 R1=100
for(i=0;i<100;i++) 0001 FOR:
OPERACIONES 0010OPERACIONES
end 1000 R1--
1001 Salta a FOR si R1>0
0
1 00011110
![Page 15: UCMUCM 1 2 primeros años en el Departamento: Optimización de la Transformada Wavelet en Microprocesadores de propósito general a) Mejorar el acceso a memoria](https://reader035.vdocumento.com/reader035/viewer/2022062309/5665b42e1a28abb57c8fd4ce/html5/thumbnails/15.jpg)
15
UCM
Predictores basados en historia
• Solucionan problemas de aliasing existentes en el Bimodal
• Utilizan dos tablas, la primera contiene una historia de los últimos saltos que han llegado, y la segunda, que se accede con bits de la primera, contiene la predicción
![Page 16: UCMUCM 1 2 primeros años en el Departamento: Optimización de la Transformada Wavelet en Microprocesadores de propósito general a) Mejorar el acceso a memoria](https://reader035.vdocumento.com/reader035/viewer/2022062309/5665b42e1a28abb57c8fd4ce/html5/thumbnails/16.jpg)
16
UCM
Predictores basados en historia
![Page 17: UCMUCM 1 2 primeros años en el Departamento: Optimización de la Transformada Wavelet en Microprocesadores de propósito general a) Mejorar el acceso a memoria](https://reader035.vdocumento.com/reader035/viewer/2022062309/5665b42e1a28abb57c8fd4ce/html5/thumbnails/17.jpg)
17
UCM
Predictor de Historia Global
• La primera tabla tiene una única entrada
![Page 18: UCMUCM 1 2 primeros años en el Departamento: Optimización de la Transformada Wavelet en Microprocesadores de propósito general a) Mejorar el acceso a memoria](https://reader035.vdocumento.com/reader035/viewer/2022062309/5665b42e1a28abb57c8fd4ce/html5/thumbnails/18.jpg)
18
UCM
Predictor de Historia Local
• La primera tabla tiene una entrada para cada salto o conjunto
![Page 19: UCMUCM 1 2 primeros años en el Departamento: Optimización de la Transformada Wavelet en Microprocesadores de propósito general a) Mejorar el acceso a memoria](https://reader035.vdocumento.com/reader035/viewer/2022062309/5665b42e1a28abb57c8fd4ce/html5/thumbnails/19.jpg)
19
UCM
Ejemplo: El problema del Bimodal
PROBLEMA EN EL BIMODAL:
0001 FOR:
0010 IF:
0011 Salta a IF si …
0100 OPERACIONES
1011 Salta a FOR si R1>0
00
0110
01
10
11
![Page 20: UCMUCM 1 2 primeros años en el Departamento: Optimización de la Transformada Wavelet en Microprocesadores de propósito general a) Mejorar el acceso a memoria](https://reader035.vdocumento.com/reader035/viewer/2022062309/5665b42e1a28abb57c8fd4ce/html5/thumbnails/20.jpg)
20
UCM
Ejemplo: La Solución
0001 FOR:
0011 IF:
0011 Salta a IF si …
0100 OPERACIONES
1011 Salta a FOR si R1>0
00
10
01
11
0 1
0 00 1
1 00 0
1 00 0
1 1
![Page 21: UCMUCM 1 2 primeros años en el Departamento: Optimización de la Transformada Wavelet en Microprocesadores de propósito general a) Mejorar el acceso a memoria](https://reader035.vdocumento.com/reader035/viewer/2022062309/5665b42e1a28abb57c8fd4ce/html5/thumbnails/21.jpg)
21
UCM
Predictor de Historia Gselect
• Igual que el de historia global, pero añade información del PC para acceder a la tabla
![Page 22: UCMUCM 1 2 primeros años en el Departamento: Optimización de la Transformada Wavelet en Microprocesadores de propósito general a) Mejorar el acceso a memoria](https://reader035.vdocumento.com/reader035/viewer/2022062309/5665b42e1a28abb57c8fd4ce/html5/thumbnails/22.jpg)
22
UCM
Predictor de Historia Gshare
• Igual que el de historia global, pero hace una XOR entre el PC y el registro de historia
![Page 23: UCMUCM 1 2 primeros años en el Departamento: Optimización de la Transformada Wavelet en Microprocesadores de propósito general a) Mejorar el acceso a memoria](https://reader035.vdocumento.com/reader035/viewer/2022062309/5665b42e1a28abb57c8fd4ce/html5/thumbnails/23.jpg)
23
UCM
• Idea presentada inicialmente por McFarling
• Debido a que distintos tipos de predictores se comportan mejor para unos casos y peor para otros, lo ideal sería tener un predictor compuesto de varios, que realice la predicción con el más adecuado en cada momento
• Predictor Híbrido
Predictor Híbrido
![Page 24: UCMUCM 1 2 primeros años en el Departamento: Optimización de la Transformada Wavelet en Microprocesadores de propósito general a) Mejorar el acceso a memoria](https://reader035.vdocumento.com/reader035/viewer/2022062309/5665b42e1a28abb57c8fd4ce/html5/thumbnails/24.jpg)
24
UCM
Esquema general de un Predictor Híbrido
![Page 25: UCMUCM 1 2 primeros años en el Departamento: Optimización de la Transformada Wavelet en Microprocesadores de propósito general a) Mejorar el acceso a memoria](https://reader035.vdocumento.com/reader035/viewer/2022062309/5665b42e1a28abb57c8fd4ce/html5/thumbnails/25.jpg)
25
UCM
Tipos de Predictores estudiados
• Predictor Estático
• Predictor Bimodal
• Predictor basado en Historia Global
• Predictor basado en Historia Local
• Predictores Gselect y Gshare
• Predictores Híbridos
![Page 26: UCMUCM 1 2 primeros años en el Departamento: Optimización de la Transformada Wavelet en Microprocesadores de propósito general a) Mejorar el acceso a memoria](https://reader035.vdocumento.com/reader035/viewer/2022062309/5665b42e1a28abb57c8fd4ce/html5/thumbnails/26.jpg)
26
UCM
Punto de Partida para nuestro trabajo
![Page 27: UCMUCM 1 2 primeros años en el Departamento: Optimización de la Transformada Wavelet en Microprocesadores de propósito general a) Mejorar el acceso a memoria](https://reader035.vdocumento.com/reader035/viewer/2022062309/5665b42e1a28abb57c8fd4ce/html5/thumbnails/27.jpg)
27
UCM
Tres trabajos previos
• Michael Huang y Josep Torrellas: “Positional Adaptation of Processors: Application to Energy Reduction”
Introduce el concepto de “Adaptación Posicional”
• Dharmesh Parikh y Kevin Skadron: “ Power Issues Related to Branch Prediction”
Estudia distintas técnicas para reducir el consumo del predictor de saltos.
• Se-Hyun Yang “An Integrated Circuit Approach to reducing Leakage in Deep-Submicron High-Performance I-Caches”
Propone una forma de reducir el número de sets activos de la cache, dependiendo de la demanda que haya con memoria
![Page 28: UCMUCM 1 2 primeros años en el Departamento: Optimización de la Transformada Wavelet en Microprocesadores de propósito general a) Mejorar el acceso a memoria](https://reader035.vdocumento.com/reader035/viewer/2022062309/5665b42e1a28abb57c8fd4ce/html5/thumbnails/28.jpg)
28
UCM
La Adaptación del Procesador
PROCESADOR ADAPTATIVO: Procesador capaz de adaptarse a las necesidades de la aplicación
El campo principal de utilización de los PROCESADORES ADAPTATIVOS es el del bajo consumo.
• Usando Técnicas de Bajo Consumo (LPT), se puede reducir mucho el consumo del procesador, a costa de una pequeña pérdida en el rendimiento.
• Si se pueden activar o desactivar esas técnicas de forma dinámica, obtenemos una menor pérdida de rendimiento
Por ejemplo: LPT que nos permite consumir menos potencia en el acceso a la cache, simplemente haciéndola más pequeña. Sería conveniente desactivar la cache cuando no haya muchos accesos a memoria, y en cambio reactivarla cuando tengamos una gran demanda a memoria.
![Page 29: UCMUCM 1 2 primeros años en el Departamento: Optimización de la Transformada Wavelet en Microprocesadores de propósito general a) Mejorar el acceso a memoria](https://reader035.vdocumento.com/reader035/viewer/2022062309/5665b42e1a28abb57c8fd4ce/html5/thumbnails/29.jpg)
29
UCM
La “Adaptación Temporal”
• El problema es que conseguir una adaptación eficiente es difícil
• Casi todos los sistemas adaptativos propuestos hasta ahora realizaban una “Adaptación Temporal”
• Mediante profiling/compilación se determina el intervalo óptimo
• La técnica adaptativa, se activa o desactiva por intervalos. La decisión de activar o no la técnica, se toma basándose en los intervalos anteriores
![Page 30: UCMUCM 1 2 primeros años en el Departamento: Optimización de la Transformada Wavelet en Microprocesadores de propósito general a) Mejorar el acceso a memoria](https://reader035.vdocumento.com/reader035/viewer/2022062309/5665b42e1a28abb57c8fd4ce/html5/thumbnails/30.jpg)
30
UCM
La “Adaptación Temporal”
Por ejemplo:
LPT que al activarse hace que se consuma menos potencia en el acceso a la cache.
Cada ciclo se decide si se adapta (A) o no (N) en función de un voto de lo hecho en los 3 últimos intervalos
Historia (t-2): AAA Decisión A
Los contadores nos revelan que hay muchos fallos, por lo que sería mejor no desactivar la cache
Historia (t-1): AAN Decisión A
Historia (t): ANN Decisión N
![Page 31: UCMUCM 1 2 primeros años en el Departamento: Optimización de la Transformada Wavelet en Microprocesadores de propósito general a) Mejorar el acceso a memoria](https://reader035.vdocumento.com/reader035/viewer/2022062309/5665b42e1a28abb57c8fd4ce/html5/thumbnails/31.jpg)
31
UCM
La “Adaptación Posicional”
• En el trabajo que mencioné anteriormente, se estudió la idea de la “Adaptación Posicional”
• Mediante profiling/compilación se clasifica el código en módulos
• La técnica adaptativa, se activa o desactiva según la posición en la que nos encontremos en el código, es decir, según el módulo en el que nos encontremos.
Por ejemplo:
LPT que al activarse hace que se consuma menos potencia en el acceso a la cache.
Se toman medidas de profiling para guiar la activación/desactivación en cada módulo.
![Page 32: UCMUCM 1 2 primeros años en el Departamento: Optimización de la Transformada Wavelet en Microprocesadores de propósito general a) Mejorar el acceso a memoria](https://reader035.vdocumento.com/reader035/viewer/2022062309/5665b42e1a28abb57c8fd4ce/html5/thumbnails/32.jpg)
32
UCM
La “Adaptación Posicional” del Predictor de Saltos
• En la adaptación del Predictor de Saltos parece lógico utilizar la segunda técnica, la “Adaptación Posicional”
• El código tiene un fuerte efecto en la demanda del predictor
• El comportamiento de muchos saltos tiene un sesgo definido
• De hecho, el acceso a las tablas del predictor se basan en su dirección (PC)
![Page 33: UCMUCM 1 2 primeros años en el Departamento: Optimización de la Transformada Wavelet en Microprocesadores de propósito general a) Mejorar el acceso a memoria](https://reader035.vdocumento.com/reader035/viewer/2022062309/5665b42e1a28abb57c8fd4ce/html5/thumbnails/33.jpg)
33
UCM
La PPD del segundo trabajo
PCPC+4
I CACHE
BTB
Predictor de Dirección
![Page 34: UCMUCM 1 2 primeros años en el Departamento: Optimización de la Transformada Wavelet en Microprocesadores de propósito general a) Mejorar el acceso a memoria](https://reader035.vdocumento.com/reader035/viewer/2022062309/5665b42e1a28abb57c8fd4ce/html5/thumbnails/34.jpg)
34
UCM
La PPD del segundo trabajo
PCPC+4
I CACHE
BTB
Predictor de Dirección
PPD
![Page 35: UCMUCM 1 2 primeros años en el Departamento: Optimización de la Transformada Wavelet en Microprocesadores de propósito general a) Mejorar el acceso a memoria](https://reader035.vdocumento.com/reader035/viewer/2022062309/5665b42e1a28abb57c8fd4ce/html5/thumbnails/35.jpg)
35
UCM
La desactivación de sets del tercer trabajo
PCPC+4
I CACHE
BTB
Predictor de Dirección
POCA DEMANDA
DESACTIVAR
UNA PARTE
![Page 36: UCMUCM 1 2 primeros años en el Departamento: Optimización de la Transformada Wavelet en Microprocesadores de propósito general a) Mejorar el acceso a memoria](https://reader035.vdocumento.com/reader035/viewer/2022062309/5665b42e1a28abb57c8fd4ce/html5/thumbnails/36.jpg)
36
UCM
La desactivación de sets del tercer trabajo
PCPC+4
I CACHE
BTB
Predictor de Dirección
DESACTIVADO
Selective-Sets
![Page 37: UCMUCM 1 2 primeros años en el Departamento: Optimización de la Transformada Wavelet en Microprocesadores de propósito general a) Mejorar el acceso a memoria](https://reader035.vdocumento.com/reader035/viewer/2022062309/5665b42e1a28abb57c8fd4ce/html5/thumbnails/37.jpg)
37
UCM
Tres trabajos previos
• “Adaptación Posicional”
• PPD
• Selective-Sets
![Page 38: UCMUCM 1 2 primeros años en el Departamento: Optimización de la Transformada Wavelet en Microprocesadores de propósito general a) Mejorar el acceso a memoria](https://reader035.vdocumento.com/reader035/viewer/2022062309/5665b42e1a28abb57c8fd4ce/html5/thumbnails/38.jpg)
38
UCM
Adaptación del Predictor
![Page 39: UCMUCM 1 2 primeros años en el Departamento: Optimización de la Transformada Wavelet en Microprocesadores de propósito general a) Mejorar el acceso a memoria](https://reader035.vdocumento.com/reader035/viewer/2022062309/5665b42e1a28abb57c8fd4ce/html5/thumbnails/39.jpg)
39
UCM
Introducción
• Consumo de Potencia: Factor crítico en los procesadores actuales
• Los procesadores utilizan tablas muy grandes para el Predictor de Saltos: Consumo del 10%
• En nuestro trabajo utilizamos el Predictor de Dirección 2Bc-gskew-pskew, y una BTB de 4096
entradas
![Page 40: UCMUCM 1 2 primeros años en el Departamento: Optimización de la Transformada Wavelet en Microprocesadores de propósito general a) Mejorar el acceso a memoria](https://reader035.vdocumento.com/reader035/viewer/2022062309/5665b42e1a28abb57c8fd4ce/html5/thumbnails/40.jpg)
40
UCM
Entorno de Simulación
• Utilizamos el SimpleScalar junto con el Wattch para realizar las simulaciones
• Empleamos los SPEC-2000 como benchmarks para las medidas
![Page 41: UCMUCM 1 2 primeros años en el Departamento: Optimización de la Transformada Wavelet en Microprocesadores de propósito general a) Mejorar el acceso a memoria](https://reader035.vdocumento.com/reader035/viewer/2022062309/5665b42e1a28abb57c8fd4ce/html5/thumbnails/41.jpg)
41
UCM
Recordatorio de un Predictor Híbrido
![Page 42: UCMUCM 1 2 primeros años en el Departamento: Optimización de la Transformada Wavelet en Microprocesadores de propósito general a) Mejorar el acceso a memoria](https://reader035.vdocumento.com/reader035/viewer/2022062309/5665b42e1a28abb57c8fd4ce/html5/thumbnails/42.jpg)
42
UCM
El Predictor de Dirección 2Bc-gskew-pskew
SKEW PREDICTOR
o 2 GA Predictor
o 2 PA Predictor
o 1 Bimodal Predictor
o 2 Chooser Tables
GA
GA
B
PA
PA
MUX
MUX
Meta1
Meta2
MUX
MUX
1
1
Majority
Vote
Majority
Vote
PREDICTION
![Page 43: UCMUCM 1 2 primeros años en el Departamento: Optimización de la Transformada Wavelet en Microprocesadores de propósito general a) Mejorar el acceso a memoria](https://reader035.vdocumento.com/reader035/viewer/2022062309/5665b42e1a28abb57c8fd4ce/html5/thumbnails/43.jpg)
43
UCM
Idea
• Reducir el consumo de potencia del Predictor de Saltos, ajustando de forma dinámica su complejidad (Predicción bajo demanda)
• Se particiona la aplicación en módulos, se caracteriza la demanda de cada módulo por medio de Profiling, y se instrumenta la aplicación para reconfigurar el predictor en tiempo de ejecución
• Técnicas de Reconfiguración: Access gating
Structure resizing
![Page 44: UCMUCM 1 2 primeros años en el Departamento: Optimización de la Transformada Wavelet en Microprocesadores de propósito general a) Mejorar el acceso a memoria](https://reader035.vdocumento.com/reader035/viewer/2022062309/5665b42e1a28abb57c8fd4ce/html5/thumbnails/44.jpg)
44
UCM
Esquema general del Predictor
PCPC+4
I CACHE
BTB
Predictor de Dirección
![Page 45: UCMUCM 1 2 primeros años en el Departamento: Optimización de la Transformada Wavelet en Microprocesadores de propósito general a) Mejorar el acceso a memoria](https://reader035.vdocumento.com/reader035/viewer/2022062309/5665b42e1a28abb57c8fd4ce/html5/thumbnails/45.jpg)
45
UCM
Recordatorio de la Estructura del Predictor
PCPC+4
I CACHE
BTB
Predictor de Dirección
ACCESS GATING
STRUCTURE
RESIZING
![Page 46: UCMUCM 1 2 primeros años en el Departamento: Optimización de la Transformada Wavelet en Microprocesadores de propósito general a) Mejorar el acceso a memoria](https://reader035.vdocumento.com/reader035/viewer/2022062309/5665b42e1a28abb57c8fd4ce/html5/thumbnails/46.jpg)
46
UCM
¿Por qué adaptar el Predictor de Dirección?
0
5
10
15
20
25
Bimod_4K PA_1K_2K_4 GA_4K_5 Skew
Mis
pred
ictio
n ra
te (
%)
mp3decbzipapsicraftyeonmcfparserswim
![Page 47: UCMUCM 1 2 primeros años en el Departamento: Optimización de la Transformada Wavelet en Microprocesadores de propósito general a) Mejorar el acceso a memoria](https://reader035.vdocumento.com/reader035/viewer/2022062309/5665b42e1a28abb57c8fd4ce/html5/thumbnails/47.jpg)
47
UCM
0
2
4
6
8
10
12
14
16
Bimod_4K PA_1K_2K_4 GA_4K_5 Skew
Mis
pred
ictio
n ra
te (
%)
Total 1st Mod2nd Mod 3rd Mod4th Mod 5th Mod6th Mod 7th Mod
BZIP
¿Por qué adaptar el Predictor de Dirección?
![Page 48: UCMUCM 1 2 primeros años en el Departamento: Optimización de la Transformada Wavelet en Microprocesadores de propósito general a) Mejorar el acceso a memoria](https://reader035.vdocumento.com/reader035/viewer/2022062309/5665b42e1a28abb57c8fd4ce/html5/thumbnails/48.jpg)
48
UCM
Predictor Adaptativo mediante ACCESS GATING
GA
GA
B
PA
PA
MUX
MUX
Meta1
Meta2
MUX
MUX
1
1
Majority
Vote
Majority
Vote
PREDICTION
![Page 49: UCMUCM 1 2 primeros años en el Departamento: Optimización de la Transformada Wavelet en Microprocesadores de propósito general a) Mejorar el acceso a memoria](https://reader035.vdocumento.com/reader035/viewer/2022062309/5665b42e1a28abb57c8fd4ce/html5/thumbnails/49.jpg)
49
UCM
STRUCTURE RESIZING: ¿Por qué adaptar la BTB?
0
1
2
3
4
5
6
7
8
9
10
6 7 8 9 10 11 12
log2(BTB_size)
BT
B m
iss
rate
(%
)
bzip apsimp3dec craftyeon parsermcf swim
![Page 50: UCMUCM 1 2 primeros años en el Departamento: Optimización de la Transformada Wavelet en Microprocesadores de propósito general a) Mejorar el acceso a memoria](https://reader035.vdocumento.com/reader035/viewer/2022062309/5665b42e1a28abb57c8fd4ce/html5/thumbnails/50.jpg)
50
UCM
STRUCTURE RESIZING: ¿Por qué adaptar la BTB?
0
1
2
3
4
5
6
7
8
9
10
6 7 8 9 10 11 12
log2(BTB_size)
BT
B m
iss
rate
(%)
Total 1st Mod2nd Mod 3rd Mod4th Mod
MP3DEC
![Page 51: UCMUCM 1 2 primeros años en el Departamento: Optimización de la Transformada Wavelet en Microprocesadores de propósito general a) Mejorar el acceso a memoria](https://reader035.vdocumento.com/reader035/viewer/2022062309/5665b42e1a28abb57c8fd4ce/html5/thumbnails/51.jpg)
51
UCM
• BTB: Memoria que proporciona la dirección destino de un salto
• Para ciertas aplicaciones, estructuras muy grandes pueden estar desaprovechadas, por lo que sería bueno poder adaptar el tamaño
• La BTB tiene una estructura muy parecida a una cache
• Existen técnicas para deshabilitar partes de una cache
(BTB= 2048 sets / 2 ways)
• Selective sets (BTB= 256 sets / 2 ways)
BTB Adaptativa mediante STRUCTURE RESIZING
![Page 52: UCMUCM 1 2 primeros años en el Departamento: Optimización de la Transformada Wavelet en Microprocesadores de propósito general a) Mejorar el acceso a memoria](https://reader035.vdocumento.com/reader035/viewer/2022062309/5665b42e1a28abb57c8fd4ce/html5/thumbnails/52.jpg)
52
UCM
Resultados
• Para un conjunto de 8 aplicaciones del SPEC-2000
• Energía ganada en el Predictor: 71,7%
• Energía ganada en el Procesador: 6,2%
![Page 53: UCMUCM 1 2 primeros años en el Departamento: Optimización de la Transformada Wavelet en Microprocesadores de propósito general a) Mejorar el acceso a memoria](https://reader035.vdocumento.com/reader035/viewer/2022062309/5665b42e1a28abb57c8fd4ce/html5/thumbnails/53.jpg)
53
UCM
Recordatorio de la PPD
PCPC+4
I CACHE
BTB
Predictor de Dirección
PPD
![Page 54: UCMUCM 1 2 primeros años en el Departamento: Optimización de la Transformada Wavelet en Microprocesadores de propósito general a) Mejorar el acceso a memoria](https://reader035.vdocumento.com/reader035/viewer/2022062309/5665b42e1a28abb57c8fd4ce/html5/thumbnails/54.jpg)
54
UCM
Comparación con la Técnica de la PPD
• Ventajas:
• No requiere Profiling, las decisiones se toman de forma dinámica
• Inconvenientes:
• Requiere acceso secuencial para ahorrar toda la energía
• Es una cache, con lo que también consume energía
• Para un conjunto de 8 aplicaciones del SPEC-2000, y suponiendo una PPD ideal
• Energía ganada en el Predictor: 51%
• Energía ganada en el Procesador: 3,9%
![Page 55: UCMUCM 1 2 primeros años en el Departamento: Optimización de la Transformada Wavelet en Microprocesadores de propósito general a) Mejorar el acceso a memoria](https://reader035.vdocumento.com/reader035/viewer/2022062309/5665b42e1a28abb57c8fd4ce/html5/thumbnails/55.jpg)
55
UCM
Trabajo Actual y Futuro
![Page 56: UCMUCM 1 2 primeros años en el Departamento: Optimización de la Transformada Wavelet en Microprocesadores de propósito general a) Mejorar el acceso a memoria](https://reader035.vdocumento.com/reader035/viewer/2022062309/5665b42e1a28abb57c8fd4ce/html5/thumbnails/56.jpg)
56
UCM
• Determinar la Demanda de forma Estática
• A partir del ejecutable (utilizando un reescritor de binario: Alto, Diablo, …)
• En tiempo de compilación (Open Research Compiler)
Trabajo Actual y Futuro
![Page 57: UCMUCM 1 2 primeros años en el Departamento: Optimización de la Transformada Wavelet en Microprocesadores de propósito general a) Mejorar el acceso a memoria](https://reader035.vdocumento.com/reader035/viewer/2022062309/5665b42e1a28abb57c8fd4ce/html5/thumbnails/57.jpg)
57
UCM
• ALTO: reescritor de binario para arquitectura Alpha
• A partir de un ejecutable obtiene un grafo de flujo “aproximado” del programa
• A partir de dicho diagrama es posible analizar el código y modificar el binario incluyendo optimizaciones
• De forma natural permite análisis Interprocedural
• Que optimizaciones son posibles?
• “Inner Loop sin saltos dentro”
• “Hard to predict branches”
Trabajo Actual y Futuro
![Page 58: UCMUCM 1 2 primeros años en el Departamento: Optimización de la Transformada Wavelet en Microprocesadores de propósito general a) Mejorar el acceso a memoria](https://reader035.vdocumento.com/reader035/viewer/2022062309/5665b42e1a28abb57c8fd4ce/html5/thumbnails/58.jpg)
58
UCM
Inner Loops
0
10
20
30
40
50
60
70
80
90
100
gzip vp
rm
cf
craf
tyeo
n
perlb
mk
gap
gzip
twolf
wupwise
swim
mgr
idap
plu
mes
a
galgel ar
t
equa
ke
face
rec
lucas
Total Time in otherLoops
Total Time in the restof the loops
Total Time in a Loopwith 4-10 branchesinside
Total Time in a Loopwith 3 branchesinside
Total Time in a Loopwith 2 branchesinside
Total Time in a Loopwith 1 branch inside
Total Time in a Loopwith no branch inside
Total Time in a Loopwith just callbranches
Ejemplo: Inner Loops
![Page 59: UCMUCM 1 2 primeros años en el Departamento: Optimización de la Transformada Wavelet en Microprocesadores de propósito general a) Mejorar el acceso a memoria](https://reader035.vdocumento.com/reader035/viewer/2022062309/5665b42e1a28abb57c8fd4ce/html5/thumbnails/59.jpg)
59
UCM
Trabajo Actual y Futuro
• Idea: Generalización de este tipo de adaptación a otros componentes del microprocesador utilizando la misma filosofía– LSQ– Banco de Registros– Trace Cache
• Objetivo: encontrar heurísticas que permitan:
– Información obtenida del ejecutable
– Información obtenida en tiempo de compilación
– Profiling
Determinar la demanda de los diferentes componentes para guiar la adaptación
![Page 60: UCMUCM 1 2 primeros años en el Departamento: Optimización de la Transformada Wavelet en Microprocesadores de propósito general a) Mejorar el acceso a memoria](https://reader035.vdocumento.com/reader035/viewer/2022062309/5665b42e1a28abb57c8fd4ce/html5/thumbnails/60.jpg)
60
UCM
for(j=0;j<1000;j++) FORJ:
for(i=0;i<1000;i++) FORI:
OPERACIONES OPERACIONES
end Salta a FORI
end Salta a FORJINNER LOOP