Cours 5 : Introduction aux microprocesseurs

Documents pareils
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. Partie II:

Exécution des instructions machine

Introduction à l architecture des ordinateurs. Adrien Lebre Décembre 2007

Rappels d architecture

ASR1 TD7 : Un microprocesseur RISC 16 bits

Ordinateurs, Structure et Applications

Tout savoir sur le matériel informatique

Fonctionnement et performance des processeurs

Conception de circuits numériques et architecture des ordinateurs

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

TD Architecture des ordinateurs. Jean-Luc Dekeyser

Compilation (INF 564)

Tests de performance du matériel

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

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

Mesure de performances. [Architecture des ordinateurs, Hennessy & Patterson, 1996]

Chapitre 4 : Les mémoires

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

MODULE I1. Plan. Introduction. Introduction. Historique. Historique avant R&T 1ère année. Sylvain MERCHEZ

L informatique en solo

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Chapitre 2 : Abstraction et Virtualisation

Initiation au HPC - Généralités

IV- Comment fonctionne un ordinateur?

Architecture des ordinateurs

Architecture des calculateurs

Architecture des ordinateurs

Architecture matérielle des systèmes informatiques

Machines virtuelles Cours 1 : Introduction

Les liaisons SPI et I2C

Cours 1 : Qu est-ce que la programmation?

Structure de base d un ordinateur

Matériel & Logiciels (Hardware & Software)

Introduction à la microinformatique et à la programmation OO

IFT1215 Introduction aux systèmes informatiques

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

Enregistreur de Température pour PC DALLAS 1820

Leçon 1 : Les principaux composants d un ordinateur

Contexte et motivations Les techniques envisagées Evolution des processus Conclusion

Projet audio. Analyse des Signaux ELE2700

Ordinateurs, Structure et Applications

SQL2005, la migration Atelier 316

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

Mode d emploi Flip Box

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

Transmissions série et parallèle

CM2 L architecture MIPS32

Hubert & Bruno Lundi 12 octobre 2009 SAINT-QUENTIN (02)

Reproductibilité des expériences de l article "Analyse et réduction du chemin critique dans l exécution d une application"

Systèmes et traitement parallèles

Ajouter de la mémoire à son ordinateur

Manipulations du laboratoire

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

Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs)

Sur un ordinateur portable ou un All-in-One tactile, la plupart des éléments mentionnés précédemment sont regroupés. 10) 11)

Logiciel REFERENCE pré-requis informatiques et techniques :

HP 600PD TWR i G 4.0G 39 PC

VIII- Circuits séquentiels. Mémoires

Architecture des ordinateurs Introduction à l informatique

Architecture des ordinateurs. Loïc Cuvillon. 20 novembre 2013

Éléments de programmation et introduction à Java

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

TABLE DES MATIÈRES 1. DÉMARRER ISIS 2 2. SAISIE D UN SCHÉMA 3 & ' " ( ) '*+ ", ##) # " -. /0 " 1 2 " 3. SIMULATION 7 " - 4.

Éléments d'architecture des ordinateurs

Conférence sur les microcontroleurs.

Bien commencer avec un LaunchPad MSP430G et un Breadboard

Module M1 Elément 2 : Informatique 1 (I1)

cc.region.beaujeu@wanadoo.fr Site Internet Actuellement nous trouvons ce schéma réseau :

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

Informatique Générale

Évaluation et implémentation des langages

La carte à puce. Jean-Philippe Babau

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

Prise en main. Prise en main - 0

Traitement de données

Contrôle d accès UTIL TP N 1 découverte

CONFIGURATION DE L AUTOMATE SIEMENS

DYNTEST AML (Alarme/Moniteur/Logger) Surveillance du filtre à particules

Serveur Lynx CALLEO Application 2240S Fiches Technique

Notice d installation de la Centrale VIGIK DGM1

Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie

CQP 112 Introduc/on à la programma/on. Thème 2 : Architecture d un système informa/que. Département d informa/que

Traduction des Langages : Le Compilateur Micro Java

Serveur Lynx CALLEO Application 2240 Fiches Technique

Conception Systèmes numériques VHDL et synthèse automatique des circuits

Jeu d instructions NIOS II

