Les puces RISC 1. Objectif_de_la_technologie RISC 2. Introduction 3. Le PIPELIN
Les puces RISC 1. Objectif_de_la_technologie RISC 2. Introduction 3. Le PIPELINE 4. Comparaison_des_architectures RISC 5. Conclusion 1. Objectif de la technologie RISC : La Rapidité d'exécution des programmes. La vitesse passe par la simplification du microprocesseur, ce qui entraîne une baisse de la consommation et du coût. 2. Introduction : En 1975, les chercheurs d'IBM firent la constatation suivante : moins de 20% des instructions disponibles dans le microprocesseur sont utilisées dans 80% des cas. D'où la question : pourquoi ne pas simplifier les microprocesseurs en implantant sur la puce les instructions les plus courantes ? On gagnerait ainsi en vitesse, donc en performance, et on réduirait la surface de la puce, donc la consommation et le coût. C'est cette idée qui fut la base de la technologie RISC (Reduced Instruction Set Computer : microprocesseur à jeu d'instructions réduit) par opposition aux CISC (Complex Instruction Set Computer). Mais que fait-on des instructions complexes ? Il suffit tout simplement de les remplacer par une série d'instructions simples (une multiplication est une série de sommes). Mais à la différence de l'approche CISC, le décodage des instructions complexes est assuré par le logiciel au niveau du compilateur, et non pas par des circuits logiques implantés sur le microprocesseur. Il permet ainsi d'éviter les microcodes à programmer sur la puce. Ceci oblige à avoir un compilateur plus complexe, devant être optimisé de façon à réduire les temps d'exécution, si l'on veut préserver les avantages de la puce RISC. Remarque : une instruction complexe à l'intérieur du microprocesseur n'est en fin de compte qu'un " programme " implantés sur la puce. 3. Le PIPELINE : on a vu que la réduction du jeu d'instructions apporte un gain de rapidité, mais l'essentiel des performances vient de l'exploitation du gain de place pour une nouvelle fonction : le traitement en pipeline. Une instruction du programme s'exécute généralement en 5 séquences successives. A chaque séquence correspond une impulsion d'horloge IF : Instruction Fetch, chargement des instructions du cache mémoire vers la file d'instructions. DEC : Décodage, traduction de l'instruction se trouvant sur le haut de la file d'instructions. EX : Exécution, exécution par l'ALU ou la FPU de l'instruction décodée MEM : Memory acces, lors d'une opération de lecture/écriture, la donnée est écrite vers une file de lecture/écriture. Ceci évite de bloquer le pipeline dans le cas où on ne pourrait accéder à la mémoire. WB : Write Back, écriture du résultat de EX ou de MEM La simplification apportée par la technologie RISC ayant conduit à des instructions standards de même longueur, le principe du pipeline est donc de profiter de cette standardisation pour exécuter les instructions, non pas de façon séquentielle, mais en cascade à 5 étages à la manière d'une chaîne de fabrication à 5 postes de travail (Merci Taylor). Chaque étage est chargé d'une séquence. En permanence, 5 instructions se trouvent donc simultanément à des séquences différentes de traitement. A chaque coup d'horloge, une instruction est entièrement exécutée. t t+1 t+2 t+3 t+4 t+5 t+6 t+7 t+8 ins1 IF DEC EX MEM WB MOV AX,I ins2 IF DEC EX MEM WB MOV BX,J ins3 IF DEC EX MEM WB SUB AX,BX ins4 IF DEC EX MEM WB CMP AX,0 ins5 IF DEC EX MEM JE Suite Exemple : chaque cycle : 1 étage activé = 5 instructions en // Il peut arriver certains conflits : - Conflit de ressource : 2 instructions veulent accéder à la même ressource au même moment - Dépendance de données : un registre (résultat d'une opération précédente) est lu alors qu'il n'a pas encore été écrit. - Aléas de branchement : le processeur n'a pas encore le résultat d'un test et doit choisir entre deux sauts (ex : sauts conditionnels). Résolution des conflits : elle se fait souvent pendant le DECodage. Ressource : on diffère l'accès à cette ressource pour l'instruction la plus jeune Données : pour les registres, il existe sur les ALU des systèmes de by-pass pour récupérer la valeur calculée avant la véritable écriture dans la table des registres (WB) Branchements : le processeur fait le pari sur le branchement. S'il se révèle bon, alors on continue. S'il est mauvais, on invalide toutes les instructions exécutées depuis la prise de décision ce qui est complexe et coûteux en matériel. Pour prédire le branchement, il existe des techniques de statistiques utilisant des buffers de prédiction pour savoir si le branchement a déjà été pris ou non (valable surtout pour les boucles). On associe un bit à chaque instruction dans le cache instructions. Architecture supersacalaire : elle consiste à multiplier le nombre de pipelines, donc à mettre plusieurs unités de traitement travaillant en parallèle. La cadence de traitement s'en trouve au mieux multipliée par le nombre de pipelines. Avec 4 pipelines, les microprocesseur RISC les plus récents traitent jusqu'à 4 instructions par cycle. Architecture superpipeline : elle consiste à augmenter la profondeur du pipeline (plus de séquences et une fréquence plus élevée donc t plus petit) permettant ainsi d'augmenter encore la cadence du traitement. Par contre, cette organisation demande une logistique plus complexe pour approvisionner les différents " postes ". Pour l'instant, le bon compromis est un pipeline à 7 étages, le gain est donc beaucoup moins significatif que dans le cas d'une multiplication du nombre de pipelines. 4. Comparaison des architectures RISC et CISC : Architecture RISC CISC jeu d'instructions Jeu réduit limité aux instructions simples les plus utilisées dans le traitement. Typiquement moins de 100 instructions Typiquement plus de 200 instructions format des instructions Standard Variable Implémentation des instructions Seules les instructions simples sont gravées sur le silicium. Les autres sont programmées sous forme de microcodes sur des circuits logiques La plupart des instructions sont gravées sur le silicium. Pas de microcodes. Les tâches complexes sont décodées par le compilateur. Accès à la mémoire Seules les instructions de chargement et de rangement de registres (Load et Store) La plupart des instructions y ont accès Vitesse d'exécution Typiquement une instruction par cycle d'horloge Typiquement une instruction pour 3 à 10 cycles d'horloge Avantages Puce plus petite. Fréquence d'horloge plus élevée. Vitesse d'exécution plus grande Développement plus simple des systèmes. Base installée importante Inconvénients Nécessite des compilateurs plus complexes et plus performants. Programme d'application plus long occupant plus de mémoire Technologie gourmande en silicium. Puce plus compliquée à développer. Possibilités d'évolution limitées 5. Conclusion : La division entre les concepts CISC et RISC n'est plus aussi dichotomique que par le passé. L'ensemble des microprocesseur utilise des solutions similaires, même si les uns sont classés CISC et les autres RISC. Le 486 d'Intel et le 68040 de Motorola sont les deux premiers (connus du grand public) processeurs CISC à se rapprocher de la technologie RISC. L'unité centrale contient les instructions les plus courantes, tandis que les instructions complexes sont confiées à une unité spécifique séparée et utilisent le traitement en pipeline. Le Pentium et le 86060 qui ont suivis, vont plus loin en adoptant l'architecture superscalaire. Par contre les microprocesseur RISC ont tendance à enrichir leur jeu d'instructions et finissent par devenir aussi complexes que des CISC. Si bien qu'aujourd'hui, l'important n'est pas de savoir si tel ou tel microprocesseur est CISC ou RISC, mais de connaître son architecture interne et ses performances. uploads/Ingenierie_Lourd/ les-puces-risc.pdf
Documents similaires
-
19
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Apv 12, 2021
- Catégorie Heavy Engineering/...
- Langue French
- Taille du fichier 0.0734MB