GESTION DES ENTREES-SORTIES • Le rôle des unités d ’échanges • L’adressage et la constitution des unités d ’échanges • Les modes de transferts : mode programmé, DMA Horloge Joëlle Delacroix-NFA004 Processeur Central Bus Mémoire Centrale d' échange Interface d’entrées/sorties 1 Périphériques de l’ordinateur Horloge Processeur Central Bus d' échange Mémoire Centrale Interface d’entrées/sorties Un périphérique est un matériel électronique pouvant être raccordé à un ordinateur par l'intermédiaire de l'une de ses interfaces d'entréesortie (interface VGA, HDMI, USB, RJ45.), le plus souvent par l'intermédiaire d'un connecteur. L’interface d’entrées-sorties est pilotée par un driver (pilote d’entrées-sorties) • On distingue habituellement les catégories de périphériques suivantes : – périphériques de sortie: ce sont des périphériques permettant à l’ordinateur d’émettre des informations vers l’extérieur, tels qu'un écran, une imprimante.. – périphériques d'entrée : ce sont des périphériques capables uniquement d'envoyer des informations à l'ordinateur, par exemple la souris, le clavier, etc. – périphériques d'entrée-sortie : ce sont des périphériques capables d'envoyer des informations à l'ordinateur et permettant également à l’ordinateur démettre des informations vers l’extérieur, par exemple le modem, le disque dur • Interfaces 1. 2. 3. 4. 3 USB : connexion « à chaud » de périphériques RJ45 : connexion au réseau local filaire VGA : connexion de l’écran HDMI : connexion à un écran haute résolution Joëlle Delacroix-NFA004 2 4 4 1 2 L ’unité d ’échange • Rôle de l ’unité d ’échange Horlo ge Processeur Central Mémoire Cache Bus d' échange Mémoir e Central e Unité d’échange • connexion des unités périphériques au bus • gestion des échanges entre le processeur et les périphériques (adaptation) • Particularités des unités d ’échanges • Constitution et adressage • Gestion des transferts Joëlle Delacroix-NFA004 3 L ’unité d ’échange DONNEES PORT de communication Contrôle/ Synchro Selon protocole (série, Parallèle…) PERIPHERIQUE Dialogue spécifique Bus d’entrées/sorties Interface d’E/S Format normalisé CPU Interface d’entrées-sorties USB (contrôleur) Connecteur USB Port de communication : Voies en entrées et sorties entre UE et périphériques Joëlle Delacroix-NFA004 Protocole de communication USB 4 L ’unité d ’échange Unité d ’échange • Un registre de commande dans lequel le processeur décrit le travail à effectuer commande • Un registre de données qui contient les mots à échanger entre le périphérique et la Transfert Ok ? mémoire centrale Prête ? état données • Une registre d ’état qui indique si l ’unité d ’échange est prête, si l ’échange s ’est bien déroulé, etc... Joëlle Delacroix-NFA004 5 Un exemple d’unité L’INTERFACE SER Réseau Processeur Graphique SCSI d ’échange L’UART Ethernet PCI/ISA 100 MHZ Carte parallèle Bus ISA 8 MHZ Pont Carte série Mémoire Centrale Slots d’extension Bus PCI 33 MHz Pont PCI Bus AGP Processeur Central 66 MHZ Horloge Mémoire Locale Modem RTC Réseau Ports USB Disques IDE Joëlle Delacroix-NFA004 6 Un exemple d’unité d ’échange L’UART Processeur Graphique SCSI Ethernet Connecteurs V 24 Pont PCI/ISA Mémoire Centrale Ports USB UART Protocole RS232 Bus ISA Bus PCI Pont PCI Slots d’extension Chipset AGP Processeur Central Bus AGP Horloge Mémoire Locale Réseau RTC Modem RTC (ETCD : équipement terminal de circuit de données) (ETTD : équipement terminal de traitement de données) Joëlle Delacroix-NFA004 7 Un exemple d’unité d ’échange INTR L’UART (universal Asynchronous Receiver Transmitter) 8 1 Valider Interruptions Statut ligne BUS Donnée reçue Réception à décalage Réception Logique d’interruption 1 0 0 1 1001 Logique communication 1 0 0 1 Ident. Interruption 1 0 0 1 Diviseur 1001 1 Contrôle ligne Statut Modem 8 0 RTS DTR CTS DSR RSLD RI Contrôle Modem Transmission. 100 Transmission à décalage Joëlle Delacroix-NFA004 1 Donnée transmise 8 L’unité d ’échange : adressage Unité d ’échange A3 CO RI AregC AregE AregD commande état données Espace d’adresse des entrées - sorties C’est le processeur qui charge les registres de l’UE en fonction de l’opération d’E/S réalisée Il doit adresser les registres des UE A1 A2 A3 A4 A5 A6 A7 A8 Store D R1 A8 écrire R1 dans registre de données de l’UE Espace d’adresse de la mémoire centrale Joëlle Delacroix-NFA004 9 L’unité d ’échange : adressage • Le processeur peut adresser de deux façons différentes les registres d’une unité d’échange (espace d’adresses des entrées-sorties). • Espace séparé : l’espace d’adresses des entrée-sorties est distinct de celui de la mémoire centrale. Le processeur désigne grâce à une ligne de commande du bus à quel espace il s’adresse. • Espace intégré ou unique : l’espace d’adresses des entrées-orties est contenu dans celui de la mémoire centrale. Cette zone est invalide pour le contrôleur de mémoire. Joëlle Delacroix-NFA004 10 L’unité d ’échange : adressage dans un espace séparé espace d ’adressage séparé 0 • LOAD D R1 60 • un mot mémoire d’adresse 60 est chargé dans le registre R1 Mots mémoires Espace Adresses mémoire • IN D R1 60 • un registre d’adresse 60 d ’une unité d ’échange est chargé dans R1 200 0 100 Registres des unités d ’échanges Espace c ’est le type d ’instruction qui Adresses distingue l ’espace d ’adressage Entrées-sorties concerné Joëlle Delacroix-NFA004 11 L’unité d ’échange : adressage dans un espace séparé Bus de commandes in/out Lecture/Ecriture Bus de données LOAD D R1 60 Mémoire RAM Unité d' échange Bus d'adresse 60 Joëlle Delacroix-NFA004 12 L’unité d ’échange : adressage dans un espace séparé Bus de commandes in/out Lecture/Ecriture Bus de données • IN D R1 60 Mémoire RAM Unité d' échange Bus d'adresse 60 Joëlle Delacroix-NFA004 13 L’unité d ’échange : adressage dans un espace séparé • Des instructions spécifiques d’entréesorties in/out adressent les unités d’échanges. IN D R1 X OUT D R1 X Le contenu du registre d’UE d’adresse X est placé dans le registre R1 du processeur Le contenu du registre R1 du processeur est placé dans le registre d’UE d’adresse X Joëlle Delacroix-NFA004 14 L’unité d ’échange : adressage dans un espace unique espace d ’adressage unique • LOAD D R1 102 0 100 101 • le mot mémoire d’adresse 102 est chargé dans le registre R1 Mots mémoires 300 • LOAD D R1 203 • Le registre d ’une unité d ’échange d’adresse 203 est chargé dans R1 200 201 Espace Adresses mémoire Registres des unités d ’échanges c ’est l ’adresse utilisée qui Espace Adresses détermine l ’espace adressé Entrées-sorties Joëlle Delacroix-NFA004 15 L’unité d ’échange : adressage dans un espace unique Bus de commandes Lecture/Ecriture Bus de données LOAD D R1 203 Mémoire RAM Unité d' échange Bus d'adresse 203 Joëlle Delacroix-NFA004 16 L’unité d ’échange : adressage dans un espace unique Bus de commandes Lecture/Ecriture Bus de données LOAD D R1 102 Mémoire RAM Unité d' échange Bus d'adresse 102 Joëlle Delacroix-NFA004 17 Adressage Unité d'échange espace séparé, espace intégré Espace intégré Espace séparé Les mêmes instructions (load/store) adressent les deux espaces d’adresses : simplicité de programmation Des instructions différentes adressent les deux espaces d’adresses : Load/store mémoire In/out entrées/sorties L’espace d’adresses des entréesorties est limité par celui de la mémoire centrale. Il impute sur la taille de l’espace d’adresses de la mémoire. L’espace d’adresses des entréessorties n’est pas limité en taille Si l’espace des adresses mémoire est petit, on préférera un espace séparé d’entrées-sorties. Joëlle Delacroix-NFA004 18 GESTION DES ENTREES-SORTIES • Le rôle des unités d ’échanges • L ’adressage et la constitution des unités d ’échanges Les modes de transferts : mode programmé, DMA Joëlle Delacroix-NFA004 19 GESTION DES ENTREESSORTIES On souhaite imprimer N octets de la mémoire centrale Chaque octet doit être écrit dans RD, puis être envoyé à l’imprimante par l’UE Mémoire centrale CPU N octets RD libre ? 1. Mettre octet dans RD; RD libre, N fois UE RD libre non UE RD 2. Transférer RD dans l’imprimante; 3. Libérer RD oui Mettre octet dans RD RD occupé Ecrire octet sur IMP RD libre Joëlle Delacroix-NFA004 20 GESTION DES ENTREES-SORTIES Système d’exploitation Programme utilisateur Pilote (driver) Début Char buf (1..n) Imprimer () Imprimer (buf, n octets) CPU (logiciel) Tester() fin Mémoire centrale UE RD N octets (matériel) Joëlle Delacroix-NFA004 21 GESTION DES ENTREES-SORTIES • Pilote d’entrées-sorties : c’est un programme du système d’exploitation qui gère l’unité d’échange. • Chaque unité d’échange a son propre pilote (driver). • Un programme utilisateur faut appel au pilote pour utiliser un périphérique. • Les opérations réalisées par le pilote divergent en fonction du mode d’entrées-sorties utilisé (programmés, avec interruptions, avec DMA) Joëlle Delacroix-NFA004 22 Le mode d’entrées-sorties programmé • Par défaut, une unité d'échange : • ne sait pas accéder à la mémoire centrale • ne sait pas délivrer son état commande Prête ? état Transfert Ok ? données Unité d’échange 1. Le processeur doit lire chaque mot depuis la mémoire centrale et le placer dans RD (ou vice versa) 2. Le processeur doit scruter le registre RE pour savoir si l'unité d'échange est prête pour un nouveau transfert Joëlle Delacroix-NFA004 23 Le mode programmé Mémoire centrale , pilote d’E/S Tant que les N octets ne sont pas transférés Tant que UE non prête (bit P de RE) attendre fin tant que transférer l’octet suivant dans RD fin tant que CPU Test du bit P de RE RD libre ? RE UE P RD • Traitement des entréessorties • le CPU gère l'entréesortie par scrutation de L'UE • le CPU est complètement occupé par l'entréesortie. Joëlle Delacroix-NFA004 non oui Mettre octet dans RD RD occupé Ecrire octet sur IMP RD libre 24 Le mode programmé Pg utilisateur pilote Imprimer (buf, 2 octets) RE prêt RE non prêt RE prêt RE non prêt 1 octet -> RD attente 1 octet -> RD attente Scrutation de RE RD RE prêt RD RE cpu Scrutation de RE RD RE octet non prêt prêt RD octet RE non prêt UE prêt prêt non prêt Écriture octet imprimante Joëlle Delacroix-NFA004 Écriture octet imprimante 25 Le mode d’entrées-sorties avec interruptions • Par défaut, une unité d'échange : • ne sait pas délivrer son état commande Prête ? état Transfert Ok ? données Le processeur doit scruter le registre RE pour savoir si l'unité d'échange est prête pour un nouveau transfert Il faut ajouter un mécanisme qui permette à l‘UE de signaler son état par elle même : les interruptions Unité d’échange Joëlle Delacroix-NFA004 26 Le mode d’entrées-sorties avec interruptions Numéro 1 2 3 4 CPU Mémoire centrale IRQ numéro UE p RE UE adresse 1000 1100 1500 2000 Une interruption est un signal asynchrone pouvant être émis par tout dispositif externe au processeur, qui interrompt le travail courant du processeur pour forcer l'exécution d'un programme traitant la cause de l'interruption : la routine d'interruption Joëlle Delacroix-NFA004 27 Le mode d’entréessorties avec interruptions Mémoire centrale Sous_Programme d'IRQ_UE : transférer donnée_suivante dans RD RTI Pilote d’Entrées-sorties : Vérifier UE prête; Transférer première_donnée dans RD; CPU RD libre ? RE non RD • Traitement des entrées-sorties L'UE délivre une interruption pour signaler qu'elle est prête : le processeur ne fait plus de scrutation du registre d’état Joëlle Delacroix-NFA004 oui Mettre octet dans RD RD libre UE IRQ RD occupé Ecrire octet sur IMP RD libre 28 Pg utilisateur Le mode d’entréessorties avec interruptions pilote Routine IRQ Imprimer (buf, 2 octets) cpu RE prêt 1 octet -> RD RE prêt Fin e/s RE prêt 1 octet -> RD actif inactif irq RD RE prêt RD RE RD RE octet non prêt irq prêt RD octet RE non prêt UE prêt prêt non prêt Écriture octet imprimante Joëlle Delacroix-NFA004 Écriture octet imprimante 29 Le mode d’entrées-sorties avec DMA • Par défaut, une unité d'échange : • commande Prête ? état Transfert Ok ? données ne sait pas accéder à la mémoire centrale Le processeur doit lire chaque mot depuis la mémoire centrale et le placer dans RD (ou vice versa) Il faut permettre à L'UE d’accéder à la mémoire centrale sans recourir au processeur : le DMA (DIRECT MEMORY ACCESS) Unité d’échange Joëlle Delacroix-NFA004 30 Le mode d’entrées-sorties avec DMA • Le DMA est un contrôleur d’entrées-sorties qui permet aux unités d’échanges d’accéder à la mémoire centrale sans intervention du processeur. • Les dispositifs gérés par le DMA sur un PC sont entre autres : • Le contrôleur de disquettes (canal DMA2) • Les contrôleurs de disques durs (canal DMA6) • La carte son (canal DMA1) • Le port parallèle (imprimante) (canal DMA3) • DMA3 DMA2 Contrôleur DMA Chaque dispositif utilise un canal DMA identifié par une adresse de début et une adresse de fin en mémoire centrale qui désigne la zone en MC accessible pour le transfert. UE • Mémoire centrale UE Le contrôleur DMA d’un PC gère 8 canaux DMA. Joëlle Delacroix-NFA004 31 Le mode d’entréessorties avec DMA Sous_Programme d'IRQ_DMA : Vérification transfert OK RTI Pilote d’entrées-sorties : Initialiser DMA : nb = nombre d'octets à transférer @m = adresse premier octet en MC sens = écriture; @p = adresse périphérique CPU Lancer DMA DMA UE nb sens @p @m p RE • Traitement des entrées-sorties • le processeur (pilote) initialise le DMA • le DMA effectue l'entrée/sortie; • le DMA signale la fin d'entrée-sortie par une IRQ Joëlle Delacroix-NFA004 32 Le mode d’entréessorties avec DMA Pg utilisateur pilote Routine IRQ Imprimer (buf, 2 octets) RE prêt Fin e/s Init DMA Lancer DMA irq RD RE prêt RD RE RD RE octet non prêt prêt RD octet RE non prêt Écriture octet imprimante Joëlle Delacroix-NFA004 actif cpu inactif actif DMA inactif prêt prêt UE non prêt Écriture octet imprimante 33 Le mode d’entrées-sorties avec DMA Joëlle Delacroix-NFA004 34 Le mode d’entrées-sorties avec DMA • DMA et processeur sont en concurrence pour l’accès au bus et à la mémoire centrale. Un seul dispositif peut être à un moment donné maître du bus et y initialiser un transfert avec la mémoire (esclave) cpu bus DMA Le maître initie le transfert sur le bus L’esclave répond aux sollicitations du maître Mémoire centrale Transfert en mode bloc (burst, rafale) Transfert en mode vol de cycle Joëlle Delacroix-NFA004 35 Entrées-sorties avec DMA : mode rafale • Le DMA opère le transfert des n octets en une seule séquence ininterrompue. Durant ce transfert, le DMA est maître du bus. Le processeur est « suspendu » durant la totalité du transfert. Le DMA force l’accès au bus (REQ_DMA) Le CPU acquitte la demande (ACQ_DMA) et se place dans un état de suspension III. Le DMA réalise le transfert. A la fin du transfert, il relâche le bus (REQ_DMA) IV. Le processeur quitte l’état suspendu, relâche ACQ_DMA. V. Le DMA envoie une IRQ. I. II. cpu DMA REQ_DMA / ACQ_DMA INTR bus Joëlle Delacroix-NFA004 36 I. II. III. IV. V. Le DMA force l’accès au bus (REQ_DMA) Le CPU acquitte la demande (ACQ_DMA) et se place dans un état de suspension Le DMA réalise le transfert. A la fin du transfert, il relâche le bus (REQ_DMA) Le processeur quitte l’état suspendu, relâche ACQ_DMA. Le DMA envoie une IRQ. Le mode avec DMA (burst mode) Pg utilisateur pilote Routine IRQ Imprimer (buf, 2 octets) I. REQ_DMA II. ACQ_DMA Init DMA Lancer DMA III. REQ_DMA IV. ACQ_DMA RE prêt Fin e/s II. État suspendu III. Transfert RD RE prêt RD RE RD RE octet non prêt prêt V. irq RD octet RE non prêt Écriture octet imprimante Joëlle Delacroix-NFA004 prêt actif cpu inactif actif DMA inactif prêt UE non prêt Écriture octet imprimante 37 Entrées-sorties avec DMA : mode vol de cycle • Le DMA opère le transfert des n octets octet par octet. Il « vole » des cycles d’accès au bus pour transférer chaque octet. Le processeur est « suspendu » durant le transfert d’un octet Processeur et DMA se partagent l’accès au bus durant le transfert des n octets. Joëlle Delacroix-NFA004 38 Le mode avec DMA (vol de cycle) Pg utilisateur pilote Imprimer (buf, 2 octets) Routine IRQ III. REQ_DMA IV. ACQ_DMA I. REQ_DMA II. ACQ_DMA RE prêt Fin e/s Init DMA Lancer DMA État suspendu État suspendu irq RD RE prêt RD RE RD RE octet non prêt prêt RD octet RE non prêt Écriture octet imprimante Joëlle Delacroix-NFA004 actif cpu inactif actif DMA inactif prêt prêt UE non prêt Écriture octet imprimante 39 Pg utilisateur Le mode avec DMA (vol de cycle) pilote Routine IRQ III. REQ_DMA IV. ACQ_DMA I. REQ_DMA II. ACQ_DMA Imprimer (buf, 2 octets) Pg utilisateur RE prêt Fin e/s Init DMA Lancer DMA État suspendu État suspendu irq RD RE prêt RD RE RD RE octet non prêt prêt RD octet RE non prêt Écriture octet imprimante Joëlle Delacroix-NFA004 actif cpu inactif actif DMA inactif prêt prêt UE non prêt Écriture octet imprimante 40