• Aucun résultat trouvé

Constitution et adressage des unit´es d’´echange

Dans le document ARCHITECTUREDES ORDINATEURS (Page 122-125)

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) ...

Dans le document ARCHITECTUREDES ORDINATEURS (Page 122-125)