ASR1 TD7 : Un microprocesseur RISC 16 bits



Documents pareils
DU BINAIRE AU MICROPROCESSEUR - D ANGELIS CIRCUITS CONFIGURABLES NOTION DE PROGRAMMATION

1 Architecture du cœur ARM Cortex M3. Le cœur ARM Cortex M3 sera présenté en classe à partir des éléments suivants :

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Rappels d architecture

Microprocesseur + Logiciel

IV- Comment fonctionne un ordinateur?

Architecture des ordinateurs

Conception de circuits numériques et architecture des ordinateurs

IFT1215 Introduction aux systèmes informatiques

ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview.

Représentation des Nombres

GPA770 Microélectronique appliquée Exercices série A

MICROINFORMATIQUE NOTE D APPLICATION 1 (REV. 2011) ARITHMETIQUE EN ASSEMBLEUR ET EN C

Les opérations binaires

PIC : COURS ASSEMBLEUR

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Cours Informatique 1. Monsieur SADOUNI Salheddine

Cours 1 : Qu est-ce que la programmation?

Architecture des Ordinateurs. Partie II:

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Programmation C. Apprendre à développer des programmes simples dans le langage C

Chapitre 10 Arithmétique réelle

Jeu d instructions NIOS II

V- Manipulations de nombres en binaire

Informatique Générale

Temps forts départementaux. Le calcul au cycle 2 Technique opératoire La soustraction

REALISATION d'un. ORDONNANCEUR à ECHEANCES

Assembleur i8086. Philippe Preux IUT Informatique du Littoral. Année universitaire 95 96

Conversion d un entier. Méthode par soustraction

Initiation au binaire

1 Recherche en table par balayage

Sujet proposé par Yves M. LEROY. Cet examen se compose d un exercice et de deux problèmes. Ces trois parties sont indépendantes.

Une version javascript sera disponible directement dans le cours prochainement.

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

Cours 3 : L'ordinateur

UE Programmation Impérative Licence 2ème Année

TD n o 8 - Domain Name System (DNS)

TD : Codage des images

Architecture de l ordinateur

Compilation (INF 564)

Codage d information. Codage d information : -Définition-

Algorithme. Table des matières

Nombres, mesures et incertitudes en sciences physiques et chimiques. Groupe des Sciences physiques et chimiques de l IGEN

Exécution des instructions machine

CONFIGURATION DE L AUTOMATE SIEMENS

Les arbres binaires de recherche

Hiérarchie matériel dans le monde informatique. Architecture d ordinateur : introduction. Hiérarchie matériel dans le monde informatique

Chapitre V : La gestion de la mémoire. Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Probabilités et Statistiques. Feuille 2 : variables aléatoires discrètes

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Activité 4. Tour de cartes Détection et correction des erreurs. Résumé. Liens pédagogiques. Compétences. Âge. Matériels

CORRIGE LES NOMBRES DECIMAUX RELATIFS. «Réfléchir avant d agir!»

La mémoire. Un ordinateur. L'octet. Le bit

Programmation Objet - Cours II

Assembleur. Faculté I&C, André Maurer, Claude Petitpierre

IFT2880 Organisation des ordinateurs et systèmes

1 Année LMD-STSM Algorithmique et Programmation. Série de TD 2

Programmation assembleur : aperçu

Théorie et Codage de l Information (IF01) exercices Paul Honeine Université de technologie de Troyes France

Date : Tangram en carré page

Licence Sciences et Technologies Examen janvier 2010

Petit guide des sous-réseaux IP

Informatique Industrielle Année Architecture des ordinateurs Note de cours T.Dumartin

Formats d images. 1 Introduction

Théorie et codage de l information

Comment mettre en page votre livre

Partie 1. Professeur : Haouati Abdelali. CPGE Lycée Omar Ibn Lkhattab - Meknès haouaticpge@gmail.com

Architecture des Ordinateurs Première partie. Licence d Informatique - IUP Miage - FIIFO

