Architecture des ordinateurs

Documents pareils
Architecture des ordinateurs

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

Microprocesseur + Logiciel

Conception de circuits numériques et architecture des ordinateurs

ASR1 TD7 : Un microprocesseur RISC 16 bits

Rappels d architecture

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

Jeu d instructions NIOS II

CM2 L architecture MIPS32

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

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

Représentation des Nombres

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

IFT1215 Introduction aux systèmes informatiques

IV- Comment fonctionne un ordinateur?

Cours Informatique 1. Monsieur SADOUNI Salheddine

Exécution des instructions machine

Architecture des ordinateurs

Structure d un programme


Fonctionnement et performance des processeurs

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

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

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

Architecture des ordinateurs Introduction à l informatique

Licence Sciences et Technologies Examen janvier 2010

Programmation assembleur : aperçu

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

Une version javascript sera disponible directement dans le cours prochainement.

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

Informatique Générale

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

Compilation (INF 564)

La JVM. La machine virtuelle Java. La JVM. La JVM

ET LO GICIEL D UN S YS T EME IN FORMATIQUE

Architecture matérielle des systèmes informatiques

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)

PIC : COURS ASSEMBLEUR

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

Cours d Algorithmique et de Langage C v 3.0

Éléments d'architecture des ordinateurs

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

Techniques de stockage. Techniques de stockage, P. Rigaux p.1/43

CONFIGURATION DE L AUTOMATE SIEMENS

Architecture de l ordinateur

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

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

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

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

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

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

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

TD Architecture des ordinateurs. Jean-Luc Dekeyser

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

Conversion d un entier. Méthode par soustraction

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

Programmation en langage C

STAGE IREM 0- Premiers pas en Python

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

Architecture des Ordinateurs. Partie II:

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

Chapitre VI- La validation de la composition.

Partie 7 : Gestion de la mémoire

Administration des ressources informatiques

Initiation à la programmation en Python

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

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

PROJET ALGORITHMIQUE ET PROGRAMMATION II

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

Algorithme. Table des matières

Unix/Linux I. 1 ere année DUT. Université marne la vallée

Architecture des ordinateurs. Robin FERCOQ

Programmation Bas Niveau

Architecture des ordinateurs

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

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

6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr

Contraintes, particularités. 1. Généralités Gestion de la mémoire a. Type des variables et constantes... 2

Cours 1 : La compilation

Initiation à l algorithmique

Documentation SecurBdF

REALISATION d'un. ORDONNANCEUR à ECHEANCES

Système de Gestion de Fichiers

Styler un document sous OpenOffice 4.0

Conventions d écriture et outils de mise au point

Représentation d un entier en base b

Algorithmique et Programmation, IMA

ACTIVITÉ DE PROGRAMMATION

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

Chap 4: Analyse syntaxique. Prof. M.D. RAHMANI Compilation SMI- S5 2013/14 1

Plan du cours. Historique du langage Nouveautés de Java 7

Base de l'informatique. Généralité et Architecture Le système d'exploitation Les logiciels Le réseau et l'extérieur (WEB)

Langage C. Patrick Corde. 22 juin Patrick Corde ( Patrick.Corde@idris.fr ) Langage C 22 juin / 289

Informatique UE 102. Jean-Yves Antoine. Architecture des ordinateurs et Algorithmique de base. UFR Sciences et Techniques Licence S&T 1ère année

Organisation des Ordinateurs

Systèmes et traitement parallèles

Ordinateurs, Structure et Applications

UE C avancé cours 1: introduction et révisions

Initiation. àl algorithmique et à la programmation. en C

Transcription:

Architecture des ordinateurs Comment sont exécutés les programmes? => du langage de haut niveau au langage machine Composants et couches d une architecture => micro-architecture, bus, entrées-sorties, mémoires, horloge, processeurs Facteurs d amélioration des performances => pipeline, cache, parallélisme Bibliographie: Architecture de l ordinateur Andrew Tanenbaum (Dunod) Architectures logicielles et matérielles Paul Amblard et al(dunod) Claire Hanen 2002 1

