• Aucun résultat trouvé

L’acc`es direct ` a la m´emoire

Dans le document ARCHITECTUREDES ORDINATEURS (Page 126-133)

6.3 Les mode d’´echange

6.3.2 L’acc`es direct ` a la m´emoire

L’acc`es direct `a la m´emoire (ADM) (DMAouDirect Memory Access) consiste

`a donner `a une unit´e d’´echange la possibilit´e d’aller lire ou ´ecrire directement dans la m´emoire sans passer par le processeur. Cette m´ethode permet :

− de soulager le processeur de ce travail de transfert,

− ´eventuellement, de remplacer le processeur dans le cas o`u celui-ci n’est pas assez rapide pour effectuer le transfert processeur - unit´e d’´echange entre deux transferts unit´e d’´echange↔unit´e p´eriph´erique. . .

Principe

Le contrˆoleur d’ADM s’intercale entre le processeur et le contrˆoleur de l’unit´e p´eriph´erique (figure 6.24).

Contrôleur d'ADM

Contrôleur d'U.P.

Processeur

Unité périphérique Bus de données / Adresses / Contrôle

Signalisation

Mémoire

Figure6.24 : Principe du contrˆoleur d’ADM

Il dispose d’un compteur de mots transmis, d’un registre d’adresse qui peut ˆetre incr´ement´e ou d´ecr´ement´e `a chaque transfert, et de registres de contrˆole d’´echange qui sont initialis´es `a partir du processeur avant lancement de l’´echange (figure 6.25).

Logique de contrôle

Compteur

Registre d'état Registre d'adresse

Figure6.25 : Contrˆoleur d’ADM

Comme cela a d´ej`a ´et´e ´evoqu´e, il peut y avoir unconflit d’acc`es aux bus d’adresses, de donn´ees et de contrˆole (figure 6.26). Lorsque le contrˆoleur d’ADM acc`ede `a la m´emoire, le processeur doit s’abstenir de le faire.

Bus

Mémoire Processeur Unité

d'ADM

Figure6.26 : Conflit d’acc`es

Protocole d’´echange

Lorsque le contrˆoleur d’unit´e p´eriph´erique dispose d’une donn´ee (figure 6.27) : 1. il transmet au contrˆoleur d’ADM une demande (DREQ ou DMA

Re-quest) ;

2. le contrˆoleur d’ADM r´epercute cette demande vers le processeur (HRQ ouHold Request) ;

3. apr`es acquittement de cette demande (acknowledge), le processeur voit ses tampons de bus positionn´es `a l’´etat haute imp´edance ;

4. le contrˆoleur d’ADM peut prendre le contrˆole des bus. Il envoie un accord (DMA Grant) vers l’unit´e d’´echange, accord qui tient lieu de signal de s´election (Chip Select).

Le contrˆoleur dispose d’une entr´ee READY permettant d’ins´erer, comme le fait le processeur, des cycles d’attente si les temps d’acc`es `a la m´emoire sont trop longs.

DREQ HRQ

Unité

d'échange Contrôleur Processeur

d'ADM

Acknowledge Grant

(1) (2)

(3) (4)

Figure6.27 : Protocole ADM

Exemple 6.2 (Cycle de transfert “p´eriph´erique vers m´emoire”) L’exemple qui suit s’inspire du fonctionnement du contrˆoleur I8237A d’ADM de Intel. On va consid´erer ici deux cycles de transfert entre p´eriph´erique (ou plutˆot unit´e d’´echange) et m´emoire en d´etaillant les diff´erentes phases mises en jeu.

