INF1600: Architecture des micro-ordinateurs

Documents pareils
Conception de circuits numériques et architecture des ordinateurs

Architecture des ordinateurs

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

Rappels d architecture

Exécution des instructions machine

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

CM2 L architecture MIPS32

Compilation (INF 564)

Licence Sciences et Technologies Examen janvier 2010

NOTIONS DE RESEAUX INFORMATIQUES

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

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

Cours Informatique 1. Monsieur SADOUNI Salheddine

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

ASR1 TD7 : Un microprocesseur RISC 16 bits

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

Cours 1 : La compilation

Microprocesseur + Logiciel

TD Architecture des ordinateurs. Jean-Luc Dekeyser

Structure d un programme

IV- Comment fonctionne un ordinateur?

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

Une version javascript sera disponible directement dans le cours prochainement.

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Architecture des ordinateurs

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

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

IFT1215 Introduction aux systèmes informatiques

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

Architecture matérielle des systèmes informatiques

Structure fonctionnelle d un SGBD

Fonctionnement et performance des processeurs

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

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

Informatique Générale

Machines virtuelles Cours 1 : Introduction

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

1. Systèmes d entrée/sortie 2. Systèmes de fichiers 3. Structure de mémoire de masse (disques)

Systèmes et traitement parallèles

Architecture des ordinateurs

Architecture ordinateur. Organisation mémoire et Entrées/Sorties

Programmation assembleur : aperçu

SYSTÈME DE GESTION DE FICHIERS

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

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

Projet Matlab : un logiciel de cryptage

Architecture des ordinateurs Introduction à l informatique

Présentation du cours

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

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

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

Éléments d'architecture des ordinateurs

Tout savoir sur le matériel informatique

SYSTÈME DE GESTION DE FICHIERS SGF - DISQUE

Trixbox: Asterisk packagé. Unité Réseaux du CNRS

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

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

Architecture des Ordinateurs. Partie II:

Prentice Hall, 2011 (ISBN )

Conversion d un entier. Méthode par soustraction

Représentation des Nombres

Adressage des données des contrôleurs du WAGO-I/O-SYSTEM 750. Note d application

Jeu d instructions NIOS II

Tests de performance du matériel

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

On distingue deux grandes catégories de mémoires : mémoire centrale (appelée également mémoire interne)

Leçon 1 : Les principaux composants d un ordinateur

Initiation au HPC - Généralités

Chapitre I Notions de base et outils de travail

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

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

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

Organisation des Ordinateurs

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

THEME 1 : L ORDINATEUR ET SON ENVIRONNEMENT. Objectifs

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


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

Cours 3 : L'ordinateur

Programmation parallèle et distribuée

Architecture des calculateurs

Chapitre 4 : Les mémoires

Représentation d un entier en base b

Programmation parallèle et distribuée

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

REALISATION d'un. ORDONNANCEUR à ECHEANCES

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

TP Contraintes - Triggers

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

Conférence sur les microcontroleurs.

Évaluation et implémentation des langages

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

Ordinateurs, Structure et Applications

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

Gestion de mémoire secondaire F. Boyer, Laboratoire Sardes

Chapitre 1 : Introduction aux bases de données

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

CH.3 SYSTÈMES D'EXPLOITATION

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

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

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 1

3 Révision le disque dure Temps de transfert d une information: Déplacement du bras sur la piste (tête): «seek time» Temps de rotation: «rotational latency» Le temps de lecture/ écriture Taux de transfert au disque: Vitesse de rotation * secteurs/piste * données/secteur Source: pcguide.com 2

Soit le disque dur avec les caractéristiques suivantes: Temps (latence) de rotation (une rotation complète) - 6 ms Déplacement du bras d une piste a une piste adjacente -1 ms 1000 secteurs/piste stockées en ordre linéaire (de 0 a 999) La tête est positionné au début du secteur 1 sur la piste 12. La mémoire tampon peut stocker les données d une piste entière. Le temps de lecture, écriture est le même. Calculez: Exercice - Le temps nécessaire pour transférer le secteur 1 de la piste 12 dans le secteur 1de la piste 13 - Le temps nécessaire pour transférer toutes les secteurs de la piste 12 sur la piste 13. Les secteurs ne doivent pas être écrits dans le même ordre que lues. 3