Cours 1 : La compilation

Transmission d informations sur le réseau électrique

Exercices de dénombrement

PROBABILITÉS CONDITIONNELLES

Partie 7 : Gestion de la mémoire

Un ordinateur, c est quoi?

Guide No.2 de la Recommandation Rec (2009).. du Comité des Ministres aux États membres sur la démocratie électronique

Contributions à l expérimentation sur les systèmes distribués de grande taille

Le codage informatique

TP 2 Réseaux. Adresses IP, routage et sous-réseaux

J AUVRAY Systèmes Electroniques TRANSMISSION DES SIGNAUX NUMERIQUES : SIGNAUX EN BANDE DE BASE

Logiciel de Base. I. Représentation des nombres

Le Network File System de Sun (NFS)

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte

GUIDE POUR AGIR. Comment identifier ses. SAVOIR-FAIRE et. ses QUALITÉS J ORGANISE MA RECHERCHE. Avec le soutien du Fonds social européen

INTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores

A. Définition et formalisme

Ordinateurs, Structure et Applications

ELP 304 : Électronique Numérique. Cours 1 Introduction

Machines virtuelles Cours 1 : Introduction

Excel 2007 Niveau 3 Page 1

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

Architecture des ordinateurs : Programmation des processeurs avec l'environnement «y86» (INF155)

TD Architecture des ordinateurs. Jean-Luc Dekeyser

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

Définitions. Numéro à préciser. (Durée : )

Architecture des ordinateurs. Robin FERCOQ

Limitations of the Playstation 3 for High Performance Cluster Computing

La pratique de la gestion des services. Lier les composants techniques avec les services d opérations dans la CMDB

Analyse des coûts. 1 ère année DUT GEA, 2005/2006 Analyse des coûts

Manuel de référence du langage Exemples Les aventures de Docteur R.

Transcription:

{Â Ö Ñ º ØÖ Ý,È ØÖ ºÄÓ Ù,Æ ÓÐ ºÎ ÝÖ Ø¹ ÖÚ ÐÐÓÒ} Ò ¹ÐÝÓÒº Ö ØØÔ»»Ô Ö Óº Ò ¹ÐÝÓÒº Ö» Ö Ñ º ØÖ Ý»¼ Ö½» ASR1 TD7 : Un microprocesseur RISC 16 bits 13, 20 et 27 novembre 2006 Présentation générale On choisit un format de 16 bits pour la simplicité du dessin final. Pour respecter la philosophie RISC, adresses et données sont donc codées sur 16 bits. Toutes les instructions machines sont également codées sur 16 bits, opérandes compris. La première partie consiste à définir le jeu d instructions, le format du mot d instructions, et à l essayer sur quelques exemples. La seconde partie construit le processeur lui-même. 1. Quel est l espace d adressage de ce processeur? 2. Quelle est la taille mémoire qu il peut adresser? 3. Combien d instructions aura-t-il au maximum? 4. Dessinez la boîte noire de ce processeur, comportant tous les signaux d interface avec la mémoire (on ignore les questions d interruptions des processeurs réels). 1 Le jeu d instructions On va découper le mot d instruction en différents champs codant (entre autres) l instruction à effectuer, ses différents opérandes, etc... On s attachera à respecter le principe d orthogonalité de la philosophie RISC, qui dit que ce découpage doit être constant, même pour des instructions très différentes. 1. Justifiez le principe d orthogonalité. 1.1 Choix du nombre de registres Il y a trois grandes architectures possibles pour la partie calcul d un processeur : Machine à trois adresses : implémente des instructions de typeê ÊÜÓÔÊÝ, oùê est le registre destination,êüetêýsont les registres opérandes, etóôest une opération arithmétique ou logique. Machine à deux adresses : le registre destination est obligatoirement un des registres opérandes, donc les instructions sont du typeêü ÊÜÓÔÊÝ. Machine à une adresse, ou machine à accumulateur : toute opération met en jeu un registre spécial, l accumulateur (noté ), qui est à la fois destination et l un des opérandes, soit ÓÔÊÝ. 1

