6.2.1 Constitution des unit´ es d’´ echange
Dans le cas de la r´eception s´erie trait´e en exemple, lorsque l’unit´e d’´echange a termin´e de “d´e-s´erialiser” un mot, elle doit pouvoir indiquer au processeur qu’un mot est disponible (le processeur peut alors venir le lire). Dans le cas de l’´emission, l’unit´e d’´echange doit aussi pouvoir informer le processeur qu’elle est prˆete `a recevoir un nouveau mot pour ensuite l’´emettre.
Dans les deux cas l’unit´e d’´echange doit aussi pouvoir indiquer si l’´echange s’est correctement d´eroul´e. Toutes ces informations peuvent ˆetre rassembl´ees dans un registre ditregistre d’´etatdont chacun des bits poss`ede une signification bien pr´ecise telle que “transmetteur prˆet”, “r´ecepteur prˆet”, “erreur de parit´e”, etc.
L’unit´e d’´echange doit disposer d’un ou plusieursregistres de donn´ees dans lesquels le processeur viendra ´ecrire ou lire les donn´ees ´echang´ees.
Comme l’unit´e d’´echange offre g´en´eralement plusieurs services r´epondant chacun `a une commande, elle disposera en plus :
− d’unregistre de commandesdans lequel le processeur viendra ´ecrire pour d´ecrire le travail `a effectuer : initialisation de l’unit´e d’´echange, choix et lancement d’une tˆache, etc.
− de registres de param`etres servant `a fournir les param`etres descriptifs
de la tˆache : num´eros de piste et de secteur sur un disque, vitesse de transmission, adresses de transfert en m´emoire, nombre de bits de stop, etc.
Toutes ces composantes peuvent ˆetre repr´esent´ees selon le sch´ema 6.20. Commande
Etat Paramètres
Données
Logique de contrôle
Adresses Données Contrôle
Figure6.20 : Constitution de l’unit´e d’´echange
Une unit´e d’´echange peut donc ˆetre consid´er´ee comme un processeur sp´ecialis´e dont le registre instruction serait constitu´e du seul registre de commande. La diff´erence r´eside dans le fait que l’unit´e d’´echange ne va g´en´eralement pas chercher ses commandes en m´emoire de mani`ere autonome.
Elle les re¸coit sous contrˆole du processeur. On parle alors d’unit´e esclave.
La complexit´e des unit´es d’´echange est extrˆemement variable. Dans le pre-mier exemple trait´e (adaptation mat´erielle), nous avons affaire `a une simple in-terface. Dans le second, on parle decontrˆoleur s´erie. Beaucoup plus complexes sont les processeurs d’entr´ee-sortie (cf. le programme canal d’IBM) capables d’ex´ecuter des tˆaches telles que le pr´e-traitement de donn´ees ´echang´ees ou la prise en charge compl`ete du protocole d’´echange (handshake). Ce sont souvent des ordinateurs que l’on r´eserve `a ce type de travail.
6.2.2 Adressage des unit´ es d’´ echange
Comme les cases m´emoire, les registres des unit´es d’´echange sont identifi´es par leur adresse. On peut consid´erer que ces adresses sont des ´el´ements de l’ensemble des adresses m´emoire ou bien qu’elles constituent un ensemble dis-tinct. On parlera respectivement d’espace d’adressage unique ous´epar´e.
Espace d’adressage unique
Les registres de l’unit´e d’´echange sont g´er´es comme des cellules m´emoire. Le processeur envoie des commandes, des param`etres ou des donn´ees `a l’unit´e d’´echange en ´ecrivant dans les registres de cette derni`ere `a l’aide d’instructions d’´ecriture en m´emoire. De la mˆeme fa¸con, la lecture de donn´ees ou du registre d’´etat se fait par des op´erations de lecture en m´emoire (figure6.21).
Ainsi, le rangement de la valeur 7 dans le registre de donn´ees d’une unit´e d’´echange d’adresse 10 peut se faire de la fa¸con suivante :
Espace des entrées/sorties
Espace mémoire
Espace mémoire
lecture Ecriture
Bus de contrôle Bus d'adresses
Figure6.21 : Espace commun m´emoire et entr´ees/sorties
...
MOV #10,R0 ; on initialise R0 a 10
MOV #7,@R0 ; on ecrit le chiffre 7 a l’adresse 10 ...
Pour ´eviter tout probl`eme deconflit d’acc`es, il faut ´evidemment qu’il n’y ait pas de m´emoire install´ee aux adresses pr´evues pour les registres des unit´es d’´echange.
Espaces d’adressage s´epar´es
Dans le cas de l’espaces d’adressage s´epar´e, on dote la machine d’instructions sp´eciales d’entr´ees-sorties. Les bus d’adresses et de donn´ees sont les mˆemes.
La distincion se fait par les lignes de commandes qui sont distinctes sur le bus de contrˆole (figure6.22).
lecture/écriture en mémoire
lecture/écriture des E/S
Bus d'adresses Espace
mémoire
Espace des
entrées-sorties Bus de
données Bus de
contrôle
Figure6.22 : Espaces m´emoire et entr´ees/sorties s´epar´es
Exemple 6.1 : Sur le micro-ordinateur personnel IBM/PC, on retrouve les deux principes pr´ec´edents :
− les registres des unit´es d’´echange sont dans un espace m´emoire s´epar´e accessible `a partir d’instructions d’entr´ees/sorties (IN, OUT, OUTSB, OUTSW. . . ). La taille de cet espace est th´eoriquement de 64 kilo-octets (en pratique seuls les dix bits de poids faible de l’adresse ´etaient d´ecod´es).
− par contre l’espace r´eserv´e pour l’´ecran vid´eo se trouve dans l’espace m´emoire. Dans le cas de l’affichage en modeM.D.A.(monochrome display adapter), cet espace occupe 4 kilo-octets `a partir de l’adresse physique B000016(pour un espace m´emoire total de 1 m´ega-octet). Pour visualiser un caract`ere `a l’´ecran, il suffit d’´ecrire dans la zone m´emoire qui lui est attribu´ee. Le contrˆoleur vid´eo vient lire le contenu de cette zone et engendre le signal qui servira `a afficher l’image ´ecran correspondante.
Le programme suivant ´ecrit sur l’´ecran le caract`ere “A” en ligne 2, colonne 48 : ...
MOV bx,0B000H ; on initialise bx a B000 (hexa)
MOV ds,bx ; registre ds := bx
MOV bx,100H
MOV byte ptr[bx],41 ; on ecrit A (code 41 hexa) a l’adresse
; bx+10H*ds = 0B0100H
; (voir chapitre sur la memoire) ...