Architecture des processeurs extensibles

Tรฉlรฉcharger le fichier pdf d’un mรฉmoire de fin d’รฉtudes

Mยดethodologie MESCAL

La mยดethodologie MESCAL [94, 109] propose de concevoir un ASIP autour de cinq elยดements essentiels.
1. Elยดement 1 : ยซ Judiciously Using Benchmarking ยป, utiliser les applications de mani`ere judicieuse. Le dยดeveloppement dโ€™un ASIP est par dยดefinition dirigยดe par les applications cibles. La conception est souvent guidยดee par un ensemble dโ€™applications de rยดefยดerence, qui doivent ห†etre reprยดesentatives du domaine dโ€™applications visยดe.
2. Elยดement 2 : ยซ Inclusively Identify the Architectural Space ยป, identifier lโ€™es-pace architectural complet. Lโ€™espace de conception dโ€™un ASIP consiste en un large ยดeventail de possibilitยดes selon plusieurs dimensions. Si lโ€™espace entier nโ€™a pas besoin dโ€™ห†etre considยดerยด pour un domaine dโ€™applications prยดecis, il est important que la base de conception initiale puisse inclure une large gamme de dยดeclinaisons possibles. En e๏ฌ€et, ยดecarter d`es le dยดebut un espace de conception peut ยดeliminer certaines architec-tures intยดeressantes.
3. Elยดement 3 : ยซ E๏ฌƒciently Describe and Evaluate the ASIPs ยป, dยดecrire et ยดevaluer e๏ฌƒcacement lโ€™ASIP. Pour considยดerer une gamme de dยดeclinaisons de lโ€™archi-tecture la plus large possible, il est important de pouvoir dยดecrire et ยดevaluer lโ€™ASIP pour les applications considยดerยดees. Les outils logiciels correspondants a` lโ€™ASIP doivent donc ห†etre disponibles.
4. Elยดement 4 : ยซ Comprehensively Explore the Design Space ยป, explorer lโ€™espace de conception de mani`ere approfondie. Lโ€™exploration de lโ€™espace de conception est un processus itยดeratif avec asservissement o`u chaque point de conception est evaluยด selon une mยดetrique. Lโ€™exploration est rยดealisยดee grห†ace a` un environnement qui permet de compiler lโ€™application pour lโ€™architecture et de simuler lโ€™exยดecution pour obtenir des rยดesultats quantitatifs et apprยดecier les performances. Lโ€™aspect clยดe est de pouvoir recibler rapidement les outils pour chaque point de conception.
5. Elยดement 5 : ยซ Successfully Deploy the ASIP ยป, dยดeployer lโ€™ASIP avec succ`es. Un ASIP peut ห†etre ultra performant en proposant une adยดequation excellente entre lโ€™application et lโ€™architecture et a` la fois compl`etement sous exploitยด si il est mal programmยดe. Programmer un ASIP directement en assembleur est impensable au-jourdโ€™hui ยดetant donnยดee la complexitยด des applications et les temps de dยดeveloppement tr`es limitยดes. Il est donc important de disposer dโ€™un compilateur su๏ฌƒsamment puis-sant pour exploiter au maximum les capacitยดes dโ€™une architecture.
De la mห†eme faยธcon, un compilateur puissant est sous exploitยด si lโ€™architecture est peu adaptยดee a` lโ€™application, et un compilateur et une architecture ne peuvent que faible-ment amยดeliorer les performances dโ€™une application mal dยดecrite. La conception dโ€™un ASIP conduit idยดealement a` une adยดequation parfaite entre lโ€™algorithme, lโ€™architecture, et le com-pilateur.
La mยดethode de conception compl`ete propose de gยดenยดerer un processeur et sa suite dโ€™ou-tils associยดes `a partir dโ€™un mห†eme mod`ele du processeur pour garantir lโ€™adยดequation entre lโ€™architecture et le compilateur. Lโ€™application est gยดenยดeralement dยดecrite dans un langage de haut niveau. Nous avons vu `a travers lโ€™exemple du langage LISA que le processus nโ€™est pas enti`erement automatisยดe et quโ€™il faut toujours mettre en ล“uvre manuellement certaines parties critiques du processeur pour aboutir `a un processeur optimisยดe. Chaque nouveau processeur doit ห†etre vยดerifiยด et optimisยดe, ce qui entraห†ฤฑne des coห†uts dโ€™ingยดenierie non rยดecurrents.
Pour rยดeduire ces coห†uts, une autre approche de conception dโ€™ASIP vise `a considยดerer un processeur existant et `a concevoir seulement la partie dยดediยดee, cโ€™est la conception partielle qui est maintenant dยดecrite.

