You are on page 1of 13

22/01/2009

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

But de ce cours

Comprendre le fonctionnement de base


dun microprocesseur squentiel simple
(non pipelin? et non superscalaire?):
{ 1re partie: conception

{
Jalil Boukhobza

Elments de base dun microprocesseur


Son fonctionnement

2me partie: programmation de


microprocesseur
3me partie introduction au systmes
dexploitation

Cours
daujourdhui

Plan de la premire partie


1.
2.
3.

Historique, performances et autre introduction


Reprsentation des nombres
Circuits logiques
1.
2.

4.

Combinatoires (et arithmtique)


Squentiels (et mmorisation)

Units de traitement et units de contrle et


lutilisation dautomates
1.
2.

Jalil Boukhobza

Unit de contrle cble


Unit de contrle microprogramme

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)

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

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.

Jalil Boukhobza

10

IAS
Mmoire
Partie contrle

E/S
Programme
RI
PC
UAL

Donnes

Partie oprative

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 ?

Jalil Boukhobza

12

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

Jalil Boukhobza

14

Quelques chiffres
Pentium

Pentium III

Itanium

Date de
lancement

1993

1999

2001

Vitesse dhorloge

166 MHz

660 MHz

800 MHz

Nombre de
transistors

3,1 Millions

9,5/28 Millions

300 Millions

601

G4

G5

Date de
lancement

1993

1999

2003

Vitesse dhorloge

120 MHz

500 MHz

2 GHz

Nombre de
transistors

2,8 Millions

10,5 ~ 33 Millions

58 Millions

Jalil Boukhobza

15

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)

lle code
d d
de li
linstruction
t ti llu 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

Jalil Boukhobza

19

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

Jalil Boukhobza

22

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)

2.
2

Dcodage de linstruction
l instruction (chargement des oprandes des registres
si besoin)

3.

Lecture/criture mmoire

4.

Excution

5.

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.

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

Jalil Boukhobza

28

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

Jalil Boukhobza

32

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)


n 1

A = ai .2i

nombre ngatif :
{

i =0

reprsentation signe-valeur absolue:


A =

n2

i=0

a i . 2 i si

a n 1 = 0

n2

A = a i . 2 i si

a n 1 = 1

i=0

reprsentation complment 2 :
n 2

Jalil Boukhobza

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

34

i =0

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

Reprsentation Reprsentation
complment 1 complment 2

+4

+3

011

011

011

+2

010

010

010

+1

001

001

001

+0

000

000

000

-0

100

111

000

-1

101

110

111

-2

110

101

110

-3

111

100

101

Jalil Boukhobza
-4

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:

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)

Jalil Boukhobza

A = A +1

37

13

You might also like