Les processeurs. Les entrées-sorties



Documents pareils
IV- Comment fonctionne un ordinateur?

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

Cours Informatique 1. Monsieur SADOUNI Salheddine

Rappels d architecture

Architecture matérielle des systèmes informatiques

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

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

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

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

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

Exécution des instructions machine

Compilation (INF 564)

Architecture des ordinateurs Introduction à l informatique

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

Représentation des Nombres

TD Architecture des ordinateurs. Jean-Luc Dekeyser

THEME 1 : L ORDINATEUR ET SON ENVIRONNEMENT. Objectifs

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

ASR1 TD7 : Un microprocesseur RISC 16 bits

Leçon 1 : Les principaux composants d un ordinateur

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

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Architecture des ordinateurs

Structure d un programme

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

Conception de circuits numériques et architecture des ordinateurs

Informatique Générale

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

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

CM2 L architecture MIPS32

Matériel & Logiciels (Hardware & Software)

Structure de base d un ordinateur

Fonctionnement et performance des processeurs

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

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

IFT2880 Organisation des ordinateurs et systèmes

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

Programmation assembleur : aperçu

CH.3 SYSTÈMES D'EXPLOITATION

Conversion d un entier. Méthode par soustraction

Jeu d instructions NIOS II

Les opérations binaires

Partie 7 : Gestion de la mémoire

Ordinateurs, Structure et Applications

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

Microprocesseur + Logiciel

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

Licence Sciences et Technologies Examen janvier 2010

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

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

Un ordinateur, c est quoi?

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

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

Architecture de l ordinateur

nom : Collège Ste Clotilde

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

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

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

PIC : COURS ASSEMBLEUR

Contrôleur de communications réseau. Guide de configuration rapide DN

Comme chaque ligne de cache a 1024 bits. Le nombre de lignes de cache contenu dans chaque ensemble est:

GCOS 7 sur microprocesseur standard Diane Daniel POIRSON 14 octobre 2004 Matériels 64 / DPS 7 / DPS 7000 Architecture & Evolution - Daniel POIRSON 1

Tutorial Terminal Server sous

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

IFT1215 Introduction aux systèmes informatiques

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

Systèmes d exploitation

DM 1 : Montre Autoquartz ETA

FONCTION COMPTAGE BINAIRE ET DIVISION DE FRÉQUENCE

Tout savoir sur le matériel informatique

Configuration automatique

REALISATION d'un. ORDONNANCEUR à ECHEANCES

Modules d automatismes simples

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

et dépannage de PC Configuration Sophie Lange Guide de formation avec exercices pratiques Préparation à la certification A+

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

ATELIERS DE FORMATION TECHNICIEN DE MAINTENANCE INFORMATIQUE

Découverte de l ordinateur. Partie matérielle

Windows 2000: W2K: Architecture. Introduction. W2K: amélioration du noyau. Gamme windows W2K pro: configuration.

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

Technicien Supérieur de Support en Informatique

Le Programme SYGADE SYGADE 5.2. Besoins en équipement, logiciels et formation. UNCTAD/GID/DMFAS/Misc.6/Rev.7

programmation S initier à la la Avec des exemples en C, C++, C#, Java et PHP Avec des exemples en C, C++, C#, Java et PHP Claude Delannoy

ISO/CEI NORME INTERNATIONALE

Concevoir son microprocesseur

Programmation en langage C

Introduction à l informatique en BCPST

PROGRAMME DU CONCOURS DE RÉDACTEUR INFORMATICIEN

Organigramme / Algorigramme Dossier élève 1 SI

Logiciel de base. Première année ENSIMAG

White Paper - Livre Blanc

Cours Bases de données

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

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

Logiciel de Base. I. Représentation des nombres

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

Chapitre 10 Arithmétique réelle

Guide d installation et d utilisation

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

Numérisation du signal

Transcription:

Les entrées-sorties La problématique des entrées sorties est la suivante : - Le processeur va vite, plus vite que des éléments mécaniques tel que l on trouve dans une imprimante, une souris, un clavier. - Le périphérique est donc plus lent que le reste du système Dés lors se pose la question de savoir quand le périphérique a fini de travailler ou dans le cas par exemple du clavier de savoir quand une touche a été activée. Exemple : Le programme demande l impression d un document. L imprimante mettra (par exemple) 5 minutes pour imprimer ce document. Pendant ce temps que fais le processeur? CNM 2009-2010 Patrick rlaud - Jérome Dupire 1

Méthodes de signalement Lorsque le matériel a été programmé pour effectuer un travail, il signale la fin de son travail : Par une interruption. Par une réponse à une demande logicielle. La première méthode est appelée mécanisme d interruption et la seconde mécanisme de scrutation. Le mécanisme d interruption est le plus utilisé aujourd hui. Le mécanisme de scrutation est surtout utilisé dans l informatique industrielle. CNM 2009-2010 Patrick rlaud - Jérome Dupire 2

Le mécanisme de scrutation consiste à interroger d une façon répétitive le périphérique. Pour connaître l état d une imprimante, un programme doit donc boucler de la façon suivante : 1)s-tu fini d imprimer? 2)Petit travail utile 3)Retour en 1. Mécanisme de scrutation Cependant c est un mécanisme très utilisé dans l informatique industrielle ou les temps de cycle sont connus. Le matériel est adapté pour produire des résultats en un temps donné, par exemple 50 ms. Le cycle est alors de 50 ms. Le programme doit à un top (0 ms) lire les entrées, les traiter puis émettre les nouvelles commandes avant le top suivant (à 50 ms). CNM 2009-2010 Patrick rlaud - Jérome Dupire 3

Mécanisme de scrutation Lecture des entrées depuis le matériel Traitements à effectuer liés à l état des entrées et à l état de données mémorisées. On détermine aussi quels sont les sorties à émettre Cycle = 50 ms Emission des sorties vers le matériel Ce type de système est surtout destiné à l embarqué et dispose d un système d exploitation très rudimentaire. En général, les cartes électroniques sur lesquelles le logiciel s exécute sont développées simultanément au logiciel. Exemple de système : Météor (Ratp Matra ltsom), Crotale NG (Thomson). CNM 2009-2010 Patrick rlaud - Jérome Dupire 4

Mécanisme d interruption Ce mécanisme permet d interrompre un programme en cours d exécution: 1. u moment de l interruption, le processeur reçoit sur une patte un signal électrique, il passe automatiquement en mode non interruptible. 2. la réception de ce signal, il sauvegarde l ensemble de ses registres et toutes informations nécessaires à la reprise du programme en cours d exécution. 3. Il lit ensuite l identité de l interruption par un dialogue sommaire avec le composant contrôlant le mécanisme d interruption. 4. Il calcule l adresse du vecteur d interruption lié à cette identité d interruption. 5. Il charge depuis cette adresse une adresse pointant sur une routine appelée routine d interruption. 6. Il effectue un saut à cette adresse pour exécuter cette routine, souvent la première instruction de cette routine est de ré autoriser les interruptions. 7. Il exécute ce code jusqu à la fin de la routine. 8. Il restaure l état précédent l interruption. 9. Il reprend le cours du programme qui était en cours d exécution. CNM 2009-2010 Patrick rlaud - Jérome Dupire 5

Mécanisme d interruption Programme en cours d exéctution Prise en compte de l interruption, sauvegarde du contexte, lecture de l adresse de la routine d interruption, saut à cette adresse, exécution du code de cette routine. la fin de cette routine, restauration du contexte et reprise de l exécution du programme Programme en cours d exéctution CNM 2009-2010 Patrick rlaud - Jérome Dupire 6

Mécanisme d interruption Il existe plusieurs interruptions dans un système, elles sont classées par une priorité liée à leurs connexions physiques ou programmées au démarrage du système d exploitation. Par exemple les PC disposent de 16 niveaux d interruptions, leur contrôleur est le circuit 8259 d Intel permettant de gérer 8 niveaux : 0 Horloge système 1 Clavier 2 IRQ 8 à 15 (redirection) 3 Port série COM2 4 Port série COM1 5 Port parallèle LPT2 6 Contrôleur de disquette 7 Port parallèle LPT1 8 Horloge temps réel 9 Disponible 10 Disponible 11 Disponible sauf scsi 12 Disponible Dans le cas des PC les priorités sont dans 13 Co processeur math l ordre décroissant. 14 Contrôleur de disque IDE 15 Contrôleur de disque E-IDE CNM 2009-2010 Patrick rlaud - Jérome Dupire 7 Une interruption est interruptible par une interruption de plus haute priorité mais pas par une interruption de priorité inférieure.

