Construction du chemin de donnes Entres Contrle Mmoire

  • Slides: 36
Download presentation
Construction du chemin de données Entrées Contrôle Mémoire Chemin de données Sorties Const. C.

Construction du chemin de données Entrées Contrôle Mémoire Chemin de données Sorties Const. C. D. 1

Objectifs • Nous allons concevoir une mise en oeuvre contenant un noyau de jeu

Objectifs • Nous allons concevoir une mise en oeuvre contenant un noyau de jeu d’instructions. • Nous verrons comment l’architecture de jeu d’instructions définit beaucoup d’aspects de la mise en oeuvre • Nous verrons comment le choix de diverses stratégies de mise en oeuvre influence la fréquence d’horloge et le CPI. Const. C. D. 2

Plan • • • Introduction Construction d’un chemin de données Définition du contrôle Une

Plan • • • Introduction Construction d’un chemin de données Définition du contrôle Une mise en oeuvre à plusieurs cycles d’horloge Illusions et pièges Conclusion Const. C. D. 3

Introduction • Les performances des machines sont définies par trois facteurs clés : –

Introduction • Les performances des machines sont définies par trois facteurs clés : – le nombre d’instructions – le temps de cycles d’horloge – le nombre de cycles d’horloge par instruction. • Le compilateur et l’architecture de jeu d’instructions déterminent le nombre d’instructions requises pour un programme donné • La mise en oeuvre définis le temps de cycle d’horloge, ainsi que le nombre de cycles d’horloge par instruction. Const. C. D. 4

Description générale No. registre CP No. registre instruction ALU Registres Mémoire d'instructions Adresse No.

Description générale No. registre CP No. registre instruction ALU Registres Mémoire d'instructions Adresse No. registre Donnée Mémoire de données Donnée • Vue abstraite du sous ensemble MIPS montrant : – les unités fonctionnelles – les principales interconnections entre elles. Const. C. D. 5

Description générale No. registre CP No. registre instruction ALU Registres Mémoire d'instructions Adresse No.

Description générale No. registre CP No. registre instruction ALU Registres Mémoire d'instructions Adresse No. registre Donnée Mémoire de données Donnée • Le Compteur de programme fournit l’adresse de l’instruction à la mémoire d’instructions Const. C. D. 6

Description générale 1 CP No. registre instruction ALU Registres Mémoire d'instructions $1 Adresse No.

Description générale 1 CP No. registre instruction ALU Registres Mémoire d'instructions $1 Adresse No. registre Donnée Mémoire de données Donnée • Une fois l’instruction récupérée, les registres opérandes utilisés par une instruction sont spécifiés par des champs. La valeur des registres est exploité par l’UAL. Const. C. D. 7

Description générale 1 No. registre CP No. registre instruction ALU Registres Mémoire d'instructions No.

Description générale 1 No. registre CP No. registre instruction ALU Registres Mémoire d'instructions No. registre Donnée Adresse 2 Mémoire de données Donnée • L’utilisation de l’UAL dépend du type de l’instruction. 1 • Si l’opération est une instruction arithmétique, le résultat doit être écrit dans le registre Donnée. • Si l’opération est un chargement ou un rangement, le résultat est 2 utilisé comme adresse. Const. C. D. 8

Mise en oeuvre du sous ensemble MIPS 1. Nous allons tout d’abord examiner chaque

Mise en oeuvre du sous ensemble MIPS 1. Nous allons tout d’abord examiner chaque composante nécessaire à l’exécution de chaque type d’instruction MIPS. 2. Ensuite, chaque élément sera assemblé aux autres pour constituer le chemin de données. Const. C. D. 9

Mise en oeuvre du sous ensemble MIPS • • • Extraction des instructions Opération

Mise en oeuvre du sous ensemble MIPS • • • Extraction des instructions Opération arithmétique Rangement Chargement Branchement Const. C. D. 10

Mise en oeuvre du sous ensemble MIPS • • • Extraction des instructions Opération

Mise en oeuvre du sous ensemble MIPS • • • Extraction des instructions Opération arithmétique Rangement Chargement Branchement Const. C. D. 11

Extraction des instructions Adresse d'instruction CP ADD Somme Mémoire d'instructions Ecrire Mémoire d'instruction Compteur

