Vous êtes sur la page 1sur 31

Unit 9: Unit centrale de traitement

Objectifs :
la fin de cette unit, vous connatrez le fonctionnement de l'unit centrale de traitement d'un ordinateur. Pour y arriver, vous devrez atteindre les objectifs suivants : - dcrire les diffrentes composantes d'une unit centrale de traitement et leur rle : unit de commande, squenceur, unit arithmtique et logique, compteur ordinal, registre dinstruction, horloge; - dcrire la structure d'une instruction de niveau machine;

Pierre Marchand, 2001

280

Unit 9: Unit centrale de traitement


8.1 Architecture
Lunit centrale de traitement (UCT) ou processeur central (CPU) est llment moteur de lordinateur qui interprte et excute les instructions du programme situes en mmoire centrale. Lensemble CPU + mmoire centrale constitue lUnit Centrale.

LUCT est compos de lUnit arithmtique et logique (UAL) et de lUnit de commande ou de contrle.
LUAL effectue les oprations arithmtiques et logiques.

LUnit de commande dirige le fonctionnement de toutes les autres units : UAL, mmoire, entres / sorties, etc., en leur fournissant les signaux de cadence et de commande.

Pierre Marchand, 2001

281

Unit 9: Unit centrale de traitement


8.1 Architecture
Les diffrentes units sont interconnectes par des systmes de cblage transportant des signaux lectriques. Pour viter de relier chaque unit chacune des autres, on fait usage de lignes exploites en commun. On appelle bus ces ensembles de lignes. On peut distinguer trois bus diffrents : Bus dadresses, par exemple, A0 A31 Bus de donnes, par exemple, D0 D31 Bus de contrle, par exemple, R/W,

Un bus peut tre utilis par toutes les units qui y sont connectes, mais jamais par plus de deux units en mme temps. Ceci pose des problmes dattente et darbitrage (contention) lors des requtes dutilisation.
Pierre Marchand, 2001

282

Unit 9: Unit centrale de traitement


8.1 Architecture
Bus de cache Bus local Pont PCI Bus mmoire Mmoire centrale

Cache niveau 2

CPU

Bus PCI

SCSI

USB

Pont ISA

Disque IDE

Adaptateur graphique Moniteur

Souris

Clavier

Bus ISA

Modem
Pierre Marchand, 2001

Carte de son
283

Imprimante

Unit 9: Unit centrale de traitement


8.2 Unit de commande
Mmoire
Bus de donnes RM

Cette unit comporte Bus Le compteur ordinal CO R/W dadresses Le registre dinstruction RI RA Le dcodeur de code opration Le squenceur Lhorloge CO RA = registre d adresses RM = registre mot

RI

Dcodeur

Horloge
Pierre Marchand, 2001

Squenceur

284

Unit 9: Unit centrale de traitement


8.2 Unit de commande
Les impulsions gnrs par lhorloge intervalles rguliers dterminent le temps de cycle de la machine. Lexcution dune instruction prend gnralement plus dun cycle, car une instruction comporte gnralement : le temps de chargement de linstruction (fetch), le temps de dcodage de linstruction, le temps de chargement des oprandes et de calcul de leur adresse effective, le temps dexcution proprement dit. le temps dcriture du rsultat (writeback). En utilisant un pipeline, il est quand mme possible dmettre une instruction par cycle si toutes ces oprations peuvent tre effectues en parallle.
Pierre Marchand, 2001

285

Unit 9: Unit centrale de traitement


8.2 Unit de commande
tapes dun cycle de recherche dinstruction (fetch) : Transfert de ladresse de la nouvelle instruction de CO RA. La gnration dune impulsion de lecture par lunit de commande provoque le transfert de linstruction cherche vers RM qui fonctionne comme registre tampon pour tous les changes avec la mmoire. Transfert de linstruction dans RI. Instruction = code opration + adresse oprande Ladressage de loprande peut demander le calcul de ladresse effective, ce qui consomme des cycles machine. Pendant que ladresse de loprande est envoye RA, le code opration est transmis au dcodeur qui dtermine le type dopration demande et le transmet au squenceur. Le CO est incrment en vue du cycle de recherche suivant.
Pierre Marchand, 2001

286

Unit 9: Unit centrale de traitement


8.3 Synchronisation des oprations
Les signaux priodiques gnrs par lhorloge dfinissent le cycle de base ou cycle machine (clock cycle). Le cycle mmoire est habituellement beaucoup plus long que le cycle machine, surtout sil doit accder la mmoire centrale (chec du cache interne L1 + chec du cache externe L2) Par exemple, dans un processeur dit 500 MHz, le cycle machine est de 2 ns. La frquence du bus PCI pouvant atteindre 133 MHz, le cycle de bus a une dure de 7,5 ns. Ceci est donc le temps minimum pour un accs en mmoire centrale. Toutefois, il faut habituellement plusieurs mots mmoire pour remplir une range de cache, de sorte quun accs en mmoire centrale reprsente plusieurs cycles de bus.
Pierre Marchand, 2001