1) Architecture du microprocesseur Le temps de lecture et écriture 6/1000 = 0,006 ms/secteur Le délai de rotation 6 ms 0.006 ms = 5.994 ms Le temps de déplacement de la tête 1 ms (peut être ignoré car si plus petit que le délai de rotation le deux sont exécutés en même temps) Le temps d écriture 0,006 ms/secteur Donc le temps est 0.006 + 5.994 + 0.006 (+ 1) = 6.006 (7.006) ms 2) Réponse Le temps de lecture piste 6 ms Le temps de déplacement de la tête 1 ms (n est plus ignoré car la piste doit être toute lue) Le temps d écriture 6 ms Donc le temps est 6 + 1 + 6 = 13 ms 4

Programme du cours 8/01/2015 Introduction Organisation interne du microprocesseur TP4 Lien entre C++ et assembleur TP0 Introduction aux outils TP2 Architecture du microprocesseur Hierarchie de mémoire 15/01/2015 Micro-ordinateur et périphériques Programmation en assembleur TP5 Mémoires TP1 Périphériques et architecture TP3 Programmation en assembleur 22/01/2015 Architecture d'un microprocesseur C++ et assembleur Théorie Travaux Pratiques 5

Objectifs de la leçon 1 2 3 4 5 6 7 Dessiner un diagramme de l architecture de Von Neumann Décrire la procédure suivie par une architecture de Von Neumann pour exécuter un programme enregistré Faire un liste des composants d'un processeur Décrire comment un processeur accède à une mémoire Décrire un boucle d'exécution d'un processeur en langage RTN Expliquer l'utilisation des pipelines pour rendre l'exécution plus rapide Décrire le processus d'interruption pour un processeur 6

1 Agenda Les niveaux d'abstraction d'un ordinateur 1 2 L'assembleur 3 La mémoire 4 La boucle d exécution 5 6 L'accès aux périphériques 7 7

1 Le concept du programme en mémoire : Les programmes sont des instructions stockées en mémoire - Chiffres qui peuvent être modifiés, effacés... Les programmes doivent être compris par le processeur - 1 et 0 Traduction Ordres de l'usager: Open the pod bay doors, HAL! Langage machine 10001011010110101... 8

Programme en C Compilateur GNU C Assembleur X86 9

Assembleur Assembler GNU C Langage machine 10

1 Le niveau dispositif (L1) 1s et 0s sont traduits en signaux électriques L1 Dispositif L1 11

1 Le niveau microarchitecture (L2) Abstraction Décrit comment les instructions sont exécutées Memory Input/Output Bus Processor Microarchitecture L2 Dispositif L1 12

1 Le niveau microarchitecture (L2) Memory Input/Output Mémoire Entrées/Sorties Bus Processor L accumulateur est une petite mémoire proche du processeur Unité arithmetiquelogique (ALU) Accumulateur Unité de contrôle Processeur Microarchitecture L2 Dispositif L1 13

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 Unité arithmetiquelogique (ALU) Accumulateur Unité de contrôle Processeur 14

2 MIPS Architecture Source : wikipedia.org 15

2 16

2 17

2 Instruction Set Architecture (L3) Interface entre matériel et logiciel Ce que c est visible pour programmeur Consiste en: instructions (opérations et la façon que les opérations sont codées) informations sur les unités composants (taille, adressage etc.) description de registres accessibles (l état du processeur) contrôle des entrées/sorties Donc ISA donne au programmeur en assembly une «image» de la machine qui inclut le matériel accessible et les instructions qui permettent la manipulation de données a l intérieur du matériel. 18

2 19

2 20

2 Harris and Harris Digital computer design 21

Agenda Les niveaux d'abstraction d'un ordinateur 1 2 L'assembleur 3 La mémoire 4 La boucle d'exécution 5 6 L'accès aux périphériques 7 22

3 Langage machine Le microprocesseur parle binaire Codage efficace des instructions Vitesse Taille Très difficile à lire Pas fait pour un humain Assez différent d un type de processeur à l autre Ex: 0000000111 011 001 additionne le registre 3 (ebx) avec le registre 1 (ecx) sur Intel x86 Représentation «lisible»: langage assembleur Mot à mot équivalent Une seule traduction possible de assembleur à langage machine 23

