• Aucun résultat trouvé

Systèmes à Microprocesseurs

N/A
N/A
Protected

Academic year: 2022

Partager "Systèmes à Microprocesseurs"

Copied!
28
0
0

Texte intégral

(1)

Systèmes à Microprocesseurs

Cycle Ingénieur Troisième Année

Sébastien Bilavarn

Cycle Ingénieur Troisième Année

Systèmes à Microprocesseurs

Cycle Ingénieur Troisième Année

Sébastien Bilavarn

Cycle Ingénieur Troisième Année

(2)

Ch1 – Représentation de l’information

Ch2 – ARM Instruction Set Architecture

Ch3 – Accès aux données

Ch4 – Programmation structurée

Ch5 – Cycle d’exécution

Ch5 – Cycle d’exécution

Ch6 – Codage binaire

Ch7 – Microcontrôleur ARM Cortex

Plan

Représentation de l’information ARM Instruction Set Architecture Accès aux données

Programmation structurée Cycle d’exécution

Cycle d’exécution Codage binaire

Microcontrôleur ARM Cortex-M

(3)

Exécution du processeur ARM

Exécution du processeur ARM

Rôle de l’unité de commande

Cycle instruction

Exécution pipeline

(4)

Rôle de l’unité de commande

Contrôle des accès mémoire

Pour l’accès aux instructions/données

Positionne les signaux nécessaires pour un accès aux

instructions/données en mémoire

Décodage des instructions

Interprétation des instructions

Interprétation des instructions

Processus de transformation d’une instruction en signaux de commande

Contrôle de l’unité de traitement

Pour l’exécution d’une instruction

Positionne les signaux nécessaires pour l’exécution d’une instruction

Rôle de l’unité de commande

Positionne les signaux nécessaires

Séquenceur Décodeur

Unité de traitement

décal File

de registres Reg addr.

Unité de commande

Signaux de contrôle

Rd

Rn Rm

bus A

bus B

Processus de transformation d’une instruction en signaux de commande

Contrôle de l’unité de traitement

Pour l’exécution d’une instruction

Positionne les signaux nécessaires

UAL

décal

mémoire

Reg din Reg dout

Signaux de contrôle Signaux de contrôle

Reg inst

A

(5)

Rôle de l’unité de commande

Contrôle des accès mémoire

Accès aux instructions

Pour l’exécution du programme, pendant la phase de recherche d’une instruction en mémoire

Registre d’adresses: contient l’adresse de l’instruction à exécuter

Registre d’instructions:

Registre d’instructions:

l’instruction correspondante est renvoyée dans le registre

d’instruction pour décodage

Accès aux données

Pendant l’exécution d’une instruction load/store.

Registres de données (Reg din, Reg dout)

Génération des signaux

positionne tous les signaux de contrôle mémoire nécessaire

Rôle de l’unité de commande

Séquenceur Décodeur

File de Registres Reg addr.

Pour l’exécution du programme,

pendant la phase de recherche

PC

mémoire

l’instruction correspondante est

