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