Le modèle de Von Neuman Données Programmes Unité Arithmétique et Logique Unité de Commande Claire Hanen 2002 2

Architecture simplifiée Clavier Ecran Disque Processeur Mémoire centrale Contrôleur Contrôleur Contrôleur Bus de données Bus d adresses Claire Hanen 2002 3

Composants de base Mémoireorganisée en mots (emplacements numérotés) Processeur : unités de calcul, de commande et registres Bus: transfert d information, largeur Claire Hanen 2002 4

Couches d une architecture compilateur/système d exploitation Couche ISA langage d assemblage Couche Micro-architecture mémoire, certains registres instructions, entrée-sorties chemin des données, mémoires micro-programme, composants Couche physique Circuits logiques Claire Hanen 2002 5

Langage d assemblage et langage Langage machine: machine ensemble des instructions comprises par le processeur convention de codage Langage d assemblage description textuelle du langage machine Assembleur pour traduire en langage machine Claire Hanen 2002 6

Organisation de la mémoire En mots (parfois plusieurs découpages coexistent). Souvent mots de 8 bits (octets), 16 ou 32 bits Souvent alignés Claire Hanen 2002 7

Registres Mémoires situées dans le processeur accès rapide en général un mot généralistes ou spécialisés Exemple de registres spécialisés: compteur ordinal (adresse de l instruction exécutée) registre d état de l UAL (PSW) NZVCAP Claire Hanen 2002 8

Codage des données Données numériques: Entiers, signés ou non, plusieurs longueurs Flottants, 32,64,128 bits BCD (en Cobol) Données non numériques Caractères (ASCII = 1 octet, Unicode= 2 octets) booléen: octet adresse: entier non signé Claire Hanen 2002 9

Organisation des données numériques en mémoire Gros boutiste (big Endian): octets rangés du poids fort au poids faible Petit boutiste (little Endian): octets rangés du poids faible au poids fort Autres Echange d information difficile PC Claire Hanen 2002 10

Modes d adressage Décrit la manière dont l accès à la donnée est codé dans l instruction adressage immédiat: la donnée est codée. adressage direct: l adresse a du mot mémoire contenant la donnée est codée. Mem[a] direct par registre: le numéro n du registre est codé. Reg n Claire Hanen 2002 11

adressage indirect: indirect par registre: numéro du registre n qui contient l adresse du mot mémoire contenant la donnée Mem[contenu de Reg n] indirect par registre avec déplacement: numéro du registre, valeur constante relative d, Mem[contenu de Reg n + d] adressage indexé: indirect par registre avec index: deux numéros de registre n, m Mem[Reg n+ Reg m] indexé basé: deux numéros de registre et un déplacement Claire Hanen 2002 12

Dans certaines machines, il existe aussi l adressage avec mise à jour: ex adressage indirect par registre avec déplacement et mise à jour Mem[ contenu de Reg n + dep] et Reg n <-Reg n +dep Claire Hanen 2002 13

Codage des instructions Coder quoi? L opération Le mode d adressage et les opérandes Taille fixe ou variable? Claire Hanen 2002 14

Efficacité d un codage Compacité (peu de bits) organisation de la mémoire/taille des champs opérande possibilités d extension Rapidité de décodage. Claire Hanen 2002 15

Code expansif Champs de taille variable selon l instruction, mais code de taille fixe. Exemple 16 bits pour instruction. adresses codées sur 4 bits, 16 registres. 15 instructions à trois adresses, 14 à 2 adresses, 31 1 adresse et 16 sans Claire Hanen 2002 16

Principales instructions Transfert de données: source vers destination (selon modes d adressage) Opérations arithmétiques et logiques Branchements (spécifie la prochaine instruction si pas la suivante) non conditionnels conditionnels (selon bits registre PSW) Claire Hanen 2002 17

Structures de contrôle des langages de haut niveau If then else CMP R1,0 BNE L1 MOV R2,R3 MOV R4,R5 BR L2 L1: MOV R6,R7 MOV R8,R9 L2: MOV R7,R8 Boucle L1: CMP R1,0 BE L2 ADD R2,R3, R2 SUB R1,1 BR L1 L2: MOV R7,R8 Claire Hanen 2002 18