3 Langage assembleur Pourquoi utiliser le langage assembleur? Pourquoi pas toujours un langage de haut niveau? Le langage assembleur permet d'utiliser toutes les capacités matérielles de la plate-forme l'accès à des modes de programmation non-disponible en langage évolué d'utiliser les registres et les entrées/sorties spécifiques à la plateforme cible l'usage de certaines fonctionnalités du processeur lors du développement du noyau d'un système d'exploitation d'obtenir des programmes rapides et compacts d'optimiser les sections critiques d'un programme de faire un «pont» entre deux langages de programmation 24

3 Langage assembleur Inconvénients temps de développement plus long erreurs de programmation plus fréquentes et plus difficiles à déceler programmes plus difficiles à comprendre et à maintenir code non portable vers d'autres architectures difficile d'optimiser pour les différentes «variantes» d une architecture sur un même ordinateur, le code peut être incompatible entre les différents systèmes d'exploitation des changements dans le choix des structures de données et des algorithmes sont difficiles à «propager». 25

3 Avantages C (langage haut niveau): Programmes clairs, bien structurés Utilisation de fonctions prédéfinies Si le compilateur est bien écrit peut gérer correctement l allocation de mémoire Désavantages: Le code exécutable peut être plus long et moins efficace Il y a des bogues qui sont plus difficiles a trouver si on ne sais pas comment le compilateur «travaille» Gérer certains détails du matériel (comme les interruption) peut être difficile en C CPU s qui n ont pas compilateur disponible (et qui sont livrés avec assembleur ) En pratique on peut utiliser C pour la plus grande partie d un programme et insérer des parties en assembleur (comme procédures externes) pour les fonctions clef.. 26

3 Architecture du processeur Un processeur a normalement: Registres: petite mémoire ultrarapide Accès mémoire: permet une grande mémoire «externe» Entrées/sorties (peut être même que mémoire) Un programme en mémoire Opérations entre registres (parfois mémoire-registre) Instructions relativement simples Déplacement de donnée (mov, movs, lds ) Arithmétique (add, sub, mul, div, ) Logique (and, or, ) Décalages de bits (shr, shl, ) Sauts/branchements avec condition simple (jmp, call, ) Données et programme Mémoire unique: dit Von Neumann Mémoires séparées: dit Harvard Architecture physique (différente de architecture logique) 27

3 Architecture des instructions add r1 = r2 + r3 Operand destination/source Opcode code operation, addition ici Nombre d opérandes spécifiées: 1 à 3 selon le processeur 1: accumulateur ou pile (co-pro Intel x86) 1 adresse add A acc acc + mem[a] 2: une source sert aussi de destination (Intel x86, AVR, ) 2 adresses add A B EA(A) EA(A) + EA(B) 3: destination distincte des deux sources (MIPS, SPARC, ) 3 adresses add A B C EA(A) EA(B) + EA(C) Source : wikipedia.org 28

Architecture des instructions Taille d instruction fixe : MIPS 32 bits SPARC 32 bits AVR(±) 16 bits variable (Intel x86, MC68000, ) Exemple d instruction: SPARC(32bits): add %r1, 1234, %r2 r2 r1 + 1234 Op (9bits) reg_source1(5bits) constante(13bits) reg_dest(5bits) 32 bits x86: add $1234, %ebx ebx ebx + 1234 Op (13bits) reg_dest(3bits) constante(32bits) 29

1 Agenda Les niveaux d'abstraction d'un ordinateur 1 2 L'assembleur 3 La mémoire 4 La boucle d'exécution 5 6 L'accès aux périphériques 7 30

Mémoire Architecture du microprocesseur Grand «tableau» de cases ayant chacune une adresse Lors d une lecture: Présenter l adresse binaire à la puce Mettre actif le signal de lecture Un certain temps après, la puce répond avec la donnée Adresse Donnée 0 01100111 1 10011100 2 00000000 4 1023 11110000 Lors d une écriture: Présenter l adresse binaire à la puce Présenter la donnée binaire à la puce Donnée Enable Read/Write Mettre actif le signal d écriture Mémoire Adresse 31

