Les Microprocesseurs
Airault Fabrice & Bonis Alexis (Juin 2001)

I) HISTORIQUE
II) FABRICATION DES MICROPROCESSEURS
    Les différentes étapes de fabrication
III) ARCHITECTURE DES MICROPROCESSEURS
    1) principe du Pipeline
    2) Comparaison, évolution RISC CISC
        Analyse d’un processeur Intel Pentium
        Analyse d'un processeur RISC
IV) PERFORMANCE PRIX
    1) Performances Thermiques
    2) Prix
    3) Performance
CONCLUSION

 

I)Historique

  1. Le tout premier microprocesseur fut construit par Intel, Intel signifiant Integrated Electronics, en 1971. Il s'appelait le 4004. Ce processeur fonctionnait en 4 bits et ses instructions étaient longues de 8 bits. Il tournait à une vitesse de 108 Kilohertz et il était composé de seulement 2300 transistors. Le 4004 avait autant de puissance qu'ENIAC
  2. Dans les années qui suivirent, de nombreux autres processeurs sortirent sur le marché, entre autre le 8080 d'Intel. De nouvelles compagnies se lancèrent aussi dans la fabrication de microprocesseurs, ce fut le cas de Zilog qui lança le Z-80 et de Motorola, qui lança le 6800 en 1974. Les processeurs Motorola sont ceux qui furent utilisés par Commodore et Apple. Le processeur qui fit sa marque par la suite fut le 8086 lancé par Intel en 1978, suivit l'année suivante du 8088. Le 8086 était basé au départ sur l'architecture du 8080, seulement les accès aux registres se faisaient maintenant en 16 bits. La quantité de mémoire que le 8086 pouvait adresser était toutefois limitée à 1 Méga. Le 8086 était composé de 29000 transistors, alors que le 8080 n'en était composé que de 6000. Le 8086 et le 8088 pouvaient fonctionner à une vitesse d'environ 8 Mégahertz et furent les processeurs choisis par IBM pour leur premier ordinateur personnel.
  3. C'est en 1979 que le premier microprocesseur 16 bits est sorti sur le marché ; ce fut le 68000 de Motorola. Le 68000 ne connu toutefois un grand succès qu'en 1984 lorsqu'il fut utilisé par Apple pour la construction de leur premier ordinateur Macintosh.
  4. En 1982, Intel sortait le 80286. Le 286 peux fonctionner à une vitesse allant jusqu'à 12 Mégahertz et adresse une plus grande quantité de mémoire que le 8086, il peut adresser jusqu'à 16 Mégas de RAM et permet de plus l'utilisation de mémoire virtuelle. Le 286 est un processeur 16 bits, il est composé de 134,000 transistors.
  5. En 1984 Motorola sorti le tout premier microprocesseur 32-bits, le MC68020. Il était composé de 200,000 transistors et pouvait adresser jusqu'à quatre Mégas de mémoire.
  6. Fin 1985, une nouvelle génération de processeurs Intel sortit sur le marché; le 80386 divisés en deux catégories, le SX et le DX (16bits et 32bits). La vitesse ayant été améliorée au cours des années, elle varie de 16 à 33 Mégahertz. Le 386 peux adresser jusqu'à 16 Mégas de mémoire et est composé de 275000 transistors.
  7. En 1985 SUN développe son processeur SPARC et les premiers produits sont disponibles en 1987 (SUN 4).
  8. En 1987 MOTOROLA lance le développement d'un processeur RISC le 88000. Mais les négociations avec SUN puis MIPS créent la confusion autour du 88000. Faible réussite.
  9. En 1988 lancement du R3000 par MIPS.
  10. En 1989, Intel introduisit une nouvelle génération de processeurs, les 80486. Encore une fois, les 486 furent divisés en deux catégories, le SX et le DX. Les 486 furent les premiers processeurs Intel avec le coprocesseur mathématique intégré. La différence entre le DX et le SX est que le 486 DX contient le coprocesseur mathématique alors que le SX ne le contient pas. Le 486 peut fonctionner à une vitesse allant de 33 à 100 Mégahertz, il est composé de 1200,000 transistors et fonctionne en 32 bits. De plus, il peut adresser jusqu'à 4 Gigas de mémoire.
  11. Fin 1991, MOTOROLA entre dans l'alliance IBM/Apple pour développer la gamme POWERPC.
  12. Cyrix et AMD, deux autres compagnies de microprocesseurs, ont aussi sortis leurs microprocesseurs 386 et 486, réutilisant le nom utilisé par Intel. La législation internationale ne permet pas de protéger un nom de produit composé uniquement de chiffres.
  13. C'est donc pour cette raison que la génération suivante de microprocesseurs Intel ne portait pas le nom de 586, sorti en 1994 Il s'appelle Pentium, et c'est de nos jours le microprocesseur le plus populaire. Pentium provient du grec Pente et du mot silicium. Le terme Pente signifie cinq en grec, Pentium signifiant donc microprocesseurs de cinquième génération, 586. Le Pentium est composé de 3,300,000 transistors.
  14. Plusieurs sociétés sortent des  microprocesseurs qui fonctionnent avec l’architecture RISC, on peut dénoter entre autre le SPARC de Sun  en 1991, le SPARC Ultra II en 1996 et le Sun UltraII en 1998. En 1992 Digital et MIPS lancent aussi leurs processeurs : Digital a fait le Alpha 21064 en 1992 et le 21064a en 1996 puis l'année suivante en 1997 le 21264. Mips a fait le R4000 en 1992 et le R10000 en 1996 en 1993 Motorola lance le 1er powerpc le 601 suivi du powerpc 620 en 1995 et du powerpc 750 en 1998.

