Architecture des ordinateurs
Licence Informatique - Universit´
e de Provence
Jean-Marc Talbot
L3 Informatique - Universit´
e de Provence () Architecture des ordinateurs 211 / 256
Langage d’assemblage
L3 Informatique - Universit´
e de Provence () Architecture des ordinateurs 212 / 256
Processeur et Programmation
D’un point de vue de la programmation, le processeur offre
un certain jeu d’instructions qu’il sait ex´
ecuter.
un certain nombre de registres :
Iutilisable/modifiable directement par le programme : registres de
travail - pointeur de segment
registres vu par le jeu d’instructions
Imodifiable indirectement par le programme : compteur ordinal -
pointeur de pile - registre d’instruction - registre d’ ´
etats
registres manipul´
es implicitement par le jeu d’instructions
un certain nombre de mani `
ere d’acc´
eder `
a la m´
emoire : modes
d’adressage
L3 Informatique - Universit´
e de Provence () Architecture des ordinateurs 213 / 256
Langage machine (I)
Le langage machine est le langage directement interpr ´
etable par le
processeur.
Le langage est d´
efini par un ensemble d’instructions que le
processeur ex´
ecute directement
Chaque instruction correspond `
a un nombre (cod´
e selon le cas sur un
octet, un mot de 16 bits, ... : le format de l’instruction) et se
d´
ecompose en
une partie codant l’op ´
eration `
a ex´
ecuter appel´
eopcode ou code
op´
eration
une partie pour les op ´
erandes
Code op Operandes
L3 Informatique - Universit´
e de Provence () Architecture des ordinateurs 214 / 256
Langage machine (II)
Un programme en langage machine est une suite de mots codant
op´
erations et op´
erandes
adresse programme
0x2024 00F1
0x2026 00AA
0x2028 00F1
0x202A 0B28
0x202C 00F1
0x202E 0C91
0x2030 0001
Chaque processeur poss`
ede son propre langage machine.
L3 Informatique - Universit´
e de Provence () Architecture des ordinateurs 215 / 256
Jeu d’instructions
Le jeu d’instructions est l’ensemble des op´
erations ´
el´
ementaires
qu’un processeur peut accomplir.
Le type de jeu d’instructions d’un processeur d ´
etermine son
architecture.
Deux types d’architectures
RISC (Reduced Instruction Set Computer)
PowerPC, MIPS, Sparc
CISC (Complex Instruction Set Computer)
Pentium
L3 Informatique - Universit´
e de Provence () Architecture des ordinateurs 216 / 256
RISC/CISC (I)
RISC :
Ijeu d’instructions de taille limit ´
ee
Iinstructions simples
Iformat des instructions petit et fix ´
e
Imodes d’adressage r´
eduits
CISC :
Ijeu d’instructions de taille importante
Iinstructions pouvant ˆ
etre complexes
Iformat d’instructions variables (de 1 `
a 5 mots)
Imodes d’adressages complexes.
L3 Informatique - Universit´
e de Provence () Architecture des ordinateurs 217 / 256
RISC/CISC (II)
CISC
programmation de plus haut niveau
programmation plus compacte (´
ecriture plus rapide et plus ´
el´
egante
des applications)
moins d’occupation en m´
emoire et `
a l’ex´
ecution
complexifie le processeur
taille des instructions ´
elev´
ee et variable : pas de structure fixe
ex´
ecution des instructions : complexe et peu performante.
RISC
instructions de format standard
traitement plus efficace
possibilit´
e de pipeline plus efficace
programmes plus volumineux
compilation plus compliqu´
ee
L3 Informatique - Universit´
e de Provence () Architecture des ordinateurs 218 / 256
Modes d’adressage (I)
Les instructions du langage machine manipulent des donn ´
ees. Selon
o`
u ces donn´
ees se trouvent, on parle de diff ´
erents modes
d’adressage.
Code op Operandes
Comment interpr´
eter Operandes pour trouver les donn´
ees de
l’instruction Code op ?
adressage implicite : l’instruction op `
ere sur une donn´
ee qui se
trouve `
a un emplacement pr´
ecis et d´
etermin´
e.
Imanipulation du registre d’´
etats (Pentium)
adressage par registres :Operandes contient le(s) num´
ero(s) du
(des) registre(s) o`
u se trouvent les donn´
ees manipul´
ees par
l’instruction.
L3 Informatique - Universit´
e de Provence () Architecture des ordinateurs 219 / 256
Modes d’adressage (II)
adressage direct (ou direct restreint) :Operandes est l’adresse
(ou un fragment de l’adresse) o`
u se trouve la donn´
ee en m´
emoire.
adressage relatif :Operandes contient un d´
eplacement relatif par
rapport `
a une adresse qui se trouve dans un registre pr´
ecis (par
exemple, le compteur ordinal PC).
adressage indirect :Operandes contient le num´
ero d’un registre
dont le contenu est l’adresse o`
u se trouve la donn´
ee en m´
emoire.
adressage (indirect) index´
e:Operandes contient le num´
ero d’un
registre contenant une adresse a. La donn´
ee est en m´
emoire `
a
l’adresse a+i, o`
uiest le contenu d’un autre registre dans
Operandes ou d’un registre sp´
ecifique, appel´
eregistre d’index
adressage imm´
ediat :Operandes est la valeur utilis´
ee par
l’instruction
L3 Informatique - Universit´
e de Provence () Architecture des ordinateurs 220 / 256
D’un programme de haut niveau `
a son ex´
ecution
programme C .c
Compilateur
module langage machine .o
Editeur de lien librairies langage machine .o
programme langage machine .exe
Chargeur
m´
emoire
L3 Informatique - Universit´
e de Provence () Architecture des ordinateurs 221 / 256
Cycle d’ex´
ecution d’une instruction
1R´
ecup´
erer (en m´
emoire) l’instruction `
a ex´
ecuter :
RI M´
emoire[PC]
L’instruction `
a ex´
ecuter est pr´
esente en m´
emoire `
a l’adresse
contenue dans le compteur de programme PC et est plac´
e dans
le registre d’instruction RI.
2Le compteur de programme est incr´
ement´
e : PC PC +4
Par d´
efaut, la prochaine instruction `
a ex´
ecuter est la suivante en
m´
emoire (sauf si l’instruction est un saut)
3L’instruction est d ´
ecod´
ee : On identifie les op´
erations qui vont
devoir ˆ
etre r´
ealis´
ees pour ex´
ecuter l’instruction
4L’instruction est ex´
ecut´
ee : elle peut modifier les registres
(op´
erations arithm´
etiques - lecture en m´
emoire), la m´
emoire
(´
ecriture), le registre PC (instructions de saut)
L3 Informatique - Universit´
e de Provence () Architecture des ordinateurs 222 / 256
Assembleur
Le langage assembleur ou assembleur est le langage de
programmation.
C’est une version lisible par un humain du langage machine, obtenu
en remplac¸ant les valeurs enti`
eres du langage machine par des
mn´
emoniques (instruction du langage assembleur).
Pour un mˆ
eme langage machine, il peut exister diff´
erents langages
assembleur : variation sur la syntaxe.
assembleur : programme qui transforme du langage assembleur en
langage machine.
L3 Informatique - Universit´
e de Provence () Architecture des ordinateurs 223 / 256
Assembleur MIPS
Assembleur du processeur MIPS R2000 (processeur de type RISC)
processeur MIPS :
NEC, SGI, console (Sony PSP, PS2), AdslBox (FreeBox, NeufBox)
Assembleur proche des autres assembleurs RISC
L3 Informatique - Universit´
e de Provence () Architecture des ordinateurs 224 / 256
Processeur MIPS
Processeur 32 bits constitu´
e de
32 registres de 32 bits
une m´
emoire vive adressable de 232 octets
un compteur de programmes PC (Program Counter) sur 32 bits
un registre d’instruction RI sur 32 bits
le programme est stock´
e en m´
emoire
l’adresse de l’instruction en cours d’ex´
ecution est stock´
ee dans le
registre PC
l’instruction en cours d’ex´
ecution est stock´
ee dans le registre RI
NB : une instruction est cod ´
ee sur 32 bits.
L3 Informatique - Universit´
e de Provence () Architecture des ordinateurs 225 / 256
M´
emoire
M´
emoire de 232 octets = 230 mots de 32 bits
Les mots m´
emoires sont adress´
es par des adresses qui sont des
multiples de 4
bus d’adresses de 32 bits
bus de donn´
ees de 8 bits
L3 Informatique - Universit´
e de Provence () Architecture des ordinateurs 226 / 256
Registres MIPS
Les 32 registres du processeur MIPS sont :
Nom Num´
ero Description
$zero 0 constante 0
$at 1 r´
eserv´
e`
a l’assembleur
$v0,$v1 2-3 r´
esultats d’´
evaluation
$a0,..,$a3 4-7 arguments de proc´
edure
$t0,..,$t7 8-15 valeurs temporaires
$s0,..,$s7 16-23 sauvegardes
$t8,$t9 24-25 temporaires
$k0,$k1 26-27 r´
eserv´
e pour les interruptions
$gp 28 pointeur global
$sp 29 pointeur de pile
$fp 30 pointeur de bloc
$ra 31 adresse de retour
L3 Informatique - Universit´
e de Provence () Architecture des ordinateurs 227 / 256
Arithm ´
etique (I)
Code C Assembleur
A = B + C add $s0, $s1, $s2
Toutes les op´
erandes se trouvent dans des registres.
Le choix des registres est d´
etermin´
e par le compilateur : ici, A7→$s0,
B7→$s1, C7→$s2.
Le r´
esultat est plac´
e dans $s0, la premi`
ere op´
erande
L3 Informatique - Universit´
e de Provence () Architecture des ordinateurs 228 / 256
Arithm ´
etique (II)
Code C Assembleur
A=B+C+D
E=F-A
add $t0, $s1, $s2
add $s0, $t0, $s3
sub $s4, $s5, $s0
Ici, A7→$s0, B7→$s1, C7→$s2, D7→$s3, E7→$s4, F7→$s5.
Toutes les op´
erations arithm´
etiques ont trois op´
erandes
N´
ecessaire car une instruction doit se coder sur un nombre born ´
e de
bits.
L3 Informatique - Universit´
e de Provence () Architecture des ordinateurs 229 / 256
Pseudo-instruction move
Comment traduire A=B ?
Sachant que A7→$s0, B7→$s1 et que le registre $0 vaut toujours 0 on
peut ´
ecrire :
add $s0, $0, $s1
Il vaut mieux utiliser l’instruction move :
Code C Assembleur
A = B move $s0, $s1
move est une pseudo-instruction : sa traduction en langage machine
est celle de add $s0, $0, $s1.
L3 Informatique - Universit´
e de Provence () Architecture des ordinateurs 230 / 256
1 / 12 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !