La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

©Pierre Marchand, 2001 280 Objectifs : À la fin de cette unité, vous connaîtrez le fonctionnement de l'unité centrale de traitement d'un ordinateur. Pour.

Présentations similaires


Présentation au sujet: "©Pierre Marchand, 2001 280 Objectifs : À la fin de cette unité, vous connaîtrez le fonctionnement de l'unité centrale de traitement d'un ordinateur. Pour."— Transcription de la présentation:

1 ©Pierre Marchand, Objectifs : À la fin de cette unité, vous connaîtrez le fonctionnement de l'unité centrale de traitement d'un ordinateur. Pour y arriver, vous devrez atteindre les objectifs suivants : -décrire les différentes composantes d'une unité centrale de traitement et leur rôle : unité de commande, séquenceur, unité arithmétique et logique, compteur ordinal, registre dinstruction, horloge; -décrire la structure d'une instruction de niveau machine; Unité 9: Unité centrale de traitement

2 ©Pierre Marchand, Architecture Lunité centrale de traitement (UCT) ou processeur central (CPU) est lélément moteur de lordinateur qui interprète et exécute les instructions du programme situées en mémoire centrale. Lensemble CPU + mémoire centrale constitue lUnité Centrale. LUCT est composé de lUnité arithmétique et logique (UAL) et de lUnité de commande ou de contrôle. LUAL effectue les opérations arithmétiques et logiques. LUnité de commande dirige le fonctionnement de toutes les autres unités : UAL, mémoire, entrées / sorties, etc., en leur fournissant les signaux de cadence et de commande. Unité 9: Unité centrale de traitement

3 ©Pierre Marchand, Architecture Les différentes unités sont interconnectées par des systèmes de câblage transportant des signaux électriques. Pour éviter de relier chaque unité à chacune des autres, on fait usage de lignes exploitées en commun. On appelle bus ces ensembles de lignes. On peut distinguer trois bus différents : Bus dadresses, par exemple, A 0 à A 31 Bus de données, par exemple, D 0 à D 31 Bus de contrôle, par exemple, R/W, Un bus peut être utilisé par toutes les unités qui y sont connectées, mais jamais par plus de deux unités en même temps. Ceci pose des problèmes dattente et darbitrage (contention) lors des requêtes dutilisation. Unité 9: Unité centrale de traitement

4 ©Pierre Marchand, Architecture Unité 9: Unité centrale de traitement Bus de cacheBus localBus mémoire CPU Cache niveau 2 Pont PCI Mémoire centrale Bus PCI Disque IDE Adaptateur graphique Moni- teur SCSIUSB Souris Cla- vier Modem Carte de son Impri- mante Bus ISA Pont ISA

5 ©Pierre Marchand, Unité de commande Cette unité comporte Le compteur ordinal CO Le registre dinstruction RI Le décodeur de code opération Le séquenceur Lhorloge RA = registre d adresses RM = registre mot Unité 9: Unité centrale de traitement Mémoire Bus de données Bus dadresses RMRA CO HorlogeSéquenceur RI Décodeur R/W

6 ©Pierre Marchand, Unité de commande Les impulsions générés par lhorloge à intervalles réguliers détermi- nent le temps de cycle de la machine. Lexécution dune instruction prend généralement plus dun cycle, car une instruction comporte généralement : le temps de chargement de linstruction (fetch), le temps de décodage de linstruction, le temps de chargement des opérandes et de calcul de leur adresse effective, le temps dexécution proprement dit. le temps décriture du résultat (writeback). En utilisant un pipeline, il est quand même possible démettre une instruction par cycle si toutes ces opérations peuvent être effectuées en parallèle. Unité 9: Unité centrale de traitement

7 ©Pierre Marchand, Unité de commande Étapes dun cycle de recherche dinstruction (fetch) : Transfert de ladresse de la nouvelle instruction de CO à RA. La génération dune impulsion de lecture par lunité de commande provoque le transfert de linstruction cherchée vers RM qui fonctionne comme registre tampon pour tous les échanges avec la mémoire. Transfert de linstruction dans RI. Instruction = code opération + adresse opérande Ladressage de lopérande peut demander le calcul de ladresse effective, ce qui consomme des cycles machine. Pendant que ladresse de lopérande est envoyée à RA, le code opération est transmis au décodeur qui détermine le type dopération demandée et le transmet au séquenceur. Le CO est incrémenté en vue du cycle de recherche suivant. Unité 9: Unité centrale de traitement