Accès mémoires Vue par le programme: une adresse par octet Un octet = un caractère standard Sur la puce: une adresse par «mot» (par exemple 32bits) Réduit le nombre d accès Ordre placer les octets Grosboutiste/groboutien («big-endian»): gros bout (MSB) à petite adresse Petitboutiste/petitboutien («little-endian»): petit bout (LSB) à petite adresse Ex: placer deux entiers de 32bits dans une mémoire à mots de 32bits: 0x12345678 à l adresse 0, et 0x123 à l adresse 4 (vue par le programme) Adr. sur puce 0 Adr. vue par prog. 0 1 2 3 12 34 56 78 Adr. sur puce 0 Adr. vue par prog. 3 2 1 0 12 34 56 78 4 1 4 5 6 7 00 00 01 23 1 7 6 5 4 00 00 01 23 «big-endian» «little-endian» 32

4 Accès mémoires - alignement Problème d alignement Ex: placer l entier 0x12345678 à l adresse 1 (vue par le programme) Adr. sur puce 0 Adr. vue par prog. 0 1 2 3?? 12 34 56 Adr. sur puce 0 Adr. vue par prog. 3 2 1 0 34 56 78?? 1 4 5 6 7 78?????? 1 7 6 5 4?????? 12 «big-endian» «little-endian» Requiert physiquement deux accès à la puce mémoire Certains processeurs ne le supportent pas directement: MIPS - toujours aligné, ne peut pas commencer à n importe quelle adresse, little or big-endian x86 peut commencer à n importe quelle adresse, little-endian 33

Mémoire sur l AVR 4 Deux plages d'adresses logiques (Harvard) Une pour les données 0 à 0x1F les registres 0x20 à 0x5F les I/O 0x60 à 0x45F la SRAM interne Une pour les instructions 0 à 0x29 vecteurs d'interruptions contiennent un "jmp" (branchement) vers le bon code 0x2A le code 34

Agenda Les niveaux d'abstraction d'un ordinateur 1 2 L'assembleur 3 La mémoire 4 La boucle d exécution 5 6 L'accès aux périphériques 7 35

Exécution des instructions Boucle d exécution: Lire la prochaine instruction; pointer vers la suivante Chercher les données selon l instruction Exécution de l opération Écriture du résultat Ex. sur architecture à un bus: Mémoire Entrées/Sorties Mémoire Compteur d instructions Adresse mémoire Donnée mémoire A Instruction Banque de registres Circuit de contrôle 5 Unité arithmetiquelogique (ALU) Accumulateur Unité de contrôle Unité arith. (UAL) C Processeur 36

Description abstraite vs. concrète 5 RTN (Register Transfer Notation) (source: Heuring&Jordan; pas Atmel) A B Écrit B dans A A[B] Prend le mot B du tableau/mémoire A A B Prend le(s) bits B de A n..m Spécifie une plage d index (pour bits ou mots) A B Si A, alors exécuter et retourner B A#B Concaténation des bits de A et B (A étant de poids fort) (A:B dans Atmel) A@B Répétition A fois du bit B : Séparateur parallèle (: pendant le même cycle d horloge l ordre ne compte pas) ; Séparateur séquentiel (; cycles d horloge successifs l ordre est importante) := Définition Opérateurs arithmétiques et logiques standards 37

Exemple de description RTN Description abstraite précise en RTN: Mémoires PC 31..0 : IR 31..0 : (compteur de programme et l instruction) R[0..31] 31..0 : (32 registres de 32 bits) Mem[0..2 32-1] 7..0 : (une mémoire possible de 4GB=2 32 B) M[x] 31..0 := Mem[x]#Mem[x+1]#Mem[x+2]#Mem[x+3]: x paramètre quelconque # concaténation Boucle d exécution IR M[PC] : PC PC+4; (chercher l instruction) add R[IR 26..22 ] R[IR 21..17 ] + R[IR 16..12 ] (l exécuter) Mémoire PC A MA MD Unité arith. (UAL) C IR R[0..31] 5 Circuit de contrôle (op=12) ->R[ra] <-R[rb] + R[rc] (si condition alors addition ) 38

Exemple de description RTN 5 Description concrète add R[IR 26..22 ] R[IR 21..17 ] + R[IR 16..12 ] MA 31..0 : MD 31..0 : (adresse et donnée pour accès mémoire) Recherche d instruction MA PC : C PC+4 ; MD M[MA] : PC C ; IR MD ; %IR M[PC] : PC PC+4; Exécution d un instruction add A R[IR 21..17 ] ; C A + R[IR 16..12 ] ; R[IR 26..22 ] C ; % l exécution Mémoire PC A MA MD Unité arith. (UAL) C IR R[0..31] Circuit de contrôle 39

