INF1600: Architecture des micro-ordinateurs

Documents pareils
Programmation assembleur : aperçu

Architecture des ordinateurs

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

Rappels d architecture

Exécution des instructions machine

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

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

ASR1 TD7 : Un microprocesseur RISC 16 bits

IFT1215 Introduction aux systèmes informatiques

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

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

Cours 1 : La compilation

Cours Informatique 1. Monsieur SADOUNI Salheddine

Conception de circuits numériques et architecture des ordinateurs

Logiciel de base. Première année ENSIMAG

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

CM2 L architecture MIPS32

FONCTION COMPTAGE BINAIRE ET DIVISION DE FRÉQUENCE

Structure d un programme

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

Architecture des ordinateurs

Architecture : Circuits numériques et éléments d architecture

Jeu d instructions NIOS II

Microprocesseur + Logiciel

Fonctionnement et performance des processeurs

Compilation (INF 564)

Structure fonctionnelle d un SGBD

Organisation des Ordinateurs

IV- Comment fonctionne un ordinateur?

AVERTISSEMENT. D'autre part, toute contrefaçon, plagiat, reproduction encourt une poursuite pénale. LIENS

Machines virtuelles Cours 1 : Introduction

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

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

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

Réalisation d un OS 32 bits pour PC(x86)

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

SSTIC Désobfuscation automatique de binaires. Alexandre Gazet. Yoann Guillot. Et autres idyles bucoliques...

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

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

TD Architecture des ordinateurs. Jean-Luc Dekeyser

Cours 1 : Qu est-ce que la programmation?

Machines virtuelles. Brique ASC. Samuel Tardieu Samuel Tardieu (ENST) Machines virtuelles 1 / 40

Une version javascript sera disponible directement dans le cours prochainement.

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

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Architecture des Ordinateurs. Partie II:

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

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

Temps Réel. Jérôme Pouiller Septembre 2011

REALISATION d'un. ORDONNANCEUR à ECHEANCES

Architecture matérielle des systèmes informatiques

Initiation à LabView : Les exemples d applications :

Traduction binaire dynamique de l extension SIMD Néon de l ARMv7 dans Qemu

Représentation des Nombres

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

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

Licence Sciences et Technologies Examen janvier 2010

Chapitre 4 : Les mémoires

VIII- Circuits séquentiels. Mémoires

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

Chapitre VI- La validation de la composition.

Bases de programmation. Cours 5. Structurer les données

Partie 7 : Gestion de la mémoire

Initiation au HPC - Généralités

TP Bases de données réparties

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

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

Parallélisme et Répartition

Manuel d'installation de GESLAB Client Lourd

Ladibug TM 2.0 Logiciel de présentation visuel d'image Manuel de l utilisateur - Français

Initiation au binaire

Systèmes et traitement parallèles

Ordinateurs, Structure et Applications

Informatique Générale

Concept de machine virtuelle

Tout savoir sur le matériel informatique

Éléments d'architecture des ordinateurs

Cours d Informatique

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

Les fonctions logiques

Architecture des ordinateurs Introduction à l informatique

LOGICIEL DC4D MONITOR

3. Structure des ordinateurs. 3.1 L' Unité Centrale (UC) ou processeur (Central Processing Unit CPU)

Link GSM idp Manuel v1.0

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

MANUEL D UTILISATION PRO-FACE

MANUEL D INSTRUCTION

TP Contraintes - Triggers

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

SQL Server 2012 Implémentation d'une solution de Business Intelligence (Sql Server, Analysis Services...)

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

Le Network File System de Sun (NFS)

1 Démarrer L écran Isis La boite à outils Mode principal Mode gadget Mode graphique...

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

Programme détaillé. Administrateur de Base de Données Oracle - SQLServer - MySQL. Objectifs de la formation. Les métiers

Prentice Hall, 2011 (ISBN )