1. Donnez des exemples de processeurs (réels) qui sont des machines à trois, deux ou une adresse. 2. Peut-on imaginer une machine à zéro adresse? 3. Donnez le nombre de bits que va nécessiter le codage des opérandes et de la destination dans notre mot d instruction, en fonction du choix d architecture et du nombre de registres du processeur. 4. Discutez et choisissez. 1.2 Opérations mémoire La philosophie RISC distingue bien les opérations de calcul, dont opérandes et destination ne sont que des registres, et les opérations d accès à la mémoire, qui n effectuent aucun calcul. 1. Discutez les avantages et inconvénients de cette approche. On définit les deux opérations mémoireä Ê(LoaD to Register) etëìê(store Register) qui chargent ou déchargent le contenu d un registre en mémoire à une adresse particulière. 2. Définissez le fonctionnement de ces opérations. 3. Considérez les divers moyens d implémenter une instructionâåè(jump). Choisissez. 1.3 Choix des instructions arithmétiques et logiques Nous allons maintenant définir les quelques bits de notre mot d instruction codant l instruction (le champ instruction). En plus des opérations sur la mémoire et les sauts précédents, on aura des opérations de calcul entier, de calcul binaire, une instruction de copie de registres, des décalages, etc... 1. Définissez un jeu d instructions minimal (ou en tout cas très Reduced), mais permettant par exemple de programmer en assembleur multiplication et division (même si cet exercice n est pas complètement possible à ce stade). 2. Si le nombre d instructions obtenu est différent de 8, 16 ou 32, ajoutez ou on retirez des instructions jusqu à bien remplir le champ instruction. 3. Discutez les différentes possibilités pour faire des opérations par des constantes. 4. Récapitulez précisément le jeu d instructions et discutez son codage le plus simple possible dans le champ instruction. 1.4 Contrôle d exécution Il doit normalement nous rester quelques bits libres parmi les 16 de notre mot d instruction. Ils vont servir à contrôler l exécution. Autrefois seul le branchement était conditionnel. Soyons modernes : par souci d orthogonalité, toutes les instructions seront identiquement conditionnelles. 2

1.4.1 Par des drapeaux (comme l ARM) Un champ condition, dans notre mot d instruction, contiendra un codage de la condition sous laquelle l instruction sera effectuée. Les quatre drapeaux de base de toute UAL sont : Z (Zero), qui vaut 1 si le résultat d une opération est nul, et 0 sinon ; N (Negative), qui vaut 1 si le résultat est strictement négatif, et 0 sinon ; C (Carry), qui vaut 1 s il y a dépassement de capacité sur 16 bits, et 0 sinon. V (overflow), qui vaut 1 s il y a dépassement de capacité sur 15 bits (dépassement signé), et 0 sinon. 1. Donnez une définition précise (en fonction du résultat du calcul) pour chacun de ces drapeaux. 2. Exprimez les conditions suivantes en fonction des drapeaux : résultat positif ou nul, négatif ou nul, strictement positif, strictement négatif, dépassement de capacité, pas de dépassement de capacité, etc... 3. Combien de bits faut-il pour coder un ensemble minimal de conditions (n oubliez pas le sans condition )? 4. Définissez précisément le champ condition, et les mnémoniques correspondants. 1.4.2 Par des prédicats (comme l IA64) Dans le jeu d instruction IA64, il y a 64 registres de prédicats d un bit qui peuvent être mis à jour par certaines instructions de comparaisons. Toutes les instructions peuvent être prédiquées par l un de ces registres. Si vous n avez pas compris demandez des explications. 1. Reprenez les questions ci-dessus. 2. Faites un choix. 1.5 Récapitulation et bouche-trous 1. Récapitulez le mot d instruction jusqu ici. Reste-t-il des bits inutilisés? Si oui, voici des suggestions d utilisation : On peut définir un bit qui dit si une instruction met à jour les drapeaux, ou pas. Ceci sera utile pour des séquences de code machine du type si alors sinon. On peut définir un bit qui dit si le résultat d une opération est écrit dans le registre résultat, ou pas. Ceci permet de transformer toute instruction arithmétique ou logique en une instruction de test : par exemple il transformeëí en ÅÈ(CoMPare). On peut faire jouer son imagination. 2. Complétez le jeu d instruction, vérifiez qu il n y a pas (trop) de redondance dans les instructions, récapitulez. 1.6 Test : programmation en assembleur 1. Pour se convaincre de la qualité de notre jeu d instruction, écrire un programme réalisant la multiplication, un réalisant la division, puis un Pac-Man (ou Quake III si vous préférez). 2. Corrigez les questions précédentes en fonction des oublis. 3

