0% ont trouvé ce document utile (0 vote)
33 vues23 pages

MSI244 Periph - E S

Le document présente un cours sur les périphériques d'entrée/sortie dans le cadre d'un programme de BTS en Génie Informatique, abordant les types de périphériques, leur fonctionnement et les interfaces de communication. Il détaille également les bus de communication, notamment les bus ISA, PCI et USB, ainsi que leur architecture et leurs caractéristiques techniques. L'importance des pilotes de périphériques et des contrôleurs dans la gestion des échanges de données entre l'ordinateur et les périphériques est également soulignée.

Transféré par

Pierre OUSMANOU
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
33 vues23 pages

MSI244 Periph - E S

Le document présente un cours sur les périphériques d'entrée/sortie dans le cadre d'un programme de BTS en Génie Informatique, abordant les types de périphériques, leur fonctionnement et les interfaces de communication. Il détaille également les bus de communication, notamment les bus ISA, PCI et USB, ainsi que leur architecture et leurs caractéristiques techniques. L'importance des pilotes de périphériques et des contrôleurs dans la gestion des échanges de données entre l'ordinateur et les périphériques est également soulignée.

Transféré par

Pierre OUSMANOU
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

MSI244 : PERIPHERIQUES ET ASSEMBLAGE

COURS : PERIPHERIQUES D’ENTREE/SORTIE

SUPPORT DE COURS
Filière : GÉNIE INFORMATIQUE
Spécialité : MAINTENANCE DES SYSTEMES INFORMATIQUES
Niveau : 2ème ANNÉE, BTS

Crédit : 2

Cours magistral : 15 heures

Travaux dirigés : ____ heures

Travaux pratiques : ____ heures

ENSEIGNANT : OUSMANOU PIERRE

ANNÉE ACADEMIQUE: 2022 - 2023


Unité d’enseignement : MSI244 - Périphériques et Assemblage
Intitulé du cours : Périphériques d’E/S : 2 crédits (30 heures); CM : 15 heures, TD, TPE
1. Coupleurs d’E/S
2. Types de périphériques
3. Chaine multimédia
Chapitre 1 : LES PERIPHERIQUES

Introduction
Les périphériques sont tous les dispositifs matériels qui permettent d’assurer les échanges d’informations en
entrée et en sortie entre l’ordinateur et l’extérieur ou de stocker de manière permanente des données. On y
trouve clavier, souris, imprimantes, écrans, modems et pour le stockage par exemple des disques
magnétiques. Chaque périphérique est piloté par un ensemble de signaux spécifiques au périphérique, et
activés par l’unité d’échange appelée coupleur.

1- Les interfaces d’accès aux périphériques


Le processeur et la mémoire centrale gèrent des informations numériques, les périphériques sont pilotés par
des signaux électriques. Les informations numériques transitent dans l’ordinateur par le bus de
communication. Pour écrire des données, par exemple sur une imprimante il faut activer un programme de
gestion d’entrées/sorties qui génère un flux de bits qu’il dépose sur le bus de communication à destination
du contrôleur de l’imprimante. À la réception de ce flux de bits le contrôleur génère des signaux électriques
à destination de l’imprimante qui ainsi activée gère la « mécanique » d’impression en sélectionnant, par
exemple, les buses d’impression pour une imprimante à jet d’encre. Le rôle d’un contrôleur est donc de
piloter un périphérique et de gérer les accès au bus afin de permettre à un périphérique de communiquer avec
l’ordinateur.
Les données manipulées par le processeur doivent être placées en mémoire centrale. Chaque donnée possède
une adresse mémoire permettant d’y accéder. Pour imprimer une donnée il faut accéder à celle-ci en mémoire
centrale (on dispose pour cela de son adresse mémoire) et la faire parvenir via le bus au contrôleur de
l’imprimante.
Nous serons donc amenés à définir l’adresse et la structure générale d’un contrôleur lui permettant
d’accueillir une donnée. Les signaux à produire selon que l’on doive gérer une imprimante, un clavier ou
encore un disque magnétique sont différents et sont spécifiques du périphérique.

2- Le processeur et la mémoire centrale


Une opération d’entrées-sorties fait intervenir un programme exécutant des instructions spécifiques à
l’échange et au périphérique. Ce programme, comme tous les programmes exécutables, se trouve en mémoire
centrale et est exécuté selon le schéma d’exécution étudié dans la fonction d’exécution.
3- Le bus de communication
Le programme d’entrées-sorties gère les échanges de données entre mémoire centrale et périphérique, il
utilise le bus de communication pour ces échanges. La machine présentée est une machine dite à bus unique.
Cette architecture a pendant longtemps été celle de nos ordinateurs personnels, elle pose cependant des
problèmes d’efficacité à cause de la très grande hétérogénéité des performances des composants que le bus
interconnecte. Par exemple lorsqu’un contrôleur et le processeur central souhaitent utiliser, au même
moment, le bus de communication pour réaliser un échange il y a conflit d’accès à cette ressource unique. Il
faut, pour régler ce conflit, faire appel à un dispositif particulier (l’arbitre de bus) afin d’ordonnancer les
demandes d’accès au bus. Dans une telle architecture la priorité est généralement donnée au contrôleur afin
que l’opération d’entrées-sorties puisse s’effectuer sans perte d’informations (si une opération d’entrées-
sorties disque est en cours il n’est pas possible de stopper cet échange, pour attribuer le bus au processeur,
sans risquer de perdre des informations). Ainsi lorsqu’un programme est en cours d’exécution il utilise à sa
guise le bus mais si une opération d’entrées-sorties doit être réalisée, le contrôleur émet une requête à l’arbitre
de bus pour signaler qu’un transfert de données est nécessaire.