Conception partielle dโ€™ASIP

La conception partielle consiste a` partir dโ€™un processeur existant, vยดerifiยด et optimisยดe, qui poss`ede sa suite dโ€™outils associยดes (compilateur, simulateur, etc), a` le configurer, et a` ยดetendre son jeu dโ€™instructions pour le spยดecialiser en regard des exigences dโ€™une application ou dโ€™un domaine dโ€™applications. Ce type de processeur est configurable a` travers des elยดements comme la file de registres, la profondeur du pipeline, la prยดesence ou non de multiplieurs, etc. Par ailleurs, ce type de processeur dispose de mยดecanismes pour ajouter facilement une nouvelle instruction au jeu dโ€™instructions, et pour quโ€™elle soit prise en compte par le compilateur. En gยดenยดeral, cette technique demande au concepteur de fournir une description architecturale de la nouvelle instruction et de modifier manuellement le code applicatif qui fait appel a` la nouvelle instruction. Dans un premier temps, nous donnons un exemple de processeur configurable et extensible, puis nous passons en revue les autres architectures existantes. Ensuite, nous dยดecrivons les mยดethodologies et techniques de compilation qui permettent dโ€™automatiser le processus dโ€™extension de jeu dโ€™instructions.

Exemple

Pour illustrer ce quโ€™est un processeur configurable et extensible, nous proposons dโ€™ยดetu-dier le processeur NIOSII. Cโ€™est le processeur que nous avons choisi dโ€™utiliser pour valider notre mยดethodologie et nos outils dยดeveloppยดes pendant cette th`ese. Prยดesenter ce processeur en dยดetail permet de bien comprendre les aspects dยดecrits tout au long du document.
Le processeur NIOSII est un processeur RISC (Reduced Instruction Set Computer ) 32 bits dยดeclinยด en trois versions : une premi`ere version dite ยซ ยดeconomique ยป, une deuxi`eme dite ยซ standard ยป, et une troisi`eme dite ยซ rapide ยป (Nios2Fast ). La grande di๏ฌ€ยดerence entre les trois versions se situe au niveau du nombre dโ€™ยดetages de pipeline. La dยดeclinaison ยดeconomique du NIOSII est un processeur qui poss`ede un seul ยดetage de pipeline, et chaque instruction nยดecessite 6 cycles pour ห†etre exยดecutยดee. Un NIOSII standard a cinq ยดetages de pi-peline. Le Nios2Fast en a six. Un processeur NIOSII a une file de registres de 32 registres de 32 bits. Une liste non exhaustive des aspects configurables du processeur NIOSII est donnยดee :
– prยดesence de multiplieurs ou non,
– unitยดe de gestion mยดemoire (MMU),
– taille du cache et des mยดemoires,
– vecteur dโ€™interruptions,
– module de debug JTAG,
– etc.

Architecture des processeurs extensibles

Le processeur NIOSII est un exemple de processeur extensible, mais il existe dโ€™autres solutions architecturales. Nous proposons une classification de ces ASIP a` travers trois crit`eres : le mod`ele dโ€™exยดecution, le couplage, et la technologie.

