You are on page 1of 15

Architecture des ordinateurs

de Provence Licence Informatique - Universite

Jean-Marc Talbot
jtalbot@cmi.univ-mrs.fr

Processeur : description - fonctionnement microprogrammation

de Provence () L3 Informatique - Universite

Architecture des ordinateurs

257 / 313

de Provence () L3 Informatique - Universite

Architecture des ordinateurs

258 / 313

Au coeur du processeur

On trouve au sein dun processeur : ements des el de memorisation : (banc de) registres - cache ements arithmetique des el de calcul : unite et logique (UAL-ALU) de calcul ottant (FPU - Floating Point Unit) unites ements de controle/commande des el de commandes : unite

Processeur : description

de Provence () L3 Informatique - Universite

Architecture des ordinateurs

259 / 313

de Provence () L3 Informatique - Universite

Architecture des ordinateurs

260 / 313

de calcul Unite
arithmetique Unite et logique : ALU calculs sur les entiers - operations booleennes de calcul ottant : (FPU - Floating Point Unit) Unite calculs sur les ottants : sqrt, sin, ... multimedia unite : en calcul vectoriel (meme instruction sur plusieurs donnee ` parallele) Intel MMX et SSE, AMD 3DNow ! au sein dun processeur : Plusieurs unites 3 ALU au sein du Pentium
de Provence () L3 Informatique - Universite Architecture des ordinateurs 261 / 313

de controle/commande Unite (I)

qui coordonne le fonctionnement des autres el ements unite pour executer la sequence dinstructions constituant le programme. ` pour executer une instruction, deux cycles se succedent
` executer recherche de linstruction a execution de linstruction

de Provence () L3 Informatique - Universite

Architecture des ordinateurs

262 / 313

de controle/commande Unite (II)

de controle/commande Unite (III)


: Constitue dun ensemble de registres
registre dinstruction RI : permet de stocker linstruction qui doit etre ee execut compteur programme PC : stocke ladresse de la prochaine ` executer. instruction a registre detats (ag register) : permet de stocker des indicateurs ` ` lexecution sur letat du systeme apres dune instruction. par exemple,
C (pour carry) : vaudra 1 si une retenue est presente. ` operation Z (pour Zero) : vaudra 1 si le resultat de la derniere realis ee est nul. V (pour oVerow) : vaudra 1 en cas de depassement de capacite N (pour Negative) : vaudra 1 si le resultat est negatif.

` jour par lUAL Mis a


` 1 le processeur fonctionne en mode pas a ` pas T (Trap ag) : mis a ` 1 les interruptions sont prise en compte IE (Interrupt Enable) : mis a ....
de Provence () L3 Informatique - Universite Architecture des ordinateurs 263 / 313 de Provence () L3 Informatique - Universite Architecture des ordinateurs 264 / 313

de controle/commande Unite (IV)


: Constitue dun ensemble de registres
a ` lire ou a ` registre dadresse : contient ladresse de la donnee ecrire en memoire. : contient temporairement la donnee lue ou a ` registres de donnees ecrire en memoire. dans le mode dadressage indexe) : registre dindex XR (utilise ` ladresse contenue ladresse est obtenue en ajoutant son contenu a ementer dans linstruction ; peut etre incrementer/d ecr ` son utilisation automatiquement apres parcours efcace de tableaux de segment) a ` registre de base : contient ladresse (le numero ajouter aux adresses (relatives) contenues dans les instructions.

de controle/commande Unite (V)

: Constitue ements un horloge qui permet la synchronisation des el et des enements ` ev ` executer un decodeur qui determine les operations a en fonction du code de linstruction. un sequenceur qui declenche et coordonne les differentes operations pour realiser linstruction

de Provence () L3 Informatique - Universite

Architecture des ordinateurs

265 / 313

de Provence () L3 Informatique - Universite

Architecture des ordinateurs

266 / 313

Cycle dexecution dune instruction

Cycle dexecution dune instruction : exemple


Cycle de recherche

Cycle de recherche :
` dans RI linstruction a ` executer ` ladresse On recup ere (celle a contenue dans PC ) On incremente de compteur ordinal PC