Les transactions 1/46. I même en cas de panne logicielle ou matérielle. I Concept de transaction. I Gestion de la concurrence : les solutions

Architecture des ordinateurs

Transcription:

INF1600: Architecture des micro-ordinateurs Architecture du microprocesseur Intro à l assembleur et boucle d exécution Responsable du cours : Giovanni Beltrame giovanni.beltrame@polymtl.ca Local: M-4109 Chargée de cours: Luiza Gheorghe luiza.gheorghe@polymlt.ca Génie informatique et génie logiciel 1 H2015

2 La micro-architecture de la machine de Von Neumann La séquence d opérations pour exécuter un programme 1) Récupérer les instructions de la mémoire 2) Décoder la représentation numérique des instructions 3) Charger les données de la mémoire ou des entrées vers l accumulateur 4) Exécuter l opération correspondante sur les données 5) Sauvegarder le résultat 6) Revenir à 1) et répéter Mémoire Entrées/Sorties L accumulateur est une petite mémoire proche du processeur Unité arithmetiquelogique (ALU) Accumulateur Unité de contrôle Processeur Génie informatique et génie logiciel 2 H2015

RTN et operateurs arithmétiques et logiques add (:=op=12) R[ra] R[rb] + R[rc] : sub (:=op=14) R[ra] R[rb] - R[rc] : neg (:=op=15) R[ra] - R[rc] : and (:=op=20) R[ra] R[rb] R[rc] : or (:=op=21) R[ra] R[rb] R[rc] : not (:=op=22) R[ra] R[rc] : Source: Heuring&Jordan Génie informatique et génie logiciel 3 H2015

Modes d adressage Registre R[t] R[a] Var temp Registre indirect R[t] M[R[a]] Pointeur Immédiate R[t] X Constante Indexée (déplacement) R[t] M[X+R[a]] Arrays Auto incrément R[t] M[R[a]]; R[a] R[a] + 1; Auto décrément R[a] R[a] - 1; R[t] M[R[a]]; Source: Heuring&Jordan Génie informatique et génie logiciel 4 H2015