Extraction des instructions Adresse d'instruction CP ADD Somme Mémoire d'instructions Ecrire Mémoire d'instruction Compteur de programme Additionneur • Deux éléments d'état sont nécessaires pour stocker et accéder aux instructions, ainsi qu’un additionneur pour calculer l'adresse de la prochaine instruction. • L'additionneur est une UAL câblée pour effectuer dans tous les cas une addition de ses deux entrées 32 bits et placer le résultat dans la sortie. Const. C. D. 12

Extraction des instructions • Voici une partie du chemin de données utilisé pour extraire

Extraction des instructions • Voici une partie du chemin de données utilisé pour extraire des instructions et incrémenter le compteur de programme. L'instruction extraite sera utilisée par d'autres parties de ce chemin. ADD 4 CP CP+4 Somme Adresse d'instruction Mémoire d'instructions Const. C. D. 13

Extraction des instructions • Mips utilise une mémoire 8 bits. Une instruction de 32

Extraction des instructions • Mips utilise une mémoire 8 bits. Une instruction de 32 bits est donc codées sur 4*8 bits. Il est donc nécessaire d’incrémenter de 4 octets l’adresse courante pour aller à l’instruction suivante. • Ainsi CP+4 est l’adresse de l’instruction suivante. ADD 4 CP CP+4 Somme Adresse d'instruction Mémoire d'instructions Const. C. D. 14

Décodage Instruction (vue du logiciel) 0 j k Registre numéro 1 Registre numéro 2

Décodage Instruction (vue du logiciel) 0 j k Registre numéro 1 Registre numéro 2 i 0 32 Registre écriture Instruction (vue du Matériel) Instruction Registre numéro 1 Registre numéro 2 Registre écriture Const. C. D. 15

Décodage Instruction (vue du logiciel) 0 j k Registre numéro 1 i Registre numéro

Décodage Instruction (vue du logiciel) 0 j k Registre numéro 1 i Registre numéro 2 0 32 Registre écriture Instruction (vue du Matériel) 0 j 5 k i 32 0 32 Donnée Contrôle Const. C. D. 16

Mise en oeuvre du sous ensemble MIPS • • • Extraction des instructions Opération

Mise en oeuvre du sous ensemble MIPS • • • Extraction des instructions Opération arithmétique Rangement Chargement Branchement $i=$j+$k Const. C. D. 17

Opérations Numéros de registres (adresses) Donnée Registre numéro 1 Opération UAL Donnée lue 1

Opérations Numéros de registres (adresses) Donnée Registre numéro 1 Opération UAL Donnée lue 1 Registre numéro 2 Registres Registre écriture Donnée lue 2 Donnée à écrire Donnée UAL Résultat UAL Ecrire • Les deux éléments pour réaliser les opérations UAL au format R sont : le banc de registres et L'UAL. – Le banc de registres contient tous les registres et fournit deux ports de lecture et un port d'écriture. Il fournit toujours en sortie le contenu des registres correspondant aux entrées des registres de lecture, alors que les écritures doivent être explicitement contrôlées par le signal de contrôle d'écriture. – L'opération que doit effectuer l'UAL est contrôlée par le signal d'opération de l'UAL, large de 3 bits dans notre cas. Const. C. D. 18

Opérations • Voici une partie du chemin de données utilisé pour réaliser des opérations.

Opérations • Voici une partie du chemin de données utilisé pour réaliser des opérations. La sortie de détection de zéro sera utile pour les opérations de branchements. Registre numéro 1 Instruction Donnée lue 1 Registre numéro 2 Registres Registre écriture Donnée lue 2 UAL zéro Résultat UAL Donnée à écrire Const. C. D. 19

Opérations add $i, $j, $k, 0 signification $i=$j+$k j k i 0 32 0

Opérations add $i, $j, $k, 0 signification $i=$j+$k j k i 0 32 0 5 bits j $J k J i k 0 D é c o d a g e Registre numéro 1 Donnée lue 1 UAL Registre numéro 2 Résultat UAL Registres Registre écriture Donnée à écrire zéro Donnée lue 2 $k 32 Const. C. D. 20