Jeux d instructions L architecture influence directement les jeux d instructions des microprocesseurs et inversement. Quatre types d architecture des microprocesseurs : Machine à pile. Machine à accumulateur. Machine à registres généraux : Machine à registres mémoire. Machine à chargement rangement. Machine à mémoire mémoire Soit l instruction C = +B Pile ccumulateur Registres mémoire Chargement rangement Push Load Load R1, Load R1, Push B dd B dd R3, R1, B Load R2, B dd Store C Store R3, C dd R3, R1, R2 Pop C Store R3, C vant 1980 la plupart des machines étaient de type Pile ou ccumulateur, aujourd hui elles sont de type Registres chargement rangement. CNM 2009-2010 Patrick rlaud - Jérome Dupire 8

Jeux d instructions L interprétation des adresses mémoire est un autre facteur d influence des architectures processeur. Mode d adressage Instruction complète Signification Registre add r4, r3 [r4] <= [r4] + [r3] Immédiat ou littéral add r4, #3 [r4] <= [r4] + 3 Déplacement ou basé add r4,100(r1) [r4] <= [r4] + [ 100 + [r1] ] Indirect par registre add r4, (r1) [r4] <= [r4] + [ [r1] ] Indexé add r3, (r1 + r2) [r3] <= [ [r1] + [r2] ] Direct ou absolu add r1, (1001) [r1] <= [r1] + [ 1001 ] Indirect via mémoire add r1, @(r3) [r1] <= [ [ [r3] ] ] uto incrémenté add r1, (r2)+ [r1] <= [r1] + [ [r2] ] [r2] <= [r2] + d uto décrémenté add r1, -(r2) [r2] <= [r2] d [r1] <= [r1] + [ [r2] ] Indexé étendu add r1, 100(r2)[r3] [r1] <= [r1] + [ 100+[r2]+[r3] *d ] Il faut tenir compte de l alignement de la mémoire. Un objet de taille S octets est aligné si : mod S = 0. 0 Octet Demi mot (16 bits) Mot (32 bits) Double mot (64 bits) Toujours aligné 0, 2, 3, 4, 6, 10 0, 4, 8 0, 8, 16 CNM 2009-2010 Patrick rlaud - Jérome Dupire 9

lignement mémoire Le point de vue électronique : Le plan de bits Décodeur @ Temps d accès : 1 00 11 a1 h0 r1 b1 i0 s1 20 30 c1 j1 t0 d1 k0 u0 -Temps mis par le décodeur Pour décoder l adresse+ latence de la mémoire Read / Write ujourd hui : ~ 60 ns 1 accès : 60ns 1000 accès : 60 µs 1 million d accès : 60 ms 1 milliard d accès : 60 s Tableau de case mémoire de 1 bit : KiloBit MegaBit GigaBit TeraBit CNM 2009-2010 Patrick rlaud - Jérome Dupire 10

lignement mémoire Reg @ D0 D1 0 X 2 X Plan de bits 0 0 X 2 X Plan de bits 1 0 1 D2 0 X 2 X Plan de bits 2 2 D3 0 X 2 X Plan de bits 3 3 4 D4 0 X 2 X Plan de bits 4 5 D5 0 X 2 X Plan de bits 5 Reg Data 6 7 8 9 D6 D7 D8 D9 0 X 2 X Plan de bits 6 0 X 2 X Plan de bits 7 1 X 3 X Plan de bits 8 10 D10 1 X 3 X Plan de bits 9 11 1 X 3 X Plan de bits 10 12 13 14 15 D13 D11 D12 1 X 3 X Plan de bits 11 1 X 3 X Plan de bits 12 1 X 3 X Plan de bits 13 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Valeur lue D14 1 X 3 X Plan de bits 14 D15 1 X 3 X Plan de bits15 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 R1 CNM 2009-2010 Patrick rlaud - Jérome Dupire 11

