Vous êtes sur la page 1sur 30

CHAPITRE 2:

Architectures conventionnelles
Processeurs RISC,CISC
Mmoires
Les marchs des processeurs:

Actuellement il y a 3 types de march:

Le march des processeurs gnraux est celui de la manipulation de donnes


comme le traitement de texte et la gestion des bases de donnes reprsent par le
dplacement A -> B et la condition Si A=B Alors...

Le march du calcul au sens arithmtique du terme, utilis en science, en ingenirie


et en traitement du signal.
La conception et la fabrication:

La conception d'un processeur est un travail considrable, le Pentium a t conu


par 300 ingnieurs, le PentiumPro par 500.

Le point mort, au del duquel apparaissent les premiers bnfices, est loign : 3
4 millions d'units.

La premire conception n'est pas tout. Un travail permanent est ncessaire pour
diminuer le taux de rebuts et augmenter la frquence de fonctionnement.

La valeur du produit dcrot trs vite, le prix de vente est divis par 10 en 2 3
ans.

Un processeur n'est pas tout, des composants nouveaux doivent l'accompagner sur
la carte.

Le concepteur n'est pas libre. Il doit conserver des compatibilits. Le lancement


d'un nouveau jeu d'instructions semble si peu raliste que les jeux anciens perdurent
pendant des dizaines d'annes.
Un processeur actuel a des constituants :

le d?codeur d'instructions,
le s?quenceur,
l'unit? arithm?tique et logique,
les registres g?n?raux et particuliers,
l'horloge.

Mais il a aussi une structure (ou architecture) d?crite par les moyens de
fonctionnement :

les mod?les de m?moire, externe, virtuelle, interne, caches,

les processus de traitement, ordonnancement des instructions,

le jeu d'instructions qui est la partie visible par le programmeur.


Mod?le d'acc?s aux donn?es (1):

Les processeurs ont ?volu? sous la forme de familles plus ou moins ?toff?es plutt que de g?n?
rations:

La premi?re famille avait un accumulateur unique (ann?es 1940)


Les suivants ont ?t? des variantes un accumulateur et un ou des registres d'index
(ann?es 1950).

Une s?paration a eu lieu dans les ann?es 1960 qui a produit :

La famille peu nombreuse des machines piles (certaines limit?es un seul langage
ALGOL). Le nom de machine-langage est donn? des machines dont le seul langage
disponible est de niveau ?lev?.Disparition depuis le milieu des ann?es 1980.
Rem:Toute machine a un langage d'assemblage, cette cat?gorie n'est pas nomm?e.

La famille nombreuse des machines plusieurs registres. Elles apparaissent avec les
circuits int?gr?s et la microprogrammation. Le plus bel exemple est la s?rie IBM 360
dont le jeu d'instructions a perdur? jusqu' ce jour sans beaucoup de changements. Les
jeux d'instructions ont augment? en volume jusqu' m?riter le nom CISC.
Mod?le d'acc?s aux donn?es (2):

Une famille peu repr?sent?e jusqu'aux ann?es 1980, celle des machines dites
lit-?crit (load-store) grand nombre de registres. Le premier grand repr?sentant
est le CDC 6600. Ses repr?sentants actuels sont les machines RISC.

Lafamille peu nombreuse des machines microprogrammables : IMP de


National Semiconductors (1974), microprocesseurs en tranches AMD 2900,
bien d'autres encore.

Quant l'architecture de Harvard ou de Aiken, propos?e par lui en 1947, s?pare


m?moire de programme et m?moire de donn?es en leur donnant des capacit?s d'acc?s
simultan?s. Non usit?e avant les ann?es 90 notament par le cot des m?moires.
Les grands courants actuels : CISC, RISC et VLIW.

Il existe aujourd'hui trois types de processeurs dont deux principaux nomm?s :

CISC pour "Complex Instruction Set Computer", RISC pour "Reduce Instruction Set
Computer", VLIW pour "Very long instruction word" (Cruso de Transmeta)

La mesure de capacit? d'une unit? centrale peut, entre autres, ?tre caract?ris?e par trois
facteurs multiplicatifs :
. le nombre d'instructions ex?cuter pour une m?me tche, NI
. le nombre de cycles d'horloge par instruction, NH
. la dur?e du cycle d'horloge. DH