Appels de procédures: la pile d exécution Pile: zone mémoire marquée par un pointeur de sommet (dans un registre) A l appel on empile: le bloc des données de la procédure appelée, l adresse de retour dans la procédure appelante, la base de ces informations est mémorisée dans un registre (ainsi que le sommet de la pile) Au retour, on décrémente le sommet de pile de la taille du bloc donnée, sauf éventuellement le résultat on fait un saut à l adresse de retour qui était mémorisée. Permet de gérer les appels récursifs. Claire Hanen 2002 19

Une machine à pile sur les entiers: l IJVM Modèle mémoire: Pile d exécution+ opérations avec bloc de variables locales Instructions des procédures adresses des procédures (référencées / CPP) diverses autres constantes Claire Hanen 2002 20

Organisation de la mémoire En octets pour les instructions En mots de 32 bits pour les données Mais toute donnée est accédée par le biais d un index par rapport à l une des bases (SP, LV, CPP) Claire Hanen 2002 21

Instructions de l IJVM IPUSH octet push octet dans la pile 0x010 UP Duplique le mot du sommet et l empile 0x59 OTO offset Branchement inconditionnel 0xA7 ADD pop de deux mots, push de leur somme 0x60 AND pop de deux mots, push de leur ET 0x7E FLEQ offset pop un mot de la pile, branchement s il vaut 0 0x99 FLT offset pop un mot de la pile branchement s il est <0 0x9B F_ICMPEQ offset pop deux mots, branchement si égaux 0x9F INC numvar const additionne constante à variable locale 0x84 LOAD numvar push une variable locale dans la pile 0x15 NVOKEVIRTUAL dep invoque une méthode, dep est un index/ bloc de consantes 0xB6 OR pop de deux mots dans la pile, push de leur OR 0x80 RETURN retour de méthode avec valeur entière 0xAC STORE numvar pop mot de la pile et range dans variable locale 0x36 SUB pop deux mots, push différence 0x64 DC_W index push constante de zone constante 0x13 OP rien 0x00 OP efface sommet pile 0x57 WAP permute deux mots du sommet de pile 0x5F IDE ordinairement sur 8) préfixe d instruction: l instruction a un paramètre numvar ou const sur 16 bits 0xC4 Claire Hanen 2002 22

Appel de procédure Claire Hanen 2002 23

retour de procédure Claire Hanen 2002 24

Exemple i=j+k; if (i==3) k=0; else j=j-1 i,j,k ont respectivement pour index 1,2,3 par rapport à LV ILOAD j 0x15 0x02 ILOAD k 0x15 0x03 IADD 0x60 ISTORE i 0x36 0x01 ILOAD i 0x15 0x01 BIPUSH 3 0x10 0x03 IF_ICMPEQ L1 0x9F 0x00 0x0D ILOAD j 0x15 0x02 BIPUSH 1 0x10 0x01 ISUB 0x64 ISTORE j 0x36 0x02 GOTO L2 0xA7 0x00 0x07 L1: BIPUSH 0 0x10 0x00 ISTORE k 0x36 0x03 L2: Claire Hanen 2002 25

Langage d assemblage du Pentium II plusieurs modes opératoires (pour compatibilité commerciale) Mémoire découpée en segments puis en octets. Dans un segment, un octet est repéré par une adresse sur 32 bits. Les registres sont plus ou moins spécialisés et de taille différentes. chaque registre de 32 bits peut être vu comme 8 bits, 16 bits. instructions de taille variable, nombreus formats, nombreuses instructions -> décodage ifficile Beaucoup d instructions font directement référence à la mémoire structure irrégulière des registres (plus difficile d optimiser un compilateur) Claire Hanen 2002 26

Registres du pentium Claire Hanen 2002 27

