Vous êtes sur la page 1sur 26

Chapitre : LE MICROPROCESSEUR

OBJECTIFS : Connatre le rle de microprocesseur Connatre les diffrents composants dun microprocesseur et leurs rles. Comprendre le fonctionnement du microprocesseur et linteraction entre les diffrentes units. Matriser les tapes ncessaires lexcution des programmes par le microprocesseur.

1. Dfinition
Un microprocesseur est un circuit intgr complexe caractris par une trs grande intgration et dot des facults d'interprtation et d'excution des instructions d'un programme. Il est charg dorganiser les tches prcises par le programme et dassurer leur excution. Il doit aussi prendre en compte les informations extrieures au systme et assurer leur traitement. Cest le cerveau du systme. A lheure actuelle, un microprocesseur regroupe sur quelques millimtres carrs des fonctionnalits toujours plus complexes. Leur puissance continue de saccrotre et leur encombrement diminue rgulirement respectant toujours, pour le moment, la fameuse loi de Moore (1).

2. Architecture de base dun microprocesseur


Un microprocesseur est construit autour de deux lments principaux : Une unit de commande : appel aussi Unit de commande et de contrle (UCC) Une unit de traitement associs des registres charges de stocker les diffrentes informations traiter. Ces trois lments sont relis entre eux par des bus interne permettant les changes dinformations.

3. Lunit de commande
Elle permet de squencer le droulement des instructions. Elle effectue la recherche en mmoire de l'instruction. Comme chaque instruction est code sous forme binaire, elle en assure le dcodage pour enfin raliser son excution puis effectue la prparation de l'instruction suivante. Pour cela, elle est compose par : le compteur de programme : (en anglais Program Counter PC) appel aussi compteur ordinal (CO). Le CO est constitu par un registre dont le contenu reprsente ladresse de la prochaine instruction excuter. Il est donc initialis avec l'adresse de la premire instruction du programme. Puis il sera incrment automatiquement pour pointer vers la prochaine instruction excuter. le registre d'instruction : Contient linstruction en cours de traitement. le dcodeur d'instruction : Le squenceur : Il organise l'excution des instructions au rythme dune horloge. Il labore tous les signaux de synchronisation internes ou externes (bus de commande) du microprocesseur en fonction des divers signaux de commande provenant du dcodeur dinstruction ou du registre dtat par exemple. Il s'agit d'un automate ralis soit de faon cble (obsolte), soit de faon micro-programme, on parle alors de micro-microprocesseur.

4. Lunit de traitement
Cest le cur du microprocesseur. Elle regroupe les circuits qui assurent les traitements ncessaires l'excution des instructions. Lunit de traitement est Compos de trois principaux units dexcution, la premire est lunit arithmtique et logique (UAL) puis deux autres ont t ajouts qui sont lunit de calcul en virgule flottante et lunit multimdia pour des raisons doptimisation des performances des microprocesseurs.

4.1. Unit arithmtique et logique : (UAL)


Elle est compose de circuits logiques tels que les additionneurs, soustracteurs, comparateurs logiquesetc., afin deffectuer les calculs et les oprations logiques des diffrents instructions excuter, les donnes traiter se prsentent aux entres de lUAL, sont traits, puis le rsultat est fourni en sortie et gnralement stock dans un registre dit accumulateur. Les informations qui concernent lopration sont envoyes vers le registre dtat. Le schma suivant montre lUAL ainsi que ses entres et ses sorties.

Entre B

Entre A

Accumulateur Commandes : type de lopration effectuer (+,*,/, or, not, -,)

UAL

Registre dtat

Sortie de lUAL
Schma de lunit arithmtique et logique (ses entres et ses sorties)

4.2. Unit de calcul en virgule flottante :


Cest une unit qui est capable de raliser les oprations de calcul pour les rels ainsi que les calculs mathmatiques et scientifiques complexes. A lorigine la tche de cette unit tait ralise par tout un processeur part, en 1989 elle a t intgr dans les microprocesseurs afin doptimiser les calculs.

4.3. Unit multimdia :


Cest une unit qui est charge dacclrer lexcution des programmes multimdia comportant des vidos, du son, graphisme en 3D etc. Cette unit porte le nom de MMX pour les premiers pentium (MutiMedia eXtensions) intgrants des fonctions de gestion du mutimdia, de mme la technologie 3DNOW pour les AMD et SSE pour les pentiumIII. 3

Ces units ont t cres vu la grande tendance vers la multimdia dans tous les types des programmes informatiques ( jeux, logiciels sur Internet, encyclopdies).

Figure 1.Schma fonctionnel

5. Autres units du microprocesseur


5.1. Unit de mmoire cache :
La mmoire cache a pour fonction principale doptimiser les accs aux diffrentes instructions et donnes que le microprocesseur a besoin lors de lexcution des programmes. La tche de cette unit est de mettre dans la mmoire cache qui est beaucoup plus rapide que la mmoire centrale, les informations les plus utilises et que le microprocesseur a besoin frquemment. Laccs aux informations sera donc plus rapide et lexcution des programmes est plus optimale. Le principe de stockage des informations dans cette mmoire se fait par un contrleur qui utilise des algorithmes spcifiques qui permettent de choisir quelles sont les donnes et les instructions dans la mmoire centrale mettre dans cette mmoire et quand il faut les remplacer puisque la taille de la mmoire cache est trs limite par rapport la taille de la mmoire centrale. Les performances du microprocesseur sont trs lis la validit des prdictions faites par le contrleur de mmoire cache. Il existe deux niveaux de mmoire cache. La cache de niveau 1 est toujours intgre au microprocesseur, sa taille est de quelques kilooctets et peut atteindre 256 KO dans certains microprocesseurs. La cache de second niveau est gnralement sur la carte mre, sa taille varie de 256 KO jusqu 1MO.