4- Le pilote de périphérique
Le dernier élément intervenant dans la prise en compte d’une opération d’entrées/sorties est le programme
de gestion des entrées-sorties. Lorsque nous achetons une imprimante ou un disque magnétique le
constructeur fournit une disquette (ou maintenant un CD-ROM) contenant un logiciel : le driver (ou pilote)
du périphérique. Ce logiciel connaît toutes les caractéristiques techniques du périphérique et est spécifique
de ce périphérique. Ainsi un utilisateur travaillant avec un logiciel de traitement de textes clique sur une
icône pour déclencher l’impression d’un document (fichier). Cette action sur l’icône d’impression permet
d’activer le pilote de l’imprimante, qui reçoit les données (le fichier) à imprimer. Le pilote gère alors
l’impression. Ainsi ce n’est pas le logiciel de traitement de texte qui gère directement les impressions, il
connaît le pilote du périphérique et lui délègue cette tâche. Le logiciel de traitement de textes connaît le
pilote d’impression car ce dernier est installé dans le système d’exploitation : quand nous achetons un
périphérique nous devons installer le pilote. Ce mécanisme (déléguer le traitement des entrées-sorties à un
programme du système d’exploitation) est général et fondamental dans le traitement des entrées/sorties. En
conséquence un programme utilisateur pour réaliser des échanges ne communique pas directement avec le
périphérique mais avec le pilote de ce périphérique : les programmes ne connaissent les périphériques qu’au
travers des pilotes qui leur sont associés.
5- Les bus
Un bus est ensemble de « fils » qui relient les divers composants d’un ordinateur. Une caractéristique
importante du bus est la manière dont les bits sont transportés. À cet égard on peut classer les bus selon deux
grandes catégories :
– Les bus parallèles. Ce sont des bus simples constitués d’autant de « fils » qu’il y a de bits à transporter.
Ces bus sont coûteux et peu fiables pour des distances importantes. Ils sont utilisés sur des distances courtes,
par exemple pour relier le processeur, la mémoire et les unités d’échanges.
– Les bus série. Ils permettent des transmissions sur de grandes distances. Ils utilisent une seule voie de
communication sur laquelle les bits sont sérialisés et envoyés les uns à la suite des autres.
5.1- Les bus ISA (ou PC-AT), MCA et EISA
Le bus ISA est apparu dans les années 1985 avec les ordinateurs PC-AT. Il est encore très répandu. Il s’agit
d’un bus synchrone. Sa fréquence est celle du processeur 80286 soit 8,33 MHz et a une largeur de 2 octets
ce qui lui donne une bande passante de 16,7 Mo/s. L’évolution des processeurs, plus rapides et manipulant
des données sur 16 et 32 bits, a obligé les constructeurs à définir de nouveaux bus. Ce sont les bus MCA et
EISA.
Le bus MCA développé par IBM pour les ordinateurs PS/2 est un bus de 32 bits, asynchrone fonctionnant à
10 MHz avec une largeur de 32 bits. Ces caractéristiques lui confèrent une bande passante de 40 Mo/s bien
supérieure à celle du bus ISA. Indépendant du processeur il peut s’adapter à différentes architectures
matérielles. Cependant il ne reconnaît pas les cartes ISA et sa complexité de fabrication le rend trop coûteux.
Le bus EISA est une amélioration du bus ISA ayant une largeur de 32 bits. Il doit cependant rester compatible
avec son aînée fonctionne donc nécessairement à une fréquence de 8 MHz. Sa bande passante est donc
double de celle du bus ISA.
Avec l’apparition des applications graphiques et multimédias utilisant, par exemple de la vidéo, les
performances de ces bus sont devenues totalement insuffisantes. Les bus deviennent alors un facteur
important de la réduction des performances des ordinateurs.
Examinons le cas d’un affichage vidéo sur un écran, le fichier d’images provenant d’un disque magnétique
ou d’un CD-ROM. Le moniteur couleur est standard et a une définition de 1 024 ×768, la couleur de chaque
point affiché (pixel) est codée sur 16 bits (soit 32 000 couleurs différentes, ce qui aujourd’hui est très pauvre).
Une image nécessite donc 1 024 ×768 ×2 octets =1 572 864 octets. Pour qu’une image soit stable il faut
qu’elle soit affichée au moins 25 fois par seconde sur l’écran. La bande passante nécessaire est donc de 1
572 864 ×25 octets/s soit environ 40 Mo/s.
En réalité si l’on examine le chemin parcouru par les données (disque vers mémoire puis mémoire vers
moniteur) la bande passante que doit avoir le bus est de 80 Mo/s.
Ces chiffres sont totalement incompatibles avec les performances des bus que nous venons de voir (Ces
résultats sont d’autant moins compatibles que nous avons choisi un codage des couleurs sur 16 bits alors
qu’aujourd’hui les couleurs sont codées sur au moins 24 bits ce qui impliquerait une bande passante
d’environ 120 Mo/s). Ce sont ces contraintes qui ont amené, vers 1990, Intel à définir un bus à haute
performance : le bus PCI.
5.2- Le bus PCI (Peripherical Component Interconnect)
a- Caractéristiques
Le bus PCI s’est imposé comme composant des cartes mères grâce à ses performances et à l’acceptation de
ses normes par un grand nombre de constructeurs.
On peut résumer ses caractéristiques principales par :
– C’est un bus local synchrone cadencé à une fréquence de 33 ou 66 MHz (version 2.1).
– Il a une largeur de 32 ou 64 bits ce qui lui confère une bande passante de 132, 264 ou 528 Mo/s. Grâce à
cette capacité de transmission le bus PCI répond à tous les types de périphériques et à tout type d’application.
Il n’est donc pas un goulot d’étranglement pour le système informatique.
– Afin de réduire l’encombrement et le nombre de broches le bus PCI est multiplexé. Dans ce mode les
lignes du bus transportent alternativement des adresses et des données. On divise ainsi par deux le nombre
de lignes du bus. Les opérations de lecture et d’écriture impliquent alors plusieurs cycles de bus. Les
transactions sont réalisées entre un maître (qui initie la transaction) et un esclave (la cible de la transaction).
Par exemple une transaction de lecture se fait en 3 cycles de bus : le maître place l’adresse de la donnée à
lire sur les lignes du bus, le maître passe la main à l’esclave qui peut alors utiliser le bus, l’esclave place la
donnée adressée sur le bus qui est alors disponible pour le maître.
– Les spécifications du bus PCI permettent d’installer une architecture Plug And Play (Le périphérique est
automatiquement reconnu et le pilote nécessaire à son fonctionnement automatiquement installé.).
– Comme les bus ISA le bus PCI permet de gérer d’autres unités centrales, de la mémoire et des entrées-
sorties. Aussi de nombreuses fonctions du bus standard ISA migrent vers le bus PCI.
Bien que la bande passante de ce bus soit très importante, ce bus ne convient pas aux transferts entre mémoire
centrale et processeur. De plus il ne permet pas la prise en compte des cartes additionnelles compatibles avec
le bus ISA.
Le tableau 9.1 résume les principales performances des bus présentés jusqu’à ce point.

