Les processeurs ARM

Processeurs ARM

De nos jours, les processeurs ARM dominent largement le marchรฉ de lโ€™รฉlectronique embarquรฉe. En 2014, on a dรฉnombrรฉ 12 milliards de puces en circulation qui utilisent la propriรฉtรฉ intellectuelle ARM (Vijay & Bansode, 2015). Lโ€™adoption ร  grande รฉchelle des processeurs ARM a รฉtรฉ favorisรฉe par la simplicitรฉ de leur architecture, leurs performances et leur grande efficacitรฉ รฉnergรฉtique. Les noyaux ARM se distinguent de la concurrence par leur modรจle de mise en marchรฉ. Ces noyaux sont vendus sous la forme de propriรฉtรฉ intellectuelle aux grands manufacturiers (Samsung, Texas Instrument, etc.). Ces derniers les intรจgrent avec dโ€™autres pรฉriphรฉriques, dans le cadre dโ€™une implรฉmentation spรฉcifique, pour produire des microcontrรดleurs, des processeurs ou des SoC (System On Chip). Ces circuits sont produits ร  grande รฉchelle, par la suite, dans un laboratoire de semi-conducteurs. Les noyaux ARM implรฉmentent un jeu dโ€™instructions RISC (Reduced Instruction Set Computing) oรน la plupart des instructions sโ€™exรฉcutent en un cycle dโ€™horloge. Les instructions faisant partie du ARM ISA (Instruction set architecture) offrent, pour la plupart, des caractรฉristiques intรฉressantes comme les dรฉcalages intรฉgrรฉs ou lโ€™exรฉcution conditionnelle. Lโ€™architecture RISC impose la manipulation de la mรฉmoire par le biais des registres. Les noyaux ARM permettent des accรจs multiples ร  la mรฉmoire ร  travers les instructions LDM (Load Multiple), STM (Store Multiple) et leurs variantes.

Ces instructions permettent lโ€™รฉchange simultanรฉ de plusieurs valeurs avec la mรฉmoire selon la largeur du bus reliant cette derniรจre au processeur. Les processeurs ARM possรจdent diffรฉrents modes dโ€™opรฉrations et ces modes se qualifient de ยซย privilรฉgiรฉsย ยป sโ€™ils sโ€™exรฉcutent avec des mรฉcanismes de protection. Les modes privilรฉgiรฉs, comme les modes superviseur et systรจme, permettent lโ€™exรฉcution protรฉgรฉe des processus critiques du systรจme dโ€™exploitation, tandis que les modes FIQ (Fast Interrupt Request) et IRQ (Interrupt Request) permettent la gestion des interruptions. Le mode utilisateur, qui permet lโ€™exรฉcution de la majoritรฉ des applications, est un mode non privilรฉgiรฉ. En mode utilisateur, un noyau ARM dispose de 16 registres dont 13, ร  usage gรฉnรฉral ainsi quโ€™un registre de contrรดle et dโ€™รฉtat CPSR (Current Program Status Register). Le tableau 1.1. montre les fonctions des registres. Ces registres de 32 bits peuvent contenir des donnรฉes 8, 16, ou 32 bits selon la nature de la donnรฉe. Dans le cas dโ€™un registre contenant plusieurs donnรฉes, ces derniรจres sont manipulรฉes ร  lโ€™aide dโ€™un suffixe ajoutรฉ ร  lโ€™instruction. Le registre CPSR permet dโ€™activer les diffรฉrents modes dโ€™opรฉration ainsi que certaines extensions architecturales, telles quโ€™illustrรฉes ร  la figure 1.1 (Vijay & Bansode, 2015). Ce registre contient surtout les bits dโ€™รฉtat qui maintiennent les drapeaux conditionnels dโ€™รฉgalitรฉ, de signe, de dรฉpassement et de retenue. Les instructions conditionnelles sont exรฉcutรฉes selon la valeur de ces bits.

Premiers designs des processeurs asynchrones