Eniac(1946)

Intel 4004 (1971)

II) Fabrication des Microprocesseurs

Un microprocesseur est une catégorie de puce de silicium : à l’intérieur d’un microprocesseur, on trouve en effet une petite plaquette de silicium, qu’on appelle un “dé” et qui se compose de millions de petits commutateurs, les transistors. Ces transistors sont agencés d’une manière bien précise : c’est là d’où vient l’appellation de “circuit intégré”.
Cette petite plaquette est composée de silice, autrement dit de sable. La seule différence est que la silice dont sont faits les microprocesseurs est beaucoup plus pure : on l’appelle “silicium”.
Le silicium est un semi-conducteur. Intel, Motorola ... achètent un “lingot” de silicium, cylindre d’environ un mètre de long, pour le découper en tranches très fines. Ensuite intervient une longue série compliquée d’opérations destinées à transformer chacune de ces tranches en un microprocesseur. Le délai de fabrication d’une de ces puces est d’environ trois mois.
Pour exemple : Intel dispose d’environ dix usines qui fabriquent des microprocesseurs. Chacune d’elle coûte au minimum un milliard de dollars.
L’une des raisons pour lesquelles ces usines sont si chères à construire est que l’atmosphère qui y règne est extrêmement pure. Les microprocesseurs sont fabriqués par un procédé qu’on appelle “photolithographie”, qui permet d’obtenir jusqu’à vingt couches de transistors. Un transistor n’est rien d’autre qu’un commutateur à deux positions allumé et éteint, que la machine interprète respectivement comme 0 et 1.

1.Les premières couches : Il faut prendre une galette de silicium d’un diamètre d’environ 20 cm. Avec une seule galette on réalise plusieurs centaines de microprocesseurs, chacun d’eux mesurant moins d’un centimètre carré.
2.Couche de silicium : Déposez sur la galette une couche isolante de dioxyde de silicium (SiO2) : c’est elle qui transmettra par conduction l’électricité à travers le microprocesseur.
3.Agent photorésistant : On recouvre alors la galette d’une substance appelée “agent photorésistant”, qui devient très molle et visqueuse lorsqu’elle est exposée aux ultraviolets.
4. Masquage : Bien avant d’envisager le processus de production, il a fallu d’abord concevoir le microprocesseur, c’est-à-dire étudier comment il allait réaliser les opérations prévues.On a donc au préalable réalisé un masque photographique du circuit prévu pour ce microprocesseur ; ensuite, on place ce masque sur la couche photorésistante.
5.      Exposition : Le masque et la galette sont ensuite éclairés aux ultraviolets, processus similaire à l’exposition d’une pellicule photo dans un agrandisseur. Le masque laisse ainsi passer la lumière sur certaines zones de la galette, mais pas sur d’autres, ce qui imprime une image latente du circuit.
6. Photogravure : Les particules d’agent photorésistant, devenues molles et visqueuses après exposition aux ultraviolets, sont alors retirées à l’aide d’un solvant qui révèle le dioxyde de silicium se trouvant en dessous. La dernière partie de ce processus consiste à retirer le dioxyde de silicium ainsi révélé, puis le reste de l’agent photorésistant. Le masquage et la photogravure se répètent pour chaque couche de circuits, c’est-à-dire autant de fois que la galette de silicium compte de couches, autrement dit vingt fois pour les plus complexes. Cette technique d’impression (d’où l’appellation de “circuits imprimés”) a d’abord été utilisée pour reproduire des dessins et motifs sur papier, sur tissu et même sur bois. Dans la fabrication des microprocesseurs, le processus de photogravure permet d’obtenir des bandes de matériau conducteur, dont l’épaisseur est bien inférieure à celle d’un cheveu, et d’agencer ces sillons en un circuit.
7. Dopage : A présent, on plonge les zones exposées de la galette de silicium dans un mélange chimique d’ions. Ce processus modifie la conductivité des zones de silicium ainsi “dopées”, ce qui permet au transistor de s’allumer ou de s’éteindre ou bien de véhiculer des données. On recommence autant de fois que le microprocesseur compte de couches, chacune étant reliée aux autres par des fenêtres. Cette structure ressemble à la cage d’escalier d’un bâtiment : les électrons montent et descendent entre les différents “étages” à une cadence de plusieurs centaines de Méga Hertz. On réalise les fenêtres en répétant les étapes de masquage et de gravure avec des masques différents. A présent que les fenêtres sont en place, il est temps de les remplir. On remplit les fenêtres d’aluminium, qui est l’un des métaux les plus communs. Aujourd’hui le cuivre est beaucoup plus utilisé que l’aluminium car il est meilleur conducteur et permet une gravure plus fine

