Interface Matériel/logiciel
description
Transcript of Interface Matériel/logiciel
![Page 1: Interface Matériel/logiciel](https://reader036.fdocuments.fr/reader036/viewer/2022062314/56813ff5550346895dab161b/html5/thumbnails/1.jpg)
les instructions.1
Interface Matériel/logicielInterface Matériel/logiciel
Chemin de données
Mémoire
EntréesContrôle
Sorties
OrdinateurOrdinateur
![Page 2: Interface Matériel/logiciel](https://reader036.fdocuments.fr/reader036/viewer/2022062314/56813ff5550346895dab161b/html5/thumbnails/2.jpg)
les instructions.2
Interface Matériel/logicielInterface Matériel/logiciel
OrdinateurOrdinateur
ComCom pilateurpilateur
Chemin de données
Mémoire
EntréesContrôle
Sorties
![Page 3: Interface Matériel/logiciel](https://reader036.fdocuments.fr/reader036/viewer/2022062314/56813ff5550346895dab161b/html5/thumbnails/3.jpg)
les instructions.3
Interface Matériel/logicielInterface Matériel/logiciel
• Une des interface clé entre les différents niveaux d’abstraction est l’architecture de jeu d’instructions : c’est l’interface entre le matériel et le logiciel de plus bas niveau.
![Page 4: Interface Matériel/logiciel](https://reader036.fdocuments.fr/reader036/viewer/2022062314/56813ff5550346895dab161b/html5/thumbnails/4.jpg)
les instructions.4
PlanPlan
• Introduction
• Classification des jeux d’instructions
• Les opérations du matériel de l’ordinateur
• Les opérandes du matériel de l’ordinateur
• La représentation des instructions dans l’ordinateur
• Des instructions pour prendre des décisions
• Comment traiter les procédures au niveau matériel de l’ordinateur
• Un exemple pour tout regrouper
• Tableaux contre pointeurs
![Page 5: Interface Matériel/logiciel](https://reader036.fdocuments.fr/reader036/viewer/2022062314/56813ff5550346895dab161b/html5/thumbnails/5.jpg)
les instructions.5
IntroductionIntroduction
• Pour donner des ordres au matériel d’un ordinateur, il faut s’exprimer dans son langage. Les mots du langage d'une machine sont appelés des instructions, et son vocabulaire un jeu d’instructions.
• Les concepteurs d’ordinateurs ont un but commun : trouver un langage qui rende plus aisée la construction du matériel et du compilateur tout en maximisant les performances et en minimisant le coût.
• Le but du cours est de découvrir le jeu d’instructions de MIPS Computer Compagy.
![Page 6: Interface Matériel/logiciel](https://reader036.fdocuments.fr/reader036/viewer/2022062314/56813ff5550346895dab161b/html5/thumbnails/6.jpg)
les instructions.6
Classification des jeux d’instructionsClassification des jeux d’instructions
• Le type de stockage interneà l’UC estle critère le plus caractéristique. Les choixsont une pile, un accumulateur ou unensemble de registres.
• Pour des architectures à registres généraux deux caractéristiques essentielles divisent les architectures :
– nombre d’opérandes
– nombre d’opérandes mémoires
• Modèle d’exécution (n,m)– n : nombre d’opérandes par instruction
– m : nombre d’opérandes mémoire par instruction
Mem-Mem Registre(r-m) Registre(charg-rang)(3,3) (2,1) (3,0)
![Page 7: Interface Matériel/logiciel](https://reader036.fdocuments.fr/reader036/viewer/2022062314/56813ff5550346895dab161b/html5/thumbnails/7.jpg)
les instructions.7
Type Mémoire-Mémoire : VAXType Mémoire-Mémoire : VAX
(3,3) add c,a,b
La séquence de code pour C=A+B
MemABC
MemABC
++
• Avantages : Le code le plus compact. Ne gaspille pas des registres pour des données secondaires
• Inconvénients : Grande variation de la taille des instructions, grande variation du travail effectué par instruction. Les accès mémoire créent un goulot d’étranglement.
1
1
![Page 8: Interface Matériel/logiciel](https://reader036.fdocuments.fr/reader036/viewer/2022062314/56813ff5550346895dab161b/html5/thumbnails/8.jpg)
les instructions.8
Type Registre-mémoire : intel 80*86, 68000Type Registre-mémoire : intel 80*86, 68000
(2,1)Load r1,AAdd r1,BStore C,r1
La séquence de code pour C=A+B
1
2r1
MemABC
MemABC
++
12
3
3
• Avantages : Les données peuvent être obtenues sans chargement préalable.
• Inconvénients : Les opérandes ne sont pas équilibrées puisque l’opérande source est détruite.
![Page 9: Interface Matériel/logiciel](https://reader036.fdocuments.fr/reader036/viewer/2022062314/56813ff5550346895dab161b/html5/thumbnails/9.jpg)
les instructions.9
Type Registre-registre : PowerPC, MIPSType Registre-registre : PowerPC, MIPS
(3,0)Load r1,ALoad r2,BAdd r3,r2,r1Store C,r3
La séquence de code pour C=A+B
1
2r1r2r3
MemABC
MemABC
++
1
2
3
3
• Avantages : Codage simple d’instructions de longueur fixe.
• Inconvénients : Nombre d’instructions plus élevé que les architectures à références mémoire.
4
4
![Page 10: Interface Matériel/logiciel](https://reader036.fdocuments.fr/reader036/viewer/2022062314/56813ff5550346895dab161b/html5/thumbnails/10.jpg)
les instructions.10
Le jeu d’instructions MIPSLe jeu d’instructions MIPS
• Nous allons voir le langage de la machine : – Les opérations du matériel de l’ordinateur
– Les opérandes du matériel de l’ordinateur
– La représentation des instructions dans l’ordinateur
– Des instructions pour prendre des décisions
![Page 11: Interface Matériel/logiciel](https://reader036.fdocuments.fr/reader036/viewer/2022062314/56813ff5550346895dab161b/html5/thumbnails/11.jpg)
les instructions.11
Les opérations du matériel de l’ordinateurLes opérations du matériel de l’ordinateur
• Tout ordinateur doit être capable d’effectuer des opérations arithmétiques.
• La notation MIPS
• Cette notation est rigide en ce sens que chaque instruction arithmétique MIPS doit toujours avoir trois variables. Imposer à chaque instruction d’avoir trois opérandes est conforme au principe de simplicité du matériel. Le matériel pour un nombre variables d’opérandes est plus complexe que pour un nombre fixe.
op a,b,c
![Page 12: Interface Matériel/logiciel](https://reader036.fdocuments.fr/reader036/viewer/2022062314/56813ff5550346895dab161b/html5/thumbnails/12.jpg)
les instructions.12
Principe 1 de la conception du matérielPrincipe 1 de la conception du matériel
La simplicité favorise la régularitéLa simplicité favorise la régularité
![Page 13: Interface Matériel/logiciel](https://reader036.fdocuments.fr/reader036/viewer/2022062314/56813ff5550346895dab161b/html5/thumbnails/13.jpg)
les instructions.13
Les opérandes du matériel de l’ordinateurLes opérandes du matériel de l’ordinateur
• Les opérandes des instructions arithmétiques ne peuvent pas être des variables quelconques ; ils doivent provenir d’un nombre limité d’emplacements particuliers appelés registres.
• La taille d’un registre dans l’architecture MIPS est de 32 bits
• MIPS possède 32 registres, notés $0, $1, ...,$31
• Un très grand nombre de registres augmenterait le temps de cycle d’horloge parce que les signaux électroniques prennent plus de temps lorsqu’ils doivent voyager plus loin.
• Le concepteur doit trouver un juste équilibre entre le besoin des programmes et la volonté de concevoir un cycle court.
![Page 14: Interface Matériel/logiciel](https://reader036.fdocuments.fr/reader036/viewer/2022062314/56813ff5550346895dab161b/html5/thumbnails/14.jpg)
les instructions.14
Principe 2 de la conception du matérielPrincipe 2 de la conception du matériel
Le plus petit est le plus rapideLe plus petit est le plus rapide
![Page 15: Interface Matériel/logiciel](https://reader036.fdocuments.fr/reader036/viewer/2022062314/56813ff5550346895dab161b/html5/thumbnails/15.jpg)
les instructions.15
ExempleExemple
add $8,$17,$18 #Registre $8 contient g+h
add $9,$19,$20 #Registre $9 contient i+j
sub $16,$8,$9 # f reçoit $8-$9, ou (g+h)-(i+j)
f=(g+h)-(i+j);
Les variables f,g,h,i et j peuvent être assignées aux registres $16, $17,… $20. C’est au compilateur que revient cette tâche délicate.
![Page 16: Interface Matériel/logiciel](https://reader036.fdocuments.fr/reader036/viewer/2022062314/56813ff5550346895dab161b/html5/thumbnails/16.jpg)
les instructions.16
Allocation
• définition : L'allocation des ressources matérielles consiste à :
– - déterminer un ensemble de ressources matérielles nécessaires à l'implantation des opérations et des variables (allocation)
– -faire correspondre les opérations à des opérateurs, et les variables à des modules de mémorisation (assignation).
• objectif :– Minimiser la surface
– Minimiser le nombre de ressources matérielles et la connectique.
Allocation des registres
![Page 17: Interface Matériel/logiciel](https://reader036.fdocuments.fr/reader036/viewer/2022062314/56813ff5550346895dab161b/html5/thumbnails/17.jpg)
les instructions.17
Les transferts de donnéesLes transferts de données
• Les opérations arithmétiques n’ont lieu que dans les registres. MIPS doit donc disposer d’instructions qui transfèrent les données entre la mémoire et les registres.
ProcesseurProcesseur MémoireMémoire
Load
Store
![Page 18: Interface Matériel/logiciel](https://reader036.fdocuments.fr/reader036/viewer/2022062314/56813ff5550346895dab161b/html5/thumbnails/18.jpg)
les instructions.18
Les adressesLes adresses
• Pour accéder à ces données l’instruction doit fournir l’adresse.
• MIPS adresse les octets individuellement. Les adresses de mots contigus diffèrent donc de 4.
ProcesseurProcesseur
Adresse04812...
Donnée104584566660...
![Page 19: Interface Matériel/logiciel](https://reader036.fdocuments.fr/reader036/viewer/2022062314/56813ff5550346895dab161b/html5/thumbnails/19.jpg)
les instructions.19
Transfert de donnéeTransfert de donnée
• Chargement mot :
lw $1,100($2) – $1 = Mémoire[$2+100]
• Rangement mot :
sw $1,100($2) – Mémoire[$2+100] = $1
• Le registre $0 contient toujours la valeur 0
![Page 20: Interface Matériel/logiciel](https://reader036.fdocuments.fr/reader036/viewer/2022062314/56813ff5550346895dab161b/html5/thumbnails/20.jpg)
les instructions.20
ProblèmesProblèmes
• Beaucoup de programmes ont plus de variables que les machines n’ont de registres. Par conséquent, le compilateur cherche à conserver dans les registres les variables les plus souvent utilisées et place le reste en mémoire.
• Une instruction de transfert de données lit ou écrit une donnée seulement, et ne peut la modifier. Les données contenues dans les registres MIPS sont donc à la fois d’accès plus rapide et plus faciles à utiliser. Pour atteindre les performances élevées, les compilateurs MIPS doivent utiliser efficacement les registres.
![Page 21: Interface Matériel/logiciel](https://reader036.fdocuments.fr/reader036/viewer/2022062314/56813ff5550346895dab161b/html5/thumbnails/21.jpg)
les instructions.21
ExempleExemple
T[i]=h+T[i] ;
T est un tableau d’entiers.On suppose que la variable h est dans $18, $19 contient la valeur i, et que le tableau débute à l’adresse Tstart
muli $19,$19,4 #i=i*4
lw $8,Tstart($19) #reg temporaire $8 reçoit T[i]
add $8,$18,$8 #reg temporaire $8 reçoit h+T[i]
sw $8,Tstart($19) #on recopie h+T[i]dans T[i]
![Page 22: Interface Matériel/logiciel](https://reader036.fdocuments.fr/reader036/viewer/2022062314/56813ff5550346895dab161b/html5/thumbnails/22.jpg)
les instructions.22
Branchement conditionnelBranchement conditionnel
• branchement si égal
beq $1,$2,L si ($1==$2) aller en L
• branchement si non égal :
bne $1,$2,L si ($1!=$2) aller en L
![Page 23: Interface Matériel/logiciel](https://reader036.fdocuments.fr/reader036/viewer/2022062314/56813ff5550346895dab161b/html5/thumbnails/23.jpg)
les instructions.23
ExempleExemple
bne $19,$20,Else #aller en Else si i°jadd $16,$17,$18#f=g+h (sauté si i°j)j Exit #aller en Exit (jump)
Else:sub $16,$17,$18 #f=g-h (sauté si i=j)Exit:
if (i==j) f=g+h;
elsef=g-h;
f,g,h,i et j correspondent aux registres $16 à $20
![Page 24: Interface Matériel/logiciel](https://reader036.fdocuments.fr/reader036/viewer/2022062314/56813ff5550346895dab161b/html5/thumbnails/24.jpg)
les instructions.24
ExempleExemple
loop : mult $9,$19,$10 #reg temporaire $9=i*4
lw $8,Sstart($9) #reg temporaire $8=stock[i]
bne $8,$21,Exit #aller en Exit si sto ck[i]°k
add $19,$19,$20 #i=i+j
j Loop #aller en Loop
Exit:
While (stock[i]==k)i=i+j;
i,j et k correspondent aux registres $19 à $21, le tableau stock débute à Sstart,le registre $10 contient la valeur 4;
![Page 25: Interface Matériel/logiciel](https://reader036.fdocuments.fr/reader036/viewer/2022062314/56813ff5550346895dab161b/html5/thumbnails/25.jpg)
les instructions.25
La représentation des instructions dans l’ordinateurLa représentation des instructions dans l’ordinateur
• Les instructions sont stockées dans l’ordinateur sous forme d’une suite de signaux électroniques haute et basse tension et sont représentées sous forme de nombres
• Chaque partie d’une instruction peut être considérée comme un nombre à part entiers, chacun des segments est appelé un champ.
• On appelle cette décomposition le format d’instruction.
![Page 26: Interface Matériel/logiciel](https://reader036.fdocuments.fr/reader036/viewer/2022062314/56813ff5550346895dab161b/html5/thumbnails/26.jpg)
les instructions.26
Problématique du jeu d’instructionsProblématique du jeu d’instructions
?
Conception du Matériel
Conception du Logiciel
RISC
![Page 27: Interface Matériel/logiciel](https://reader036.fdocuments.fr/reader036/viewer/2022062314/56813ff5550346895dab161b/html5/thumbnails/27.jpg)
les instructions.27
Problématique du jeu d’instructionsProblématique du jeu d’instructions
?
Conception du Matériel
Conception du Logiciel
31-26 25-21 20-16 15-11 10-6 5-0decval fonctrdrtrs0p
![Page 28: Interface Matériel/logiciel](https://reader036.fdocuments.fr/reader036/viewer/2022062314/56813ff5550346895dab161b/html5/thumbnails/28.jpg)
les instructions.28
Les champs MIPSLes champs MIPS
Nous donnons des noms aux champs MIPS pour faciliter leur description
• op : opération correspondant à l’instruction
• rs : le premier registre opérande source
• rt : le second registre opérande source
• rd : le registre opérande destination ; il reçoit le résultat de l’opération
• decval : valeur du décalage
• fonct : fonction ; ce champ détermine la variante de l’opération décrite dans le champ op
31-26 25-21 20-16 15-11 10-6 5-0decval fonctrdrtrs0p
![Page 29: Interface Matériel/logiciel](https://reader036.fdocuments.fr/reader036/viewer/2022062314/56813ff5550346895dab161b/html5/thumbnails/29.jpg)
les instructions.29
Principe 3 de la conception d’un ordinateurPrincipe 3 de la conception d’un ordinateur
• Un problème se pose lorsqu’une instruction nécessite des champs plus longs que ceux que nous avons représentés ci-dessus. Par exemple, l’instruction de chargement spécifie deux registres et une adresse. Si l’adresse utilise l’un des champs à 5 bits, elle se limite à 32 emplacements.
• Un conflit se pose entre la volonté de parvenir à une longueur unique pour toutes les instructions et la volonté d’obtenir un format d'instruction unique.
![Page 30: Interface Matériel/logiciel](https://reader036.fdocuments.fr/reader036/viewer/2022062314/56813ff5550346895dab161b/html5/thumbnails/30.jpg)
les instructions.30
Principe 3 de la conception d’un ordinateurPrincipe 3 de la conception d’un ordinateur
Une bonne conception requiert des compromisUne bonne conception requiert des compromis
![Page 31: Interface Matériel/logiciel](https://reader036.fdocuments.fr/reader036/viewer/2022062314/56813ff5550346895dab161b/html5/thumbnails/31.jpg)
les instructions.31
Le langage machineLe langage machine
0 341320
Instruction de type R
31-26 25-21 20-16 15-11 10-6 5-0decval fonctrdrtrs0
Exemples :
Sub $1,$2,$3 signification $1=$2-$3
0 321320
add $1,$2,$3 signification $1=$2+$3
![Page 32: Interface Matériel/logiciel](https://reader036.fdocuments.fr/reader036/viewer/2022062314/56813ff5550346895dab161b/html5/thumbnails/32.jpg)
les instructions.32
Le langage machineLe langage machine
1001243
31-26 25-21 20-16 15-0
Instruction de chargement ou de rangement
adressertrs35 ou 43
Sw $1,100($2) signification : Mémoire($2+100)=$1
Exemples :
1001235
lw $1,100($2) signification : $1=Mémoire($2+100)
![Page 33: Interface Matériel/logiciel](https://reader036.fdocuments.fr/reader036/viewer/2022062314/56813ff5550346895dab161b/html5/thumbnails/33.jpg)
les instructions.33
Le langage machineLe langage machine
215 100
31-26 25-21 20-16 15-0
Instruction de branchement
rtrs4 adresse
bne $1,$2,100 signification : si ($1<>$2) aller en 100
Exemples :
214 100
beq $1,$2,100 signification : si ($1=$2) aller en 100
![Page 34: Interface Matériel/logiciel](https://reader036.fdocuments.fr/reader036/viewer/2022062314/56813ff5550346895dab161b/html5/thumbnails/34.jpg)
les instructions.34
L’utilisation de la mémoireL’utilisation de la mémoire
• Conventions adoptées sur un système MIPS :
• Segment de texte (détient les instructions du programme)
• Le segment de données est divisé en deux parties– Les données statiques (Variable globale, la taille est connue à la
compilation)
– Les données dynamiques (malloc)
• Autre partie : segment de pile du programme– Il se situe au sommet de l’espace adressable.
– Lorsque le programme dépose des valeurs sur la pile, le système d’exploitation étend le segment de pile vers le bas.
![Page 35: Interface Matériel/logiciel](https://reader036.fdocuments.fr/reader036/viewer/2022062314/56813ff5550346895dab161b/html5/thumbnails/35.jpg)
les instructions.35
L’utilisation de la mémoireL’utilisation de la mémoire
Réservé
D DynamiquesD Statiques
7fffffff
10000000
400000
Segment de pile
Segment de données
Segment de texte
![Page 36: Interface Matériel/logiciel](https://reader036.fdocuments.fr/reader036/viewer/2022062314/56813ff5550346895dab161b/html5/thumbnails/36.jpg)
les instructions.36
Les appels de procéduresLes appels de procédures
Void toto(){titi();
}
Void titi(){lolo();
}
![Page 37: Interface Matériel/logiciel](https://reader036.fdocuments.fr/reader036/viewer/2022062314/56813ff5550346895dab161b/html5/thumbnails/37.jpg)
les instructions.37
Appels et retoursAppels et retours
Toto Titi Lolo
Retour 1
Retour 2
![Page 38: Interface Matériel/logiciel](https://reader036.fdocuments.fr/reader036/viewer/2022062314/56813ff5550346895dab161b/html5/thumbnails/38.jpg)
les instructions.38
Les appels de procéduresLes appels de procédures
jal AdresseProcedure :Affecte un saut à une adresse donnée en sauvegardant
simultanément l’adresse de l’instruction suivante dans le registre $31
jr $31Instruction qui fait un saut de retour
Void toto(){titi();
}
Void titi(){lolo();
}
![Page 39: Interface Matériel/logiciel](https://reader036.fdocuments.fr/reader036/viewer/2022062314/56813ff5550346895dab161b/html5/thumbnails/39.jpg)
les instructions.39
Sauvegarde et restitution de l’adresse de retourSauvegarde et restitution de l’adresse de retour
$24
$31toto:...
...jal titi...
titi:......add $29,$29,$24
sw $31,0($29)jal lolo
lw $31,0($29)sub $29,$29,$24...jr $31
lolo:......jr $31
Mémoire
$29
Valeur pour ajusterSommet P
![Page 40: Interface Matériel/logiciel](https://reader036.fdocuments.fr/reader036/viewer/2022062314/56813ff5550346895dab161b/html5/thumbnails/40.jpg)
les instructions.40
Sauvegarde et restitution de l’adresse de retourSauvegarde et restitution de l’adresse de retour
$24
$31toto:...
...jal titi...
titi:......add $29,$29,$24
sw $31,0($29)jal lolo
lw $31,0($29)sub $29,$29,$24...jr $31
lolo:......jr $31
Mémoire
$29
Valeur pour ajusterSommet P
![Page 41: Interface Matériel/logiciel](https://reader036.fdocuments.fr/reader036/viewer/2022062314/56813ff5550346895dab161b/html5/thumbnails/41.jpg)
les instructions.41
Après que toto ai appelé titiAprès que toto ai appelé titi
$29
$31
ad retour titiMémoire
toto:......jal titi...
titi:......add $29,$29,$24
sw $31,0($29)jal lolo
lw $31,0($29)sub $29,$29,$24...jr $31
lolo:......jr $31
![Page 42: Interface Matériel/logiciel](https://reader036.fdocuments.fr/reader036/viewer/2022062314/56813ff5550346895dab161b/html5/thumbnails/42.jpg)
les instructions.42
Juste avant que titi n’appelle loloJuste avant que titi n’appelle lolo
$29
$31
ad retour titiMémoire
toto:......jal titi...
titi:......add $29,$29,$24
sw $31,0($29)jal lolo
lw $31,0($29)sub $29,$29,$24...jr $31
lolo:......jr $31
![Page 43: Interface Matériel/logiciel](https://reader036.fdocuments.fr/reader036/viewer/2022062314/56813ff5550346895dab161b/html5/thumbnails/43.jpg)
les instructions.43
Juste avant que titi n’appelle loloJuste avant que titi n’appelle lolo
$29
$31
ad retour titi
Mémoiread retour titi
toto:......jal titi...
titi:......add $29,$29,$24
sw $31,0($29)jal lolo
lw $31,0($29)sub $29,$29,$24...jr $31
lolo:......jr $31
![Page 44: Interface Matériel/logiciel](https://reader036.fdocuments.fr/reader036/viewer/2022062314/56813ff5550346895dab161b/html5/thumbnails/44.jpg)
les instructions.44
AppelAppel
$29
$31
ad retour titi
Mémoiread retour lolo
toto:......jal titi...
titi:......add $29,$29,$24
sw $31,0($29)jal lolo
lw $31,0($29)sub $29,$29,$24...jr $31
lolo:......jr $31
![Page 45: Interface Matériel/logiciel](https://reader036.fdocuments.fr/reader036/viewer/2022062314/56813ff5550346895dab161b/html5/thumbnails/45.jpg)
les instructions.45
Après que titi ait appelé loloAprès que titi ait appelé lolo
$29
$31
ad retour titi
Mémoiread retour lolo
toto:......jal titi...
titi:......add $29,$29,$24
sw $31,0($29)jal lolo
lw $31,0($29)sub $29,$29,$24...jr $31
lolo:......jr $31
![Page 46: Interface Matériel/logiciel](https://reader036.fdocuments.fr/reader036/viewer/2022062314/56813ff5550346895dab161b/html5/thumbnails/46.jpg)
les instructions.46
$29
$31
ad retour titi
Mémoiread retour lolo
toto:......jal titi...
titi:......add $29,$29,$24
sw $31,0($29)jal lolo
lw $31,0($29)sub $29,$29,$24...jr $31
lolo:......jr $31
![Page 47: Interface Matériel/logiciel](https://reader036.fdocuments.fr/reader036/viewer/2022062314/56813ff5550346895dab161b/html5/thumbnails/47.jpg)
les instructions.47
Juste avant que titi ne retourneJuste avant que titi ne retourne
$29
$31
ad retour titi
Mémoiread retour lolo
toto:......jal titi...
titi:......add $29,$29,$24
sw $31,0($29)jal lolo
lw $31,0($29)sub $29,$29,$24...jr $31
lolo:......jr $31
![Page 48: Interface Matériel/logiciel](https://reader036.fdocuments.fr/reader036/viewer/2022062314/56813ff5550346895dab161b/html5/thumbnails/48.jpg)
les instructions.48
Juste avant que titi ne retourneJuste avant que titi ne retourne
$29
$31
ad retour titi
Mémoiread retour titi
toto:......jal titi...
titi:......add $29,$29,$24
sw $31,0($29)jal lolo
lw $31,0($29)sub $29,$29,$24...jr $31
lolo:......jr $31
![Page 49: Interface Matériel/logiciel](https://reader036.fdocuments.fr/reader036/viewer/2022062314/56813ff5550346895dab161b/html5/thumbnails/49.jpg)
les instructions.49
Retour à totoRetour à toto
$29
$31
ad retour titi
Mémoiread retour titi
toto:......jal titi...
titi:......add $29,$29,$24
sw $31,0($29)jal lolo
lw $31,0($29)sub $29,$29,$24...jr $31
lolo:......jr $31
![Page 50: Interface Matériel/logiciel](https://reader036.fdocuments.fr/reader036/viewer/2022062314/56813ff5550346895dab161b/html5/thumbnails/50.jpg)
les instructions.50
Retour à totoRetour à toto
$29
$31
ad retour titi
Mémoiread retour titi
toto:......jal titi...
titi:......add $29,$29,$24
sw $31,0($29)jal lolo
lw $31,0($29)sub $29,$29,$24...jr $31
lolo:......jr $31
![Page 51: Interface Matériel/logiciel](https://reader036.fdocuments.fr/reader036/viewer/2022062314/56813ff5550346895dab161b/html5/thumbnails/51.jpg)
les instructions.51
Les autres styles d’adressageLes autres styles d’adressage
• Les concepteurs de MIPS ont fourni des moyens supplémentaires d’accéder aux opérandes.
• MIPS permet de rendre plus rapide l’accès aux constantes de petite taille par l’adressage immédiat
• MIPS rend plus efficace les branchements relatif à CP. Un branchement tel que CP = registre + adresse de branchement permet à un programme d’avoir une taille de 232 instructions.
![Page 52: Interface Matériel/logiciel](https://reader036.fdocuments.fr/reader036/viewer/2022062314/56813ff5550346895dab161b/html5/thumbnails/52.jpg)
les instructions.52
Principe 4 de la conception des ordinateursPrincipe 4 de la conception des ordinateurs
Faire en sorte que les cas les plus fréquents soient les plus rapides.Faire en sorte que les cas les plus fréquents soient les plus rapides.
![Page 53: Interface Matériel/logiciel](https://reader036.fdocuments.fr/reader036/viewer/2022062314/56813ff5550346895dab161b/html5/thumbnails/53.jpg)
les instructions.53
Un exemple completUn exemple complet
Pour traduire du C en assembleur :
- Allouer des registres aux variables du programme.- Produire du code pour le corps de la procédure.- Préserver les registres à travers l’appel de la procédure
Convention MIPS :pour le passage de paramètres sont utilisés $4 à $7
![Page 54: Interface Matériel/logiciel](https://reader036.fdocuments.fr/reader036/viewer/2022062314/56813ff5550346895dab161b/html5/thumbnails/54.jpg)
les instructions.54
Un exemple completUn exemple complet
change(int v[], int k){
int temp;temp = v[k];v[k]=v[k+1];v[k+1]=temp;
}
Les paramètres v et k sont alloues à $4 et $5+ une variable temp en $15$2 contient la base du tableau
NB : les adresses de mots contigus différent de 4 et non de 1
![Page 55: Interface Matériel/logiciel](https://reader036.fdocuments.fr/reader036/viewer/2022062314/56813ff5550346895dab161b/html5/thumbnails/55.jpg)
les instructions.55
Un exemple completUn exemple complet
change(int v[], int k){
int temp;temp = v[k];v[k]=v[k+1];v[k+1]=temp;
}
muli $2,$5,4 #reg $2=k*4add $2,$4,$2 #reg $2=v+(k*4)
#reg $2 a l’adresse de v[k]lw $15,0($2) #reg $15 (temp)=v[k]lw $16,4($2) #reg $16=v[k+1] ; fait référence à
#l’élément suivant de vsw $16,0($2) #v[k]=registre $16sw $15,4($2) #v[k+1]=registre $15 (temp)
![Page 56: Interface Matériel/logiciel](https://reader036.fdocuments.fr/reader036/viewer/2022062314/56813ff5550346895dab161b/html5/thumbnails/56.jpg)
les instructions.56
Un exemple completUn exemple complet
change(int v[], int k){
int temp;temp = v[k];v[k]=v[k+1];v[k+1]=temp;
}
Préserver les registres à travers l’appel de procédure
l’appelé sauvegarde : les registres $2,$15,$16 sont modifiés ->
addi $29,$29,-12 # on ajuste la tête de pilesw $2,0($29) #range $2 au sommetsw $15,4($29) #range $15 au sommet sw $16,8($29) #range $16 au sommet
-12 car la pile croit des adresses élevées aux adresses bases
![Page 57: Interface Matériel/logiciel](https://reader036.fdocuments.fr/reader036/viewer/2022062314/56813ff5550346895dab161b/html5/thumbnails/57.jpg)
les instructions.57
Un exemple completUn exemple completaddi $29,$29,-12 #on ajuste la tête de pilesw $2,0($29) #range $2 au sommetsw $15,4($29) #range $15 au sommet sw $16,8($29) #range $16 au sommet muli $2,$5,4 #reg $2=k*4add $2,$4,$2 #reg $2=v+(k*4)
#reg $2 a l’adresse de v[k]lw $15,0($2) #reg $15 (temp)=v[k]lw $16,4($2) #reg $16=v[k+1] ; fait référence à
#l’élément suivant de vsw $16,0($2) #v[k]=registre $16sw $15,4($2) #v[k+1]=registre $15 (temp)lw $2,0($29) #restitue $2 du sommetlw $15,4($29) #restitue $15 du sommet lw $16,8($29) #restitue $16 du sommetaddi $29,$29,12 # restitue la tête de pilejr $31 # retour à la procédure appelante
change:
![Page 58: Interface Matériel/logiciel](https://reader036.fdocuments.fr/reader036/viewer/2022062314/56813ff5550346895dab161b/html5/thumbnails/58.jpg)
les instructions.58
Pointeurs ou tableauxPointeurs ou tableaux
Efface2(int *tab, int dim){int *p;for (p=&tab[0]; p<&tab[dim];p=p+1)
*p=0;}
Efface1(int tab[], int dim){int i;for (i=0; i<dim; i=i+1)
tab[i]=0;}
![Page 59: Interface Matériel/logiciel](https://reader036.fdocuments.fr/reader036/viewer/2022062314/56813ff5550346895dab161b/html5/thumbnails/59.jpg)
les instructions.59
Pointeurs ou tableauxPointeurs ou tableaux
Efface1(int tab[], int dim){int i;for (i=0; i<dim; i=i+1)
tab[i]=0;}
move $2,0 #i=0loop1: muli $14,$2,4 #$14=i*4
add $3,$4,$14 #$3=adresse de tab [i]sw $0,0($3) #tab[i]=0addi $2,$2,1 #i=i+1slt $6,$2,$5 #$6=(i<dim)bne $6,$0,loop1 #si (i<dim]) aller en loop1
tab et dim sont dans $4 et $5, i est dans $2
![Page 60: Interface Matériel/logiciel](https://reader036.fdocuments.fr/reader036/viewer/2022062314/56813ff5550346895dab161b/html5/thumbnails/60.jpg)
les instructions.60
Pointeurs ou tableauxPointeurs ou tableaux
move $2,$4 #p=adresse de tab[0]muli $14,$5,4 #$14=dim*4add $3,$4,$14 #$3= adresse de tab[dim]
loop2: sw $0,0($2) #mémoire[p]=0addi $2,$2,4 #p=p+4slt $6,$2,$3 #$6=(p<tab[dim])bne $6,$0,loop2 #si (p<tab[dim]) aller en loop2
tab et dim sont dans $4 et $5 p est dans $2
Efface2(int *tab, int dim){int *p;for (p=&tab[0]; p<&tab[dim];p=p+1)
*p=0;}
Le nombre d’instructions exécuter à chaque itération passe de 6 à 4
![Page 61: Interface Matériel/logiciel](https://reader036.fdocuments.fr/reader036/viewer/2022062314/56813ff5550346895dab161b/html5/thumbnails/61.jpg)
les instructions.61
Illusions et piègesIllusions et pièges
• Illusions : des instructions plus puissantes signifient des performances plus élevées.
• Piège : écrire en langage assembleur pour obtenir les performances les plus élevées.
• Piège : Oublier que les adresses de mots contigus en mémoire dans les machines avec adressage d’un octet ne différent pas de 1.
![Page 62: Interface Matériel/logiciel](https://reader036.fdocuments.fr/reader036/viewer/2022062314/56813ff5550346895dab161b/html5/thumbnails/62.jpg)
les instructions.62
ConclusionsConclusions
• Le choix d’un jeu d’instructions nécessite un équilibre délicat entre le nombre de cycles d’horloge nécessaires à une instruction et la vitesse de l’horloge.
• Quatre règles guident les concepteurs de jeux d’instructions dans la recherche de cet équilibre délicat :
![Page 63: Interface Matériel/logiciel](https://reader036.fdocuments.fr/reader036/viewer/2022062314/56813ff5550346895dab161b/html5/thumbnails/63.jpg)
les instructions.63
ConclusionsConclusions
• 1- Le plus petit est le plus rapide.– le nombre de registres est égale à 32.
• 2- La simplicité favorise la régularité– La taille des instructions est unique, impose que les trois opérandes
soient des registres dans les instructions arithmétiques, garde les champs correspondant à la même place dans chaque format d’instruction.
• 3- Une bonne conception requiert des compromis– fournir des adresses plus grandes et conservez une longueur unique
pour toutes les instructions.
• 4- Faire en sorte que les cas les plus fréquents soient les plus rapides.
– les cas les plus fréquents comprennent l’adressage relatif au CP pour les branchements conditionnels et l’adressage immédiat pour les constantes.
![Page 64: Interface Matériel/logiciel](https://reader036.fdocuments.fr/reader036/viewer/2022062314/56813ff5550346895dab161b/html5/thumbnails/64.jpg)
les instructions.64
![Page 65: Interface Matériel/logiciel](https://reader036.fdocuments.fr/reader036/viewer/2022062314/56813ff5550346895dab161b/html5/thumbnails/65.jpg)
les instructions.65
Question sur la définition du formatQuestion sur la définition du format
31-26 25-21 20-16 15-0
Instruction de chargement
rtrs4 adresse
Instruction de type R
31-26 25-21 20-16 15-11 10-6 5-0decval fonctrdrtrs0
Il est dit en introduction :
•Les concepteurs d’ordinateurs ont un but commun : trouver un langage qui rende plus aisée la construction du matériel et du compilateur tout en maximisant les performances et en minimisant le coût.
![Page 66: Interface Matériel/logiciel](https://reader036.fdocuments.fr/reader036/viewer/2022062314/56813ff5550346895dab161b/html5/thumbnails/66.jpg)
les instructions.66
Question sur la définition du formatQuestion sur la définition du format
31-26 25-21 20-16 15-0
Instruction de chargement
rtrs4 adresse
Instruction de type R
31-26 25-21 20-16 15-11 10-6 5-0decval fonctrdrtrs0
0 321320
add $1,$2,$3 signification $1=$2+$3
1001235
lw $1,100($2) signification : $1=Mémoire($2+100)
![Page 67: Interface Matériel/logiciel](https://reader036.fdocuments.fr/reader036/viewer/2022062314/56813ff5550346895dab161b/html5/thumbnails/67.jpg)
les instructions.67
QuestionQuestion
31-26 25-21 20-16 15-0
1232 1000
31-26 25-21 20-16 15-11 10-6 5-00 321320
N° RegistreD’écriture
Valeur
N° RegistreD’écriture
Valeur
rd ou rt
add $1,$2,$3 signification $1=$2+$3
lw $1,100($2) signification : $1 =Mémoire($2+100)
![Page 68: Interface Matériel/logiciel](https://reader036.fdocuments.fr/reader036/viewer/2022062314/56813ff5550346895dab161b/html5/thumbnails/68.jpg)
les instructions.68
QuestionQuestion
31-26 25-21 20-16 15-0
rtrs4 adresse
Instruction de type R
31-26 25-21 20-16 15-11 10-6 5-0decval fonctrdrtrs0
Instruction de chargement
N° RegistreD’écriture
Valeur
N° RegistreD’écriture
Valeur
rd ou rt
Registre écriture
![Page 69: Interface Matériel/logiciel](https://reader036.fdocuments.fr/reader036/viewer/2022062314/56813ff5550346895dab161b/html5/thumbnails/69.jpg)
les instructions.69
N° RegistreD’écriture
Valeur
N° RegistreD’écriture
Valeur
rd ou rt
QuestionQuestion
31-26 25-21 20-16 15-0
rs4 adresse
Instruction de type R
31-26 25-21 20-16 15-11 10-6 5-0decval fonctrtrdrs0
rt
Instruction de chargement
![Page 70: Interface Matériel/logiciel](https://reader036.fdocuments.fr/reader036/viewer/2022062314/56813ff5550346895dab161b/html5/thumbnails/70.jpg)
les instructions.70
N° RegistreD’écriture
Valeur
N° RegistreD’écriture
Valeur
QuestionQuestion
31-26 25-21 20-16 15-0
rs4 adresse
Instruction de type R
31-26 25-21 20-16 15-11 10-6 5-0decval fonctrtrdrs0
rt
Instruction de chargement
![Page 71: Interface Matériel/logiciel](https://reader036.fdocuments.fr/reader036/viewer/2022062314/56813ff5550346895dab161b/html5/thumbnails/71.jpg)
les instructions.71
PropositionProposition
31-26 25-21 20-16 15-11 10-6 5-0decval fonctrtrdrs0
Nous donnons des noms aux champs MIPS pour faciliter leur description
• op : opération correspondant à l’instruction
• rs : le premier registre opérande source
• rt : le second registre opérande source
• rd : le registre opérande destination ; il reçoit le résultat de l’opération
• decval : valeur du décalage
• fonct : fonction ; ce champ détermine la variante de l’opération décrite dans le champ op
![Page 72: Interface Matériel/logiciel](https://reader036.fdocuments.fr/reader036/viewer/2022062314/56813ff5550346895dab161b/html5/thumbnails/72.jpg)
les instructions.72
![Page 73: Interface Matériel/logiciel](https://reader036.fdocuments.fr/reader036/viewer/2022062314/56813ff5550346895dab161b/html5/thumbnails/73.jpg)
les instructions.73
Question sur la définition du formatQuestion sur la définition du format
31-26 25-21 20-16 15-0
Instruction de rangement
rtrs4 adresse
Instruction de type R
31-26 25-21 20-16 15-11 10-6 5-0decval fonctrtrdrs0
1001243
Sw $1,100($2) signification : Mémoire($2+100)=$1
0 323120
add $1,$2,$3 signification $1=$2+$3
Registre lecture
![Page 74: Interface Matériel/logiciel](https://reader036.fdocuments.fr/reader036/viewer/2022062314/56813ff5550346895dab161b/html5/thumbnails/74.jpg)
les instructions.74
N° RegistreN° Registre
Question sur la définition du formatQuestion sur la définition du format
Instruction de rangement
Instruction de type R
1001243
Sw $1,100($2) signification : Mémoire($2+100)=$1
0 323120
add $1,$2,$3 signification $1=$2+$3
1
3
![Page 75: Interface Matériel/logiciel](https://reader036.fdocuments.fr/reader036/viewer/2022062314/56813ff5550346895dab161b/html5/thumbnails/75.jpg)
les instructions.75
Question sur la définition du formatQuestion sur la définition du format
Instruction de rangement
Instruction de type R
1001243
Sw $1,100($2) signification : Mémoire($2+100)=$1
0 321120
add $1,$2,$3 signification $1=$2+$3
1
3
![Page 76: Interface Matériel/logiciel](https://reader036.fdocuments.fr/reader036/viewer/2022062314/56813ff5550346895dab161b/html5/thumbnails/76.jpg)
les instructions.76
Question sur la définition du formatQuestion sur la définition du format
Instruction de rangement
Instruction de type R
1001243
Sw $1,100($2) signification : Mémoire($2+100)=$1
0 321120
add $1,$2,$3 signification $1=$2+$3
1
3
Retour à la proposition AméricaineRetour à la proposition Américaine
![Page 77: Interface Matériel/logiciel](https://reader036.fdocuments.fr/reader036/viewer/2022062314/56813ff5550346895dab161b/html5/thumbnails/77.jpg)
les instructions.77
31-26 25-21 20-16 15-11 10-6 5-0decval fonct
rtrd
rs0
![Page 78: Interface Matériel/logiciel](https://reader036.fdocuments.fr/reader036/viewer/2022062314/56813ff5550346895dab161b/html5/thumbnails/78.jpg)
les instructions.78
Autre remarque : opération régulièreAutre remarque : opération régulière
![Page 79: Interface Matériel/logiciel](https://reader036.fdocuments.fr/reader036/viewer/2022062314/56813ff5550346895dab161b/html5/thumbnails/79.jpg)
les instructions.79
Autre remarque : opération régulièreAutre remarque : opération régulière
![Page 80: Interface Matériel/logiciel](https://reader036.fdocuments.fr/reader036/viewer/2022062314/56813ff5550346895dab161b/html5/thumbnails/80.jpg)
les instructions.80
Autre remarque : opération régulièreAutre remarque : opération régulière
![Page 81: Interface Matériel/logiciel](https://reader036.fdocuments.fr/reader036/viewer/2022062314/56813ff5550346895dab161b/html5/thumbnails/81.jpg)
les instructions.81
Autre remarque : opération régulièreAutre remarque : opération régulière
![Page 82: Interface Matériel/logiciel](https://reader036.fdocuments.fr/reader036/viewer/2022062314/56813ff5550346895dab161b/html5/thumbnails/82.jpg)
les instructions.82
Autre remarque : opération régulièreAutre remarque : opération régulière
![Page 83: Interface Matériel/logiciel](https://reader036.fdocuments.fr/reader036/viewer/2022062314/56813ff5550346895dab161b/html5/thumbnails/83.jpg)
les instructions.83
Autre remarque : opération régulièreAutre remarque : opération régulière