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.