La plus grande rapidit? sera obtenue pour le produit NI x NH x DH minimal.

DH est fix? par la technique,


on peut diminuer NI en faisant ex?cuter des actions plus complexes par chaque
instruction, en contre partie, NH augmente, on tend vers le CISC.
on peut diminuer NI en faisant ex?cuter plusieurs actions simultan?ment par
chaque instruction, NH augmente peu, on tend vers le VLIW.
on peut diminuer NH en construisant des instructions ex?cutables en un seul cycle
d'horloge, elles apportent en plus une simplification du d?codeur et du
Diff?rences entre CISC et RISC (1):

Caract?res CISC RISC

Taille des instructions tr?s diff?rentes m?me taille

Dur?es d'ex?cution des instructions tr?s diff?rentes les m?mes, sauf les
acc?s la m?moire

Nombre de formats grand petit

Modification implicite des codes de oui non


condition par les instructions

Utilisation de la microprogrammation presque toujours presque jamais

Alignement des instructions et non, mises bout oui, sur des adresses multiples
des donn?es bout de leur longueur

Nombre de registres petit, au plus 16 beaucoup, couramment plus


de 100
Diff?rences entre CISC et RISC (2):

Le NI d'un RISC est couramment 1,3 fois plus grand que celui d'un CISC.

Le format fixe des instructions d'un RISC induit un d?codage simple r?alisable par un s?
quenceur cbl? et non plus microprogramm?. Le s?quencement occupe 10 20% de la puce
au lieu de 50 60%.

Les seules instructions d'acc?s la m?moire sont les LOAD et STORE directs ou par
indirection sur registres qui sont alors n?cessaires en grand nombre. En plus la notion de fen?
tre de registres, lin?aire ou circulaire, est utilis?e pour limiter le nombre d'acc?s la m?moire
lors des passages de param?tres aux proc?dures.
L'?volution des CISC a ?t? lente.

Les premiers processeurs, constitu?s de lampes ?taient fabriqu?s avec un souci permanent
d'?conomie de composants qui a continu? s'imposer pendant tout le temps des transistors
isol?s. Le nombre d'instructions ?tait faible, 44 dans l'IBM650 de 1953 et jamais plus de 80.
La situation a chang? l'arriv?e les circuits int?gr?s.


La microprogrammation pouvait ?tre install?e puisqu'on disposait de deux jeux de m?
moires : les tores magn?tiques pour la m?moire centrale, relativement lents, les
composants ?lectroniques chers mais beaucoup plus rapides pour contenir des
microinstructions.


Le nombre de soudures a consid?rablement diminu?.

A partir des ann?es 1960, il ?tait possible d'augmenter le nombre d'instructions en


termes de codes d'op?rations. L'objectif ?tait de r?duire l'?cart entre le langage machine et les
langages dits ?volu?s. On estimait alors que le code ex?cutable devait ?tre le plus court
possible et le compilateur le plus simple possible

Le processeur CISC masque son architecture interne.


Il prend en charge une partie de la complexit? des programmes
L'origine du RISC tient des id?es nouvelles et des id?es anciennes qui sont revenues.

Une id?e revenue est l'instruction simple "lit-?crit" apparue dans le CDC6600 en 1965.

D?s 1976, on savait que le processeur utilise 20% de ses instructions pour 80% des
besoins (r?gle dite des 80-20 valable dans bien d'autres domaines). Ces instructions sont donc
responsables de la plus grande partie du temps de traitement.

Le processeur ?tait d?j plus rapide que la m?moire. Il ?tait pr?f?rable d'avoir des
instructions complexes ?conomes de m?moire m?me si elles prenaient du temps pour ?tre d?
cod?es.

La premi?re r?alisation de machine RISC commence chez IBM en 1975 sous le num?
ro 801. Dans ses objectifs figuraient l'acc?l?ration de l'ex?cution des instructions les plus fr?
quemment utilis?es. Il contenait 32 registres de 32 bits, sans virgule flottante et sans mode
superviseur s?par? et deux caches de Harvard.

Vers 1981, l'universit? de Berkeley lance les projets RISC I, puis RISC II. Les SPARC
et UltraSparc en sont issus. A Stanford, le projet MIPS est lanc?. Son premier descendant a ?t?
le MIPS R2000.
Un processeur est consid?r? comme de type RISC si :

1) il a un petit nombre d'instructions,