Tout sur l USB L USB (Universal Serial Bus) a été élaboré en 1996 par Intel, Compaq,Digital,IBM,Microsoft,NEC et NorthTelec (USB 1.0).

Licence Sciences et Technologies Examen janvier 2010

Big Data. Cyril Amsellem Consultant avant-vente. 16 juin Talend

Module.NET 3 Les Assemblys.NET

PLAN. Connexion Mac vers PC. mercredi 15 juillet 2009

CATALOGUE FORMATION 2014/2015 Produits & Logiciels

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

Argument-fetching dataflow machine de G.R. Gao et J.B. Dennis (McGill, 1988) = machine dataflow sans flux de données

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

Manuel d aide à la pose

Choix d'un serveur. Choix 1 : HP ProLiant DL380 G7 Base - Xeon E GHz

SCL LOGICIEL DE CONTROL

Transcription:

Cours 5 : Introduction aux microprocesseurs Q5.1 : À quoi sert la ligne de contrôle LOAD/COUNT pour le CPU en exemple dans le cours 5? Déterminer s il faut charger la prochaine série de micro-instructions qui sera à exécuter ou s il faut continuer la série de micro-instructions actuelle. Q5.2 : À quoi sert l entrée 0 pour le MUX A et le MUX B pour le CPU en exemple dans le cours 5? Permettre de mettre un registre ou l accumulateur à zéro facilement, ou rendre nulle l une des entrées de l ALU pour faire des affectations. Q5.3 : Pour le CPU en exemple dans le cours 5, quel est la valeur des lignes de contrôle pour la sous-instruction MDR+A->A? Inspirez-vous de l acétate «Microprogramme pour addition (Annexe)» afin de répondre. Même réponse que dans l acétate, sauf pour un seul champs de l u-instruction 124 : MUX_B SEL doit être ACC. Q5.4 : Pourquoi a-t-on besoin du registre MAR? Il faut un buffer où mettre la valeur des lignes d adresses voulues. Q5.5 : Quel matériel pourrait être utilisé afin de concevoir un registre? Bascules SRs, bascules D, autres flip-flops Q5.6 : Donnez quatre différences entre une architecture RISC et une architecture CISC. Longueur des instructions Taille des programmes Nombre de registres Facilité de traitement des instructions Q5.7 : Donnez trois conséquences d utiliser des instructions ayant toujours la même longueur? Pipeline plus facile a implémenté Program counteur plus facile a géré Moins d instructions possibles Q5.8 : Qu est-ce qu un pipeline? Une série de composantes matérielles indépendantes exécutant chacune une partie d une instruction. Chaque composante peut travailler sur une instruction différente. Q5.9 : Dites si les énoncés suivant sont vrai ou faux. Justifier dans tous les cas : A) Un pipeline permet toujours de compléter une instruction par coup d horloge Faux. Il peut y avoir des dépendances entre les instructions. Il y a aussi des instructions de saut, des branchements, etc. B) Un ordinateur super scalaire sera assurément plus performant qu un ordinateur scalaire. Faux. C) Un pipeline ayant une profondeur de 6 exécute 6 instructions à la fois et l exécution de chaque instruction est divisée en 6 parties. Vrai Q5.10 : Nommez cinq composantes d un CPU moderne. CCU, ALU, Registres, unité de gestion des bus externes, unité de traitement des sauts pour la pipeline, etc.