2 Construction du processeur Les paragraphes 2.1 à 2.3 doivent être étudiés plus ou moins en parallèle et itérés jusqu à obtention d un résultat satisfaisant. 2.1 Architecture générale 1. Placez sur une grande feuille les différents composants de notre processeur : les bus (adresse et données) d interface à la mémoire externe ; le banc de registres du processeur (combien de ports pour cette mémoire?) ; la boîte noire de l UAL, avec ses signaux de commande ; le registre des drapeaux, et la boîte noire du contrôle d exécution ; le registre qui contiendra le mot d instruction. Attention, n oubliez pas les drapeaux et autres bits pour la boîte noire de l UAL. N essayez pas de connecter les différents blocs à ce stade. 2.2 Le cycle d instruction 1. Décrivez le cycle de von Neumann de ce processeur, et vérifiez que tous les blocs nécessaires sont présents. 2. Discutez, en fonction de l occupation des différents blocs et des différents fils qui vont les relier, des questions du type : quand le PC est-il incrémenté? Attention, les choses à faire dans un cycle diffèrent selon que l opération est une opération arithmétique ou logique ou bien un accès mémoire. 2.3 Définition des signaux de commande 1. Tirez des fils entre ces différents blocs, et placez lorsque nécessaire des multiplexeurs commandés par des signaux binaires. 2. Donnez des numéros au hasard à chacun de ces signaux de commande. 3. Donnez également des numéros aux différents signaux de commande des différents blocs (signaux read et write à destination de la mémoire externe, bits de l UAL, etc... Si l on en oublie on pourra toujours les rajouter par la suite). 4. Extasiez-vous devant les bienfaits du principe d orthogonalité. Le reste de cette partie consiste en la définition de l automate qui va activer ces différents signaux dans le bon ordre pour assurer le fonctionnement du processeur. 2.4 Synthèse de l automate de commande 1. Définissez très précisément un cycle d instruction (en moins de 10 étapes, entre deux et six paraît un bon nombre). On pourra considérer que le délai de la mémoire est équivalent à celui de l UAL, et toute autre hypothèse simplificatrice raisonnable. Attention, ce qui est fait à chaque étape dépend de l instruction. 2. Construisez l automate très simple qui, à partir d une horloge unique, produit n signaux binaires φ i, chacun actif au cours d une étape. 4

3. Écrivez un tableau donnant, en fonction de l instruction, ceux des signaux de commande numérotés qui sont actifs à chaque étape. 4. Implémentez cette table comme un bloc combinatoire prenant en entrée les φ i et les autres signaux utiles, et produisant les signaux de commande numérotés. 5. Placez ce bloc sur le schéma (il n est pas utile de dessiner tous les fils des signaux de commande). 2.5 Remplissage des boîtes noires 1. Construisez l intérieur de la boîte noire de l UAL. 2. Construisez l intérieur de la boîte noire de contrôle d exécution. 3. Construisez l intérieur des autres boîtes noires. 3 C est fini (ou presque) 1. Estimez très grossièrement le nombre de portes. 2. Réfléchissez à comment décrire tout ça en VHDL. 5