Architecture 1 bus -1 bus 32 bits occupé par un registre à 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 à la mémoire et non au CPU Abstraite: (IR M[PC] : PC PC+4 ; instruction_execution) Comment faire plus vite? 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 40

5 Architectures à plusieurs bus 2 bus: 3 bus: Bus A Bus B Bus C Bus A et B R[0..31] IR PC Circuit de contrôle R[0..31] IR PC Circuit de contrôle MA MD Mémoire MA MD Mémoire A Unité arith. (UAL) Unité arith. (UAL) 41

6 Débit plus rapide Peut-on réduire le temps à un cycle? Peut-on avoir une instruction qui termine par cycle? Pipeline Idée de la chaîne de montage Chaque instruction pas moins longue (parfois plus longue) Instructions en même temps à différentes étapes de la chaîne Débit plus rapide lorsque tout va bien Aléa dans le pipeline l implémentation empêche une certaine combinaison d opérations le résultat d une opération dépend de celui, pas encore produit,d une instruction précédente Si un aléa est détecté, la solution la plus simple est d arrêter le pipeline (stall): les instructions qui précédent celle qui produit l aléa peuvent continuer, mais toutes les autres sont arrêtées jusqu à la disparition de l aléa 42

Agenda Les niveaux d'abstraction d'un ordinateur 1 2 L'assembleur 3 La mémoire 4 La boucle d'exécution 5 6 L'accès aux périphériques 7 43

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 Comment arrêter et reprendre? 44

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) 45

Agenda Les niveaux d'abstraction d'un ordinateur 1 2 L'assembleur 3 La mémoire 4 La boucle d'execution 5 6 L'accès aux périphériques 7 46

Sommaire 1 2 Dessiner un diagramme de l architecture de Von Neumann Décrire la procédure suivie par une architecture de Von Neumann pour exécuter un programme enregistré Mémoire Entrées/Sorties Unité arithmetiquelogique (ALU) Accumulateur Processeur Unité de contrôle Processeur 47

Sommaire 3 4 Faire un liste des composants d'un processeur Décrire comment un processeur accède à une mémoire Donnée Mémoire Enable Read/Write Adr. sur puce 0 Adr. vue par prog. 0 1 2 3 12 34 56 78 Adr. sur puce 0 Adr. vue par prog. 3 2 1 0 12 34 56 78 Adresse 1 4 5 6 7 00 00 01 23 1 7 6 5 4 00 00 01 23 «big-endian» «little-endian» 48

Sommaire 5 Décrire un boucle d'exécution d'un processeur en langage RTN IR M[PC] : PC PC+4; add R[IR 26..22 ] R[IR 21..17 ] + R[IR 16..12 ] 6 7 Expliquer l'utilisation des pipelines pour rendre l'exécution plus rapide Décrire le processus d'interruption pour un processeur - 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 49

Architecture 1 bus -1 bus 32 bits occupé par un registre à 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) Comment faire plus vite? 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 une instruction add A R[IR 21..17 ] ; C A + R[IR 16..12 ] ; R[IR 26..22 ] C ; Source: Heuring&Jordan 50

Source: Heuring&Jordan A données qui entrent dans les registres, B données qui sortent. C=B fonction d ALU permettant les transferts simples Recherche d instruction MA PC : C PC+4 ; MD M[MA] : PC C ; IR MD ; Exécution d une instruction add A R[IR 21..17 ] ; C A + R[IR 16..12 ] ; R[IR 26..22 ] C ; Recherche d instruction MA PC; MD M[MA] : PC PC+4 ; IR MD ; Exécution d une instruction add A R[IR 21 21..17 ] ; R[IR 26..22 ] A + R[IR 16..12 ] ; 51

52

53

Solution MA PC ; // écriture adresse PC dans mémoire d adresses MA MD M[MA] : PC PC+ 4; // écriture données de la mémoire principale dans MD, déplacement opérande instr. + 4 IR MD ; // écriture instruction lue dans le registre d instructions MA PC ; // écriture dans la mémoire d adresses l adresse de l opérande en mémoire MD M[MA] : A R[IR 16..12 ] ; // écriture des opérandes dans dans MD et dans l accumulateur R[0] MD - A; //soustraction PC PC+4; //pointer instruction suivante 54