Mod`ele dโ€™exยดecution

Un processeur peut exploiter deux formes de parallยดelisme pour accยดelยดerer les traite-ments : le parallยดelisme temporel, et le parallยดelisme spatial. Ces deux formes de parallยดelisme sont illustrยดees par la figure 1.11.
Pour exยดecuter une instruction, un processeur e๏ฌ€ectue une sยดerie de tห†aches : rยดecupยดerer lโ€™instruction dans la mยดemoire et la charger dans le registre dโ€™instruction, modifier la valeur du compteur ordinal (compteur dโ€™instruction), dยดeterminer le genre dโ€™instruction venant dโ€™ห†etre chargยดee, exยดecuter lโ€™instruction, retourner a` la premi`ere ยดetape pour exยดecuter lโ€™ins-truction suivante. Implยดementer un chemin de donnยดee qui rยดealise toutes ces tห†aches en un cycle rยดesulte en un chemin critique tr`es long qui contraint la vitesse dโ€™horloge du proces-seur. Le parallยดelisme temporel, connu sous le nom de technique du pipeline (pipelining ), consiste a` casser le chemin critique en dยดecomposant les instructions en de nombreuses sec-tions elยดementaires, chacune pouvant ห†etre exยดecutยดee en parall`ele par un composant matยดeriel spยดecifique. Lโ€™architecture ICORE illustrยดee par la figure 1.3 est composยดee de quatre ยดetages de pipeline.
Le parallยดelisme spatial est lโ€™exยดecution en parall`ele et au mห†eme instant de plusieurs instructions non dยดependantes en donnยดees. Lโ€™exemple de la figure 1.11 met en exergue lโ€™exยดecution de deux additions et une multiplication au mห†eme moment, puis de deux mul-tiplications. Cโ€™est le parallยดelisme au niveau instruction.
Un processeur peut suivre plusieurs mod`eles dโ€™exยดecution que nous ne dยดetaillons pas ici, et un ASIP suit en gยดenยดeral deux mod`eles dโ€™exยดecution tr`es rยดepandus : le mod`ele dโ€™exยดecution RISC, et le mod`ele VLIW.
Mod`ele dโ€™exยดecution RISC. Un processeur RISC (Reduced Instruction Set Compu-ter ) est un processeur possยดedant un jeu dโ€™instructions rยดeduit. Son mode dโ€™exยดecution, aussi appelยด single-issue, est le mode dโ€™exยดecution le plus simple. Il correspond au mode de fonc-tionnement SISD (Single Instruction Single Data) selon la taxonomie dยดefinie par Flynn [76] et est basยดe sur une architecture de Von Neumann. Dans ce mode dโ€™exยดecution, une seule instruction est exยดecutยดee a` la fois. De nombreux ASIP suivent ce mode dโ€™exยดecution : Garp [175], Chimaera [212], OneChip [204], etc. Lโ€™exemple de la figure 1.11 illustre ce fonctionnement o`u les instructions sont exยดecutยดees une par une, et se partagent lโ€™unique unitยดe fonctionnelle du processeur.
Mod`ele dโ€™exยดecution VLIW. Un processeur VLIW (Very Long Instruction Word ) est un processeur comprenant plusieurs slots dโ€™exยดecution, cโ€™est-a`-dire plusieurs unitยดes fonction-nelles capables de sโ€™exยดecuter en parall`ele. Un processeur VLIW est donc capable dโ€™exยดecuter en mห†eme temps plusieurs instructions sur plusieurs donnยดees. Pour pouvoir encoder toutes ses informations (instructions a` exยดecuter et registres opยดerandes), le mot de lโ€™instruction doit ห†etre tr`es long, dโ€™o`u le nom de processeur a` mot dโ€™instructions tr`es long (128 bits par exemple au lieu de 32 bits pour un processeur RISC). Un processeur VLIW permet dโ€™exploiter le parallยดelisme au niveau instruction. Cโ€™est le compilateur qui a la charge de dยดetecter le parallยดelisme et de gยดenยดerer le code capable dโ€™exploiter les unitยดes fonctionnelles. De nombreux processeurs DSP sโ€™appuient sur ce type de mod`ele dโ€™exยดecution, comme par exemple le TCI6487 de Texas Instruments [191]. Le nombre de slots dโ€™exยดecution varie selon lโ€™architecture. Par exemple, le nombre de slots de lโ€™architecture ADRES [151] est paramยดetrable.
Dans [118], les auteurs prยดesentent une architecture basยดee sur un processeur VLIW a` quatre PE (Processing Element ), enti`erement mise en ล“uvre dans un FPGA. Chaque PE contient une UAL et un module qui peut accueillir des instructions spยดecialisยดees. Lโ€™archi-tecture PADDI [213] prยดesente ยดegalement un mod`ele dโ€™exยดecution VLIW o`u chaque slot dโ€™exยดecution est un nanoprocesseur.

Couplage

La spยดecialisation partielle consiste a` ajouter un module qui met en ล“uvre les instruc-tions spยดecialisยดees. Ce module spยดecialisยด peut ห†etre intยดegrยด a` di๏ฌ€ยดerents endroits. Les approches architecturales de lโ€™intยดegration de la logique spยดecialisยดee di๏ฌ€`erent selon le degrยด de couplage entre la logique spยดecialisยดee et le processeur a` usage gยดenยดeral. Nous distinguons trois degrยดes de couplage, illustrยดes par la figure 1.12 :
1. Unitยดes fonctionnelles โ€“ couplage fort
2. Co-processeurs โ€“ couplage lห†ache
3. Unitยดes de traitement attachยดees ou externes โ€“ couplage tr`es lห†ache
Unitยดes fonctionnelles. Dans ce cas de figure, la logique spยดecialisยดee est fortement couplยดee au chemin de donnยดees du processeur, en parall`ele de lโ€™UAL du processeur. Cette unitยดe est accessible a` travers des instructions spยดecialisยดees du jeu dโ€™instructions du processeur. Ces ar-chitectures font partie de la classe DEMETER dโ€™apr`es la classification proposยดee par [172]. Un des pionniers en la mati`ere est lโ€™architecture PRISC [175, 174], qui combine un processeur RISC avec des PFU (Programmable Functionnal Unit ). Chaque PFU met en ล“uvre une fonction combinatoire a` deux entrยดees et produit un rยดesultat. Lโ€™architecture OneChip [204]

Mยดethodologie

Lโ€™exemple de lโ€™extension du jeu dโ€™instructions du processeur NIOSII a mis en ยดevidence les ยดetapes manuelles rยดealisยดees par le concepteur (description de lโ€™architecture de lโ€™instruc-tion et adaptation du code applicatif ). Pour des applications complexes, ce processus est fastidieux et sujet a` erreur. Cโ€™est pourquoi il est important de disposer dโ€™une mยดethodologie pour dยดetecter automatiquement les portions de code a` dยดeporter en matยดeriel, et des outils pour la gยดenยดeration automatique de lโ€™architecture des instructions spยดecialisยดees et du code applicatif qui exploite ces instructions.

Granularitยดe

La spยดecialisation peut avoir lieu a` di๏ฌ€ยดerents niveaux de granularitยดe2. Nous distinguons deux niveaux : grain fin et gros grain. La spยดecialisation a` grain fin op`ere au niveau ins-truction et met en ล“uvre matยดeriellement un petit ensemble dโ€™opยดerations [25, 28, 55]. La spยดecialisation a` gros grain op`ere au niveau boucle ou procยดedure, et dยดeporte une boucle ou une procยดedure enti`ere sur du matยดeriel dยดediยด [31, 90, 101, 174, 203]. Le compilateur C2H dโ€™Altera [17] et lโ€™outil Cascade de CriticalBlue [65] comptent parmi les outils commerciaux qui proposent une solution automatisยดee de synth`ese de co-processeur a` partir dโ€™une fonc-tion ยดecrite en langage C. La communication entre le processeur et le co-processeur ne fait pas appel au mยดecanisme dโ€™extension de jeu dโ€™instructions.
Chacune de ces granularitยดes prยดesente des avantages et des inconvยดenients. Si la spยดeciali-sation a` gros grain permet dโ€™obtenir dโ€™importantes accยดelยดerations, sa flexibilitยด est limitยดee. En e๏ฌ€et, il est peu probable que plusieurs applications poss`edent exactement le mห†eme cล“ur de boucle ou la mห†eme procยดedure. A lโ€™inverse, plus la spยดecialisation est fine et plus la probabilitยดe de trouver une mห†eme suite dโ€™opยดerations, dans un ensemble dโ€™algorithmes, est grande. Par exemple, lโ€™opยดeration MAC (Multiply-ACcumulate) est tr`es prยดesente dans les applications du traitement du signal.

Automatisation

La figure 1.15 illustre une mยดethodologie gยดenยดerique appliquยดee lors dโ€™un processus clas-sique dโ€™extension de jeux dโ€™instructions. Cette mยดethodologie se distingue de la mยดethodologie de conception compl`ete au niveau de lโ€™ยดetape de gยดenยดeration du jeu dโ€™instructions. Lโ€™exten-sion dโ€™un jeu dโ€™instructions consiste `a gยดenยดerer un ensemble dโ€™instructions spยดecialisยดees candi-dates, puis `a sยดelectionner un sous-ensemble de ces instructions. Comme pour la conception compl`ete, le processus peut ห†etre itยดeratif, et le jeu dโ€™instructions est progressivement enrichi de nouvelles instructions. Lorsque le processus nโ€™est pas itยดeratif, il sโ€™agit de gยดenยดerer, en une seule passe, la meilleure architecture possible avec les contraintes de conception appliquยดees en entrยดee.

Motifs gยดenยดerยดes vs motifs prยดedยดefinis

Un motif est un groupe dโ€™opยดerations elยดementaires. Lโ€™opยดeration MAC (Multiply-Accu-mulate), tr`es prยดesente dans les applications du traitement du signal est un exemple typique de motif.
Les techniques de spยดecialisation de processeur sโ€™appuient sur deux approches di๏ฌ€ยดerentes : soit il existe une biblioth`eque de motifs prยดedยดefinis (comme par exemple le MAC), soit cette biblioth`eque est gยดenยดerยดee a` partir de lโ€™application cible.
Dans le cas o`u une biblioth`eque de motifs est utilisยดee, le processus se rยดesume a` lโ€™ยดetape de sยดelection dโ€™instructions. Il faut alors analyser lโ€™application pour trouver quelles instructions de la biblioth`eque sont nยดecessaires, cโ€™est-a`-dire trouver les occurrences des motifs dans le graphe dโ€™application. Cโ€™est le probl`eme de lโ€™isomorphisme de sous-graphes. Plusieurs approches sโ€™appuient sur lโ€™existence dโ€™une biblioth`eque de motifs [57, 173, 142].
Cependant, afin de disposer dโ€™instructions vraiment adaptยดees a` lโ€™application cible et gagner en performance, la plupart des approches construisent la biblioth`eque en gยดenยดerant les instructions candidates [29, 44, 48, 86, 167, 217, 219].
Dans le cadre de nos travaux, cโ€™est lโ€™approche qui est retenue.

Gยดenยดeration dโ€™instructions

La gยดenยดeration dโ€™instructions, lโ€™identification dโ€™instructions, ou la dยดecouverte dโ€™instruc-tions dยดesignent le mห†eme processus : la dยดetermination des sous-graphes, a` partir dโ€™un graphe dโ€™application cible, candidats potentiels a` une mise en ล“uvre en matยดeriel. Elle constitue la premi`ere ยดetape du processus dโ€™extension de jeu dโ€™instructions. Pour des raisons liยดees a` la prise en compte de lโ€™architecture et de la technologie, cette ยดetape est souvent sujette a` des contraintes. Les contraintes les plus courantes concernent le nombre dโ€™entrยดees et de sorties des motifs, la surface, et la consommation dโ€™ยดenergie. De plus, certaines instructions de lโ€™application ne sont pas appropriยดees a` une mise en ล“uvre matยดerielle. Par exemple, les ins-tructions de contrห†ole sont en gยดenยดeral exclues. Ces nล“uds indยดesirables sont appelยดes nล“uds interdits. De la mห†eme faยธcon, de nombreux travaux excluent les instructions de chargement et de rangement (load,store) [30, 57, 186, 166].

Complexitยด de lโ€™exploration

Lโ€™application ยดetant reprยดesentยดee sous forme de graphe, la gยดenยดeration dโ€™instructions sโ€™ap-parente au probl`eme de gยดenยดeration de sous-graphes ou motifs, o`u chaque sous-graphe est un candidat. Dans le cas gยดenยดeral, chaque nล“ud du graphe peut faire partie ou non dโ€™un candidat, ce qui entraห†ฤฑne un nombre de combinaisons en O(2n), o`u n est le nombre de nล“uds du graphe.
Lโ€™ยดenumยดeration exhaustive de tous les sous-graphes est en temps exponentiel, et nโ€™est donc pas applicable pour des exemples rยดealistes. Cette complexitยด rend le probl`eme in-traitable. Beaucoup de techniques ont etยดe proposยดees pour rยดesoudre ce probl`eme, elles sont dยดetaillยดees dans la section 2.3. Nous verrons quโ€™en imposant des contraintes sur les motifs, lโ€™espace de recherche peut ห†etre grandement rยดeduit. Une des premi`eres contraintes est la contrainte de connexitยด : un motif peut ห†etre connexe ou non-connexe.

Motif connexe vs non-connexe

Un motif connexe est un motif tel que pour toute paire de nล“uds, il existe un chemin entre les deux nล“uds. Un motif non-connexe est un motif qui ne satisfait pas cette condi-tion. Les motifs non-connexes font apparaห†ฤฑtre plus de parallยดelisme au niveau instructions, donc potentiellement de meilleurs gains. Malgrยดe les possibilitยดes de meilleures accยดelยดerations, la plupart des auteurs se limitent a` la gยดenยดeration de motifs connexes [25, 57, 62]. La fi-gure 2.2 illustre deux motifs, le premier est connexe 2.2(a), et le second non-connexe 2.2(b).

Le rapport de stage ou le pfe est un document dโ€™analyse, de synthรจse et dโ€™รฉvaluation de votre apprentissage, cโ€™est pour cela chatpfe.com propose le tรฉlรฉchargement des modรจles complet de projet de fin dโ€™รฉtude, rapport de stage, mรฉmoire, pfe, thรจse, pour connaรฎtre la mรฉthodologie ร  avoir et savoir comment construire les parties dโ€™un projet de fin dโ€™รฉtude.

Table des matiรจres

Introduction
1 Conception dโ€™ASIP : mยดethodologies et outilsย 
1.1 Conception compl`ete dโ€™ASIP
1.1.1 Exemple du langage LISA
1.1.2 Mยดethodologie
1.2 Conception partielle dโ€™ASIP
1.2.1 Exemple
1.2.2 Architecture des processeurs extensibles
1.2.3 Mยดethodologie
1.2.4 Compilation
1.3 Synth`ese
2 Lโ€™extension de jeu dโ€™instructionsย 
2.1 Quels sont les probl`emes `a rยดesoudre ?
2.1.1 Motifs gยดenยดerยดes vs motifs prยดedยดefinis
2.1.2 Gยดenยดeration dโ€™instructions
2.1.3 Limites architecturales et technologiques
2.1.4 Sยดelection dโ€™instructions
2.1.5 Isomorphisme de graphes et de sous-graphes
2.1.6 Exploitation des nouvelles instructions
2.2 Quand les rยดesoudre ?
2.2.1 A la conception
2.2.2 A la volยดee
2.3 Comment les rยดesoudre ?
2.3.1 Recherche Tabou
2.3.2 Recuit simulยดe
2.3.3 Algorithme gยดenยดetique
2.3.4 Algorithme de colonies de fourmis
2.3.5 Programmation dynamique
2.3.6 Algorithmes gloutons
2.3.7 Heuristiques
2.3.8 Sยดeparation et ยดevaluation
2.3.9 Programmation linยดeaire par nombres entiers
2.3.10 Programmation par contraintes
2.3.11 Comparaison des approches
2.4 Synth`ese
3 Lโ€™identification dโ€™instructionsย 
3.1 Dยดefinitions
3.2 Algorithme de gยดenยดeration de motifs
3.2.1 Expansion dโ€™un motif `a partir dโ€™un nล“ud graine
3.2.2 Limitation du nombre de motifs : Smart filtering
3.2.3 La contrainte GraphMatch
3.3 Contraintes technologiques et architecturales
3.4 Formalisation pour la programmation par contraintes
3.4.1 Contrainte de connexitยดe
3.4.2 Contrainte sur le nombre dโ€™entrยดees et de sorties
3.4.3 Contrainte sur le chemin critique
3.4.4 Contrainte de ressources
3.4.5 Contrainte dโ€™ยดenergie
3.5 Rยดesultats dโ€™expยดerimentations
3.5.1 Le processeur cible
3.5.2 Environnement dโ€™exยดecution
3.5.3 Benchmarks
3.5.4 Couverture maximale
3.5.5 Discussion
3.6 Conclusion
4 Sยดelection dโ€™instructions et ordonnancementย 
4.1 Sยดelection dโ€™instructions
4.1.1 Dยดefinition dโ€™une occurrence
4.1.2 Dยดefinition du probl`eme de sยดelection dโ€™instructions
4.1.3 Modยดelisation du temps dโ€™exยดecution dโ€™une occurrence
4.1.4 Rยดesultats dโ€™expยดerimentation
4.2 Ordonnancement
4.2.1 Placement
4.2.2 Ordonnanceur
4.2.3 Ordonnancement avec recalage dโ€™instructions
4.2.4 Optimisation sur les transferts de donnยดees
4.2.5 Rยดesultats dโ€™expยดerimentation
4.3 Conclusion
5.1 Architecture de lโ€™extension
5.1.1 Diffยดerents types dโ€™instructions spยดecialisยดees
5.1.2 Mod`eles dโ€™architecture
5.2 Allocation de registres
5.2.1 Contrainte Diff2
5.2.2 Allocation de registres appliquยดee au mod`ele A
5.2.3 Allocation de registres appliquยดee au mod`ele B
5.3 Gยดenยดeration des codes dโ€™opยดeration et de la description de lโ€™architecture
5.3.1 Gยดenยดeration des codes dโ€™opยดerations
5.3.2 Gยดenยดeration du bloc logique spยดecialisยดe
5.3.3 Gยดenยดeration du chemin de donnยดee des instructions spยดecialisยดees
5.3.4 Fusion du chemin de donnยดees
5.4 Gยดenยดeration du code source modifiยดe
5.5 Gยดenยดeration pour la simulation SystemC
5.5.1 SystemC
5.5.2 SoCLib
5.5.3 Gยดenยดeration des instructions spยดecialisยดees pour le mod`ele du NiosII . 136
5.6 Conclusion
6 Dยดeroulement du flot appliquยดe `a lโ€™algorithme GOST 139
6.1 Le flot de conception DURASE
6.1.1 Gecos
6.2 Lโ€™algorithme de chiffrement GOST
6.3 Dยดeroulement du flot ยดetape par ยดetape appliquยดe `a lโ€™algorithme de chiffrement
GOST
6.3.1 Param`etres dโ€™entrยดee
6.3.2 Partie frontale
6.3.3 Crยดeation dโ€™une extension
6.3.4 Gยดenยดeration dโ€™architecture
6.3.5 Adaptation du code
6.3.6 Validation par simulation avec SoCLib
6.3.7 Rยดesumยดe
6.4 Proposition dโ€™architecture
6.5 Conclusion
Conclusion 167
Publications 171
Bibliographie 173

Tรฉlรฉcharger le rapport complet

Tรฉlรฉcharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiรฉe. Les champs obligatoires sont indiquรฉs avec *