III) ARCHITECTURE DES MICROPROCESSEURS

1) principe du Pipeline :

Les Processeurs CISC et RISC utilisent tous deux une architecture avec pipeline qui permet d’augmenter considérablement les performances du processeur.
Le déroulement d’une instruction est découpé en n phases consécutives (profondeur du pipeline) pouvant être exécutées simultanément pour des instructions différentes.
Toutes les phases démarrent au même instant et attendent la fin de la phase la plus longue pour s’achever. Le cycle du pipe-line est la durée de la phase la plus longue.
Le découpage en phases doit être le plus équitable possible, on doit avoir le plus faible écart-type possible entre la durée que prennent les phases, afin d’accroître les performances au maximum.
En réalité, selon le type d’instruction le pipeline est de longueur différente au sein du même processeur. On considère alors qu’il y a plusieurs pipelines logiques (même si différents types d’instructions passent par les mêmes étages physiques).
Les instructions de calcul flottant et d’accès à la mémoire sont généralement plus longues que les autres. On distingue trois types de pipeline.

  • Pipeline flottant (calcul en virgule flottante, comparaisons)

  •  Pipeline mémoire (chargement, rangement)

  •  Pipeline entier (calcul entier, décalages, comparaisons, le reste des instructions)

Le pipeline influence directement la vitesse des processeurs. La vitesse maximale d'un processeur peut être définie par le temps que prend la plus longue étape logique de son pipeline. En effet, le processeur, qui doit traiter chaque donnée indépendamment des autres, ne peut traiter qu'une seule donnée par étape de pipeline par cycle. Si dans un processeur avec un pipeline de 1 étape, il faut 100 ns au processeur pour traiter chaque donnée, le processeur ne pourra aller plus vite que 10 MHz (1/100ns=10 000 000 Hz). Mais à chacun de ces 10 000 000 de cycle, le processeur produira une réponse. Le temps pour produire la réponse, lui, est dépendant les transistors du processeur. Bien que rapide, l'électricité ne voyage pas instantanément et le temps requis pour faire "switcher" les transistors correspond au temps pour réaliser l'étape. Donc, pour pouvoir augmenter la vitesse de processeurs, 2 techniques peuvent être utilisées: améliorer les transistors, ou bien diminuer la quantité de transistors qui doivent "switcher" pour traiter des données.
Si, on change l'architecture logique de notre processeur 10 MHz pour le transformer en pipeline de 5 étapes, voyons voir ce qui se produira. Nous avons fait attention pour les séparer en étapes moins difficiles à traiter, de sorte que la quantité de transistors requise sera à peu près la même, le temps requis sera aussi à peu près le même. Donc, chaque étape prend maintenant 20 ns à compléter. Donc, la limite de vitesse passe à 50 MHz. Mais, pourquoi ne pas construire des processeurs avec un pipeline de 500 étapes pour atteindre des vitesses phénoménales??? Eh bien, comme dans tout, il y a un inconvénient majeur à tout ceci. Chaque cycle, les données n'avancent que d'1/5 du pipeline, donc chaque donnée prends maintenant 5 cycles pour être traitées (avant, 1 seul cycle suffisait). Bien sûr, le processeur peut maintenant traiter 5 données en même temps, mais à chaque fois que le processeur doit traiter de petites données indépendantes (et non d'énormes données) le processeur gaspille des cycles à attendre. Par exemple, si une donnée est si petite qu'elle est divisée en 2 instructions à traiter, le processeur devra utiliser 6 cycles pour traiter ces 2 instructions (5 cycles requis pour que la première aie parcouru le pipeline au complet et 1 cycle de plus pour que la 2e instruction ne sorte). Mais si une donnée se divise en 1000 instructions, le processeur gaspillera effectivement les 4 premiers cycles en attendant la première sortie, mais dès que la première instruction sortira au 5eme cycle, le processeur sortira 1 instruction par cycle, et ira ainsi 5 fois plus rapidement que l'ordinateur 10 MHz.
Un autre inconvénient d'un long pipeline est la pénalité d'une mauvaise prédiction de l'opération à exécuter pour traiter chaque instruction. En effet, le processeur doit "deviner" quelle opération doit être utilisée pour chaque instruction, et à la sortie de cette instruction à la fin du pipeline, il regarde si la réponse à du bon sang. Si, par une mauvaise coïncidence non, le processeur interrompt ses autres opérations, vide son pipeline et recommence à traiter son instruction du début. Ce qui veut dire que dans un pipeline d'une étape, une mauvaise prédiction, fait perdre 1 cycle, alors que dans un pipeline, de 5 étapes, 5 cycles sont perdus.
Dans le monde réel, le pipeline est très influent sur la puissance du processeur et sa vitesse, mais il interagit avec beaucoup d'autres facteurs. Tout d'abord, le temps requis pour la plus longue étape du pipeline détermine la fréquence maximale du processeur. Mais, ce temps dépends de la qualité des transistors, et d'autres facteurs limitent souvent la vitesse. Par exemple, dans le PIII Katmai (0.25 microns), la vitesse maximale que le pipeline de 10 étapes permettait est d'environ 650 MHz, mais à 600 MHz, il chauffait tellement que le silicium gagnait trop de conductivité (et les connecteurs en perdaient) et les signaux devenaient peu clairs. Donc, pratiquement personne n'arrivait à pousser un de ces processeurs plus haut que 600 MHz. Par contre, le Athlon, qui a un pipeline de 11 étapes arrivait à atteindre 700 MHz. L'explication la plus probable est que l'agencement des transistors dans le processeur permet une meilleure efficacité et que les transistors de l’Athlon étaient plus performants.
Dans un PIII Coppermine (0.18 microns), qui est pourtant du même design que le Katmai, la vitesse maximale est augmentée à 1133 MHz. Grâce à l'amélioration des procédés de fabrication des transistors, ceux-ci "switchent" beaucoup plus vite et le courant voyage aussi beaucoup plus vite entre les transistors. Donc, même sans avoir modifié le pipeline, la fréquence maximal a été changée.
Mais pour le Pentium 4, Intel voulaient créer un processeur qui vieillirait très bien et qui serait facile à améliorer sans avoir besoin de redesign complet. C'est pourquoi ils ont conçu le pipeline du P4 avec 20 étapes, le double du PIII. Le résultat est que le P4 devrait pouvoir atteindre la vitesses de 2 GHz dans sa forme actuelle (0.18 microns, comme le PIII). Le seul inconvénient, de cette architecture est que bien très rapide, le P4 n'offre souvent qu'une performance très médiocre (parfois plus lent qu'un PIII 500 MHz). Ceci est dû au fait que s'il traite beaucoup de petites données, le gaspillage de cycle est colossal. Par contre, dans les applications multimédias intensives, la performance est très bonne. Donc, tout comme ça l’a été le cas pour le Pentium (qui introduisait un pipeline géant de 5 étapes!!!), les logiciels devront être optimisés pour envoyer un petit nombre de grosses instructions au processeur au lieu d'envoyer beaucoup de petites instructions. C'est donc le temps qui nous dira si un pipeline de 20 étapes est la voie de l'avenir ou si 10 étapes est le maximum possible pour garder des performances optimales.

