Post on 10-Jan-2016
description
1
Architecture & bits significatifs
Thèse de doctorat
Olivier Rochecouste
sous la direction d’André Seznec
Projet CAPS / IRISA
Lundi 24 Octobre 2005
2
Problématique
Évolution de la taille des mots traités par le processeur :– Intel 4004 (1971) : 4-bit– Intel Itanium (2000) : 64-bit
Usage restreint des données 64-bit dans les applications :– applications multimédia (audio/vidéo 8-/16-bit)– 50% des données entières sont sur 16-bit à l’exécution
[Brooks’99]
Surdimensionnement de la microarchitecture ?
Surdimensionnement de la microarchitecture ?
Impacts sur la consommation, la surface de silicium et la fréquence du processeur
Impacts sur la consommation, la surface de silicium et la fréquence du processeur
3
Améliorer les performances :– parallélisme de données (SIMD*) [Nakra’00, Loh’02]
Optimiser la consommation d’énergie :– matériel reconfigurable [Brooks’99, Canal’00]
État de l’artExploiter le format des données
*Single-Instruction Multiple-Data
+ + + + +
64-bit 64-bit16-bit 16-bit
+
64-bit64-bit
+16-bit16-bit
4
État de l’artIdentifier le format des données
Approche dynamique [Brooks’99, Choi’00]– détection cycle par cycle – repose sur un mécanisme matériel
Approche « compilateur » [Stephenson’00, Budiu’00]– analyse du flot de données – doit préserver la sémantique du programme
uint16 i = 0;for (i = 0; i < 25; i++) { x += i;
...}
uint16 i = 0;for (i = 0; i < 25; i++) { x += i;
...}
uint32 x = 0;
uint16 x = 0;
/* 8-bit : 88%, 16-bit : 12% */
5
Contributions de la thèse
Exploiter le format des données pour réduire la complexité du processeur
Première contribution :– technique matérielle / logicielle de redimensionnement du
chemin de données– contexte embarqué
Seconde contribution :– traitement découplé des opérations tronquées (16-bit) sur des
opérateurs dédiés– contexte hautes performances
6
Technique matérielle / logicielle de redimensionnement du chemin de
données
7
Motivations
60% de données entières 16-bit à l’exécution opportunité pour réduire la consommation d’énergie redimensionner le chemin de données
0%20%40%60%80%
100%
ad
pc
m
au
to
bc
nt
bff
o
bilv
bre
v
co
mp
res
s
de
s
en
gin
e fir
g7
21
po
cs
ag
qu
rt
v4
2b
is
av
era
ge
32-bit16-bit8-bit
Distribution du format des données dynamiques [Powerstone]
8
Notre approche
Approche dynamique Approche compilateur
éviter le recours à un support matériel pour identifier le format des données : complexe
éviter le recours à un support matériel pour identifier le format des données : complexe
Spéculer sur la taille des données par logiciel pour redimensionner le chemin de données
Spéculer sur la taille des données par logiciel pour redimensionner le chemin de données
renforcer le compilateur avec une connaissance dynamique : profiling
renforcer le compilateur avec une connaissance dynamique : profiling
s’appuyer sur le compilateur pour
identifier le format des données : adéquate
s’appuyer sur le compilateur pour
identifier le format des données : adéquate
éviter le recours à une analyse statique pour optimiser la taille des données : restrictive
éviter le recours à une analyse statique pour optimiser la taille des données : restrictive
9
8-bit mode8-bit mode16-bit mode16-bit mode32-bit mode32-bit mode
Support matériel (1)
Chemin de données redimensionnable [Brooks’99]– mode d’exécution 8,16 ou 32-bit : « clock-gating »
Fichier de registres en tranches : « nouvelle approche »– mode 8, 16 ou 32-bit : « drowsy mode » [Flautner’02]
données préservées
– « tag bits » : dimension effective des données
01
10
column decodercolumn decoder
00110000
11001100
110011000101110101011101
11001100
16-bit
01011101
11
-
tagbits
+
mise à jour
des tag bits
10
Support matériel (2)
Instruction de reconfiguration :– changer le mode d’exécution
Mécanisme de recouvrement : – Identifier :
comparer le mode d’exécution à la largeur des opérandes (tag bits)
– Corriger : vider le pipeline redimensionner le chemin de données rejouer les instructions
11
Spéculation du format des données par logiciel
Redimensionnement du chemin de données– granularité utilisée : bloc de base (ou région)
Identifier le format d’exécution des blocs de base :– prédire sur la base des données du profiling
fonction du taux d’utilisation en données 16-bit (> 80%)
Insérer les instructions de reconfiguration :– formation de régions
add r1, r2 r3
…
mode 16
xor r2, r3 r4
…
mode 32
région 16-bit
instructions de reconfiguration
12
Environnement expérimental
Benchmarks : – 14 applications Powerstone [M.core]
Configuration simulée :– architecture VLIW 4 x 32-bit– 64 registres généraux 32-bit– 4 ALUs, 1 unité load/store
Estimer la consommation d’énergie (analytique) :– ALU : énergie(32-bit) ~ 2 x énergie(16-bit) – fichier de registres :
CACTI : énergie dynamique par accès Hotleakage : énergie statique par accès
13
Évaluation expérimentale
Consommation d’énergie :– chemin de données :
gains en dynamique : 17%
– fichier de registres : gains en statique : 22%
Performances :– Pénalité de recouvrement
5 cycles pénalité : - 2% 25 cycles pénalité : - 5%
0%
20%
40%
60%
80%
adpcm auto bffo compr. des avg.
dynamic savings (datapath) static savings (RF)
0%
20%
40%
60%
80%
adpcm auto bffo compr. des avg.
dynamic savings (datapath) static savings (RF)
-8%
-6%
-4%
-2%
0%adpcm auto bffo compr. des avg.
5-cycle penalty 25-cycle penalty
-8%
-6%
-4%
-2%
0%adpcm auto bffo compr. des avg.
5-cycle penalty 25-cycle penalty
consommationconsommation
performancesperformances
14
Récapitulatif
Technique matérielle / logicielle de redimensionnement du chemin de données
Spéculation par logiciel du format d’exécution des blocs de base
Support matériel : – mécanisme de recouvrement– chemin de données et fichier de registres 8/16/32-bit
Réduction de la consommation d’énergie :– chemin de données (dynamique) : 17%– fichier de registres (statique) : 22%
15
Comment adapter l’approche pour un modèle à exécution dans le désordre ?
exécution atomique des régions inadéquation d’une approche par profiling
16
Traitement découplé des opérations tronquées sur des opérateurs dédiés
Le modèle à clusters WPM
« Width-Partitioned Microarchitecture »
17
Le modèle à clusters
partitionner les ressources de calcul entre différents groupes (clusters) pour réduire la complexité du processeur
Nécessite :
– mécanisme pour distribuer le programme sur les clusters
– mécanisme pour communiquer les données entre les clusters
fetch
decode
fetch
decoderename
dispatch
rename
dispatch
issueissue
executeexecute
write-backwrite-back
issueissue
executeexecute
write-backwrite-back
commitcommit
ressources
centralisées
cluster
18
Motivations
Caractérisation du format des opérations dynamiques Notation :
– N : narrow-width (16-bit)– F : full-width (64-bit)– [16, 16 64] NNF
40% en opérations NNN
0%
20%
40%
60%
80%
100%
cjpeg epic ghostscript bzip2 gcc mcf average
FFFFFNNFFNFNNNFNNN
Découpler sur des opérateurs dédiés :
le modèle WPM
Découpler sur des opérateurs dédiés :
le modèle WPM
Mediabench SPEC2000
19
Modèle WPM
64-bit
fetch
decode
fetch
decode
rename
dispatch
rename
dispatch
issueissue
executeexecute
write-backwrite-back
issueissue
executeexecute
write-backwrite-back
commitcommit
FFFNNN
FFFNNN
Modèle à clusters classique 64-bit
16-bit
fetch
decode
fetch
decode
rename
dispatch
rename
dispatch
issueissue
executeexecute
write-backwrite-back
issueissue
executeexecute
write
back
write
back
commitcommit
FFFNNN
découpler
cluster 16-bit
Modèle WPM
20
Modèle WPM Implémentation basique
bypassbypass
64-bitALU
64-bitALU
load/store+ ALU
load/store+ ALU
64-bit RF64-bit RF duplicata16-bit RFduplicata16-bit RF
bypassbypass
16-bitALU
16-bitALU
16-bit RF16-bit RF
16-bitALU
16-bitALU
cache de donnéescache de données
cluster 64-bit cluster 16-bit Communications inter-cluster :– duplicata RF 16-bit
réduire la complexité du RF 64-bit
– ALUs 16-bit reliées au duplicata
– Load/store reliée au 16-bit RF
64-bit RF64-bit RF
21
Pour optimiser la connexité
opérations FFN et FNN : 3%– opportunités
Mise à jour à la demande :– instruction de copie
générée par le matériel
Duplicata 16-bit : – ports écriture / 2
Modèle WPM Implémentation optimisée
2
bypassbypass
64-bitALU
64-bitALU
load/store+ ALU
load/store+ ALU
64-bit RF64-bit RF duplicata16-bit RFduplicata16-bit RF
bypassbypass
16-bitALU
16-bitALU
16-bit RF16-bit RF
16-bitALU
16-bitALU
cache de donnéescache de données
cluster 64-bit cluster 16-bit
12
1
33
22
Basée sur un prédicteur de largeur– exposer les opérations NNN
Mauvaises prédictions :– « effectives » : largeur prédite < largeur produite– « conservatrices » : largeur prédite > largeur produite
Schéma bimodal avec compteur RAZ– prédit 16-bit quand saturé sinon 64-bit– remis à zéro quand 64-bit
Distribution des instructions
0 1 x
16-bit
64-bit
16-bit
prédit 16-bitprédit 64-bit
23
Mécanisme de recouvrement
Détection des mauvaises prédictions à l’étage d’exécution :– logique de détection des zéros [Brooks’99]
Correction : mauvaises prédictions effectives – vider pipeline– rejouer instructions sur le cluster 64-bit– mettre à jour tables de prédiction
Correction : mauvaises prédictions conservatrices – mettre à jour tables de prédiction
24
Environnement expérimental
Benchmarks : 7 Mediabench et 7 SPEC2000
Modèles simulés : WPM basique, WPM optimisé 80 registres par RF prédicteur de largeur bimodal avec 4096 compteurs RAZ 3-bit
MP effective < 0.1%
Estimation de la consommation d’énergie (analytique) :– ALU : énergie(64-bit) ~ 4 x énergie(16-bit) – fichier de registres : CACTI – interconnexions : énergie(16-bit) ~ 0.84 énergie(64-bit) [Bala’05]
25
Modèle de référence
Cluster 0 :– 1 ALU 64-bit / 1 load/store
Cluster 1 :– 2 ALUs 64-bit
1 copie RF 64-bit / cluster – mise à jour systématique
– délai inter-cluster
Distribution des instructions [Canal’00]– minimiser communications inter-cluster
– préserver l’équilibrage des charges
fetch
decode
fetch
decoderename
dispatch
rename
dispatch
issueissue
executeexecute
write-backwrite-back
issueissue
executeexecute
write-backwrite-back
commitcommit
64-bit
cluster 0 cluster 1
26
Complexité du fichier de registres
Surface de silicium : analytique [Zyuban’98] Temps d’accès et énergie par accès : CACTI [Jouppi’00]
référence WPM basique WPM optimisé
position du cluster 0 1 0 1 0 1
largeur du registre (bits) 64 64 64/16 16 64/16 16
# registres 80 80 80/80 80 80/80 80
ports d’accès (lecture/écriture)
(4,4) (4,4) (4,2) / (2/4) (4,3) (4,2) / (2/2) (4,3)
réduction de la surface - - 34% 81% 43% 81%
réduction du temps d’accès
- - 6% / 16% 15% 6% / 22% 15%
réduction énergie - - 21% / 63% 35% 21% / 71% 35%
27
Réseau d’interconnexion
Interconnexions inter-cluster (16-bit) :– surface de silicium / 4– consommation d’énergie - 20%
Interconnexions hétérogènes [Bala’05]– (largeur & espacement) = délai
espacement
longueur
largeur hauteur
interconnexions
classiques
optimisées pour
le délai
28
Consommation d’énergie
WPM basique
– ALU : 20 % – RF : 50% – interconnexions : 60%
0%
20%
40%
60%
80%
100%
cjpeg djpeg epic bzip2 gcc gzip avg.
0%
20%
40%
60%
80%
100%
WPM basique
WPM optimisé
ALUALU
RFRF
interconnexionsinterconnexions
consommationd’énergie
consommationd’énergie
WPM optimisé :
– ALU : 13% – RF : 50% – interconnexions : 80%
29
Performances
Oracle : prédicteur de largeur parfait Bimodal : prédicteur bimodal 3-bit 4096 entrées Interconnexions hétérogènes : délai / 2 [Bala’05]
-25%
-15%
-5%
5%
15%
25%
cjpeg djpeg epic bzip2 gcc gzip avg.
-25%
-15%
-5%
5%
15%
25% WPM basique + oracle
WPM basique + bimodal
WPM optimisé + bimodal
WPM basique + int. hétér.
WPM optimisé + int. hétér.
performancesperformances
30
Modèle WPM Récapitulatif
Modèle WPM « Width-Partitioned Microarchitecture » :
– découpler le traitement des opérations NNN pour réduire la complexité du processeur
– aucun mécanisme matériel nécessaire pour redimensionner
– gains en énergie : fichier de registres : 50% interconnexions inter-cluster : 60 à 80%
– dégradation des performances : 7%
31
Conclusion générale
Surdimensionnement du chemin de données
Exploiter le format des données pour réduire la complexité
Deux contributions :
– technique matérielle / logicielle pour redimensionner le chemin de données
systèmes embarqués
– traitement découplé des opérations tronquées sur des opérateurs dédiés (modèle WPM)
systèmes hautes performances
32
Directions futures
Appliquer le modèle WPM au contexte VLIW :
– motivations : modèle à clusters populaire – utiliser le compilateur pour distribuer les opérations
Examiner le passage à l’échelle du modèle WPM :
– comment le modèle WPM peut être adapté pour supporter un degré d’exécution et un nombre de clusters plus importants ?
33
Merci de votre attention.
Questions ?
34
Backup slides
35
Sources de consommation
2 sources principales dans la technologie CMOS* :
– consommation dynamique 90% avec géométrie > 0.13µ
– consommation statique 50% avec géométrie < 0.09µ
Consommation dynamique– Pdynamique = a . (CL * Vdd
2 * f)
Consommation statique– Pstatique = Vdd * Ifuite
– Ifuite = Iox + Isub + Idiode
*Complementary Metal Oxyde Silicon
36
Technique matérielle/logicielle Optimisations logicielles
37
Benchmarks
Applications Description
epic image compression M
E
D
I
A
B
E
N
C
H
g721 voice compression
ghostscript postscript interpreter
jpeg image compression
mesa 3D graphics library
mpeg2 video compression
pegwit encryption algorithm
bzip2 data compression S
P
E
C
2
0
0
0
gcc C compiler
gzip data compression
mcf combinatorial optimization
parser word processing
vortex database
vpr FPGA place route
Applications Description
adpcm voice encoding/decoding
auto automotive control code
bcnt bitcount
bffo find first zero
bilv shift, and, or operations
brev bit reverse operations
compress data compression
des data encryption
engine engine control application
fir integer FIR filter
g721 protocol for voice transmission
pocsag communication protocol for paging
qurt root computation of quadratic equations
v42bis modem encoding/decoding
38
Modèle WPM équilibrage des charges
Métrique :– différence du nombre d’opérations
prêtes à s’exécuter dans chaque cluster à chaque cycle [Canal’00]
– équilibrage parfait : différence = 0– équilibrage correct : différence < 5– Résultats :
équilibrage correct [0-2] : 50% exécution
équilibrage
39
Modèle WPM analyse de la complexité (3)
Réseau de bypass :– modèle de référence :
5 sources par cluster – WPM basique :
6 sources (cluster 64-bit) – 4 sources (cluster 16-bit)– WPM optimisé :
5 sources (cluster 64-bit) – 4 sources (cluster 16-bit)
Logique de réveil :– modèle de référence :
4 sources par cluster– WPM basique :
4 sources (cluster 64-bit) – 3 sources (cluster 16-bit)– WPM optimisé :
3 sources par cluster
40
Modèle WPM Distribution des instructions (2)
Heuristique :
Soit i, l’instruction à assigner : Tous les opérandes sources de i appartiennent au RF16 :
Si résultat prédit 16-bit alors i assignée au cluster 16 Sinon i assignée au cluster 64
Au moins un opérande source de i appartient au RF64 : i assignée au cluster 64 Si résultat prédit 16-bit alors résultat écrit dans RF16 Sinon résultat écrit dans RF64
41
Fichier de registres :
– surface de silicium [Zyuban’98] :
Nregs : nombre de registres
Wregs : largeur du registre en bits
Nread : nombre de ports d’accès en lecture
Nwrite : nombre de ports d’accès en écriture
w : largeur des interconnexions
– temps d’accès et consommation : CACTI
Modèle WPM analyse de la complexité (1)
Nregs x Wregs x w² x (Nread+ Nwrite) x (Nread+ 2 x Nwrite)Nregs x Wregs x w² x (Nread+ Nwrite) x (Nread+ 2 x Nwrite)
42
Modèle WPM analyse de la complexité (2)
Conventionnel WPM basique WPM optimisé
numéro du cluster 0 1 0 1 0 1
# RF 1 1 2 1 2 1
largeur de registre (bits) 64 64 64/16 16 64/16 16
# registres 80 80 80/80 80 80/80 80
ports lecture/écriture (4,4) (4,4) (4,2) / (2/4) (4,3) (4,2) / (2/2) (4,3)
surface de silicium 491520 491520 245760 + 76800 89600 245760 + 30720 89600
réduction de la surface - - 34% 81% 43% 81%
temps d’accès (TA) 0.6326 0.6326 0.6000 / 0.5278 0.5342 0.6000 / 0.4916 0.5342
réduction du TA - - 6% / 16% 15% 6% / 22% 15%
énergie nJ/accès 0.5431 0.5431 0.4267 / 0.1977 0.3500 0.4267 / 0.1571 0.3500
réduction énergie - - 21% / 63% 35% 21% / 71% 35%