Accès direct à la mémoire

Transcription

Accès direct à la mémoire
GEI 437 Laboratoire d ’interfaces et microprocesseurs
Accès direct à la mémoire
Principe du DMA
Exemples
mercredi 28 mars 2001
Philippe Mabilleau Ing.
2
GEI 437 Laboratoire d ’interfaces et microprocesseurs
Accès direct à la mémoire
• L’accès direct à la mémoire (Direct
Memory Access DMA) est une
technique matérielle facilitant les
opérations d’entrée-sortie, c’est-à-dire
les échanges de données entre le
microcontrôleur, ou le microprocesseur,
et le monde extérieur
Philippe Mabilleau Ing.
3
GEI 437 Laboratoire d ’interfaces et microprocesseurs
Opérations d ’entrée-sortie
• Circuits périphériques adressés
– dans l ’espace mémoire (Memory Mapped)
– dans un espace d ’entrée-sortie (I/O
Mapped)
• Utilisations de cycles de lecture ou
d ’écriture sur le bus du microcontrôleur
– opérations programmées (Programmed
I/O)
• Intervention du CPU requise pour
chaque opération
Philippe Mabilleau Ing.
4
GEI 437 Laboratoire d ’interfaces et microprocesseurs
Principe du DMA
• Des données vont pouvoir être
échangées entre la mémoire centrale et
les circuits périphériques sans
intervention du CPU
• Un sous-système indépendant du CPU
va transférer les données du circuit
périphérique vers la mémoire (entrée)
ou de la mémoire vers le circuit
périphérique (sortie)
Philippe Mabilleau Ing.
5
GEI 437 Laboratoire d ’interfaces et microprocesseurs
Fonctionnement du DMA
• Le sous-système de DMA va être
configuré et démarré par le CPU
• Les données vont être échangées via
des cycles de lecture ou d ’écriture en
mémoire initiés par le sous-système de
DMA
• Lorsque les opérations seront terminées
le sous-système de DMA va interrompre
le CPU
Philippe Mabilleau Ing.
6
GEI 437 Laboratoire d ’interfaces et microprocesseurs
Sous-système de DMA
• Le sous-système de DMA comporte
– un registre d ’adresse qui va contenir
l ’adresse où les données doivent être
placées ou lues en mémoire
• ce registre pourra être incrémenté ou
décrémenté à chaque transfert
– un compteur qui compte le nombre de
données échangées
– un registre où les données vont transiter
entre la mémoire et le circuit périphérique
• ce registre n ’est pas toujours présent
Philippe Mabilleau Ing.
7
GEI 437 Laboratoire d ’interfaces et microprocesseurs
Mécanismes des échanges
DMA
Mémoire
Compteur
Adresse
Donnée
Philippe Mabilleau Ing.
Circuit
d'interface
Donnée
8
GEI 437 Laboratoire d ’interfaces et microprocesseurs
Transfert à une adresse
Les données ne transitent pas
par le sous-système de DMA
Lecture
Philippe Mabilleau Ing.
Écriture
9
GEI 437 Laboratoire d ’interfaces et microprocesseurs
Transfert à deux adresses
Les données transitent
par le sous-système de DMA
Une lecture en mémoire
est réalisée par
le sous-système de DMA
suivie d ’une écriture
Philippe Mabilleau Ing.
10
GEI 437 Laboratoire d ’interfaces et microprocesseurs
Mode d ’accès à la mémoire
• Le sous-système de DMA doit accéder
à la mémoire comme le CPU
• Pour faire ces accès il prend le contrôle
du bus
– utilisation des mécanismes d ’arbitration du
bus
• signaux BR, BG, BGACK du 68000
• Le sous-système de DMA « vole » des
cycles du bus au CPU
– incidence sur la performance du CPU
Philippe Mabilleau Ing.
11
GEI 437 Laboratoire d ’interfaces et microprocesseurs
Types de transferts
• Deux types de transferts possibles pour
accéder à la mémoire
– cycle par cycle (Cycle Steal)
– groupés (Burst)
• Les transferts peuvent impliquer une ou
deux adresses
Philippe Mabilleau Ing.
12
GEI 437 Laboratoire d ’interfaces et microprocesseurs
Mode cycle par cycle
• Cycle Steal ou par vol de cycle
– prolongement du cycle sur certaines
architectures
• Une donnée est échangée à la fois
• À la demande du circuit d'interface
– mécanisme asynchrone
• Utilisé pour des transferts distribués
dans le temps
Philippe Mabilleau Ing.
13
GEI 437 Laboratoire d ’interfaces et microprocesseurs
Mode groupé
• Burst ou mode continu
• Les données sont échangées par bloc
• Une portion de la bande passante du
bus d'accès à la mémoire est utilisée
pour les transferts DMA
– paramètre du sous-système de DMA
• Utilisé pour des accès à haute vitesse
– débits voisins du débit maximum du bus
– Incidence potentielle importante sur la
performance du CPU
Philippe Mabilleau Ing.
14
GEI 437 Laboratoire d ’interfaces et microprocesseurs
Exemple : 68340
Microcontrôleur avec
sous-système de DMA intégré
Philippe Mabilleau Ing.
15
GEI 437 Laboratoire d ’interfaces et microprocesseurs
Sous-système de DMA
2 sous-systèmes de DMA
Interfaces esclave et maître avec le bus
Philippe Mabilleau Ing.
16
GEI 437 Laboratoire d ’interfaces et microprocesseurs
Signaux d'interface
• DREQx Requête de DMA
• utilisé par le circuit périphérique pour
demander un transfert de donnée
• transition active en mode cycle par cycle;
niveau actif en mode groupé
• DACKx Acquiescement
• réponse du sous-système de DMA pour activer
le transfert
• DONEx Accès terminé
• indique le dernier transfert d'une opération de
DMA
Philippe Mabilleau Ing.
17
GEI 437 Laboratoire d ’interfaces et microprocesseurs
Exemple d'interconnexion
• Avec un port série asynchrone interne
du 68340
• Utilisation du mode à deux adresses
avec les registres de données du port
série
Philippe Mabilleau Ing.
18
GEI 437 Laboratoire d ’interfaces et microprocesseurs
Exemple de cycle
Lecture
en mode « Burst »
une adresse
Philippe Mabilleau Ing.
19
GEI 437 Laboratoire d ’interfaces et microprocesseurs
Écriture par « vol de cycle »
Philippe Mabilleau Ing.
20
GEI 437 Laboratoire d ’interfaces et microprocesseurs
Modèle de programmation
Philippe Mabilleau Ing.
21
GEI 437 Laboratoire d ’interfaces et microprocesseurs
Registres de contrôle
Type de requête
Bande passante utilisée
par le DMA
Philippe Mabilleau Ing.
22
GEI 437 Laboratoire d ’interfaces et microprocesseurs
Description des champs
• INTx Contrôle des interruptions
• ECO - External Control Option
• Single-Address Mode - direction du transfert
(lecture ou écriture)
• Dual-Address Mode - détermine dans quelle
phase le DMA intervient (lecture ou écriture)
• SAPI - contrôle de l ’incrément du
pointeur source
• DAPI - contrôle de l ’incrément du
pointeur destination
Philippe Mabilleau Ing.
23
GEI 437 Laboratoire d ’interfaces et microprocesseurs
Description des champs
• SSIZE - taille des données sources
– long mot, mot ou octet
• DSIZE - taille des données destination
• S/D - mode à une ou deux adresses
• STR - démarrage et arrêt du DMA
– permet le démarrage si requête externe
Philippe Mabilleau Ing.
24
GEI 437 Laboratoire d ’interfaces et microprocesseurs
Registre d ’état du DMA
IRQ = fin des transferts
DONE = fin sans erreur
BES = erreur bus à la source
BED = erreur bus à la destination
CONF = erreur de configuration
BRKP = point d ’arrêt rencontré
Philippe Mabilleau Ing.
25
GEI 437 Laboratoire d ’interfaces et microprocesseurs
Interruption et DMA
• Interruptions
– transferts asynchrones
– pas d ’attente active du CPU
– mais implication du CPU à chaque
transfert de donnée
• DMA
– pas d ’intervention du CPU pendant les
transferts
– interruption du CPU à la fin des transferts
• blocs de données
Philippe Mabilleau Ing.