2) il fonctionne en lit-?crit,
3) les instructions ont toutes la m?me longueur,
4) le d?codage est cbl?,
5) le nombre de registres est grand,
6) les branchements sont retard?s,
7) le rythme de production est une instruction par cycle.

Le processeur RISC laisse visible son architecture interne.


Le programme prend en charge toute la complexit? des algorithmes.
Le VLIW est r?cent (1).

Cette technique nat avec les unit?s fonctionnelles multiples, par exemple deux unit?s enti?res,
une unit? flottante, un d?caleur, deux organes de lecture et un d'?criture. Puisque ces op?rations
peuvent ?tre ex?cut?es en m?me temps, autant grouper plusieurs instructions en un seul mot qui devient
tr?s long, d'o le nom de la technique. L'instruction longue commande plusieurs op?rations dans un m?
me cycle. Elle est charg?e partir d'un cache d'instructions pour ?viter d'avoir un bus de m?moire
exag?r?ment large. Chaque unit? fonctionnelle est aliment?e en instructions par un pipeline particulier
qui suit une unit? de d?groupage et d?codage des champs de l'instruction tr?s longue.
Le premier VLIW a ?t? l'Advanced Flexible Processor de Control Data mot d'instructions de 210 bits
en 1982.
Le VLIW est r?cent (2):

Ce fonctionnement exige que les instructions regroup?es en un mot long soient ind?
pendantes l'une de l'autre, c'est dire qu'aucune n'utilise le r?sultat d'une autre, en d'autres termes,
qu'il n'y ait pas d?pendance des donn?es.

Les conflits sont pr?vus et r?gl?s par le compilateur.

Des processeurs tr?s r?cents nomm?s CRUSOE sont propos?s en plusieurs versions par la
soci?t? Transmeta. Ils sont constitu?s d'un micro noyau de type RISC, enrob? par un noyau de type
VLIW. Le fabricant annonce une diminution de la place affect?e des caches et une diminution de la
dissipation.
Classification des diff?rents processeurs par les op?randes

La distinction entre CISC et RISC a un succ?s m?rit? mais elle n'est pas la seule pertinente.

Toujours en consid?rant le seul jeu de codes d'op?rations, on peut utiliser l'origine des op?
randes pour distinguer les processeurs.

Registre registre, les deux ou trois op?randes sont dans des registres: SPARC, MIPS, HP-
PA, PowerPC, Alpha. Le processeur est simple, l'ex?cution rapide, le programme contient un grand
nombre d'instructions load/store. C'est la situation des RISC.

Registre m?moire,un des op?randes est en m?moire : Motorola 68000, PDP-10, IBM 360.
Le programme contient moins d'instructions load/store, le code est plus compact. C'est d?j du CISC.

M?moire m?moire, les deux op?randes sont en m?moire : PDP-11, NS32x32, IBM 360(SS
set). Le code du programme est tr?s compact, le processeur est complexe. C'est toujours du CISC.
ARCHITECTURE INDUITE PAR LE JEU D'INSTRUCTIONS (1)

La pr?sentation des architectures travers le jeu d'instructions (ISA ou instruction set


architecture) est la plus fr?quente dans les ouvrages et dans les enseignements. Le jeu d'instructions d?
finit une machine.

Pr?senter l'architecture d'un syst?me informatique mat?riel par le jeu d'instructions, c'est pr?
senter une machine ?mul?e sur celle que l'on voudrait connatre. Le premier grand exemple de machines
pr?sent?es via leur jeu d'instructions a ?t? la s?rie IBM 360. Ses r?alisations, du 360/20 au 360/91,
avaient toutes le m?me jeu d'instructions. Il existait donc UNE architecture 360. Les mod?les ?taient
diff?rents par la quantit? de cblage et par une quantit? sensiblement inverse de microprogrammation.

