Vous êtes sur la page 1sur 25

Chapitre 2 :MIPS ISA

(larchitecture du

jeu dinstruction)

Objectifs
Identifier linterface (la relation) entre le logiciel de plus
bas niveau (langage machine) et le matriel.
Comprendre la problmatique de larchitecture du jeu
dinstruction.
Dfinir deux grandes familles de jeu dinstruction.

Application (Netscape)

Software

Systme
Compilateur
dexploitation
Assembleur (Windows 2K)

Hardware

Processeur Memoire Systme dE/S

Architecture de
lensemble dinstruction

Chemin de donnes & Control


Circuits logiques combinatoires
et sqencielles

Portes logiques
transistors

L interface cl entre les diffrents niveaux


dabstraction cest larchitecture de lensemble
dinstructions
2

Plan
Introduction
Classification des jeux dinstructions
Les oprations du matriel de lordinateur
Les oprandes du matriel de lordinateur
La reprsentation des instructions dans

lordinateur
Des instructions pour prendre des dcisions
(branchement)
Comment traiter les procdures au niveau
matriel de lordinateur (appels aux procedures)
Un exemple pour tout regrouper
3

Introduction
Les concepteurs dordinateurs ont
un but commun : trouver un langage
qui rend plus aise la construction
du matriel et du compilateur tout
en maximisant les performances et
en minimisant le cot.

Programme en
Pascal, C, C++
C++++++ !!!!...

Hirarchie
de traduction

Chargeur
en Mmoire

Compilateur
Programme en
Langage assembleur

Assembleur
Programme en
Langage machine

Change (int v[], int k[]);


{ int temp;
Change :
temp=v[k];
muli $2,$5,4
v[k]=v[k+1];
Compilateur add $2,$4,$2
v[k+1]=temp;
lw
$15,0($2)
}
lw
$16,4($2)
sw
$16,0($2)
sw
$15,4($2)
Hirarchie
jr
$31

de traduction

Chargeur
en Mmoire

Assembleur
0000011010000100010000110
1000100000000000000000000
0001100110100101010000100
0001100000001110000000000
0010000111001010101010000
0010000000000001000000000
1001001010100000010101011
6

Problmatique du jeu dinstructions


?

Conception
du Logiciel

Conception dun
systme informatique
Conception
du Matriel

Problmatique du jeu dinstructions


?

Conception
du Logiciel

ISA

Architecture du Jeu
dinstructions

Conception
du Matriel

Complex Instruction Set Computer


?

Conception
du Logiciel

Simplification de
la conception du
logiciel

CISC

Conception
du Matriel

Reduced Instruction Set Computer


?

Conception
du Logiciel

Rle important du compilateur

RISC
Conception
du Matriel

Simplification de
la conception du
matriel
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)
11

Notion darchitecture RISC et


CISC

Larchitecture
CISC:
Cest
une
architecture avec une grande varit
dinstructions o le P 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
(Exemple:8086,68000).
12

Notion darchitecture RISC et


CISC
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,
plutt que de coder une opration complexe
par plusieurs instructions plus petites (qui
demanderaient autant daccs mmoire).
13

Notion darchitecture RISC et


CISC
Des
tudes
statistiques menes au cours des
annes 70 ont montr que les
programmes
gnrs
par
les
compilateurs se contentaient le plus
souvent d'affectations, d'additions et
de multiplications par des constantes.

Larchitecture

RISC:

14

Notion darchitecture RISC et


CISC
Ainsi, 80% des traitements des
langages de haut niveau faisaient
appel
seulement 20% des
instructions du microprocesseur.
Do lide de rduire le jeu
dinstructions.

15

Notion darchitecture RISC et


CISC
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 (Exemple : MIPS,SPARC).

16

Notion darchitecture RISC et


CISC
8086

MIPS

Add [BX],300

Lw $1,0($3)
Addi $2,$1,300
Sw $2,0($3)

17

Notion darchitecture RISC et


CISC
Architecture RISC
instructions simples ne
prenant quun seul cycle
instructions au format fixe
dcodeur simple (cbl)
beaucoup de registres
seules les instructions
LOAD et STORE ont accs
la mmoire
peu de modes dadressage
compilateur complexe

Architecture CISC
instructions complexes
prenant plusieurs cycles
instructions au format variable
dcodeur complexe
(microcode)
peu de registres
toutes les instructions sont
susceptibles daccder la
mmoire
beaucoup de modes
dadressage
compilateur simple

18

Performances
Les performances des machines sont dfinies par
trois facteurs cls :
le nombre dinstructions
le temps de cycles dhorloge
le nombre de cycles dhorloge par instruction.

Le compilateur et larchitecture de jeu


dinstructions dterminent le nombre
dinstructions requises pour un programme donn.
La mise en uvre dfinis le temps de cycle
dhorloge, ainsi que le nombre de cycles dhorloge
par instruction.
19

Classification des jeux dinstruction


Selon la faon dont l'unit arithmtique obtient ses
oprandes, on distingue diffrents types de
machines :
Les machines accumulateur : ces machines
ont un seul registre nomm accumulateur dans
lequel le rsultat d'un calcul peut tre stock.
Toute opration se fait alors entre une case
mmoire et l'accumulateur, le rsultat tant
remise dans l'accumulateur.(Exp: Le P 6502)
squence de code pour C=A+B
Load Acc,A
Add Acc,B
Store C,Acc

Mem
Mem
AA
BB
CC

1
Acc

++

3
20

Classification des jeux dinstruction


Les machines pile : ces machines n'ont pas de
vrais registres. Toutes les oprations effectuent
un calcul en prenant leurs oprandes sur la pile
et en remettant le rsultat sur la pile. Cette
architecture est considre comme peu efficace,
elle est rarement employe.(Exp: calculatrice HP)
squence de code pour C=A+B
Push A
Push B
Add
Pop C
21

Classification des jeux dinstruction


Les machines registres gnraux : ce sont des
machines qui disposent de plusieurs registres, qui
peuvent tous jouer le rle d'accumulateur. Le
rsultat d'un calcul peut tre stock dans un registre
ou directement en mmoire.(Exp: Le P 8086).
squence de code pour C=A+B
Load r1,A
Add r1,B
Store C,r1

Mem
Mem
AA
BB
CC

r2
r1

++
3

22

Classification des jeux dinstruction


Les machines chargement/rangement (Load/Store) :
La diffrence par rapport aux machines registres
gnraux est qu'ici les seules instructions qui accdent
la mmoire sont les instructions de chargement et de
rangement (instructions load et store).(Exp:Le P MIPS)

squence de code pour C=A+B


Load r1,A
Load r2,B
Add r3,r1,r2
Store C,r3

Mem
A
B
C

1
2
4

r1
r2
r3

+
3

23

Problmatique du jeu dinstructions


?

Conception
du Logiciel

Le jeu dinstruction doit tre le rsultat


de nombreux compromis entre : efficacit
efficacitdu
ducompilateur.
compilateur.
complexit
complexitdu
dumatriel.
matriel.
Flexibilit.
Flexibilit.
Vitesse.
Vitesse.
Conception
du Matriel

24

Problmatique du jeu dinstructions


?

Conception
du Logiciel

CO-DESIGN

Conception
du Matriel

25