Opérations add $i, $j, $k, 0 signification $i=$j+$k j k i 0 32 0

Opérations add $i, $j, $k, 0 signification $i=$j+$k j k i 0 32 0 5 bits j $J k J i k 0 D é c o d a g e i Registre numéro 1 Donnée lue 1 UAL Registre numéro 2 Résultat UAL Registres Registre écriture Donnée à écrire zéro Donnée lue 2 $k $j+$k 32 $j+$k Const. C. D. 21

Mise en oeuvre du sous ensemble MIPS • • • Extraction des instructions Opération

Mise en oeuvre du sous ensemble MIPS • • • Extraction des instructions Opération arithmétique Rangement Mémoire($i+100)=$j Chargement $j=Mémoire($i+100) Branchement Const. C. D. 22

Rangement et chargement Ecrire Registre numéro 1 Donnée lue 1 Registre numéro 2 Registres

Rangement et chargement Ecrire Registre numéro 1 Donnée lue 1 Registre numéro 2 Registres Registre écriture Donnée à écrire Donnée lue 2 Adresse Lecture UAL zéro Résultat UAL Donnée lue Mémoire de données Adresse écriture 16 32 Etendre signe Donné à écrire Lecture • Outre le banc de registres et l'UAL, les deux unités nécessaires pour réaliser les chargements et les rangements sont l'unité de mémoire de données et l'unité d'extension de signe. • L’adresse contenue dans l’instruction étant sur 16 bits, il faut l’étendre sur 32 bits pour pouvoir accéder à la valeur qu’elle contient. L’extension consiste simplement à remplacer les 16 bits manquant par 16 fois le bit de signe. Const. C. D. 23

Rangement et chargement • Voici une partie du chemin de donnée pour un rangement

Rangement et chargement • Voici une partie du chemin de donnée pour un rangement ou un chargement avec accès à un registre. Suivent un calcul d'adresse mémoire, une lecture ou écriture en mémoire et une écriture dans le banc de registres s'il s'agit d'un chargement Instruction Registre numéro 1 Donnée lue 1 UAL Registre numéro 2 Résultat UAL Registres Registre écriture zéro Donnée lue 2 Donnée à écrire Adresse Lecture Donnée lue Mémoire de données Adresse écriture Donné à écrire 16 32 Etendre signe : Spécifique au chargement Const. C. D. 24

Rangement sw $j, 100($i) 43 43 Signification : Mémoire($i+100)=$j j i $i i i

Rangement sw $j, 100($i) 43 43 Signification : Mémoire($i+100)=$j j i $i i i Registre numéro 1 j j 100 Donnée lue 1 UAL Registre numéro 2 $j Registres Registre écriture zéro Résultat UAL Adresse Lecture $i+100 Donnée lue Mémoire de données Donnée lue 2 Adresse écriture Donnée à écrire Donné à écrire 100 16 32 Etendre signe $j 100 Const. C. D. 25

Chargement lw $j, 100($i) i j 100 i 35 35 Signification : $j=Mémoire($i+100) Registre

Chargement lw $j, 100($i) i j 100 i 35 35 Signification : $j=Mémoire($i+100) Registre numéro 1 Donnée lue 1 UAL Registre numéro 2 Résultat UAL j Registres Registre écriture zéro Donnée lue 2 Donnée à écrire Adresse Lecture Donnée lue Mémoire de données Adresse écriture Donné à écrire 100 16 32 Etendre signe Const. C. D. 26

Chargement lw $j, 100($i) i j 100 35 35 Signification : $j=Mémoire($i+100) i $i

Chargement lw $j, 100($i) i j 100 35 35 Signification : $j=Mémoire($i+100) i $i i Registre numéro 1 j j Donnée lue 1 UAL Registre numéro 2 Registres Registre écriture V Donnée lue 2 Donnée à écrire 100 zéro Résultat UAL Adresse Lecture Donnée lue Mémoire de données Adresse écriture 100 Donné à écrire 100 16 32 Etendre signe Const. C. D. 27

Mise en oeuvre du sous ensemble MIPS • • • Extraction des instructions Opération

Mise en oeuvre du sous ensemble MIPS • • • Extraction des instructions Opération arithmétique Rangement Chargement Branchement Const. C. D. 28