La premiรจre implรฉmentation notable dโ€™un processeur asynchrone a รฉtรฉ introduite par Martin (1989) dans un projet de lโ€™Institut Caltech (California Institute of Technology). Ce processeur dispose dโ€™un bus de donnรฉes dโ€™une largeur de 16 bits et effectue les diffรฉrentes opรฉrations de traitement dโ€™un processeur RISC standard. Ces opรฉrations sont les calculs arithmรฉtiques et logiques sur des entiers, les accรจs ร  la mรฉmoire (รฉcriture et lecture) et les branchements. La synchronisation des diffรฉrents รฉlรฉments est basรฉe sur un รฉtablissement de liaison (Handshake). Cette approche a dรฉmontrรฉ la possibilitรฉ dโ€™implรฉmenter un processeur fonctionnel ne disposant pas de distribution dโ€™horloge et a permis dโ€™atteindre une performance estimรฉe ร  15 MIPS en technologie 2ฮผm. Lโ€™approche, dรฉcrite par Cho et al. (1992), introduit un processeur 32 bits entiรจrement asynchrone. Le FAM (Fully Asynchronous Microprocessor) implรฉmente une architecture endochrone ร  18 instructions utilisant 32 registres. Cette architecture possรจde un pipeline ร  quatre รฉtages : acquisition de lโ€™instruction, communication avec la mรฉmoire externe, dรฉcodage de lโ€™instruction et finalement lโ€™รฉtage dโ€™exรฉcution (permettant aussi dโ€™รฉcrire le rรฉsultat dans le fichier des registres). Un รฉtablissement de liaison ร  4 phases se fait entre les รฉtages adjacents du pipeline, pour synchroniser le transfert des donnรฉes entre ces derniers. Ce modรจle de communication est illustrรฉ ร  la figure 1.2. Dans ce modรจle, le bloc 1 envoie une requรชte (Rin) au module de communication pour lโ€™informer que les donnรฉes sont prรชtes.

Le module de communication dรฉclenche, dรจs lors, la bascule qui mรฉmorise les donnรฉes transmises par le bloc 1 ร  lโ€™aide dโ€™une communication bidirectionnelle (Lin et Lack) et notifie le bloc 2 de cette requรชte avec le signal Rout . Ce dernier transmet sa confirmation au bloc 1 par lโ€™entremise du module de communication (Ain et Aout ). Le transfert des donnรฉes se dรฉclenche et le bloc 1 envoie une requรชte de terminaison.

Dรจs lors que le bloc 2 reรงoit lโ€™ensemble des donnรฉes, il confirme la terminaison. ร€ la rรฉception de cette derniรจre Brunvand (1993), chercheur ร  lโ€™universitรฉ de lโ€™Utah, a dรฉveloppรฉ un processeur asynchrone dรฉnommรฉ NSR (Nonsynchronous Risc). Le NSR est un processeur 16 bits qui implรฉmente 16 instructions comprenant des opรฉrations logiques et arithmรฉtiques, des accรจs mรฉmoire et des branchements. Ce processeur est un amalgame de plusieurs blocs endochrones qui sont synchronisรฉs grรขce ร  un รฉtablissement de liaison ร  deux phases. Chaque bloc reprรฉsente une รฉtape du pipeline. Lโ€™utilisation de ces blocs dรฉpend de lโ€™instruction, de maniรจre ร  ce que chaque instruction utilise uniquement les blocs dont elle a besoin. La figure 1.3 (Werner & Akella, 1997), offre un aperรงu, ร  haut niveau, de cette architecture. Le NSR a รฉtรฉ implรฉmentรฉ sur FPGA et a permis dโ€™obtenir une performance de 1.3 MIPS (million dโ€™instructions par seconde).