2) Comparaison, évolution RISC CISC:

Analyse d’un processeur Intel Pentium:

 Le processeur Pentium est un microprocesseur 300 fois plus rapide que le processeur du premier P.C. En effet, il est capable de fonctionner jusqu'à plus de 100 millions d'instructions par seconde à une vitesse d'horloge de seulement 60 Mhz. Il est deux fois plus rapide que l'Intel 486 DX2 66Mhz. De plus, l'unité de calcul en virgule flottante du Pentium offre des performances jusqu'à 5 fois supérieures à celles du Intel 486 DX2 66Mhz pour des applications faisant massivement appel aux mathématiques.
Le Pentium reprend partiellement l'architecture de l'Intel 486. Son cœur est un moteur RISC à hautes performances ou, plutôt, deux moteurs de type superscalaire. Il est doté de deux Unités Arithmétique et Logique avec, pour nourrir en instructions et en opérandes, un pipeline performant capable de gérer une queue de 8 instructions avec pré décodage. Le tout réside sur une puce contenant 3,2 millions de transistors et se présente en un boîtier céramique avec un radiateur de 55x55 mm.


Le Pentium possède en plus du Intel 486:

- Une mémoire cache.

Le processeur Pentium possède des mémoires caches pour le code et les données, afin de réduire les conflits entre mémoires caches et d'augmenter les performances globales du système. Et comme l'antémémoire est intégrée au microprocesseur, les informations essentielles restent toujours à portée de la chaîne d'assemblage. Instructions et données sont constamment accessibles sans perte de temps. Dans 95% des cas, l'information est à portée de main.

