Contrôleur

publicité
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
Téléchargement