b- Architecture
Pour répondre à la grande variété de besoins, une architecture multibus s’est imposée.
La figure 9.3 présente une telle architecture. La plupart des micro-ordinateurs conçus à partir de processeurs
Pentium II repose sur une telle architecture. Cette architecture n’est pas seulement celle des PC maison la
retrouve également avec quelques variantes chez Apple. Les composants clés de cette organisation sont les
composants d’interconnexion de plusieurs environnements hétérogènes.
Dans la terminologie Intel ces composants sont appelés des ponts. Le pont PCI interconnecte le processeur,
la mémoire centrale et le bus PCI. Le pont PCI/ISA interconnecte le bus PCI et le bus ISA et peut piloter
directement un ou plusieurs disques IDE ainsi que les ports USB.
Ces composants – les ponts pour Intel – existent pour d’autres types d’ordinateurs.
En fait ils correspondent à une évolution de la technologie qui permet de réduire le nombre de composants
sur la carte mère. Ces composants, les Chipset, intègrent un grand nombre de fonctionnalités.
L’avantage majeur de ce type d’architecture est certainement que la bande passante du bus est bien adaptée
aux périphériques associés. Le couple processeur/mémoire dispose d’un bus privé dont la bande passante est
très élevée, le bus PCI (dont la bande passante est élevée) permet une connexion bien adaptée des disques à
hautes performances (par exemple de type SCSI ou FIREWIRE). La possibilité d’interconnexion au bus ISA
permet de satisfaire les besoins des périphériques lents (imprimantes, modems RTC). Enfin ces composants
intègrent la connexion aux ports USB que nous étudierons dans la partie concernant l’interfaçage avec les
périphériques.

5.3- Le bus AGP (Accelerated Graphics Port)


L’utilisation intensive des graphismes en 3D et de la vidéo impose des débits toujours plus importants. Une
solution est la mise en place d’un bus spécialisé pour le traitement graphique : le bus AGP. La spécification
de ce type de bus date de 1996, elle s’appuie sur la spécification du bus PCI en lui apportant des
améliorations. La principale de ces améliorations est le démultiplexage des adresses et des données sur le
bus et l’introduction du mode pipeline pour les opérations de lecture et d’écriture en mémoire.
Au début le bus AGP à 66 MHz autorisait un débit de 266 Mo/s. Avec le mode
AGP2X puis AGP4X on obtient des débits de 533 Mo/s et 1 Go/s.
5.4- Les bus d’extension
Au-delà des unités d’échanges il existe d’autres interfaces de communication avec les périphériques. On
détaillera plus particulièrement le bus USB afin de mettre en évidence les caractéristiques principales dece
type de bus et l’on donnera quelques indications techniques sur les bus SCSI et FIREWIRE.
a- Le bus série USB
Le bus PCI est très performant pour les périphériques à haut débit. Par contre dans le cas de périphériques
lents il n’est pas nécessaire d’avoir les débits que ce bus permet.
De plus avec le bus PCI on ne dispose que d’un nombre restreint de slots d’extension ce qui en limite son
utilisation. Sept compagnies (Compacq, DEC, IBM, INTEL, Microsoft, NEC, Northern Telecom) sont à la
base de la création du bus série USB (Universal Serial Bus). L’objectif est de simplifier l’interface d’accès
avec de nombreux périphériques en permettant de connecter une majorité de périphériques à un connecteur
unique en lieu et place des multiples connecteurs tels que les connecteurs séries, parallèles, souris,
microphones, etc. Seuls resteraient les connecteurs parallèles et ceux permettant le raccordement des
périphériques à hauts débits.
Le cahier des charges devait suivre un certain nombre de points : avoir un seul type de câble, avoir une
alimentation par le câble, pouvoir raccorder 127 périphériques, accepter les périphériques fonctionnant en
temps réel, garantir le Plug And Play et ne pas avoir à relancer le système d’exploitation après le branchement
à chaud d’un périphérique.

➤Les caractéristiques physiques


La figure 9.19 présente l’organisation générale du bus USB :
– la topologie du bus USB est une organisation arborescente. Un contrôleur principal (root hub) est connecté
soit au bus PCI soit, comme sur notre figure, à un pont.
Ce contrôleur comprend des connecteurs permettant le raccordement soit de connecteurs secondaires soit
directement de périphériques ;
– il existe deux types de connecteurs, les connecteurs des contrôleurs et les connecteurs pour les
périphériques. On ne peut brancher deux connecteurs de même type entre eux ;
– le câble qui supporte le bus est constitué de 4 fils. Deux fils sont dédiés au transport des données, un autre
à l’alimentation, le dernier à la masse ;
– la bande passante est de 1.5 à 12 Mbits/s. Les futures évolutions prévoient un débit 30 à 40 fois plus
important;
– on peut connecter jusqu’à 127 périphériques sur le bus USB.
➤Fonctionnement
Fonctionnellement le bus doit être considéré comme un canal permettant d’effectuer des échanges en mode
série entre le contrôleur principal et les périphériques. Chaque périphérique peut subdiviser son canal en
plusieurs sous-canaux ce qui permet pour un même périphérique de distinguer des flux d’entrées et de sorties
(par exemple pour séparer les flux d’entrées et de sorties d’un dispositif d’acquisition et de restitution du
son).
Aucune communication n’est possible directement entre deux périphériques. Elle doit impérativement passer
par le contrôleur principal. Sur chaque canal ou sous canal, les communications sont unidirectionnelles ou
bidirectionnelles. Les échanges d’informations se font au travers de trames.
b- Les bus parallèles SCSI
Le bus SCSI (Small Computer System Interface) est un bus parallèle performant permettant d’interfacer
plusieurs types différents de périphériques : disques durs, lecteur de CD-ROM, scanners… Cette interface
est commune à beaucoup d’ordinateurs, PC, Macintosh, SUN etc.
Sa vitesse de transfert varie de 4 Mo/s à 80Mo/s selon la largeur du bus et le standard SCSI utilisé. Il permet
les échanges directs entre deux périphériques sans intervention du processeur central. Comparativement aux
technologies EIDE, le bus SCSI est très onéreux et malgré ses caractéristiques et ses performances très
intéressantes, il reste plutôt réservé aux ordinateurs hauts de gamme (les serveurs plutôt que les ordinateurs
domestiques). Le tableau 9.4 résume les caractéristiques des différents standards SCSI.