Langage d assemblage de l UltraSparc Mémoire découpée en mots de 64 bits 32 Registres généraux de 64 bits avec des usages spécialisés courants pour les appels de procédure et 32 registres généraux pour les calculs flottants utilisation des registres pour simuler une pile pour les appels de procédure. Le système d exploitation gère les recopies en mémoire lorsque le nombre de registres est insuffisant. instructions de taille fixe (32 bits) sauf une. Transferts mémoire-registres, les autres instructions travaillent sur les registres. Relativement peu d instructions (RISC) Claire Hanen 2002 28

Couche micro-architecture Composants (registres, bus, signaux et circuits de commande, ALU) Micro-programme micro-instruction: décrit les signaux de commande pour un cycle de l architecture une instruction de la couche ISA peut correspondre à une suite de micro-instructions interpréteur. Claire Hanen 2002 29

Etude de MIC-1 Une micro-architecture pour implémenter la machine IJVM. Caractéristique: ne travaille que sur des entiers (32 bits). Claire Hanen 2002 30

Claire Hanen 2002 31

Chemin des données Claire Hanen 2002 32

Description des fonctions des registres PC: compteur ordinal MBR: registre instruction (un octet) SP: pointeur de pile LV:base de la zone variable dans la pile MAR:registre d adresse MDR:registre de données CPP: base du pool de constantes TOS; OPC registres complémentaires, utilisée pour la pile et comme bloc note. H: registre d entrée/sortie de l UAL N,Z: signaux de sortie de l UAL (negatif, zéro) Claire Hanen 2002 33

type d opération valide entrée A valide entrée B inverse entrée A force une retenue sur le bit de poids faible F0 F1 ENA ENB INVA INC Fonction 0 1 1 0 0 0 A 0 1 0 1 0 0 B 0 1 1 0 1 0 Non A 1 0 1 1 0 0 Non B 1 1 1 1 0 0 A+B 1 1 1 1 0 1 A+B+1 1 1 1 0 0 1 A+1 1 1 0 1 0 1 B+1 1 1 1 1 1 1 B-A 1 1 0 1 1 1 B-1 1 1 1 0 1 1 -A 0 0 1 1 0 0 A et B 0 1 1 1 0 0 A ou B 0 1 0 0 0 0 0 0 1 0 0 0 1 1 0 1 0 0 1 0-1 ALU SLL8: décale à gauche d 8 bits sortie ALU SRA1: décalage à droite d 1 bit sortie ALU sans changer bit décalé Décaleur Claire Hanen 2002 34

Chronologie du chemin On peut lire et écrire un registre pendant un même cycle. Claire Hanen 2002 35

Transferts avec la mémoire port 32 bits (MAR/MDR) MAR contient le numéro du mot ports 8 bits (PC/MBR) PC contient le numéro de l octet. MBR est complété pour faire un mot de 32 bits (sur le bus) avec ou sans extension de signe. registres commandés par signaux qui le connectent ou non au bus B/C signaux de lecture/écriture en mémoire et de recherche d instruction (rd,wr,fetch) Claire Hanen 2002 36

Micro-instruction Signaux de commande nécessaires: 9 pour ecriture bus C->registre 9 pour copie regisre-> bus B 8 UAL + décaleur 3 signaux transferts mémoire Accès à la micro-instruction suivante Claire Hanen 2002 37

une microinstruction sur 36 bits les micro-instructions sont en mémoire (512 mots de 36 bits) introduction d un décodeur pour l entrée du bus B l adresse de la micro-instruction suivante est directement mise dans l instruction JAM: sert à faire des sauts éventuels dans le micro-programme. Claire Hanen 2002 38

Mémoire de commande et microprogramme registre MPC qui contient l adresse de la prochaine micro-instruction. registre MIR: contient la micro-instruction courante. Un cycle MIR chargé depuis la mémoire de commande à l adresse MPC signaux propagés sur chemin de données données en entrée de l UAL opération effectuée, N, Z activés sortie sur bus C puis chargement registres. Eventuellement changement MDR adresse suivante dans MPC Analyse champ JAM Si un ou plusieurs bits à 1, BPF= (JAMZ et Z) ou (JAMN et N) ou adresse suivante Modification de MPC Claire Hanen 2002 39