You are on page 1of 6

Architectures RISC et exemples

[Previous] [Next] [Summary]

1. Architectures RISC
2. Exemples d'architectures
1. Motorola 68040
2. i860 d'Intel
3. VMotorola 88000
4. Les machines VLIW
5. Quelques architectures RISC

1. Architectures RISC
Le principe de machine jeu d'instructions rduit, ou RISC, a t invent par IBM.
Le premier processeur de ce type, apparu en 1975 (John Cocke) sous le nom
IBM801 (le numro du btiment dans lequel ce projet a t poursuivi), est issu d'un
contrleur de commutateur tlphonique. L'tude de ce type d'architecture s'est
ensuite poursuivie au sein des universits de Stanford et Berkeley. Elle part de la
constatation que, le jeu d'instruction des machines classiques tant micro-cod, il y
a beaucoup de cycles de lecture de la ROM de micro-code. Cet tat de fait est li
l'enrichissement excessif du jeu d'instructions. Pour limiter ces effets, on a essay
de dfinir une architecture sensiblement diffrente :
1. Une instruction par cycle, ce qui impose aussi que le jeu d'instruction soit
limit. En corollaire la taille des programmes est pnalise (pas plus de 30%
cependant),
2. Un format fixe pour les instructions, d'o un dcodage simplifi et la
ralisation d'un squenceur cbl et non microcod. La place occupe par le
contrle est bien infrieure (10 20%) par rapport aux processeurs CISC (50
60%),
3. Les seules instructions d'accs la mmoire sont les LOAD et STORE utilisant
l'indirection sur registres. Cela exige un nombre de registres assez important.
En plus le concept de fentres de registres, linaire ou circulaire, est utilis
pour limiter le nombre d'accs la mmoire lors de passages de paramtres
aux procdures. Ainsi le RISC I (Berkeley) dispose de 10+128 registres 32
bits organiss en 8 fentres recouvrantes. Le transfert d'arguments est
effectu sur 6 registres en entre et en sortie. Le Cypress CY601 mettant en
oeuvre l'architecture Sparc est dot de 128 registres organiss en 8 groupes
de 24 registres 32 bits avec 8 registres en entre et 8 en sortie.

Les premiers IBM PC-RT sont les hritiers du projet IBM801 :


1. Bus multiplex 32 bits adresses/donnes par demi-cycle d'horloge,
2. Jeu d'instruction de 118 instructions,
3. Une machine pas vraiment RISC.

Les dveloppements ultrieurs ont t :


1. A Berkeley : projets RISC I et II, projet SOAR (Smalltalk on a RISC),
projet SPUR (Symbolic Processor Using a RISC) avec entre 6 12
processeurs pour faire tourner des programmes en Lisp : tampon de 512
instructions, pipe-line quatre tages, interface coprocesseur,
2. L'AMD 29300 bti autour de plusieurs chips : un chip pour les registres
(fentres de registres recouvrantes : 6 en entre, 6 en sortie, 10 en local, 10
en global), un pour l'ALU, un pour le vrificateur de limites pour la
mmoire,
3. A Standford : projet Mips,
4. Chez SUN l'architecture Sparc,
5. Chez HP, l'architecture Spectrum pas tout fait RISC car devant assurer une
certaine compatibilit avec la gamme 3000,
6. L'ARM (Acorn RISC Machine) VL86C010 (46 types d'instruction / 32 bits).

2. Exemples d'architectures
Des reprsentants caractristiques des microprocesseurs CISC sont :
1. 80286, 80386, 80486 chez Intel,
2. Motorola 68020 : 192 000 transistors sur 80 mm 2,
3. Motorola 68030 : pipe-line trois tages, transfert en mode rafale de 16
octets en 5 cycles d'horloge. 300 000 transistors.
4. Motorola 68040 : CMOS 0,8u, 1200000 transistors. Architecture interne de
type Harvard. Performances estimes : 20 Mips ( 25 Mhz : 80486 15 Mips,
Sparc 18 Mips), 3,5 Mflops (80486 : 1 Mflops et Sparc 2,6 Mflops).