On a aujourd'hui deux grands exemples de telles architectures :

L'Intel x86. Sa mise en uvre est tr?s diff?rente selon les fabricants Cyrix, AMD et Intel et
chez chacun d'eux selon le produit.
Le SPARC V8, d?fini par Sun Microsystems. Il a plusieurs autres r?alisations comme les
Cypress CY7C601 et Fujitsu MB86900/1A.
ARCHITECTURE INDUITE PAR LE JEU D'INSTRUCTIONS (2)

L'int?r?t majeur de cette fa?on de proc?der est de travailler sur un jeu d'instructions dont la
dur?e de vie est beaucoup plus grande que celle de telle ou telle r?alisation. Le jeu x86 date de 1979
avec des ajouts. Le jeu IBM360 date de 1964.

L'inconv?nient pour nous est que l'on ne voit alors que le fonctionnement logiciel. Les
composants architecturaux, certains tr?s importants, ne sont plus visibles. Par exemple, le jeu x86 a ?t?
r?alis? sans puis avec un pipeline, sans puis avec un ou des caches, sans puis avec une pagination, etc.

Si l'on veut n?anmoins consid?rer le jeu d'instructions, on doit examiner ses cinq dimensions
principales
le nombre d'op?randes explicites : 0, 1, 2, 3.
les modes d'acc?s la m?moire ou comment l'adresse en m?moire est-elle sp?cifi?e.
o les donn?es sont elles charg?es : registres g?n?raux ou non, pile, etc.
les types et tailles des op?randes : octet, entier, etc. et la fa?on dont ils sont sp?cifi?s.
le jeu d'op?rations : addition, multiplication, etc.

Parmi les autres aspects, on doit examiner :


comment est d?fini le successeur de l'instruction et de la donn?e.
les codes de conditions.
le parall?lisme.
Etude abr?g? d'un CISC: Intel 80386

Cette organisation est dite pipeline , car les informations, instructions ou donn?es, sont trait?
es au fil du d?placement qui leur est impos? d'unit? en unit?.

Ce pipeline est asynchrone, car, bien que le tout soit r?gi par une horloge de base, les temps de
traitement de chaque organe sont diff?rents et deux informations de m?me nature n'ont pas n?
cessairement le m?me temps de traitement (instructions CISC de complexit? et de longueurs variables).

L'horloge fournit un rythme de base mais chaque organe ?volue s?par?ment des autres. Chacun
doit donc disposer de tampons d'entr?e et de sortie pour r?tablir une synchronisation de disponibilit?.

Dans les machines RISC, les pipelines sont synchrones.

On dit aussi qu'il y a anticipation, puisqu'une instruction commence ?tre trait?e, sinon ex?
cut?e avant la fin de l'ex?cution des pr?c?dentes
Fonctions dans un processeur

PRRECHERCHE D'INSTRUCTION.
Re?oit : les limites de validit? des adresses, l'adresse du mot,
l'instruction.
Fait : les tests de limite d'adressage (par rapport au segment et la
page).
un stockage de plusieurs octets de code.
met : l'adresse vers le bus, les codes vers le pr?d?codage.
PRDCODAGE D'INSTRUCTION.
Re?oit : les codes de la pr?recherche.
Fait : une premi?re transformation du code en adressage interm?diaire
un stockage de deux instructions d?cod?es.
met : les instructions d?cod?es vers la commande,
les valeurs de d?placement vers la segmentation.
COMMANDE ou SQUENCEUR ou PIPELINE
Re?oit : les instructions pr?d?cod?es, les drapeaux d'?tat fournis par
l'UAL.
Fait : le calcul des commandes ou celui de l'adresse de la
microinstruction rechercher
puis le transcodage de la microinstruction en commandes.
met : les commandes de tous les organes via le bus interne,
les ordres d'op?ration et les op?randes imm?diats vers l'UAL.
UAL : UNITE ARITHMTIQUE ET LOGIQUE OU UNITS FONCTIONNELLES
Re?oit : les ordres et op?randes imm?diats de la COMMANDE,
les donn?es du bus externe.
Fait : les lectures et ?critures des registres,
les op?rations arithm?tiques et logiques.
met : les adresses sur bus internes vers la SEGMENTATION,
les drapeaux d'?tat,
les r?sultats des op?rations vers un bus interne.
SEGMENTATION
Re?oit : les adresses calcul?es dans l'UAL,
les indications de d?placement issues du d?codage.
Fait : les combinaisons-additions d'adresses,
entretient les registres descripteurs de segments.
met : les adresses calcul?es vers la pagination et la pr?recherche.
PAGINATION
Re?oit : les adresses dans les segments,
les adresses physiques.
Fait : les op?rations sur les adresses,
entretient la table des pages
met : les adresses physiques vers le bus et la pr?recherche
COMMANDE DU BUS
Re?oit : les adresses des donn?es lire et ?crire,
les adresses des instructions,
les signaux de la commande.
Fait : les multiplexages et d?multiplexages,
le codage des priorit?s sur les demandes.
met : les donn?es, les instructions, les commandes d'interruption.
COMMANDE CBLE OU MICROPROGRAMME