5.2. Unit dinterface de bus :


Gre les changes travers le bus entre microprocesseur et les autres composantes, si le microprocesseur a besoin par exemple dune donne en mmoire vive, lunit dinterface de bus se charge de la ramener en contrlant laccs mmoire et en mettant le rsultat sur le bus de donnes qui va lacheminer vers le registre de donnes.

5.3. Units de segmentation et de pagination :


Ces units sont devenues ncessaires surtout pour les microprocesseurs de la famille INTEL X86 en raison de leurs faons particulires de gestion de la mmoire. Ces units permettent de traduire les adresses logiques manipules dans les programmes en adresses physiques qui correspondent des adresses relles en mmoire. Ces units varient dun microprocesseur lautre selon la technologie de gestion de la mmoire utilise.

5.4.

Unit de dcodage :

Elle dcompose et analyse linstruction se trouvant dans le registre dinstructions, selon le code opration, elle envoie la nature des oprations effectuer lunit de commande et prcisment le squenceur qui va ensuite gnrer les microcommandes ncessaires aux diffrents composants participant lexcution de linstruction en cours.

RI

Code opration

zone adresses

Unit de dcodage
Squenceur
Exemple :

Microcommandes Bus de commandes

Pour un microprocesseur ayant un format dinstructions deux adresses, linstruction daddition de deux variables en mmoire A et B est reprsent dans le registre dinstructions comme suit : ADD Code opration adresse de A adresse de B

Zone adresses en mmoire des oprandes Signaux de commandes pour rechercher les adresses de A et B en mmoire et de raliser laddition par lUAL

Dcodage du c-op

5.5. Unit danticipation et la queue (ou file dattente) :


Lunit danticipation a pour rle d'aller chercher en mmoire les instructions excuter. Ces instructions sont d'abord recherches dans la mmoire cache interne du processeur. Si elles ne s'y trouvent pas, l'unit d'anticipation s'adresse l'unit d'interface du bus afin qu'elles soient lues dans la mmoire centrale. Lors de cette opration, le contenu des adresses suivantes de la mmoire est lu galement et plac dans la mmoire cache du processeur. De cette faon, les prochaines instructions recherches seront disponibles plus rapidement ( condition que le contenu ne soit pas modifi d'ici l). L'unit d'anticipation place l'instruction dans une queue et s'occupe d'aller chercher la suivante. Grce ce dispositif, l'unit d'excution n'a pratiquement jamais d'attendre que les instructions excuter lui soient amenes (cela peut cependant se produire si une srie d'instructions trs rapides excuter se prsente). A l'inverse, si les instructions demandent un temps d'excution important, la queue se remplie. Dans ce cas l'unit d'anticipation cesse de travailler jusqu' ce que de l'espace se libre pour de nouvelles instructions.

6. Les registres du microprocesseur


Un registre est une zone mmoire lintrieur du microprocesseur de faible taille, qui permet de mmoriser des mot mmoires ou des adresses dune faon temporaire lors de lexcution des instructions. Le nombre et le type de registres que possde le CPU sont une partie dterminante de son architecture et ont une influence importante sur la programmation. La structure des registres du CPU varie considrablement dun constructeur lautre. Cependant les fonctions de base ralises par les diffrents registres sont essentiellement les mmes. Nous allons dcrire les registres les plus importants, leur fonction et la faon dont ils peuvent tre modifis par programme. Il existe deux types de registres : les registres gnraux, et les registres d'adresses : Les registres gnraux : Ce sont des mmoires rapides, l'intrieur du microprocesseur, qui permettent l'unit d'excution de manipuler des donnes vitesse leve. Ils sont connects au bus donnes interne au microprocesseur. L'adresse d'un registre est associe son nom (on donne gnralement comme nom une lettre) A,B,C... Ces registres permettent de sauvegarder des informations utilises dans les programmes ou des rsultats intermdiaires, cela vite des accs la mmoire, acclrant ainsi lexcution des programmes. Les registres gnraux sont la disposition du programmeur qui a normalement un choix dinstructions permettant de les manipuler comme Chargement dun registre partir de la mmoire ou dun autre registre. Enregistrement dans la mmoire du contenu dun registre. 6

Transfert du contenu dun registre dans laccumulateur et vice versa. Incrmentation ou dcrmentation dun registre.

Les registres d'adresses (pointeurs) Ce sont des registres connects sur le bus adresses, leur contenu est une adresse en mmoire centrale. Il existent plusieurs types On peut citer comme registres: Le compteur ordinal (pointeur de programme PC) Le pointeur de pile (Stack pointer SP) Les registres d'index (Index source SI et index destination DI)

1- Le compteur ordinal : (pointeur de programme PC)