8 ©Pierre Marchand, Synchronisation des opérations Les signaux périodiques générés par lhorloge définissent le cycle de base ou cycle machine (clock cycle). Le cycle mémoire est habituellement beaucoup plus long que le cycle machine, surtout sil doit accéder à la mémoire centrale (échec du cache interne L1 + échec du cache externe L2) Par exemple, dans un processeur dit à 500 MHz, le cycle machine est de 2 ns. La fréquence du bus PCI pouvant atteindre 133 MHz, le cycle de bus a une durée de 7,5 ns. Ceci est donc le temps minimum pour un accès en mémoire centrale. Toutefois, il faut habituellement plusieurs mots mémoire pour remplir une rangée de cache, de sorte quun accès en mémoire centrale représente plusieurs cycles de bus. Unité 9: Unité centrale de traitement

9 ©Pierre Marchand, Séquenceur Le séquenceur est un automate qui a la responsabilité de générer les signaux de commande nécessaires pour actionner et contrôler les unités participant à lexécution dune instruction donnée. Cette fonction peut être réalisée de deux façons : séquenceur câblé ou séquenceur microprogrammé. Un séquenceur câblé est un circuit séquentiel complexe qui fait corres- pondre à chaque instruction un sous-circuit capable de commander son déroulement. On peut obtenir le même résultat avec une suite de micro-instructions stockées dans une mémoire de microprogrammation. Ce micro- programme est capable de générer une suite de signaux de commande équivalent à celle qui serait produite par un séquenceur câblé. Unité 9: Unité centrale de traitement

10 ©Pierre Marchand, Séquenceur Unité 9: Unité centrale de traitement RI code opadresse décodeur séquenceur câblé UAL mémoire de microprogrammation commandes

11 ©Pierre Marchand, Séquenceur Le microprogramme (firmware) peut être stocké dans une ROM ou une EPROM. Cette solution est plus fexible que la logique câblée. Le prix à payer est une vitesse inférieure. Unité 9: Unité centrale de traitement RI code opadresse mapping ROM compteur ordinal de microprogrammation mémoire de microprogrammation micro-instruction signaux de commande

12 ©Pierre Marchand, Séquenceur MAR = RA MDR = RM PC = CO MPC = CO du micro- programme. MIR = registre de micro-instruction (36 bits). MBR = RI

13 ©Pierre Marchand, Niveaux de programmation Unité 9: Unité centrale de traitement niveau des commandes électroniques micro-instructions instructions machine niveau assembleur langages évolués

14 ©Pierre Marchand, Niveaux de programmation Le programmeur a le choix entre plusieurs langages de program- mation: Fortran, Pascal, C, Ada, C++, Java, Assembleur. Lordinateur par contre ne comprend que son propre langage, le langage machine, avec son jeu dinstructions de niveau machine. Il faut donc traduire le code source écrit dans lun des langages mentionnés en code objet ou code machine. Cette traduction seffectue à laide de programmes traducteurs tel que les assembleurs et les compilateurs. Lassembleur est un langage dans lequel chaque instruction corres- pond à une instruction machine. Unité 9: Unité centrale de traitement

15 ©Pierre Marchand, Niveaux de programmation Un compilateur convertit la totalité du programme source en langage machine et place le code objet dans un fichier objet. Lordinateur peut ensuite exécuter ce code objet. Le code objet ne peut être exécuté que par un ordinateur ayant le même langage machine. Un interprète convertit le programme source en code objet instruction par instruction, et lexécute au fur et à mesure. Le traducteur doit donc se trouver dans la machine au moment de lexécution, ce qui nest pas nécessaire dans le cas de code compilé. Unité 9: Unité centrale de traitement

16 ©Pierre Marchand, Niveaux de programmation Pour rendre le code portable, on a adopté une solution intermédiaire dans le cas du langage Java. Le code source est converti en byte- codes, langage compilé indépendant de la plate-forme. Ces bytecodes sont ensuite interprétés par la machine cible au moyen dun interpète appelé machine virtuelle. Le même code compilé peut donc être exécuté sur toute plate-forme pour laquelle on dispose dune machine virtuelle Java (JVM). Pour rendre ce processus plus performant, certaines machines virtuel- les appelées Just-In-Time Compilers (JIT) compilent les bytecodes en langage machine juste avant lexécution. On atteint ainsi des perfor- mances comparables à celles dun langage compilé. Unité 9: Unité centrale de traitement

17 ©Pierre Marchand, Structure des instructions niveau machine Une instruction machine doit fournir au CPU toutes les informations pour lexécution dune opération élémentaire. Elle doit donc contenir un code opération qui est essentiel pour spécifier le type daction désiré. Elle doit en outre contenir une ou plusieurs adresses selon le cas : ladresse de (ou des) opérande(s), ladresse où envoyer le résultat et ladresse où chercher linstruction suivante. Par conséquent, le format dune instruction machine comporte un champ code opération et jusquà quatre champs dadresse. On parle dinstructions à n adresses. On dit dune machine quelle est à n adresses si la plupart de ses instructions sont à n adresses. Unité 9: Unité centrale de traitement