Q5.11 : Qu est-ce qu une micro instruction? Quel est l avantage d utiliser des microinstructions par rapport à concevoir un micro processeur avec une logique câblée (hardwired, c est-à-dire où chaque instruction est exécutée par une séquence d action dans du matériel qui lui est propre). Une micro instruction est une étape d une instruction. Chaque instruction est exécutée avec une séquence de micro instructions. Comme des instructions différentes ont souvent plusieurs parties commune, utiliser des microprogrammes permet de réduire la quantité et la complexité du matériel nécessaire à l exécution des instructions. Q5.12 : Lors de la lecture et de l exécution d une instruction comme LOAD R0, MaVar (lire MaVar en mémoire et mettre la valeur lue dans le registre R0), le microprocesseur met des adresses sur le bus d adresse. Dites combien d adresses seront mises sur le bus d adresse et quel registre du microprocesseur fournira l adresse. Deux adresses seront mises sur le bus d adresse : - L adresse de l instruction LOAD, fournie par le compteur de programme (registre PC) - L adresse de la variable MaVar, fournie par l instruction elle-même (registre IR) Q5.13 : L annexe du cours 5 présente un microprocesseur rudimentaire. Expliquez quelles seraient les sous-instructions nécessaires afin de lire et d exécuter l instruction LOAD R0, MaVar (lire MaVar en mémoire et mettre la valeur lue dans le registre R0), puis lire et exécuter l instruction ADD R0, R0, R0 (additionne R0 = R0 + R0), pour ce microprocesseur rudimentaire. Les sous-instructions sont présentées dans l annexe : Sous-instruction 1 Fetch 1 et 2; PC > Bus d adresse Fetch 3; Contrôle Fetch 4,5; Bus de données > IR Load 1,2; IR > Bus d adresse Load 3; Contrôle Load 4, 5; Bus de données > R0 PC = PC + 1 instruction Fetch 1 et 2; PC > Bus d adresse Fetch 3; Contrôle Fetch 4,5; Bus de données > IR Add 1; ALU Add 2; ALU PC = PC + 1 instruction Description Mettre l adresse de l instruction LOAD R0, MaVar sur le bus d adresse Activer la ligne de lecture de la mémoire Mettre l instruction provenant de la mémoire dans le registre d instruction Mettre l adresse de la variable contenue dans l instruction sur le bus d adresse Activer la ligne de lecture de la mémoire Mettre la donnée provenant de la mémoire dans R0 Passer automatiquement à l instruction suivante Mettre l adresse de l instruction ADD R0, R0, R0 sur le bus d adresse Activer la ligne de lecture de la mémoire Mettre l instruction provenant de la mémoire dans le registre d instruction Additionner R0 avec R0 Mettre le résultat dans R0 Passer automatiquement à l instruction suivante 1 Les noms et les numéros des sous-instructions proviennent de l annexe du cours 5

Cours 6 : La famille 8086 Q6.1 Le 8086 a-t-il une architecture CISC ou RISC? CISC Q6.2 Le 8086 a-t-il un pipeline? Non Q6.3 Décrivez les 40 pins du 8086 (Notez bien que quelques pins sont décrites dans les cours 8, 9, 10 et 11). 16 lignes de données/adresse avec 2 rôles (A0-A15) 4 lignes d adresse (A16-A19) 11 lignes pour gérer le mode, les latchs des bus de données/adresses et les bus eux-mêmes (pins 22 + 25 à 34) 3 lignes d alimentation (GND, GND, VCC) 4 lignes pour les interruptions (NMI, INTR, RESET, INTA) 1 ligne d horloge (CLK) 1 lignes pour tester le chip (TEST) Q6.4 Pourquoi le 8086 a-t-il un buffer d instruction de 6 bytes? Les instructions sont de longueur variables. Q6.5 A quoi sert le «transceiver» dans le schéma du mode minimum à l intérieur de la «datasheet» du 8086? Même rôle que MDR. Interface pour transférer les données du CPU au bus de données. Q6.6 Dans quel ordre et quelles pins du 8086 sont activés tour à tour afin de lire une donnée ou une instruction en mémoire? Pour écrire? Voir l acétate 4 du cours 6. Q6.7 Comment le 8086 distingue-t-il la mémoire des périphériques au niveau du bus de contrôle? Il se sert de la ligne M/IO. Q6.8 Avec combien d adresses de mémoire le 8086 peut-il communiquer? Avec combien d adresses d I/O? 2^20 adresses de mémoire. 2^16 adresses d I/O. Q6.9 Quel est le premier microprocesseur d Intel à a) contenir un pipeline? 80486, 1989 b) des améliorations au pipeline comme les prédicateurs de saut? Pentium, 1993 c) contenir une cache? 8086 si on considère le buffer d instruction comme une cache en 1979, sinon le 286 en 1982 d) contenir deux caches Pentium Pro, 1995 e) être superscalaire? Pentium, 1993 f) permettre l exécution du jeu d instruction MMX? Pentium MMX g) permettre l exécution du jeu d instruction IA-64? Itanium

