La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Conception de processeurs – partie 1

Présentations similaires


Présentation au sujet: "Conception de processeurs – partie 1"— Transcription de 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


Télécharger ppt "Conception de processeurs – partie 1"

Présentations similaires


Annonces Google