lignement mémoire accès 8 bits = 1 accès mémoire D0 0 2 C Plan de bits 0 Reg @ D1 0 2 C Plan de bits 1 D2 0 2 C Plan de bits 2 D3 0 2 C Plan de bits 3 D4 0 2 C Plan de bits 4 D5 0 2 C Plan de bits 5 Reg Data B B D6 D7 D8 D9 0 2 C Plan de bits 6 0 2 C Plan de bits 7 1 B 3 D Plan de bits 8 B D10 1 B 3 D Plan de bits 9 B 1 B 3 D Plan de bits 10 B B B B D13 D11 D12 1 B 3 D Plan de bits 11 1 B 3 D Plan de bits 12 1 B 3 D Plan de bits 13 B B B B B B B B Valeur lue D14 1 B 3 D Plan de bits 14 & F0 mécanisme interne au processeur D15 1 B 3 D Plan de bits15 0 0 0 0 0 0 0 0 R1 Temps accès : 60 ns CNM 2009-2010 Patrick rlaud - Jérome Dupire 12

lignement mémoire accès 8 bits = 1 accès mémoire D0 0 2 C Plan de bits 0 Reg @ D1 0 2 C Plan de bits 1 D2 0 2 C Plan de bits 2 D3 0 2 C Plan de bits 3 D4 0 2 C Plan de bits 4 D5 0 2 C Plan de bits 5 Reg Data B B D6 D7 D8 D9 0 2 C Plan de bits 6 0 2 C Plan de bits 7 1 B 3 D Plan de bits 8 B D10 1 B 3 D Plan de bits 9 B 1 B 3 D Plan de bits 10 B B B B D13 D11 D12 1 B 3 D Plan de bits 11 1 B 3 D Plan de bits 12 1 B 3 D Plan de bits 13 B B B B B B B B Valeur lue D14 1 B 3 D Plan de bits 14 8 décalages a gauche mécanisme interne au processeur D15 1 B 3 D Plan de bits15 B B B B B B B B 0 0 0 0 0 0 0 0 R1 Temps accès : 60 ns CNM 2009-2010 Patrick rlaud - Jérome Dupire 13

lignement mémoire accès 16 bits alignés = 1 accès mémoire D0 0 2 C Plan de bits 0 Reg @ D1 0 2 C Plan de bits 1 D2 0 2 C Plan de bits 2 D3 0 2 C Plan de bits 3 D4 0 2 C Plan de bits 4 D5 0 2 C Plan de bits 5 Reg Data B B D6 D7 D8 D9 0 2 C Plan de bits 6 0 2 C Plan de bits 7 1 B 3 D Plan de bits 8 B D10 1 B 3 D Plan de bits 9 B 1 B 3 D Plan de bits 10 B B B B D13 D11 D12 1 B 3 D Plan de bits 11 1 B 3 D Plan de bits 12 1 B 3 D Plan de bits 13 B B B B B B B B Valeur lue D14 1 B 3 D Plan de bits 14 Correspondance directe mécanisme interne au processeur D15 1 B 3 D Plan de bits15 B B B B B B B B R1 Temps accès : 60 ns CNM 2009-2010 Patrick rlaud - Jérome Dupire 14

lignement mémoire accès 16 bits non alignés = 2 accès mémoire. 1 er accès D0 0 2 C Plan de bits 0 Reg @ D1 0 2 C Plan de bits 1 D2 0 2 C Plan de bits 2 D3 0 2 C Plan de bits 3 D4 0 2 C Plan de bits 4 D5 0 2 C Plan de bits 5 Reg Data B B D6 D7 D8 D9 0 2 C Plan de bits 6 0 2 C Plan de bits 7 1 B 3 D Plan de bits 8 B D10 1 B 3 D Plan de bits 9 B 1 B 3 D Plan de bits 10 B B B B D13 D11 D12 1 B 3 D Plan de bits 11 1 B 3 D Plan de bits 12 1 B 3 D Plan de bits 13 B B B B B B B B Valeur lue D14 1 B 3 D Plan de bits 14 8 décalages a gauche mécanisme interne au processeur B B B B B B B B 0 0 0 0 0 0 0 0 R1 D15 1 B 3 D Plan de bits15 CNM 2009-2010 Patrick rlaud - Jérome Dupire 15