1. figure 6.28: initialisation du contrˆoleur ADM (param`etres et adresse de transfert, initialisation du compteur de mots. . . ) et lancement de la commande de transfert sur l’unit´e d’´echange.

2. figure6.29: l’unit´e d’´echange ´emet une demande d’acc`es DREQ.

3. figure 6.30: le contrˆoleur d’ADM r´epercute cette demande vers le pro-cesseur (HRQ pour Hold Request). Ceci correspond `a une demande de prise de contrˆole des bus.

IOW

Figure6.28 : Protocole ADM : initialisations

MEMR

Figure6.29 : Protocole ADM : DREQ

4. figure6.31: lorsque le processeur a lib´er´e le contrˆole des bus, il ´emet vers le contrˆoleur d’ADM un HLDA (Hold Acknowledge).

5. figure 6.32: la ligne AEN permet de contrˆoler l’acc`es au bus d’autres unit´es d’´echange pr´esentes sur le syst`eme. Ce cycle est le premier cycle de travail effectif en ADM.

MEMR

Figure6.30 : Protocole ADM : HRQ

DREQ DACK HRQ

AEN HLDA

A0-A15 A4-A15

D0-D7 A0-A3

Figure6.31 : Protocole ADM S1 DREQ

DACK HRQ

AEN HLDA

A0-A15 A4-A15

D0-D7 A0-A3

Figure6.32 : Protocole ADM

6. Figure 6.33: le transfert d’une donn´ee occupe trois cycles d’horloge nomm´es S2, S3 et S4. Le contrˆoleur d’ADM ´emet une adresse et les signaux de lecture/´ecriture n´ecessaires (ici on a lecture sur le contrˆoleur de p´eriph´erique et ´ecriture sur la m´emoire).

S2-S3-S4 DREQ

DACK HRQ

AEN HLDA

A0-A15 A4-A15

D0-D7 A0-A3

Figure6.33 : Protocole ADM

7. Figure 6.34:transfert d’une seconde donn´ee (cycles S2, S3 et S4) et fin

de transfert (EOP pour End Of Operation).

DREQ DACK HRQ

AEN HLDA

A0-A15 A4-A15

D0-D7

A0-A3 S2-S3-S4

EOP EOP

Figure6.34 : Protocole ADM

8. Figure 6.35: l’EOP est trait´e parfin d’´emission du HRQ.

DREQ DACK HRQ

AEN HLDA

A0-A15 A4-A15

D0-D7 A0-A3

Figure6.35 : Protocole ADM 9. Figure 6.36: le contrˆole est redonn´e au processeur.

DREQ DACK HRQ

AEN HLDA

A0-A15 A4-A15

D0-D7 A0-A3

Figure6.36 : Protocole ADM

Le contrˆoleur d’ADM peut fonctionner selon plusieurs modes de transfert : les trois modes d´ecrits ci-apr`es sont inspir´es du fonctionnement du I8237 d’Intel.

Le mode “bloqu´e” (halt burst mode)

Ce mode de fonctionnement consiste `a maintenir le contrˆoleur d’ADM actif pendant toute la dur´ee du transfert. DREQ n’a besoin d’ˆetre maintenu actif que jusqu’`a ce que l’acquittement DACK soit re¸cu. Le contrˆoleur d’ADM ne rend le contrˆole que lorsque le compteur de mots transmis passe de 0 `a FFFF16. Ce mode autorise des taux de transfert ´elev´es au prix de la suspension totale de l’activit´e du processeur. En pratique, ce n’est pas tout-`a-fait vrai.

Le processeur n’a plus acc`es aux bus mais peut continuer `a travailler sur les m´emoires caches dont il dispose (chapitre8).

Certains contrˆoleurs permettent de red´emarrer automatiquement un cycle de transfert sans intervention du processeur (Auto-initialize Mode).

Le mode de transfert “mot par mot”

Dans ce mode de transfert ADM, le contrˆole est rendu au processeur entre chaque transfert. Mˆeme si DREQ est maintenu actif, HRQ retombe pour laisser le contrˆole au processeur au moins pendant un cycle (cas du I8237 de Intel en modeSingle Transfer Mode).

Le mode de transfert “`a la demande”

Dans ce mode de transfert ADM, le transfert a lieu, soit jusqu’`a ce que le comp-teur passe de 0 `a FFFF16, soit jusqu’`a ce que DREQ retombe (le contrˆoleur de p´eriph´erique a ´epuis´e les donn´ees `a transmettre (cas du I8237 de Intel en modeDemand Transfer Mode). Entre les transferts le processeur peut repren-dre le contrˆole, les contenus des registres d’adresse et des compteurs ´etant automatiquement sauvegard´es. Ce mode de transfert est bien adapt´e au cas de transferts lents ou de d´ebit tr`es irr´egulier.

Exemple 6.3 Les PC-AT pouvaient utiliser, pour leurs ´echanges avec les p´eri-ph´eriques, le mode d’acc`es direct `a la m´emoire. Les PC-AT disposaient de deux contrˆoleursDMAmis en cascade selon le sch´ema6.37.

Chaque contrˆoleur g`ere quatre canaux d’´echange : cela signifie qu’il dispose de quatre ensembles “registre d’adresse+compteur”. Sur le PC-AT, les canaux

´etaient num´erot´es de 0 `a 7 :

− canal 0 pour le rafraˆıchissement m´emoire,

− canal 1 utilisable pour les cartes d’extension,

− canal 2 r´eserv´e au contrˆoleur de disques souples,

A1–A16 A0–A15

Figure6.37 : Canaux DMA

− canal 3 r´eserv´e pour le disque dur,

− canal 4 r´eserv´e pour la mise en cascade des deux contrˆoleurs,

− canaux 5 `a 7 disponibles.

Les adresses engendr´ees par les contrˆoleurs sont sur 16 bits. Cela explique la pr´esence de deux jeux de 4 registres pour disposer du compl´ement n´ecessaire

`

a l’adressage sur 20 lignes (PC) ou 24 lignes (AT) : ils sont appel´es lesregistres de page. Le contrˆoleur peut fonctionner en mode de transfert octets en mode Demand Tranfer Mode.

Dans le document ARCHITECTUREDES ORDINATEURS (Page 126-133)