Télécharger la présentation
1
Conception de processeurs – partie 1
Concepts de base sur l’architecture des processeurs INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
2
Pourquoi parler d’architecture de base de processeurs en INF8505?
En INF8505 on parle de processeurs configurables. Avant de pouvoir configurer un processeur, il faut comprendre (ou se rappeler!) ce qu’est un processeur et ce qu’on pourrait vouloir et pouvoir configurer. Il faut définir quelques termes et se rafraîchir la mémoire. INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
3
Modèle de l’ordinateur petit bonhomme
entrée sortie INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
4
Modèle de l’ordinateur petit bonhomme
code tâche 1ab charger la calculatrice avec le nombre gardé dans la boîte ab 2ab sauvegarder le contenu de la calculatrice sur une feuille et la ranger dans la boîte ab 3ab additionner le nombre gardé dans la boîte ab au contenu de la calculatrice 4ab soustraire le nombre gardé dans la boîte ab du contenu de la calculatrice 5xx entrer le nombre écrit sur la feuille du dessus du panier d’entrée dans la calculatrice; s’il n’y a pas de feuille, attendre qu’une feuille soit déposée 6xx écrire la valeur de la calculatrice sur une feuille et la déposer dans le panier de sortie 7xx bon travail - aller en pause-café INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
5
Modèle de l’ordinateur petit bonhomme: exemple de programme
boîte 00 01 02 03 04 05 contenu 500 299 399 600 700 500 : lire la valeur du panier d’entrée et la placer dans la calculatrice; 299 : écrire la valeur contenue dans la calculatrice dans la boîte 99; 399 : ajouter le contenu de la boîte 99 au contenu de la calculatrice; 600 : écrire le nombre contenu dans la calculatrice dans le panier de sortie; 700 : aller en pause-café. INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
6
Survol de la présentation
Qu’est-ce qu’un processeur? – Modèle et tâches Organisation d’un processeur Le cycle des instructions Le jeu d’instructions Définitions, éléments et encodage Classes de jeux d’instructions Types de données Modes d’adressage Principes de conception du jeux d’instructions Conclusion: perspectives pour les processeurs configurables INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
7
Qu’est-ce qu’un processeur?
Un processeur est un système numérique Il traite des données par une succession d’étapes simples. Le traitement global effectué peut être complexe. Deux types principaux de processeurs : Les processeurs à usage spécifique (a) sont des processeurs non programmables qui sont conçus dans le but de répondre à un besoin unique. Ils sont plus simples et plus efficaces que les processeurs à usage général, mais ils ne peuvent pas en général être facilement reprogrammés. ex: coprocesseur, processeur graphique Les processeurs à usage général (b) peuvent être programmés et sont donc très polyvalents. Le programme exécuté par un processeur est gardé en mémoire sous la forme d’une liste d’instructions. On réfère souvent à ce type de processeur par le nom de « microprocesseur » ou « unité centrale de traitement » (Central Processing Unit – CPU). INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel W. Stallings, « Computer Organization and Architecture, 7th Ed. », © Pearson, 2006
8
Modèle et tâches d’un ordinateur
Traiter des données Entreposer des données Déplacer des données Contrôler un processus/mécanisme W. Stallings, « Computer Organization and Architecture, 7th Ed. », © Pearson, 2006 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
9
Survol de la présentation
Qu’est-ce qu’un processeur? – Modèle et tâches Organisation d’un processeur Le cycle des instructions Le jeu d’instructions Définitions, éléments et encodage Classes de jeux d’instructions Types de données Modes d’adressage Principes de conception du jeux d’instructions Conclusion: perspectives pour les processeurs configurables INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
10
Organisation habituelle d’un ordinateur (un seul CPU) – vue d’ensemble
A. Tanenbaum, “Structured Computer Organization”, 5th Ed., © Pearson, 2006 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
11
Organisation habituelle d’un ordinateur (un seul CPU) – vue hiérarchique
Computer Arithmetic and Login Unit Control Unit Internal CPU Interconnection Registers CPU I/O Memory System Bus Peripherals Communication lines Control Unit Registers and Decoders Sequencing Logic modifié de: W. Stallings, « Computer Organization and Architecture, 7th Ed. », © Pearson, 2006 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
12
Organisation habituelle d’un ordinateur (un seul CPU) – plus de détails
W. Stallings, « Computer Organization and Architecture, 7th Ed. », © Pearson, 2006 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
13
Hiérarchie de mémoire Au haut de la pyramide: mémoire plus petite mais plus rapide À la base de la pyramide: mémoire plus grande mais plus lente W. Stallings, « Computer Organization and Architecture, 7th Ed. », © Pearson, 2006 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
14
Chemin des données simplifié
Plusieurs opérations peuvent être supportées INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel A. Tanenbaum, “Structured Computer Organization”, 5th Ed., © Pearson, 2006
15
Survol de la présentation
Qu’est-ce qu’un processeur? – Modèle et tâches Organisation d’un processeur Le cycle des instructions Le jeu d’instructions Définitions, éléments et encodage Classes de jeux d’instructions Types de données Modes d’adressage Principes de conception du jeux d’instructions Conclusion: perspectives pour les processeurs configurables INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
16
Le cycle des instructions
Dans sa plus simple expression, seulement deux étapes répétées continuellement: Aller quérir (fetch) l’instruction à exécuter. Charger le registre des instructions avec le contenu de la cellule de la mémoire pointée par le compteur de programme. PC++. Exécuter l’instruction (execute). Activer le chemin des données selon l’opération à effectuer. Peut prendre plusieurs cycles W. Stallings, « Computer Organization and Architecture, 7th Ed. », © Pearson, 2006 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
17
Cycle des instructions, exemple
W. Stallings, « Computer Organization and Architecture, 7th Ed. », © Pearson, 2006 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
18
Cycle des instructions: machine à états
W. Stallings, « Computer Organization and Architecture, 7th Ed. », © Pearson, 2006 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
19
Cycle des instructions: exemples
Composer des instructions en assembleur nécessitant les différents états de la diapositive précédente. Composer des instructions en assembleur pour lesquelles aucune action ne doit être prise dans certains des états de la diapositive précédente. INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
20
Cycle des instructions et interruptions (1)
W. Stallings, « Computer Organization and Architecture, 7th Ed. », © Pearson, 2006 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
21
Cycle des instructions et interruptions (2)
W. Stallings, « Computer Organization and Architecture, 7th Ed. », © Pearson, 2006 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
22
Survol de la présentation
Qu’est-ce qu’un processeur? – Modèle et tâches Organisation d’un processeur Le cycle des instructions Le jeu d’instructions Définitions, éléments et encodage Classes de jeux d’instructions Types de données Modes d’adressage Principes de conception du jeux d’instructions Conclusion: perspectives pour les processeurs configurables INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
23
Jeu d’instructions vs microarchitecture vs réalisation … ?
Architecture du jeu d’instructions (Instruction Set Architecture – ISA) Le contrat avec le programmeur et le compilateur. Définit l’apparence fonctionnelle du processeur Opérations, types de données, modes d’adressage, registres visibles, etc. Implémentation ou microarchitecture Point de vue du concepteur du processeur Circuits logiques qui implémentent l’architecture Pipelines, unités fonctionnelles, registres physiques Réalisation Point de vue du concepteur de circuit ou de la puce Réalisation physique des circuits logiques Portes, cellules, transistors, fils, etc. Une ISA peut avoir plusieurs implémentations, et chaque implémentation peut avoir plusieurs réalisations! INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
24
Jeu d’instructions: le contrat
A. Tanenbaum, “Structured Computer Organization”, 5th Ed., © Pearson, 2006 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
25
Microarchitecture: exemple du microcontrôleur 8051 (arch. Harvard)
Attention! Aucun lien entre microarchitecture et microcontrôleur! INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel A. Tanenbaum, “Structured Computer Organization”, 5th Ed., © Pearson, 2006
26
Réalisation (exemple du Atmel Diopsis 740)
INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel Wikipedia.org
27
Les éléments d’une instruction
Une instruction contient les éléments suivants: Le code d’opération Références vers l’entreposage des opérandes Références vers l’entreposage du résultat Référence vers la prochaine instruction (optionnel) INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
28
Encodage d’une instruction
L’encodage est limité par le nombre de bits du bus mémoire de la machine. À chaque code on associe un symbole mnémonique pour faciliter la compréhension. W. Stallings, « Computer Organization and Architecture, 7th Ed. », © Pearson, 2006 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
29
Types d’instructions Le jeu d’instructions contient en général les types suivants d’opérations: opérations arithmétiques (addition, soustraction, négation) opérations logiques (ET, OUX, etc.) mouvements de données (charge, sauvegarde, entrée, sortie) contrôle du flot (branchement, retour) INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
30
Survol de la présentation
Qu’est-ce qu’un processeur? – Modèle et tâches Organisation d’un processeur Le cycle des instructions Le jeu d’instructions Définitions, éléments et encodage Classes de jeux d’instructions Types de données Modes d’adressage Principes de conception du jeux d’instructions Conclusion: perspectives pour les processeurs configurables INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
31
Classes de jeux d’instructions
« 0 » addresse à accumulateur une adresse, registre-mémoire registre-registre mémoire-mémoire INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
32
Jeu d’instructions « 0 » addresse
Aussi connu sous le nom « machine à pile » Toutes les opérandes et tous les résultats des opérations sont entreposés sur la pile. On peut empiler une valeur contenue en mémoire (PUSH) ou dépiler vers la mémoire (POP) Notation polonaise inverse. Jeu d’instructions très simple. // A := B + C PUSH B PUSH C ADD POP A wikipedia.org Jaune: pile Mauve: mémoire centrale INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
33
Jeu d’instructions à accumulateur
Le processeur ne possède qu’un seul registre, communément appelé accumulateur. La sortie de l’accumulateur peut être sauvegardée en mémoire. // A := B + C LOAD B ADD C STORE A wikipedia.org Jaune: accumulateur Mauve: mémoire centrale INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
34
Jeu d’instructions registre - registre
Le processeur possède un groupe de registres. Les opérations ne peuvent se faire qu’entre registres. Modèle d’opérations à 2 ou 3 registres. Correspond habituellement aux processeurs RISC actuels. // A := B + C LOAD R0, B LOAD R1, C ADD R2, R1, R0 STORE R2, A wikipedia.org Jaune: registres Mauve: mémoire centrale INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
35
Jeu d’instructions à une adresse, registre-mémoire
Le processeur possède un groupe de registres. Les opérations peuvent se faire entre registres, ou entre un registre et une cellule de mémoire. // A := B + C LOAD R0, B ADD R1, R0, C STORE R1, A wikipedia.org Jaune: registres Mauve: mémoire centrale INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
36
Jeu d’instructions mémoire – mémoire
Il n’y a pas de registres. Peu usité. // A := B + C ADD A, B, C wikipedia.org Mauve: mémoire centrale INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
37
Exercice Pour les différentes classes de jeux d’instructions, quelles sont les conséquences pour l’encodage? 0 adresse: très simple 1 adresse (accumulateur): 2e adresse est implicite registre-registre à 2 adresses: le cas le plus commun registre-registre à 3 adresses: besoin de beaucoup de bits! registre-mémoire: besoin de beaucoup de bits, ou bien l’adresse pourrait être placée dans un mot d’instruction supplémentaire mémoire-mémoire: besoin d’énormément de bits! INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
38
Exercice Pour les différentes classes de jeux d’instructions, quelles sont les conséquences pour la taille du code compilé? moins d’adresses: plus d’instructions nécessaires plus d’adresses: moins d’instructions nécessaires INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
39
Exercice Pour les différentes classes de jeux d’instructions, quelles sont les conséquences pour la fréquence d’opération du processeur? moins d’adresses: plus rapide plus d’adresses: moins rapide, plus de décodage nécessaire INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
40
Survol de la présentation
Qu’est-ce qu’un processeur? – Modèle et tâches Organisation d’un processeur Le cycle des instructions Le jeu d’instructions Définitions, éléments et encodage Classes de jeux d’instructions Types de données Modes d’adressage Principes de conception du jeux d’instructions Conclusion: perspectives pour les processeurs configurables INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
41
Types de données L’œuf ou la poule?
Un processeur à usage général devrait supporter tous les types de données pouvant être utilisés dans des programmes ou supportés par les langages de programmation les plus populaires. entiers signés entiers non signés BCD pointeur champs de bits (valeurs logiques) caractère virgule flottante (nouveau) nombres décimaux à virgule flottante L’œuf ou la poule? INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
42
Types de données: Pentium
W. Stallings, « Computer Organization and Architecture, 7th Ed. », © Pearson, 2006 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
43
Survol de la présentation
Qu’est-ce qu’un processeur? – Modèle et tâches Organisation d’un processeur Le cycle des instructions Le jeu d’instructions Définitions, éléments et encodage Classes de jeux d’instructions Types de données Modes d’adressage Principes de conception du jeux d’instructions Conclusion: perspectives pour les processeurs configurables INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
44
Modes d’adressage (1) Étant donnée une instruction, comment faire pour spécifier où se situent les opérandes? Quels sont les besoins des programmeurs? Constantes Valeurs dans des registres Valeurs en mémoire Valeurs pointées par d’autres Tableaux et autres structures de données Piles (LIFO), Files (FIFO) INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
45
Modes d’adressage (2) immédiat: opérande encodée dans l’instruction
direct: adresse mémoire de l’opérande encodée dans l’instruction indirect: adresse du pointeur encodée dans l’instruction registre: numéro du registre contenant opérande encodé dans l’instruction indirect par registre: numéro du registre pointeur encodé dans l’instruction indirect avec indice: numéro du registre pointeur encodé dans l’instruction, ainsi qu’un indice de déplacement pile: opérande sur la pile avec pré- et post incrémentation, combinaisons, etc. INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
46
Survol de la présentation
Qu’est-ce qu’un processeur? – Modèle et tâches Organisation d’un processeur Le cycle des instructions Le jeu d’instructions Définitions, éléments et encodage Classes de jeux d’instructions Types de données Modes d’adressage Principes de conception du jeux d’instructions Conclusion: perspectives pour les processeurs configurables INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
47
Quelques principes pour la conception du jeu d’instructions d’un processeur
La conception du jeu d’instructions demande des compromis. La plupart des programmes sont écrits dans un langage de haut niveau, puis compilés. Donc, pour simplifier la vie du compilateur: Favoriser la simplicité et la régularité. Favoriser l’orthogonalité. Donner des ‘blocs’ de solutions, pas des solutions faites sur mesure pour un langage en particulier. Garder la performance en tête … INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
48
Orthogonalité du jeu d’instructions
Un jeu d’instructions orthogonales est parfaitement uniforme. Chaque mode d’adressage est possible pour chaque instruction. La flexibilité dans le choix des opérandes est la même pour chaque instruction. Un jeu d’instructions orthogonales est un avantage du point de vue du compilateur. Cependant, les études démontrent que la plupart des programmes utilisent une faible proportion des instructions et des modes d’adressage disponibles. INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
49
Survol de la présentation
Qu’est-ce qu’un processeur? – Modèle et tâches Organisation d’un processeur Le cycle des instructions Le jeu d’instructions Définitions, éléments et encodage Classes de jeux d’instructions Types de données Modes d’adressage Principes de conception du jeux d’instructions Conclusion: perspectives pour les processeurs configurables INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
50
Oui mais … les processeurs configurables, eux? (1)
Processeurs paramétrables Certaines caractéristiques peuvent être activées ou non, e.g.: multiplicateurs; unités à point flottant; caches, etc. Certaines caractéristiques peuvent être élargies ou multipliées: largeur du chemin de données; nombre de pipelines; nombre et largeur des bus d’interface; nombre de registres, etc. Processeurs extensibles instructions additionnelles; bloc de registres additionnels; interfaces mémoires spécialisées, etc. INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
51
Oui mais … les processeurs configurables, eux? (2)
Et pourquoi pas … INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel wikipedia.org
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.