Vous êtes sur la page 1sur 10

CHAPITRE II.

Architecture de l’ensemble
d’instructions MIPS.

20
2.1 Objectifs

Les objectifs de ce chapitre :


• Identifier l’interface (la relation) entre le logiciel de plus bas niveau (langage machine) et
le matériel.
• classer les jeux d’instructions
• Identifier les opérations du matériel de l’ordinateur
• Identifier les opérandes du matériel de l’ordinateur
• Représenter l’instruction en format d’instruction

2.2 Problématique de conception des systèmes informatiques

L’ interface clé entre les différents niveaux d’abstraction c’est l’architecture de l’ensemble
d’instructions (ISA) comme le montre la figure 18.

Figure 19. Emplacement de ISA

Cette interface suit une hiérarchie de traduction entre la conception logicielle et la conception
matérielle donnée par la figure 20

21
Figure 20. Hiérarchie entre le SW et HW

Généralement, les concepteurs des systèmes informatiques ont un but commun :


trouver un langage qui rend plus aisée la construction du matériel et du compilateur
tout en maximisant les performances et en minimisant le coût.

2.3 Jeu d’instructions MIPS

Pour le language machine, nous devons connaitre


• 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 (Format d’instruction)

2.3.1 Opérations du matériel de l’ordinateur

Il est évident que tout ordinateur doit être capable d’effectuer des opérations
arithmétiques, logiques, de transfert des données et de branchement suite à une
décision prise par l’unité de contrôle, à titre d’exemple, en notation MIPS, l’instruction
add permet d’additionner deux opérandes (a et b ) et mettre le résultat dans une autre
opérande (c) suivant la forme suivante (Figure 21).

Figure 21. Opération add de MIPS

22
Les autres instructions arithmétiques, logiques et de branchement seront présentées
explicitement à la fin de ce chapitre.

2.3.2 Opérandes du matériel de l’ordinateur

Les opérandes des instructions arithmétiques et logiques 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 possède 32 registres, notés $0, $1, ...,$31 Les registres sont plus rapide que la
mémoire. Les registres sont plus facile à utiliser pour le compilateur. Les registres
peuvent contenir des variables. Donc cela permet de réduire le trafic au niveau de la
mémoire. Ces 32 registres sont intégrés dans un banc de registres dont le schéma
synoptique est donné par la figure 13 du premier chapitre. Ces registres généraux sont
interchangeables, sauf :
• le registre $0 qui vaut toujours 0, même après une écriture.
• Le registre $31, utilisé implicitement par certaines instructions pour
récupérer l'adresse de retour avant un saut.
Les autres registres ont des utilisations préférentielles, mais cela n'est strict que pour
communiquer avec d'autres programmes (exemple: utiliser des programmes en
librairies). Le tableau suivant illustre le nom et utilité de chaque registre.

Numéro
Nom Usage
de $
zero 0 Zéro (toujours)
at 1 Réservé par l'assembleur
v0 .. v1 2 .. 3 Retour de valeurs
a0 .. a3 4 .. 7 Passage d'arguments
t0 .. t7 8 .. 15 Temporaires non sauvegardés
s0.. s7 16 .. 23 Temporaires sauvegardés
t8.. t9 24 .. 25 Temporaires non sauvegardés
k0.. k1 26 .. 27 Réservés par le système
gp 28 Global Pointer
sp 29 Stack Pointer
fp 30 Frame Pointeur
ra 31 Return Address
Tableau 3. Les registres de l’architecture MIPS

23
Beaucoup de programmes ont plus de variables que les machines. Par conséquent, le
compilateur cherche à conserver dans les registres les variables les plus souvent
utilisées et place le reste en mémoire. On ne peut stocker qu'une petite quantité de
données dans les registres, la mémoire d'un ordinateur contient des millions de données
élémentaires. Et les structures de données comme les tableaux qui sont stockées en
mémoire. 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.

Figure 22. Opérations de transfert entre la mémoire centrale et le processeur

