Académique Documents
Professionnel Documents
Culture Documents
Architectures conventionnelles
Processeurs RISC,CISC
Mmoires
Les marchs des processeurs:
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 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 processeurs ont ?volu? sous la forme de familles plus ou moins ?toff?es plutt que de g?n?
rations:
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.
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
Dur?es d'ex?cution des instructions tr?s diff?rentes les m?mes, sauf les
acc?s la m?moire
Alignement des instructions et non, mises bout oui, sur des adresses multiples
des donn?es bout de leur longueur
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?.
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 :
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.
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)
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.
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.
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?.
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
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 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?.
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.
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.
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.)
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,
I
On peut construire des op?rations inutilement complexes,
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
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.
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 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.