You are on page 1of 21

Ecole Polytechnique

Electronique, composants & systmes

Microprocesseur
PowerPC 750

Guillaume Rinc
X96 2me Cie

I Lvolution du PowerPC
Les processeurs PowerPC sont apparus en 1993. Ils sont dvelopps par IBM et par
Motorola sous licence IBM. Auparavant, les processeurs des ordinateurs grand public taient
tous de type CISC, que ce soient ceux dIntel pour le monde PC ou ceux de Motorola pour le
monde Apple. Le PowerPC 601 est le premier processeur RISC tourner dans un ordinateur
de ce type, il vient remplacer la fameuse famille des 68000 qui tournait au c ur des premiers
Macintosh.
Lvolution de la famille PowerPC va se faire ensuite en troite collaboration entre
IBM, Motorola et Apple. Actuellement, le PowerPC 750 ou PowerPC G3 est la dernire
volution fruit de cette collaboration.

Laccroissement des performances est la consquence directe de cette alliance. Non


seulement, le processeur a t amlior de manire intrinsque, mais en outre, son intgration
a t facilite par la coopration des trois entreprises. MacOS, le systme dexploitation
dApple est optimis pour le PowerPC et le PowerPC lui-mme est optimis pour MacOS. Le
design externe de larchitecture PowerPC a t amlior en particulier par une augmentation
des vitesses des bus. Lensemble forme maintenant un ensemble la fois cohrent et
performant.
La carte mre ci-dessous, celle de la premire gnration de PowerMac G3 dApple
est un exemple de cette intgration.
2

Il y a quelques semaines, ce design a encore t amlior afin dintgrer tous les


nouveaux standards, USB, FireWire. Paralllement ces modifications externes, le PowerPC
750 a lui aussi volu. IBM a en effet atteint la frquence de 400 MHz pour ses G3, et ce
grce une rvolution technologique, la technologie CMOS 7S qui consiste remplacer
laluminium par du cuivre.

Toutes ces volutions techniques se traduisent en termes de performances et font du


PowerPC G3 lun des tout meilleur processeur du march.

Ce haut niveau de performance est le rsultat dune technologie avance et complexe,


6,35 millions de transistors avec une technologie cuivre actuelle de 0,22 m.

II Analyse
processeur

du

diagramme

de

fonctionnement

du

II.1 Instruction Queue & Dispatch Unit


L instruction queue (IQ) peut contenir jusqu six instructions. Elle peut
renouveler jusqu quatre instructions par cycles dhorloge. Le fetcher charge de
nouvelles instructions dans lIQ ds quune place est vacante. Toutes les instructions sont
rparties par la Dispatch Unit mis part les branchements qui sont traits par la Branch
Processing Unit (BPU). A chaque cycle dhorloge, les deux instructions du bas de la file
(IQ0 et IQ1) peuvent tre rparties. Les branchements sont traits et envoys vers le BPU
quelles que soient leurs positions dans la file IQ.

II.2 Completion Unit


Completion Unit (CU) travaille en relation avec l Instruction Unit (IU). Les
instructions sont rparties dans lordre dfini par le programme. Cet ordre est maintenu par
laffectation dune entre dans la CU chaque instruction. Une fois excutes, ces
instructions sont retires dans lordre maintenu par la CU. La CU peut retirer les deux
dernires instructions (cest--dire les instructions correspondant aux entres CQ0 et CQ1 de
la Completion Unit ) chaque cycle dhorloge. Aucune instruction ne peut tre achemine
par la DU tant quil ny a pas de entre libre dans la CU.

II.3 Integer Units


Les deux Integer Units , IU1 et IU2, ne sont pas identiques. IU1 peut excuter
toutes les instructions entires. IU2 peut excuter toutes les instructions entires, sauf les
instructions multiplication et division. Les deux units sont indpendantes, elles ont chacune
une entre distincte ( Reservation Station ). Une IU reoit les instructions de la Dispatch
Unit (DU) et les oprandes du GPR ou de lun des buffers ( Rename Buffers ).
Chaque IU est constitu de trois sous-units :
1. Un additionneur / comparateur rapide
2. Une sous-unit ddie aux oprations logiques
3. Une sous-unit pour les oprations rotate , shift ,
Seule une sous-unit peut excuter une instruction un instant donn. La spcificit de
lIU1 est de possder un multiplicateur / diviseur entier 32 bits. Ce multiplicateur peut sortir
rapidement au cas o lopration ne ncessiterait pas une vraie multiplication 32 x 32 bits.
Chaque IU a en sortie un bus ddi (non reprsent sur le diagramme) reli aux
Rename Buffers .

II.4 Floating-Point Unit