Depuis 1980 toutes les machines utilisent des adresses au niveau de l’octet (8 bits).
Avec l’architecture MIPS, on peut lire un mot de 32 bits comme 4 octets en un seul coup,

Figure 23. Mapping de données dans la mémoire

Pour le MIPS, le transfert des données se fait suivant la notion Big endian alors que pour
le 8086, il se fait en little endian comme le montre la figure 24.

Figure 24. Exemple de différence de transfert entre MIPS et 8086

Pour l’architecture MIPS, les instructions de transfert des mots à 32 bits sont LW et SW
(Figures 25 et 26).

24
Figure 25. Chargement : instruction et niveau RTL

Figure 26. Rangement : Instruction et niveau RTL

Alors que les instructions de branchement conditionnel sont représentées par BEQ et
BNE. Les instructions et leurs niveaux RTL sont donnés par les figures 27 et 28.

Figure 27. Branchement si égal ; instruction et niveau RTL

Figure 28. Branchement si différent : instruction et niveau RTL

2.4 Représentation des instructions

Pour l’architecture MIPS, une instruction est représentée par un format binaire codé sur
32 bits stocké dans la mémoire, ce format est constitué de plusieurs champs incluant le
code opératoire de l’instruction, les numéros de registres source, transfert et
destination, une valeur constante, le nombre d’instructions à sauter …. Ce format va être
décodé par le séquenceur afin d’envoyer au chemin de données les signaux de contrôle
adéquats pour exécuter cette ladite instruction. Pour l’architecture MIPS, il existe 3
types de format d’instructions

• Type R
• Type I
• Type J

2.4.1 Représentation d’instructions de Type R

Le format R est constitué de 6 champs. Les instructions de format R ont toutes un code-
op de 0. Ces instructions ont trois registres opérandes : rs, rt, rd. Les champs rs (registre
source) et rt (registre transfert) sont les sources et rd (registre destination) est la

25
destination. La fonction UAL se trouve dans le champ fonct et est décodée par le modèle
de contrôle de l'UAL de la section précédente. Les instructions de cette forme que nous
réalisons sont les instructions add, sub,or et slt (set on less than, positionner
lorsqu’inférieur). Le champ decval sera utilisé pour les décalages. Le format de type R
est donné par la figure suivante

Figure 29. Format d’instruction de type R

A tire d’exemples, l’instruction add ait une fonction 32 et l’instruction sub admet une
fonction 34.

Figure 30. Exemples de format R

Ce type de format est constitué de 4 champs. Le format d'instruction pour les


instructions de chargement (code-op=35) et de rangement (code-op=43). Le registre rs
est le registre de base ajouté au champ d'adresse 16 bits pour former l'adresse mémoire.
Pour les chargements, rt est le registre destination de la valeur chargée. Pour les
rangements, rt est le registre source dont la valeur doit être stockée en mémoire.

Figure 31. Format d’instruction de type I

Un exemple est donné pour une instruction de chargement du registre 1 par le contenu
de la mémoire d’adresse (100 plus la valeur du registre 2).

26
Figure 32. Format I avec LW et SW

Le format d'instruction pour le branchement si égal (code-op=4) , si non égal (code-


op=5). Les registres rs et rt sont les registres source dont on teste l'égalité. Le champ
d'adresse 16 bits, décalé, est ajouté au CP pour calculer l'adresse de destination du
branchement.

Figure 33. Format I avec Beq et Bne

Le format de type J est constitué de deux champs (Figure …), un champs pour adresse
sur 26 bits de bit 0 au bit 25 et le reste pour le code opératoire par exemple le code
opératoire de l’instruction J est 2.

Figure 34. Format d’instruction de type J

2.4.2 Instructions MIPS


Les instructions MIPS sont réparties en 4 catégories

• Arithmétiques (Figure 35)


• Logiques (Figure 36)
• Transfert (Figure 37)
• Branchement (Figure 38)

27
Figure 35. Instructions arithmétiques MIPS

Figure 36. Instructions logiques MIPS

28
Figure 37. Instructions de transfert MIPS

Figure 38. Instructions de branchement MIPS

29

Vous aimerez peut-être aussi