Registres de données (Reg din,

Reg inst

Reg din Reg dout

(6)

Rôle de l’unité de commande

Décodage des instructions

Convertir une instruction en signaux de commande

Le décodage consiste à transformer la représentation binaire 32 bits d’une instruction en signaux synchronisés

Pour le séquencement de l’unité de traitement

Pour le séquencement de la mémoire

Pour le séquencement de la mémoire

Processus complexe qui dépend de nombreux paramètres

Type de l’instruction (traitement, transfert, etc)

Opérandes (valeur immédiate, registre, registre avec décalage)

Bits du registre d’état pour évaluation d’une condition d’exécution (ex:

branchement si egal)

Mode d’adressage Type de données

Rôle de l’unité de commande

Séquenceur Décodeur

Convertir une instruction en signaux de

Le décodage consiste à transformer la représentation binaire 32 bits d’une instruction en signaux synchronisés Pour le séquencement de l’unité de Pour le séquencement de la mémoire

Unité de traitement

Pour le séquencement de la mémoire

Processus complexe qui dépend de

Opérandes (valeur immédiate, registre, Bits du registre d’état pour évaluation

Reg inst

mémoire

(7)

Rôle de l’unité de commande

Contrôle de l’unité de traitement

Circulation des données dans l’unité de traitement

Sélection des registres dans la file de registres pour chaque opérande (Rn, Rm) et pour le résultat (Rd)

Sélection des opérations

Sélection des opérations

Décalage (arithmétique,

logique, rotation, nombre de décalages)

UAL (arithmétique, logique, fonction)

Exécution conditionnelle des instructions

Registre d’état (Current Program Status Register)

Rôle de l’unité de commande

Séquenceur Décodeur

décal File

de registres

Circulation des données dans

Sélection des registres dans la file de registres pour chaque opérande (Rn, Rm) et pour le

Rd

Rn Rm

UAL

décal

CPSR

logique, rotation, nombre de

Exécution conditionnelle des

(8)

Cycle instruction du ARM7

1. Phase de recherche ("fetch")

Recherche de l’instruction en mémoire

2. Phase d’analyse ("decode")

Décodage de l’instruction: analyse de la représentation binaire 32 bit de l’instruction et de ses opérandes pour mise en œuvre des signaux par l’unité de commande

Pour les phases suivantes, 2 cas possibles selon qu’il s’agit d’une instruction de traitement (sollicite l’unité de traitement) ou d’une instruction d’accès

mémoire (sollicite les unités de traitement et mémoire) mémoire (sollicite les unités de traitement et mémoire)

Pour une instruction de traitement de données:

3. Phase d’exécution ("execute")

Circulation des données, sélection des opérations, exécution conditionnelle

Pour une instruction d’accès mémoire:

3. Phase de calcul d’adresse ("address calc")

L’adresse est calculée par l’UAL et stockée dans le registre d’adresse

4. Phase d’accès mémoire ("data transfer")

L’adresse est envoyée à la mémoire qui lit/écrit la donnée

Cycle instruction du ARM7

1. Phase de recherche ("fetch")

Recherche de l’instruction en mémoire

2. Phase d’analyse ("decode")

Décodage de l’instruction: analyse de la représentation binaire 32 bit de l’instruction et de ses opérandes pour mise en œuvre des signaux par l’unité Pour les phases suivantes, 2 cas possibles selon qu’il s’agit d’une instruction de traitement (sollicite l’unité de traitement) ou d’une instruction d’accès

mémoire (sollicite les unités de traitement et mémoire) mémoire (sollicite les unités de traitement et mémoire)

Pour une instruction de traitement de données:

3. Phase d’exécution ("execute")

Circulation des données, sélection des opérations, exécution conditionnelle

Pour une instruction d’accès mémoire:

3. Phase de calcul d’adresse ("address calc")

L’adresse est calculée par l’UAL et stockée dans le registre d’adresse

4. Phase d’accès mémoire ("data transfer")

L’adresse est envoyée à la mémoire qui lit/écrit la donnée

(9)

Phase de recherche ("fetch"

Chargement du registre d’adresse

L’adresse de l’instruction à exécuter est contenue dans le registre PC (Program Counter)

Cette adresse est copiée dans le registre d’adresse

Lecture mémoire

L’adresse est placée sur le bus d’adresse

On calcule l’adresse de l’instruction suivante (PC+4)

Chargement du registre d’instructions

L’instruction est disponible sur le bus de données et copiée dans le registre d’instruction

PC est mis à jour (adresse + 4)

Cycle d’instruction

")

Chargement du registre d’adresse

L’adresse de l’instruction à exécuter

File de registres Reg addr.

PC Rd

Rn Rm

+4

L’instruction est disponible sur le bus de données et copiée dans le registre

mémoire

Reg inst

Bus d’adresse

Bus de données

(10)

Phase d’analyse ("decode")

Lecture du registre d’instruction

Le mot de 32 bits représentant l’instruction est extrait du registre d’instruction

L’instruction est décodée pour déterminer la séquence d’action à effectuer et avec quelles données.

Prise en compte du registre d’état

Instructions conditionnelles

Instructions conditionnelles

Sélection opérandes source / destination

Sélection opérandes source (valeur immédiate ou sélection des registres Rn et Rm)

Résultat (sélection de Rd)

Sélection des opérations à effectuer

UAL (logic/arith, function, invA, invB, Cin)

Décaleur (logic/arith, shift/rot, left/right, amount)

Cycle d’instruction

Lecture du registre d’instruction

effectuer et avec quelles données.

Prise en compte du registre d’état

Séquenceur Décodeur

décal File

de registres

Rd

Rn Rm

Sélection opérandes source (valeur immédiate ou sélection des registres

UAL (logic/arith, function, invA, invB,

UAL

décal

CPSR

(11)

Cycle instruction du ARM7

1. Phase de recherche ("fetch")

2. Phase d’analyse ("decode")

Pour une instruction de traitement de données:

3. Phase d’exécution ("execute")

3. Phase d’exécution ("execute")

Pour une instruction d’accès mémoire:

3. Phase de calcul d’adresse ("address calc")

4. Phase d’accès mémoire ("data transfer")

Cycle instruction du ARM7

1. Phase de recherche ("fetch") 2. Phase d’analyse ("decode")

Pour une instruction de traitement de données:

3. Phase d’exécution ("execute") 3. Phase d’exécution ("execute")

Pour une instruction d’accès mémoire:

3. Phase de calcul d’adresse ("address calc")

4. Phase d’accès mémoire ("data transfer")

(12)

Instruction de traitement:

phase d’exécution

Cas d’une instruction de type ADD Rd, Rn, Rm, shift

Les opérandes sont lus dans la file de registres. Rn est présenté sur la première entrée de l’UAL sur la première entrée de l’UAL (bus A). Rm est présenté sur l’entrée du décaleur (bus B).

Une opération de décalage est réalisée ainsi qu’une opération arithmétique ou logique.

Le résultat est renvoyé dans le registre de destination (Rd)

Cycle d’instruction

Instruction de traitement:

Cas d’une instruction de type

Les opérandes sont lus dans la file de registres. Rn est présenté

sur la première entrée de l’UAL

décal

File de registres

Rd

Rn Rm

bus A

bus B bus

UAL

sur la première entrée de l’UAL

Une opération de décalage est réalisée ainsi qu’une opération Le résultat est renvoyé dans le

UAL

décal

A

(13)

Instruction de traitement:

phase d’exécution

Cas d’une instruction de type ADD Rd, Rn, #litteral

Rn est lu dans la file de registres

#litteral

est obtenu à partir de l’’instruction (il est codé dans l’appel à l’instruction sur 8 bits+rotation)

Calcul de l’opération arithmétique ou logique.

Le résultat est renvoyé dans le registre de destination (Rd)

Cycle d’instruction

Cas d’une instruction de type

Rn est lu dans la file de registres

décal File

de registres

Rd

Rn Rm

#rot 8-bit

Calcul de l’opération arithmétique Le résultat est renvoyé dans le

UAL

décal

Reg inst

(14)

Cycle instruction du ARM7

1. Phase de recherche ("fetch")

2. Phase d’analyse ("decode")

Pour une instruction de traitement de données:

3. Phase d’exécution ("execute")

3. Phase d’exécution ("execute")

Pour une instruction d’accès mémoire:

3. Phase de calcul d’adresse ("address calc")

4. Phase d’accès mémoire ("data transfer")

Cycle instruction du ARM7

1. Phase de recherche ("fetch") 2. Phase d’analyse ("decode")

Pour une instruction de traitement de données:

3. Phase d’exécution ("execute") 3. Phase d’exécution ("execute")

Pour une instruction d’accès mémoire:

3. Phase de calcul d’adresse ("address calc")

4. Phase d’accès mémoire ("data transfer")

(15)

Cas d’une instruction de type STR Rd, [Rn, +/-Rm, shift]

Phase de calcul d’adresse

Le calcul d’adresse est effectué par l’UAL. Le résultat du calcul est

renvoyé dans le registre d’adresse.

renvoyé dans le registre d’adresse.

Cycle d’instruction

Cas d’une instruction de Rm,

Le calcul d’adresse est effectué par l’UAL. Le résultat du calcul est

renvoyé dans le registre d’adresse.

décal

File de registres

Rn Rm

Reg addr.

bus B bus

renvoyé dans le registre d’adresse.

A

UAL

décal

mémoire A

(16)

Cas d’une instruction de type STR Rd, [Rn, +/-Rm, shift]

Phase d’accès

L’adresse d’écriture contenue dans le registre d’adresse est envoyée sur le bus d’adresse

sur le bus d’adresse

La valeur du registre à copier (Rd) en mémoire est copiée dans le registre Reg dout

La donnée est envoyée sur le bus de données et écrite en mémoire

Cycle d’instruction

Cas d’une instruction de Rm,

L’adresse d’écriture contenue dans le registre d’adresse est envoyée

File de registres

Rn Rd

Reg addr.

bus B

La valeur du registre à copier (Rd) en mémoire est copiée dans le La donnée est envoyée sur le bus de données et écrite en mémoire

mémoire

Bus d’adresse

Reg dout Bus de données

(17)

Cas d’une instruction de type LDR Rd, [Rn, +/-Rm, shift]

Phase de calcul d’adresse

Le calcul d’adresse est effectué par l’UAL. Le résultat du calcul est

renvoyé dans le registre d’adresse.

renvoyé dans le registre d’adresse.

Cycle d’instruction

Cas d’une instruction de Rm,

Le calcul d’adresse est effectué par l’UAL. Le résultat du calcul est

renvoyé dans le registre d’adresse.

décal

File de registres

Rn Rm

Reg addr.

bus B bus

renvoyé dans le registre d’adresse.

A

UAL

décal

mémoire A

(18)

Cas d’une instruction de type LDR Rd, [Rn, +/-Rm, shift]

Phase d’accès

L’adresse de lecture est envoyée sur le bus d’adresse

La donnée est lue en mémoire

La donnée est lue en mémoire

La donnée est envoyée sur le bus de données

La donnée est acheminée vers le registre de destination (Rd)

Cycle d’instruction

Cas d’une instruction de Rm,

L’adresse de lecture est envoyée

La donnée est lue en mémoire

décal

File de registres

Rd Rn

Reg addr.

bus

La donnée est lue en mémoire

A

La donnée est envoyée sur le bus

La donnée est acheminée vers le

UAL

décal

mémoire

Bus d’adresse

A

Bus de données Reg din

(19)

Sur l’ARM7, les phases "fetch", "decode" et "execute"

prennent chacune un cycle d’horloge

Chaque instruction de traitement s’exécute donc en trois cycles d’horloge

Fetch Decode Execute

1 cycle 1 cycle 1 cycle

Convention des couleurs:

Vert: utilisation de la mémoire (fetch lit les instructions en mémoire)

Orange: utilisation du décodeur/séquenceur (analyse des instructions)

Bleu: utilisation de l’unité de traitement (exécution d’une instruction de traitement)

Exécution pipeline

Sur l’ARM7, les phases "fetch", "decode" et "execute"

prennent chacune un cycle d’horloge

Chaque instruction de traitement s’exécute donc en

Execute

Temps 1 cycle

Vert: utilisation de la mémoire (fetch lit les instructions en mémoire)

Orange: utilisation du décodeur/séquenceur (analyse des instructions)

Bleu: utilisation de l’unité de traitement (exécution d’une instruction de

(20)

Combien de temps pour exécuter la séquence d’instructions suivante ?

MOV r5, r3, LSL #1 MOV r5, r3, LSL #1

ADD r5, r5, r3, LSL #3 ADD r5, r5, r3, LSL #3 MOV r7, r5, LSL #1

MOV r7, r5, LSL #1

ADD r5, r5, r3, LSL #3 ADD r5, r5, r3, LSL #3 ADD r5, r5, r3, LSL #3 ADD r5, r5, r3, LSL #3

4 instructions x 3 = 12 cycles d’horloge ?

Exécution pipeline

Combien de temps pour exécuter la séquence d’instructions

MOV r5, r3, LSL #1 MOV r5, r3, LSL #1

ADD r5, r5, r3, LSL #3 ADD r5, r5, r3, LSL #3 MOV r7, r5, LSL #1

MOV r7, r5, LSL #1

ADD r5, r5, r3, LSL #3 ADD r5, r5, r3, LSL #3 ADD r5, r5, r3, LSL #3 ADD r5, r5, r3, LSL #3

4 instructions x 3 = 12 cycles d’horloge ?

(21)

Réponse: 6 cycles d’horloge !!

MOV r5, r3, LSL #1 MOV r5, r3, LSL #1

ADD r5, r5, r3, LSL #3 ADD r5, r5, r3, LSL #3 MOV r7, r5, LSL #1

MOV r7, r5, LSL #1

ADD r5, r5, r3, LSL #3 ADD r5, r5, r3, LSL #3

Fetch

Le pipeline permet de recouvrir les phases d’exécution

La division en phases indépendantes (fetch, decode, execute) permet de démarrer l’exécution d’une instruction avant que la précédente ne soit terminée

On peut démarrer la phase fetch dès la phase decode de l’instr précédente

On peut démarrer la phase decode dès la phase execute de l’instr précédente

Exécution pipeline

Réponse: 6 cycles d’horloge !!

Fetch Decode Execute Fetch Decode Execute

Fetch Decode Execute Decode Execute

Temps

Le pipeline permet de recouvrir les phases

La division en phases indépendantes (fetch, decode, execute) permet de

démarrer l’exécution d’une instruction avant que la précédente ne soit

On peut démarrer la phase fetch dès la phase decode de l’instr précédente

On peut démarrer la phase decode dès la phase execute de l’instr

(22)

Réponse: 6 cycles d’horloge !!

MOV r5, r3, LSL #1 MOV r5, r3, LSL #1

ADD r5, r5, r3, LSL #3 ADD r5, r5, r3, LSL #3 MOV r7, r5, LSL #1

MOV r7, r5, LSL #1

ADD r5, r5, r3, LSL #3 ADD r5, r5, r3, LSL #3

Fetch

On peut exécuter une instruction par cycle d’horloge

A partir du cycle 3, une phase d’exécution se termine à chaque cycle d’horloge

On utilise au mieux les ressources: 3 phases s’exécutent parfois simultanément

Condition: ne pas avoir 2 fois la même couleur dans le même cycle!!

Exécution pipeline

Réponse: 6 cycles d’horloge !!

Fetch Decode Execute Fetch Decode Execute

Fetch Decode Execute Decode Execute

Temps

On peut exécuter une instruction par cycle

A partir du cycle 3, une phase d’exécution se termine à chaque cycle On utilise au mieux les ressources: 3 phases s’exécutent parfois

Condition: ne pas avoir 2 fois la même couleur dans le même cycle!!

(23)

MOV r5, r3, LSL #1 MOV r5, r3, LSL #1

ADD r5, r5, r3, LSL #3 ADD r5, r5, r3, LSL #3 LDR r8, [r2, #12]

MOV r7, r8, LSL #1 MOV r7, r8, LSL #1

ADD r7, r7, r8, LSL #3 ADD r7, r7, r8, LSL #3

Fetch Fetch Decode Fetch Decode Execute

Ralentissement du pipeline: cas des instructions d’accès mémoire (1)

ADD r7, r7, r8, LSL #3 ADD r7, r7, r8, LSL #3 SUB r0, r7, r5

SUB r0, r7, r5

On insère une instruction d’accès mémoire (LDR r8, [r2, #12])

La phase addr calc utilise l’unité de traitement (bleu)

La phase de transfert utilise la mémoire (vert)

Les deux étapes transfert (LDR) et fetch (SUB) ne peuvent pas utiliser la mémoire simultanément

Exécution pipeline

Fetch Decode Execute Fetch Decode Addr calc

Decode Execute Execute

Ralentissement du pipeline: cas des instructions

Fetch Decode Execute Transfer

Temps

On insère une instruction d’accès mémoire (LDR r8, [r2, #12])

La phase addr calc utilise l’unité de traitement (bleu) La phase de transfert utilise la mémoire (vert)

Les deux étapes transfert (LDR) et fetch (SUB) ne peuvent pas utiliser la

Fetch Decode Execute

(24)

MOV r5, r3, LSL #1 MOV r5, r3, LSL #1

ADD r5, r5, r3, LSL #3 ADD r5, r5, r3, LSL #3 LDR r8, [r2, #12]

MOV r7, r8, LSL #1 MOV r7, r8, LSL #1

ADD r7, r7, r8, LSL #3 ADD r7, r7, r8, LSL #3

Fetch Fetch Decode Fetch Decode Execute

Ralentissement du pipeline: cas des instructions d’accès mémoire (2)

ADD r7, r7, r8, LSL #3 ADD r7, r7, r8, LSL #3 SUB r0, r7, r5

SUB r0, r7, r5

Solution: décaler la dernière instruction de 1 cycle

Décaler les phases de l’instruction SUB de 1 cycle

MAIS: l’instruction suivant LDR (MOV) a besoin de la valeur du registre r8 qui n’est pas disponible (transfert non terminé), elle ne peut donc pas s’exécuter.

Il faut à nouveau décaler les phases d’exécution de l’instruction MOV, et celle de l’instruction ADD

Exécution pipeline

Fetch Decode Execute Fetch Decode Addr calc

Decode Execute Execute

Ralentissement du pipeline: cas des instructions

Fetch Decode Execute Transfer

Temps

Solution: décaler la dernière instruction de 1 cycle

Décaler les phases de l’instruction SUB de 1 cycle

MAIS: l’instruction suivant LDR (MOV) a besoin de la valeur du registre r8 qui n’est pas disponible (transfert non terminé), elle ne peut donc pas Il faut à nouveau décaler les phases d’exécution de l’instruction MOV, et

Fetch Decode Execute

(25)

MOV r5, r3, LSL #1 MOV r5, r3, LSL #1

ADD r5, r5, r3, LSL #3 ADD r5, r5, r3, LSL #3 LDR r8, [r2, #12]

MOV r7, r8, LSL #1 MOV r7, r8, LSL #1

ADD r7, r7, r8, LSL #3 ADD r7, r7, r8, LSL #3

Fetch Fetch Decode Fetch Decode Execute

Ralentissement du pipeline: cas des instructions d’accès mémoire (3)

ADD r7, r7, r8, LSL #3 ADD r7, r7, r8, LSL #3 SUB r0, r7, r5

SUB r0, r7, r5

Solution: décaler les phases d’exécution des 2 avant dernières instructions

Ralentissement du pipeline: le cycle de l’instruction en cours est arrêté jusqu’à ce que la donnée soit disponible (géré par le processeur)

Apparition d’interruptions (

Le pipeline implique un surcoût en complexité pour sa mise en œuvre

Exécution pipeline

Fetch Decode Execute

Fetch Decode Addr calc Decode Execute

Execute

Ralentissement du pipeline: cas des instructions

Fetch Decode Execute

Transfer

Temps

Solution: décaler les phases d’exécution des 2 avant dernières

Ralentissement du pipeline: le cycle de l’instruction en cours est arrêté jusqu’à ce que la donnée soit disponible (géré par le processeur)

Apparition d’interruptions ("bulles") dans le pipeline

Le pipeline implique un surcoût en complexité pour sa mise en œuvre

Fetch Decode Execute

(26)

MOV MOV ADD ADD LDM MOV MOV ADD ADD

Fetch Fetch Decode Fetch Decode Execute Fetch Decode Execute

Ralentissement du pipeline: cas des instructions d’accès mémoire multiples

ADD ADD SUB

Autres cas de ralentissement du pipeline

L’exécution est ralentie par la durée de la phase de transfert

Exécution pipeline

Decode Execute Addr calc

Ralentissement du pipeline: cas des instructions d’accès mémoire multiples

Fetch Decode Execute

Transfer Transfer Transfer

Temps

Autres cas de ralentissement du pipeline

L’exécution est ralentie par la durée de la phase de transfert

Fetch Decode

(27)

MOV MOV ADD ADD

BNE suite MOV

MOV ADD ADD

Fetch Fetch Decode Fetch Decode Execute

Ralentissement du pipeline: cas des instructions de branchement (1)

ADD ADD

Suite: MUL

Si la condition de branchement (BNE) est fausse, on poursuit la séquence d’instruction (MOV, ADD). Il n’y a pas d’interruption du pipeline.

Exécution pipeline

Fetch Decode Fetch Decode Execute Decode Execute

Execute

Ralentissement du pipeline: cas des instructions

Fetch Decode Execute Execute

Si la condition de branchement (BNE) est fausse, on poursuit la séquence d’instruction (MOV, ADD). Il n’y a pas d’interruption du pipeline.

Temps

(28)

MOV MOV ADD ADD

BNE suite MOV

MOV ADD ADD

Fetch Fetch Decode Fetch Decode Execute

Ralentissement du pipeline: cas des instructions de branchement (2)

Suite: MUL

Si la condition de branchement (BNE) est vraie, on annule l’exécution des deux instructions suivantes, on poursuit à l’étiquette

(réinitialisation du pipeline).

C’est la tâche du programmeur d’écrire du code assembleur qui utilise efficacement le pipeline pour optimiser l’exécution d’un programme

Par exemple en utilisant l’exécution conditionnelle au lieu d’instructions de branchement (quand c’est possible), ou en ré

instructions pour éviter les ralentissement dus aux données non

Exécution pipeline

Fetch Decode Execute Fetch Decode Execute

Decode Execute Execute

Ralentissement du pipeline: cas des instructions

Fetch Decode Execute

Temps

Si la condition de branchement (BNE) est vraie, on annule l’exécution des deux instructions suivantes, on poursuit à l’étiquette Suite

(réinitialisation du pipeline).

C’est la tâche du programmeur d’écrire du code assembleur qui utilise efficacement le pipeline pour optimiser l’exécution d’un programme

Par exemple en utilisant l’exécution conditionnelle au lieu d’instructions de branchement (quand c’est possible), ou en ré-agençant les

instructions pour éviter les ralentissement dus aux données non

Fetch Decode Execute

Références

Documents relatifs

Unit´e de recherche INRIA Rennes, Irisa, Campus universitaire de Beaulieu, 35042 RENNES Cedex Unit´e de recherche INRIA Rhˆone-Alpes, 655, avenue de l’Europe, 38330 MONTBONNOT ST

1) Souvent, lassitude des groupes de travail qui conduit, entre autres, à ce que les scénarios sont construits par un minimum de personnes et qu'ils soient peu

In [16–18] we have proposed to define the semantics of ACLs starting from the assumption that the performance of certain communicative acts in a open multiagent system has the effect

Lecture : pour les hommes qui ont été au chômage entre 2006 et 2010 et exposés moins de 40 % de leur carrière aux risques psychosociaux, le risque de déclarer une santé

Using these cues and applying the predictions presented above (see Fig. 1 ), we compare results in efficiency and diversity of pollinators with allometric measures taken on the

Champ : demandeurs d’emploi dont le parcours déclaré est cohérent avec celui observé dans les fichiers administratifs, qui ont été aléatoirement orientés vers les prestations CVE

Au-delà des évolutions du marché du travail, différents facteurs peuvent affecter les données relatives aux demandeurs d’emploi : modifications du suivi et de l’accompagnement

Il s’agit davan‑ tage dans le présent article d’exposer les spécificités de l’apprentissage brut et brutal de la chirurgie en précisant le rôle prégnant des chefs