PC

80000

80000 add $1, $2, $3 80004 ....

` linstruction a ` executer 1 On recup ere


On met PC dans RA (le registre dadresse) ` la memoire On envoie un ordre de lecture a dans RI On place le contenue de RD (le registre de donnee)

Plus nement, utilisation des registres dadresses et de donnees Cycle dexecution :


On decode linstruction ` linstruction Lire les adresses et les registres necessaires a Determiner que faire pour cette instruction de calcul) Le faire (ou le faire faire) (utilisation dune unite

RI

add $1, $2, $3

2 On incremente le compteur ordinal PC


Soit PC est muni dun dispositif dincrementation Soit on utilise lALU

PC
de Provence () L3 Informatique - Universite Architecture des ordinateurs 267 / 313 de Provence () L3 Informatique - Universite

80004
268 / 313

Architecture des ordinateurs

Cycle dexecution dune instruction : exemple (II)


Cycle de recherche 3 Decodage de linstruction (Decodeur )
identication dune addition entre deux registres avec placement du resultat dans un registre

Horloge

denit le cycle de base : cycle machine pour synchroniser chaque etape utilisee des cycles de recherche et dexecution Lexecution du cycle de recherche ou dexecution prend un certain nombre de cycle de base (dependant de linstruction) Cycle CPU = temps dexecution minimal dune instruction (recherche + execution)

(Sequenceur 4 Preparation des donnees )


On place les contenus des registres $2 et $3 dans les deux de lALU registres dentree

5 Determiner ce quil faut faire (Sequenceur )


` lALU Envoi du signal de loperation daddition a

6 Le faire (Sequenceur )
LALU ajoute les deux operandes et place le resultat dans son registre de sortie e dans le le contenu du registre de sortie de lALU est transfer registre $1
de Provence () L3 Informatique - Universite Architecture des ordinateurs 269 / 313

de Provence () L3 Informatique - Universite

Architecture des ordinateurs

270 / 313

Sequenceur (I)
Sequenceur = machine de Mealy recevant des informations du decodeur et des signaux detats (entrees) produisant des signaux de commandes controlant les differentes unites

Sequenceur (II)

e : Sequenceur cabl
avec des portes logiques circuit sequentiel (synchrone) realis e selon le Un sous-circuit pour chaque instruction, sous-circuit active par le decodeur. code envoye

: Sequenceur micro-programme Realisation : e sequenceur cabl sequenceur micro-programme


de Une ROM contient des micro-programmes composes micro-instructions Le sequenceur sait executer les sequences de micro-instructions

de Provence () L3 Informatique - Universite

Architecture des ordinateurs

271 / 313

de Provence () L3 Informatique - Universite

Architecture des ordinateurs

272 / 313

(I) Chemin de donnees

(II) Chemin de donnees

Un chemin de donnees est deni par lensemble des composants requis pour lexecution dune instruction : PC, UAL, banc de registres, memoire, ... Liens entre ces composants : ux de donnees, signaux de partagees, lecture/ecriture, multiplexage des unites .... Selon les instructions, les composants requis et les liens existants entre eux varient

de Provence () L3 Informatique - Universite

Architecture des ordinateurs

273 / 313

de Provence () L3 Informatique - Universite

Architecture des ordinateurs

274 / 313

Une architecture dun processeur MIPS

Processeur : fonctionnement - microprogrammation

de Provence () L3 Informatique - Universite

Architecture des ordinateurs

275 / 313

de Provence () L3 Informatique - Universite

Architecture des ordinateurs

276 / 313

Composants du processeur MIPS (I)

Composants du processeur MIPS (II)

Memoire dinstructions

Compteur programme

Additionneur

Memoire de donnees

Extension signee

de Provence () L3 Informatique - Universite

Architecture des ordinateurs

277 / 313

de Provence () L3 Informatique - Universite

Architecture des ordinateurs

278 / 313

Composants du processeur MIPS (III)

Format des instructions : rappel

Format Format R Format I Format J

6 bits Code op Code op Code op

5 bits rs rs

5 bits 5 bits 5 bits 6 bits rt rd sa funct rt adresse sur 16 bits adresse sur 26 bits

Registres

ALU

de Provence () L3 Informatique - Universite

Architecture des ordinateurs

279 / 313

de Provence () L3 Informatique - Universite

Architecture des ordinateurs

280 / 313

Execution de : add $1,$2, $3


Codeop 0 rs 2 rt 3 rd 1 sa 0 funct 32

Execution de : lw $1, 100($2)


Code op 35 rs 2 rt 1 adresse sur 16 bits 100

lecriture le signal RegWrite controle dans le banc de registres ALUoperation decrit le type de calcul realis e le signal Zero est emis si le calcul vaut 0

Le signal MemRead est activite. adresse 16 bits est un deplacement relatif signe les signaux MemWrite et MemRead controlent respectivement lecriture et la lecture dans la memoire
de Provence () L3 Informatique - Universite Architecture des ordinateurs 282 / 313

de Provence () L3 Informatique - Universite

Architecture des ordinateurs

281 / 313

Execution de : beq $1,$2, 100


Code op 4 rs 2 rt 1 adresse sur 16 bits 100

de lALU (I) Controle

de Provence () L3 Informatique - Universite

Architecture des ordinateurs

283 / 313

de Provence () L3 Informatique - Universite

Architecture des ordinateurs

284 / 313

de lALU (II) Controle


(ALUoperation) Signaux de controle 000 001 010 110 111 en fonction ALUoperation est calcule du champ funct, les 6 bits de poids faible de linstruction ee execut du signal ALUop sur 2 bits en fonction du Codeop, les 6 bits de poids Le signal ALUop est calcule ee fort de linstruction execut
de Provence () L3 Informatique - Universite Architecture des ordinateurs 285 / 313

de lALU (III) Controle


Calcul realis e and or add sub slt

Codeop lw sw beq add sub and or slt

ALUop 00 00 01 10 10 10 10 10

funct

100000 100010 100100 100101 101010

ALUoperation 010 010 110 010 110 000 001 111

de Provence () L3 Informatique - Universite

Architecture des ordinateurs

286 / 313

de controle Lunite

Larchitecture MIPS multi-cycle

RD registre dinstruction RI, registre de donnees A,B et un registre de une seule ALU avec des registres dentrees sortie ALUout
de Provence () L3 Informatique - Universite Architecture des ordinateurs 287 / 313 de Provence () L3 Informatique - Universite Architecture des ordinateurs 288 / 313

Larchitecture MIPS multi-cycle : cycle dexecution

de controle Larchitecture MIPS multi-cycle : unite

Etape

Type R

erence Ref memoire

Branchements

Extraction

RI Mem[PC] et PC PC+4

Decodage

A Reg[RI[25-21]] ; B Reg[RI[20-16]] ; ALUout PC + RI[15-0]*4

ALUout A+RI[15-0] Execution ALUout A op B Mem data Mem[ALUout] Mem[ALUout] B si (A==B) alors PC ALUout

Ecriture

Reg[RI[15-11]] ALUout

Reg(RI[15-0]) Mem data

de Provence () L3 Informatique - Universite

Architecture des ordinateurs

289 / 313

de Provence () L3 Informatique - Universite

Architecture des ordinateurs

290 / 313

Larchitecture MIPS multi-cycle : signaux 1 bit


Signal RegDest RegWrite ALUSrcA MemRead MemWrite MemtoReg IorD IRWrite PCWrite PCWriteCond a ` ecrire la donnee dans le registre memoire provient du registre donnee ladresse pour la memoire est fournie par PC la 1ere operande de lALU est PC Effet pour S=0 le registre de destination pour lecriture est RI[20 :16] Effet pour S=1 le registre de destination pour lecriture est RI[15 :11] en ecriture la donnee est dans le registre a ` ecrire stockee la 1ere operande de lALU est A est lue en memoire une donnee ` ladresse speci ee a a ` ecrire une donnee est ecrite en ` ladresse speci ee memoire a a ` ecrire la donnee dans le registre provient de ALUout ladresse pour la memoire provient de ALUout La sortie de la memoire est ecrite dans RI une valeur est ecrite dans PC si le valeur PC est modie Zero de lALU vaut 1

Larchitecture MIPS multi-cycle : signaux 2 bits

de lALU est ALUSrcB : la seconde entree


00 : la valeur du registre B 01 : la valeur 4 16 bits de la valeur immediate 10 : lextension signee dans RI 16 bits de la valeur immediate 11 : lextension signee dans RI ee de 2 decal

PCSource : le PC sera ecrit avec


00 : la sortie de lALU (PC+4) 01 : la valeur de ALUout ee de 2 et ajoutee a ` PC+4[31 :28] 10 : ladresse de saut decal

de Provence () L3 Informatique - Universite

Architecture des ordinateurs

291 / 313

de Provence () L3 Informatique - Universite

Architecture des ordinateurs

292 / 313

de controle Conception dune unite


de controle est un systeme ` Lunite synchrone Le decodeur identie linstruction. orchestrant les Le sequenceur envoie les signaux de controle ements pour realiser differents el du chemin de donnees linstruction. Sequenceur = machine de Moore : informations du decodeur ements entrees + informations des el du chemin de donnees sorties : signaux de controle

Modelisation dun sequenceur

de Provence () L3 Informatique - Universite

Architecture des ordinateurs

293 / 313

de Provence () L3 Informatique - Universite

Architecture des ordinateurs

294 / 313

: etat Chemin de donnees 0

: etat Chemin de donnees 1

de Provence () L3 Informatique - Universite

Architecture des ordinateurs

295 / 313

de Provence () L3 Informatique - Universite

Architecture des ordinateurs

296 / 313

: etat Chemin de donnees 8 (branch. cond. : beq)

: etat Chemin de donnees 9 (branch. incond. : j)

de Provence () L3 Informatique - Universite

Architecture des ordinateurs

297 / 313

de Provence () L3 Informatique - Universite

Architecture des ordinateurs

298 / 313

: etat Chemin de donnees 6 (type R : partie I)

: etat Chemin de donnees 7 (type R : partie II)

de Provence () L3 Informatique - Universite

Architecture des ordinateurs

299 / 313

de Provence () L3 Informatique - Universite

Architecture des ordinateurs

300 / 313

: etat Chemin de donnees 2 (sw : partie I)

: etat Chemin de donnees 5 (sw : partie II)

de Provence () L3 Informatique - Universite

Architecture des ordinateurs

301 / 313

de Provence () L3 Informatique - Universite

Architecture des ordinateurs

302 / 313

Realisation dun sequenceur

Sequenceur : solution cablee

: lunite de controle est une implantation cablee de solution cablee lautomate


ee pour les processeurs RISC privilegi

: un microprogramme contenu dans solution microprogrammee une ROM realise lautomate


ee pour les processeurs CISC privilegi

de Provence () L3 Informatique - Universite

Architecture des ordinateurs

303 / 313

de Provence () L3 Informatique - Universite

Architecture des ordinateurs

304 / 313

Sequenceur : solution microprogrammee


Concevoir la realisation de lautomate comme un programme qui implante les instructions du langage machine. Un microprogramme pour une instruction du langage machine est necessaire ` lexecution une representation du controle a de linstruction dune suite de microinstructions. et est constitue du Chaque microinstruction pilote un ensemble de signaux de controle chemin de donnees. 2 types de microprogrammation : horizontale verticale

Controleur de microcode

de Provence () L3 Informatique - Universite

Architecture des ordinateurs

305 / 313

de Provence () L3 Informatique - Universite

Architecture des ordinateurs

306 / 313

Microprogrammation horizontale
Dans chaque microinstruction, il y a e a ` chacune des signaux de une partie controle : un bit est dedi controle une partie instruction suivante : determine la microinstruction ` executer suivante a parmi
la microinstruction suivante dans la memoire ` microinstruction de linstruction suivante la premiere un branchement selon des signaux detats

Microprogrammation horizontale MIPS


2 bits Controle ALU 1 bit SRC1 2 bits SRC2 3 bits Controle registre 4 bits Memoire 4 bits Controle ecriture PC 2 bits suivante

` la realisation Peu de microinstructions necessaires a dune instruction ` longues (une centaines de bits) Les microinstructions peuvent tres
de Provence () L3 Informatique - Universite Architecture des ordinateurs 307 / 313

Champs ALU Controle SRC1 SRC2 registre Controle Memoire ecriture Controle PC

Signaux ALUop ALUSrcA ALUSrcB RegWrite,MemtoReg,RegDst MemRead, MemWrite,IorD,ORWrite PCWrite,PCWriteCond,PCsource

de Provence () L3 Informatique - Universite

Architecture des ordinateurs

308 / 313

Microprogrammation verticale
Les microinstructions sont de petite taille et se decomposent en 2 parties : Codeop donnees

Microprogrammation verticale MIPS


00 : 01 : 02 : 03 : 04 : 05 : 06 : 07 : 08 : 09 : 10 : 11 : 12 : 13 : 14 : 15 : 16 : 17 : 18 : send send if j if beq if R-type send if sw send send goto send goto send goto send send goto send goto 0000 0001 10 12 14 0010 17 0011 0100 00 1001 00 1000 00 0110 0111 00 0101 00

prennent un sens selon le Codeop Les donnees Jeu dinstructions sophistique emission de signaux (necessitant un decodage) saut branchement conditionnel ...

En supposant un codage des signaux ` emettre a pour chacun des etats : 10 codes differents 4 bits

de Provence () L3 Informatique - Universite

Architecture des ordinateurs

309 / 313

de Provence () L3 Informatique - Universite

Architecture des ordinateurs

310 / 313

Interruptions - exceptions (I)


enements ` Les exceptions sont des ev anormaux provenant (de de lexecution limpossibilite) de linstruction en cours.
ADEL/ADES : adresse incorrecte respectivement en lecture et en ou dans une zone dacces ` interdite. ecriture - adresse non alignee ` operation ne produit pas un OVF : overow - la derniere realis ee resulat representable sur 32 bits ` ladresse PC ne contient pas une RI : Codeop illegal - la memoire a instruction. ...

Interruptions - exceptions (II)

En MIPS le registre CR Cause Register contient en cas dinterruption ou dexception, la cause pour laquelle on fait appel au programme de traitement des interruptions/exceptions. le registre EPC Exception Programm Counter contient
ladresse de retour (PC + 4) en cas dinterruption ladresse de linstruction fautive en cas dexception

enements ` Les interruptions sont des ev declench es


par des periph eriques : interruption materielle par le programme lui-meme : interruption logicielle

de Provence () L3 Informatique - Universite

Architecture des ordinateurs

311 / 313

de Provence () L3 Informatique - Universite

Architecture des ordinateurs

312 / 313

Interruptions - exceptions (III)


a ` ladresse En cas dexception, la procedure stockee ee. 0x80000080 (le gestionnaire dexception) est execut ` lexecution Les exceptions sont fatales (a du programme) pour identier lexception CR et EPC sont uniquement utilises a ` ladresse En cas dinterruptions, la procedure stockee ee. 0x80000080 (le gestionnaire dexception) est execut pour identier lexception CR est utilise comme adresse de retour apres ` le traitement de EPC est utilise lexception.

de Provence () L3 Informatique - Universite

Architecture des ordinateurs

313 / 313

You might also like