Chapitre 2
Processeur contient deux registres spéciaux. • Registre d'instruction (RI) Extraction de l'instruction à l'adresse contenue dans le registre PC.
CPU et mémoire
Exécute les instructions machines en utilisant les registres et l'UAL. Le bus de communication interne centrale et le processeur (registre) ...
But de ce sujet Les registres du processeur
Introduction à l'assembleur http://www.courstechinfo.be/Programmation/IntroASM.pdf. 2. CX "count register"est implicitement le registre compteurs de boucles
LE MICROPROCESSEUR 8086 ) 8088
Le processeur 8086 d'Intel est à la base des processeurs Pentium actuels. Les Un registre est une petite partie de mémoire intégrée au.
4. Initiation à lassembleur
instructions machine. Par exemple add eax
8. Introduction a larchitecture ARM.key
98% de téléphones portables contiennent au moins 1 processeur ARM Accès à la mémoire régit par le contenu des registres et par les instructions.
Jeu dinstructions
du processeur vers la mémoire et vice versa ainsi qu'entre registres du processeur. ? Taille du mot mémoire ? 16? 32? 64 bits? ? Arithmétiques.
Architecture des ordinateurs - Licence Informatique - Université de
On trouve au sein d'un processeur : des éléments de mémorisation : (banc de) registres - cache des éléments de calcul : unité arithmétique et logique
Fonctionnement et performance des processeurs
Lecture en mémoire ou des registres pour envoyer les opérandes à l'unité de calcul ou d'accés en mémoire Registre = mots mémoire internes au processeur.
Cours dArchitecture des ordinateurs
6.5.1 Registre élémentaire . 6.5.2 Registre `a décalage . ... Le processeur traite des informations ; les registres sont utilisés pour stoker ...
[PDF] CPU et mémoire
Registre (ou l'ensemble de registres) utilisé pour la manipulation des données D'habitude contient les résultats des opérations arithmétiques ou logiques Page
[PDF] Architecture des ordinateurs
Architecture de von Neumann • Processeur • Gère l'allocation du BUS • Décode et exécute les instructions • Possède une petite mémoire locale (registres)
[PDF] But de ce sujet Les registres du processeur - CoursTechInfo
http://www courstechinfo be/Programmation/IntroASM pdf Les registres décrits ci-dessous sont les registres du 8086 l'ancêtre des processeurs qui sont
[PDF] Etapes dexécution des instructions
réaliser l'étape d'exécution – LI: accès à la file d'instructions – DE : accès aux registres – CA : unité de calcul – ER : accès registre et mémoire de
[PDF] INTRODUCTION - IUT de Bayonne
13 à 2 13 2 Espace mémoire 16K 64K 64K 64K Registres d'usage général L'instruction WAI provoque l'arrêt du processeur jusqu'à ce qu'arrive une
[PDF] chapitre 3- le processeur 1 introduction - ecosys
La taille des registres dépend de l'architecture mais est généralement de quelques octets et correspond au nombre de bit de l'architecture (exemple un
[PDF] Types et performances des processeurs
mémoire et stockée dans un autre registre du processeur: le IR (Instruction PC ? PC+1 différents champs est appelée le format de l'instruction
[PDF] 7 Les processeurs - Inria
le processeur dispose d'un registre appelé PC ( Program Counter) qui contient l'adresse en mémoire de la prochaine instruction à exécuter ; le processeur
[PDF] cours 10 processeurpdf - Les pages perso du LIG
1 LE PROCESSEUR Introduction • Exécution d'instructions machines Un seul registre de calcul appelé ACC (Accumulateur) • Jeu d'instructions!:
[PDF] Microprocesseur - Cours tutoriaux et travaux pratiques
Chacun des bits du registre d'état est un indicateur d'état ou flag (drapeau) Exemple : registre d'état du microprocesseur Z80 : 0 1
Quels sont les registres d'un processeur ?
Il existe ainsi deux types de registres : les registres architecturaux, manipulables par des instructions, et les registres internes aux processeurs. Ces derniers servent à simplifier la conception du processeur ou mettre en œuvre des optimisations de performance.Quel est le rôle de registres dans un processeur ?
Un registre de processeur est l'un des plus petits emplacements de stockage de données du processeur. Un registre peut contenir une instruction, une adresse de stockage ou toute autre donnée (une séquence de bits ou des caractères individuels, par exemple).Quels sont les registres généraux ?
Registres généraux
Ceux-ci peuvent stocker indifféremment des adresses, des entiers, des flottants, etc. Par exemple, le Motorola 68000 dispose de 8 registres de données banalisés (D0 à D7) et de 8 registres d'adresses (A0 à A7, banalisés sauf A7 qui sert de pointeur de pile).- Ainsi, selon la largeur de ces registres (sur les nombres entiers) on parlera de microprocesseur 8 bits, 16 bits, 32 bits, et actuellement 64 bits, bien qu'il existe des processeurs spécialisés, notamment les GPU (cartes graphiques) capables de monter plus haut.
Le processeur
© P. Sicard-Cours ALM 10
1LE PROCESSEUR
Introduction
•Exécution d'instructions machines •Instructions et données des programmes se trouvent dans une mémoire (Architecture de Von Neuman - 1948) •Machine algorithmique particulière1100 0010
1101 0010
1100 0010
10001111
10101010
0taille -1AdressesBus adressesBus donnéesMémoire vive (RAM)RIRegistresdecalculsPCUALProcesseur
Instructions
machinesDonnées
Le processeur
© P. Sicard-Cours ALM 10
2LE PROCESSEUR
Le processeur
© P. Sicard-Cours ALM 10
3Brève historique
•Processeurs dans les micro-ordinateurs AnnéeNom (fabriquant)Bus données/adrHorlogeOrdinateur1975-80
6502 (MOS
technologie)8 /16 bits1 Mhz
Atari-Apple II-
Commodore 64
19798088 (Intel)8/16 bits5 MhzPC19808086(Intel)16/16 bits5 MhzPC1980-9068000(Motorola)16/24 bits8 puis 16 MhzMAC
199080386 puis
80486 (Intel)
32/32 bits25 puis 50 MhzPC1995
PowerPC (Apple-
IBM-Motorola)
32/64 bits50 puis 100MAC
1995Pentium (Intel)32/6460PC2000PowerPC/Pentium32/36300MAC/PC
2006Core/core duo
(Intel)32/361 à 3 GigaHzMAC et PC
2010Core i7 (Intel)64/643 à 4 GigaHzMAC et PC
Le processeur
© P. Sicard-Cours ALM 10
4Evolution processeur (Source Intel)
10 µm6 µm3 µm1,5 µm1 µm0.8 µm0.25 µm0.18 µm90 nm65 nm45 nm
Taille du transistor (micro: 10
-6 mètre, nano 10 -9 mètre)Le processeur
© P. Sicard-Cours ALM 10
5Architecture générale
•CISC: Complexe Instruction Set Computer •Jeu d'instructions complexe pour "aider" les compilateurs •Nombreux modes d'adressage •Instructions de tailles différentes •Instructions de durées différentes •Jusqu'en 1995 •RISC: Reduce Instruction Set Computer •Jeu d'instructions restreint •Permet de "pipeliner" l'exécution des instructions •Plusieurs instructions s'exécute en même temps •Chacune est dans une phase différente à un moment donné •Exemple: ARM : 4 phases •Instructions de taille unique •Instructions de durée unique (pas tout à fait vrai pour load/ store) •A partir du PowerPC et du PentiumLe processeur
© P. Sicard-Cours ALM 10
6Algorithme du processeur
•Soit Mem le tableau représentant la mémoire •Soit PC la variable contenant l'adresse de l'instruction en cours d'exécution •Soit RI une variable contenant l'instruction machine à exécuter •Le jeu d'instruction du processeur est composé de N instructions•PC=0!; /*il faut bien commencer quelque part, la première instruction doit être à l'adresse 0
en mémoire*/ •Tant que vrai faire -RI=Mem[PC]!; /*Une instruction!: 1 mot mémoire, variable suivant les processeurs*/ -PC=PC +1!; /*On passe à l'instruction suivante, cas particulier pour les branchementsPC = adresse de branchement*/
-Suivant RI!:Instruction1!: exécuter instruction1
Instruction2!: exécuter instruction2
InstructionN!: exécuter instructionN
Le processeur
© P. Sicard-Cours ALM 10
7 •Définition des caractéristiques du processeur -Définition de la taille des données et des adresses(Bus) -Définition du jeu d'instructions!: opérations possibles, registres, mode d'adressage, instructions spéciales pour langage haut niveau (saut à sous programme...) -Choix du codage des instructions (taille des instructions) • Exemple!: " -ARM !: 32 bits d'adresse, données 32!; instructions sur 32 bits -68000!: adresse sur 24 ou 32 bits, données sur 8 ou 16 bits, instructions sur 8,16, 24 32,64 bitsLe processeur
© P. Sicard-Cours ALM 10
8Etude sur un processeur "Ecole"
•Taille des données!et des adresses: 1 mot (par exemple 8 bits) •-> Taille maximale de la mémoire 256 octets •Instructions sur 2 mots •Un seul registre de calcul appelé ACC (Accumulateur) •Jeu d'instructions!: -Load "#Vi!"! Acc= Vi (Valeur immédiate) -St "Adresse"! Mem[Adresse]=Acc -Jmp"Ad" ! PC=Ad, difference avec le ARM!: déplacement -Add"Ad" ! Acc!=Acc+ Mem[Ad]Le processeur
© P. Sicard-Cours ALM 10
9Codage des instructions
•Format et codage des instructions •Mot1, Mot2 •Mot1 contient le code opération -4 valeurs!(en décimal): Load!: 0 , St!: 1, Jmp!: 2, Add!: 3 •Mot2 contient -soit la valeur immédiate (Load), -soit l'adresse(St, Jmp, Add) •Exemple de programme en assembleur "!Ecole!» -Adresse Contenu0" 0"" Load # 3
1" 3
2" 3""Etiq1!: "Add [5]
3" 5
4" 2"" Jmp Etiq1
5" 2
Le processeur
© P. Sicard-Cours ALM 10
10Algorithme détaillé du processeur Ecole
•PC=0!; •Tant que vrai faire -RI1=Mem[PC]!; -PC=PC +1!; -RI2=Mem[PC]!;"/*Instruction sur 2 mots ! 2 registres instr*/ -PC=PC +1!; -Suivant RI1!: • 0!: ACC=RI2 """ /* Load */ • 1!: Mem[RI2]=ACC"" /* Store */ • 2!: PC=RI2"""" /* Jump */ • 3!: ACC=ACC+ Mem[RI2]" /* Add */Le processeur
© P. Sicard-Cours ALM 10
11Architecture PC/PO
•Registres!: PC, RI1, RI2, ACC •Operations!: •+1, •Addition, •Calcul des conditions RI1= 0, 1 , 2, 3!? •Entrées sorties!: bus données (E/S), Bus adresse (S) •On suppose que la lecture/écriture en mémoire peut se passer en 1 cycle d'horloge du processeur. •Poignée de main simplifiée pour les E/S, plus besoins de signauxEntréePrise et SortiePrise.
Le processeur
© P. Sicard-Cours ALM 10
12La partie opérative
PO "standard"
RI2PCBus opérande2Bus opérande1Bus RésultatRI1ACCLe processeur
© P. Sicard-Cours ALM 10
13Load : ACC=RI2
"RI2 ! Opérande 1, "Bus Resultat ! ACC RI2PCBus opérande2Bus opérande1Bus RésultatRI1ACCOpération de l'UAL : RES=Opérande 1
Le processeur
© P. Sicard-Cours ALM 10
14Jump: PC=RI2
"RI2 ! Opérande 1 "Bus Resultat ! PCOpération de l'UAL : RES=Opérande 1
RI2PCBus opérande2Bus opérande1Bus RésultatRI1ACCLe processeur
© P. Sicard-Cours ALM 10
15Add: ACC= ACC + Mem[RI2]
"RI2 ! Bus Adresse, "Bus Donnée ! opérande 2 "ACC ! opérande 1 "Bus Resultat ! ACC Opération de l'UAL : RES=Opérande 1 + Opérande 2RI2PCBus opérande1Bus RésultatRI1ACC
Bus adresseBus donnéeBus opérande2
Le processeur
© P. Sicard-Cours ALM 10
16Store: Mem[RI2]=ACC
"RI2 ! Bus Adresse, "ACC ! Bus DonnéeOpération de l'UAL : Indifférent
RI2PCBus opérande1Bus RésultatRI1ACC
Bus adresseBus donnéeBus opérande2
Le processeur
© P. Sicard-Cours ALM 10
17RI1=Mem[PC], RI2=Mem[PC]
"PC ! Bus Adresse, "Bus Donnée ! Opérande2 "Bus Résultat ! RI1 ou RI2Opération de l'UAL : Res=Opérande 2
RI2PCBus opérande1Bus RésultatRI1ACC
Bus adresseBus donnéeBus opérande2
Le processeur
© P. Sicard-Cours ALM 10
18PC= PC+1
"PC ! Opérande1, "Bus Resultat ! PCOpération de l'UAL : Res=Opérande 1 + 1
RI2PCBus opérande1Bus RésultatRI1ACC
Bus adresseBus donnéeBus opérande2
Le processeur
© P. Sicard-Cours ALM 10
19SUIVANT RI1:
Pris directement dans RI1 , inutile de passer dans l'UAL (1 état supplémentaire dans la PC)00, 01, 10 et 11!:"Bit0RI1 / Bit1RI1
Opération de l'UAL : Indifférent
RI2PCBus opérande1Bus RésultatRI1ACC
Bus adresseBus donnéeBus opérande2
2 bits poids
faible de RI1Le processeur
© P. Sicard-Cours ALM 10
20La partie opérative
•En résumé 4 opérations dans l'UAL!: - Res=op1+op2 - Res=op1+1! - Res=op1 - Res=op2 •Il faut rajouter les signaux de contrôle -Commandes des sélections des bus opérande 1 et 2 -Liaison Bus Interne/externe (Adresse et donnée) -OpUAL -Chargement/initialisation registresLe processeur
© P. Sicard-Cours ALM 10
21La partie opérative avec les signaux de
contrôle2 bits Poids
faible vers partie contrôle RI2PCBus opérande2Bus opérande1Bus Résultat chPCOpUALSRI2op1RI1ACCchACCResetPC Bus adresseBus donnéePCAdRi2AdchRI2chRI1SACCop1SACCop2SPCop1Le processeur
© P. Sicard-Cours ALM 10
22La partie contrôle
Le processeur
© P. Sicard-Cours ALM 10
23Exemples: Signaux de contrôle
•Signaux mentionnés à 1 •Etat ACC=ACC+Mem[RI2]SACCop1, (ACC ! BusOpérande1)
Op2Don, Ri2Ad, ReadMemoire (Mem[RI2] ! BusOpérande2) OpUAL: code pour l'addition (BusOpérande1+ BusOpérande ! BusRésultat) chACC (BusRésultat ! ACC) •Etat: Mem[RI2]=ACCSACCop2, Op2Don, (ACC ! Busdonnée)
RI2Ad, WriteMemoire (BusDonnée ! Mem[RI2])
Le processeur
© P. Sicard-Cours ALM 10
24Améliorations
•Parallélisation de calcul -RI2=Mem[PC] // PC=PC+1 -RI1=Mem[PC] // PC=PC+1 -On gagne 2 périodes d'horloge •Il faut rajouter dans la PO!: -Le bus donnée doit arriver à l'entrée de RI1 et RI2 sans passer par l'UAL -Du coup, le bus résultat ne doit plus arriver à l'entrée de RI1 et RI2 -On n'a plus besoin de l'opération Res=op2 dans l'UALLe processeur
© P. Sicard-Cours ALM 10
25La partie opérative bis
2 bits Poids
faible vers PC RI2PCBus opérande2Bus opérande1Bus RésultatchPCOpUALSRI2op1RI1ACCchACCResetPC Bus adresseBus donnéePCAdRi2AdchRI2chRI1SACCop1SACCop2PCop1Le processeur
© P. Sicard-Cours ALM 10
26La partie contrôle bis
Le processeur
© P. Sicard-Cours ALM 10
27Extension du jeu d'instructions
• Un branchement conditionnel!suivant le flag N (branchement si négatif en complément à 2) - BrN adresse - Code 5Le processeur
© P. Sicard-Cours ALM 10
28Amélioration
• Un état inutile et un état commun avec l'instruction jmp InitPC=0RI1=Mem[PC]//PC=PC+1RI1=5 et NRI1=3PC=RI2RI1=2RI1=1RI1=0RI1=5 et NRI2=Mem[PC]//PC=PC+1Le processeur
© P. Sicard-Cours ALM 10
29Modification de la PO
• Flag N donné par l'UAL • Mémorisation du flag N dans une bascule (commande ChFlag) - Par exemple lors d'instructions de calcul (AddS du ARM), chargement de la bascule dans l'état du calcul du AddS • Sortie de la bascule vers la partie contrôleOpUALBasc
vers la PartieContrôle
ChFlag
Le processeur
© P. Sicard-Cours ALM 10
30Extension du jeu d'instructions
Instructions de calcul
•On augmente le nombre d'opérations de calcul possible!: add, sub, and, or ... •On peut choisir un code quelconque pour ces instructions •Un état par opérations de calcul après l'éclatement •On peut essayer de simplifier l'automate (au détriment de la PO) en se servant du code de l'instruction comme entrée des commandes de l'UAL. Il n'y a plus qu'un état pour ces 4 opérations. •Attention il faut rajouter un signal de commande supplémentaire permettant d'utiliser ou non cette fonctionnalitéLe processeur
© P. Sicard-Cours ALM 10
31Instructions de calcul
• Exemple!: -Instructions: jmp, st, load, add, sub, or, and -Changement du codage des instructions: • Champ OpCalcul dans l'instruction •1 bit pour déterminer le type d'instruction (calcul ou autres) •Choix des codes des instructions (en binaire) •add 000 •sub 001 •or 010 •and 011 •jmp 100 •st 101 •load 110Champ OpCalculChamp "Type d'instruction"
Le processeur
© P. Sicard-Cours ALM 10
32Instructions de calcul
• UAL conçu en fonction du choix des codes des instructions!: - Opération à effectuer dans l'UAL (sur 3 bits): • Res= op1+op2 000 • Res= op1-op2 001 • Res= op1 or op2 010 • Res= op1 and op2 011 • Res= op1+1! 100 • Res= op1 101Le processeur
© P. Sicard-Cours ALM 10
33Extension du jeu d'instructions
• Le calcul effectué dans l'UAL est défini - Soit directement par les 2 bits de poids faible de RI1, - Soit par les 2 bits envoyés par la PC; par exemple pour Etat1 : opUAL= 100 (Incr)InitEtat1
PC=0RI1=Mem[PC]//PC=PC+1
ACC=ACC op Mem[RI2]
SelOpCalcul
calcul OpUAL (états autre que calcul)2 bits poids faible
de RI1SelOpCalculUAL1 0
2SelOpCalcul
Le processeur
© P. Sicard-Cours ALM 10
34Augmentation du nombre de registres de
calculOn veut avoir N registres Reg
j de calcul au lieu d'un seul - Toute les instructions avec ces registres: • store Reg j , Adresse • add Reg j , Adresse • load Reg j , Vimmediate -Si on ajoute un état par instruction possible, le nombre d'états devient très grand -Même idée que précédemment on n'utilise qu'un seul état, le choix du registre est déterminé directement dans la PO -On ajoute dans l'instruction un champ "!Numéro de registre!» -On sélectionne le registre à envoyer sur les bus opérandes grâce à ce champ et à un décodeur (idem pour le choix du registre à charger)Le processeur
© P. Sicard-Cours ALM 10
35Augmentation du nombre de registres
• Changement du codage des instructions -16 registres: Reg0 à Reg15 -Champ "No Registre" (4 bits), Champ "Type intructions",Champ OpCalcul
• store Rj : NoRegistre, 1, 00 (indifférent) • add, sub, or, and Rj : NoRegistre, 0, Opcalcul • load Rj, Vi : NoRegistre, 1, 00 (indifférent) • jmp : 0000 (indifférent), 1, 00 (indifférent)OpCalculType d'instruction
No Registre
Le processeur
© P. Sicard-Cours ALM 10
36Augmentation du nombre de registres
•Il faut que le chargement et la sélection des registres sur les bus n'est lieu que dans les états où les registres sont concernés: commandes supplémentaires de la PC : Regload, RegBus1, RegBus2Bus Résultat
Regquotesdbs_dbs16.pdfusesText_22[PDF] difference entre registre et memoire
[PDF] sphere armillaire
[PDF] registre d'adresse
[PDF] sphère armillaire ancienne
[PDF] registre dinstruction processeur
[PDF] astrolabe
[PDF] circulaire douane maroc 2017
[PDF] dedouanement jet ski maroc prix
[PDF] admission temporaire définition
[PDF] relativité générale cours et exercices corrigés pdf
[PDF] dotation touristique maroc 2016
[PDF] cours de relativité générale
[PDF] les niveaux de langue exercices ? imprimer
[PDF] les registres de langue cycle 3