Universit´
e Catholique de Louvain
M´
emoire
Conception d’une microarchitecture
SMT avec ordonnancement hardware
pour applications temps r´eel
Auteur:
Martin Donies
Promoteur:
Dr. Jean-Didier Legat
M´emoire remis pour l’obtention
du Master en Science de l’ing´enieur en ´electricit´e
.
Electricit´e et t´el´ecomunication
Aoˆut 2016
Universit´e Catholique de Louvain
Abstract
Ecole Polytechnique de Louvain
Electricit´e et t´el´ecomunication
Master en Science de l’ing´enieur en ´electricit´e
Conception d’une microarchitecture SMT avec ordonnancement hardware
pour applications temps r´eel
par Martin Donies
Les techniques employ´ees pour am´eliorer le d´ebit d’instructions des microprocesseurs
peuvent avoir un impact sur la pr´edictibilit´e des ex´ecutions et l’exploitation du par-
all´elisme peut introduire un surcoˆut li´e `a leur gestion. Ce m´emoire propose une ap-
proche de conception d’une microarchitecture processeur visant `a r´esoudre ces deux
probl´ematiques conjointement. Il sera montr´e exp´erimentalement qu’il est possible
d’obtenir un temps d’ex´ecution et un temps de r´eponse d´eterministe sans impacter
le taux d’utilisation du processeur. Il sera aussi montr´e que cette approche permet
d’´eliminer le coˆut en performance des changements de contexte et de l’ordonnancement
multi-tˆaches.
Remerciements
Je tiens `a remercier mon promoteur, Jean-Didier Legat, pour ses conseils avis´es et pour
l’autonomie qu’il m’a laiss´ee concernant mon choix de recherche. Je tiens aussi `a re-
mercier Juliette Stephany pour avoir accept´e de subir un cours acc´el´er´e sur les microar-
chitectures processeur et pour sa relecture ainsi que Florentin Rochet pour ses conseils
et sa relecture.
ii
Table des mati`eres
Abstract i
Remerciements ii
Table des mati`eres iii
Liste des Figures v
Liste des Tables vii
Abr´eviations viii
Introduction 1
1 L’ordonnancement de processus 3
1.1 Objectifs ..................................... 3
1.2 Fonctionnement g´en´eral ............................ 4
1.2.1 Niveaux d’ordonnancement ...................... 5
1.2.2 Ordonnancement multi-processeur .................. 6
1.2.3 Ordonnancement multi-threads .................... 8
1.3 Crit`eres de caract´erisation des processus ................... 11
1.3.1 Niveaux d’autorisations ........................ 12
1.3.2 Utilisation des ressources ....................... 12
1.3.3 P´eriodicit´e ............................... 13
1.3.4 Contraintes temporelles ........................ 13
1.4 Crit`eres d’´evaluation des ordonnanceurs ................... 13
1.4.1 Orient´e performance du syst`eme ................... 14
1.4.2 Orient´e performance d’un processus ................. 14
1.4.3 Orient´e contraintes ........................... 15
1.4.4 Crit`eres ind´ependants des processus ................. 15
1.5 Ordonnancement hardware .......................... 17
1.5.1 Aper¸cu des travaux ´etudi´es ...................... 17
1.5.2 Impact sur les performances ...................... 18
1.6 Conclusion ................................... 21
2 Architectures, microarchitectures et ordonnancement d’instructions 22
2.1 Control-Flow et Dataflow ........................... 25
iii
Table des mati`eres iv
2.2 RISC et CISC .................................. 26
2.3 Parall´elisme - ILP et TLP ........................... 28
2.3.1 Architecture s´equentielle : Superscalaire - ILP ........... 30
2.3.2 Architecture `a ind´ependances explicites : VLIW - ILP ....... 32
2.3.3 Microarchitecture multiprocesseurs on-chip - TLP ......... 32
2.3.4 Microarchitecture multi-threads - TLP ................ 34
2.4 Solutions hybrides ............................... 36
2.5 Gestion des contraintes d’ex´ecution (Hazards) ................ 37
2.6 Gestions des branches d’ex´ecution et ex´ecution sp´eculative ......... 39
2.7 Micro-architectures et temps r´eel strict .................... 41
2.8 Conclusion ................................... 42
3 Impl´ementation d’une microarchitecture SMT avec ordonnancement
hardware 43
3.1 Le MIPS ..................................... 45
3.2 Microarchitecture MIPS modifi´ee ....................... 48
3.2.1 Ordonnanceur hardware ........................ 50
3.2.2 Encodeur d’adresses virtuelles ..................... 53
3.2.3 D´ecodeur d’instructions ........................ 55
3.2.4 Register File .............................. 57
3.2.5 M´emoire D-Cache ........................... 60
3.2.6 ´
Etage d’ex´ecution ........................... 62
3.2.7 Pipeline `a deux voies .......................... 63
3.3 Mode op´eratoire ................................ 67
3.4 Logiciel de contrˆole ............................... 69
3.4.1 Assembleur et configurateur de programmes ............. 70
3.4.2 Contrˆole du processeur ......................... 71
3.5 R´esultats .................................... 72
3.5.1 Mesures et validation ......................... 73
3.5.2 Le microprocesseur ........................... 77
3.5.3 L’ordonnanceur hardware ....................... 81
Conclusion 85
Bibliographie 87
1 / 100 100%