La FPU est conue de manire quune opration de prcision simple soit effectue en
une seule fois sur trois cycles dhorloge. Les instructions sont amenes par la DU dans la
Reservation Station de la FPU et les oprandes proviennent du FPR File ou des FPR

Rename Buffers . Les rsultats sont stocks dans le Rename Buffer et sont ainsi
accessibles aux instructions suivantes.
La FPU est forme dun multiplicateur / additionneur de prcision simple et dun
registre de contrle de ltat de lunit ( Floating-Point Status and Control Register FPSCR).

II.5 Load/Store Unit


La LSU excute toutes les instructions de type chargement et stockage. Elle gre les
transferts de donnes entre les GPR et les FPR. La LSU peut stocker au maximum une
instruction par cycle dans sa file ( Store Queue ) et une instruction tous les trois cycles dans
la cache L1. Le temps ncessaire ces oprations dpend du ratio frquence du processeur sur
frquence du bus de cache L2, ainsi que des diffrentes mmoires impliques, L1, L2,

II.6 Memory Management Unit


La MMU supporte jusqu 4 petabytes (252) de mmoire virtuelle et jusqu 4
gigabytes (232) de mmoire physique. La MMU traduit les adresses effectives gnres par les
autres units, en particulier la LSU, en adresses physiques.
La MMU traduit les bits de poids fort de ladresse effective en bits dadresses
physiques. Les bits de poids faible sont dirigs dans la cache L1 o ils forment un index.
Ensuite, la MMU envoie les bits de poids fort de ladresse physique dans la cache.

II.7 Caches dinstructions et de donnes de niveau 1 (on chip)


Les caches internes ( on chip ) dinstructions et de donnes sont spares
lintrieur du processeur. Comme le dfinit larchitecture PowerPC, elles sont indexes
physiquement. Chaque bloc de la cache contient huit mots contigus de la mmoire. Lors dun
chargement, la cache reste accessible aux demandes internes. Lorganisation de la cache est
dcrite dans le schma suivant.

A chaque cycle dhorloge, la LSU peut accder deux mots de la cache de donnes.
Lors dun renouvellement, la LSU est bloque pour un cycle dhorloge pour que le bloc de
huit mots puisse tre copi.

II.8 La cache de niveau 2


La cache de niveau 2 est unifie, elle dialogue aussi bien avec la cache dinstructions
L1 quavec la cache de donnes L1. La cache L2 communique dun autre ct avec jusqu
1 Mbyte de mmoire synchrone SRAM.

Suivant sa taille, la cache L2 est organise en lignes de 64 ou 128 bytes qui sont
divises en blocs de 32 bytes. Le contrleur de la cache L2 dispose dun registre L2 Cache
Control Register (L2CR) qui permet de dfinir le ratio frquence du bus ddi la cache L2
sur frquence du processeur, didentifier le type de RAM utilis pour la cache L2,
Les requtes de la cache L1 sont principalement des instructions ou des chargements /
stockages de donnes. Si la cache L2 peut rpondre, elle le fait, sinon, elle oriente la requte
vers le bus interface o se trouve la rponse la requte.

II.8 Les bus dadresses et de donnes


Les bus dadresses et de donnes fonctionnent de manire indpendante afin de rendre
plus souple la gestion du trafic mmoire. Lactivit premire du Bus Interface Unit (BIU)
est de transfrer les donnes entre le processeur et la mmoire. Il y a deux types daccs
mmoire :
4. Single-beat transfer : ces accs mmoire autorisent des transferts de 8, 16, 24,
32 ou 64 bits en un seul cycle dhorloge. Ce mode daccs se produit cause
doprations de lecture / criture directes en mmoire qui surviennent lorsque la
fonction de cache est dsactive.
5. Four-beat burst (32 bytes) data transfers : Ce type de transfert correspond au
transfert dun bloc de cache entier (32 bytes). Il sagit du mode de transfert le plus
courant puisque le processeur est dot dune cache L1.
Le PowerPC 750 optimise de manire dynamique les oprations de lecture / criture
afin damliorer les performances globales. Les signaux du 750 sont regroups comme
lexplique le schma suivant.
8