- Un bus de 64 Bits

Pour permettre aux informations de mieux circuler, Intel double la taille du bus du processeur Pentium. Deux fois plus d'informations peuvent ainsi être extraites à chaque fois. Intel a ajouté un mode "rafale" pour le transfert de données à haute vitesse. Résultat: davantage d'informations arrivent plus rapidement à destination. De plus, pour être sûr que les bonnes données vont là où il faut, le processeur Pentium contrôle automatiquement l'intégrité des données.

- Une prévision de branchement

Intel a doté le processeur Pentium d'une intelligence qui lui est propre, sous forme d'une petite mémoire cache plus connue sous le nom de Branch Target Buffer (mémoire-tampon de destination de branchement). Elle émet une hypothèse vraisemblable de branchements. Si la prédiction s'avère juste (ce qui se réalise dans 90% des cas),l'ordre est exécuté instantanément ce qui augmente d'autant plus la performance.

- Le superscalaire

Le processeur Pentium possède deux pipelines parallèles pour les instructions sur les nombres entiers. Il peut ainsi exécuter deux instructions à la fois. Après avoir saisi et décodé partiellement une instruction, il décide alors si elle peut être traitée en parallèle avec une autre instruction. S'il ne détecte aucun lien d'interdépendance, les deux instructions sont envoyées sur des pipelines parallèles pour être exécutées.

- Les calculs en virgule flottante

Pour accélérer les trois opérations arithmétiques courantes en virgule flottante - multiplication, division, addition - le Pentium intègre des fonctions spécialisées dans le silicium. Grâce à elles, la plupart des calculs s'accomplissent en un seul cycle d'horloge. Autrement dit, c'est une performance 5 fois supérieures à celle des ordinateurs basés sur le processeur Intel486 DX2 66.

Analyse d'un processeur RISC :

1) Introduction
Pour résumer la philosophie RISC, on pourrait dire que ses supporters pensent qu'il est aujourd'hui indispensable de revoir les principes mêmes de l'architecture des ordinateurs; ces derniers sont devenus au fil du temps tellement complexes qu'il est nécessaire de repenser leur structure pour en diminuer la complexité et bâtir une nouvelle génération d'ordinateurs n'ayant plus rien de commun avec la précédente. Les premiers ordinateurs étaient très simples, ils n'avaient qu'un nombre d'instructions limité et un ou deux modes d'adressage, les concepteurs ont ajouté alors des microprogrammes afin d'élargir le jeu d'instructions. Mais, en quelques années, des ordinateur comme le VAX disposent plus de 200 instructions et une douzaine de modes d'adressage, le tout étant implémenté par des microprogrammes tournant sur du matériel encore assez simple.
Cependant, les statistiques nous montrent que les applications utilisent à 85% des affectations, des instructions if, et appels de procédure.


Pourcentages des instructions employées dans un programme

Instructions

SAL

XPL

Fortran

C

Pascal

Moyenne

Affectation
If
Call
Boucle
Goto
Autres

