Vous êtes sur la page 1sur 13

22/01/2009

Cours 1 Microprocesseurs
Jalil Boukhobza LC 206 boukhobza@univ-brest.fr 02 98 01 69 73
Jalil Boukhobza 1

But de ce cours

Comprendre le fonctionnement de base dun microprocesseur squentiel simple (non pipelin? et non superscalaire?): { 1re partie: conception

Elments de base dun microprocesseur Son fonctionnement

{
Jalil Boukhobza

2me partie: programmation de microprocesseur 3me partie introduction au systmes dexploitation

Plan de la premire partie


Cours daujourdhui

1. 2. 3.

Historique, performances et autre introduction Reprsentation des nombres Circuits logiques


1. 2.

Combinatoires (et arithmtique) Squentiels (et mmorisation)

4.

Units de traitement et units de contrle et lutilisation dautomates


1. 2.

Unit de contrle cble Unit de contrle microprogramme

Jalil Boukhobza

22/01/2009

quoi sert ce cours ?

Connatre la base de larchitecture dun microprocesseur (pour un informaticien cest un minimum !). Indispensable pour plusieurs UEs de L3 et de M1 (Architecture, Architectures parallles, systme & rseaux, etc.) Indispensable pour le M2 Systmes Embarqus.

Jalil Boukhobza

Les microprocesseurs hier, aujourdhui et demain ?

Au niveau technologique (commutateur):


Tubes vide (1904) transistor (annes 20-30) semiconducteur/65nm nanotechnologies (1 0.1nm)

Au niveau de la mmoire:
1 Ko (en 1970) quelques GO (230) Une faune varie: mmoire externe, mmoire centrale, mmoire cache (de plusieurs niveaux diffrents)

Au niveau de larchitecture:
Du modle Von Neumann architectures plus parallles (pipeline?, super scalaire?, multi cur?)

Jalil Boukhobza

Performances

Cest toujours la course aux performances (MIPS, MOPS, FLOPS): plus les machines sont performantes et plus les applications sont gourmandes. Parmi ces applications:
{ { {

Traitement T i di dimages, visioconfrence, i i f jeux j 3D, 3D multimdia; l i di Bioinformatique: dcodage du gnome humain Modlisation et simulation en climatologie, conception de circuits intgrs, etc.

Pour accrotre les performances, on compte sur lvolution des technologies mais aussi les architectures : paralllisme interne (au sein dun processeur) ou/et externe (multi processeur)
6

Jalil Boukhobza

22/01/2009

Loi de Moore
Source wikipedia

Moore (cofondateur dINTEL) prdit en 1965 que le nombre de transistor sur une puce doublerait tout les 18 mois et a rectifi sa loi (empirique) vers 1975 24 mois.
Jalil Boukhobza

Cette loi est tonnement juste !!!

Lhistoire commence en 1943 avec lENIAC

Electronic Numerical Integrator And Computer: reprogrammable, dcimal et utilise des tubes vide. Conus des buts militaires. 30 tonnes (500m2 au sol) 18000 tubes vide et 70000 rsistances 140 Kwatts/h (un PC consomme 100 200 Watts/h) 5000 additions/seconde/calculateur, il y en a 20 (un Pentium 4 3.2 GHz effectue 2772~6204 MFLOPS). fonctionn jusquen 1955 (une dizaine danne).

Tache principale: raliser une srie de calculs complexes pour tester la faisabilit de la bombe hydrogne.
Jalil Boukhobza 8

ENIAC
dveloppeur

dbogueur

Jalil Boukhobza

22/01/2009

IAS et larchitecture de Von Neumann (1903-1957)

Institute of Advanced Studies (Princeton) architecture conue entre 1946 et 1952. Ide: reprsentation du programme sous forme numrique (binaire) ET le ranger en mmoire au mme titre que les donnes donnes. Caractristiques:
{ { { {

Mmoire principale: donnes + instructions Une unit arithmtique et logique sur donnes binaires Une unit de contrle (interprtation dinstruction) Dispositif dE/S

LIAS est un modle darchitecture encore aujourdhui utilis.


10

Jalil Boukhobza

IAS
Mmoire Partie contrle

E/S
Programme RI PC UAL
Partie oprative

Donnes

depuis, dautres modles ont t dfinis comme larchitecture Harvard (deux mmoire: donnes et instructions) ainsi que dautres architectures parallles
Jalil Boukhobza 11

CISC & RISC


Constat: grande majorit des instructions disponibles sont trs peu utilises Deux types darchitectures diffrentes:
{

CISC (Complex instruction Set Computer): modes dadressage complexe + plusieurs instructions possibles + nombre de cycles par instruction diffrent Pentium RISC (Reduced Instruction Set Computer): peu de modes dadressage + peu dinstructions possibles + nombre de cycles par instruction constant (ou presque) PowerPC. Actuellement peu de frontire entre les deux ?
12

{
Jalil Boukhobza

22/01/2009

volution dans la gamme Pentium

Du 8080 au 80486: microprocesseur 8 bits au 32 bits multitches (excution de plusieurs programmes simultanment) avec coprocesseur mathmatique. Pentium et Pentium Pro: utilisation darchitectures super scalaires (plusieurs instructions en p (p parallle) ) et techniques q logicielles g permettant dacclrer le traitement:
{ { {

Prdiction de branchement Analyse de flot (enlever le code mort) Excution spculative (dans le dsordre)

Pentium II, III et IV: traitement spcifique pour la vido, 3D et multimdia. Itanium: architecture 64 bits.

Jalil Boukhobza

13

volution dans la gamme PowerPC

801: processeur RISC de Berkeley lanc par IBM (1975). System/6000 RISC: super scalaire RISC PowerPC: accord entre IBM, Motorolla et Apple
{ { { {

601, 603, 604: processeur 32 bits avec conceptions super scalaires plus avance. 620 et G3: architecture 64 bits intgrant pour la dernire deux niveaux de cache sur la puce. G4: plus de paralllisme et vitesse interne plus importante. G5 : processeur 64 bits
14

Jalil Boukhobza

Quelques chiffres
Pentium
Date de lancement Vitesse dhorloge Nombre de transistors 1993 166 MHz 3,1 Millions

Pentium III
1999 660 MHz 9,5/28 Millions

Itanium
2001 800 MHz 300 Millions

601
Date de lancement Vitesse dhorloge Nombre de transistors 1993 120 MHz 2,8 Millions

G4
1999 500 MHz 10,5 ~ 33 Millions

G5
2003 2 GHz 58 Millions
15

Jalil Boukhobza

22/01/2009

Les performances

La performance dun microprocesseur pour un utilisateur individuel correspond la dure scoulant entre le dbut et la terminaison dune tche: temps dexcution

bC l nbSecondes bS d nbCycles tempsExec = nbInstructions * * Instruction cyclesHorloge


la frquence de fonctionnement ne suffit pas pour comparer les performances le nombre de cycles par instruction dpend de la complexit moyenne du jeu dinstructions
Jalil Boukhobza 16

Exemple

Pour un mme jeu dinstructions et deux mises en uvre diffrentes avec une machine A et une machine B. Pour un mme programme, la A a un cycle y dhorloge g de 10ns et un CPI ( (nombre moyen y de Cycles Par Instruction) de 2 tandis que la machine B a un cycle dhorloge de 15ns et un CPI de 1,2. Quelle est la machine la plus rapide (nombre dinstructions par seconde)?

Jalil Boukhobza

17

De limportance des compilateurs et du logiciel


La programmation de la machine se fait gnralement en utilisant un langage de haut niveau (C, Pascal, Fortran,)

A = A + B (langage C) Compilateur Add A,B (langage dassemblage) assembleur 011010010. (langage machine)
Jalil Boukhobza 18

22/01/2009

Jeu dinstruction dune machine


Le jeu dinstruction est dpendant des choix architecturaux de la machine. une instruction = code instruction + oprande(s)

le code l d d de li linstruction t ti l lu en un ou plusieurs l i accs mmoire i le (ou les) oprande(s) peu(ven)t tre une donne ou une adresse

On distingue quatre catgories dinstructions:


1. 2. 3. 4.

processeur-mmoire: transfert mmoire processeur processeur-E/S: transfert donnes vers, ou partir de priphriques traitement des donnes: opration arithmtique ou logique contrle: branchement
19

Jalil Boukhobza

Jeu dinstructions (2)


Le nombre doprandes peut varier selon le jeu dinstructions, on parle de jeu dinstructions 0, 1, 2 voire jusqu 4 adresses. Cependant, comme les mots reprsentant les donnes (ou adresses) sont de plus en plus longs (32, 64 bits), sont prfrs les jeux dinstructions avec peu dadresses.

Instruction daddition avec 2 adresses add source destination source + destination -> destination Dans le cas dune instruction une adresse, on utilise un registre interne (accumulateur ou acc) pour stocker le premier oprande. add source acc + source -> acc
Jalil Boukhobza 20

Jeu dinstructions (3)


Par exemple, on peut excuter A = B * (C D*E) avec

LOAD E MPY D STA T1 LOAD C SUB T1 MPY B STA A


Jalil Boukhobza

( (charge h d dans A Acc) ) (multiplie le contenu de Acc) (range le contenu de Acc) (soustrait le contenu de Acc)

21

22/01/2009

Architectures et instructions
plusieurs stratgies pour laccs aux donnes:

Type registre-registre (tendance actuelle):


ADD R1, R2, R3 R3 I R2 + R1

Type registre-mmoire:
ADD R, @X R I R + @X

Type mmoire-mmoire:
ADD @X, @Y, @Z @Z I @X + @Y

Plusieurs types dadressage on les verra ultrieurement


22

Jalil Boukhobza

Tches du processeur (modle 5 phases)


Cycle de lecture et dexcution des instructions:
1.

Lecture (fetch) de linstruction excuter (charger le registre dinstructions RI avec linstruction dont ladresse est dans le PC) Dcodage de linstruction l instruction (chargement des oprandes des registres si besoin) Lecture/criture mmoire Excution criture des rsultats dans les registres En plus de la slection de linstruction suivante (prparer PC pour linstruction suivante) qui se fait lors de lopration 3, 4 ou 5.

2. 2

3. 4. 5.

Jalil Boukhobza

23

Illustration

Jalil Boukhobza

24

22/01/2009

Partie oprative
Cette partie contient :

Le registre dinstruction RI Le registre pour le compteur programme (PC) Les registres internes pour la mmorisation de donnes ou dadresses LUAL (unit arithmtique et logique) avec deux sorties :
{ {

rsultat du calcul code de conditions arithmtiques (Z= rsultat nul, N= rsultat ngatif,C= retenue, V= dpassement de capacit)

La description de la partie oprative est lobjet du cours 2.

Jalil Boukhobza

25

Partie contrle

La partie contrle permet lexcution des instructions. Cest une machine squentielle (automate de contrle ou squenceur) permettant denvoyer des ordres la partie oprative. Les entres de la partie contrle sont des informations manant de la partie oprative (valeur dun code opration, valeur dun code condition ...)

Jalil Boukhobza

26

Dcodage des instructions


Le dcodage sert diffrencier les types dinstructions (instruction arithmtique, logique, de transfert, de branchement .) Dcoder = gnrer daprs le code de linstruction, les signaux lectriques permettant lexcution de cette instruction Type de dcodage :

micro programm (utilisation dune mmoire de microprogramme) cbl (non reprogrammable)

Lunit de contrle est lobjet du cours 3&4.

Jalil Boukhobza

27

22/01/2009

Exemple de ralisation de processeur


Extrait Architectures logicielles et matrielles P.Ambard et al., Dunod 2000 On dfinit :

un jeu dinstructions rduit, une partie oprative avec un registre de donne, une unit de contrle permettant lexcution des diffrentes instructions sur larchitecture de la partie oprative
28

Jalil Boukhobza

Jeu dinstructions

Jalil Boukhobza

29

Taille et contenu de la mmoire


Soit le petit programme suivant que lon dsire excuter: ld #3 st [8] et q: add [8] etiq: jmp etiq La taille dune instruction tant de un ou deux mots, si le programme commence ladresse 0 alors le symbole etiq est associ la valeur 4. Si lon fixe la taille dun mot 4 bits, on fixe la taille de la mmoire 16 mots sachant que la taille dune adresse est aussi de 4 bits.
Jalil Boukhobza 30

10

22/01/2009

Interprtation des instructions


PC := 0 tant que vrai selon Mem[PC] clr: Acc :=0; PC := PC + 1 ld: Acc : := Mem[PC + 1]; PC : := PC + 2 st: Mem[Mem[PC + 1]] := Acc; PC := PC + 2 jmp: PC := Mem[PC + 1] add: Acc := Acc + Mem[Mem[PC + 1]]; PC := PC + 2 Mem[PC] correspond au code de linstruction tandis que Mem[PC + 1] correspond loprande (donne ou adresse).

Jalil Boukhobza

31

Reprsentation et prcision finie

Reprsentation en prcision finie (quantit limite de nombres


reprsentables)
{

Problme de reprsentation: ex 1/3 nest pas reprsentable Les proprits sur les nombres sont diffrentes en prcision finie

(A+B) C = A + (B-C) ??
Exemple:

Loi associative: a+(b-c) ? (a+b)-c


Entiers sur 3 chiffres: a=700, b=400, c=300

Loi distributive: a*(b-c) ? (a*b)-(a*c) Entiers sur 3 chiffres: a=5, b=210, c=100
32

Jalil Boukhobza

Les bases utilises en informatique

La base 10 bien sr ! Sauf exception, les programmeurs comptent en base 10 comme le quidam ordinaire. La base 2 : les oprateurs de calcul sont souvent prvus pour calculer dans cette base, car leur ralisation en est simplifie. La base 16 ou hexadcimal : elle est utilise lorsque le programmeur doit rsonner en base 2. Les conversions de la base hexadcimal vers la base 2 se calculent trs facilement de tte.

11

22/01/2009

Reprsentation binaire des nombres

nombre positif : (conversion en base 2)

A = ai .2i

n 1 i =0

nombre ngatif :
{

reprsentation signe-valeur absolue:


A =

n2 i=0

a i . 2 i si

a n 1 = 0 a n 1 = 1
n 2 i =0

A = a i . 2 i si
i=0

n2

reprsentation complment 2 :

Jalil Boukhobza

A = 2 n 1.an 1 + ai .2i

34

Conversion de la base 10 une base B

On divise successivement le nombre convertir par la base B, tant que le rsultat nest pas nul. Les restes de chacune des divisions forment les chiffres du nombre converti dans la base darrive, du poids faible au poids fort fort.

54 2 0 27 2 1 13 2 1 6 2 0 3 2 1 1 2 1 0

(54)10=(110110)2

Reprsentation binaire (2)


Reprsentation dcimale Reprsentation signe et valeur absolue 011 010 001 000 100 101 110 111 Reprsentation Reprsentation complment 1 complment 2

+4 +3 +2 +1 +0 -0 -1 -2 -3
Jalil Boukhobza -4

011 010 001 000 111 110 101 100 -

011 010 001 000 000 111 110 101 100


36

12

22/01/2009

Caractristiques principales du complment 2

Intervalle de reprsentation: -2n-12n-1-1 Nombre de reprsentation de zro: une seule N ti Ngation:

A = A +1

Augmentation du nombre de bits: extension par le bit du signe Dpassement de capacit: rsultat prend le signe oppos de ce quil devrait prendre Soustraction: A-B = A + (-B)
37

Jalil Boukhobza

13

Vous aimerez peut-être aussi