1. Adress Arbitration : ces signaux sont utiliss pour grer la proprit du bus
dadresses
2. Adress start : ces signaux signifient quun propritaire du bus a commenc une
transaction
3. Adress transfer : ces signaux sont utiliss pour transfrer une adresse et pour
sassurer du succs du transfert
4. Transfer attribute : ces signaux donnent des informations sur le type de
transfert, comme la taille du transfert, le mode de transfert
5. Adress termination : ces signaux sont utiliss pour indiquer la fin de la phase
adresse dune transaction ou bien pour dire que la phase adresse doit tre rpter.
6. Data arbitration : ces signaux sont utiliss pour grer la proprit du bus de
donnes
7. Data transfer : ces signaux sont utiliss pour transfrer les donnes adresse et
pour sassurer du succs du transfert
8. Data termination : ces signaux marquent la fin de chaque transfert de donnes
9. L2 cache clock / control : ces signaux permettent le contrle de lhorloge de la
cache L2
10. L2 cache adress/data : le 750 a un bus dadresses et un bus de donnes spares
11. Interrupt : ces signaux comprennent :
1. Interrupt
2. Checkstop
3. Soft Reset
4. Hard Reset
Ces signaux sont utiliss afin de faire un reset du processeur
Processor status / control : ces signaux sont utiliss pour grer et contrler le
processeur
Clock signals : ces signaux dterminent la frquence dhorloge du processeur
et peuvent aussi servir synchroniser un systme multiprocesseur

Les dtails des signaux du PowerPC 750 sont indiqus sur le schma suivant.

10

II.9 Lhorloge
Le 750 possde une unique entre pour le signal dhorloge, SYSCLK, qui reprsente
la frquence du bus interface. A lintrieur du processeur, un circuit gnre une autre horloge
multiplie en frquence, mais en phase avec SYSCLK. Cette frquence est utilise pour les
oprations internes au processeur.
Le signal PLL_CFG[0-3] permet de dfinir le rapport entre frquence du bus et
frquence du processeur.

11

III. Implmentation du PowerPC 750


III.1 Les registres
Larchitecture PowerPC dfinit des oprations de registres registres pour les
instructions de calcul. Le format dinstruction trois registres permet de spcifier un registre
de destination diffrent des oprandes sources. Les instructions de chargement / stockage
transfrent les donnes entre les registres et la mmoire.
Les PowerPC ont deux niveaux de privilge, un mode superviseur utilis par le
systme dexploitation et un mode utilisateur utilis par les applications. Laccs aux
instructions et registres privilgis permet au systme dexploitation de contrler
lenvironnement des applications, la mmoire virtuelle, la protection du systme
dexploitation,
Le schma suivant dcrit lensemble des registres prsents au c ur du processeur.

12

III.2 Le jeu dinstruction


Toutes les instructions PowerPC sont des mots de 32 bits. Le jeu dinstruction est
optimis de manire simplifier la mise en pipeline. Ces instructions sont regroupes en
plusieurs catgories :
1. Integer instructions
2. Floating-point instructions
3. Load / store instructions
4. Flow control instructions
5. Processor control instructions
6. Memory control instructions
En plus de ces instructions, le PowerPC 750 dispose des instructions spcifiques
suivantes :
1. External Control In Word Indexed (eciwx)
2. External Control Out Word Indexed (ecowx)
3. Floating Select (fsel)
4. Floating Reciprocal Estimate Single-Precision (fres)
5. Floating Reciprocal Square Root Estimate (frsqrte)
6. Store Floating-Point as Integer Word (stfiwx)

III.3 La cache de niveau 1


Larchitecture PowerPC ne dfinit pas de spcifications Hardware pour la cache L1.
Elle peut-tre unifie, elle peut sparer instructions et donnes ou ne pas exister. En
loccurrence, pour le PowerPC 750, la cache L1 est spare en deux entits, donnes et
instructions.

III.4 Les exceptions


Le mcanisme dexception permet au processeur dinterrompre lexcution des
instructions. Cette interruption peut-tre dclenche par un signal externe, une erreur,
Lorsquune exception se produit, ltat du processeur est enregistr dans des registres et le
processeur reprend lexcution une adresse, vecteur dexception, prdtermine qui dpend
de lexception.
Il y a quatre types dexceptions dfinit dans larchitecture PowerPC :
Synchronous, precise
Synchronous, imprecise
Asynchronous, maskable
Asynchronous, nonmaskable
Pour le PowerPC 750, les exceptions sont regroupes dans le tableau suivant.

13

Le tableau suivant donne la liste complte des exceptions du PowerPC 750 ainsi que
les causes de ces exceptions.

14

III.5 La gestion de la mmoire


Dans larchitecture PowerPC, le rle du Memory Management Unit (MMU) est de
transformer les adresses logiques en adresses physiques et de permettre laccs aux blocs et
aux pages mmoires. Il y a deux types daccs, les accs aux instructions et les accs aux
donnes. Ces accs sont gnrs par des instructions de chargement et stockage ou par la
mmoire cache.

Le PowerPC 750 utilise la version 32 bits de larchitecture PowerPC qui permet 4


