Cours 2-Pr sentation du Mips R 3000 - Elearn

publicité
14/11/2015
Université KASDI MERBAH – Ouargla
Faculté des Nouvelles Technologies de l’Information et de la Communication
Département d’Informatique et Technologie de l’information
Cours architectures des ordinateurs
Cours 2:
Présentation du processeur MIPS R3000
Enseignante: Chafika Benkherourou
Année universitaire: 2015-2016
1
Plan:
• Introduction
• Généralités sur les microprocesseurs
• Architecture de base d’un microprocesseur
• Architectures RISC/CISC
• Présentation du MIPS R3000
• Mode Utilisateur/Superviseur
• Le schéma fonctionnel du MIPS R3000
• Registres
• Format d’une instruction
• Les co-processeurs 0 et FPU
2
1
14/11/2015
Introduction:
• Dans cette partie, nous allons voir la notion
de microprocesseurs.
• Ce cours présente une version simplifiée
de l'architecture externe du processeur
MIPS R3000.
• L'architecture externe représente ce que
doit connaître un programmeur souhaitant
programmer en assembleur.
3
Notion de Processeur
• Un microprocesseur est un circuit intégré complexe qui
permet l’interprétation et l'exécution des instructions d'un
programme.
• Le processeur exécute chaque instruction
rapidement, en quelques cycles d’horloges.
très
• La fréquence de cette horloge s’exprime en MHz
(millions de cyles par seconde) ou GHz (milliards de
cycles par secondes). Par exemple, un processeur “ Intel
Core 2 ” possède une horloge de 2,26 GHz.
• C’est le cerveau de l’ordinateur.
• A l’heure actuelle, la puissance
des processeurs
continue de s’accroître et leur taille diminue
4
régulièrement.
2
14/11/2015
Notion de Processeur
5
Architecture de base d’un microprocesseur
Un microprocesseur est construit autour de deux unités
principales:
1. Unité de commande:
• Permet de contrôler le déroulement des
instructions.
• Effectue la recherche en mémoire de l'instruction.
• Assure le décodage de l’instruction puis effectue la
préparation de l'instruction suivante.
2. Unité arithmétique et logique:
• Regroupe les circuits qui assurent les traitements
nécessaires à l'exécution des instructions.
• Assure
les
opérations
logiques
(ET,
OU,
Comparaison, Décalage , etc…) ou arithmétiques
(Addition, soustraction…).
6
3
14/11/2015
Présentation du processeur MIPS R3000
• MIPS (de l'anglais Microprocessor without interlocked
pipeline stages) a été développée par la compagnie
MIPS Computer Systems Inc., basée en Californie.
• En 1988, la société MIPS Computer Systems, présente le
MIPS R3000 qui succède au MIPS R2000.
• Son jeu d’instructions est de type RISC.
• Le processeur MIPS R3000 est un processeur 32 bits.
• Le principal marché du MIPS: les applications
embarquées, les ordinateurs de poche, les routeurs Cisco
et les consoles de jeux vidéo (Nintendo 64 et Sony
PlayStation, et PSP)…
• Il existe plusieurs réalisations industrielles de cette
architecture (Siemens, Toshiba, Philips, Silicon Graphics,
etc...)
7
Notion d’architectures CISC/RISC:
Deux grandes catégories de processeurs, qui se distinguent
par la conception de leurs jeux d’instructions :
• CISC (Complex Instruction Set Computer)
• jeu étendu d’instructions complexes;
• instructions proches des constructions typiques des
langages de haut niveau
• Exemples : Motorola 68000, x86 Intel, AMD...
• RISC (Reduced Instruction Set Computer)
• jeu d’instructions réduit;
• toutes les instructions sont codées avec un même
nombre de bits, généralement un mot machine; Ceci
facilite le décodage des instructions.
• Exemples : MIPS, PowerPC, UltraSPARC (Sun), ...
8
4
14/11/2015
Mode Utilisateur/Superviseur:
Afin de mettre en œuvre les mécanismes de protection
nécessaires pour un système, le processeur possède deux
modes de fonctionnement :
• Le mode superviseur: permet une plus grande sécurité
pour le système. Quand le processeur est en mode
superviseur, l’utilisateur ne peut pas accéder à certaines
zones (ex: mémoire, registres...)
• Le mode utilisateur: Ce mode permet à l’utilisateur
d’accéder uniquement aux zones réservées aux
utilisateurs. Le processeur part en exception si l’utilisateur
accède à une zone privilégiée.
Note: quand le processeur est en mode superviseur, le
système peut accéder aux zone protégées et non
protégées.
9
Les registres
• Les registres sont une zone de stockage temporaire
située dans le processeur.
• La valeur de certains registres peut être lue ou modifiée
par les instructions.
• Selon les modes de fonctionnement du processeur, il
existe deux catégories de registres:
– Les registres non protégés (Accessibles en mode
utilisateur)
– Les registres
superviseur)
protégés
(Accessibles
en
mode
10
5
14/11/2015
Les registres non protégés
• Le processeur MIPS possède 32 registres de travail
accessibles au programmeur.
• Chaque registre est connu par son numéro, qui varie
entre 0 et 31, et est préfixé par un $.
• Par exemple:
– Le registre 31 sera noté $31 dans l’assembleur.
– Le registre $0 est un registre particulier. Il contient
toujours la valeur constante 0. L’écriture ne modifie
pas son contenu.
– Le registre $29 est le registre pointeur de pile. Il prend
la notation $Sp.
11
Les registres non protégés
12
6
14/11/2015
Les registres non protégés
Correspondance entre les noms
des registres et leurs numéros:
13
Les registres protégés
• L'architecture MIPS définit 32 registres (numérotés de 0 à
31), qui ne sont pas accessibles en mode utilisateur.
• Ils sont accessibles par les instructions privilégiées c'est à
dire les instructions qui ne peuvent être exécutées qu'en
mode superviseur.
• On dit qu'ils appartiennent au "coprocesseur système".
14
7
14/11/2015
Les registres protégés
• Voici une liste des
superviseur:
registres
utilisés
en
mode
15
Les registres divers
•
En plus des registres présentés,
MIPS R3000 possède d’autres
registres:
•
$PC Registre compteur de
programme (Program Counter)
(CO) : Ce registre contient
l'adresse de l'instruction en cours
d'exécution.
$ Status: c’est le registre d’état. Il
contient
les
masques
d’interruption
et
le
mode
(superviseur ou utilisateur)
$cause: c’est le registre qui
contient la cause de l’exception;
•
•
•
$HI et $LO : Ces registres
contiennent le résultat de la
multiplication sur 64 bits, ou le
résultat de la division euclidienne
(quotient dans LO et le reste
dans HI).
16
8
14/11/2015
Format d’une instruction:
• Toutes les instructions ont une longueur de 32 bits et
possèdent un des trois formats suivants :
• Le format R : est utilisé par les instructions
nécessitant deux registres sources (RS et RT) et un
registre résultat (RD).
• Le format I: est utilisé par les instructions de
lecture/écriture mémoire, par les instructions utilisant
un opérande immédiat, ainsi que par les
branchements conditionnels.
• Le format J: n’est utilisé que pour les branchements
inconditionnels.
Format d’une instruction:
Instruction de format R
• opcode = code opération
• rs = registres source1
• rt = registre source2
• rd = registre destination
• shamt = décalage (pour les instructions de décalage)
• funct = complément à l’opcode
9
14/11/2015
Format d’une instruction:
• Exemple: instruction de format R
Format d’une instruction:
• L’action effectuée par cette instruction est une
addition.
• Description:
Les contenus des registres $s1 et $s2 sont ajoutés
pour former un résultat sur 32 bits qui est placé dans le
registre $t0.
• Opération:
$t0 <- $s1 + $s2
10
14/11/2015
Format d’une instruction:
Instruction de format I
• L’action effectuée par cette instruction est une
opération d’addition entre un registre et une valeur
immédiate.
• Description:
La valeur immédiate sur 16 bits est ajoutée au contenu
du registre $rs pour former un résultat sur 32 bits qui est
placé dans le registre $rt.
Format d’une instruction:
Instruction de format J
Le format j est utilisé pour les instructions de saut (ex: Jump (j), Jump and
link (jal)). Elle possède deux champs :
• Opcode sur 6 bits
• Address sur 26 bits
22
11
14/11/2015
Co-processeurs de MIPS:
Le microprocesseur Mips travaille avec des coprocesseurs pour effectuer des opérations spécifiques.
•Le co-processeur 0: (processeur de contrôle système)
gère le système de mémoire virtuelle, les exceptions
ainsi
que
les
transitions
entre
les
modes Superviseur et Utilisateur.
•Le co-processeur FPU: (Floating Point Unit)
• Est
chargé
d’effectuer
les
arithmétiques à virgules flottantes.
opérations
• Il possède 32 registres nommés: $f0 – $f31
23
Co-processeurs de MIPS:
24
12
Téléchargement
Study collections