Architecture des ordinateurs cours 5 Les entrées/sorties et les bus Agata Savary, IUT de Blois, Département GTR, 1e année, 2004-2005 Entrées Sorties clavier keyboard écran souris mouse imprimante printer scanner scanner haut parleurs joystick graveur CD-R screen appareil photo numérique carte réseau network card modem A. SAVARY IUT Blois GTR1, 2004/05 2 Moniteur graphique • • • • • Dans un tube à vide, un canon électronique envoie un faisceau d’électrons vers un écran luminescent (le moniteurs couleurs ont trois canons à électrons, un pour chaque couleur primaire). Lorsque les électrons frappent l’écran un point lumineu apparaît. Le faisceau balaye l’écran ligne par ligne 20-120 fois par seconde. L’image sur l’écran correspond à une matrice (appelée bitmap) d’éléments graphiques (pixels) de taille entre 512 340 et 1560 1280. Une couleur est représentée par une combinaison de 3 couleurs de base (rouge, vert, bleu) à intensité variable. Un ensemble de bits représente la couleur d’un pixel ; sa taille (8, 16 ou 24 bits) définit le nombre de couleurs disponibles (e.g. 8 bits = 256 couleurs différentes) A. SAVARY IUT Blois GTR1, 2004/05 3 Souris • Une boule en caoutchouc entre en contact avec une paire de roues : l’une représente l’axe horizontal, l’autre l’axe vertical. • Chacune des 2 roues fait tourner une roue dentée, à travers laquelle une diode électroluminescente illumine un dispositif photosensible. • Mouvement de la souris rotation des roues incrémentation ou décrémentation des compteurs qui déterminent la position du curseur sur l’écran A. SAVARY IUT Blois GTR1, 2004/05 4 Miroir octogonal rotatif Laser Surface du tambour chargée électiquement Imprimante laser • Le tambour, chargé électriquement devient photosensible Tambour • Il est balayé ligne par ligne par un rayon de laser dirigé à l’aide d’un Toner Nettoyage miroir rotatif. Un point du tambour Sortie papier touché par le rayon perd sa charge électrique. Rouleaux chauffants • Chaque ligne touche ensuite au Papier blanc Papier imprimé reservoir de poudre électrostatique d’encre (toner). La poudre se dépose sur les points qui ont perdu leur charge électrique. Une ligne d’image en encre est ainsi formée. • Le tambour est pressé contre une feuille de papier et y dépose l’encre. • La feuille est chauffée pour rendre l’impression permanente. • Le tambour en quittant la feuille est déchargé électriquement et nettoyé des restes de toner avant de recommencer la même série d’actions. Faisceau laser A. SAVARY IUT Blois GTR1, 2004/05 5 Contrôleurs des disques et périphériques A. SAVARY IUT Blois GTR1, 2004/05 6 Structure d’un ordinateur simple Moniteur Processeur Mémoire Contrôleur video Clavier Disque souple Disque dur Contrôleur de clavier Contrôleur de disque souple Contrôleur de disque dur Bus • Contrôleur de périphérique = circuit intégré spécialisé qui pilote le fonctionnement du périphérique, son accès au bus et sa communication avec le système A. SAVARY IUT Blois GTR1, 2004/05 7 controller Contrôleur de disque • Contrôleur de disque = circuit intégré spécialisé qui pilote le fonctionnement du disque • Peut contenir un véritable processeur • Reçoit et effectue les ordres de l’unité centrale (READ, WRITE, FORMAT,…) • Traduits ces ordres en des tâches comme : – Positionnement du bras – Détection et correction d’erreurs – Conversion d’octets reçus en parallèle en un flot de bits en série (lors de l’écriture) et inversement (lors de la lecture) – Gestion de secteurs défectueux – Gestion de buffeurs qui stockent les données lues en avance – Etc. A. SAVARY IUT Blois GTR1, 2004/05 8 Carte vidéo Carte vidéo Processeur Mémoire RAM vidéo Moniteur Contrôleur video Bus Signaux vidéo analogiques • La carte vidéo contient une mémoire vidéo pour sauvegarder le bitmap. • Le contrôleur d’écran lit constamment la mémoire vidéo et génère les signaux analogiques correspondants au bitmap pour guider le faisceau d’électrons • Si le processeur veut afficher une image sur l’écran il envoie son bitmap dans la mémoire vidéo. La taille élevée d’un bitmap (e.g. 2 Mo pour une image, repétés 25-50 fois/sec pour une animation) nécessite un bus performant (e.g. PCI). A. SAVARY IUT Blois GTR1, 2004/05 9 Contrôleur d’imprimante • Le contrôleur d’imprimante contient une mémoire de quelques Mo pour stocker les pages à imprimer. • Une image est transmise au contrôleur – soit sous forme d’un bitmap, – soit sous forme d’un programme écrit en un langage de description de page comme PCL (Hewlett Packard) ou PostScript (Adobe) ; ce programme est interpreté par le contrôleur en des instructions qui précisent où l’imprimante doit placer des points sur une feuille • Un langage de description de pages permet l’emploi des polices vectorisées qui décrivent la forme des lettres par des formules mathématiques (intervalle d’une longueur donnée, angle d’un grade donné, fraction d’un cercle d’un diamètre donné, etc.). Grâce à cette description mathématique – l’agrandissement et la reduction d’une image donnent des images exactement proportionnelles (ceci n’est pas le cas pour les bitmaps) – la description est plus compacte qu’un bitmap A. SAVARY IUT Blois GTR1, 2004/05 10 Polices vectorisées (vectorielles) Agrandissement d’une police bitmap revient à l’agrandissement des pixels Dans une police vectorielle le contour est décrit par un ensemble de courbes définies mathématiquement A. SAVARY Agrandissement d’une police vectorielle donne une image parfaitement proportionnelle à celle d’origine IUT Blois GTR1, 2004/05 11 Accès aux entrées/sorties en dehors du système d ’exploitation - le BIOS • Le BIOS (Basic Input/Output System) est un ensemble de fonctionnalités basiques permettant d’accéder aux périphériques sans recours au système d’exploitation. • Il est habituellement contenu dans une mémoire ROM (récemment aussi du type Flash) pour des raisons de fiabilité. • Lorsqu’on allume un ordinateur, le premier programme lancé est le BIOS. Il – lance les contrôleurs des périphériques – vérifie si toutes les cases de la mémoire vive sont opérationnelles – il charge la partie initialle du système d’exploitation (boot) du disque en mémoire vive • Le BIOS est attaché à une architecture matérielle particulière. On met à jour le SE sans modifier le BIOS. A. SAVARY IUT Blois GTR1, 2004/05 12 Gestion des entrées/sorties (couche du système d’exploitation) A. SAVARY IUT Blois GTR1, 2004/05 13 Entrées/sorties - pilotes driver Système d’exploitation Pilote de disque dur (composant logiciel) Pilote d’imprimante Pilote d’écran controller Contrôleur de disque (composant électronique) Disque (composant mécanique) • Un pilote du périphérique est une partie du SE responsable de la communication avec le contrôleur du périphérique • Chaque fabricant d’un périphérique doit fournir le pilote pour chacun des SE auxquels ce périphérique est destiné Lecteur de disque A. SAVARY IUT Blois GTR1, 2004/05 14 Entrées/sorties - registres et tampons • Le processeur est le premier responsable de la communication avec les périphériques. Cette communications se fait par biais de deux types d’objets : • registres de contrôle : le processeur y met les commandes déstinées au contrôleur (e.g. lire) ; le contrôleur y met les informations sur son état (e.g. prêt à accepter une nouvelle commande) • tampons de données : le processeur y met les données pour le contrôleur (e.g. pour écriture sur disque) ; le contrôleur y met les données pour le processeur (e.g. suite à une lecture sur un disque) • Deux solutions existent pour le placement des registres de contrôle : • ports d’E/S : registres spécialisés en dehors de la mémoire • E/S mappées en mémoire : cases mémoire reservées pour la communication d’E/S (e.g. Pentium) A. SAVARY IUT Blois GTR1, 2004/05 15 Dialogue entre le processeur et les E/S Trois types essentiel de communication entre le processeur et les entrées/sorties sont : • la communication par scrutation • la communication par interruptions • le DMA A. SAVARY IUT Blois GTR1, 2004/05 16 Dialogue entre le processeur et les E/S : Scrutation (Attente Active=Busy Waiting) Dans des ordinateurs très simples ou/et bas de gamme, le processeur est lui même responsable de tout échange de données avec les périphériques. La méthode la plus simple (mais la moins efficace) est la communication par scrutation. Exemple : saisie de caractères tapés sur un clavier et leur affichage sur un écran alphanumérique : Caractère disponible Tampon clavier Prêt pour caractère suivant Caractère reçu faire { prêt = lire(caractère_disponible); } tant que (! prêt) ; lire(tampon_clavier); remettre_à_zéro(caractère_disponible); Caractère à afficher Tampon écran faire { prêt = lire(pret_pour_caractere_suivant); } tant que (! prêt) ; ecrire(tampon_ecran); remettre_à_zéro(pret_pour_caractere_suivant); Le processeur reste en attente tant que le périphérique n’est pas prêt. Puis il saisie/envoie un caractère et se remet à attendre. A. SAVARY IUT Blois GTR1, 2004/05 17 Scrutation dans JASPer Programmes et données de l’utilisateur Reservé pour le SE Dans JASPer les E/S sont mappée en mémoire. Voici le masque mémoire : • IDR (input data register) est un tampon d’entrée : le 00FF périphérique y accède pour mettre une donnée, le processeur y accède pour lire la donnée • ISR (input status register) est un registre de contrôle d’entrée : le processeur peut lire la donnée dans IDR 00F0 OSR 00E3 uniquement si ISR est égal à 1 (ceci évite de lire la ODR 00E2 même donnée plusieurs fois) ISR 00E1 IDR • ODR (output data register) est un tampon de sortie : le 00E0 00DF processeur y accède pour mettre une donnée, le périphérique y accède pour lire la donnée • OSR (output status register) est un registre de contrôle de sortie : le processeur peut mettre la donnée suivante dans ODR uniquement si OSR est égal à 1 (ceci évite d’écraser les données nos saisies par le périphérique) A. SAVARY IUT Blois GTR1, 2004/05 0000 18 Dialogue entre le processeur et les E/S : Interruptions (Interrupts) Interruption : signal passé au processeur par une broche particulière ; ce signal avértit le processeur d’une situation “exceptionnelle” (i.e. rare et dont le moment précis et impossible à prévoir) ; le processeur doit suspendre l’action qu’il était en train de faire afin de “traiter l’interruption” ; puis il retourne à l’action précédente. Avantage : le processeur ne perd pas son temps à attendre qu’une opération d’E/S se termine ; il peut faire autre chose en attendant une interruption. A. SAVARY IUT Blois GTR1, 2004/05 19 Interruptions - parallèle avec la vie courante • Je me mets à réaliser une recette de cuisine (exécution du processus 1). • Je remarque qu’il me manque de la farine alors je mémorise la dernière action effectuée de la recette (enregistrement de l’état du processus 1) et je demande à ma fille d’aller au magasin (demande d’opération d’E/S). • En attendant le retour de ma fille je m’asseois pour lire un livre (exécution du processus 2). • Au millieu de cette action mon fils crie (emission de l’interruption 1) car il s’est blessé. • J’arrête de lire après avoir mis un marque-page à la dernière page lue (enregistrement de l’état du processus 2) et je lui fais un pensement (traitement de l’interruption). • Je me remets à lire à l’endroit marqué par le marque-page (reprise du processus 2). • Ma fille sonne à la porte (emission de l’interruption 2), j’arrête de lire, je prends la farine en remerciant ma fille (traitement de l’interruption). • Je reprends ma recette à l’endroit où je m’étais arrêtée (reprise du processus 1). A. SAVARY IUT Blois GTR1, 2004/05 20 Pourquoi les interruptions sont-elles nécessaires ? • Sans elles il faut perdre une bonne partie de son temps en “attente active” : le processus doit de sa propre initiative vérifier si une situation “exceptionnelle” ne viens pas de se produire. • Supposons que dans la vie courante les interruptions (sonnette, crie de l’enfant, sonnerie du téléphone, reveil, voyants de contrôle dans une voiture, etc.) n’existent pas • Les “algorithmes” de la vie courantes doivent alors intégrer des vérifications suffisamment fréquentes des situation “exceptionnelles” • lire (pendant un temps “raisonnable”), puis s’arrêter pour : • vérifier si mon fils va bien; • vérifier si ma fille ni personne d’autre ne se trouve derrière la porte • vérifier décrocher le téléphone au cas où quelqu’un était justement en train de m’appeler • etc. • en conduisant, s’arrêter de temps en temps pour vérifier s’il ne manque pas d’essence, huile, liquide de refroidissement, etc. A. SAVARY IUT Blois GTR1, 2004/05 21 Interruptions dans JASPer • Le registre PSR contient : – un bit pour bloquer/débloquer les interruptions (si IE=0 alors aucune interruption ne peut interrompre le processeur, si IE=1, inversement) – trois bits (VVV) pour le vecteur d’interruptions : chaque type d’interruption à son numéro (vecteur) ; lorsqu’un périphérique émet une interruption, son vecteur s’enregistre dans • La valeur vvv indique où se trouve en mémoire l’adresse du programme de traitement de l’interruption A. SAVARY IUT Blois GTR1, 2004/05 22 DMA (Direct Memory Access) • La vitesse de transfert de donnés par les périphériques est beaucoup plus basse que celle du processeur. • Dans un système du type busy waiting le processeur passe la casi totalité de son temps à attendre les réponses des périphériques. • Dans un système à interruptions les données sont traitées par petits blocs (e.g. un caractère à la fois) donc les interruption arrivent relativement souvent et le processeur passe une bonne partie de son temps à traiter les interruptions • Solution : interruptions + DMA • Lorsqu’un programme sollicite un périphérique, le processeur envoi la demande à un circuit spécifique DMA (Direct Memory Access) et, si nécessaire, suspend le programme en cours pour en exécuter un autre. • Le circuit DMA entre en communication avec le périphérique en lui permettant de lire ou écrire des mots directement en mémoire sans intervention du processeur. • Lorsque le transfert est terminé le contrôleur avertit le processeur en générant une interruption ; le processeur traite l’interruption (une seule pour tous le transfert), puis reprend le programme qui attendait la fin de l’opération A. SAVARY IUT Blois GTR1, 2004/05 23 d’entrée/sortie (E/S). Bus A. SAVARY IUT Blois GTR1, 2004/05 24 Types de bus • Un bus = une ou plusieurs lignes conductrices regroupées ensemble selon leurs fonction • Bus internes : relient les différents éléments du processeur entre eux : l’unité de contrôle, l’UAL, les registres • Bus externes : relient le processeur avec la mémoire et avec les entrées/sorties • En fonction de ce qu’ils transportent, les bus (internes et externes) se divisent en – Bus d’adresses – Bus de données – Bus de contrôles (de commandes) • Le fonctionnement des bus internes peut être déterminé arbitrairement par le fabricant du processeur (selon ses propres besoins) • Le fonctionnement des bus externes doit garantir la bonne communication entre le processeur, les mémoires et les E/S (dont les fabricants sont souvent différents du celui du processeur). Le bus doit donc respecter certaines normes appelées protocole du bus (e.g. protocoles ISA, PCI, SCSI, USB). A. SAVARY IUT Blois GTR1, 2004/05 25 Types de connexions à un bus • Un circuit conntecté à un bus peut être soit maître, soit esclave. • Un maître est actif, i.e. il peut prendre l’initiative de communication sur un bus. • Un esclave est passif, i.e. il ne peut que répondre à l’initiative de communication prise par un maître. • Exemples : – Demande de lecture sur un disque : le processeur est maître (c’est lui qui envoie par le bus de contrôle la demande de lecture au contrôleur du disque), le contrôleur du disque est esclave – Accès direct à la mémoire (DMA) : le contrôleur du disque est maître (c’est lui qui demande à la mémoire d’enregistrer les données provenant du disque), la mémoire est esclave • Il arrive que plusieurs maîtres souhaitent utiliser un bus commun au même moment. Cette situation doit être exclue. Le gestion de conflits d’accès au bus s’appelle arbitrage du bus. A. SAVARY IUT Blois GTR1, 2004/05 26 Bus ISA et PCI • Bus ISA : – l’un des plus ancient standards des bus externes de la gamme IBM PC – permet de transmettre des données de 16 bits à la fois – Fréquence : 8,33 MHz – Bande passante (throughput) : (2 octets * 8,33 M/sec) 16,7 Mo/s – Peu cher • Le développement d’applications graphiques et des multimédia a vite posé des problèmes à la capacité de transmission du bus ISA - on a introduit un nouveau standard, le bus PCI qui est arrivé à sa version 2.2 (donnée de 2001) : – permet de transmettre des données de 64 bits à la fois – Fréquence : 66 MHz – Bande passante : (8 octets * 66 M/sec) 528 Mo/s – Cher • Le bus ISA a dû être maintenu pour des raisons de compatibilité : il est employé pour des périphériques lents (modem, imprimante,…) et est interconnecté avec un A.bus PCI SAVARY IUT Blois GTR1, 2004/05 27 Bus USB (Universal Serial Bus) • Destiné aux périphériques lents : souris, clavier, imprimante,… • Le boîtier de l’ordinateur n’a pas besoin d’être ouvert pour connecter un nouveau périphérique • Un seul type de cable pour tous les périphériques • Jusqu’à 127 périphériques peuvent être connectés à un même ordinateur • Les équipements peuvent être branchés et débrancher sans couper l’alimentation électrique de l’ordinateur • Il n’est pas nécessaire de réinitialiser le système après avoir branché un nouveau périphérique • Bande passante : 1,5 Mo/s • Peu cher A. SAVARY IUT Blois GTR1, 2004/05 28 Architecture à plusieurs bus (ex. de Pentium II) Bus mémoire Bus local Bus SCSI Scanner UC cache Disque Contrôleur PCI Contrôleur SCSI Mémoire principale Contrôleur vidéo Contrôleur de réseau Appelé “pont PCI”; Contient l’arbitre du bus Bus PCI Appelé “pont ISA” Contrôleur USB Bus USB Carte son Contrôleur imprimante Contrôleur ISA/PCI Modem Souris Clavier Bus ISA A. SAVARY IUT Blois GTR1, 2004/05 29