Gbytes dadresses logiques accessibles aussi bien au superviseur quaux programmes
utilisateurs. Les pages mmoires sont de 4 Kbytes et les segments de 256 Mbytes. En plus de
ceci, larchitecture dfinit une adresse virtuelle temporaire sur 52 bits ainsi que des tables de
hachage afin de gnrer une adresse physique sur 32 bits.
La mmoire virtuelle permet lexcution de programmes dont la taille mmoire est
suprieure la mmoire physique disponible. La table de hachage est une structure de
donnes de taille variable qui dfinit la relation entre les pages de la mmoire virtuelle et
celles de la mmoire physique. Cette table a une taille qui est une puissance de 2 et son
adresse de dbut est un multiple de cette taille.
15

Le PowerPC 750 met en uvre cette architecture en dissociant les instructions des
donnes.

III.6 Timing des instructions


Le PowerPC 750 est un processeur pipeline superscalaire. Un processeur pipeline est
un processeur o lexcution des instructions seffectue en tapes discrtes comme le montre
le schma suivant.

Un processeur superscalaire est un processeur qui peut excuter en parallle des


instructions dans des units distinctes. Ainsi, le PowerPC 750 possde six units
indpendantes. Le schma suivant dcrit cette organisation temporelle du processeur.

Ltape fetch permet de ramener les instructions de la mmoire du systme et de


dterminer la position de linstruction suivante. Le BPU cherche les branchements durant
cette tape.
16

Ltape dispatch est responsable du dcodage des instructions provenant de ltape


fetch et dtermine quelles instructions peuvent tre envoyes dans le cycle en cours. Si les
oprandes sources sont accessibles, elles sont lues dans les registres concerns pour permettre
la poursuite de lexcution en pipeline. Si un oprande source nest pas disponible,
dispatch indique dans quel registre loprande va devenir disponible. A la fin de cette
tape, les instructions sont rparties dans les diffrentes units dexcution avec les oprandes
sources dont elles ont besoin.
Lors de ltape execute , chaque unit dexcution qui a une excution effectuer
leffectue sur un ou plusieurs cycles dhorloge. Ensuite, le rsultat est inscrit dans le registre
appropri. Enfin, lunit dexcution signifie au CU quelle a achev son travail. Dans le cas
dune exception interne, lunit dexcution en informe le CU et interrompt lexcution. Le
schma suivant montre le timing des excutions au sein des diffrentes units dexcution.

Ltape complete maintient la cohrence de la machine et transmet les rsultats des


instructions. Si une exception est dtecte, toutes les instructions suivantes sont annules et
leurs rsultats carts.

17

Le schma suivant rsume les diffrentes tapes de lexcution des instructions.

III.7 La gestion thermique


Le PowerPC possde une unit de gestion thermique, Thermal Assist Unit (TAU),
qui lui permet de contrler la dissipation de la chaleur. Cette particularit est trs intressante
en particulier pour les ordinateurs portables. Cette unit a en particulier permis de supprimer
les ventilateurs de refroidissement du processeur, y compris sur les ordinateurs dits de bureau.

18

Cette unit surveille et rgule la temprature. Par exemple, si la temprature est sur le
point de dpasser un seuil critique, le systme ralentit ou suspend temporairement les
excutions afin de faire baisser cette temprature.
La TAU se compose entre autres dun capteur de temprature interne, dun
convertisseur numrique analogique, dun comparateur. Elle compare la temprature de
jonction avec les rglages de lutilisateur, elle gnre des interruptions lorsque la temprature
ne correspond plus aux rglages et elle permet lutilisateur destimer la temprature de
jonction via des routines appropries.

Les fonctions THRM1 & THRM2 permettent de comparer la temprature de jonction


avec deux rglages utilisateurs. Cette double comparaison permet un contrle plus fin. Si lon
utilise un seul rglage, la sonde thermique nest compare quavec une seule des deux. La
fonction THRM3 permet de rendre oprationnelle la TAU et de contrler la sortie du
comparateur.
Le schma suivant explique comment tirer le meilleur profit de cette gestion
thermique, notamment comment doivent tre installs les appendices de dissipation de la
chaleur comme, par exemple, le radiateur.

19

III.8 Lindicateur de performance


Lindicateur de performance est un outil que les concepteurs peuvent utiliser pour
btir, dboguer et optimiser les logiciels. Cet indicateur compte les vnements des tapes
dispatch , execute et complete ainsi que les accs mmoires durant lexcution du
code.

20

Bibliographie
1. PowerPC 750 SCM RISC Microprocessor Datasheet version 3.1 IBM - 1998
2. PowerPC 750 RISC Microprocessor Users Manual IBM 1997
3. PowerPC 750 Microprocessor High Performance, Low Power Consumption IBM
1998
4. Motorola PowerPC 750 and PowerPC 740 Microprocessors Fact Sheet Motorola 1999
5. Site web IBM : http://www.chips.ibm.com
6. Site web Motorola : http://www.mot.com
7. Site web Apple : http://www.apple.com

21

You might also like