18 ©Pierre Marchand, Structure des instructions niveau machine Ainsi, le MC6809 est une machine à une adresse, le Pentium et le MC68000 sont des machines à 2 adresses. Le PowerPC est une machine à 3 adresses pour les opérations entre registres, à 2 adresses pour les accès mémoire. Exemples : LDA1000instruction à 1 adresse (6809) movax,[esi+4]instruction à 2 adresses (Pentium) addeax,ebxinstruction à 2 adresses (Pentium) moved4,8(a6)instruction à 2 adresses (MC68000) moved3,d4instruction à 2 adresses (MC68000) ldr0,4(r1)instruction à 2 adresses (PowerPC) addr3,r2,r1instruction à 3 adresses (PowerPC) Unité 9: Unité centrale de traitement

19 ©Pierre Marchand, Structure des instructions niveau machine Il existe aussi des machines à zéro adresse. Ce sont des machines à pile, analogues aux calculatrice à notation polonaise inverse (RPN). Elle prennent tous ses opérandes sur la pile et inscrivent le résultat au sommet de la pile. Unité 9: Unité centrale de traitement

20 ©Pierre Marchand, Jeu dinstructions Chaque machine a son jeu dinstructions de base. Le nombre dinstructions varie de 50 à plus de 300. Il y a deux écoles de pensée. Les partisans de larchitecture RISC (Reduced Instruction Set Computer) préconisent un petit nombre dinstructions élémentaires dans un format fixe, faciles à réaliser dans le matériel et dexécution rapide (1 instruction par cycle machine). Cela nécessite un séquenceur câblé et un compilateur capable dexploiter les caractéristiques de la machine (par exemple, utiliser les registres pour minimiser les accès à la mémoire). Dautres préfèrent les architectures CISC (Complex Instruction Set Computer) basées sur des jeux dinstructions très riches et de taille variable, et offrant des instruction composées (nécessitant plusieurs voire même parfois des centaines de cycles machine). Unité 9: Unité centrale de traitement

21 ©Pierre Marchand, Jeu dinstructions Les instructions quon trouve dans les répertoires de toutes les machines peuvent être classées en six groupes : Transfert de données (Load, Move, Store). Opérations arithmétiques (les quatre opérations sur des entiers et sur des nombres en virgule flottante de simple ou double précision). Opérations logiques (AND, OR, NOT, XOR, etc). Contrôles de séquence (branchements conditionnels et incondition- nels, boucles, appels de procédures, etc.). Entrée / sortie (Read, Write). Manipulations diverses (décalages, conversions de format, incré- mentation de registres, etc.). Unité 9: Unité centrale de traitement

22 ©Pierre Marchand, Registres du CPU Compteur ordinal (CO) Le registre CO contient ladresse mémoire de la prochaine instruction à exécuter. Il est automatiquement incrémenté après chaque utilisation. Le programme est donc exécuté en séquence à moins quil ne contienne une instruction qui modifie la séquence, par exemple un saut ou un branchement. Dans ce cas, la nouvelle adresse remplacera le contenu du CO. Ce changement sera effectué pendant le cycle dexécution, après le décodage du code opération, mais avant le transfert du contenu du CO incrémenté vers le RA. Registre instruction (RI) Quand une instruction est chargée à partir de la mémoire, elle est placée dans RI. Les bits correspondant au code opération sont envoyés soit au décodeur, soit à la mémoire de microprogrammation. Unité 9: Unité centrale de traitement

23 ©Pierre Marchand, Registres du CPU Accumulateur (ACC) Dans le plupart des opérations arithmétiques, laccumulateur contient lun des opérandes avant lexécution, et le résultat après. Il peut servir de tampon dans les opérations dentrée / sortie. Il a généralement la même taille que le mot mémoire, mais, dans la plupart des machines, il possède une extension (registre Q) qui permet de doubler sa taille. Ceci permet de stocker le résultat dune multiplication dans ACC et Q, ou dy placer le quotient et le reste dune division. Dans le Pentium, laccumulateur est EAX et lextension Q est EDX. Unité 9: Unité centrale de traitement

24 ©Pierre Marchand, Registres du CPU Registres généraux Les registre généraux (general purpose registers) servent à enregistrer les informations fréquemment utilisées pendant le programme, ou des résultats intermédiaires. Cela évite des accès à la mémoire, accélérant ainsi lexécution du programme. La plupart des instructions sont disponibles pour les registres généraux. Dans le Pentium, ce sont EBX et ECX, mais EAX et EDX peuvent aussi être considérés des registres généraux. Unité 9: Unité centrale de traitement

