Chapitre 1 Architecture d'un microprocesseur

19
1.1× 1 2 1 2 2× 1.1 1.1

Transcript of Chapitre 1 Architecture d'un microprocesseur

Page 1: Chapitre 1 Architecture d'un microprocesseur

Chapitre 1

Architecture d'un

microprocesseur

1.1 Performances d'un microprocesseur

Un microprocesseur est un circuit intégré complexe caractérisé par unetrès grande intégration et doté des facultés d'interprétation et d'exécution desinstructions d'un programme. Il est chargé d'organiser les tâches précisées parle programme et d'assurer leur exécution. En outre, il doit prendre en compteles informations extérieurs au système et assurer leur traitement. Il regroupesur quelques millimètres carré des fonctionnalités toujours plus complexes.

1.1.1 Performances d'un processeur

Quand on parle des performances d'un processeur, on parle typiquementde sa vitesse, le nombre d'instructions par seconde qu'il peut e�ectuer. Onconsidère aussi son coût et sa consommation en énergie.

� Processeur pas cher -> réfrigérateur, montre.� Processeur moins gourmand en énergie -> vie de batterie plus longue

(Ex : portable).Le rôle de l'architecture est de faire le choix entre les technologies.Exemple :

� Vitesse 1.1×, 12coût, 1

2énergie.

� Vitesse 2×, 1.1 coût, 1.1 énergie.

1

Page 2: Chapitre 1 Architecture d'un microprocesseur

1.1.2 Consommation de puissance

Il existe deux catégories de puissance que le processeur consomme :� Puissance dynamique : puissance consommée par une activité actuelle

dans un circuit électrique.� Puissance statique : puissance consommée quand le circuit est sous

tension mais inactif.

Puissance dynamique

P =1

2× C × V 2 × f × α (1.1)

� C : capacitance ∼ surface de la puce.� V : voltage.� f : fréquence.� α : facteur d'activité.• Après l'application de a loi de Moor, on obtient :

Cnew =1

2× Cold (1.2)

Puisque nous voulons construire un processeur plus fort, on va utiliser deuxprocesseurs.

Pnew =1

2× 2× 1

2× Cold × V 2 × f × α (1.3)

Étant donné que V, f, α restent les mêmes, on obtient :

Pnew = Pold (1.4)

Donc on a augmenté la vitesse mais la puissance reste constante.• Si on augmente la fréquence :

fnew = 1.25× fold (1.5)

On auraPnew = 1.25× Pold (1.6)

• Si on diminue le voltage

Vnew = 0.8× Vold (1.7)

2

Page 3: Chapitre 1 Architecture d'un microprocesseur

On auraPnew = 0.64× Pold (1.8)

Mais les performances en vitesse ne vont pas être améliorées.• Si on augmente un peux la fréquence et diminue un peux le voltage :

fnew = 1.1× fold (1.9)

etVnew = 0.9× Vold (1.10)

On auraPnew = 0.9× Pold (1.11)

=⇒La solution donc est de diminuer le voltage et d'utiliser des petitstransistors.

Puissance statique

C'est un résultat qui vient de trop diminuer le voltage.

Diminuer le voltage va engendrer des fuites.V0 : Valeur optimale de V pour que la puissance totale soit la plus petite

possible (processeurs modernes).

3

Page 4: Chapitre 1 Architecture d'un microprocesseur

Figure 1.1 � Comparaison des puissances.

Coût de fabrication

Figure 1.2 � Coût de fabrication

1. Les puces sont fabriquées en prenant un disque de silicone appelé uneplaquette "Wafer".

2. Le disque est soumis à un nombre d'étapes, chacune de ces étapessorte des impressions des aspects du circuit qui devrait apparaître surchaque processeur.

4

Page 5: Chapitre 1 Architecture d'un microprocesseur

3. A la �n de ces étapes, on prend la plaquette et nous la découpons sousformes de carrés. Chacun de ces petits carrés sera une puce.

4. Nous prenons chaque puce et nous la mettons dans un paquet qui ades pins.

=⇒ Si nous avons beaucoup de puces, le coût va être diminué.=⇒ Si nous avons moins de puces, le coût va être élevé.

Rendement =% puces qui marchent

# totale des puces(1.12)

5

Page 6: Chapitre 1 Architecture d'un microprocesseur

Exemple :

62 valides2 défectueuses

rendement = 97%

6 valides2 défectueuses

rendement = 75%

Cout d′une puce =5000$

# puces valides(1.13)

Exemple :