c- Le bus série FIREWIRE (IEEE 1394)


Ce bus est aussi appelé bus SCSI série. Il est destiné aux périphériques rapides. Il est apparu d’abord sur les
machines Apple et a été standardisé en 1995. Il permet la connexion de périphériques en tout numériques
n’imposant plus de conversions analogique/digital. Comme dans le cas du bus USB les connexions sont de
type Plug And Play et ne nécessitent pas de redémarrage du système lors de la connexion d’un nouveau
périphérique. Les performances sont élevées, actuellement de l’ordre de 50 Mo/s soit 20 fois plus élevées
que le bus USB (des évolutions sont prévues pour augmenter les débits et atteindre 100 voire 200 Mo/s). On
peut connecter jusqu’à 63 périphériques (caméscopes, imprimantes, lecteur de DVD…). C’est un bus
asynchrone qui peut supporter des transferts isochrones, par exemple pour la vidéo.
Comme dans le cas du bus USB la mise en place de tels bus permet de diminuer considérablement les
connecteurs d’entrées-sorties.

6- Les interfaces d’accès aux périphériques


Les micro-ordinateurs sont organisés autour d’un ou plusieurs processeur(s), de circuits mémoires, d’unités
d’échanges (contrôleurs) et du bus d’interconnexion reliant ces différents composants. Une opération
d’opération d’entrées-sorties implique d’échanger des informations entre les composants internes et les
périphériques. Pour réaliser ces échanges on dispose de composants particuliers, les unités d’échanges, dont
le rôle est de piloter les périphériques. Nous abordons cette présentation en présentant les fonctionnalités des
unités d’échanges que l’on peut considérer comme traditionnelles (cartes séries, parallèles, les cartes d’accès
aux réseaux locaux.). Puis nous présentons les bus d’extension (pour la gestion des entrées-sorties) et plus
particulièrement les bus séries USB, SCSI et FIREWIRE.
6.1- Les unités d’échanges
Il y a deux manières d’atteindre un circuit de gestion d’entrées-sorties. On peut le voir du point de vue de
l’adressage, comme un composant spécifique. Il faut alors disposer d’un signal particulier que l’on dépose
sur le bus pour indiquer que l’on veut faire une opération d’entrées-sorties. L’autre manière est de décider
que les circuits d’opération d’entrées-sorties font partie de l’espace d’adressage du processeur. La figure 9.7
présente l’adressage d’une unité d’échange comme faisant partie de l’espace d’adressage du processeur.

Dans cette hypothèse on adresse une unité d’échange comme l’on adresse un banc mémoire. Une adresse est
déposée sur le bus d’adresses, une partie de cette adresse est prise en charge par un circuit de sélection
(circuit de décodage) qui permet de sélectionner un « boîtier » qui sera soit un banc mémoire soit une unité
d’échange.
La structure générale d’une unité d’échange est donnée par la figure 9.8. Il s’agit d’une structure
fonctionnelle qui n’enlève rien à la généralité du fonctionnement réel des contrôleurs. Une unité d’échange
est organisée autour de plusieurs registres. Leur nombre et leur gestion dépendent des spécificités
particulières de l’unité d’échange.
Fonctionnellement on trouve :
– un registre d’état qui permet de connaître l’état du périphérique piloté par cette unité d’échange. Chaque
état est caractérisé par une valeur numérique disponible dans le registre d’état. Par exemple une imprimante
qui n’a plus de papier émet un signal vers le contrôleur qui peut alors charger le registre d’état avec la valeur
numérique correspondant à cet état. Cette information maintenant placée dans le registre d’état est disponible
pour le processeur ;
– un registre de données. C’est au travers de ce registre que se font les échanges de données entre la mémoire
et l’unité d’échange.
Les registres sont adressables : chaque registre a une adresse. C’est exactement ce qui se passe pour la
mémoire centrale où l’on sélectionne un banc mémoire et un mot dans ce banc. Une partie du bus de
commande (figure 9.8) adresse un circuit de décodage interne à l’unité d’échange afin de sélectionner un des
registres du contrôleur. Par exemple pour réaliser une opération d’écriture sur une imprimante on pourra
exécuter la séquence :
– le processeur place l’adresse du registre d’état sur le bus d’adresses. Cette adresse est composée d’une part
de l’adresse du boîtier, d’autre part de l’adresse du registre dans le boîtier ;
– le processeur lit le registre d’état ;
– si le contenu du registre indique que l’imprimante est libre, le processeur adresse le registre de données ;
– le processeur dépose la donnée à imprimer sur le bus de données. La donnée est maintenant disponible
pour l’imprimante ;
– l’unité d’échange va positionner les signaux nécessaires déclenchant l’impression physique de la donnée
sur l’imprimante.
6.2- Les contrôleurs de disques magnétiques
Les disques de type IDE (Integrated Drive Electronic) sont directement connectés sur le pont PCI/ISA de
notre architecture de base. La structure du contrôleur de ce type de disque correspond à la structure générale
des unités d’échanges. La figure 9.16 présente les principaux signaux électriques gérés par ce type de
contrôleur. On y trouve les signaux spécifiant en particulier l’adresse d’une information disque (numéro de
cylindre, numéro de face, numéro d’unité), des signaux de commande (lecture/écriture) et des indicateurs
d’états permettant de connaître la position de la tête de lecture/écriture. Grâce à ces d’indicateurs, le pilote
peut gérer correctement les opérations d’entrées-sorties pour ce type de périphériques.
6.3- Les cartes graphiques