47
17
25
6
0
5

55
17
17
5
1
5

51
10
5
9
9
16

38
43
12
3
3
1

45
29
15
5
0
6

47
23
15
6
3
6

Comme le langage machine devient plus gros et plus complexe, son interpréteur, le microprogramme, devient plus gros et donc plus lent. S'il y a plus d'instructions, on passe plus de temps à décoder les codes opératoires. Plus important encore, s'il y a nombreux modes d'adressage, l'analyse de l'adresse ne peut plus se faire directement car cela conduirait à répéter le même microcode des centaines de fois dans le microprogramme. Le pire de tout est que l'on ralentit le fonctionnement de ces machines pour permettre aux programmeurs de disposer d'instructions qu'au bout du compte ils préfèrent ne pas utiliser. On a fini par se dire que les ordinateurs tourneraient plus vite si chaque programme pouvait être compilé directement en microcode, microcode qui serait placé dans une mémoire RAM rapide pour l'exécution.

2) Très peu de micro-instructions

En bref une machine RISC est un ordinateur disposant d'un petit nombre de micro-instructions. Les programmes utilisateur sont compilés sous forme de suite de ces micro-instructions et directement exécutés par le matériel, sans qu'il y ait besoin d'un interpréteur. Le résultat est que lorsqu'on exécute quelque chose de très simple, comme l'addition de deux registres, on le fait en une seule micro-instruction. Les instructions les plus rapides du langage machine d'un CISC classique prennent respectivement 8 à 15 micro-instructions. Ayant gagné un facteur 10 dans les cas les plus courants, nous pouvons accepter une baisse sensible des performances dans les cas exceptionnels et avoir au total un gain net appréciable.
De même, pour des raisons de vitesse comme de complexité, il n'est pas souhaitable d'avoir de nombreux modes d'adressage.
En un certain sens, il s'agit d'un retour aux sources. Avant que Wilkes n'invente la microprogrammation, tous les ordinateurs étaient des machines RISC dont les instructions, très simples, étaient exécutées directement par le RISC dont les instructions, très simples, étaient exécutées directement par le matériel. Mais ce ne sont pas des progrès du matériel qui ont permis aux machines RISC d'être crédibles, mais une évolution des techniques du logiciel. C'est essentiellement l'amélioration des techniques de compilation qui a rendu possible la génération automatique d'un microcode aussi bon (sinon meilleur) que s'il avait été fait à la main.

3) Les instructions RISC se font en un seul cycle.

S'il est vrai que la plupart des machines RISC ont relativement peu d'instructions, ce qui les distingue vraiment des machines CISC c'est que les instructions RISC sont effectuées en un seul cycle. En effet, ce cycle consiste à charger deux opérandes pris dans le registre de travail, à les placer sur les bus internes, à les exécuter dans l'Unité Arithmétique et Logique et à placer le résultat dans le registre de travail. C'est tout cela qui prend un cycle d'horloge et qui fait qu'une instruction RISC ressemble beaucoup à une micro-instruction. Une instruction interprétée, au contraire, prend en général 10 cycles d'horloge.
Ceci implique que toute instruction qu'on ne peut exécuter en un cycle d'horloge doit être exclue du jeu d'instructions. C'est ainsi que de nombreuses machines RISC ne disposent ni de la multiplication ni de la division. En pratique, la plupart des multiplications mettent en jeu une constante statique connue à la compilation, ce qui fait qu'on peut les simuler par une suite d'additions ou de décalages. Les autres multiplications et toutes les divisions sont exécutées par des routines prises dans des bibliothèques. Les instructions en virgule flottante, enfin, sont exécutées par un coprocesseur.

4) Deux instructions pour l'accès à la mémoire.