Figure 2. Schma descriptif du fonctionnement du registre compteur ordinal Il contient l'adresse de l'instruction rechercher en mmoire. L'unit de commande incrmente le compteur ordinal (PC) du nombre d'octets sur lequel l'instruction, en cours d'excution, est code. Le compteur ordinal contiendra alors l'adresse de l'instruction suivante. Exemple : (PC)=10000H ; il pointe la mmoire qui contient l'instruction MOV C,B qui est code sur deux octets (89 D9H) ; l'unit de commande incrmentera de deux le contenu du PC : (PC) = 10002H (la mmoire sera suppose tre organise en octets). 2- Le registre dinstruction : contient linstruction qui doit tre traite par le microprocesseur, cette instruction est recherche en mmoire puis place dans ce registre pour tre dcode par le dcodeur et prpare pour lexcution. Une instruction est une opration lmentaire dun langage de programmation, cest dire le plus petit ordre que peut comprendre un ordinateur. Exemple : ADD A,B cette instruction correspond un ordre donn lordinateur en langage assembleur qui permet de faire laddition entre les donnes A et B. Toute instruction prsente en fait deux types dinformations : Ce quil faut faire comme action (addition, affichage, division ) 7

Avec quelles donnes raliser cette action.

Zone opration Composition dune instruction

Zone adresses

Zone opration : Cette zone permet de dterminer la nature de lopration effectuer par le microprocesseur. Zone adresse : contient les adresses en mmoire des oprandes qui participent dans une opration, dans certains cas elle contient loprande mme. Il existe plusieurs modes dadressages pour accder aux donnes. 3- Le registre dadresse : Cest un registre qui contient ladresse du mot accder en mmoire centrale. A chaque accs mmoire, ladresse recherche est stocke dans ce registre. Il a la taille dune adresse qui est la mme que celle du bus dadresses ce qui permet de dterminer le nombre de mots mmoires adressables et lespace mmoire adressable. 4- Le registre mot mmoire ou registre de donnes : Contient le mot mmoire faisant objet dune opration de lecture ou dcriture dans la mmoire centrale. Ce registre a la taille dun mot mmoire qui est la mme que celle des registres de travail et laccumulateur qui est gale la taille du bus de donnes. Le schma ci dessous montre le fonctionnement des deux registres dadresses et de mot mmoire. Mot 1 Registre dadresse Dispositif de slection et daccs la mmoire Slection Mot 2 Mot 3 Mot 4 .... Adr 1 Adr 2 Adr 3 Adr 4

Transfert adresse

Registre de mot mmoire ou de donnes

Ecriture

Lecture La lecture et lcriture dans la mmoire centrale se fait de la faon suivante : Lecture : ladresse du mot lire est transfre au registre dadresse, le dispositif daccs la mmoire se charge de chercher le mot et de le mettre dans le registre mot mmoire. 8

Ecriture : le registre dadresse est charg par ladresse mmoire ou on va crire, le mot crire est plac dans le registre mot mmoire. Lorsque lordre de lcriture est donn, le contenu des cases mmoires sera cras et remplac par la nouvelle valeur. Par contre, en cas de lecture, le contenu des cases mmoire nest pas dtruit. 5- Le registre accumulateur : Cest un registre de travail trs important de lUAL, dans la plus part des oprations arithmtiques et logiques, laccumulateur contient un des oprandes avant lexcution et le rsultat aprs. Il peut aussi servir de registre tampon dans les oprations dentre/sortie. Gnralement, laccumulateur a la mme taille quun mot mmoire. Naturellement, le programmeur a accs ce registre qui est toujours trs sollicit pendant le traitement des donnes. Certains processeurs ont plusieurs accumulateurs et dans ce cas, les codes oprations prcisent laccumulateur utilis. 6- Le registre dtat: (PSW program status word) Cest un registre qui contient les diffrents bits appels drapeaux (Flags) indiquant ltat dune condition particulire dans le CPU. Ces bits peuvent tre tests par un programme et donc dcider des suites dactions prendre. Pour excuter correctement son travail, le squenceur doit en outre connatre ltat dun certain nombre dautres composants et disposer dinformations concernant la ou les oprations qui ont dj t excutes (par exemple, doit on tenir compte dans laddition en cours dune ventuelle retenu pralable gnre par une addition prcdente). Le registre dtat fournit ces informations. Le nombre de bits de ce registre change dun microprocesseur un autre, par exemple pour le cas dun 8088 ce registre est de 16 bits :

U 15

U 14

U 13

U 12

O 11

D 10

I 9

T 8

S 7

Z 6

U 5

AC 4

U 3

P 2

U 1

C 0

U : undefined dsigne un bit non dfini. Les diffrents bits du registre dtat sont : Bit de retenu : cest le bit C ou carry qui est le bit n0. ce bit est 1 sil y a une retenu qui est Bit de parit : le bit P n2, ce bit est mis 1 si le nombre de 1 dans laccumulateur est pair. Bit de retenu intermdiaire : le bit AC (auxiliary carry), cest le bit n4, il est mis 1 si une Le bit zro : cest le bit n6, il est 1 si le rsultat dune opration arithmtique est nul. Le bit de signe : bit n7, il est 1 si le rsultat dune opration arithmtique est ngatif. 9 gnre lors dune opration arithmtique.

