Académique Documents
Professionnel Documents
Culture Documents
TP3 Le Processeur
TP3 Le Processeur
Format de l’instruction
Le code opération
Les registres
Présentation
MIPS (Microprocessor without Interlocked Pipeline Stages) est un processeur 32 bits
industriel conçu dans les années 80. Son jeu d'instructions est de type RISC (Reduced
instruction set computer) développée par la compagnie MIPS Computer Systems Inc.
Il existe plusieurs réalisations industrielles de cette architecture (SIEMENS, NEC, LSI
LOGIC, SILICON GRAPHICS, etc...)
On les retrouve aussi dans plusieurs systèmes embarqués, comme les ordinateurs de poche,
les routeurs Cisco et les consoles de jeux vidéo (Nintendo 64 et Sony PlayStation, PlayStation
2 et PSP).
Le MIPS R4000 sorti en 1991 serait le premier processeur 64 bits. Il a été supporté par
Microsoft de Windows NT 3.1 jusqu'à Windows NT 4.0
.3 Adressage Mémoire :
L’unité adressable est l’octet.
La mémoire est vue comme un tableau d'octets qui contient les données et les
instructions.
Les adresses sont codées sur 32 bits (CO =32).
Les instructions sont codées sur 32 bits (RI=32).
Les échanges de données avec la mémoire se font par mot (4 octets consécutifs), demi-
mot (2 octets consécutifs), ou par octet.
1
L'adresse d'un mot de donnée ou d'une instruction doit être multiple de 4. L'adresse d'un
demi-mot doit être multiple de 2. (on dit que les adresses doivent être "alignées").
Format de l’instruction
Les formats d'encodage des instructions : 3 formats d'encodage sont possible dans
MIPS :
Chaque instruction MIPS est contenue sur 32 bits, l'encodage des 3 types
d'instructions possibles est décrit plus haut. Les instructions de type R (R pour Registre)
utilisent 3 registres pour les opérations arithmétiques et logiques, 2 registres sources
comme opérandes et un registre destination pour le résultat, 5 bits sont utilisés pour coder
2
le numéro du registre utilisé. Le type I (I pour immédiate) utilise aussi 2 opérandes et un
registre pour le résultat, la différence avec le type R est que l'un de ces opérandes est une
immédiate sur 16 bits, ils sont utilisés pour différents types d'instructions incluant aussi des
opérations arithmétiques et logiques. Le type J (J pour Jump, ou saut) est réserve pour
quelques instructions de saut.
3
Remarque : On peut observer sur les 3 formats, que seulement 3 manières d'utiliser
l'information dans une instruction MIPS sont possibles, soit l'information est dans un
registre de 32 bits, soit une immédiate de 16 bits, soit une adresse de 26 bits (Les 5 bits
de shampt sont particuliers aux instructions de shift).
Le code opération
Les registres de MIPS : la liste des 32 registres programmables de 32 bits sur MIPS, est
comme suite :
Remarque 1: Un registre peut être désigné par son nom ou son numéro.
Remarque 2: Un registre doit toujours être précédé par un $ lors de sont utilisation dans
une instruction assembleur.
Remarque 3: il existe aussi 2 autres registres qui ne sont pas listés ici, c'est lo (pour low)
et hi (pour high), il sont exclusivement utilisés par les instructions de multiplication et
division.
1
Dans le langage assembleur MIPS, les registres généraux utilisés pour
contenir les données sont les registres temporaires et les registres sauvegardés, la
différence entre les deux est que les registres temporaires ne doivent pas
être sauvegardés par le programmeur lors d'un appel de fonction. Les registres
a,v et ra sont utilisés pour le mécanisme des appels de fonction, les registres a
doivent contenir les arguments, les registres v la valeur de retour, et ra l'adresse de
retour.
II.2Registres Visibles
Tous les registres visibles du logiciel, c'est à dire ceux dont la valeur peut être lue ou modifiée
par les instructions, sont des registres 32 bits.
Afin de mettre en œuvre les mécanismes de protection nécessaires pour un système
d'exploitation multi-tâches, le processeur possède deux modes de fonctionnement :
utilisateur/superviseur. Ces deux modes de fonctionnement imposent d'avoir deux catégories
de registres.
9
Ce registre contient l'adresse de l'instruction en cours d'exécution. Sa valeur est modifiée
par toutes les instructions.
• HI et LO Registres pour la multiplication ou la division. Ces deux registres 32 bits
sont utilisés pour stocker le résultat d'une multiplication ou d'une division, qui est un
mot de 64 bits.
La description des 32 registres est donnée dans le tableau suivant :
10