On a vu les grandes divisions d'un processeur.

Dans sa partie centrale, on a distingu? la partie arithm?tique et logique proprement dite (UAL),
appel?e parfois "chemin de donn?es" et la partie de commande et non pas contrle (control).

La partie UAL ou chemin de donn?es est constitu?e de registres, de chemins et de portes,


relativement faciles d?finir.

La commande consiste en :
.l'interpr?tation des instructions,
.la fabrication des commandes ?l?mentaires d'activation des divers organes,
.l'?mission de ces microcommandes.

Pour cela, il faut que les organes soient commandables, mais cela ?tait d?j suppos?.

Il faut de plus mod?liser le trio :


.entr?es, le contenu de l'instruction,
.variables d'?tat, l'?tat de l'UAL,
.variables de sorties, les microcommandes.

La voie de la commande cbl?e consiste faire la synth?se de ce syst?me s?quentiel la


mani?re des automaticiens, ?ventuellement en plusieurs ?tapes. Les outils de mod?lisation existent. La
La voie de la commande microprogramm?e utilise l'invention de Maurice Wilkes (1951).

Elle consiste ins?rer une machine extr?mement r?duite (micromachine). Ses entr?es sont les
instructions, ses sorties sont les commandes. Sa m?moire contient deux tables. La premi?re met en
correspondance les codes d'op?ration et les adresses de la deuxi?me table. La deuxi?me table contient
les commandes ?mettre. Le processeur tr?s simple g?re ces adresses et ces donn?es. La technique est
nomm?e microprogrammation.