h) contenir deux unités de contrôle? Dual-Core i) contenir un bus PCI? Pentium, 1993 j) traiter les fractions avec un coprocesseur dédié? 80486, 1989 Pour tous les microprocesseurs trouvés, donnez les années d apparition. Voir plus haut Q6.10 Quelle(s) broche(s) du 8086 servent à signaler une interruption au microprocesseur? INTR, NMI et RESET

Cours 7 : Assembleur, Compilateur et Éditeur de Liens Q7.1 : Supposons un même programme construit avec les langages de programmation suivant: - Assembleur 8086 (assembleur) - Matlab (langage interprété) - Langage C (haut niveau) Quel langage produira le plus gros programmme? le plus petit? le plus rapide?...le plus lent? Avec quel langage le programme sera-t-il le plus long à créer? le plus court? Plus gros = Haut niveau Plus petit = Assembleur ou langage interprété (si on ne compte pas la taille de l interpréteur) Plus rapide = Assembleur Plus lent = langage interprété Plus long à créer = Assembleur Plus court à créer = Haut niveau ou interprété Q7.2 : Quel le but principal et fondamental d un langage de programmation? Permettre de créer rapidement et efficacement un programme. Q7.3 : Que fait un assembleur? un compilateur? Transformer un fichier texte écrit selon une certaine convention en code machine. Q7.4 : Qu est-ce qu une DLL (Dynamic Link Library)? Des fonctions compilées communes à plusieurs programmes. Q7.5 : Quel type du fichier peut être assemblé, compilé ou interprété? Pourquoi? Un fichier texte, pour simplicité Q7.6 : Qu est-ce qu un fichier objet? Un fichier objet est généré par le compilateur. Il s agit du code correspondant au fichier texte édité par le programmeur. Les fichiers objets sont reliés entre eux par l éditeur de lien afin de construire les programmes. Q7.7 : Que contient un fichier objet? Un fichier objet contient du code compilé et de l information sur le code et les variables du fichier compilé pour l éditeur de lien. Q7.8 : Un fichier exécutable contient-il uniquement du code en binaire? Non. Un fichier exécutable contient aussi des données ou de l espace réservé pour les données. Il contiendra également toutes les informations nécessaires pour que le système d exploitation puisse charger le programme en mémoire, puis l exécuter. Q7.9 : Quels sont les rôles principaux de l éditeur de liens? Le premier rôle de l éditeur de lien est de construire un fichier exécutable ou programme à partir des fichiers objets et des DLLs. Il associe les symboles trouvés dans certains fichiers objets avec les symboles des autres fichiers (il fait le lien entre les variables ou fonctions utilisées dans plusieurs fichiers), assigne des emplacements aux fonctions et aux variables (emplacements relatifs au début du programme), puis produit l information nécessaire au système d exploitation pour charger et exécuter le programme. Q7.10 : Que fait le compilateur lorsqu il compile un fichier qui fait référence à une variable définie dans un autre fichier?

Le compilateur utilise la déclaration de la variable avant de déterminer les instructions qui serviront à manipuler cette variable. Il indiquera ensuite à l éditeur de lien, à travers le fichier objet, que la variable n a pas de mémoire allouée dans le fichier objet et qu elle doit se retrouver dans un autre fichier. Q7.11 : Peut-on faire un programme avec du code écrit en assembleur, du code écrit en C et du code écrit en C++? Oui, si l assembleur, le compilateur C et le compilateur C++ génèrent des fichiers objets de même nature. Q7.12 : Lorsque vous compilez ou assemblez un programme pour un microprocesseur d Intel, pourquoi ce programme fonctionne-t-il sur un microprocesseur d AMD? Les deux microprocesseurs supportent les mêmes instructions. Q7.13 : Lorsque vous utilisez la variable MaVariable dans le code de votre programme, le mot MaVariable se retrouvera-t-il dans l exécutable sur votre disque dur? Non. Le compilateur/assembleur et l éditeur de lien remplaceront toutes les références à MaVariable par une adresse à l intérieur du programme, l adresse de la mémoire allouée pour MaVariable.