[PDF] [PDF] Etapes dexécution des instructions

Charger le 1er mot d'instruction de la mémoire principale vers le registre d' Pendant que le processeur travaille, l'unité de pré-extraction des instructions 



Previous PDF Next PDF





[PDF] CPU et mémoire

Exécute les instructions machines en utilisant les registres et l'UAL 2 registres pour la manipulation des instructions centrale et le processeur (registre) 



[PDF] Chapitre 2 - Cours

Processeur contient deux registres spéciaux • Registre d'instruction (RI) • Compteur ordinal (PC → Program Counter) • Traitement complet d'une instruction



[PDF] Architecture des ordinateurs - Licence Informatique - Université de

registre d'instruction RI : permet de stocker l'instruction qui doit être exécutée 击 T (Trap flag) : mis `a 1 le processeur fonctionne en mode pas `a pas



[PDF] Etapes dexécution des instructions

Charger le 1er mot d'instruction de la mémoire principale vers le registre d' Pendant que le processeur travaille, l'unité de pré-extraction des instructions 



[PDF] But de ce sujet Les registres du processeur - Cours Tech Info

Ces flags servent entre autre aux instructions de sauts conditionnels L'instruction pointeur IP Aussi appelé compteur ordinal est un registre qui s'incrémente sans



[PDF] Jeux dinstructions et modèles dexécution - CNU 27 Marseille

extraite de la mémoire et recopiée dans une registre du processeur, appelé Registre Instruction (IR) Jeux d'instructions et mod`eles d'exécution – p 3 



[PDF] Architecture des ordinateurs

L'instruction est stockée dans le registre d'instruction du processeur Page 25 Université de Savoie 25 Le traitement des instructions



[PDF] Les registres - FSG

4 mar 2017 · (recopiées dans des registres puis traitées par le processeur) 04/03/ Le processeur : vue externe ▫ Le pointeur et le registre d'instruction



[PDF] Fonctionnement et performance des processeurs - Eric Cariou

Registres ◇ Registre = mots mémoire internes au processeur ◇ Les registres de fonctionnement ◇ Compteur Ordinal (CO), Registre Instruction (RI),

[PDF] astrolabe

[PDF] circulaire douane maroc 2017

[PDF] admission temporaire marchandise maroc

[PDF] dedouanement jet ski maroc prix

[PDF] relativité générale einstein