lignement mémoire accès 16 bits non alignés = 2 accès mémoire. 2 ième accès D0 0 2 C Plan de bits 0 Reg @ D1 0 2 C Plan de bits 1 D2 0 2 C Plan de bits 2 D3 0 2 C Plan de bits 3 D4 0 2 C Plan de bits 4 D5 0 2 C Plan de bits 5 Reg Data B B D6 D7 D8 D9 0 2 C Plan de bits 6 0 2 C Plan de bits 7 1 B 3 D Plan de bits 8 B D10 1 B 3 D Plan de bits 9 B 1 B 3 D Plan de bits 10 B B B B D13 D11 D12 1 B 3 D Plan de bits 11 1 B 3 D Plan de bits 12 1 B 3 D Plan de bits 13 C C C C C C C C D D D D D D D D Valeur lue D14 1 B 3 D Plan de bits 14 1) 8 décalages a droite mécanisme interne 2) R1 <= R1 VL au processeur D15 1 B 3 D Plan de bits15 B B B B B B B B C C C C C C C C R1 Temps accès : 120 ns CNM 2009-2010 Patrick rlaud - Jérome Dupire 16

Jeux d instructions Les opérations les plus souvent exécutées sont les instructions simples d un jeu d instructions. Rang Instruction du 80x86 Moyenne 1 Chargement 22% 2 Branchement conditionnel 20% 3 Comparaison 16% 4 Rangement 12% 5 ddition 8% 6 Et 6% 7 Soustraction 5% 8 Transfert registre registre 4% 9 ppel SP 1% 10 Retour SP 1% 96% Les dix premiers types d instructions les plus utilisées sur le 80x86. CNM 2009-2010 Patrick rlaud - Jérome Dupire 17

Classification des instructions : Les processeurs Jeux d instructions Instructions arithmétiques et logiques : addition, soustraction, multiplication, et, ou Instructions de transfert de données : transfert sur les machines avec des modes d adressage de la mémoire. Instructions de contrôle : branchement, saut, appel de sous programmes, retour de sous programmes, trappes. Système : appel au système d exploitation, instructions de gestion de la mémoire virtuelle. Flottantes : addition, soustraction, multiplication de flottants. Décimales : addition, conversion de décimal vers caractère et inversement. Chaînes : transfert de chaînes, comparaison de chaînes, recherche de chaînes. Graphique : opérations sur les pixels, opérations de compression / décompression. Les instructions de contrôle : Branchements conditionnels. Sauts. ppels et retours de sous programmes. CNM 2009-2010 Patrick rlaud - Jérome Dupire 18

Types et tailles des opérandes : Les processeurs Jeux d instructions Les types courants d opérandes comprennent : L octet. Le demi mot : 16 bits. Le mot : 32 bits. Le double mot : 64 bits. Pour les flottants, presque tous les constructeurs suivent la norme IEEE 754 Il est aussi possible de trouver des opérandes de format : Décimal condensé. Décimal codé binaire. Les caractères sont (presque) toujours en SCII et les nombres entiers en complément à 2. CNM 2009-2010 Patrick rlaud - Jérome Dupire 19

Codage d un jeu d instructions : Les processeurs Jeux d instructions Longueur des instructions variables : Opération et nbr opérandes Spécificateur d@1 Champ @ 1 Spécificateur d @n champ @ n Exemple : VX Longueur des instructions fixes : Opérations et nbr opérandes Champ @ 1 Champ @ 2 Champ @3 Exemple : MIPS, PowerPc, Sparc pproche hybride : Opération et nbr opérande Spécificateur d @ 1 Champ @ 1 Opération et nbr opérande Spécificateur d @ 1 Spécificateur d @ 2 Champ @ 1 Opération et nbr opérande Spécificateur d @ 1 Champ @ 1 champ @ 2 CNM 2009-2010 Patrick rlaud - Jérome Dupire 20