Les applications graphiques et multimédias utilisant de plus en plus de ressources vidéo sont pour une large
part à l’origine de l’architecture actuelle des ordinateurs que nous utilisons. La figure 9.17 nous indique les
composants principaux intervenants dans la gestion des opérations d’entrées-sorties graphiques. Le
processeur, la mémoire centrale et le contrôleur graphique sont reliés par le biais d’un chipset : le chipset
AGP.
Cette architecture permet des échanges extrêmement rapides entre ces trois composants. De plus la mémoire
centrale et la mémoire locale de la carte graphique peuvent communiquer directement. La carte graphique
est organisée autour d’une mémoire graphique et d’un processeur spécialisé dans l’affichage sur l’écran.
La figure 9.18 précise le contenu et le fonctionnement d’une carte graphique pour ce qui concerne plus
particulièrement la gestion des couleurs.
L’écran graphique se présente comme un ensemble de pixels. Chaque pixel peut s’afficher en plusieurs
couleurs. La résolution de l’écran mesure le nombre de lignes multiplié par le nombre de colonnes (un écran
d’une résolution de 1 024 par 768 affiche 768 432 pixels). La carte graphique comprend une mémoire
d’image (bitmap) composée de plusieurs plans mémoire. Le nombre de bits de chaque plan est le même que
le nombre de pixels de l’écran. Le nombre de plan permet d’associer plusieurs bits à chaque pixel; dans le
cas où nous n’aurions qu’un plan mémoire nous aurions un affichage monochrome, un pixel étant allumé ou
éteint.
Notre exemple présente une méthode d’attribution des couleurs à un pixel. Cette méthode utilise une table
de couleurs et 3 plans mémoire. Chaque pixel est codé sur 3 bits, ce qui donne 23 combinaisons différentes.
La table de couleurs a 8 entrées, chaque entrée a 9 bits, 3 pour le rouge, 3 pour le vert, 3 pour le bleu. Pour
chaque entrée on a donc 29 combinaisons différentes. Les 3 bits pour le rouge forment l’entrée d’un
convertisseur digital/analogique qui produit un faisceau électrique dont l’intensité dépend de la valeur
représentée par les 3 bits pour le rouge. On dispose également d’un convertisseur pour le vert et un pour le
bleu. Les trois faisceaux convergent sur l’écran pour allumer le pixel correspondant. La couleur du pixel
dépend de l’intensité relative des différents faisceaux rouge/vert/bleu. Notre exemple permet donc d’afficher
256 couleurs différentes (autant que d’entrées dans la table des couleurs) avec pour chaque couleur 29 teintes
différentes.
Au plan de la gestion de l’affichage, pour qu’une image soit stable, il faut afficher l’image au moins 25 fois
par seconde ce qui marque la nécessité d’un processeur spécialisé pour garantir correctement cet affichage.
Pour un écran de 1 024 ×768 pixels si la mémoire d’image dispose de trois plans (ce qui est peu aujourd’hui)
et que chaque ligne de la table des couleurs a 24 bits (ce qui est le cas le plus fréquent) le processeur doit
balayer 25 fois par seconde cette bitmap en concordance avec la table des couleurs pour afficher une image
stable.
La gestion des images animées (vidéo) implique des modifications de la bitmap, aussi au-delà de la nécessité
du processeur d’affichage on comprend l’intérêt d’un bus très rapide entre la mémoire principale et la
mémoire locale afin de garantir la fluidité des mouvements.
Chapitre 2 : LES COUPLEURS

Introduction
Ce chapitre vise à enrichir l’ordinateur minimal en offrant des moyens de communication entre l’ensemble
processeur/mémoire et le monde extérieur. Le monde extérieur peut être un autre ordinateur ou un ensemble
d’organes périphériques tels que clavier, lecteur de disquettes, imprimante, écran, capteurs, etc. Tout au long
du chapitre, nous appellerons simplement processeur, l’ensemble processeur/mémoire.
Lorsqu’il y a communication d’information du processeur en direction du monde extérieur, on parle d’une
sortie, et lorsque l’échange a lieu depuis le monde extérieur vers le processeur on parle d’une entrée.
Les coupleurs ou circuits d’entrées/sorties assurent la gestion des échanges entre le processeur et les
périphériques, et plus particulièrement gèrent la synchronisation entre ces dispositifs qui ont des vitesses de
fonctionnement différentes.

1. Notion d’entrées/sorties
Considérons une configuration simple avec deux organes périphériques : un clavier pour les entrées et un
afficheur sept segments pour les sorties.