[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

[PDF] livre de police garagiste legislation

[PDF] registre cancer poumon

[PDF] logiciel de calcul formel gratuit

[PDF] fiche utilisation geogebra

4. 1Etapes d'exécution des instructionsEtapes d'exécution des instructionsExécutionEcriture résultatRecherche opérandesRecherche instruction

4. 2Etapes d'exécution des instructions1. Cycle d'exécution des instructions Modèle de Von Neuman• Le CPU fait une boucle sans fin pour exécuter le programme chargé en mémoire centrale• Chaque étape correspond à une modification d'un composant du chemin de données (la mémoire ou les registres)• Les étapes dépendent de l'instruction à exécuter : opération à effectuer et mode d'adressage• Quelle que soit l'architecture, on retrouve des étapes similaires (même fonction) mais les étapes dépendent du chemin de données

4. 3Etapes d'exécution des instructions©W. Stallings " Computer Organization and Architecture »lecture enmémoire instructionà l'adresse PClecture et interprétationdes champs d'instructionlecture du ou des opérandescalculsécriture des résultatstraitement des interruptionsmatérielles (souris, clavier, ...)conditions d'erreur (division par 0,overflow, ...), défaut de pagecalcul de la nouvellevaleur de PC(dépend du format de l'instruction)

4. 4Etapes d'exécution des instructionsLecture d'instruction•Charger le 1er mot d'instruction de la mémoire principale vers le registre d'instruction Décodage•Lecture éventuelle des autres mots d'instruction (selon le format)•Ces valeurs sont stockées dans l'unité centrale dans des registres internes (registre d'opérande et de données)Recherche d'opérandes•Accès aux registres (si mode registre)•Calcul d'adresse et recherche d'opérandes mémoire (si mode mémoire)Exécution•Calcul dans l'ALU pour les instructions arithmétiques ou logiques•Calcul de l'adresse de branchement pour les instructions de contrôleEcriture résultat•Modification de l'opérande destination pour les instructions arithmétiques ou logiques•Modification de PC pour les instructions de contrôle

4. 5Etapes d'exécution des instructionsExemple : PROCSIMEMOIRERD1ROPPCBUSDATA_B

USRD2IRSRREG

ADDRESS_B

USASR/WR/WregCSreg3

4. 6Etapes d'exécution des instructionsExemple de décomposition en étapes pour PROCSIlecture instructionadd R2, # 80rad t pc ir t mem[rad]pc t pc + 1rad t pc rop t mem[rad]pc t pc + 1reg[ir(0..2)] t rd1lecture du 2ème mot d'instruction (constante 80)rd1 t reg[ir(0..2)]rd2 t roprd1 t rd1 + rd2ir(0..2) : bits 0, 1 et 2 de ir qui contiennent le code du registre destinationreg[ir(0..2)] est le registre destinationlecture du code instructiondécodagerecherche opérandeexécutionécriture résultatR2 <- R2 + 80

4. 7Etapes d'exécution des instructionsMEMOIRERD1ROPPCBUSDATA_B

USRD2IRSRREG

ADDRESS_B

USASR/WR/WregCSreg3

16SPRADdonnéesinstructionsDS1) Lecture instructionPC + 1ADD R2, #80 PC:000000 0100X010 80 6

Légende :en 1eren 2èmeen 3ème000000 0100X010

4. 8Etapes d'exécution des instructionsMEMOIRERD1ROPPCBUSDATA_BUSRD2IRSRREG

ADDRESS_B

USASR/WR/WregCSreg3

16SPRADdonnéesinstructionsDS2) décodagePC + 1PC :000000 0100X010 80 806

000000 0100X010

4. 9Etapes d'exécution des instructions3) recherche opérande 80 01017

MEMOIRERD1ROPPCBUSDATA_BUSRD2IRSRREG

ADDRESS_B

USASR/WR/WregCSreg3

16SPRADdonnéesinstructionsDS806

6

000000 0100X010000000 0100X010

4. 10Etapes d'exécution des instructions4) Exécution 80 17

MEMOIRERD1ROPPCBUSDATA_BUSRD2IRSRREG

ADDRESS_B

USASR/WR/WregCSreg3

16SPRADdonnéesinstructionsDS6680+86000000 0100X010

4. 11Etapes d'exécution des instructions5) Ecriture résultat 80 01017

MEMOIRERD1ROPPCBUSDATA_BUSRD2IRSRREG

ADDRESS_B

USASR/WR/WregCSreg3

16SPRADdonnéesinstructionsDS86686000000 0100X010

4. 12Etapes d'exécution des instructionsExemple de décomposition en étapes pour PROCSImem[rad] t rd1add [80], R3rad t pc ir t mem[rad]pc t pc + 1rad t pc rop t mem[rad]pc t pc + 1rd1 t reg[ir(3..5)]rad t roprd2 t mem[rad]rd1 t rd1 + rd2ir(3..5) : bits 3, 4 et 5 de ir qui contiennent le numéro du registre sourcereg[ir(3..5)] est le registre source (R3 ici)rd2 contient MEM[80]rop contient 80lecture instructiondécodagerecherche opérandeexécutionécriture résultatMEM[80] <- MEM[80] + R3

4. 13Etapes d'exécution des instructions2. Cycle d'exécution pipeline Pour manger : - il faut passer par tous les stands,- 4 personnes sont servies en même temps.Une personne met 12mn pour être servie.Toutes les 3mn une personne sort de la chaîne.Durée : 3 mn EveJulieAnneAladinSens du parcours

4. 14Etapes d'exécution des instructionsi8 ns24 ns24 nsi:i+1:i+2: 2 2 2 2 2 2 2 2 2 2 2 2 12 ns12 ns8 ns 2 2 2 2 i+18 ns 2 2 2 2 i+28 ns 2 2 2 2 SANS PIPELINEAVEC PIPELINE•Une instruction est divisée en k étapes indépendantes•Les étapes de plusieurs instructions s'exécutent en parallèle•Si une étape dure t unités de temps alors pour n instructions :-sans pipeline : t * k * n unités de temps-avec pipeline : t * k + t * (n-1) unités de temps2.1. Les principes

4. 15Etapes d'exécution des instructionsContraintes pour que le pipeline soit efficace :-chaque étape a la même durée : pas d'embouteillage !-chaque instruction passe par les mêmes étapes : contrôle simplifié, pas de trou dans le pipeline !rArchitecture RISC (commercialisé ~ 1986) : Jeu d'instructions et modes d'adressage simples, Accès mémoire par instructions spécialisées (LOAD/STORE), Débit d'une instruction par cycle : chaque étape dure un cycle donc une instruction sort du pipeline sur chaque cyclei:i+1:i+2: 1 1 1 1 1 1 1 1 1 1 1 1

4. 16Etapes d'exécution des instructionsJeu d'instruction RISC•plus de registresAMD 64 bits : registres AX, BX, CX, DX, DI, ... étendus à 32 bits (EAX, EBX, ...) et à 64 bits (RAX, ...) + 8 registres R8, ..., R15•moins de modes d'adressage : instructions de calcul en mode registre + instructions LOAD /STORE•instructions à 3 opérandesARM : add R1, R4, R5•instructions conditionnellesAMD 64 bits :cmp eax, ebxbnez suitemov ecx, edxcmp eax, ebxcmovz ecx, edx

4. 17Etapes d'exécution des instructions2.2. Etages de base •LI lecture d'instruction dans le cache d'instruction•DE décodage •CA calcul dans l'ALU (ou calcul d'adresse mémoire ou de branchement)•MEM accès à la mémoire dans le cache des données (pour les instructions LOAD/STORE)•ER écriture résultat (modification des registres ou de PC ou du cache de données)

4. 18Etapes d'exécution des instructionsNuméro d'instructionTop d'horlogeEtages d'exécutionSur le top d'horloge 4, il y a exécution en parallèle de l'écriture résultat (ER) de l'instruction i, du calcul (CA) de l'instruction i + 1, du décodage (DE) de l'instruction i+2 et de la lecture (LI) de l'instruction i+3

i:i+1:i+2:i+3: LI DE CA ER LI DE CA ER LI DE CA ER LI DE CA ERi:i+1:i+2:i+3: LI DE CA ER LI DE CA ER LI DE CA ER LI DE CA ER1234567i:i+1:i+2:i+3: LI DE CA ER LI DE CA ER LI DE CA ER LI DE CA ER1234567Schéma d'exécution temps / étage

4. 19Etapes d'exécution des instructionsExemples de pipeline•Pentium 4 : 20 étages•AMD 64 -12 étages pipeline entier et 17 étages pipeline flottant,-8 premiers étages = "Fetch/Decode" + "Pack/Decode" et "Dispatch", communs aux entiers et aux flottants •ARM -ARM 7, 3 niveaux (lecture d'instruction, décodage, exécution)5-StrongARM (ARM 8, 9 et SA-1) 5 niveaux (lecture d'instruction, lecture des registres et test de branchement, exécution, écriture cache, écriture registre)

4. 20Etapes d'exécution des instructions2.3. Comment ça marche ?•Chaque étage est "autonome" : il contient les composants nécessaires pour 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 données•Accès en parallèle aux ressources -Registres : deux accès en lecture et un en écriture simultanément-Mémoire centrale : cache d'instructions et cache de données•Deux étages successifs partagent les données-registres de stockages intermédiaires-l'étage i écrit le résultat, l'étage i+1 lit le résultat

4. 21Etapes d'exécution des instructionsPCMémoireExemple : Exécution de "add R2,R1,R2» suivi de "add R3,R4,R5»

RegistresLIDECAERALUInstDonnéesR2 <-R1 + R2 R3 < - R4 + R5»

R1=10R2=8R3=0R4=6R5=3

4. 22Etapes d'exécution des instructionsPCMémoireRegistresLIDECAERALUInstDonnéesR1=10R2=8R3=0R4=6R5=3TOP 1add R2,R1,R2Add R2 R1 R2Exécution de "add R2,R1,R2» suivi de "add R3,R4,R5»

InstDonnées

4. 23Etapes d'exécution des instructionsPCMémoireRegistresLIDECAERALUInstDonnéesadd R3,R4,R5TOP 2Add R3 R4 R5

Add R2 10

8accès à R1 et R2R1=10R2=8R3=0R4=6R5=3Exécution de "add R2,R1,R2» suivi de "add R3,R4,R5»

InstDonnées

4. 24Etapes d'exécution des instructionsPCMémoireRegistresLIDECAERALUInstDonnéesR1=10R2=8R3=0R4=6R5=3TOP 3Add R3 6 3accès à R4 et R510 + 8

Add R2 18Exécution de "add R2,R1,R2» suivi de "add R3,R4,R5»

InstDonnées

4. 25Etapes d'exécution des instructionsPCMémoireRegistresLIDECAERALUInstDonnéesR1=10R2=8R3=0R4=6R5=3TOP 4accès à R2186 + 3Add R3 9Exécution de "add R2,R1,R2» suivi de "add R3,R4,R5»

InstDonnées

4. 26Etapes d'exécution des instructionsPCMémoireRegistresLIDECAERALUInstDonnéesR1=10R2=18R3=0R4=6R5=3TOP 5accès à R39Exécution de "add R2,R1,R2» suivi de "add R3,R4,R5»

InstDonnées

4. 27Etapes d'exécution des instructionsL'exécution en parallèle rend le contrôle de l'exécution plus complexe :Gestion de l'accès simultané aux ressources partagéesr Aléas de données : un étage peut lire une donnée avant qu'elle ait été mise à jour•Gestion des instructions de branchement : les instructions dans le pipeline ne sont pas forcément exécutéesr Aléas de contrôle•Accès à des données d'autres unités fonctionnelles (cas superscalaire)r Aléas structurel3. Aléas du pipeline

4. 28Etapes d'exécution des instructions•lecture avant écriture d'un résultat, •écriture du résultat avant lecture de la donnée (exécution dans le désordre) Exemple: ADD R1, R2, R3 SUB R4, R1, R5instructionADD LI DE CA ERSUB LI DE CA EREcriture de R1Ecriture de R1Aléa de type " lecture avant écriture »lecture de R1lecture de R13.1. Aléas de données

4. 29Etapes d'exécution des instructionsSolution 1 : suspension d'exécutionADD R1, R2, R3SUB R4, R1, R5ADD LI DE CA ERSUB LI DE CA ERADD LI DE CA ERSUB LI susp susp DE CA EREcriture de R1Ecriture de R1lecture de R1lecture de R1Ecriture de R1Ecriture de R1lecture de R1lecture de R1

4. 30Etapes d'exécution des instructionsSolution 2 : bypass• la sortie de l'ALU est utilisée directementPour l'exemple "add R1,R2,R3» suivi de "add R6,R1,R5», lors du décodage de "add R6,R1,R5», on utilise la valeur de bypass (i.e sortie de l'ALU après calcul de R2 + R3) au lieu d'aller lire la valeur de R1 dans la RAM.PCLIDECAERALUAdd R6 8 3accès à R1 et R58+0

R1 88

4. 31Etapes d'exécution des instructionsExemple de bypass avec l'ARM SA-110Programme LDR r1,[r0 + 4]MOV r2,r1

4. 32Etapes d'exécution des instructions3.2. Aléas de contrôle

Les instructions qui suivent une instruction de branchement (jmp) ne doivent pas être exécutées.Pourtant, elles sont dans le pipeline r suspension du pipeline LI DEi : jmp 360 i + 1i + 2i + 3LI A la fin du décodage du " jmp » on sait qu'il s'agit d'un saut- il ne faut pas exécuter les instructions suivantes- il faut suspendre l'exécution jusqu'à ce que l'adresse de branchement soit connue ® étage ER

4. 33Etapes d'exécution des instructions LI DE CA ER i : jmp 360i + 1i + 2i + 3inst 360LI suspsuspH1234

suspsuspsusp5

LI DE CA ER Pénalité de 3 tops d'horloge !!!Pénalité de 3 tops d'horloge !!!A la fin de l'étage ER du jmp, on connaît l'adresse de branchement (PC a été modifié)® l'exécution peut reprendre à l'adresse de branchementProblème :- on a exécuté l'étape LI de i+1 inutilement- l'étape LI est un accès mémoire donc coûteux

4. 34Etapes d'exécution des instructionsSolution : branchement avec délai LI DE CA ER jmp 360i + 1i + 2i + 3 LI DE CA ER suspsusp LI DE CA ER Toujours exécutéeToujours exécutéesusp• Si i est une instruction de saut, on exécute toujours l'intruction i+1•Après décodage du jmp, on sait qu'il faut suspendre l'instruction i+2 ® pas d'étape LI inutile• Le compilateur se charge de choisir l'instruction qu'il faut placer dans le délaiinst 360

4. 35Etapes d'exécution des instructionsBranchement avec délai : Optimisation de codeObjectif : remplir au mieux le pipeline tout en gardant la sémantique du programme® le compilateur " choisit » l'instruction à mettre derrière le branchement ® réorganisation du code ou insertion de NOP (instruction "no operation")ADD R1,R2,R3jmp boucledélaiNOPInsertion de NOPADD R1,R2,R3 jmp boucledélaiInstruction avantjmp boucleADD R1,R2,R3ADD R1,R2,R3jmp boucleGénéré par compilateur

4. 36Etapes d'exécution des instructionson sait dans l'étage DE du bcc si le branchement doit être pris ou non® avec le délai, on n'a aucune suspension dans le cas où le branchement est pris LI DE CA ER Bcc 360i + 1bcc PRISbcc NON PRIS LI DE CA ER susp LI DE CA ER LI DE CA ER suspBranchement avec délai: cas des branchements conditionnels (bcc)inst 360Inst i + 2 Toujours exécutéeToujours exécutée

4. 37Etapes d'exécution des instructions• Dans le cas des branchements conditionnels, pour savoir quelle instruction mettre dans le délai, il faut "décider" si le branchement sera pris ou non : c'est la prédiction de branchement• Une première prédiction est faite de façon statique (on choisit d'office que le branchement est pris par exemple); le compilateur tient compte de ce choix pour réorganiser le code• Ensuite on corrige les prédictions de façon dynamique : la partie contrôle change la prédiction si elle était mauvaise

4. 38Etapes d'exécution des instructionsBranchement conditionnel avec délai: Optimisation de codePrédiction STATIQUE

si R2 =0 alorsADD R1,R2,R3Instruction avantADD R1,R2,R3si R1 =0 alorsdélaiInstruction cibleMOV R0,R1SUB R5,R6,R7ADD R1,R2,R3si R1 =0 alorsSUB R5,R6,R7Instruction aprèsADD R1,R2,R3si R1 =0 alorsSUB R5,R6,R7ADD R1,R2,R3si R2 =0 alorsdélaiMOV R0,R1SUB R5,R6,R7ADD R1,R2,R3si R1 =0 alorsdélaiMOV R0,R1SUB R5,R6,R7MOV R0,R1SUB R5,R6,R7MOV R0,R1SUB R5,R6,R7MOV R0,R1pas de dépendance entre inst. avant et condition de testdépendance entre inst. avant et condition de test.spéculation branch prisdépendance entre inst. avant et condition de test.spéculation branch non pris

4. 39Etapes d'exécution des instructionsPrédiction de branchement DYNAMIQUE : (bas niveau, par la partie contrôle)Pendant que le processeur travaille, l'unité de pré-extraction des instructions travailleet lit les instructions qu'il faudra exécuter bientôt ® prédiction spéculative du fait que le branchement courant sera pris ou pas.Algorithme de Smith (prédiction à 2 bits):PFPFNPNPprisprisprisprisnon prisnon prisnon prisnon prisP: PrisFP: Faiblement PrisFNP: Faiblement Non Pris NP: Non Pris

4. 40Etapes d'exécution des instructionsPourquoi tant de mal?• Instructions de branchement : 20% des instructions d'un programme • Branchement conditionnel pris dans 60% des cas• Branchement pris - des instructions ont été chargées dans le pipeline inutilement (il faut stopper leur exécution)- l'instruction peut ne pas être dans la file des instructions (ni dans le cache d'instruction, ni dans la mémoire centrale) -> accès disque -> coûteux !•Branchements avec délais + optimisation de code : dans les DSP (ex : téléphones portables)•Dans les CPU actuels, la prédiction des branchements permet d'anticiper l'exécution dans le désordre

4. 41Etapes d'exécution des instructions4. Une version pipeline de PROCSI: PIPSI•Pipeline de 4 étages: LI (instruction fetch), DE (decode), EX (execute), EC (écriture)•Opérations arithmétiques/logiques : seulement modes registre/registre et immédiat / registre•Accès mémoire par instruction load/store en mode direct et indirect•Toutes les instructions sont codées sur 2 mots de 16 bits•Cache de données (1 cycle processeur)•Cache d'instruction (1 cycle processeur)•Le banc de registres internes (REG) permet 2 accès lecture et un accès écriture simultanément (i.e sur un même top)

4. 42Etapes d'exécution des instructionsPcdePcexROPROPdeROPexPCIRIrdeIrexCache instructionCache donnéesREG+2Ad-read1Ad-read2RD1RD2ou

t1 ou t2FEtchDEcodeEXecuteresexECritureData-in

Data-ou

tinAd-write

Address

Data_h

igh

Data_l

ow

Adress3

33

4. 43Etapes d'exécution des instructionsadd R7, #1FEir <- memi[pc]rop <- memi[pc+1]pc <- pc + 2DErd1 <- roprd2 <- reg[ir[0..2]]pcde <- pcirde <- irropde <- ropEXresex <- rd1 + rd2pcex <- pcdeirex <- irderopex <- ropdeECreg[irex[0..2]] <- resex store [80], R0FEir <- memi[pc]rop <- memi[pc+1]pc <- pc + 2DErd1 <- reg[ir[3..5]]pcde <- pcirde <- irropde <- ropEXresex <- rd1pcex <- pcdeirex <- irderopex <- ropdeECmemd[ropex] <- resex FEaccès mémoire inst.1er mot dans ir2ème mot dans ropDErecherche d'opérandesEXcalculslecture mém. dataECécriture regécriture mém. data

quotesdbs_dbs16.pdfusesText_22