Si le coût d'une plaquette est 5000$ avec 10 défauts par plaquette.� Petites puces (400 / plaquette) -> Coût = 12.80 $.� Larges puces (96 / plaquette) -> Coût = 58.20 $.� Plus larges puces (20 / plaquette) -> Coût = 454.55 $.Pour béné�cier de la loi de Moor :� Petites puces =⇒ coût diminué (portable).� Même surface =⇒ plus rapide pour une même coût (PC).

1.2 Architecture de base d'un processeur

Un processeur classique est constitué de trois composantes majeurs :

1. Un ensemble de registres.

2. Une unité de traitement.

3. Une unité de commande

Les registres sont chargés de stocker les di�érentes informations à traiter.Ces trois éléments sont reliés entre eux par des bus internes permettant leséchanges d'informations.

Remarques

Il existe deux types de registres :

6

Page 7: Chapitre 1 Architecture d'un microprocesseur

Figure 1.3 � Architecture de base d'un processeur

� Les registres d'usage générale qui permettent à l'unité de traitementde manipuler des données à vitesse élevée. Ils sont connectés au busde données interne.

� Les registres d'adresses connectés sur le bus d'adresses.

1.2.1 L'unité de commande

Elle permet de séquencer le déroulement des instructions. Elle e�ectue larecherche en mémoire de l'instruction. De plus, elle assure son décodage etréalise son exécution et après e�ectue la préparation de l'instruction suivante.

Elle est composée par :� Le compteur de programme : constitué par un registre dont le contenu

est initialisé avec l'adresse de la première instruction du programme.Il contient toujours l'adresse de l'instruction à exécuter.

� Le registre d'instruction et le décodeur d'instruction : chacune desinstructions à exécuter est rangée dans le registre d'instruction puisest décodée par le décodeur d'instructions.

� Le bloc logique de commande (ou séquenceur) : il organise l'exécutiondes instructions au rythme d'une horloge.

7

Page 8: Chapitre 1 Architecture d'un microprocesseur

Figure 1.4 � Unité arithmétique et logique

1.2.2 L'unité de traitement

C'est le coeur du microprocesseur. Elle regroupe les circuits qui assurentles traitements nécessaires à l'exécution des instructions :

� L'unité arithmétique et logique (ALU) est un circuit complexe quiassure les fonctions logiques (ET, OU, Comparaison, Décalage, etc...)ou arithmétique (addition, soustraction, ...)

� Le registre d'états : permet de stocker des indicateurs sur l'état dusystème (retenue, débordement, ...).

� Les accumulateurs : sont des registres de travail qui servent à stockerune opérande au début d'une opération arithmétique et le résultat àla �n de l'opération.

1.2.3 Schéma fonctionnel

Exemple

On suppose que le registre Acc contient la valeur 2 et on veut exécuter l'ins-truction dont l'adresse se trouve au registre PC.

1. Récupérer l'adresse de l'instruction à exécuter au registre PC.

2. Cette adresse est transféré vers la mémoire à travers le bus d'adresses.

3. Le contenu de case de cette adresse va être transféré sur le bus dedonnées et rangé dans le registre de donnée.

4. Si notre donnée est un code opératoire, elle sera déplacé dans le re-gistre d'instruction (IR) et décodée par le décodeur d'instruction, sielle nécessite une donnée provenant de la mémoire, le décodeur com-mandera la recherche d'un second octet.

8

Page 9: Chapitre 1 Architecture d'un microprocesseur

Figure 1.5 � le schéma fonctionnel

5. Après la recherche de donnée, la première opérande qui existe dans leregistre (Acc) et la deuxième qui provient des registres de données sontconsidérés comme les deux entrées de l'unité arithmétique et logique.Le résultat sera enregistré temporairement dans l'accumulateur.

1.2.4 Cycle d'exécution d'une instruction

Le traitement d'une instruction peut être décomposé en trois phases :� Recherche de l'instruction à traiter.� Décodage de l'instruction et recherche de l'opérande.� Exécution de l'instruction.

Recherche de l'instruction à traiter

1. Le PC contient l'adresse de l'instruction suivante du programme.Cettevaleur est placée sur le bus d'adresses par l'unité de commande quiémet un ordre de lecture.

2. Au bout d'un certain temps (temps d'accès à la mémoire), le contenude la case mémoire sélectionnée est disponible sur le bus de données.

9

Page 10: Chapitre 1 Architecture d'un microprocesseur

Figure 1.6 � Recherche de l'instruction à traiter

3. L'instruction est stockée dans le registre instruction du processeur.

Décodage de l'instruction et recherche de l'opérande

Le registre d'instruction contient maintenant le premier mot de l'instruc-tion qui peut être codée sur plusieurs mots. Ce premier mot contient le codeopératoire qui dé�nit la nature de l'opération à e�ectuer et le nombre demots de l'instruction.