retenu est gnre entre groupes de 4 bits (passage de retenu).

Le bit de dpassement de capacit : le bit n11, O pour overflow, il est 1 sil y a dpassement de

capacit dans les oprations arithmtiques. Par exemple sur 8 bits en complment 2, les nombres binaires sont cods sur 8 bits. On peut coder les nombres variants de 128 (100000000) +127(01111111). Si on fait 107+28 cela donne 135 qui ne peut pas tre reprsent, dou gnration de dbordement. Exemple 1: addition de nombres binaire sur 8 bits 11111100 + 10000010 carry : 1 = 01111110 FCH + 82H = 17EH (252)10 + (130)10 = (382)10

Exemple 2 : La bascule C (carry) sert aussi capter le bit expuls lors d'une opration de dcalage ou de rotation Dcalage gauche d'un bit de cet octet : 10010110 la carry recueille le 1 du bit de poids fort carry : 1 00101100 Exemple 3 : overflow 104 + 26 =130 0110 1000 + 0001 1010 = 1000 0010 (-126) - 18 - 118 -136 1110 1110 1000 1010 0111 1000 (120) avec C=1

L'indicateur dbordement est une fonction logique (OU exclusif) de la retenue (C) et du signe (S). 7- Le registre pointeur de pile : (Stack Pointer) Il contient l'adresse de la pile. Celle-ci est une partie de la mmoire, elle permet de stocker des

informations (le contenu des registres) relatives au traitement des interruptions et des sousprogrammes La pile est gre en LIFO : (Last IN First Out) dernier entr premier sorti. Le fonctionnement est

identique une pile d'assiette Le pointeur de pile SP pointe le haut de la pile (31000H dans le schma), il est dcrment avant

chaque empilement, et incrment aprs chaque dpilement. Il existe deux instructions pour empiler et dpiler : PUSH et POP.

exemple: PUSH A empilera le registre A et POP A le dpilera.

10

Sur la figure 1, on va montrer le fonctionnement de la pile lors d'instructions comme PUSH et POP.

Figure 3. Schma de Sauvegarde sur la pile Question? Que se passera-t-il durant l'excution du programme commenant en 12E30H? Que vaudra SP et que contiendra la pile cette adresse, la fin du programme ?

Rponse. Le programme commence par sauvegarder le contenu de C dans la pile (PUSH C). Pour cela (SP) est dcrment de deux ((SP)=31000H-2=30FFEH), puis on effectue l'criture de (C) dans la mmoire l'adresse (SP) : (30FFEH) = 6142H. Pour PUSH A on obtient : (30FFCH)=1234H, et pour PUSH B : (30FFAH)=2D5AH. Pour l'instruction POP B, ((SP)) est charg dans le registre B ((SP)=30FFAH ; (B)=2D5AH) puis (SP) est incrment de deux ((SP)= 30FFAH+2=30FFCH). Enfin, pour POP A on obtient : (A)=1234H et (SP)=30FFCH + 2 = 30FFEH 11

8- Les registres d'index (index source SI et index destination DI) Les registres dindex peuvent tre utiliss comme des registres gnraux pour sauvegarder et pour compter. Mais en plus ils ont une fonction spciale qui est de grande utilit dans la manipulation des tableaux de donnes. Ils peuvent en effet tre utiliss pour manipuler des adresses et permettent de mmoriser une adresse, suivant une forme particulire dadressage, appele adressage indexe. Exemple : MOV A,[SI+10000H] place le contenu de la mmoire d'adresse 10000H+le contenu de SI, dans le registre A.

Figure 4. Exemple sur le registre d'index

12

7. TAPES DEXCUTION D'UNE INSTRUCTION (Cycle dexcution dune instruction)