Rôle des compilateurs : Les processeurs Jeux d instructions Dépendances Dépendant du langage, indépendant de la machine Un peu dépendant du langage, largement indépendant de la machine Traducteur par langage Représentation intermédiaire Optimisations de haut niveau Fonction : Transformer le langage en format intermédiaire Par exemple, intégration en ligne des procédures et transformation des boucles. Dépend faiblement du langage, dépend faiblement de la machine Optimiseur global Inclus les optimisations globales et locales + l allocation des registres Dépend fortement de la machine, indépendant du langage. Générateur de code Sélection des instructions détaillées et optimisations dépendant du langage machine. CNM 2009-2010 Patrick rlaud - Jérome Dupire 21

Type d optimisations d : Les processeurs Jeux d instructions Les optimisations de haut niveau. Les optimisations locales. Les optimisations globales. L allocation des registres. Les optimisations dépendantes d de la machine. CNM 2009-2010 Patrick rlaud - Jérome Dupire 22

Jeux d instructions Impact des compilateurs sur les architectures : Comment sont allouées et adressées les variables? Combien de registres sont nécessaires n pour allouer correctement les variables? Trois zones pour allouer des données (dans les langages de haut niveau) : La pile. La zone de données globales. Le tas. CNM 2009-2010 Patrick rlaud - Jérome Dupire 23

Le pipeline Le pipeline est l exécution à la chaîne du flot d instructions : Une instruction est exécut cutée e avant que la précédente ne soit terminée. e. Découpage des instructions en «sous instructions élémentaires». Exécution des sous instructions élémentaires simultanément au travers des étages du pipeline. Le temps nécessaire à une instruction pour passer d un étage au suivant est appelé cycle machine (cycle d horloge). La longueur d un cycle machine est déterminée par l étage le plus lent. L objectif est d équilibrer la longueur des étapes du pipeline. Le pipeline peut diminuer le nombre de cycles par instructions (CPI) ou le temps de cycle, ou encore une combinaison des deux selon les points de vues adopter. CNM 2009-2010 Patrick rlaud - Jérome Dupire 24

Le pipeline Exemple avec un pipeline à 5 étages : 1) Lecture de l instruction 2) Décodage de l instruction 3) Exécution de l instruction 4) ccès mémoire 5) Ecriture du résultat Sans Pipeline Cycle 0 Lecture... X1 Décodage... Exécution... ccès mémoire.. Ecriture.. Cycle 1 Lecture... Décodage... X1 Exécution... ccès mémoire.. Ecriture.. Cycle 2 Lecture... Décodage... Exécution... X1 ccès mémoire.. Ecriture.. Cycle 3 Lecture... Décodage... Exécution... ccès mémoire.. X1 Ecriture.. Cycle 4 Lecture... Décodage... Exécution... ccès mémoire.. Ecriture.. X1 vec Pipeline Cycle 0 Lecture... X1 Décodage... Exécution... ccès mémoire.. Ecriture.. Cycle 1 Lecture... X2 Décodage... X1 Exécution... ccès mémoire.. Ecriture.. Cycle 2 Lecture... X3 Décodage... X2 Exécution... X1 ccès mémoire.. Ecriture.. Cycle 3 Lecture... X4 Décodage... X3 Exécution... X2 ccès mémoire.. X1 Ecriture.. Cycle 4 Lecture... X5 Décodage... X4 Exécution... X3 ccès mémoire.. X2 Ecriture.. X1 Le pipeline accroît le nombre d instructions exécutées par unité de temps mais pas le temps d exécution d une instruction. CNM 2009-2010 Patrick rlaud - Jérome Dupire 25

