Cours Architecture des Systèmes Informatiques

Slides:



Advertisements
Présentations similaires
Électronique de base du processeur
Advertisements

Le Concept du programme enregistré
Architecture de machines Le microprocesseur
ARCHITECTURE INTERNE d’un MICROPROCESSEUR
Plan du cours : 2ème Partie
Jacques Lonchamp IUT Nancy Charlemagne – DUT Informatique 1A
Ref :
Le Concept du programme enregistré
Le jeu d ’instructions Introduction Un jeu d ’instruction classique
Introduction : Compilation et Traduction
Architecture de machines Le microprocesseur
Présentation Unité de codage
Système d’exploitation : Assembleur
PILE voir l'animation: Diaporama / Visualiser ...
Système d’exploitation : Assembleur
Chapitre 8 : L’architecture de base des ordinateurs
Système d’exploitation : Assembleur
ARCHITECTURE GLOBALE CAPTAGE Traitement DES des données GRANDEURS
Architecture et technologie des ordinateurs II
Architecture de base d’un ordinateur
Les piles Djamal Rebaïne.
RESUMES Module II1 SOMMAIRE CYCLE 1 : Saisir – Afficher – Données
LE MICROPROCESSEUR 8086/8088 Architecture externe du 8086
Structure de la famille de DSP Motorola 56300
Architecture des Ordinateurs
Architecture Fondamentale des Microprocesseurs
LES SYSTEMES AUTOMATISES
Structures de données IFT Abder Alikacem Gestion des exceptions Département dinformatique et de génie logiciel Édition Septembre 2009.
GPA770: Microélectronique appliquée
Architecture et technologie des ordinateurs II
Mécanismes d'exécution et de communication
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.
Lycée ELKHAWARIZMI De SAFI
Cours Architecture des Systèmes Informatiques
Architecture Des Ordinateurs Microprocesseur Et Mémoire
Chapitre 9 : La machine MIASM
Cours de Structure et Technologie des composants d’ordinateurs
Architecture interne du microprocesseur 8086.
9 décembre 2014J.Callot L.Piedfort1 Chapitre_1 K60 Evolution des machines Introduction au K60 Liaison série.
Un survol du language C.
Architecture d'un ordinateur
3-Présentation d’un µP simple
L’architecture du processeur Xtensa de Tensilica
Architectures des ordinateurs
Les Machines RAM.
COURS_1 JC LP MD.
Architecture et technologie des ordinateurs II
1 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Jean-Jacques Girardot
Microcontrôleurs PIC. 1ère séance Présentation du PIC16F876 Outils de programmation du PIC Le langage C Exemples d’applications simples 2ème séance Présentation.
1 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. tél Fax Cours Architecture des.
INFOR 101 Chapitre 5 Marianne Morris.
D.E ZEGOUR Ecole Supérieure d’Informatique
B.Shishedjiev - Affectation1 Expressions et affectation Comment produire des nouvelles valeurs.
Micro contrôleurs M. Boutemeur
UE MAREP Cours 5 : Structures de contrôle représentées en assembleur
Patricia Renault UPMC 2005/2006
Cours Système LI324 Les Interruptions Cours Système LI324
Représentation digitale des données Trois formats de base: 1) Décimale: base 10 (Une constante i.e dimension d ’1 vecteur) 2) Binaire: base 2 ( Mask, set/reset.
Les expressions. Une expression retourne une valeur lorsqu’elle est exécutée par le programme. a+2, x==0, i++, !isdigit(c) && b, sin(Pi),… On peut donc.
Les instructions de contrôle
Chapitre 3 L’accès aux données.
Architecture des ordinateurs
CHAPITRE 8 Les booléens et les chaines de bits 1.
Architecture d’un ordinateur
Formations Système Embarqué & Informatique Industrielle
Joëlle Delacroix - NFA0041 Fonctionnement du processeur : exécution des instructions machine RUPTURE DE PROGRAMME : les INTERRUPTIONS.
ARCHITECTURE MATERIELLE D’UN SYSTEME A MICROPROCESSEUR
Département Informatique Gestion du flux d’exécution Laurent JEANPIERRE D’après le cours de Pascal FOUGERAY IUT de CAEN – Campus 3.
Architecture de machines Le microprocesseur
Architecture de machines Le microprocesseur Cours
Transcription de la présentation:

Cours Architecture des Systèmes Informatiques Jean-Jacques Girardot girardot@emse.fr http://kiwi.emse.fr/ASI/ Troisième séance Instructions et Modes d’Adressage

Instructions et modes d’adressages CPU & Registres Exemples : MAC, une machine virtuelle simplifiée Mémoire & Modes d’adressage Instructions Sémantique Représentation Format des instructions Assembleur

Qu’y a-t-il dans une CPU ? Unité arithmétique et logique Unité de commande Registres spécialisés et généraux données [nombres entiers, nombres flottants] (Data Registers) adresses (Adresses Registers) pointeur d’instruction (PC, Program Counter/IP Instruction Pointer) état du calculateur (PSW, Program Status Word/Flags) pointeur de pile (SP, ou Stack Pointer) …

Déroulement d’un programme Adresse de lancement La première instruction à exécuter Valeur initiale du registre PC (Program Counter) Exécution séquentielle Rangement des instructions en MC par adresses croissantes Branchement (conditionnel ou non) Changer l’adresse de la prochaine instruction à exécuter Exceptions et Interruptions Suspension du déroulement normal d’un programme

Exceptions et Interruptions Évènements qui provoquent l’arrêt du déroulement normal d’un programme Exception (évènement interne) : une opération provoque une erreur Division par zéro Accès à une adresse mémoire incorrecte Code opération invalide, etc. Interruption (évènement externe) : signal extérieur à la CPU Une unité d’E/S termine une opération/est en erreur Le signal “reset” est actionné

Traitement d’une interruption L’évènement est pris en charge par la CPU Différents niveaux selon la nature (16, 256…) ; priorités Différents codes Déroulement : Sauvegarde du “contexte” du programme courant Registres, PC, PSW Exécution du code de gestion de l’interruption Reprise éventuelle du déroulement du programme interrompu L’interruption est alors transparente

Les instructions du calculateur Types d’instructions Opérations de l’unité arithmétique et logique [UAL] Instructions de branchement Branchement conditionnel, inconditionnel Appel & retour de sous-programme Instructions de contrôle diverses Syntaxe des instructions : Langage machine 0xA35002C4 Assembleur LD R5,SD2

Instructions de l’UAL Réaliser des opérations dyadiques op1 op2  op3 [ex: +, -, *, /, &,| , etc.] Architecture de l’UAL Machine à pile empiler, dépiler ; opération sur “sommet” de la pile Machine à “une adresse” et accumulateur/registres A A  op RX RX  op Machine à deux/trois adresses op1 op1  op2 op1 op2  op3

Machine à pile Accès mémoire Opérations “Empiler” un opérande push “Dépiler un opérande” pull Opérations S’appliquent aux “n” éléments situés en sommet de pile Ex : 98*(12+45)

Machine à accumulateur Un registre spécifique (l’accumulateur) sert aux opérations. op1 op2  op3 se traduit par : Chargement depuis la mémoire : LOAD Écriture en mémoire : STORE Opérations : ADD, SUB, MUL, etc. Les expressions complexes utilisent des “temporaires” (A+B)*(C-D) devient : LOAD A STORE TMP1 SUB D ADD B LOAD C MUL TMP1 LOAD OP2 ADD OP3 STORE OP1

Machine à registres multiples Registres spécialisés/non : données/adresses caractéristiques différentes (taille 32/24 bits) Chaque registre (de données) se comporte comme un accumulateur Opérations registre/mémoire, ou registre/registre (A+B)*(C-D) devient : LOAD R2,A ADD R2,B LOAD R3,C SUB R3,D MUL R2,R3 Architectures RISC (Reduced Instruction Set Computer)

Instructions à adresses multiples Machines anciennes / exotiques taille variable des instructions : 1 à 26 octets… cas des machines CISC “Complex Instruction Set Computer” souvent réalisé par microprogrammation opérations spécialisées déplacement de zones de mémoire conversion de zones de mémoire opérations sur nombres flottants Ex: 8080 et descendants…

SIM, un ordinateur “pédagogique” Une machine imaginaire La CPU 16 registres généraux 16 bits (données & adresses), R0, R1… R15 1 registre programme 16 bits, PC 1 registre d’état 16 bits, PSW : R..POCSZeeeeeeee R : bit “run” : 1 si le calculateur est en marche P : bit “parité” : bit de poids faible du résultat du dernier calcul O : bit “overflow” : dépassement de capacité en complément à 2 C : bit “carry” : retenue en complément à 1 S : bit “signe” : bit de poids fort du résultat du dernier calcul Z : bit “zéro” : 1 si le résultat du dernier calcul est nul eeeeeeee : code d’erreur ou d’interruption Mémoire de 64 ko, adressable en mots (16 bits) ou octets (8 bits)

Les instructions de la machine 2 Formats : court, 16 bits, ou long 32 bits 0 mm ccccc xxxx yyyy 1 mm ccccc xxxx yyyy aaaaaaaaaaaaaaaa bit 0 : format (court 0 ou long 1) bits 1-2 : mode M (3 modes : immédiat 00, direct 01, indirect 10) bits 3-7 : code opération C (32 opérations) bits 8-11 : constante/registre X bits 12-15 : constante/registre Y bits 16-31 : constante/adresse mémoire A

Ex: chargement de registre : 0x01 LD R5,#3 0 00 00001 0101 0011 0153 R5 reçoit la valeur 3 (adressage court immédiat) LD R5,R3 0 01 00001 0101 0011 2153 R5 reçoit le contenu de R3 (adressage court direct) LD R5,(R3) 0 10 00001 0101 0011 4153 R3 désigne un mot de la mémoire, R5 reçoit le contenu de ce mot (indirect) LD.L R5,#0x3F24 1 00 00001 0101 0000 0011111100100100 R5 reçoit la valeur 0x3F24 (adressage long immédiat) 8150 3F24 LD.L R5,0x3F24 1 01 00001 0101 0000 0011111100100100 R5 reçoit la valeur contenue dans le mot d’adresse 0x3F24 (adressage long direct) A150 3F24 LD.L R5,0x3F24(R3)1 10 00001 0101 0011 0011111100100100 R5 reçoit la valeur située dans le mot dont l’adresse est obtenue en ajoutant le contenu de R3 à 0x3F24 (adressage long indexé) C153 3F24

Opérations arithmétiques et logiques (1) Addition : ADD, 0x03. Ex: ADD R2,#8 0328 Soustraction : SUB, 0x04. Ex: SUB R5,R9 2459 Logiques And : AND, 0x07. Ex AND R6,(R11) 476B Or : OR, 0x06. Ex: OR.L R12,MASK A6C01234 Xor: XOR, 0x08. Ex XOR.L R3,#0x8080 88308080 Comparaison Compare: CMP, 0x05. CMP.L R7,MASK(R13) C57D1234

Opérations arithmétiques et logiques (2) Opposé : NEG 0x16. Ex: NEG R2 1620 Décalage arithmétique à gauche : SAL 0x12. (id: SAR 0x13, décalage à droite). Ex: SAL R5,#9 1259 Logiques Not : NOT 0x17. Ex NOT R6 1760 Décalage logique à gauche : SLL 0x10. (id: SLR 0x11). Ex: SLL R5,R9 3059 Décalage circulaire à gauche : SCL 0x14. (id: SCR 0x15). Ex: SCL R5,R9 3459

Opérations arithmétiques et logiques (3) Multiplication & Division MUL 0x18, DIV 0x19. Opèrent sur un couple de registres, R0-R1 : le produit de deux entiers 16 bits est un entier 32 bits. MUL R4 1840 [R0-R1]  R0*R4 DIV R4 1940 [R0-R1]  R4 [R0-R1] est divisé par R4 ; R0 reçoit le quotient entier, R1 le reste Positionnement des drapeaux du PSW P, S et Z : toutes les opérations arithmétiques et logiques, chargement C et O : opérations arithmétiques ; décalages (C : bit sortant à droite, O : bit sortant à gauche)

Exemple - 1 Calcul de C=(A+5)*(B-1) A est à l’adresse 0x1020, B à l’adresse 0x1044, C en 0x1028 LD.L R0,A A100 1020 ADD R0,#5 0305 LD.L R2,B A120 1044 SUB R2,#1 0421 MUL R2 1820 ST.L R1,C A910 1028 Instruction Store, ST, 0x09 : “décharger un registre” Formats directs et indirects, courts et longs.

Opérations de branchement Instruction unique : Jump, 0x0F. Opération effective : bits 8 à 11. Ex : 0000, branchement inconditionnel Pas de mode d’adressage court immédiat. JMP R3 0 01 01111 0000 0011 2F03 PC reçoit le contenu de R3 (adressage court direct) JMP (R3) 0 10 01111 0000 0011 4F03 R3 désigne un mot de la mémoire, PC reçoit le contenu de ce mot (indirect) JMP.L #0x3F24 1 00 01111 0000 0000 0011111100100100 PC reçoit la valeur 0x3F24 (adressage long immédiat) 8F00 3F24 JMP.L 0x3F24 1 01 01111 0000 0000 0011111100100100 PC reçoit la valeur contenue dans le mot d’adresse 0x3F24 (adressage long direct) AF00 3F24 JMP.L 0x3F24(R3)1 10 01111 0000 0011 0011111100100100 PC reçoit la valeur située dans le mot dont l’adresse est obtenue en ajoutant le contenu de R3 à 0x3F24 (adressage long indexé) CF03 3F24

Branchements conditionnels JEQ : jump si égal 0x1 JEQ R5 2F15 (saut si Z=1) JNE : jump si non égal 0x2 JNE R5 2F25 (saut si Z=0) JG : jump si supérieur 0x3 JGT R5 2F35 (Z=0 et S=0) JL : jump si inférieur 0x4 JLT R5 2F45 (S=1) JGE : supérieur ou égal 0x5 JGE R5 2F55 (S=0) JLE : inférieur ou égal 0x6 JLE R5 2F65 (Z=1 ou S=1) JC : saut si carry 0x8 JC R5 2F85 (C=1) JNC : non carry, 0xA (C=0) JO : overflow, 0x9 (O=1) JNO : non overflow, 0xB (O=0) JP : parity, 0xC (P=1) JNP : non parity, 0xD (P=0)

Exemple - 2 Calcul de C=MAX(A,B) A est à l’adresse 0x1020, B à l’adresse 0x1044, C en 0x1028, le code en0x400 0400 LD.L R0,A A100 1020 0404 CMP.L R0,B A500 1044 0408 JGT 0x410 8F30 0410 040C LD.L R0,B A100 1044 0410 ST.L R0,C A900 1028

Exemple - 3 : PGCD de 2 nombres Algorithme : Nombres dans R2 et R3 Étape 1 : si R2 = R3, alors : R2 est le PGCD ; arrêt du programme. Étape 2 : si R2 > R3, échanger R2 et R3 Étape 3 : soustraire R2 de R3 Étape 4 : revenir à l’étape 1

PGCD : le programme Code placé en 0x1000 TEST: CMP R2,R3 1000 2523 JEQ FIN 1002 8F10 1016 JLT SUITE 1006 8F40 1010 LD R0,R3 100A 2103 LD R3,R2 100C 2132 LD R2,R0 100E 2120 SUITE: SUB R3,R2 1010 2432 JMP TEST 1012 8F00 1000 FIN: ... 1016 ...