Le microprocesseur ne comprend quun certain nombre dinstructions qui sont codes en binaire. Le traitement dune instruction peut tre dcompos en trois phases. Phase 1: Recherche de l'instruction traiter 1. Le PC contient l'adresse de l'instruction suivante du programme. Cette valeur est place sur le bus d'adresses par l'unit de commande qui met un ordre de lecture. 2. Au bout d'un certain temps (temps d'accs la mmoire), le contenu de la case mmoire Slectionne est disponible sur le bus des donnes. 3. L'instruction est stocke dans le registre instruction du processeur.

Phase 2 : Dcodage de linstruction et recherche de l'oprande Le registre d'instruction contient maintenant le premier mot de l'instruction qui peut tre code sur plusieurs mots. Ce premier mot contient le code opratoire qui dfinit la nature de l'opration effectuer (addition, rotation,...) et le nombre de mots de l'instruction. 1. L'unit de commande transforme l'instruction en une suite de commandes lmentaires ncessaires au traitement de l'instruction. 2. Si l'instruction ncessite une donne en provenance de la mmoire, l'unit de commande rcupre sa valeur sur le bus de donnes. 3. Loprande est stock dans un registre. 13

Phase 3 : Excution de l'instruction 1. Le micro-programme ralisant l'instruction est excut. 2. Les drapeaux sont positionns (registre d'tat). 3. L'unit de commande positionne le PC pour l'instruction suivante.

14

8. Jeu dinstructions
8.1. Dfinition
La premire tape de la conception dun microprocesseur est la dfinition de son jeu dinstructions. Le jeu dinstructions dcrit lensemble des oprations lmentaires que le microprocesseur pourra excuter. Il va donc en partie dterminer larchitecture du microprocesseur raliser et notamment celle du squenceur. A un mme jeu dinstructions peut correspondre un grand nombre dimplmentations diffrentes du microprocesseur.

8.2. Type dinstructions


Les instructions que lon retrouve dans chaque microprocesseur peuvent tre classes en 4 groupes : . registre, etc . . . Transfert de donnes pour charger ou sauver en mmoire, effectuer des transferts de registre Oprations arithmtiques : addition, soustraction, division, multiplication Oprations logiques : ET, OU, NON, NAND, comparaison, test, etc Contrle de squence : branchement, test, etc

8.3.

Codage

Les instructions et leurs oprandes (paramtres) sont stocks en mmoire principale. La taille totale dune instruction (nombre de bits ncessaires pour la reprsenter en mmoire) dpend du type dinstruction et aussi du type doprande. Chaque instruction est toujours code sur un nombre entier doctets afin de faciliter son dcodage par le processeur. Une instruction est compose de deux champs : . le code instruction, qui indique au processeur quelle instruction raliser . le champ oprande qui contient la donne, ou la rfrence une donne en mmoire (son adresse). Exemple :

Le nombre d'instructions du jeu d'instructions est directement li au format du code instruction. Ainsi un octet permet de distinguer au maximum 256 instructions diffrentes.

8.4.

Mode dadressage

Un mode d'adressage dfinit la manire dont le microprocesseur va accder loprande. Les diffrents modes d'adressage dpendent des microprocesseurs mais on retrouve en gnral : . . . l'adressage de registre o lon traite la donnes contenue dans un registre l'adressage immdiat o lon dfinit immdiatement la valeur de la donne l'adressage direct o lon traite une donnes en mmoire

Selon le mode dadressage de la donne, une instruction sera code par 1 ou plusieurs octets.

8.5.

Temps dexcution

Chaque instruction ncessite un certain nombre de cycles dhorloges pour seffectuer. Le nombre de cycles dpend de la complexit de linstruction et aussi du mode dadressage. Il est plus long daccder la mmoire principale qu un registre du processeur. La dure dun cycle dpend de la frquence dhorloge du squenceur.

15

8.6. Langage de programmation


Le langage machine est le langage compris par le microprocesseur. Ce langage

niveauest difficile matriser puisque chaque instruction est code par une squence propre de bits. Afin de
faciliter la tche du compilation programmeur, on a cr diffrents langages plus ou moins volus.

Langage haut

Langage assembleur
(sta, lda, cmp, mov, bra, etc)

Le langage assembleur est le langage le plus proche du langage machine. Il est compos par des instructions en gnral assemblage assez rudimentaires que lon appelle des

Langage machine

(0001 1101, 1111 0110, etc)

mnmoniques. Ce sont essentiellement des oprations de transfert de donnes entre les registres et l'extrieur du microprocesseur (mmoire ou priphrique), ou des oprations arithmtiques ou logiques. Chaque instruction reprsente un code machine diffrent. Chaque microprocesseur peut possder un assembleur diffrent. La difficult de mise en uvre de ce type de langage, et leur forte dpendance avec la machine a ncessit la conception de langages de haut niveau, plus adapts l'homme, et aux applications qu'il cherchait dvelopper. Faisant abstraction de toute architecture de machine, ces langages permettent l'expression d'algorithmes sous une forme plus facile apprendre, et dominer (C, Pascal, Java, etc). Chaque instruction en langage de haut niveau correspondra une succession dinstructions en langage assembleur. Une fois dvelopp, le programme en langage de haut niveau nest donc pas comprhensible par le microprocesseur. Il faut le compiler pour le traduire en assembleur puis lassembler pour le convertir en code machine comprhensible par le microprocesseur. Ces oprations sont ralises partir de logiciels spcialiss appels compilateur et assembleur. Exemple de programme :

@00

C6 64 #100 B6 00 1B 5A 26 03 ret

LDAB LDAA #0 ABA DECB BNE

A=0 ; for ( i=1 ; i<101 ; i++) A=A+i ;

@01 @03 @04 @05

ret

9. Performances dun microprocesseur


On peut caractriser la puissance dun microprocesseur par le nombre dinstructions quil est capable de traiter par seconde. Pour cela, on dfinit : . le CPI (Cycle Par Instruction) qui reprsente le nombre moyen de cycles dhorloge ncessaire pour lexcution dune instruction pour un microprocesseur donn. . le MIPS (Millions d'Instructions Par Seconde) qui reprsente la puissance de traitement du microprocesseur.
F
H

avec FH en MHz

MIPS= CPI
Pour augmenter les performances dun microprocesseur, on peut donc soit augmenter la frquence d'horloge (limitation matrielle), soit diminuer le CPI (choix d'un jeu d'instruction adapt).

16

10. Notion darchitecture RISC et CISC


Actuellement larchitecture des microprocesseurs se composent de deux grandes familles : L architecture CISC (Complex Instruction Set Computer) Larchitecture RISC (Reduced Instruction Set Computer)

10.1. Larchitecture CISC Pourquoi


Par le pass la conception de machines CISC tait la seule envisageable. En effet, vue que la mmoire travaillait trs lentement par rapport au processeur, on pensait quil tait plus intressant de soumettre au microprocesseur des instructions complexes. Ainsi, plutt que de coder une opration complexe par plusieurs instructions plus petites (qui demanderaient a utant daccs mmoire trs lent), il semblait prfrable dajouter au jeu dinstructions du microprocesseur une instruction complexe qui se chargerait de raliser cette opration. De plus, le dveloppement des langages de haut niveau posa de nombreux problmes quant la conception de compilateurs. On a donc eu tendance incorporer au niveau processeur des instructions plus proches de la structure de ces langages.

Comment
Cest donc une architecture avec un grand nombre dinstructions o le microprocesse ur doit excuter des tches complexes par instruction unique. Pour une tche donne, une machine CISC excute ainsi un petit nombre dinstructions mais chacune ncessite un plus grand nombre de cycles dhorloge. Le code machine de ces instructions varie dune instruction lautre et ncessite donc un dcodeur complexe (micro -code)

10.2. Larchitecture RISC Pourquoi


Des tudes statistiques menes au cours des annes 70 ont clairement montr que les programmes gnrs par les compilateurs se contentaient le plus souvent d'affectations, d'additions et de multiplications par des constantes. Ainsi, 80% des traitements des langages de haut niveau faisaient appel seulement 20% des instructions du microprocesseur. Do lide de rduire le jeu dinstructions cell es le plus couramment utilises et den amliorer la vitesse de traitement.

Comment
Cest donc une architecture dans laquelle les instructions sont en nombre rduit (chargement, branchement, appel sous-programme). Les architectures RISC peuvent donc tre ralises partir de squenceur cbl. Leur ralisation libre de la surface permettant daugmenter le nombres de registres ou dunits de traitement par exemple. Chacune de ces instructions sexcutent ainsi en un cycle dhorloge. Bien souvent, ces instructions ne disposent que dun seul mode dadressage. Les accs la mmoire seffectue seulement partir de deux instructions (Load et Store). Par contre, les instructions complexes doivent tre ralises partir de squences bases sur les instructions lmentaires, ce qui ncessite un compilateur trs volu dans le cas de programmation en langage de haut niveau.

10.3. Comparaison
Le choix dpendra des applications vises. En effet, si on diminue le nombre d'instructions, on cre des instructions complexes (CISC) qui ncessitent plus de cycles pour tre dcodes et si on diminue le nombre de cycles par instruction, on cre des instructions simples (RISC) mais on augmente alors le nombre d'instructions ncessaires pour raliser le mme traitement.

17

Architecture RISC

Architecture CISC

instructions simples ne prenant quun seul instructions complexes prenant plusieurs cycle cycles instructions au format fixe instructions au format variable dcodeur simple (cbl) beaucoup de registres dcodeur complexe (microcode) peu de registres

seules les instructions LOAD et STORE ont toutes les instructions sont susceptibles accs la mmoire daccder la mmoire peu de modes dadressage compilateur complexe beaucoup de modes dadressage compilateur simple

11. Amliorations de larchitecture de base


L'ensemble des amliorations des microprocesseurs visent diminuer le temps d'excution du programme. La premire ide qui vient lesprit est daugmenter tout simplement la frquence de lhorloge du microprocesseur. Mais lacclration des frquences provoque un surcrot de consommation ce qui entrane une lvation de temprature. On est alors amen quiper les processeurs de systmes de refroidissement ou diminuer la tension dalimentation. Une autre possibilit daugmenter la puissance de traitement dun microprocesseur est de diminuer le nombre moyen de cycles dhorloge ncessaire lexcution dune instruction. Dans le cas dune programmation en langage de haut niveau, cette amlioration peut se faire en optimisant le compilateur. Il faut quil soit capable de slectionner les squences dinstructions minimisant le nombre moyen de cycles par instructions. Une autre solution est dutiliser une architecture de microprocesseur qui rduise le nombre de cycles par instruction.

11.1. Architecture pipeline

Principe
Lexcution dune instruction est dcompose en une succession dtapes et chaque tape correspond lutilisation dune des fonctions du microprocesseur. Lorsquune instruction se trouve dans lune des tapes, les composants associs aux autres tapes ne sont pas utiliss. Le fonctionnement dun microprocesseur simple nest donc pas efficace. Larchitecture pipeline permet damliorer lefficacit du microprocesseur. En effet, lor sque la premire tape de lexcution dune instruction est acheve, linstruction entre dans la seconde tape de son excution et la premire phase de lexcution de linstruction suivante dbute. Il peut donc y avoir une instruction en cours dexcution dans chacune des tapes et chacun des composants du microprocesseur peut tre utilis chaque cycle dhorloge. Lefficacit est maximale. Le temps dexcution dune instruction nest pas rduit mais le dbit dexcution des instructions est considrablement augment. Une machine pipeline se caractrise par le nombre dtapes utilises pour lexcution dune instruction, on appelle aussi ce nombre dtapes le nombre dtages du pipeline. Exemple de lexcution en 4 phases dune instruction :

Modle classique :
R1 R2 R3

18

Cycles

Nbre de 1 2 3 4 5 6 78910 11 12

Modle pipelin :
R1 R2 R3 R4 R5 R6 R7 R8 R9

Nbre de

Cycles

1 2 3 4 5 6 78910 11 12

Gain de performance
Dans cette structure, la machine dbute lexcution dune instruction chaqu e cycle et le pipeline est pleinement occup partir du quatrime cycle. Le gain obtenu dpend donc du nombre dtages du pipeline. En effet, pour excuter n instructions, en supposant que chaque instruction sexcute en k cycles dhorloge, il faut : . n.k cycles dhorloge pour une excution squentielle. . k cycles dhorloge pour excuter la premire instruction puis n-1 cycles pour les n-1 instructions suivantes si on utilise un pipeline de k tages Le gain obtenu est donc de :

nk i G= k+n-1 Donc lorsque le nombre n dinstructions excuter est grand par rapport k, on peut admettre quon divise le temps dexcution par k. Remarques : Le temps de traitement dans chaque unit doit tre peu prs gal sinon les units rapides doivent attendre les units lentes.
Exemples : LAthlon dAMD comprend un pipeline de 11 tages. Les Pentium 2, 3 et 4 dIntel comprennent respectivement un pipeline de 12, 10 et 20 tages.

19

Problmes
La mise en place dun pipeline pose plusieurs problmes. En f ait, plus le pipeline est long, plus le nombre de cas o il nest pas possible datteindre la performance maximale est lev. Il existe 3 principaux cas o la performance dun processeur pipelin peut tre dgrad ; ces cas de dgradations de performances sont appels des alas : . ala structurel qui correspond au cas o deux instructions ont besoin dutiliser la mme ressource du processeur (conflit de dpendance), . ala de donnes qui intervient lorsquune instruction produit un rsultat et que li nstruction suivante utilise ce rsultat avant quil nait pu tre crit dans un registre, . ala de contrle qui se produit chaque fois quune instruction de branchement est excute. Lorsquune instruction de branchement est charge, il faut normalement attendre de connatre ladresse de destination du branchement pour pouvoir charger linstruction suivante. Les instructions qui suivent le saut et qui sont en train dtre traites dans les tages infrieurs le sont en gnral pour rien, il faudra alors v ider le pipeline. Pour attnuer leffet des branchements, on peut spcifier aprs le branchement des instructions qui seront toujours excutes. On fait aussi appel la prdiction de branchement qui a pour but de recenser lors de branchements le comportement le plus probable. Les mcanismes de prdiction de branchement permettent d'atteindre une fiabilit de prdiction de l'ordre de 90 95 %.

Bulles (NOP)

Lorsquun ala se produit, cela signifie quune instruction ne peut continuer progresse dans le pipeline. Pendant un ou plusieurs cycles, linstruction va rester bloque dans un tage du pipeline, mais les instructions situes plus en avant pourront continuer sexcuter jusqu ce que lala ait disparu. Plus le pipeline possde dtages, plus la pnalit est grande. Les compilateurs sefforcent dengendrer des squences dinstructions permettant de maximiser le remplissage du pipeline. Les tages vacants du pipeline sont appels des bulles de pipeline, en pratique une bulle correspond en fait une instruction NOP (No OPeration) mise la place de linstruction bloque.

11.2. Notion de cache mmoire Problme pos


Lcart de performance entre le microprocesseur et la mmoire ne cesse de saccrotre. En effet, les composants mmoire bnficient des mmes progrs technologique que les microprocesseurs mais le dcodage des adresses et la lecture/criture dune donnes sont des tapes difficiles acclrer. Ainsi, le temps de cycle processeur dcrot plus vite que le temps daccs mmoire entranant un goulot dtranglement. La mmoire n'est plus en mesure de dlivrer des informations aussi rapidement que le processeur est capable de les traiter. Il existe donc une latence daccs entre ces deux organes.

Principe
Depuis le dbut des annes 80, une des solutions utilises pour masquer cette latence est de disposer une mmoire trs rapide entre le microprocesseur et la mmoire. Elle est appele cache mmoire. On compense ainsi la faible vitesse relative de la mmoire en perm ettant au microprocesseur dacqurir les donnes sa vitesse propre. On la ralise partir de cellule SRAM de taille rduite ( cause du cot). Sa

20

capacit mmoire est donc trs infrieure celle de la mmoire principale et sa fonction est de stocker les informations les plus rcentes ou les plus souvent utilises par le microprocesseur. Au dpart cette mmoire tait intgre en dehors du microprocesseur mais elle fait maintenant partie intgrante du microprocesseur et se dcline mme sur plusieurs niveaux. Le principe de cache est trs simple : le microprocesseur na pas conscience de sa prsence et lui envoie toutes ses requtes comme sil agissait de la mmoire principale : . Soit la donne ou linstruction requise est prsente dans le cache et ell e est alors envoye directement au microprocesseur. On parle de succs de cache. (a) . soit la donne ou linstruction nest pas dans le cache, et le contrleur de cache envoie alors une requte la mmoire principale. Une fois linformation rcupre, il la renvoie au microprocesseur tout en la stockant dans le cache. On parle de dfaut de cache. (b) a) up
Unit de Unit de traitement commande Cache

mmoire

Bien entendu, le cache mmoire napporte un gain de performance que dans le premier cas . Sa performance est donc entirement lie son taux de succs. Il est courant de rencontrer des taux de succs moyen de lordre de 80 90%. Remarques : Un cache utilisera une carte pour savoir quels sont les mots de la mmoire principale dont il possde une copie. Cette carte devra avoir une structure simple. Il existe dans le systme deux copies de la mme information : loriginale dans la mmoire principale et la copie dans le cache. Si le microprocesseur modifie la donne prsente dans le cache, il faudra prvoir une mise jour de la mmoire principale. Lorsque le cache doit stocker une donne, il est amen en effacer une autre. Il existe donc un contrleur permettant de savoir quand les donnes ont t utilises pour la dernire fois. La plus ancienne non utilise est alors remplace par la nouvelle. A n oter que lon peut reprendre le mme principe pour les disques durs et CD/DVD.

21

11.3. Architecture superscalaire


Une autre faon de gagner en performance est dexcuter plusieurs instructions en mme temps. L'approche superscalaire consiste doter le microprocesseur de plusieurs units de traitement travaillant en parallle. Les instructions sont alors rparties entre les diffrentes units d'excution. Il faut donc pouvoir soutenir un flot important dinstructions et pour cela disposer dun cache perform ant. Architecture scalaire :

Architecture superscalaire :

I1

N/2 cycles

Remarque :

C'est le type d'architecture mise en oeuvre dans les premiers Pentium d'Intel apparus en 1993.

11.4. Architecture pipeline et superscalaire


Le principe est de dexcuter les instructions de faon pipeline dans chacune des units de traitement travaillant en parallle.

22

12. Processeurs spciaux


12.1. Le microcontrleur
Ce sont des systmes minimum sur une seule puce. Ils contiennent un CPU, de la RAM, de la ROM et des ports dEntre/Sorties (parallles, sries, I2C, etc..). Ils comportent aussi des fonctions spcifiques comme des compteurs programmables pour effectuer des mesures de dures, des CAN voir des CNA pour sinsrer au sein de chanes dacquisition, des interfaces pour rseaux de terrain, etc ... Il est adapt pour rpondre au mieux aux besoin des applications embarques (appareil lectromnagers, chane dacquisition, lecteur carte puce, etc...). Il est par contre gnralemen t moins puissant en terme de rapidit, de taille de donnes traitables ou de taille de mmoire adressable quun microprocesseur.

12.2. Le processeur de signal


Le processeur de signal est beaucoup plus spcialis. Alors qu'un microprocesseur n'est pas conu pour une application spcifique, le processeur DSP (Digital Signal Processor) est optimis pour effectuer du traitement numrique du signal (calcul de FFT, convolution, filtrage numrique, etc...). Les domaines dapplication des D.S.P taient lorig ine les tlcommunications et le secteur militaire. Aujourdhui, les applications se sont diversifies vers le multimdia (lecteur CD, MP3, etc..) llectronique grand public (tlvision numrique, tlphone portable, etc), lautomatique, linstrumentation, llectronique automobile, etc

12.3. Exemples
Voici deux exemples darchitecture de deux processeurs qui tenaient le haut du pav lors de leur sortie en 1999 : lAthlon dAMD et le Pentium III dIntel. (f 500MHz)

AMD Athlon :

23

AGU : Adress Generation Unit BTB : Branch Target Buffer IEU : Integer Execution Unit BHB : Branch History Buffer

Caractristiques: . 9 unit de traitement se composant de : o 1 ALU (traitement entier) comprenant 6 units de traitement : . 3 units pour le traitement des donnes (IEU) . 3 units pour ladressage des donnes (AGU) o 1 FPU (traitement rel) comprenant 3 units : . 1 FPU store . 1 Fadd / MMX / 3Dnow ! . 1 Fmul /MMX / 3Dnow ! . Pipeline entier : 10 tages, pipeline flottant : 15 tages. . Prdiction dynamique et excution du traitement "dans le dsordre" (out-of-order) . 6 units de dcodage parallles (3 micro-programmes, 3 cbles) mais seules 3 peuvent fonctionner en mme temps. . Cache mmoire de niveau 1 (L1) : 128 Ko o 64 Ko pour les donnes o 64 Ko pour les instructions . Contrleur de cache L2 supportant de 512Ko 8Mo avec vitesse programmable (1/2 ou 1/3 de la vitesse CPU)

24

Intel Pentium III

Caractristiques : . o o o o o . . . . . o o . . Plusieurs units de traitement mais au 5 instructions excutes en mme temps sur 5 ports : Port 0 : ALU, FPU, AGU MMX et SSE Port 1 : ALU, SSE, MMX Port 2 : AGU (load) Port 3 : AGU (store) Port 4 : Store Data Unit Pipeline entier : 12 17 tages, pipeline flottant : environ 25 tages Prdiction dynamique et excution du traitement "dans le dsordre" (out-of-order) 3 units de dcodage parallles : 1 micro-programme, 2 cbles. 5 pipelines de 10 tages Cache mmoire de niveau 1 (L1) : 32 Ko 16 Ko pour les donnes 16 Ko pour les instructions Contrleur de cache L2 supportant jusqu 512 Ko de la vitesse CPU 9.5 millions de transistors

25

Rfrences Cours malek zribi, ISET Sfax Cours Dumartin (.pdf) Livre : Architectures des ordinateurs M.C.BELAID

26