Réduire les accès à la mémoire

publicité
Architectures haute-performance et
embarquées
Evolutions des architectures versus
autres contraintes
Nathalie Drach
Equipe ASIM
Laboratoire d’Informatique de Paris 6 (LIP6)
Université de Pierre et Marie Curie
1
Définitions
Embedded Processor (EP) :
processeur embarqué, processeur
enfoui, processeur spécifique.
General-purpose Processor (GP) :
processeur généraliste, des PC aux
stations haute-performance,
dimmensionnement.
Processeur embarqué = Système
embarqué = processeurs + applications +
OS = indissociables.
Système embarqué : système inclus
(embarqué) dans un système plus large et
son existence comme « ordinateur » n’est
pas apparente.
Différences : applications, volume de production (marché) et
contraintes d’utilisation.
Similitudes : architectures et applications émergeantes.
2
Applications
ƒ GP : applications bureautiques, applications
scientifiques.
ƒ EP : produits de consommation courante, équipements
audio-vidéo de la maison, portables, systèmes
multimédia, consommables électroniques,
périphériques, infrastructures de communications,
systèmes de contrôle, ...
3
Marché
$30B
GP représente 1% de tous les
processeurs
vendus chaque
année (~ 100
millions de GP).
EP représente
99% des ventes!
32-bit
micro
32 bit DSP
$5.2B/17%
$1.2B/4%
DSP
$10B/33%
16-bit
micro
$5.7B/19%
8-bit
micro
$7.9B/27%
Ominiprésence
ƒ
ì... the New York Times has estimated
that the average American comes into
contact with about 60 microprocessors
every day....î [Camposano, 1996]
ƒ
Latest top-level BMWs contain over 100
micro-processors [Personal
communication]
4
La performance, mais aussi…
ƒ
ƒ
ƒ
ƒ
ƒ
Consommation/dissipation,
Côut,
Taille du code,
Temps réel,
Fiabilité, sécurité, flexibilité, ...
ƒ Performance versus délai de propagation.
5
Dissipation et Consommation
ƒ
Processeurs embarqués
(consommation) :
• Traitements de plus en plus
complexes à des cadences de
plus en plus rapides.
• Durée des batteries.
Feature size (nm)
Logic trans/cm2
Cost/trans (mc)
#pads/chip
Clock (MHz)
Chip size (mm2)
Wiring levels
Power supply (V)
High-perf pow (W)
Battery pow (W)
1999 2002 2005 2008 2011 2014
180
6.2M
1.735
1867
1250
340
6-7
1.8
90
1.4
130
18M
.580
2553
2100
430
7
1.5
130
2
100
39M
.255
3492
3500
520
7-8
1.2
160
2.4
70
50
35
84M 180M 390M
.110 .049 .022
4776 6532 8935
6000 10000 16900
620
750
900
8-9
9
10
0.9
0.6
0.5
170
175
183
2.8
3.2
3.7
SIA RoadMap
Year
Processeurs généralistes et hauteperformance (dissipation) :
• Augmentation de la fréquence,
de la densité d’intégration.
• Coût du matériel de
refroidissement.
Puissance
Puissance max
Watt
ƒ
Durée batterie
Temps
Consommation
6
Consommation d’Energie
ƒ
ƒ
Consommation = Puissance x Temps.
Puissance = P statique + P dynamique (Watt).
• P statique (courant de fuite) actuellement
négligée (-10% consommation totale).
• P dynamique = ½ x C x a x Fréquence x
(Tension)2 (dépend de l'activité de la porte,
c'est à dire, elle dépend des transitions
des entrée/sortie).
•
“Plus le transistor est petit moins cela chauffe,
0.13
mais plus on peut en mettre”.
•
Activité : détermine le nombre de transitions
par cycle.
ƒ
Consommation importante :
• Gestion de l’horloge.
• Gestion des instructions.
• Accès aux caches.
7
Mais aussi : processeurs performants
ƒ Meilleure performance : temps d’exécution réduit.
ƒ Dissipation plus élevée : plus de traitements simultanément.
Perf2
Dissipation
Perf1 > Perf2
Temps
8
Integer Program Power Analysis
Rename
2%
Power Distribution-Int workloads
Bpred
2%
ROB
1%
Fp-clock
13%
Icache
7%
FP resultbus
2%
FP mult
2%
Fr-end clock
9%
FP add
5%
LSQ
3%
FP regfile
3%
Int issueq
3%
FP issueq
1%
Int regfile
4%
Int add
8%
Int-clock
21%
Int mult
1%
L2 cache
5%
Rename
Bpred
ROB
Icache
Fr-end clock
LSQ
Int issueq
Int regfile
Int add
Int mult
Int resultbus
L1D cache
L2 cache
Int-clock
FP issueq
FP regfile
FP add
FP mult
FP resultbus
Fp-clock
Int resultbus
3%
L1D cache
5%
9
Floating Point Program Power Analysis
Power Distribution-Fp workloads
Rename
2%
Bpred
2%
Fp-clock
10%
ROB
1%
Icache
7%
FP resultbus
3%
Fr-end clock
7%
FP mult
5%
LSQ
3%
FP add
9%
Int issueq
3%
Int regfile
5%
FP regfile
4%
FP issueq
2%
Int add
8%
Int mult
1%
Int-clock
17%
L2 cache
4%
Int resultbus
2%
Rename
Bpred
ROB
Icache
Fr-end clock
LSQ
Int issueq
Int regfile
Int add
Int mult
Int resultbus
L1D cache
L2 cache
Int-clock
FP issueq
FP regfile
FP add
FP mult
FP resultbus
Fp-clock
L1D cache
6%
10
Evolution de la puissance
11
Comparaison généraliste / embarqué
Comparaison performance / consommation (MIPS / Watt)
Comparaison répartition
(ASIC)
12
Capacité des batteries
ƒ
ƒ
ƒ
ƒ
Energie = durée de vie des batteries.
Amélioration des batteries : * 2,5 en 30 ans.
Batterie Lithium-Ion : 220 Watts-heure / Kg, mais amélioration
limitée dans les prochaines années.
Pile à combustible : pas pour demain (coût, maîtrise de
l’hydrogène, extraction de l’hydrogène, poids) !
∼ Loi de Shannon
∼ Loi de Moore
Capacité des Batteries
13
Concevoir et évaluer pour réduire la
consommation
Niveau
Fonctionnel
Logiciel
Niveau
Portes
Exactitude de l’estimation de consommation
Rapidité de simulation/d’évaluation
Potentiel pour l’optimisation de consommation
14
Niveau logiciel ou comportemental
Configuration
matérielle
Modèle
de consommation
Simulateur
fonctionnel
Enregistrement
des accès aux unités
à chaque cycle
d’horloge
Estimation de
la consommation
Estimation de
la performance
Programme
de test
David Brooks, Vivek Tiwari, and Margaret Martonosi. "Wattch: A Framework for ArchitecturalLevel Power Analysis and Optimizations," 27th International Symposium on Computer
Architecture (ISCA), 2000
int Regs
fp Regs
ICache
Fetch
Decode
RS(int)
RS(fp)
DCache
vect Regs
RS(vect)
RS(L/S)
ROB
VPerm
VFU
15
Techniques matérielles et logicielles
pour réduire consommation / dissipation
ƒ
ƒ
ƒ
Réduire la consommation/dissipation en
réordonnançant/transformant le code :
• ordonnancer les instructions pour réduire les
commutations.
• transformer simplement le programme.
• ordonnancement l’exécution des instructions
(ILP) pour contrôler la dissipation.
Réduire la consommation des opérations qui
consomment beaucoup :
• réduire le nombre d’accès à la mémoire,
• réduire la consommation des caches.
• réduire le nombre de transitions sur le bus.
Généraliste –
HautePerformance
Réduire le surcoût généré par la spéculation.
16
Réduire la fréquence/le voltage
ƒ
Le plus direct (P dynamique = ½ x C x a x Fréquence x (Tension)2 ):
• Réduire la fréquence,
• Réduire le voltage.
Dissipation
F > F’
Exemples :
ƒ
ƒ
ƒ
F’
Temps
Processeur Intel Mobile Pentium III avec la technologie SpeedStep : changement
dynamique de fréquence et de tension (500Mhz, 1.35 V ou 600/650Mhz, 1.6 V) selon
mode d’alimentation (batterie ou courant). Modes : Battery Optimized ou Maximum
Performance.
Processeurs Mobile AMD-K6-2+ and Mobile AMD-K6-III+ avec la technologie AMD
PowerNow (3 modes : High-Performance Mode, Battery Saver Mode, Automatic
Mode).
Processeur Crusoe de Transmeta avec la technologie LongRun (600MHz/300MHz et
1.6/1.3 V).
17
Réduire les commutations
ƒ
ƒ
Techniques :
• Générer le code en utilisant les
instructions qui consomment le
moins.
• Ordonner les instructions afin de
minimiser l’activité de
commutation.
• Sélection des instructions basées
sur des mesures réelles.
Inconvénients :
• Processus qui consiste à mesurer
la consommation pour toutes les
paires d’instructions très long.
• Table de grande taille utilisée pour
stocker toutes les valeurs de
puissance.
Tiwari, S. Malik, A. Wolfe and M. Lee, "Instruction
Level Power Analysis and Optimization of
Software", Journal of VLSI Signal Processing,
1996.
18
Transformation du code
ƒ Le logiciel détermine la puissance dissipée par le processeur.
19
Gérer l’ILP pour réduire la dissipation
ƒ
Ordonnancement classique : augmenter les performances i.e.
augmenter l’ILP.
I1
I2
I3
I1
I4
Avant
ƒ
I5
I2
I3
I4
Après
I5
Ordonnancement guidé par la dissipation :
• Sacrifier des gains de performance afin d’obtenir la
dissipation désirée.
• Des valeurs de dissipation sont associées à chaque unité
fonctionnelles.
I1
M.C. Toburen, T.M. Conte, and M. Reilly, "Instruction Scheduling for
Low Power Dissipation in High Performance Processors", In the
Power Driven Microarchitecture Workshop in conjunction with the
25th International Symposium on Computer Architecture, 1998.
I2
I3
I4
I5 Après
20
Réduire les accès à la mémoire
ƒ
Transformations pour réduire le nombre d’opérations de lecture et
d’écriture en mémoire.
ƒ
Les caches permettent de réduire le nombre d’accès à la mémoire.
21
Réduire les accès à la mémoire :
caches sur les DSP
ƒ
Les PM (Program Memory) et DM caches sont situés sur la
même puce que le CPU afin de réduire la consommation due
aux accès au bus données reliant le tout au système mémoire
principal.
ƒ
Exemple : StrongARM 110 : 2 caches instructions et données
séparés avec 16 bancs.
22
Réduire les transitions sur le bus
23
Cache Energy
2000
1800
1600
Energy (pJ)
1400
1200
4-way
1000
2-way
800
1-way
600
400
200
0
4K
8K
16K
32K
64K
Cache Size
ƒ
ƒ
ƒ
ƒ
Obtenir plus de performance : augmenter la taille du cache, l’associativité et la
taille de la ligne.
Limiter la consommation : réduire la taille du cache et l’associativité. Mais aussi
réduire le nombre d’accès à la mémoire.
Compromis…
Rapport consommation due aux accès mémoire / consommation due aux accès
cache :
™
Rapport grand : se focaliser sur l’amélioration du taux de succès.
™
Rapport petit : se focaliser sur minimiser la consommation d’énergie
des accès au cache.
24
Différentes politiques d’accès au cache
Sequential
Fallback-regular
cycle 1
cycle 1
Phased cache
cycle 1
cycle 2
cycle 2
cycle 2
cycle 3
Predictive-Phased
Fallback-Phased
cycle 1
cycle 2
cycle 1
cycle 2
cycle 3
25
0.67
0.68
0.78
0.69
0.72
0.68
0.67
0.74
0.69
0.98
1.01
1.05
0.8
4-way Sequential
4-way FallBackReg
4-way Phased
4-way FallBackPha
4-way PredictPha
0.68
Normalize Baseline
1
0.99
1.05
Performance
0.6
0.4
0.2
0
Delay
Energy
E*D
A. Hasegawa et al., « SH3: High Code Density, Low Power », In IEEE Micro, 1995.
K. Inoue , T. Ishihara, and K. Murakami, ``Way-Predicting Set-Associative Cache for High
Performance and Low Energy Concumption,'' In the International Symposium on Low Power
Electronics and Design (ISLPED'99) , 1999.
26
Surcoût des instructions spéculatives
(exemple : prédiction de
branchement)
• Augmentation de la dissipation et de l’énergie.
• Limiter la spéculation, mais réduire performance.
27
Contrôler / limiter la prédiction : un
exemple
ƒ
Technique du « pipeline gating ».
"Pipeline Gating: Speculation Control For Energy Reduction" , Srilatha Manne, Artur Klauser and Dirk
Grunwald, ISCA-98.
28
Technologie : une technique efficace
ƒ
Supprimer les commutations des blocs qui n’ont pas besoin
d’être rechargés.
ƒ Quand pas d’activité (pas d’utilisation), pas de dissipation
dynamique.
ƒ Composants inutilisés éteints (clock gating).
29
D’autres problèmes : gestion de
l’horloge
ƒ
Consommation de
puissance pour la gestion
de l’horloge augmente
avec :
• la taille de la puce et la
capacité des portes,
• avec la fréquence.
ƒ
DEC 21164 : 40-50% de
la consommation pour
gérer l’horloge.
30
Conclusion
performance / consommation sur EP
ƒ
Augmentation de la demande pour des calculs rapides et des
fonctionnalités complexes (exemple : communication sans fil,
traitement d’images).
ƒ
Mais la consommation excessive limite le nombre de
transistors intégrés, donc les performances.
ƒ
Question : comment trouver le point pour lequel l’énergie
économisée est suffisante tout en maintenant des
performances acceptables ?
31
Coût
ƒ Coût dépendant de plusieurs paramètres :
• coût d’un transistor (le coût d’un transistor est
proportionnel à la racine carrée de sa taille).
• coût de la chaîne de conception et des différentes
solutions matérielles adoptées.
• coût des développements logiciels.
32
Coût des développements logiciels
ƒ « Historiquement » :
développement en assembleur
notamment pour les parties
critiques.
ƒ Développement HL langage (C
et C++) :
• Coût des développements
logiciels et aussi :
• Augmentation de la
complexité des programmes,
• Portabilité,
• Progrès des compilateurs,
• Evolution des architectures.
C-Code
(DSP) C-Code
(µController)
Assembler
(DSP)
Assembler
(µController)
[Paulin, 1995]
33
Développements logiciels
vs Performance
34
Taille du code
ƒ Problème :
• Coût, taille et puissance.
™ Coût de certaines machines embarquées = coût
de la mémoire (et non du processeur).
™ La mémoire instructions domine en taille et en
consommation de puissance.
• Faire tenir le programme sur la mémoire on-chip.
35
Taille du code (suite)
Les alternatives :
ƒ Compilateurs vs assembleur :
• Taille/vitesse d’optimisation, portabilité, coûts de
développements.
ƒ Compression des programmes:
• Tenir compte des répétitions.
• Compromis performance/densité de code.
• Utiliser des processeurs meilleur marché avec des
mémoires on-chip plus petites.
36
Compresser les codes
ƒ
ƒ
Choix du jeu d’instructions (spécialisés ou non).
Utiliser des techniques “classiques” de compression :
• Statistique :
™ Chaque codage représente un caratère. Exemple :
codage d’“Huffman”.
37
Choix du jeu d’instructions
ƒ
ƒ
ƒ
ƒ
RISC vs CISC : densité de code + CICS, mais pour RISC des
solutions…
SuperH (Hitachi), M•Core (Motorola) :
• 16-bit instructions, 32-bit data.
Thumb (ARM), MIPS-16 (SGI)
• Instructions 16 bits sous-ensemble du jeu d’instructions de
base.
• Réduire la taille des instructions de 32 bits à 16 bits.
TriCore (Siemens), V8xx (NEC)
• 16-bit and 32-bit instructions peuvent être mixées.
38
Méthode du dictionnaire : par
instruction
39
Modification architecture
40
Méthode du dictionnaire :
par bloc de base
ƒ
ƒ
ƒ
Mettre dans un dictionnaire des séquences d’instructions communes
(une séquence ne peut pas dépasser un bloc de base).
Puis, remplacer les séquences du programme avec les codes du
dictionnaire.
Le programme final contient le code compressé et le dictionnaire.
Original
lbz
rlwinm
addi
cmpli
ble
cmpli
bgt
lwz
stb
b
lbz
rlwinm
addi
cmpli
r9,0(r28)
r11,r9,0,24,31
r0,r11,1
cr1,0,r0,8
cr1,401c8
cr1,0,r11,7
cr1,41d34
r9,4(r28)
r18,0(r28)
41d38
r9,0(r28)
r11,r9,0,24,31
r0,r11,1
cr1,0,r0,8
Compressed
CODEWORD
ble
cmpli
bgt
CODEWORD
b
CODEWORD
#1
cr1,L1
cr1,0,r11,7
cr1,L2
#2
L3
#1
Dictionary
1
2
lbz
rlwinm
addi
cmpli
lwz
stb
r9,0(r28)
r11,r9,0,24,31
r0,r11,1
cr1,0,r0,8
r9,4(r28)
r18,0(r28)
T. Mudge, http://www.eecs.umich.edu/~tnm/compress
41
Temps réel (définition)
ƒ
ƒ
Système temps réel : système dépendant non
seulement de la fiabilité des résultats, mais
aussi de l’instant où les résultats sont
produits.
« Deadline soft » (soft real-time systems),
temps réel mou :
• Multimédia,
• Jeux vidéo intéractifs.
Ex: Missing deadlines in real-time video leads
to unacceptable picture quality resulting
in a failed product.
ƒ « Deadline hard » (hard real-time systems),
temps réel dur :
• Aviation,
• Nucléaire,
• Médical.
Ex: Advanced variable-cycle jet engines can
explode if correct control inputs are not
applied every 20-50 ms.
42
Analyse du temps
ƒ
ƒ
ƒ
Analyse du temps pour les différentes tâches du
système :
• Temps pour chaque tâche.
• Temps lié à l‘ordonnancement des tâches du
système : relations de précédences entre les
tâches, synchronisation, communication,
priorités, ...
Conditions pour analyser le temps d’une tâche :
• Données d’entrée disponibles au début.
• Pas de synchronisation, ni de communication
à l’intérieur de la tâche.
• Résultats disponibles à la fin de la tâche.
Mais le temps d’exécution d’une tâche est
variable en fonction des données et de l’état
d’entrée :
• Estimation du temps.
Données
Etat
Tâche
Etat
Résultats
43
Estimation du temps
•
•
•
•
ƒ
Estimer le temps d’exécution d’une
tâche/application donnée. Estimation à
architecture et compilateur fixés.
Soft real-time systems : estimation du temps
moyen d’exécution.
Hard real-time systems : estimation du WCET
(Worst-Case Execution Time), temps d’exécution
maximum.
Le WCET estimé doit être :
• Sûr (safe) i.e. WCET estimé > WCET.
• Juste (accurate) i.e. (WCET estimé – WCET)
petit. Ressources sous-utilisées, dimensionner
le système.
Industrie :
• utilisation de mesures (tests sur les systèmes cibles),
profilers, analyseurs logiques pour exhiber le pire
comportement de l’application.
• Mais : coûteux en temps, difficile à mettre en œuvre,
dépendant de la qualité des cas testés, pas sûrs, …
Jakob Engblom and al., « Towards Industry Strength Worst-Case Execution Time
Analysis », In Swedish National Real-Time Conference SNART'99, August 1999.
44
ƒ
ƒ
Tendance actuelle/future :
obtention du temps
d’exécution au pire cas par
analyse statique du
programme (sûre,
automatique) en intégrant
des caractéristiques de
l’architecture (analyse bas
niveau).
Mais :
• Certaines caractéristiques
des programmes posent
problème (nombre
d’itérations inconnu,
« profondeur » de la
récursivité, …).
• Certaines caractéristiques
des architectures posent
problème (cache, pipeline,
…).
Difficulté pour prédire/estimer le temps
WCET
DSP
VLIW
Scalaire
Superscalaire IO
Superscalaire
OO
45
Analyser le programme
ƒ
Analyse du programme source : génération
de l'arbre syntaxique (fonction, boucles, …).
Eliminer les chemins « infaisables ».
ƒ
Graphe de flots de contrôle : déterminer le
temps d’exécution des blocs de base des
différentes fonctions, boucles, … Une
fonction a des temps d’exécution différents
selon les valeurs d’entrée.
Temps d’un bloc de base :
• facile pour les DSP « simples » ou
microcontrôleur (une somme).
• plus difficile pour les processeurs
modernes ; temps d’exécution d’une
instruction variable (pipeline, cache, …).
ƒ
ƒ
WCET : déterminer la séquence de blocs
de base la plus longue. Programmation
linéaire en nombre entiers sous contraintes.
46
Prédire le temps
dans les processeurs modernes
ƒ
Les variations temporelles des processeurs modernes
entraînent des estimations très pessimistes (exemples : un
accès à une donnée ou à une instruction est toujours un échec
sur le cache, pas de recouvrement entre instructions, …),
donc :
• une réduction importante des performances effectives
(jusqu’à 90% des capacités du système non utilisées) et,
• une sur-estimation des ressources nécessaires (sousutilisées).
ƒ
Comment prendre en compte les phénomènes dynamiques
des processeurs modernes pour obtenir des WCET plus
proches de la réalité ?
47
Sources de variations temporelles
dans les processeurs modernes
ƒ
Eléments de mémorisation : caches, TLB (Translation
Lookaside Buffer), branch target buffer, writebuffer, etc.
ƒ
Prédiction de branchement.
ƒ
Temps entre instructions dépendantes :
• Multiplication, division, etc.
ƒ
Pipeline instructions.
ƒ
Intéractions complexes du pipeline :
• Réordonnancement dynamique des instructions,
• Renommage de registres.
DSP amélioré, VLIW, processeur superscalaire IO.
Processeur superscalaire OO.
48
Variations temporelles :
système mémoire
Non prévisibles :
ƒ Taux d’échecs.
ƒ Temps d’accès aux données :
• dépendant du niveau
mémoire dans lequel se
trouve la donnée.
• si writebuffer plein, délai
supplémentaire.
• si nombre d’échecs en
suspend atteint, délai
supplémentaire.
ƒ Perturbations (pour une
application donnée) dues aux
exceptions et au
rafraîchissement de la
mémoire.
Système mémoire : caches instructions
et données, TLB, branch target buffer,
writebuffer, etc.
TLB
Processeur
Cache
Mémoire
Write
Buffer
49
Analyse des caches
d’instructions
ƒ
ƒ
ƒ
Hypothèse : échec est toujours le pire des cas.
Effet global.
Adresses des instructions connues, le problème essentiel :
les branchements.
ƒ
Catégoriser les accès : first-miss, always-miss, first-hit,
always-hit.
Exemple : Always-hit - si instruction dans bloc de base
appartient à la ligne de cache L déjà référencée dans le
même bloc de base (modulo la taille du bloc de base).
Simuler un cache (préciser tous les paramètres).
Etre « conservatif » : une instruction sur un chemin qui ne
sera peut-être pas pris, échec.
ƒ
ƒ
ƒ
"Bounding Pipeline and Instruction Cache Performance" by C. A. Healy, R. D.
Arnold, F. Mueller, D. B. Whalley, and M. G. Harmon in IEEE Transactions on
Computers, 01/1999, pages 53-70.
50
Analyse des caches de données
ƒ
ƒ
ƒ
Même hypothèse : échec est toujours le pire des cas.
Effet global.
Problème pour connaître les adresses : pointeurs, allocation
dynamique, … Egalement problème des branchements.
ƒ
Analyse des localités spatiale et temporelle des références.
Similaire à l’analyse de performance.
Déterminer l’ensemble des accès indépendants des données
d’entrée. Mais problème de conflits potentiels avec autres
données.
Une solution : rendre non « cacheable » les accès non
prévisibles.
ƒ
ƒ
Thomas Lundqvist and Per Stenström: "A Method to Improve the Estimated WorstCase Performance of Data Caching," in the 6th International Conference on
Real-Time Computing Systems and Applications (RTCSA'99), 1999.
51
Analyse des pipelines
ƒ
ƒ
ƒ
ƒ
ƒ
Temps d’un bloc de base : sous-estimation. Il faut analyser les
recouvrements entre blocs de base.
Effet local.
Pipeline et cache dépendants (pas d’arrêt du pipeline en cas
d’échec).
Calculer le plus long chemin <> déterminer la séquence de
blocs de base la plus longue (l’enchaînement de 2 blocs de base
peut être plus long que la somme des 2 blocs de base).
Une solution : garder des informations sur tous les blocs de
base qui peuvent se terminer avant un bloc de base donné.
Relativement complexe
"Bounding Pipeline and Instruction Cache Performance" by C. A. Healy, R. D. Arnold,
F. Mueller, D. B. Whalley, and M. G. Harmon in IEEE Transactions on Computers,
01/1999, pages 53-70.
52
Les branchements
ƒ
ƒ
ƒ
ƒ
ƒ
A cause des branchements, on ne sait pas a priori quelle
séquence de code est exécutée : accès instructions, accès
données, recouvrement pipeline, …
Chemin le plus long calculé après estimation du temps des
blocs de base.
Pénalités liées aux pipelines (délais en cas de mauvaise
prédiction) et à la prédiction de branchement utilisée
(efficacité).
Une première solution pour les pénalités : tous les
branchements sont mal prédits.
Une autre solution : analyser le comportement des
branchements dans le BTB et faire une analyse similaire au
cache. Première approche…
A. Colin, I. Puaut, « Worst Case Execution Time Analysis for a Processor with Branch
Prediction ». Real-Time Systems, Special issue on worst-case execution time
analysis, 18(2):249-274, 2000.
53
Processeurs superscalaires OO
Anomalies temporelles :
le pire des cas ne donne pas le pire
des temps!
Etude de cas : superscalaire de
degré 2, 2 stations de
réservations par unité, 3 unités
distinctes.
« Timing Anomalies in Dynamically
Scheduled Microprocessors », by
Thomas Lundqvist, Per Stenström, in
the 20th IEEE Real-Time Systems
Symposium, 1998.
54
Anomalies temporelles:
succès = WCET
Code exécuté
1er cas : A est un succès. 12
cycles.
2ème cas : A est un échec. 11
cycles.
1er cas < 2ème cas.
55
Anomalies temporelles :
pénalité d’échec augmentée
Code exécuté
C : toujours un échec.
1er cas : A est un succès. 16
cycles.
2ème cas : A est un échec.
27 cycles.
16 + 8 = 24 <> 27 cycles.
56
Optimisations à la compilation
ƒ
Tenir compte dans le calcul du WCET des optimisations à la
compilation (exemples : pipeline logiciel ou déroulage de boucle
particulièrement importantes pour les architectures VLIW).
ƒ
Remonter l’information jusqu’à l’arbre syntaxique. Problème de
correspondance (exemple : boucle déroulée et nombre d’itérations).
57
Conclusion
le temps réel
ƒ
ƒ
ƒ
Solutions « acceptables » pour les caches et les pipelines.
Tenir compte des optimisations à la compilation.
Donc processeurs pipelines, VLIW, superscalaires IO avec
hiérarchie mémoire, envisageables pour le temps réel dur…
avec des améliorations.
ƒ
Eléments globaux comme la hiérarchie mémoire : influence
également sur les changements de contexte. Des solutions :
• Allouer des portions de cache différentes pour les tâches
indépendantes (réduire l’efficacité du cache).
• Stocker le contenu du cache à chaque changement de
contexte et revenir en l’état (surcoût important).
Analyse du WCET peut guider les optimisations et vice-versa.
Permet le dimensionnement du système.
ƒ
58
Conclusion
le temps réel (suite)
ƒ
Mais pour l’instant difficile d’intégrer les processeurs
superscalaires OO :
• Anomalies empêchent de considérer le pire des cas et de
considérer des calculs locaux sur les blocs de base.
• Un solution : supposer une exécution séquentielle des
instructions. Approche très pessimiste.
• Autre solution : synchroniser (arrêter le pipeline) à chaque
instruction posant problème. WCET peu « juste ».
• Ne parlons pas de tous les autres mécanismes spéculatifs :
prédiction de branchement, prédiction de valeur, « reuse »
instruction, etc.
59
Délai de propagation
Die reachable (%)
Year of 1st shipment
Local Clock (GHz)
Across Chip (GHz)
Chip Size (mm²)
Dense Lines (nm)
Number of chip I/O
Transistors per chip
1997 1999 2002 2005 2008 2011 2014
0,75 1,25
2,1
3,5
6
10 16,9
0,75
1,2
1,6
2
2,5
3 3,674
300 340 430 520 620 750 901
250 180 130 100
70
50
35
1515 1867 2553 3492 4776 6532 8935
11M 21M 76M 200M 520M 1,4B 3,62B
100
90
80
70
60
50
40
30
20
10
0
1 clock
2 clocks
4 clocks
8 clocks
16 clocks
0,25
0,18
0,13
0,1
0,08
Processor generation (m icrons)
0,06
60
« Critical-path »
ƒ Motivation :
• le délai de propagation du signal sur la puce
augmente (technologie).
• la fréquence d’horloge augmente.
• la complexité fonctionnelle de la puce (complexité
des composants) augmente.
=> Certains traitements ne peuvent pas/plus se faire en
un cycle.
ƒ Concrètement :
• 40% des opérandes sources utilisent le “forwarding”
dans un processeur superscalaire de degré 8
(simulation, SPEC95).
• les techniques impléméntées pour augmenter les
performances complexifient les composants.
61
Temps d’accès augmenté
Exemple : les registres
Délai pour le « register file » (0.18 micron)
« Complexity-Effective Superscalar
Processors », by S. Palacharla, N. P.
Jouppi et J. E. Smith, In the 24th
Annual International Symposium on
Computer Architecture, 1997.
62
Solutions
ƒ Concevoir pipelines qui tolèrent les latences dues au délai de
propagation.
ƒ Regrouper des éléments (cluster) avec délai intra-cluster
court et délai inter-cluster plus long similaire à
communication locale rapide, communication à distance plus
longue (mais sur la puce).
63
Augmenter la taille du pipeline
Front-end : instruction fetch, registre rename et register file access opérations.
Execute : window wakeup, window selection et data bypass opérations.
Cache access : cache operations.
ƒ
ƒ
ƒ
Ajout de 1 et 2
étages de pipeline.
Processeur simulé :
8-way out-of-order,
fenêtre instructions =
64 entrées, fichier de
registres = 120
entrées, + Gshare.
« Complexity-Effective Superscalar Processors », by S. Palacharla, N. P. Jouppi et J. E. Smith, In the 24th
Annual International Symposium on Computer Architecture, 1997.
64
Clusters d’unités de même type
ƒ
ƒ
ƒ
ƒ
ƒ
DEC 21264.
4 instructions entières
exécutables en même temps
=> 8 ports lecture + 6 ports.
Pallier au problème de temps
d’accès aux registres.
Six unités de calcul groupées
en 3 « clusters ».
Dupliquer banc de registres
entiers : 4 ports lecture + 3
ports écritures. 1 cycle
supplémentaire pour
synchroniser bancs de
registres.
65
Cluster d’unités de types différents (1)
Cluster d’UF :
regroupement
d’unités
fonctionnelles
hétérogènes (peut
travailler sur des
morceaux de code
indépendants).
ƒ But : réduire au
maximum les délais
entre les blocs
dépendants.
« Function Unit Clustering in Wide-issue Superscalar Processors », by M.
Postiff. http://www-personal.umich.edu/~postiffm/papers/papers.html
ƒ
66
Cluster d’unités de types différents (2)
ƒ VLIW en clusters : séparation FUs, registres, caches
E. Gibert, J. Sánchez and A. González, ICS 2002
67
Cluster d’UF et fenêtre d’instructions
« Complexity-Effective Superscalar Processors », by S.
Palacharla, N. P. Jouppi et J. E. Smith, In the 24th Annual
International Symposium on Computer Architecture, 1997.
ƒ
Unité de « steering » :
sélectionne à quel cluster/UF
l’instruction sera envoyée en
essayant de minimiser le
nombre d’utilisation interclusters.
• Complexité augmentée
pour sélectionner les
clusters qui généreront le
moins de délai.
• Sélection difficile à cause
des problèmes de
latences des UF et des
caches non déterminées.
ƒ
Heuristique : RPT (Register
Producer Table). Association
entre registre logique et
cluster.
• Cluster ayant produit la
dernière valeur du
registre.
• Indexée par numéros de
registres sources.
• Généralement, instruction
envoyée à un cluster
ayant produit un de ses
opérandes source.
68
Architecture multicluster
ƒ
ƒ
ƒ
Registres locaux : assignés à un cluster.
Registres globaux : assigné aux 2 clusters.
2 registres physiques.
ƒ
Eléments distribués sur les
clusters :
• les queues de « dispatch »,
• les registres (à chaque
cluster est assigné un sousensemble de registres
matériels),
• les UF .
Les instructions exécutées sur le
cluster C ont été distribuées par
le cluster C et peuvent lire et
écrire les registres du cluster C.
Les caches données et
instructions sont partagés.
Avantage : chaque cluster
exécute peu d’instructions par
cycle, donc moins de logique
d’ordonnancement, les registres
d’un cluster demande peu de
lecture/écriture.
« The Multicluster Architecture: Reducing Cycle Time Through Partitioning », by K. I.
Farkas et al., in the International Journal of Parallel Programming , volume 27, number 5,
October 1999.
69
Architecture multicluster
ƒ Une autre architecture « naturellement » multicluster : CMP.
ƒ Mais problème avec cluster, tend à réduire l’ILP.
70
Fiabilité-sécurité / Flexibilité
ƒ
ƒ
ƒ
Fiabilité : très grande importance/place des machines embarquées
dans la vie quotidienne.
Sécurité : effet de bord. De plus en plus confiance dans les
systèmes embarqués.
Flexibilité :
• Capacité d’intégration.
• Composants standards.
71
Graphes de dépendances sur les
contraintes
Performance
Consommation
Temps réel
Taille code
Coût
Graphe complet !
72
Intégrer GP dans EP
DSP futur
ƒ Besoin de performance - Ajouter plus de
DSP
fonctionnalités et des fonctionnalités bien
• Timing fixé – Temps prévisible.
ciblées - Augmentation de la complexité
Notamment, placement
des systèmes :
mémoire fixé.
• Processeur de base plus performant.
• Consommation faible.
• Processeur de base avec extensions
multimédia.
• Mais :
– distancé côté performance,
• Utilisation de la mémoire virtuelle.
– faible côté outils logiciels.
ƒ Réduire les temps/coûts de développement
:
– systèmes figés,
• Utiliser composant standard fabriqué en
– difficile à modifier pour des
grande quantité. Off-The-Shelf
événements non prévus
Technology.
(redesign).
• Utilisation des outils logiciels (vs
assembleur).
• Possibilité de suivre les améliorations
technologiques. Mise à jour plus facile.
73
Spécificités des EP (DSP)
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
Une instruction par cycle.
Mémoire on-chip permettant
plusieurs accès
Opérations spécialisées.
Plusieurs opérations par
cycle. Exemple : MAC.
Modes d’adressage
spécialisés.
Calculs virgule fixe et virgule
flottante.
Bas coût, basse
consommation et faible
utilisation de la mémoire.
74
Architectures pour les EP (DSP)
ƒ
ƒ
ƒ
ƒ
Améliorer les architectures DSP + ajout
du SIMD :
• Lucent DSP16xxx, Motorola
DSP56300, ADI ADSP2116x,…
Utiliser l’approche VLIW :
• TI TMS320C6200, Philips TM1000,
Trimédia, Siemens Infineon Carmel,
StarCore 140, …
• VLIW + SIMD : AD TigerSHARC, …
Utiliser l’approche processeur
superscalaire :
• DSP superscalaire : ZSP 164xx.
Utiliser une approche hybride : Piccolo
+ ARM7, SH-DSP, TriCore, …
DSP classique
Améliorer les DSP
SIMD
DSP VLIW
DSP superscalaire
Approche hybride
Superscalaire
SIMD
75
Améliorer les architectures DSP
ƒ
ƒ
ƒ
ƒ
Générer plus de parallélisme en
ajoutant des unités fonctionnelles.
Spécialiser davantage le matériel,
ajouter des co-processeurs (exemple
: filtrage FIR, décodeur Viterbi).
+ : performance en maintenant coût,
consommation et densité de code,
compatibilité, …
- : difficulté de programmation, pas
de compilateur adapté, …
Lucent DSP16xx et DSP16xxx
76
Ajouter des fonctionnalités SIMD
ƒ
ƒ
ƒ
ƒ
Deux façons d’implémenter le
SIMD :
• Séparer les unités d’exécution
(comme extensions
processeurs généralistes).
• Plusieurs unités d’exécution
(ou chemins de données).
Exemple : AD ADSP 2116X, …
Challenge : tirer partie du SIMD
dans les algorithmes et
l’organisation des données.
- : besoin d’une large bande
passante.
Analog Device ADSP 2106X et 2116X
77
Utiliser l’approche VLIW
ƒ
ƒ
ƒ
ƒ
Plusieurs opérations
indépendantes par cycle.
Exemples : TI TMS320C6200,
Philips TM1000, Trimédia, Siemens
Infineon Carmel, StarCore 140, …
+ : augmenter la performance.
Architecture « régulière » plus
facile à programmer. Meilleur
compilateur que DSP classiue.
Redimensionnable (?).
- : tenir compte des pipelines et
de la latence des instructions pour
la performance. Augmentation de
la taille du code. Problème de
bande passante. Consommation.
TI C62xx
78
Un exemple : StarCore SC140
ƒ
ƒ
ƒ
ƒ
DSP VLIW 16 bits de
Lucent/Motorola.
Utilise instructions 16 bits (au
lieu de 32) : densité de code.
Pipeline très simple (5 étages
au lieu de 11 comme dans le
C62xx), un cycle de latence
pour toutes les instructions.
Architecture plus efficace côté
consommation et différents
niveaux de tension.
79
Un exemple VLIW + SIMD :
AD TigerSHARC
4 instructions 32 bits en parallèle.
Architecture Load/store.
8 MACs 16 bits par cycle (40 bits),
2 MACs 32 bits cycle with (80
bits), …
128 registres généraux.
Instructions SIMD (Singe
Instruction, Multiple Data).
Exécution prédiquée pour toutes les
instructions.
80
Utiliser l’approche superscalaire
ƒ
ƒ
ƒ
ƒ
Intégrer prédiction de
branchement, cache, ILP,
RISC.
Exemple (le seul) : ZSP
164xx.
+ : très bonne performance,
facile à programmer, outils
supportés, taille code
raisonnable, compatibilité
binaire, …
- : problème pour prédire le
temps, consommation, …
ZSP164xx : DSP superscalaire 4-way (IO).
RISC. Deux MACs et deux ALUs. Caches.
81
Comparaison des performances
(exemple : FIR)
82
VLIW
Enhanced conv + SIMD
enhanced conventional
VLIW
conventional
Comparaison de la consommation
(exemple : FIR)
83
superscalar
VLIW
enhanced conventional
enhanced conventional
VLIW
conventional
Comparaison de la taille
mémoire (exemple : FIR)
84
Approches hybrides
ƒ
ƒ
ƒ
Beaucoup d’applications sont un mélange de traitements de
contrôle (microcontrôleur) et de signal (DSP). Jusqu’à
récemment 2 processeurs distincts.
Utiliser un seul processeur pour implémenter les différentes
fonctionnalités : conception plus simple, réduire taille et
consommation, réduire coût du système.
Exemples : Piccolo + ARM7, Hitachi SH-DSP, Siemens
TriCore, …
85
GP à la place de EP
ƒ
Ajout sur les processeurs généralistes actuelles d’extensions
SIMD (Single Instruction Multiple Data) adaptées au
traitement des applications multimédia (vidéo , audio,
graphique, animation, ...).
ƒ
Exemples :
• Sun (UltraSPARC 1/2) avec VIS (Visual Instruction Set).
• Intel (Pentium I/II/III/IV) avec MMX + SSE (ajout du
flottant).
• Motorola (PowerPC) avec AltiVec.
• ...
ƒ
GP peuvent exécuter des tâches de traitement du signal plus
vite...
86
GP à la place de EP (suite)
Mais coût, consommation, prévision du temps d’exécution, …
87
Applications multimédia
ƒ
ƒ
ƒ
Applications multimédia : codage, décodage vidéo, graphisme,
audio, reconnaissance et synthèse de la parole,
modulation/démodulation.
2 classes d’applications multimédia :
• statiques : images, son, ... challenges mineurs qui seront
sans doute rapidement satisfaits. Ce que peut percevoir
l’homme est limité...
• dynamiques : vidéoconférence, graphisme 3D, animation,
reconnaissance de la parole, de l’écriture, …challenges
majeurs.
Puissance de calcul.
Intéressent “fortement” les 2 mondes... “Point de rencontre” ?
88
Téléchargement