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