Conception de processeurs – partie 1

Slides:



Advertisements
Présentations similaires
Le Nom L’adjectif Le verbe Objectif: Orthogram
Advertisements

ORTHOGRAM PM 3 ou 4 Ecrire: « a » ou « à » Référentiel page 6
LES NOMBRES PREMIERS ET COMPOSÉS
1. Résumé 2 Présentation du créateur 3 Présentation du projet 4.
GEF 435 Principes des systèmes d’exploitation
Architecture de machines Le microprocesseur
Licence pro MPCQ : Cours
Distance inter-locuteur
ARCHITECTURE INTERNE d’un MICROPROCESSEUR
Les numéros
Les identités remarquables
Jacques Lonchamp IUT Nancy Charlemagne – DUT Informatique 1A
A abstraction b assembleur c nombre binaire d bit e cache f UC g puce h compilateur i famille dordinateurs j contrôle k chemin de données l défaut m dé
Objectifs Nous allons concevoir une mise en œuvre contenant un noyau de jeu d’instructions. Nous verrons comment l’architecture de jeu d’instructions.
Le Concept du programme enregistré
Le jeu d ’instructions Introduction Un jeu d ’instruction classique
Sirop de Liège « industriel »
1 7 Langues niveaux débutant à avancé. 2 Allemand.
Mr: Lamloum Med LES NOMBRES PREMIERS ET COMPOSÉS Mr: Lamloum Med.
1 5 octobre 2011 / paw Présentation du 7 octobre 2011.
ARCHITECTURE GLOBALE CAPTAGE Traitement DES des données GRANDEURS
Développement d’applications web
Cours #9 Conception et réalisation de processeurs à usage général
Interagir avec un objet mixte Propriétés physiques et numériques Céline Coutrix, Laurence Nigay Équipe Ingénierie de lInteraction Homme-Machine (IIHM)
1 Cours numéro 3 Graphes et informatique Définitions Exemple de modélisation Utilisation de ce document strictement réservée aux étudiants de l IFSIC.
Architecture de base d’un ordinateur
Cours de physique générale I Ph 11
1 Guide de lenseignant-concepteur Vincent Riff 27 mai 2003.
GRAM 1 CE2 Je sais transformer une phrase affirmative en phrase négative.
Architecture des Ordinateurs
Titre : Implémentation des éléments finis sous Matlab
Tableaux de distributions
Tableaux de distributions
Projet poker 1/56. Introduction Présentation de léquipe Cadre du projet Enjeux Choix du sujet 2.
LES NOMBRES PREMIERS ET COMPOSÉS
Logiciel gratuit à télécharger à cette adresse :
LES SYSTEMES AUTOMATISES
Calculs et écritures fractionnaires
RACINES CARREES Définition Développer avec la distributivité Produit 1
Représentation des systèmes dynamiques dans l’espace d’état
Représentation des systèmes dynamiques dans l’espace d’état
Représentation des systèmes dynamiques dans l’espace d’état
DUMP GAUCHE INTERFERENCES AVEC BOITIERS IFS D.G. – Le – 1/56.
Architecture et technologie des ordinateurs II
Titre : Implémentation des éléments finis en Matlab
MAGIE Réalisé par Mons. RITTER J-P Le 24 octobre 2004.
1 INETOP
Équipe 2626 Octobre 2011 Jean Lavoie ing. M.Sc.A.
NORMALISATION DES LANGAGES DE PROGRAMMATION des Automates Programmables Industriels CEI
L'Unité centrale (CPU) Le CPU doit être rapide (mesuré en temps de CPU) UNITE DE CONTROLE Générer les signaux de control/temps Contrôler le décodage/exécution.
Mise en forme en Mathématiques
Lycée ELKHAWARIZMI De SAFI
Traitement de différentes préoccupations Le 28 octobre et 4 novembre 2010.
1/65 微距摄影 美丽的微距摄影 Encore une belle leçon de Macrophotographies venant du Soleil Levant Louis.
Cours Architecture des Systèmes Informatiques
LES PILES ET FILES.
Notions de pointeurs en C
Exercice de vérification 1 p
Processeurs et chemins des données
Architecture Chapitre 4 Interruptions. 2 Plan Principe Schéma d’acquisition Les états d’une interruption Décentralisation des interruptions Exemples.
INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel Processeurs sous-RISC et application aux réseaux Quand.
Chapitre 9 : La machine MIASM
INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel Langages de description architecturale.
Université de Sherbrooke
J.-M. ADAM – D. BARDOU Fonctionnement de l'unité centrale.
Le processeur Xtensa de Tensilica: paramétrage et extensibilité
Cours de Structure et Technologie des composants d’ordinateurs
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Encodage du jeu d’instructions.
L’architecture du processeur Xtensa de Tensilica
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Modélisation VHDL de.
Transcription de la présentation:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Réalisation (exemple du Atmel Diopsis 740) INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel Wikipedia.org

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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