25 ©Pierre Marchand, Registres du CPU Registres dindice (XR) Ces registres dindice ou dindex peuvent être utilisée comme des registres généraux. Mais, il ont en plus une fonction spéciale pour manipuler les tableaux de données avec ladressage indexé. Dans un tel mode dadressage, ladresse de lopérande est obtenue en additionnant la partie adresse de linstruction au contenu du registre dindex spécifié. Dans le Pentium, tous les registres généraux peuvent être utilisés comme indice. Unité 9: Unité centrale de traitement

26 ©Pierre Marchand, Registres du CPU Registre de base Utilisés pour calculer des adresses effectives, les registres de base sont conçus pour contenir une adresse de référence. Pour obtenir ladresse effective, il faut y ajouter le contenu du champ adresse de linstruction Chez Intel, cétait originalement BP et SP, mais dans le Pentium, EBP, ESI, EDI, ESP et tous les registres généraux peuvent servir de registre de base. Unité 9: Unité centrale de traitement

27 ©Pierre Marchand, Registres du CPU Registre détat (PSW) Le registre détat, aussi appelé registre de codes condition (Program status word ou Condition Code Register) contient différents bits appelés drapeaux (flags) indiquant le résultat dune instruction. Les bits les plus courants sont Z, qui vaut 1 si le résultat de linstruction est 0, C qui vaut 1 sil y a une retenue, N ou S qui vaut 1 si le résultat de linstruction est négatif, et V ou OF, qui vaut 1 sil y a eu débordement de capacité. Dans le Pentium, ce registre sappelle EFLAGS. Unité 9: Unité centrale de traitement

28 ©Pierre Marchand, Registres du CPU Pointeur de pile (SP) Ce registre pointe au sommet dune structure de pile implantée en mémoire centrale. Le fonctionnement dune pile suit la règle Last-In- First-Out (LIFO). Chaque fois quun mot doit être enregistré dans la pile, il est placé à ladresse qui précède celle du mot enregistré précédemment. Les information enregistrées dans la pile sont lues dans lordre inverse de celui dans lequel elles ont été enregistrées. Une fois quun mot est lu, son emplacement devient disponible pour une nouvelle information. Unité 9: Unité centrale de traitement

29 ©Pierre Marchand, Adressage des opérandes Les modes dadressage les plus importants sont : direct ou absolu : Le champ adresse contient ladresse effective. indirect : Le champ adresse contient ladresse où se trouve ladresse effective. immédiat :Le champ adresse de linstruction contient lopérande. implicite :Le code opération implique où se trouve lopérande. indexé :Adresse effective = contenu du champ adresse + contenu du registre index. basé :Adresse effective = contenu du registre de base + contenu du champ adresse. relatif :Comme ladressage basé, mais cest CO qui sert de registre de base. Unité 9: Unité centrale de traitement

30 ©Pierre Marchand, Taille de ladresse et taille de la mémoire Soit ADR le nombre de bits dans le champ adresse dune instruction. Si ADR = n, la mémoire physique est accessible dans sa totalité. Tous les modes dadressage proposés par le fabricant peuvent être utilisées. Cest le cas du Pentium, du MC68000, du PowerPC. Si ADR < n, ADR ne suffit pas pour adresser toute la mémoire. On peut utiliser ladressage basé, si le registre de base a une taille suffisante (n bits). Il suffit de diviser la mémoire en blocs de taille telle que ADR puisse adresser totalement un bloc. On utilise alors le champ adresse pour indiquer le déplacement à lintérieur du bloc. Cétait le cas du 8088/8086 et du Ladresse de 16 bits pouvait adresser 64 Ko, mais les registres de segment permettaient datteindre 1 Mo. Unité 9: Unité centrale de traitement

31 ©Pierre Marchand, Taille de ladresse et taille de la mémoire Si ADR > n, ADR peut adresser des positions de mémoire qui nexistent pas en mémoire physique. On profite de cette possibilité pour réaliser la mémoire virtuelle, dans laquelle la mémoire physique peut être considérée comme un cache pour la mémoire adressable totale qui est alors placée sur disque. Dans ce cas, lespace mémoire est divisé en pages de quelques Ko au lieu de blocs de quelques octets. Unité 9: Unité centrale de traitement


Télécharger ppt "©Pierre Marchand, 2001 280 Objectifs : À la fin de cette unité, vous connaîtrez le fonctionnement de l'unité centrale de traitement d'un ordinateur. Pour."

Présentations similaires


Annonces Google