2.1. Motorola 68040

Le microprocesseur M68040 possde les caractristiques suivantes :


1. Unit de traitement optimise d'o des performances 3 fois suprieures
celles du 68030,
2. Unit flottante intgre (IEEE754) compatible 68881 et 68882 :
performances 10 fois suprieures celles du 68882,
3. Deux caches instructions et donnes de 4Koctets avec logique pour
maintenir la cohrence des informations en cas de fonctionnement multi-
processeur. Un contrleur assure que le trafic avec les caches sont
prioritaires,
4. Unit de contrle d'accs mmoire spars pour les instructions et les
donnes,
5. Horloge de base 25 MHz, prvue pour aller jusqu' 50 Mhz, 179 pattes,
6. A peu prs 1,3 instruction/cycle,
7. Les deux pipe-line sont indpendants,
8. La ralisation est telle que l'occupation des bus externes soit minimale.

Les instructions les plus souvent utilises ont vu leur squencement


particulirement optimis. Le traitement des branchements est trait par
ddoublement des units de lecture et de dcodage dans le pipe-line.

L'unit flottante ajoute 11 registres au jeu de registres de l'unit de traitement. 8


sont des registres 80 bits, et les autres des registres de contrle, d'tat et de
commande. Les fonctions transcendentales sont mules (elles sont cbles sur le
68882) travers une interruption soft (grce l'optimisation de l'excution, elles
sont 25% plus rapides sur un 68040 25MHz que sur le 68882/33Mhz).

Les MMU assurent une gestion en mmoire virtuelle pagine (pages de 4K ou 8K :


le MMU du 68030 autorisait des pages de 256 octets 32Ko) de la mmoire. 93%
de hit en lecture et 94% en criture.

fig.1 Structure du M68040

On peut choisir le mode de gestion du TLB :