Exemple d accroissement : Les processeurs Le pipeline Soit la machine précédente, on suppose qu elle a des cycles d horloge de 10 ns et qu elle utilise 4 cycles pour les opérations UL et les branchements et 5 cycles pour les opérations mémoire. On suppose que les fréquences relatives de ces opérations sont respectivement de 40%, 20% et 40%. Le fait d ajouter le pipeline accroît le temps de cycle de 1 ns. Quelle est l accélération de l exécution des instructions liées au pipeline? Temps d exécution moyen d une instruction : cycle d horloge * CPI (nb cycle/instruction) = 10ns * ((40% + 20%)*4 + 40%*5 = 10ns * 4.4 = 44ns Dans la machine pipelinée, le cycle s allonge et devient 11ns. Ceci est le temps moyen d exécution d une instruction. L accélération due au pipeline est : Temps moyen d exécution d une instruction sans pipeline ccélération = = 44 / 11 = 4. Temps moyen d exécution d une instruction avec pipeline (temps de cycle avec pipeline) CNM 2009-2010 Patrick rlaud - Jérome Dupire 26

Le pipeline Les obstacles du pipeline (aléas) : Les aléas structurels : ils interviennent lors des conflits de ressources. Les aléas de données : ils interviennent lorsqu une instruction dépend du résultat d une instruction précédente. Les aléas de contrôle : ils interviennent lors de l exécution des branchements. Il existe beaucoup de techniques pour éviter les aléas et les suspensions du pipeline au niveau des compilateurs. CNM 2009-2010 Patrick rlaud - Jérome Dupire 27

Le pipeline Pourquoi le pipeline est difficile à implémenter : Les situations exceptionnelles sont plus difficiles à gérer dans une machine pipelinée du fait du recouvrement des instructions. Une instruction est exécutée petit à petit et ne se termine qu au bout de plusieurs cycles. D autres instructions ont commencées à être exécutées et peuvent générer des exceptions. => NNULTION DES INSTRUCTIONS DNS LE PIPELINE CNM 2009-2010 Patrick rlaud - Jérome Dupire 28

Les types d exception : Les processeurs Le pipeline -Requête de composant d entrée/sortie -ppel système par un programme utilisateur -Tracer l exécution d un programme -Point d arrêt (requête d interruption du programmeur) -Dépassement de capacité arithmétique, par excès ou par défaut, pour les entiers -nomalie arithmétique en flottant -Défaut de page -ccès de mémoire non alignée (si l alignement est obligatoire) -Violation de protection mémoire -Utilisation d une instruction non définie -Problème matériel -Défaillance de l alimentation CNM 2009-2010 Patrick rlaud - Jérome Dupire 29

Le pipeline Il est possible de caractériser selon 5 axes les types d exception : Synchrone ou synchrone Requête utilisateur ou imposée Masquable par l utilisateur ou non masquable Pendant ou entre les instructions Reprise ou fin CNM 2009-2010 Patrick rlaud - Jérome Dupire 30

Exemple de pipeline : le R4000 de Mips Il s agit d un pipeline de 8 étages : Pipeline le R4000 de Mips LI1 LI2 LR EX LD1 LD2 VE ER Mémoire d instructions REG U L Mémoire de données REG CNM 2009-2010 Patrick rlaud - Jérome Dupire 31

Historique du 80x86 1978 : annonce de l architecture 8086 d Intel compatible au niveau assembleur avec le 8080. architecture 16 bts, architecture entre machine à accumulateur et machine à registres généraux. 1980 : Le co processeur flottant intel 8087 est annoncé : architecture étendant le 8086 avec 60 instructions flottantes. Organisation hybride avec piles et registres, typiquement pile étendue. un jeu d instructions de pile complet, s ajoute un jeu limité d instructions registres mémoire. 1982 : Le 80286 étend l architecture 8086 en étendant l espace d adressage à 24 bits : crée un modèle mémoire et de protection, ajoute quelques instructions. offre un mode d adressage réel 100% compatible avec le 8086. 1985 : Le 80386 étendit l architecture 80286 à 32 bits : registres 32 bits et espace d adressage 32 bits. ajoute de nouveaux mode d adressage (mémoire virtuelle). devient une machine à registres généraux par l ajout d instructions supplémentaires. Plus de 200 millions de ce type d architecture dans le monde. CNM 2009-2010 Patrick rlaud - Jérome Dupire 32