La frappe d’une touche du clavier provoque l’envoi de signaux à un transcodeur qui fournit un codage de
cette valeur sur 7 bits (code ASCII). Cette information doit alors être traitée par le processeur. Deux types
de questions se posent : où cette information est-elle stockée ? Comment gérer le flux des caractères frappés
à un rythme complètement libre par l’utilisateur ?
Imaginons maintenant un programme qui calcule des valeurs entières sur 4 bits à délivrer à l’utilisateur,
c’est-à-dire à afficher sur l’afficheur sept segments. On peut supposer que ces valeurs sont stockées dans la
mémoire associée au processeur. Un transcodeur fabrique les signaux permettant d’allumer les bons
segments de l’afficheur afin de donner la représentation en hexadécimal de l’entier en question. Là aussi le
même type de questions se pose : comment la mémoire est-elle reliée à ce transcodeur ? A quel rythme est-
il possible (souhaitable) d’envoyer les informations ?
Que ce soit pour une entrée ou une sortie, on voit qu’il y a deux aspects à prendre en compte : la réalisation
de la connexion physique (matérielle) entre le périphérique et le processeur et la gestion de la synchronisation
des échanges. Il est ainsi nécessaire d’intercaler entre tout périphérique et le processeur un circuit de
commande que l’on appelle circuit d’entrées/sorties ou coupleur de périphérique.
2. Synchronisation entre le processeur et un périphérique
Les problèmes qui se posent ici sont inhérents à toute communication : perte d’une partie de l’information
qui doit être échangée ; répétition d’une même information déjà échangée ; …. Avant d’étudier précisément
le type de protocole qu’il est nécessaire d’appliquer, nous allons discuter du niveau auquel cette
synchronisation intervient.
2.1 A quel niveau se passe la synchronisation ?
Les échanges entre le processeur et le monde extérieur peuvent être décomposés en deux niveaux : échanges
entre processeur et périphérique et échanges entre le périphérique et le monde extérieur.
Lors de la lecture d’un caractère, le processeur dialogue avec le périphérique clavier mais au-delà du clavier
il y a un utilisateur. Cet utilisateur tape des caractères à la vitesse qui lui convient, c’est-à-dire de façon
complètement arbitraire et non contrôlable. Le système informatique doit gérer la synchronisation entre le
processeur et le périphérique car on ne peut rien contrôler entre l’utilisateur et le périphérique.
Envisageons maintenant un cas où la vitesse imposée n’est pas celle d’un utilisateur mais celle d’un organe
mécanique. Par exemple, prenons le cas d’une imprimante. Là, on connaît la vitesse à laquelle l’imprimante
peut afficher des caractères et donc assurer une synchronisation de façon à ne pas en perdre. Il peut toutefois
survenir des problèmes à des instants non prévisibles comme par exemple l’absence de papier : le problème
est en général traité au niveau du système qui gère une liste des fichiers en attente d’impression et qui
n’envoie une information à l’imprimante que si celle-ci peut la traiter.
Dans le cas général, il convient donc de tenir compte des erreurs et anomalies liées à toute interaction avec
l’environnement extérieur.
Les entrées/sorties présentent des particularités qui les distinguent des accès mémoire :
– la vitesse des processeurs et des mémoires à semiconducteurs est supérieure de plusieurs ordres de grandeur
à celle des périphériques mettant en jeu des dispositifs mécaniques. A titre d’illustration une imprimante à
impact (à marguerite, matricielle à aiguille, etc.) atteignant la dizaine de milliers de caractères imprimés à la
seconde représenterait déjà une prouesse mécanique alors que tous les processeurs récents dépassent la
centaine de millions d’instructions par seconde.
– le processeur ne peut décider seul des instants auxquels les échanges seront effectués : il ne peut par
exemple deviner à quel moment l’utilisateur va appuyer sur une touche du clavier. Au mieux, il est possible
de lisser les problèmes en imaginant des mécanismes de mémorisation permettant d’accumuler les caractères
frappés au clavier en attendant que le processeur les traite. Dans la pratique, il n’y a pas réellement de
problème car la vitesse des processeurs est nettement supérieure au temps de réaction d’un utilisateur.
2.2 Synchronisation par poignée de mains
Une entrée (ou une sortie) met en jeu deux entités : un émetteur et un récepteur. Dans le cas d’une entrée
l’émetteur est le périphérique et le récepteur est le processeur. Dans le cas d’une sortie c’est l’inverse. Il faut
mettre en œuvre un protocole d’échange qui permette au récepteur de détecter l’arrivée des informations à
consommer et assurer un contrôle de flux, autrement dit éviter que l’émetteur ne soumette des informations
plus vite que le récepteur ne peut les traiter ou que le récepteur ne traite plusieurs fois la même information.
Par exemple, considérons la sortie de caractères sur une imprimante ; le protocole d’échange doit assurer
que le processeur n’émettra pas un nouveau caractère si le précédent n’a pas encore été imprimé et que
l’imprimante n’imprime pas plusieurs fois le même caractère.
Dans le cas général, l’échange entre un processeur et un périphérique peut être régi par le protocole de
dialogue dit poignée de mains. La mise en œuvre de ce protocole réclame la gestion de signaux de
synchronisation disant si l’information à échanger est parvenue ou non au récepteur et si le récepteur a traité
ou non l’information qu’il a reçue.
Dans un programme d’entrée ou de sortie la valeur de ces signaux de synchronisation est testée et tant que
le signal attendu n’a pas la bonne valeur il faut le tester à nouveau jusqu’à ce qu’il devienne correct. On parle
d’attente active car le processeur qui exécute ce test ne peut rien faire d’autre pendant ce temps-là, il est
mobilisé pendant toute la durée du transfert.
3. Connexion d’organes périphériques
3.1 Notion de coupleur
Le circuit nécessaire à la communication entre le processeur et les périphériques s’appelle coupleur. Le
processeur perçoit le système d’entrées/sorties comme un ensemble d’emplacements mémoire reliés au
monde extérieur. Ces emplacements sont généralement appelés registres du coupleur.
Cela signifie que certaines adresses de la mémoire sont réservées à l’usage des entrées/sorties. C’est le
décodage d’adresses qui prend en compte cette nouvelle contrainte.

Les données transitant par le bus de données, il faut qu’une connexion physique soit réalisée entre le
périphérique et le bus de données via le coupleur. La figure 16.2 donne une première idée des éléments
intervenants dans cette mise en œuvre.
Pour réaliser une entrée il faut que des fils provenant de l’unité périphérique soient connectés au bus de
données via des portes trois états ou des éléments de mémorisation. Pour réaliser une sortie il faut connecter
le bus de données au périphérique via des éléments de mémorisation.
3.2 Connexion de périphériques à des éléments de mémorisation
Pour décrire les connexions physiques des fils, nous commençons par rappeler comment une cellule mémoire
est connectée au bus de données. Nous considérons une cellule de 1 bit (représenté par un verrou) connectée
au ième fil du bus de données Di. Le schéma 16.3 montre la structure du circuit d’échange d’information
entre ce bit et le processeur. AccèsMem et l/e sont les signaux de sélection et de lecture/écriture de la
mémoire.
Nous voulons maintenant faire communiquer l’ensemble processeur/mémoire avec le monde extérieur.
Considérons, par exemple, un monde extérieur très simple dans lequel le processeur doit pouvoir envoyer
(écrire) une valeur sur des lampes, ou bien récupérer (lire) une valeur sur des interrupteurs.
Reprenons le schéma 16.3 et supprimons la connexion entre la sortie Q du verrou et la porte 3 états donnant
l’accès au fil Di du bus données. Le montage crée un port d’entrée et un port de sortie reliés sur l’exemple
respectivement à un interrupteur et une lampe tel que le montre la Figure 16.4. Le montage décrit permet la
création d’une entrée élémentaire et d’une sortie élémentaire. Le port d’entrée et celui de sortie peuvent
occuper la même adresse, comme ici, ou des adresses différentes. L’écriture sur un port de sortie ou la lecture
sur un port d’entrée mettent en jeu un mécanisme de sélection d’adresse. Pour une écriture (respectivement
une lecture) sur un port de sortie (respectivement d’entrée), le décodeur d’adresses reçoit une demande
d’accès à la mémoire (AccèsMem=1) accompagnée d’une adresse correspondant à l’un des circuits consacrés
aux entrées/sorties. Il active alors le signal de sélection de ce circuit : SelCoupleur. Le coupleur doit lui-
même comporter un décodeur d’adresses. Il fabrique les signaux de commande de chargement des bascules
associées aux ports de sortie et les signaux de commande des portes 3 états associées aux ports d’entrée, à
partir de SelCoupleur, du signal l/e émis par le processeur et de l’adresse. Sur la figure 16.4, une seule cellule
mémoire est représentée ; nous n’avons donc pas tenu compte de l’adresse.

