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
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 très rapidement, en quelques cycles d horloges. 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
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
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
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 protégés (Accessibles en mode superviseur) 10 5
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
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
Les registres protégés Voici une liste des registres utilisés en mode superviseur: 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
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
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
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
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 opérations arithmétiques à virgules flottantes. Il possède 32 registres nommés: $f0 $f31 23 Co-processeurs de MIPS: 24 12