On ajoute le pr?fixe micro aux ?l?ments de cette machine r?duite : micromachine (parfois
machine nombre fini d'?tats ou FSM finite state machine), microm?moire, microcontrleur,
microinstructions, microcode, microprogramme.

La micromachine a eu plusieurs variantes de r?alisation. On les classe en trois groupes :

microprogrammation horizontale,
microprogrammation verticale,
microprogrammation diagonale.
Dans la microprogrammation horizontale, les microinstructions sont tr?s longues (plus de
100 bits). Les microcommandes raison d'un ou plusieurs bits par signal sont log?es dans des champs
nombreux. Chaque microinstruction commande donc plusieurs organes.
Cette microprogrammation veut exploiter au mieux les capacit?s de fonctionnement simultan? des
organes du processeur.
Exemples : AMD 2900 et AMD29000, Vax 11/780.

Dans la microprogrammation verticale, les mots sont courts (16 bits par exemple). Ils ne
contiennent que des bits repr?sentant des signaux mutuellement exclusifs. Des descripteurs de champs
rep?rent la signification des bits. Ces microinstructions ressemblent des instructions ordinaires du
langage d'assemblage : un code qui porte la signification des arguments, des arguments qui sont les
listes des signaux de commande.
Elles sont simples concevoir et manipuler, beaucoup plus rapides ex?cuter. Elles exploitent moins
bien les simultan?it?s possibles.
Exemples : Multi6 d'Intertechnique, Intel 80486.

La microprogrammation diagonale tente de combiner les deux pr?c?dentes. Les


microinstructions ont des longueurs moyennes de quelques dizaines de bits.

Une autre voie a ?t? explor?e, celle du nanocode. Le processeur est alors constitu? de trois
machines imbriqu?es. Le processeur visible, la micromachine command?e par des microinstructions
courtes (type vertical). Toutefois ces microinstructions ne contiennent pas les signaux de commande.
Ceux-ci sont stock?s dans une nanomachine sous la forme de nanoinstructions de type horizontal.
Exemple : Motorola 68000.
Exemple de la microinstruction du Vax 11/780 :
.Longueur 96 bits,
.Nombre de champs 30,
.Nombre de microinstructions pour r?aliser le jeu d'instructions : 4096,
.Taille de la m?moire de microinstructions 400K bits.
(Les modes d'adressage du Vax ?taient extraordinairement nombreux.)

D?tail de quatre champs :

Les performances de la microprogrammation sont li?es celles de la micromachine. Dans les p?riodes
o l'on dispose de m?moires de petite taille nettement plus rapides que des m?moires de grande taille et
tenant compte des cots respectifs, la microprogrammation est utilisable. Dans les p?riodes o ce n'est
pas le cas, la commande cbl?e l'emporte
Avantages et Inconv?nients de la microprogrammation.

A
Souplesse :
facilit? commander des op?rations simultan?es, retours sur erreurs facilit?s.

On peut construire des jeux d'instructions libres et puissants, on peut construire des op?rations
complexes,

On peut construire plusieurs jeux d'instructions sur la m?me machine.

I
On peut construire des op?rations inutilement complexes,

L'ex?cution est lente cause de l'acc?s la micromachine, compar?e au d?codage direct.

Le concepteur est encourag? faire compliqu? plutt que simple en ?crivant des
microprogrammes longs. Des s?quences simples sont souvent plus rapides qu'une s?quence
complexe.
LES MMOIRES

Les m?moires ?lectroniques ont :

une structure d'organisation en cellules, la cellule est l'unit? d'acc?s la m?moire. Une
structure est r?sum?e en deux nombres :
n nombre de cellules
t taille de la cellule en bits.

un jeu de caract?ristiques temporelles :


temps d'acc?s, temps n?cessaire pour acc?der une valeur d'adresse donn?e.
temps de transfert, une fois l'acc?s r?alis?, temps n?cessaire pour que la donn?e
arrive destination,
temps de cycle, temps total pendant lequel un banc de m?moire n'est pas
accessible suite un acc?s.

une technique de fabrication :

RAM (Random Acces Memory) => SRAM et DRAM,SDRAM


La m?moire ROM, La m?moire PROM (programmable 1 fois)
La m?moire EPROM et EEPROM (peuvent ?tre reprogramm?es)
La m?moire FRAM (F pour flash)
Dans la RAM dynamique, la structure est parfaitement r?guli?re sous la forme d'un tableau de lignes et
colonnes. L'enregistrement d'un bit est fait par la charge d'un condensateur de capacit? tr?s faible, 30
50 femtofarads. Chacun est associ? un transistor effet de champ (MOSFET : metal-oxyde silicium
field effect transistor) qui lit ou ?crit cette charge. Le circuit est muni d'un registre tampon de
manipulation de ligne.

D'une part, le condensateur se d?charge lentement. La charge doit ?tre reconstitu?e p?riodiquement
par l'op?ration dite de rafrachissement qui consiste en une lecture syst?matique avant ?puisement de la
charge et une r?criture. Cette op?ration est faite avec une p?riodicit? de quelques millisecondes.

D'autre part les op?rations de lecture et d'?criture portent sur une ligne enti?re. En lecture, la
ligne est lue, copi?e dans le tampon, le bit demand? en est extrait et la ligne est RCRITE car l'op?
ration de lecture a vid? les condensateurs de leur charge. En ?criture, la ligne est lue, copi?e dans un
registre, le bit est ins?r? et la ligne est RCRITE.

Le temps d'acc?s, parfois dit temps de latence, de l'affichage de l'adresse la disponibilit? de


la donn?e sur le bus, va de 50 80 ns.

Le temps de cycle, de l'affichage d'une adresse l'affichage utile de la suivante, est le temps
d'acc?s plus le temps de pr?charge, soit 100 160 ns.