La figure 16.5 décrit l’organisation d’un coupleur à deux ports d’entrée et deux ports de sortie. Nous pouvons
y observer la place des décodeurs.
Dans la suite de ce chapitre, nous ne représenterons plus les différents décodeurs mais dessinerons le
processeur, le décodeur d’adresses et le décodeur du coupleur comme un ensemble.
4. Programmation d’une sortie
4.1 Interface simplifiée
Nous traitons l’exemple de l’impression d’un texte (suite de caractères) sur une imprimante. Le coupleur
permet de traiter trois informations :
– une donnée sur 8 bits, le caractère, qui est une sortie pour le processeur et une entrée pour l’imprimante,
– un booléen processeur prêt qui signifie qu’un nouveau caractère est disponible et doit être imprimé,
– un booléen imprimante prête, qui signifie que l’imprimante est prête à traiter un caractère. Après une
impression il indique que le caractère précédent a été imprimé.
Le coupleur est composé d’un registre de données RegD et d’un registre de commande RegC auxquels on
accède en écriture, et d’un registre d’état RegE auquel on accède en lecture. Vus du processeur RegD est à
l’adresse RD et contient la donnée, RegC est à l’adresse RC et contient un seul bit significatif : processeur
prêt ; RegE est à l’adresse RE et contient un seul bit significatif : imprimante prête.
Posons comme convention que le signal processeur prêt est actif lorsque le registre RegC vaut 1 et que le
signal imprimante prête est actif lorsque le signal RegE vaut 1.

La figure 16.6 décrit cette organisation matérielle du coupleur et d’impression d’un caractère stocké à
l’adresse car.
La boucle d’attente sur l’étiquette att-pret, correspond à l’état où le processeur attend que le récepteur soit
libre ; lorsque c’est le cas, le processeur peut lui envoyer une valeur. La boucle d’attente sur l’étiquette att-
traite correspond à l’intervalle de temps pendant lequel le processeur attend que le récepteur ait traité la
donnée envoyée. Si le processeur n’attend pas, il risque d’écraser le caractère envoyé. La remise à zéro du
registre RegC correspond à la désactivation du signal processeur prêt.
4.2 Gestion d’erreur
Dans ce paragraphe nous examinons comment prendre en compte les erreurs provenant d’un périphérique.
Nous poursuivons avec l’exemple de l’imprimante en considérant le problème de l’absence de papier :
l’imprimante ne doit plus recevoir de caractères.
Pour gérer le problème, il faut que le processeur puisse en être informé ; pour cela le registre d’état RegE va
être complété par un nouveau signal erreur papier.
Supposons que ce signal est connecté au bit 1 du bus de données (Figure 16.8).

En général, les informations contenues dans le registre d’état d’un coupleur permettent d’effectuer les tests
liés aux aspects de synchronisation de l’échange et de gérer les différents types d’erreurs liés au
fonctionnement du périphérique associé.
4.3 Interface optimisée
Nous étudions dans ce paragraphe une version optimisée du programme de sortie d’un caractère sur une
imprimante. On va chercher à réduire le nombre d’accès mémoire faits par le processeur pour réaliser le
transfert d’une donnée.
Il faudra ajouter un peu de matériel mais celui-ci n’est pas vraiment coûteux.
Nous repartons de la version de base ne traitant pas d’erreurs.
Tout d’abord, remarquons que lors d’une sortie, l’activation de processeur prêt va toujours de pair avec
l’écriture dans le registre de données. De plus, hors initialisation, sa désactivation suit toujours le front
descendant du signal imprimante prête.
Le registre de commande RegC peut être remplacé par une bascule RS mise à un par le signal d’écriture dans
le registre de données et remise à zéro par le signal imprimante prête. Lors de l’initialisation, la bascule doit
être mise à 0. La bascule remplace le registre de commande et sa sortie se substitue au signal processeur prêt
Figure 16.10).
D’autre part, pour pouvoir soumettre un nouveau caractère, il faut à la fois que l’imprimante soit prête
(imprimante prête actif) et que le précédent caractère ait été récupéré par l’imprimante, ce qui est détectable
par le fait que processeur prêt soit inactif. Si cette nouvelle double condition (transfert possible sur la figure
16.10) est testée à la place de la simple condition imprimante prête, la boucle d’attente qui suit l’émission
d’un caractère peut être supprimée. Le processeur n’a plus alors qu’à tester transfert possible et écrire le
caractère à transférer dans le registre de données. Le signal processeur prêt est automatiquement mis à jour
par la bascule. La présence de la bascule RS remplace les accès au registre de commande.
5. Programmation d’une entrée
5.1 Interface simplifiée
Nous considérons l’exemple de la lecture d’un caractère au clavier.