Seulement, les instructions qui mettent en jeu la mémoire pour le chargement et/ou le rangement sont trop longues pour conserver cette règle d'or. Pour cela, les instructions ordinaires peuvent n'avoir que des opérandes registre. Mais comme certaines instructions doivent tout de même référencer la mémoire, on ajoute à l'architecture des instructions spéciales LOAD (chargement) et STORE (rangement). Il n'y a que ces instructions qui puissent référencer la mémoire. Mais ceci n'est pas encore suffisant pour les exécuter en un seul cycle. Pour cela, au lieu d'exiger à tout prix qu'une instruction soit exécutée en un seul cycle, nous nous imposerons de démarrer une instruction à chaque cycle, que la précédente soit terminée ou non. Si au cours de plusieurs cycles nous parvenons plusieurs instructions, nous aurons bien exécuté, en moyenne, une instruction par cycle. C'est pour réaliser cela que toutes les machines RISC sont pipelinées et c'est au compilateur de vérifier que l'instruction qui suit un LOAD n'utilise pas l'élément qui est à charger. Si le compilateur ne peut trouver une telle instruction à exécuter immédiatement après le LOAD, il doit absolument insérer une instruction NO-OP (instruction vide) pour attendre un cycle. On trouve une situation analogue après un STORE mais qui ne pose en général pas de problème particulier sauf si l'instruction qui suit le STORE n'a de sens que si le rangement est terminé.
Qu'arriverait-il si un programme essayait, par erreur, d'utiliser un registre en cours de chargement? Les diverses machines RISC réagissent différemment. La plupart d'entre elles ont un dispositif de verrouillage matériel qui insère automatiquement des instructions vides jusqu'à ce que le registre soit chargé. Mais il existe aussi des machines qui laissent utiliser une valeur de registre incorrecte. Si le réorganisateur (programme qui redistribue les instructions en langage d'assemblage de façon à remplir les trous derrière le LOAD) ne peut remplir l'intervalle, il doit insérer une instruction vide, ce qui augmente la taille du programme. L'avantage de cette méthode est d'avoir une Unité Centrale plus simple donc plus rapide.

5) Les avantages de l'absence de microcode.

La suppression de ce niveau d'interprétation est le secret de la rapidité des machines RISC. Les défenseurs des machines CISC disent souvent qu'il vaut mieux implémenter des instructions complexes en microcode que d'avoir des instructions utilisateur. Si une instruction complexe prend 10 micro-instructions de 100 nanosecondes chacune, son exécution sur une machine CISC prendra 1 microseconde. Sur une machine RISC, la même instruction prendra 10 instructions RISC au lieu de 10 micro-instructions. Et si les instructions RISC prennent chacune 100 nanosecondes, cela fera encore 1 nanoseconde. Le seul avantage des CISC est qu'elles économisent un peu de mémoire.
Puisqu'il n'y a pas de microcode, on a de la place libre sur la puce des circuits RISC pour implémenter d'autres choses. Certaines machines RISC, mais pas toutes, utilisent cette place disponible pour disposer d'un grand nombre de registres (jusqu'à 500), ce qui permet de réduire le nombre de LOAD et de STORE.
Dans un ordinateur classique, un grand pourcentage du trafic avec la mémoire est directement lié aux appels de procédures. En effet, on doit passer des paramètres, sauvegarder des registres, empiler l'adresse de retour à l'appel et la dépiler à la fin. La méthodes des "fenêtres glissantes de registres" permet de stocker ces informations dans les registres. Ceci permet de supprimer la presque totalité de ce trafic.

6) Les instructions en format fixe

Il est nécessaire d'avoir des instructions en format fixe. Les différents bits de chaque instruction servent d'entrée au décodeur du code opération et à d'autres parties du matériel. Si l'on avait des instructions de longueur variable, de 1 à 17 octets (comme sur le 80386), cela ne pourrait fonctionner. Car la seule façon pour que cela fonctionne est alors d'avoir un microprogramme qui extraie les octets pris dans la file des instructions et les analyse

7) La complexité dans le compilateur

le fait d'avoir un jeu d'instructions réduit peut être gênant. Certaines instructions que les programmeurs de compilateurs CISC imaginent comme allant de soi (par exemple MULTIPLY) doivent être en fait synthétisées de nombreuse façons différentes suivant leurs opérandes. De plus que les compilateurs RISC doit tenir compte des chargements et rangements différés, ceux-ci augmentent considérablement la complexité des compilateurs. Seulement, le fait que les instructions ordinaires n'utilisent pas d'opérandes en mémoire fait qu'il est essentiel que les compilateurs pour machines RISC optimisent au mieux l'utilisation des registres.
Ainsi les machines RISC peuvent différer de leurs équivalents CISC de huit façons qui sont résumées dans le tableau suivant:

 Caractéristiques des machines RISC et CISC

 

Machines RISC

Machines CISC

1

Instructions simples ne prenant qu'un cycle

Instructions complexes prenant plusieurs cycles

2

Seules les instructions LOAD et STORE font des accès à la mémoire

Toutes les instructions peuvent faire des accès à la mémoire

3

Traitement pipeline