Du fait de son implรฉmentation sur FPGA, les performances du NSR sont difficiles ร  comparer avec celles des autres processeurs, car les FPGA sont plus lents que les circuits ASIC (Application Specific Integrated Circuit) (Werner & Akella, 1997). Lโ€™architecture STRIP (A self timed RISC processor), publiรฉe par Dean (1992), est un exemple de processeur endochrone possรฉdant un systรจme de synchronisation particulier. Alors que la majoritรฉ des processeurs asynchrones utilisent un systรจme dโ€™รฉtablissement de liaison pour coordonner les tรขches de traitement, le STRIP utilise un systรจme dโ€™horloge dynamique. Ce systรจme repose sur des cellules de repรฉrage qui dรฉterminent le temps de propagation critique du chemin logique utilisรฉ pour gรฉnรฉrer un signal dโ€™horloge ayant une pรฉriode adรฉquate. Ce systรจme est prรฉsentรฉ ร  la figure 1.4 (Werner & Akella, 1997). En rรฉsumรฉ, cette architecture est synchrone avec une horloge qui sโ€™adapte ce qui permet dโ€™imposer un temps dโ€™exรฉcution selon la charge du traitement requis. Ceci est particuliรจrement utile dans le cas oรน une รฉtape de calcul ne nรฉcessite pas dโ€™accรจs ร  la mรฉmoire. La pรฉriode dโ€™horloge dans ce cas-ci sera considรฉrablement rรฉduite, car elle ne prendra pas en compte le chemin logique de la transaction avec la mรฉmoire. La performance moyenne de ce design est de 62.5 MIPS sur une technologie 2-ฮผm CMOS.

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
CHAPITRE 1 ARCHITECTURE ASYNCHRONE ET ARM
1.1 Processeurs ARM
1.2 Historique des processeurs asynchrones
1.2.1 Premiers designs des processeurs asynchrones
1.2.2 ARM asynchrone
1.3 Architecture de lโ€™AnARM
1.3.1 Prรฉsentation gรฉnรฉrale de lโ€™AnARM
1.3.2 Synchronisation intra modulaire
1.3.3 Synchronisation inter modulaire
1.4 Conclusion
CHAPITRE 2 ORDONNANCEMENT DES INSTRUCTIONS
2.1 Cadre thรฉorique
2.1.1 Ordonnancement des instructions
2.1.1.1 Dรฉpendances de donnรฉes
2.1.1.2 Disponibilitรฉ des ressources
2.1.1.3 Graphe de flot de donnรฉes
2.1.1.4 Dรฉfinition du problรจme dโ€™ordonnancement des instructions
2.1.2 Allocation des registres
2.1.2.1 Intervalle de vie dโ€™une variable et graphe dโ€™interfรฉrences
2.1.2.2 Relation entre lโ€™ordonnancement des instructions et lโ€™allocation des registres
2.2 Techniques existantes dโ€™ordonnancement des instructions
2.2.1 Ordonnancement de liste
2.2.2 Mรฉthodes combinatoires
2.2.3 Ordonnancement pour architectures asynchrones
2.3 Conclusion
CHAPITRE 3 STRATร‰GIE Dโ€™ORDONNANCEMENT POUR Lโ€™ANARM
3.1 Modรฉlisation
3.1.1 Modรฉlisation temporelle
3.1.2 Modรฉlisation spatiale
3.2 Algorithme dโ€™ordonnancement pour lโ€™AnARM
3.2.1 Stratรฉgie dโ€™ordonnancement
3.2.2 Description de lโ€™algorithme dโ€™ordonnancement proposรฉ
3.3 Conclusion
CHAPITRE 4 ร‰VALUATION DE Lโ€™APPROCHE PROPOSร‰E
4.1 Environnement dโ€™implรฉmentation
4.1.1 Ordonnancement des instructions dans LLVM
4.1.2 Implรฉmentation de lโ€™approche dโ€™ordonnancement
4.2 ร‰valuation de lโ€™approche dโ€™ordonnancement
4.2.1 Environnement expรฉrimental
4.2.2 Choix des paramรจtres de prioritรฉ
4.2.3 ร‰valuation de lโ€™approche au niveau dโ€™optimisation minimal
4.2.4 ร‰valuation de lโ€™approche au niveau dโ€™optimisation maximal
4.3 Conclusion
CONCLUSION ET RECOMMANDATIONS
ANNEXE I CODE SOURCE DE Lโ€™APPROCHE Dโ€™ORDONNANCEMENT
ANNEXE II CODE SOURCE DES PROGRAMMES Tร‰STร‰S
BIBLIOGRAPHIE

Les processeurs ARMTรฉ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 *