Branchement • Le chemin de données d'un branchement utilise une UAL pour évaluer la

Branchement • Le chemin de données d'un branchement utilise une UAL pour évaluer la condition de branchement et un additionneur séparé pour calculer la destination de branchement, somme du CP incrémenté et des bits inférieurs ( le déplacement du branchement) de l'instruction, étendus par extension de signe et décalés à gauche de 2 bits. • Explication : On veut que l’adresse de branchement représente l’adresse d’une instruction. Une instruction étant codée sur 4 octets, il faut multiplier l’adresse étendue par 4, d’où le décalage de 2 (un décalage à gauche de 2 est équivalent à une multiplication par 4). Const. C. D. 29

Branchement CP+4 venant du chemin ` de données des instructions Pour pointer réellement à

Branchement CP+4 venant du chemin ` de données des instructions Pour pointer réellement à l’instruction 100, il faut *4 la valeur puisque une instruction est sur 4 octets. Instruction Registre numéro 1 Donnée lue 1 Somme zéro Résultat UAL Registres Donnée lue 2 Destination du branchement Décaler gauche 2 UAL Registre numéro 2 Registre écriture ADD Vers logique de contrôle du branchement Donnée à écrire 16 32 Etendre signe Const. C. D. 30

Mise en oeuvre du sous ensemble MIPS • • • Extraction des instructions Opération

Mise en oeuvre du sous ensemble MIPS • • • Extraction des instructions Opération arithmétique Rangement Chargement Branchement Nous avons vue la construction du chemin de données pour chaque instruction prise indépendamment. Const. C. D. 31

Combinaison d’instructions • Pour obtenir le chemin de données complet de l’architecture MIPS, il

Combinaison d’instructions • Pour obtenir le chemin de données complet de l’architecture MIPS, il ne reste plus qu’à combiner les différents chemins de données. • L’introduction de multiplexeurs et de connexions est nécessaire pour assemblé un chemin de données unique à partir des éléments. N 2 N Const. C. D. 32

Combinaison d'instructions Type R combiné avec le chargement et le rangement Instruction Registre numéro

Combinaison d'instructions Type R combiné avec le chargement et le rangement Instruction Registre numéro 1 Donnée lue 1 UAL Registre numéro 2 Résultat UAL Registres Registre écriture zéro Donnée lue 2 Donnée à écrire Adresse Lecture Donnée lue Mémoire de données Adresse écriture Donné à écrire 16 32 Etendre signe Const. C. D. 33

Combinaison d'instructions ADD 4 CP Type R combiné avec le chargement, le rangement et

Combinaison d'instructions ADD 4 CP Type R combiné avec le chargement, le rangement et avec l’extraction de l’instruction Somme Adresse d'instruction Registre Donnée numéro 1 lue 1 Mémoire d'instructions Registre numéro 2 Registres Registre écriture Donnée lue 2 Donnée à écrire UALzéro Résultat UAL Adresse Lecture Donnée lue Mémoire de données Adresse écriture Donnée à écrire 16 32 Etendre signe Const. C. D. 34

Combinaison d'instructions ADD 4 ADD Somme Décaler gauche 2 CP Branchement Adresse d'instruction Registre

Combinaison d'instructions ADD 4 ADD Somme Décaler gauche 2 CP Branchement Adresse d'instruction Registre Donnée numéro 1 lue 1 Mémoire d'instructions Registre numéro 2 Registres Registre écriture Donnée lue 2 Donnée à écrire UALzéro Résultat UAL Adresse Lecture Donnée lue Mémoire de données Adresse écriture Donnée à écrire 16 32 Etendre signe Const. C. D. 35

Combinaison d'instructions ADD 4 ADD Somme Décaler gauche 2 CP Adresse d'instruction Registre Donnée

Combinaison d'instructions ADD 4 ADD Somme Décaler gauche 2 CP Adresse d'instruction Registre Donnée numéro 1 lue 1 Mémoire d'instructions Registre numéro 2 Registres Registre écriture Donnée lue 2 Donnée à écrire UALzéro Résultat UAL Adresse Lecture Donnée lue Mémoire de données Adresse écriture Donnée à écrire 16 32 Etendre signe Const. C. D. 36