� L'unité de commande transforme l'instruction en une suite de com-mandes élémentaires nécessaires au traitement de l'instruction.

� Si l'instruction nécessite une donnée en provenance de la mémoire,l'unité de commande récupère sa valeur sur le bus de données.

� L'opérande est stockée dans un registre.

10

Page 11: Chapitre 1 Architecture d'un microprocesseur

Figure 1.7 � Décodage de l'instruction et recherche de l'opérande

11

Page 12: Chapitre 1 Architecture d'un microprocesseur

Exécution de l'instruction

1. Le micro-programme réalisant l'instruction est exécuté.

2. Les drapeaux sont positionnés (registre d'état).

3. L'unité de commande positionne le PC pour l'instruction suivante.

Figure 1.8 � Exécution de l'instruction

1.3 Jeu d'instructions et codage

1.3.1 Jeu d'instructions

Le jeu d'instructions est l'ensemble des instructions machines qu'un pro-cesseur peut exécuter. Ces instructions machines permettent d'e�ectuer desopérations élémentaires ou plus complexes. Le jeu d'instructions dé�nit quellessont les instructions supportées par le processeur. Le jeu d'instructions précise

12

Page 13: Chapitre 1 Architecture d'un microprocesseur

aussi quels sont les registres du processeur manipulable par le programmeur.Exemple

x86, ARM, MIPS

Le jeu d'instructions comporte six groupes :� Transfert de données : chargement, déplacement, stockage, transfert

de données entre registre-registre ou mémoire -registres, .. ,etc.� Opérations arithmétiques : les 4 opérations en virgule �xe ou �ottante

et en simple ou multiple précision.� Opérations logiques : NOT, AND, OR, XOR, ..., etc.� Contrôle de séquence : branchement impératif ou conditionnel, boucle,

...etc.� Entrée/Sorties : lecture, écriture, a�chage, ..., etc.� Manipulations diverses : décalages de bits, conversions de format, in-

crémentation ou décrémentation du registre, ..etc.

1.3.2 Codage

Une instruction est la réunion des di�érents signaux de commande duchemin de données du processeur. Elle est découpée en champs :

� Un code opération (opcode).� Des informations complémentaires sur l'emplacement des données sources

et de la destination.� La technique associée à la localisation des opérandes d'une instruction

s'appelle l'adressage ou le mode d'adressage.xxxx

Exemple

Code instruction Code opérande10010011 00111110

Le nombre d'instructions du jeu d'instructions est directement lié au for-mat du code instruction. Ainsi, un octet permet de distinguer au maximum256 instructions di�érentes.

13

Page 14: Chapitre 1 Architecture d'un microprocesseur

1.3.3 Mode d'adressage

Il dé�nit la manière dont le microprocesseur va accéder à l'opérande.Les di�érents modes d'adressage dépendent des microprocesseurs mais onretrouve en générale :

� L'adresse de registre où l'on traite la donnée contenue dans un registre.� L'adressage immédiat où l'on dé�nit immédiatement la valeur de la

donnée.� L'adressage direct où l'on traite une donnée en mémoire.

L'instruction est codé sur un ou plusieurs octets, selon le mode d'adressagede la donnée.

1.3.4 Temps d'exécution

Chaque instruction nécessite un certain nombre de cycles d'horloge pours'e�ectuer. Ce nombre de cycles dépend de la complexité de l'instruction ainsique le mode d'adressage. Il est plus long d'accéder à la mémoire principalequ'au registre du processeur. La durée d'un cycle dépend de la fréquenced'horloge du séquenceur.

Remarque :

La puissance d'un microprocesseur peut être caractérisée par le nombre d'ins-tructions qu'il est capable de traiter par seconde. Pour cela, on dé�nit :

� Le CPI (Cycle Par Instruction) : le nombre moyen de cycles d'horlogenécessaire pour l'exécuter d'une instruction pour un microprocesseurdonnée.

� Le MIPS (Millions d'Instructions Par Seconde) qui représente la puis-sance de traitement du microprocesseur

MIPS =F

CPI, F en MHz (1.14)

1.4 Architectures traditionnelles (CISC et RISC)

L'architecture traditionnelle des microprocesseurs se compose de deuxgrandes familles :

� CISC : Complex Instruction Set Computer� RISC : Reduced Instruction Set Computer

14

Page 15: Chapitre 1 Architecture d'un microprocesseur

1.4.1 L'architecture CISC

• Puisque la mémoire travaillait moins vite que le processeur, les fabri-quants pensaient qu'il était plus intéressant de soumettre au microprocesseurdes instructions complexes. ainsi, à la place de coder une opération complexepar plusieurs instructions plus petites, il semblait préférable d'ajouter au jeud'instruction du microprocesseur une instruction complexe qui se chargeraitde réaliser cette opération.• Ce microprocesseur à une architecture CISC est facile à programmer et

utilise la mémoire e�cace.• C'est une architecture où le microprocesseur exécute des tâches com-

plexes par instruction unique. Le nombre d'instructions exécutée devientalors petit mais le nombre de cycles d'horloge nécessaire devient plus grand.• Le code machine de ces instructions varie d'une instruction à l'autre et

nécessite donc un décodeur complexe (micro-code).

Exemple

Intel, Motorola, VAX, ...

1.4.2 L'architecture RISC

• Dans la seconde moitié des années 1970 des chercheurs ont fait desstatiques sur la composition en instructions des programmes en langagesmachine, ils ont constaté que seules les instructions les plus simples étaientlargement utilisées. D'où l'idée de réduire le jeu d'instructions à celles le pluscouramment utilisées et d'en améliorer la vitesse de traitement.• RISC est une architecture dans laquelle les instructions sont en nombre

réduit. Sa réalisation libère de la surface permettant d'augmenter le nombrede registres ou d'unités de traitement. Chacune de ses instructions s'exé-cutent ainsi en un cycle d'horloge.

Exemple

PowerPC, Sun, SPARC, ...

15

Page 16: Chapitre 1 Architecture d'un microprocesseur

1.4.3 Comparaison CISC/RISC

Architecture RISC Architecture CISCInstruction simple (1 cycle) Instruction Complexe (plusieurs cycles)Instruction au format �xe Instruction au format variableDécodeur simple Décodeur complexe (micro-code)Beaucoup de registres Peu de registresSeules les instructions LOAD etSTORE ont accès à la mémoire

Toutes les instructions sont suscep-tibles d'accéder à la mémoire.

1.5 Pipeline

• Le pipeline est un mécanisme qui permet d'augmenter la vitesse d'exécu-tion des instructions dans un microprocesseur. Avec un pipeline, le micropro-cesseur commence une nouvelle instruction avant d'avoir �ni la précédente.• Le temps d'exécution d'une seule instruction n'est pas réduit. Par

contre, le débit du microprocesseur, c'est à dire, le nombre d'instructionsexécutées par unité de temps, est augmenté.• Une machine pipeline se caractérise par le nombre d'étapes utilisées

pour l'exécution d'une instruction, on appelle aussi ce nombre d'étapes lenombre d'étages du pipeline.

Exemple

Exécution en 4 phases d'une instruction� Recherche : R� Décodage : D� Exécution : E� Sauvegarder le résultat : SModèle classique :

Modèle utilisant le pipeline :

1.5.1 Gain de performances

• Dans une machine utilisant la technique du pipeline, on débute l'exécu-tion d'une instruction à chaque cycle et le pipeline est pleinement occupé à

16

Page 17: Chapitre 1 Architecture d'un microprocesseur

Figure 1.9 � Modèle classique

Figure 1.10 � Modèle utilisant le pipeline

17

Page 18: Chapitre 1 Architecture d'un microprocesseur

partir du quatrième cycle. Le gain obtenu dépend alors du nombre d'étagesdu pipeline.• Soient n instructions qui s'exécutent chacune en k cycles d'horloge, il

faut :� n× k cycles d'horloge pour une exécution séquentielle.� k cycles d'horloge pour exécuter la 1er instruction.� k + i− 1 cycles d'horloge pour exécuter la ime instruction.� ...� k + n− 1 cycles d'horloge pour exécuter la nme instruction.

Le gain obtenu est donc de :

G =n× k

k + n− 1(1.15)

1.5.2 Cache mémoire

• Problème : il existe une latence d'accès entre le processeur et la mémoireprincipale.• L'une des solutions à ce problème est d'utiliser une mémoire très rapide

entre le processeur et la mémoire principale, elle est appelée cache mémoire.• Au départ cette mémoire était intégrée en dehors du microprocesseur,

maintenant, elle fait partie intégrante du processeur, et de déduire déclaremême sur plusieurs niveaux.• Le microprocesseur envoie toutes ses requêtes à le cache mémoire comme

s'il s'agissait de la mémoire principal :� Si la donnée (ou instruction) est présente dans le cache, elle sera en-

voyée directement au processeur, on parle de succès de cache (a).� Si la donnée (ou instruction) n'est présente dans le cache, le contrôleur

de cache envoie une requête à la mémoire principale, cette dernièrerenvoie l'information récupérée au processeur tout en la stockant dansle cache, on parle de défaut de cache (b).

18

Page 19: Chapitre 1 Architecture d'un microprocesseur

Figure 1.11 � Le cache mémoire

19