287

Unit 9: Unit centrale de traitement


8.4 Squenceur
Le squenceur est un automate qui a la responsabilit de gnrer les signaux de commande ncessaires pour actionner et contrler les units participant lexcution dune instruction donne. Cette fonction peut tre ralise de deux faons : squenceur cbl ou squenceur microprogramm. Un squenceur cbl est un circuit squentiel complexe qui fait correspondre chaque instruction un sous-circuit capable de commander son droulement. On peut obtenir le mme rsultat avec une suite de micro-instructions stockes dans une mmoire de microprogrammation. Ce microprogramme est capable de gnrer une suite de signaux de commande quivalent celle qui serait produite par un squenceur cbl.

Pierre Marchand, 2001

288

Unit 9: Unit centrale de traitement


8.4 Squenceur
RI code op adresse

dcodeur

squenceur cbl
commandes UAL

mmoire de microprogrammation commandes

Pierre Marchand, 2001

289

Unit 9: Unit centrale de traitement


8.4 Squenceur
Le microprogramme (firmware) peut tre stock dans une ROM ou une EPROM. Cette solution est plus fexible que la logique cble. Le prix payer est une vitesse infrieure. RI

code op
mapping ROM

adresse
compteur ordinal de microprogrammation mmoire de microprogrammation

micro-instruction
Pierre Marchand, 2001

0100110100
signaux de commande

290

Signaux de contrle la m oire (rd , wr, fetch) de m 3

Mmoire centrale

MAR 32 MDR PC MBR SP bus C

D codeur 4 vers 16 MPC 9

8.4 Squenceur

MAR = RA MDR = RM PC = CO MPC = CO du microprogramme. MIR = registre de micro-instruction (36 bits). MBR = RI

M oire de m 512 x 36 bits pour le microprogramme JMPC Addr J ALU C MIR MB

JN /JZ

bus B 6 ALU contrle ALU D caleur N Z

MSB

2 bascules de 1 bit

Activer sortie vers bus B crire bus C dans re gistre

Pierre Marchand, 2001

291

Unit 9: Unit centrale de traitement


8.5 Niveaux de programmation
langages volus niveau assembleur instructions machine micro-instructions niveau des commandes lectroniques

Pierre Marchand, 2001

292

Unit 9: Unit centrale de traitement


8.5 Niveaux de programmation
Le programmeur a le choix entre plusieurs langages de programmation: Fortran, Pascal, C, Ada, C++, Java, Assembleur. Lordinateur par contre ne comprend que son propre langage, le langage machine, avec son jeu dinstructions de niveau machine. Il faut donc traduire le code source crit dans lun des langages mentionns en code objet ou code machine. Cette traduction seffectue laide de programmes traducteurs tel que les assembleurs et les compilateurs. Lassembleur est un langage dans lequel chaque instruction correspond une instruction machine.

Pierre Marchand, 2001

293

Unit 9: Unit centrale de traitement


8.5 Niveaux de programmation
Un compilateur convertit la totalit du programme source en langage machine et place le code objet dans un fichier objet. Lordinateur peut ensuite excuter ce code objet. Le code objet ne peut tre excut que par un ordinateur ayant le mme langage machine. Un interprte convertit le programme source en code objet instruction par instruction, et lexcute au fur et mesure. Le traducteur doit donc se trouver dans la machine au moment de lexcution, ce qui nest pas ncessaire dans le cas de code compil.

Pierre Marchand, 2001

294

Unit 9: Unit centrale de traitement


8.5 Niveaux de programmation
Pour rendre le code portable, on a adopt une solution intermdiaire dans le cas du langage Java. Le code source est converti en bytecodes, langage compil indpendant de la plate-forme. Ces bytecodes sont ensuite interprts par la machine cible au moyen dun interpte appel machine virtuelle. Le mme code compil peut donc tre excut sur toute plate-forme pour laquelle on dispose dune machine virtuelle Java (JVM). Pour rendre ce processus plus performant, certaines machines virtuelles appeles Just-In-Time Compilers (JIT) compilent les bytecodes en langage machine juste avant lexcution. On atteint ainsi des performances comparables celles dun langage compil.

Pierre Marchand, 2001

295

Unit 9: Unit centrale de traitement


