« Fonctionnement d'un ordinateur/Les jeux d'instructions » : différence entre les versions

m
Les architectures à pile et à file ont plusieurs défauts. En premier lieu, la complexité de la gestion de la pile/file entraine l'usage d'un grand nombre d'instructions d'accès mémoire. Mais surtout, il est impossible de réutiliser une donnée chargée dans la pile, toute opération dépilant ses opérandes. Cela entraine un grand nombre d'accès en mémoire RAM, défaut rédhibitoire quand la RAM est lente et peu chère et où la hiérarchie mémoire dicte sa loi. Les autres classes d'architectures n'ont pas ces défauts et font usage de modes d'adressage autres que le mode d'adressage implicite. L'usage de ces modes d'adressages permet d'éviter d'avoir à copier des données dans une pile, les empiler, et les déplacer avant de les manipuler. Le nombre d'accès à la mémoire est donc plus faible comparé à une machine à pile pure.
 
==Les jeux d'instruction RISC vs CISC==
 
La seconde classification des jeux d'instructions que nous allons aborder se base sur le nombre d'instructions et classe nos processeurs en deux catégories :
===Les processeurs RISC===
 
AuEst-ce fil du temps, on s'est demandé sique les instructions complexes des processeurs CISC étaientsont vraiment utiles. ? Pour le programmeur qui écrit ses programmes en assembleur, elle le sont. Mais avecdepuis l'invention des langages de haut niveau, la roueréponse adépend commencéede àl'efficacité tournerdes compilateurs. DiversesDes analyses ontassez alors étésanciennes, effectuées par IBM, DEC et quelques chercheurs,laboratoires visantde à évaluer les instructions réellement utilisées par les compilateurs. Et ellesrecherche, ont montré qu'à l'époque,que les compilateurs n'utilisaient pas la totalité des instructions fournies par un processeur. Nombre de ces instructions n'étaientne sont utilisées que dans de rares cas, voire jamais. Autant dire que beaucoup de transistors étaient gâchés à rien ! L'idée de créer des processeurs possédant des jeux d'instructions simples et contenant un nombre limité d'instructions très rapides commença à germer. Ces processeurs sont de nos jours appelés des processeurs RISC (acronyme de ''Reduced Instruction Set Computer''). Ces processeurs RISCIls n'ont pas les défauts des CISC, mais n'en ont pas les avantages : la densité de code est mauvaise, en contrepartie d'une simplicité non-négligeable du processeur et une moindre consommation thermique/de transistors.
 
Mais de tels processeurs RISC, complètement opposés aux processeurs CISC, durent attendre un peu avant de percer. Par exemple, IBM décida de créer un processeur possédant un jeu d'instruction plus sobre, l'IBM 801, qui fût un véritable échec commercial. Mais la relève ne se fit pas attendre. C'est dans les années 1980 que les processeurs possédant un jeu d'instruction simple devinrent à la mode. Cette année là, un scientifique de l'université de Berkeley décida de créer un processeur possédant un jeu d'instruction contenant seulement un nombre réduit d'instructions simples, possédant une architecture particulière. Ce processeur était assez novateur et incorporait de nombreuses améliorations qu'on retrouve encore dans nos processeurs haute performances actuels, ce qui fit son succès : les processeurs RISC étaient nés.
===Conclusion===
 
Durant longtemps, les CISC et les RISC eurent chacun leurs admirateurs et leurs détracteurs. De longs et interminables débats eurent lieu pour savoir si les CISC étaient meilleurs que les RISC, similaires aux "Windows versus Linux", ou "C versus C++", qu'on trouve sur n'importe quel forum digne de ce nom. Au final, on ne peut pas dire qu'un processeur CISC sera toujours meilleur qu'un RISC ou l'inverse :et chacun a des avantages et des inconvénients, qui rendent le RISC/CISC adapté ou pas selon la situation. Par exemple, on mettra souvent un processeur RISC dans un système embarqué, devant consommer très peu. ParLe contre,CISC leétait CISCbien sembleplus mieuxutile adaptéquand danson certainesprogrammait conditions,encore en raisonassembleur deet que la taillemémoire plusétait faiblelimitée. desEn programmestout cas, oula quand les programmes peuvent faireperformance d'un bonprocesseur usagedépend desassez instructions complexespeu du processeur.fait Auque final,le laprocesseur performancesoit d'un processeurRISC dépendou essentiellement d'un tas de paramètresCISC, quimême sontsi biencela pluspeut importantsfaire quela ledifférence faiten quetermes lede processeurtransistors soitou unde RISCsimplicité oude un CISCconception.
 
De plus, de nos jours, les différences entre CISC et RISC commencent à s'estomper. Les processeurs actuels sont de plus en plus difficiles à ranger dans des catégories précises. Les processeurs actuels sont conçus d'une façon plus pragmatique : au lieu de respecter à la lettre les principes du RISC et du CISC, on préfère intégrer les techniques et instructions qui fonctionnent, peu importe qu'elles viennent de processeurs purement RISC ou CISC. Les anciens processeurs RISC se sont ainsi garnis d'instructions et techniques de plus en plus complexes et les processeurs CISC ont intégré des techniques provenant des processeurs RISC (pipeline, etc). La guerre RISC ou CISC n'a plus vraiment de sens de nos jours.
39 497

modifications