Embed
Email

DMA

Document Sample
DMA
Shared by: HC111204161715
Categories
Tags
Stats
views:
0
posted:
12/4/2011
language:
French
pages:
58
DMA





Direct Memory Access



Accès Direct en Mémoire



rene.beuchat@epfl.ch

rene.beuchat@eig.unige.ch









RB - 2003/2007 1

Plan



 Problème

 Architecture d'un Système informatique

minimum

 Scrutation / Interruption

 DMA

 Types de transferts

 Mémoire dual-port

 Contrôleur DMA

RB - 2003/2007 2

Problème



 Dans un système informatique, l'accès

au périphériques (interfaces

programmables) peut être réalisé par le

processeur à travers des instructions de

transferts

 Des registres de statuts permettent au

processeur de déterminer si des

données peuvent être transférées et

l'état des transferts (erreurs)



RB - 2003/2007 3

Problème (2)



 Par scrutation de registres de status, le

processeur synchronise les transferts

 Wait (status_transfert == OK )

 Effectue le transfert



Ou





 If (status_transfert == OK )

 Effectue le transfert



 EndIf



RB - 2003/2007 4

Scrutation









RB - 2003/2007 5

Scrutation



 Avec la scrutation le système est

synchrone, le programme contrôle

exactement lorsqu'il peut accéder à une

ressource

 Inconvénient, le programme doit

souvent tester les statuts pour rien, et

suffisamment souvent pour ne pas rater

de données



RB - 2003/2007 6

Interruption



 Pour que le processeur ne perde pas de

temps à scruter inutilement des

interfaces, les interruptions matérielles

permettent de ne monopoliser le

processeur que lorsqu'un service est à

effectuer

 La synchronisation avec le

consommateur/producteur d'information

est à traiter par logiciel (message,

sémaphore, FIFO, etc…)

RB - 2003/2007 7

Interruption









RB - 2003/2007 8

Interruption



 Les interruptions mettent en œuvre du

matériel spécialisé et dépendent du

processeur utilisé (vecteur, type d'accès

à la routine de traitement, etc…)

 De nombreuses instructions sont

souvent nécessaires pour le traitement

de l'interruption (sauvetage de contexte,

test de la requête, transfert I/O-mémoire,

interrupt handler, …)

 bande passante limitée

RB - 2003/2007 9

DMA



 Pour des systèmes où le taux de

transfert entre les I/O et la mémoire est

élevé, la scrutation ou les interruptions

sont inutilisables

 Un système plus performant est

nécessaire  DMA

 Le transfert est effectué par une unité

spécialisée : le contrôleur DMA



RB - 2003/2007 10

DMA









RB - 2003/2007 11

DMA



 Le contrôleur DMA effectue les transferts à la

place du processeur

 Il doit donc avoir le contrôle des bus :

 d'adresses

 de données

 de contrôle de transferts

 Avant d'effectuer le transfert un arbitrage doit

avoir lieu:

 Un seul maître peut accéder une unité esclave à un

instant donné

RB - 2003/2007 12

Contrôleur DMA : un interface

programmable









RB - 2003/2007 13

Contrôleur DMA : un interface

programmable (2)



 Le contrôleur DMA est un interface

programmable qu'il faut programmer par

le processeur avant qu'il ne soit

opérationnel



 Exemple de transfert double cycle

I/O  mémoire





RB - 2003/2007 14

DMA : transfert I/O  mémoire









Requête de transfert

RB - 2003/2007 15

DMA : transfert I/O  mémoire









Demande du bus au processeur

RB - 2003/2007 16

DMA : transfert I/O  mémoire









Transfert IP  Ctrl DMA

RB - 2003/2007 17

DMA : transfert I/O  mémoire









Transfert Ctrl DMA  Mémoire

RB - 2003/2007 18

DMA : transfert I/O  mémoire









Interruption de fin de transfert(s)

RB - 2003/2007 19

DMA fin de transfert(s)



 Lorsqu'un paquet de données a été

transféré, le processeur est averti par

interruption ou il peut utiliser la

scrutation d'un registre de statuts

 Pour que le DMA soit utile, il faut qu'une

certaine quantité de données soit

transférées





RB - 2003/2007 20

Transfert simple cycle



 Pour une plus grande efficacité de

transfert, l'accès intermédiaire par le

contrôleur n'est pas forcément

nécessaire

 Un accès direct I/O  mémoire est

possible







RB - 2003/2007 21

DMA, simple cycle









RB - 2003/2007 22

Simple cycle



 Problème de taille des bus de données

 mémoire

 Les données mises en mémoire doivent

pouvoir être accédées ensuite par le

processeur à des adresses contiguës. Si

l'interface programmable source est de

largeur de bus np_dma_control = 0;



RB - 2003/2007 54

suite



// | 2. Set up everything except the go-bar



dma->np_dma_status = 0;

dma->np_dma_read_address = (int)source_address;

dma->np_dma_write_address = (int)destination_address;

dma->np_dma_length = transfer_count * bytes_per_transfer;









RB - 2003/2007 55

// | 3. construct the control word...

control_bits =

mode // wcon, rcon bits

| (bytes_per_transfer & 7) // low three bits of control reg

| ((bytes_per_transfer & 8) ? np_dma_control_doubleword_mask : 0)

| ((bytes_per_transfer & 16) ? np_dma_control_quadword_mask : 0)

| np_dma_control_le_en_mask // enable length (else runs forever)

| np_dma_control_go_mask; // and... go!



dma->np_dma_control = control_bits;







RB - 2003/2007 56

Suite et fin



// | 4. Wait til it's all done !! Polling !!



while((dma->np_dma_status &

np_dma_status_busy_mask) != 0)

;

return;

}



RB - 2003/2007 57

 Question ?









RB - 2003/2007 58


Related docs
Other docs by HC111204161715
Debriefing Worksheet
Views: 0  |  Downloads: 0
CAP�TULO VI
Views: 3  |  Downloads: 0
Sheet1
Views: 0  |  Downloads: 0
????
Views: 393  |  Downloads: 0
Sapelkin S V
Views: 1  |  Downloads: 0
??? �?????????? ????????? ...
Views: 8  |  Downloads: 0
SQL Results
Views: 14  |  Downloads: 0
Registration Is Now Open for
Views: 0  |  Downloads: 0
By registering with docstoc.com you agree to our
privacy policy

You are almost ready to download!

You are almost ready to download!