1. Write Through (criture simultane en mmoire),
2. Copy Back ou write back (on ne recopie que si c'est ncessaire),
3. Cache inhib,
4. Cache inhib lors des entres/sorties. Une unit de scrutation du bus
(snooper) permet de savoir si le cache doit tre mis jour (dans le cas d'un
accs en DMA par exemple).

Le MMU est dot d'un cache de traduction TLB (Translation Lookaside Buffer)
(appel ici ATC pour Address Translation cache) de 64 entres (le TLB du 68030
n'a que 32 entres).

2.2. i860 d'Intel

Le microprocesseur i860 possde une unit de contrle pipe-line quatre


tages fetch, decode, execute et store. Additionneur et multiplicateur flottants
possdent trois niveaux de pipe-line. Paralllisme entre instructions flottantes et les
autres si c'est possible. Le programmeur peut spcifier s'il veut excuter en
mode dual instruction. Il faut noter qu'il est aussi possible d'excuter en parallle
une addition et une multiplication flottante (dual operation). On a ainsi 3
oprations possibles par cycle de base.

Les autres cacractristiques en sont :

1. Une unit graphique capable de traiter des changements d'chelle, des


rotations, traitements de luminosit, ... :
2. Une unit de gestion mmoire (MMU) avec adressage sur 32 bits. Le MMU a
un TLB 64 entres et assure une pagination deux niveaux semblable
celle qui est utilise dans les 386 et 486.
3. Toutes les instructions sont codes sur 32 bits (jeu typiquement RISC). Le
format supporte trois oprandes. L'instruction load s'excute en 1 cycle.
Utilisation de marquage de registres (scoreboarding) : ce marquage consiste
garder trace des registres qui sont en attente de chargement. Si la donne
est dans le cache, il n'y a pas de cycle d'attente (wait). Les instructions
suivantes utilisent le marquage pour dcider s'il faut attendre. Le rle du
compilateur est ici primordial. Le jeu d'instructions est dot
de branchements diffrs. Le FPU utilise la norme IEEE-754 de codage des
nombres flottants et les entiers 32 et 64 bits.
fig.2 Structure du i860

Les performances annonces 40 MHz sont de l'ordre de 33 Mips VAX, 80 Mflops


en simple prcision, 60 Mflops en double prcision. LINPACK donne 10 Mflops.
Une FFT complexe 1024 points peut s'y excuter en 1 ms.

2.3. Motorola 88000

Le M88000 possde une sparation complte des bus. Le composant intgr


comporte 182 pattes pour 1,8 inch2. Le processeur possde 32 registres 32 bits.
L'unit flottante intgre permet une sparation complte des excutions de
l'addition et de la multiplication. Celles-ci pouvent oprer en parallle. Il est
possible de travailler poids fort ou poids faible en tte.

fig.3 Structure du M88000

La version 88200 est dote d'un cache de MMU. Celui-ci a une taille de 16Ko. Il est
associatif par bloc (4 blocs) et les modes supports sont write back ou write
through.

Le bus d'instruction ou de donnes est appel P-Bus (pipe-lined protocol) : 80


Mo/s.

2.4. Les machines VLIW


La coordination des tches dans un calculateur faisant intervenir "beaucoup de
paralllisme" est dlicate. Il est de plus peu vident de parallliser un algorithme.
En ralit, il semble plus facile de parallliser le travail au niveau de quelques
instructions sur plusieurs processeurs. Les machines VLIW, Very Long Instruction
Word, fournissent une solution priori satisfaisante. Le problme des branchements
peut aussi tre partiellement rsolu en faisant traiter systmatiquement les deux
branches d'excution. Les problmes de dpendance ne sont pas rsolus pour
autant.

Le problme de compilation est particulirement dlicat. Deux solutions :

1. Trace scheduling Compiling o le compilateur construit un chemin probable


d'excution du programme,
2. Percolation Scheduling Compiling o le compilateur construit un arbre
d'excution. Ensuite il effectue un examen de chaque noeud voisin pour
savoir s'il peut les fusionner dans le cas o le paralllisme est possible.

Exemples : l'i860 est sur le chemin des machines VLIW. La machine Multiflow
Computer offre sept oprations simultanes dans sa version de base
(modle Trace7).

2.5.Quelques architectures RISC

Le tableau suivant donne quelques caractristiques de processeurs RISC. Ces


donnes sont insuffisantes pour effectuer une comparaison srieuse mais
fournissent une petite ide des performances relatives de ces machines.
Nom |Archi.|Horloge| Mips | Mflops | 16k+0 | Nb. | Alim.| Puis.
|(bits)| (Mhz) | | | |Trans.| (V) |(Watts)
---------------------------------------------------------------------------
Alpha21066A | 64 | 166 | 332 | 166 | 16k+0 | 1,7M | 3,3 | 21 50
Alpha21164 | 64 | 300 | 1200 | 600 | 112k+0 | 9,3M | 3,3 |
---------------------------------------------------------------------------
I80960HT | 32 | 75 | 125 | | 16k+8k | | 3,3 |
---------------------------------------------------------------------------
AM29030 | 32 | 25,3 | 40,2 | | | | 5 |
AM29240 | 32 | 20,2 | 47,6 | | 4k+2k | | 5 |
---------------------------------------------------------------------------
PowerPC601 | 32 | | | | 32k | | |
PowerPC602 | 32 | 66 | 40 | | 4k+4k | 1M | 3,3 | 1,2
PowerPC603 | 32 | 80 | 75* | 85* | 8k+8k | 1,6M | | 2,2
PowerPC603e | 32 | 100 | 120* | 105* | 16k+16k | 2,6M | 3,3 |
PowerPC604 | | | | | | | |
PowerPC620 | 64 | 133 | | | 32k+32k | 6,9M | 3,3 | 30
---------------------------------------------------------------------------
MicroSparcII| 32 |85-110 |85-110| 18-85 | 16k+8k | 2,3M | 3,3 | 9
SuperSparcII| 32 | 60-90 |20-75 | 44-75 | 20k+16k | 3,1M | 5 | 17
UltraSparc | 64 | 167 | | | 16k+16k | 5,2M | 3,3 | 30
---------------------------------------------------------------------------
(*)SPECint92 et SPECfp92

[Top] [Previous] [Next] [Summary]

You might also like