Le coupleur du clavier comporte trois informations : la donnée (adresse RD) et le booléen clavier prêt
(adresse RE) accessibles en lecture, et le booléen processeur prêt (adresse RC) accessible en écriture. clavier
prêt signifie qu’un caractère a été frappé sur le clavier. processeur prêt signifie que le processeur est prêt à
traiter un caractère. Après une lecture antérieure cela signifie que le caractère précédemment envoyé a été
récupéré.
5.2 Interface optimisée
L’idée consiste, comme dans le cas de la sortie, à remplacer le registre de commande par une bascule RS
(Figure 16.14) et à supprimer la boucle d’attente après la récupération du caractère lu. Pour cela, constatons
que la lecture du caractère envoyé par le clavier doit faire passer le signal processeur prêt à zéro (entrée R
de la bascule). Lorsque le signal clavier prêt devient inactif, la bascule est alors remise à 1. La bascule doit
être initialisée à 1. D’autre part, pour pouvoir lire un nouveau caractère, il faut que le clavier en ait soumis
un (clavier prêt actif) et que le processeur ne l’ait pas déjà lu (processeur prêt actif) ; cette double condition
constitue le nouveau booléen : transfert possible.
6. Optimisation des entrées/sorties groupées
Nous nous intéressons maintenant à une situation très classique consistant à enchaîner plusieurs
entrées/sorties.
Par exemple, pour effectuer la sortie des éléments d’un tableau de n caractères (zone de mémoire de n octets
consécutifs), on peut insérer le programme de sortie d’un caractère dans une boucle de parcours du tableau.
Cette solution n’est pas très efficace car pour chaque caractère, une attente va avoir lieu.
Il est possible de décharger le processeur d’une partie de ce travail en ajoutant un circuit qui s’en chargera.
Le circuit effectuant les entrées/sorties est un automate câblé dont la réalisation est peu coûteuse : un registre
contenant une adresse, un registre contenant le nombre d’éléments à transférer, un incrémenteur, un
décrémenteur et quelques bascules pour l’automate de commande.
Cette technique est appelée accès direct à la mémoire (en anglais Direct Memory Access, DMA), l’interface
accédant directement à la mémoire.
6.1 Accès direct à la mémoire et partage de bus
Cette technique permet de réaliser par matériel le transfert impliqué par une entrée ou une sortie. De plus,
elle libère le processeur pendant l’attente de la disponibilité du périphérique. Ainsi, le processeur peut
récupérer, pour effectuer des calculs, le temps qu’il utilisait précédemment à exécuter une attente active.
La réalisation de l’accès direct à la mémoire par un contrôleur indépendant du processeur pose un certain
nombre de problèmes que nous examinons ci-dessous. La figure 16.16 décrit l’organisation du dispositif.
Il faut gérer l’accès à la mémoire (adresses, données, signaux d’accès mémoire et lecture/écriture) à la fois
par le processeur et par le contrôleur d’accès direct à la mémoire (CDMA). Le principe est de connecter
alternativement les bus au processeur et au CDMA, via des amplificateurs à sortie trois états. Le CDMA
accède à la mémoire en la pilotant directement à la place du processeur, temporairement déconnecté du bus.
La gestion du bus d’adresses demande deux signaux de dialogue entre le processeur et le CDMA : une
demande de libération du bus émise par le CDMA (demande bus) et l’autorisation correspondante émise par
le processeur (libère bus).
Le processeur doit pouvoir autoriser ou non le coupleur à émettre des requêtes de transfert en direction du
CDMA. Pour cela, on utilise un booléen autorisation requête dma dans le registre de commande du coupleur.
Ce booléen est mis à jour par le processeur lorsqu’il initie un transfert.
Le coupleur doit pouvoir signaler au CDMA qu’il faut faire un transfert lorsque le périphérique est
disponible. Cette information est matérialisée par le signal requête transfert qui est un et logique entre
transfert possible (Cf. Paragraphe 4.3 et figure 16.10) et autorisation requête dma.
Le CDMA doit pouvoir accéder directement à la donnée du coupleur sans passer par le décodage d’adresses
standard. De façon plus précise, le CDMA doit pouvoir sélectionner simultanément la mémoire en lecture et
le coupleur en écriture. Ceci suppose l’ajout d’un signal acq transfert. La sélection effective du registre de
données du coupleur est alors le ou logique entre acq transfert et le signal de sélection normal (ECRS0 sur
la figure 16.10).
Remarque : Dans le cas d’une entrée, le CDMA accèdera simultanément au coupleur en lecture et à la
mémoire en écriture.
6.2- Déroulement d’une sortie avec accès direct à la mémoire
Nous pouvons maintenant décrire plus précisément le déroulement d’une sortie avec CDMA. Considérons
l’exemple de la sortie d’un tableau tab de n octets :
1. Le processeur écrit l’adresse tab et la taille n du tableau à transférer dans les registres adresse et taille du
CDMA. Ceci provoque l’initialisation du registre i (compteur d’octets transférés) du CDMA.
2. Le processeur autorise le coupleur à émettre une requête lorsqu’il est prêt : il écrit dans le registre de
commande du coupleur pour mettre le booléen autorisation requête dma à vrai.
3. Le processeur vaque à d’autres occupations.
4. Lorsque le périphérique a terminé le travail qu’il effectuait précédemment, il devient prêt et le coupleur
active le signal requête transfert.
5. Le CDMA active le signal demande bus.
6. Le processeur termine l’éventuel accès mémoire en cours et active libère bus pour indiquer que le bus est
libre. Le processeur est alors déconnecté du bus.
7. Le CDMA émet l’adresse de l’octet courant, accède à la mémoire en lecture et active simultanément acq
transfert pour écrire la donnée dans le coupleur. Pendant ce temps, l’exécution de l’instruction courante par
le processeur peut se poursuivre jusqu’à ce qu’un accès mémoire soit nécessaire.
8. Le périphérique reçoit le caractère à traiter et désactive requête transfert. Le CDMA désactive à son tour
demande bus et incrémente le registre i. Le processeur se connecte à nouveau au bus en désactivant libère
bus et poursuit son travail jusqu’au prochain transfert de caractère.
6.3 Canaux et processeurs d’entrées/sorties
L’étape suivante est celle du canal d’entrées/sorties qui s’est surtout développé dans les grands systèmes de
gestion transactionnelle connectés à de nombreux disques et terminaux.
Il s’agit d’une unité d’accès direct à la mémoire capable d’enchaîner automatiquement des transferts de blocs
dont les paramètres (adresse et taille du tableau, périphérique et sens du transfert) sont stockés en mémoire
par le processeur d’une part, et d’entrelacer des entrées et sorties avec plusieurs périphériques d’autre part.
La suite d’ordres d’entrées/sorties que le canal lit en mémoire et exécute est quelquefois appelée programme
canal.
Le canal peut être muni de la possibilité d’effectuer des itérations et d’effectuer ou non certaines
entrées/sorties selon certaines conditions. Cette extension du canal aboutit à la notion de processeur
d’entrées/sorties doté de tout un jeu d’instructions de comparaison et de branchement en plus des instructions
d’entrée et de sortie de blocs de caractères. Citons à titre d’exemple le processeur 8089 dans la famille 8086
d’intel.
A partir de là, l’évolution du système d’entrées/sorties peut emprunter plusieurs directions. On peut disposer
de (co)processeurs d’entrées/sorties dédiés chacun à un type de périphérique (processeur graphique,
processeur de signaux sonores, etc.). On peut choisir de dupliquer le processeur de calcul, l’un des deux
processeurs se substituant au processeur d’entrées/sorties. On obtient alors un multiprocesseur à mémoire
commune.
Actuellement, la plupart des terminaux graphiques sont des périphériques dits intelligents qui sont dotés
d’une certaine puissance de traitement, en particulier pour les traitements graphiques.

Vous aimerez peut-être aussi