8.6 Structure des instructions niveau machine
Une instruction machine doit fournir au CPU toutes les informations pour lexcution dune opration lmentaire. Elle doit donc contenir un code opration qui est essentiel pour spcifier le type daction dsir. Elle doit en outre contenir une ou plusieurs adresses selon le cas : ladresse de (ou des) oprande(s), ladresse o envoyer le rsultat et ladresse o chercher linstruction suivante. Par consquent, le format dune instruction machine comporte un champ code opration et jusqu quatre champs dadresse. On parle dinstructions n adresses. On dit dune machine quelle est n adresses si la plupart de ses instructions sont n adresses.

Pierre Marchand, 2001

296

Unit 9: Unit centrale de traitement


8.6 Structure des instructions niveau machine
Ainsi, le MC6809 est une machine une adresse, le Pentium et le MC68000 sont des machines 2 adresses. Le PowerPC est une machine 3 adresses pour les oprations entre registres, 2 adresses pour les accs mmoire. Exemples : LDA 1000 instruction 1 adresse (6809) mov ax,[esi+4] instruction 2 adresses (Pentium) add eax,ebx instruction 2 adresses (Pentium) move d4,8(a6) instruction 2 adresses (MC68000) move d3,d4 instruction 2 adresses (MC68000) ld r0,4(r1) instruction 2 adresses (PowerPC) add r3,r2,r1 instruction 3 adresses (PowerPC)

Pierre Marchand, 2001

297

Unit 9: Unit centrale de traitement


8.6 Structure des instructions niveau machine
Il existe aussi des machines zro adresse. Ce sont des machines pile, analogues aux calculatrice notation polonaise inverse (RPN). Elle prennent tous ses oprandes sur la pile et inscrivent le rsultat au sommet de la pile.

Pierre Marchand, 2001

298

Unit 9: Unit centrale de traitement


8.7 Jeu dinstructions
Chaque machine a son jeu dinstructions de base. Le nombre dinstructions varie de 50 plus de 300. Il y a deux coles de pense. Les partisans de larchitecture RISC (Reduced Instruction Set Computer) prconisent un petit nombre dinstructions lmentaires dans un format fixe, faciles raliser dans le matriel et dexcution rapide (1 instruction par cycle machine). Cela ncessite un squenceur cbl et un compilateur capable dexploiter les caractristiques de la machine (par exemple, utiliser les registres pour minimiser les accs la mmoire). Dautres prfrent les architectures CISC (Complex Instruction Set Computer) bases sur des jeux dinstructions trs riches et de taille variable, et offrant des instruction composes (ncessitant plusieurs voire mme parfois des centaines de cycles machine).

Pierre Marchand, 2001

299

Unit 9: Unit centrale de traitement


8.7 Jeu dinstructions
Les instructions quon trouve dans les rpertoires de toutes les machines peuvent tre classes en six groupes : Transfert de donnes (Load, Move, Store). Oprations arithmtiques (les quatre oprations sur des entiers et sur des nombres en virgule flottante de simple ou double prcision). Oprations logiques (AND, OR, NOT, XOR, etc). Contrles de squence (branchements conditionnels et inconditionnels, boucles, appels de procdures, etc.). Entre / sortie (Read, Write). Manipulations diverses (dcalages, conversions de format, incrmentation de registres, etc.).

Pierre Marchand, 2001

300

Unit 9: Unit centrale de traitement


8.8 Registres du CPU
Compteur ordinal (CO) Le registre CO contient ladresse mmoire de la prochaine instruction excuter. Il est automatiquement incrment aprs chaque utilisation. Le programme est donc excut en squence moins quil ne contienne une instruction qui modifie la squence, par exemple un saut ou un branchement. Dans ce cas, la nouvelle adresse remplacera le contenu du CO. Ce changement sera effectu pendant le cycle dexcution, aprs le dcodage du code opration, mais avant le transfert du contenu du CO incrment vers le RA. Registre instruction (RI) Quand une instruction est charge partir de la mmoire, elle est place dans RI. Les bits correspondant au code opration sont envoys soit au dcodeur, soit la mmoire de microprogrammation.
Pierre Marchand, 2001

301

Unit 9: Unit centrale de traitement


8.8 Registres du CPU
Accumulateur (ACC) Dans le plupart des oprations arithmtiques, laccumulateur contient lun des oprandes avant lexcution, et le rsultat aprs. Il peut servir de tampon dans les oprations dentre / sortie. Il a gnralement la mme taille que le mot mmoire, mais, dans la plupart des machines, il possde une extension (registre Q) qui permet de doubler sa taille. Ceci permet de stocker le rsultat dune multiplication dans ACC et Q, ou dy placer le quotient et le reste dune division. Dans le Pentium, laccumulateur est EAX et lextension Q est EDX.

Pierre Marchand, 2001

302

Unit 9: Unit centrale de traitement