Architecture 1 bus -1 bus 32 bits occupé par un registre a la fois - MA le CPU copie l adresse mémoire dans MA - MD les données sont lues de ou écrites dans MD - Le premier opérande ALU toujours en A, le résultat en C - Le deuxième opérande vient toujours du bus - L informations du bus va toujours en IR et MA - Un décodeur interprète l info envoyée au IR - MA communique l adresse a la mémoire et non au CPU Abstraite: (IR M[PC] : PC PC+4 ; instruction_execution) instruction_execution:=( add (:=op=12) R[ra] R[rb] + R[rc] : Concrète: Recherche d instruction MA PC : C PC+4 ; MD M[MA] : PC C ; IR MD ; Exécution d un instruction add A R[IR 21..17 ] ; C A + R[IR 16..12 ] ; R[IR 26..22 ] C ; Source: Heuring&Jordan Génie informatique et génie logiciel 5 H2015

Architecture 1 bus Informations sur l architecture: - ALU doit être capable d additionner 2 valeurs de 32 bits - ALU doit être capable d incrémenter l entrée B avec 4 - Pour lire la mémoire: l adresse se trouve en MA et les données sont mises en MD - Le premières 3 étapes (recherche d instructions) sont le mêmes pour toutes les instructions architecture un bus - Pour l addition donnée en exemple, la recherche de l instruction et l exécution prennent 6 cycles d horloge. Génie informatique et génie logiciel 6 H2015

7 Conversation avec périphérique Certains périphériques demandent de l attention Deux méthodes «d attente» Scrutation («polling»): aller voir souvent Interruption: aller voir lorsqu on «sonne» Étapes d un interruption Un circuit dédié reçoit les requêtes Le processeur arrête ce qu il fait pour les traiter Une routine est exécutée par le processeur Le processeur reprend où il était Attention Interruption n importe où Sections critiques: possible d empêcher les interruptions Génie informatique et génie logiciel 7 H2015

Boucle d exécution avec interruptions 7 Exécution directe du vecteur d interruption (comme sur AVR) (IE=interrupt enable ; ireq=interrupt request ; I_Num=interrupt number ; SP=stack pointer ; IPC=interrupt PC) boucle_execution := Rst (Rst 0: IE 0: PC 0; boucle_execution) : Rst (ireq IE) (IE 0 : sauver_pc : PC 21@0 # I_Num<7..0> # 3@0 ; boucle_execution): Rst (ireq IE) (IR M[PC] : PC PC+4; execute_instruction; boucle_execution) Pointeur vers routine (comme sur Intel x86) PC M[22@0 # I_Num<7..0> # 2@0] Sauver PC Pile: SP SP 4 ; M[SP] PC ; Reg.: IPC PC ; (+ instructions pour sauver IPC) Retour d interruption Pile: PC M[SP] ; SP SP + 4 ; IE 1; Reg.: PC IPC ; IE 1; (+ instructions pour restaurer IPC) Génie informatique et génie logiciel 8 H2015

Programme du cours 7/01/2016 Introduction 28/01/2016 Organisation interne du microprocesseur TP4 Lien entre C++ et assembleur TP0 Introduction aux outils TP2 Architecture du microprocesseur Hierarchie de mémoire 14/01/2016 Micro-ordinateur et périphériques Programmation en assembleur TP5 Mémoires TP1 Périphériques et architecture TP3 Programmation en assembleur 21/01/2016 Architecture d'un microprocesseur C++ et assembleur Théorie Travaux Pratiques Génie informatique et génie logiciel 9 H2015

Objectifs de la leçon 1 2 3 4 5 6 7 Dessiner la structure d'un banque de registres (composants et connexions) Décrire comment stabiliser les données en entrée pour un banque de registre Décrire la procédure de décodage d'une instruction Dessiner un circuit de contrôle pour un microprocesseur Décrire une structure possible d une unité arithmétique-logique Faire une liste de méthodes pour réduire la consommation d énergie dans un microprocesseur Décrire des mises-en œuvre possibles pour: décaleur, additionneur/soustracteur, operateurs logiques et MUX Génie informatique et génie logiciel 10 H2015

Agenda Registres 1 2 3 Contrôle 4 UAL 5 6 7 Génie informatique et génie logiciel 11 H2015

RT circuits numériques A Β Source: Heuring&Jordan Génie informatique et génie logiciel 12 H2015

Circuit: registre entrée écrire sortie d 0 D SET Q q 0 CLR Q r0 d 1 D SET Q q 1 CLR Q d n-1 D SET Q q n-1 r1 Envoyer un signal à un parmi m Décodeur avec activation (démux) Correct pour lecture add R1, R2, R3 sub R2, R4, R1 or R1, R6, R3 CLR Q m registres Génie informatique et génie logiciel 13 H2015

Circuit: registre Envoyer un signal à un parmi m Problème pour écriture: écrire au bon moment WAR écriture d une valeur sur une autre valeur toujours nécessaire; add R1, R2, R3 sub R2, R4, R1 or R1, R6, R3 WAW deux instructions qui s exécutent en parallèle veulent écrire en même temps dans le même registre add R1,R2,R3 sub R2,R4,R1 or R1,R6,R3 r0 r1 RAW une instruction doit lire les données écrites par une autre instruction add R1, R2, R3 sub R2, R4, R1 or R1, R6, R3 m registres Génie informatique et génie logiciel 14 H2015

Circuit: écrire registre Comment écrire juste au bon moment? Circuit possible: Permet à écrire de se stabiliser Tous les registres à écrire le seront au même moment (le délai d une bascule après le front d horloge) Maintenant décodeur fonctionne: Bits de l instruction en entrée au décodeur Circuit de contrôle dit à quel cycle l activer Génie informatique et génie logiciel 15 H2015

Circuit: sélection, banque de registre Supposons un jeu d instructions à 3 opérandes (abstract RTN): OP ra, rb, rc R[ra] R[rb] R[rc] (où est l opération) op := IR 31..27 : ra := IR 26..22 : rb := IR 21..17 : rc := IR 16..12 26..22 21..17 16..12 11..0 inutilisés 31..27 26..22 21..17 16..12 11..0 inutilisés 5 5 5 Activer écriture Décodeur 5 vers 32 Mulitplexeur 2 vers 1 Select b/c 32 5 Vers bascules pour écrire Décodeur 5 vers 32 Activer lecture 32 Vers portes trois-états Contrôle: 3 fils Génie informatique et génie logiciel 16 H2015

Agenda Registres 1 2 3 Contrôle 4 UAL 5 6 7 Génie informatique et génie logiciel 17 H2015

Source: Heuring&Jordan Génie informatique et génie logiciel 18 H2015

Contrôle RTN Concrète Séquence contrôle MA PC : C PC+4 ; Pc out, MA in, Inc4, C in MD M[MA] : PC C ; Read, MD in C out, PC in, Wait IR MD ; MD out, Ir in execution_instruction Wait sert a prévenir l avancement à l étape suivante avant que la mémoire «asserte» «Done» Génie informatique et génie logiciel 19 H2015

Circuit: contrôle avec microprogramme Machine à états avec une sortie par signal à contrôler Contrôle avec microprogramme: Une séquence d instructions pour contrôler des opérations complexes. Implémentation: -doit générer un ensemble de signaux de contrôle -les signaux de contrôle sont ON ou OFF -doit avoir un «word» de contrôle pour chaque micro- opération -ajoute une adresse a chaque cycle pour spécifier l instruction suivante (dépendant de conditions si branchement ou non) Source William Stallings Computer Organization and Architecture Génie informatique et génie logiciel 20 H2015

Séquenceur -Donne la commande de lecture -Le mot du Registre de contrôle d adresses est lu dans le Registre de contrôle de tampon -Charge la nouvelle adresse dans le tampon en considérant l adresse suivante (envoyée par le Registre de contrôle de tampon) et les flags Registre Control Tampon -Génère les signaux de contrôle et l adresse suivante Source William Stallings Computer Organization and Architecture Génie informatique et génie logiciel 21 H2015

Clk interrupt autre IR Opcode Séquenceur 2 PLA ou mem (donne l adr. de départ) n Source externe Incrémente Mux 4:1 n n PC k Mém de programme (chaque case contient les signaux m de contrôle d un cycle) m IR n Source: Heuring&Jordan Signaux de contrôle Génie informatique et génie logiciel 22 H2015

Agenda Registres 1 2 3 Contrôle 4 UAL 5 6 7 Génie informatique et génie logiciel 23 H2015

UAL Architecture du microprocesseur Source: Heuring&Jordan Génie informatique et génie logiciel 24 H2015

Circuit: UAL Unité arithmétique et logique (UAL ou «ALU») Plusieurs opérations possibles Mêmes entrées (souvent) Version possible: A B carry_in n n n 5 add/sub additionneur «shifter» n+1 n+1 Sélection d opération Multiplexeur (MUX) n+1 Mais gaspille de l énergie Génie informatique et génie logiciel 25 H2015

Énergie Architecture du microprocesseur Les transitions prennent de l énergie Plus si le fil est long / a beaucoup de connexions Les signaux constants prennent relativement peu d énergie «Gating» Couper la propagation de transitions Placer une porte «et» avec un 0 On peut couper: Données Contrôles Horloge Source: Kamaraju, Kishore, Tilak: Power optimized ALU Génie informatique et génie logiciel 26 H2015

Énergie Architecture du microprocesseur Couper l alimentation Ne pas alimenter les parties non utilisées Ajouter des transistors pour couper l alimentation de régions du circuit Instruction «halt» au lieu d une boucle infinie «Voltage scaling» et «frequency scaling» Génie informatique et génie logiciel 27 H2015

Circuit: UAL Un circuit par opération logique, puis un MUX? and, or, xor, not + MUX 4:1 Un circuit pour toutes opérations «bitwise» 16 possibilités d opérations de 2 entrées booléennes Donc, MUX 4:1 Table de vérité a b MUX 4:1 a b résultat Un circuit pour plus et un pour moins? A - B = A + (-B) En complément à deux: -B = not(b)+1 sub/add n n n additionneur n+1 Génie informatique et génie logiciel 28 H2015

Circuit: UAL Décaleur de N bits («Shifter») - Pour manipulation de bits extraire bits individuels dans mots - Multiplication et division puissances de 2 - A*4 = A<<2 - A/8 = A>>3 - A*5=(A<<2) + A - A << B (décaler A de B bits vers la gauche, 0 A < 2N, 0 B < N) - Décaleur logique: i.e. A<<3 11010110 -> 10110000 A>>3 11010110 -> 00011010 - Décaleur aritmetique: i.e. A<<3 11010110 -> 10110000 A>>3 initial) Circuit petit, mais lent: N décalages d un bit 11010110 -> 11111010 (le bit de signe du nombre Génie informatique et génie logiciel 29 H2015

Rapide: décaleur en barillet («barrel shifter») n = log 2 N étages, décalant de 2 i bits (pour i de 0 à n-1) Chaque étage contrôlé par un bit du nombre par lequel il faut décaler B n-1..0 A N-1..0 B 0 B 1 B 2 Décaler de 1 Décaler de 2 Décaler de 4 Génie informatique et génie logiciel 30 H2015

Agenda Registres 1 2 3 Contrôle 4 UAL 5 6 7 Génie informatique et génie logiciel 31 H2015

Registres IA32 Registres usage général Directement accessibles 31 0 EAX EBX ECX EDX ESI EDI EBP block pointer ESP stack pointer Registres select pointeurs qui identifient un segment dans la mémoire non utilisés dans INF1600 15 0 CS - code DS - data SS - stack ES - data FS - data GS - data Registres état et contrôle 31 0 EFLAGS plusieurs flag état, un flag ctrl EIP pointeur instructions - PC Génie informatique et génie logiciel 32 H2015

Architecture du microprocesseur Sommaire Von Neumann vs Harvard Instructions : Operations, opérandes Encodage Accès mémoire Adressage (puce vs programme) Alignement Composants Registre Bus Tri-state buffer Décodeur Unité arithmétique-logique (add/sub, décaleur, op. logique) Génie informatique et génie logiciel 33 H2015

Architecture du microprocesseur RTN Abstrait : QUOI fait une instruction Concret : COMMENT c'est fait Séquence de contrôle : une série de signaux RTN concret <=> Séquence de contrôle Imaginez un système de robinets et de tubes Registres = réservoirs, Tri-state = robinets, Bus = tubes UAL : changement de la composition chimique de l'eau Contrôle : ouverture/fermeture de robinets Génie informatique et génie logiciel 34 H2015

Mémoire PC A MA MD Unité arith. (UAL) C Architecture du microprocesseur IR R[0..31] Circuit de contrôle Clk interrupt autre Séquenceur k Incrémente Mux 4:1 n IR 2 Opcode PLA ou mem (donne l adr. de départ) n PC Mém de programme (chaque case contient les signaux m de contrôle d un cycle) n m IR Signaux de contrôle Source externe n Génie informatique et génie logiciel 35 H2015

Exercice Génie informatique et génie logiciel 36 H2015

Exercice Génie informatique et génie logiciel 37 H2015

Synthèse Génie informatique et génie logiciel 38 H2015

Génie informatique et génie logiciel 39 H2015