Peu ou pas de traitement pipeline

4

Instructions exécutées par le matériel

Instructions interprétées par un microprogramme

5

Instructions au format fixe

Instructions en format variable

6

Peu d'instructions et de modes d'adressage

Beaucoup d'instructions et de modes d'adressage

7

Toute la complexité est dans le compilateur

Toute la complexité est dans le microprogramme

8

Plusieurs jeux de registres

Un seul jeu de registres

IV) Performance, Prix

1) Performances Thermiques :

La surface qu’occupent les processeurs RISC est  inférieure à celle occupée par les processeurs CISC, du fait que ceux-ci contiennent moins d’instructions. il en découle que les processeurs RISC dégagent moins de  chaleur que les CISC, ils consomment donc moins d’énergie. La technologie RISC est donc plus performante au niveau de la consommation électrique et  du dégagement thermique. Ceci évite souvent d’avoir à mettre un ventilateur sur les processeurs RISC ce qui est un avantage au moment de la conception d’ordinateur portable, cela peut-être aussi un confort auditif, car les ventilateurs sont bruyants


System
(Bus/Cache/CPU speed)

Integer
Index

Floating-Pt
Index

PowerBook G3
(50/100/250)

6.998572

5.228775

Pentium II 300
(66/150/300)

4.226743

4.829937

PowerBook G3
(50/166/250)

7.071710

5.396240

Pentium II 333
(66/166/333)

4.724942

5.398357

2) Prix

Le prix de fabrication et de développement des processeurs RISC est nettement inférieur à celui de ses cousins CISC, ceci est du au fait que ses instructions sont à la fois moins nombreuses et plus simples. Ceci dit le coût de développement du compilateur est supérieur, le prix du processeur au final est donc à peu près  identique à celui d’un CISC pour des performances égales.

3) Performance

Deux paramètres peuvent être utilisés pour mesurer la performance d’un processeur :

  • Le temps de réponse ou temps d’exécution d’une certaine tâche : temps écoulé entre le début et la fin ; d’exécution de la tâche

  •  throughput : quantité totale de travail réalisé dans un certain temps

L’amélioration du temps de réponse implique toujours une amélioration du throughput. Toutefois, le contraire n’est pas toujours vrai : une augmentation du nombre de processeur d’un ordinateur augmente le throughput, sans améliorer nécessairement le temps de réponse.
Nous allons considérer le temps d’exécution comme paramètre principal pour le calcul de la performance d’un processeur.

Le rapport de performance entre deux machines A et B est :

et l’on dit que A est n fois plus rapide que B.
Pour le calcul de performance, on tient compte seulement de CPU time, inférieur à elapsed time.
Le temps d’exécution dépend de trois facteurs

  •  le nombre d’instructions machine exécutées,

  • le nombre moyen de cycle d’horloge par instruction machine et

  • la période d’horloge

Temps = 1/performance = (nombre d’instructions)*(nombre de cycles par instruction)*(période d’horloge)

Pour une architecture donnée (un certain répertoire d’instructions), il est possible d’améliorer la performance par trois moyens différents :

  •  augmenter la fréquence d’horloge

  •  améliorer l’organisation interne pour diminuer le nombre de cycle par instruction

  • améliorer le compilateur pour diminuer le nombre d’instructions ou pour augmenter le taux d’utilisation des instructions avec un nombre de cycle par instruction moindre

Lors de la conception d’une architecture, il est possible de privilégier l’un ou l’autre des paramètres qui interviennent dans la performance d’un processeur.

 Temps = 1/performance =  (nombre d’instructions)* ---------------------->CISC
                                           (nombre de cycles par instruction)*------------>RISC
                                           (période d’horloge)

Le CISC privilégie le nombre d’instructions, alors que les RISC privilégie le nombre de cycles par instruction.

Conclusion

Les technologies RISC et CISC ont chacune leurs avantages et leurs inconvénients, cependant aujourd’hui la technologie RISC semble prendre le pas sur la technologie CISC, néanmoins les processeurs CISC restent compétitifs alors que depuis plusieurs années cette technologie est dite à bout de souffle. Nous pensons qu’il est plus intelligent de privilégier l’optimisation des processeurs plutôt que de faire une course à la fréquence, car même compétitif, les processeurs CISC restent moins puissants pour des fréquences pourtant bien supérieur. L’avenir nous dira la quelle de ces technologies est la plus efficace, à moins que d’ici là une autre technologie  voie le jour.

Retour