8.8 Registres du CPU
Registres gnraux Les registre gnraux (general purpose registers) servent enregistrer les informations frquemment utilises pendant le programme, ou des rsultats intermdiaires. Cela vite des accs la mmoire, acclrant ainsi lexcution du programme. La plupart des instructions sont disponibles pour les registres gnraux. Dans le Pentium, ce sont EBX et ECX, mais EAX et EDX peuvent aussi tre considrs des registres gnraux.

Pierre Marchand, 2001

303

Unit 9: Unit centrale de traitement


8.8 Registres du CPU
Registres dindice (XR) Ces registres dindice ou dindex peuvent tre utilise comme des registres gnraux. Mais, il ont en plus une fonction spciale pour manipuler les tableaux de donnes avec ladressage index. Dans un tel mode dadressage, ladresse de loprande est obtenue en additionnant la partie adresse de linstruction au contenu du registre dindex spcifi. Dans le Pentium, tous les registres gnraux peuvent tre utiliss comme indice.

Pierre Marchand, 2001

304

Unit 9: Unit centrale de traitement


8.8 Registres du CPU
Registre de base Utiliss pour calculer des adresses effectives, les registres de base sont conus pour contenir une adresse de rfrence. Pour obtenir ladresse effective, il faut y ajouter le contenu du champ adresse de linstruction Chez Intel, ctait originalement BP et SP, mais dans le Pentium, EBP, ESI, EDI, ESP et tous les registres gnraux peuvent servir de registre de base.

Pierre Marchand, 2001

305

Unit 9: Unit centrale de traitement


8.8 Registres du CPU
Registre dtat (PSW) Le registre dtat, aussi appel registre de codes condition (Program status word ou Condition Code Register) contient diffrents bits appels drapeaux (flags) indiquant le rsultat dune instruction. Les bits les plus courants sont Z, qui vaut 1 si le rsultat de linstruction est 0, C qui vaut 1 sil y a une retenue, N ou S qui vaut 1 si le rsultat de linstruction est ngatif, et V ou OF, qui vaut 1 sil y a eu dbordement de capacit. Dans le Pentium, ce registre sappelle EFLAGS.

Pierre Marchand, 2001

306

Unit 9: Unit centrale de traitement


8.8 Registres du CPU
Pointeur de pile (SP) Ce registre pointe au sommet dune structure de pile implante en mmoire centrale. Le fonctionnement dune pile suit la rgle Last-InFirst-Out (LIFO). Chaque fois quun mot doit tre enregistr dans la pile, il est plac ladresse qui prcde celle du mot enregistr prcdemment. Les information enregistres dans la pile sont lues dans lordre inverse de celui dans lequel elles ont t enregistres. Une fois quun mot est lu, son emplacement devient disponible pour une nouvelle information.

Pierre Marchand, 2001

307

Unit 9: Unit centrale de traitement


8.9 Adressage des oprandes
Les modes dadressage les plus importants sont : direct ou absolu : Le champ adresse contient ladresse effective. indirect : Le champ adresse contient ladresse o se trouve ladresse effective. immdiat : Le champ adresse de linstruction contient loprande. implicite : Le code opration implique o se trouve loprande. index : Adresse effective = contenu du champ adresse + contenu du registre index. bas : Adresse effective = contenu du registre de base + contenu du champ adresse. relatif : Comme ladressage bas, mais cest CO qui sert de registre de base.

Pierre Marchand, 2001

308

Unit 9: Unit centrale de traitement


8.10 Taille de ladresse et taille de la mmoire
Soit ADR le nombre de bits dans le champ adresse dune instruction. Si ADR = n, la mmoire physique est accessible dans sa totalit. Tous les modes dadressage proposs par le fabricant peuvent tre utilises. Cest le cas du Pentium, du MC68000, du PowerPC. Si ADR < n, ADR ne suffit pas pour adresser toute la mmoire. On peut utiliser ladressage bas, si le registre de base a une taille suffisante (n bits). Il suffit de diviser la mmoire en blocs de taille telle que ADR puisse adresser totalement un bloc. On utilise alors le champ adresse pour indiquer le dplacement lintrieur du bloc. Ctait le cas du 8088/8086 et du 80186. Ladresse de 16 bits pouvait adresser 64 Ko, mais les registres de segment permettaient datteindre 1 Mo.

Pierre Marchand, 2001

309

Unit 9: Unit centrale de traitement


8.10 Taille de ladresse et taille de la mmoire
Si ADR > n, ADR peut adresser des positions de mmoire qui nexistent pas en mmoire physique. On profite de cette possibilit pour raliser la mmoire virtuelle, dans laquelle la mmoire physique peut tre considre comme un cache pour la mmoire adressable totale qui est alors place sur disque. Dans ce cas, lespace mmoire est divis en pages de quelques Ko au lieu de blocs de quelques octets.

Pierre Marchand, 2001

310