Microprocesseur - Contrôleur DMA 8257

DMA signifie Direct Memory Access. Il est conçu par Intel pour transférer des données au rythme le plus rapide. Il permet à l'appareil de transférer les données directement vers / depuis la mémoire sans aucune interférence du CPU.

À l'aide d'un contrôleur DMA, l'appareil demande au CPU de conserver ses données, son adresse et son bus de contrôle, de sorte que l'appareil est libre de transférer des données directement vers / depuis la mémoire. Le transfert de données DMA est lancé uniquement après réception du signal HLDA de la CPU.

Comment les opérations DMA sont-elles effectuées?

Voici la séquence des opérations effectuées par un DMA -

  • Au départ, lorsqu'un appareil doit envoyer des données entre l'appareil et la mémoire, l'appareil doit envoyer une requête DMA (DRQ) au contrôleur DMA.

  • Le contrôleur DMA envoie une demande de maintien (HRQ) à la CPU et attend que la CPU confirme le HLDA.

  • Ensuite, le microprocesseur tri-états tous les bus de données, bus d'adresses et bus de contrôle. La CPU quitte le contrôle sur le bus et acquitte la demande HOLD via le signal HLDA.

  • Le CPU est maintenant à l'état HOLD et le contrôleur DMA doit gérer les opérations sur les bus entre le CPU, la mémoire et les périphériques d'E / S.

Caractéristiques du 8257

Voici une liste de quelques-unes des principales caractéristiques du 8257 -

  • Il dispose de quatre canaux qui peuvent être utilisés sur quatre périphériques d'E / S.

  • Chaque canal a une adresse 16 bits et un compteur 14 bits.

  • Chaque canal peut transférer des données jusqu'à 64 Ko.

  • Chaque canal peut être programmé indépendamment.

  • Chaque canal peut effectuer un transfert en lecture, un transfert en écriture et vérifier les opérations de transfert.

  • Il génère un signal MARK vers le périphérique indiquant que 128 octets ont été transférés.

  • Il nécessite une horloge monophasée.

  • Sa fréquence varie de 250 Hz à 3 MHz.

  • Il fonctionne en 2 modes, à savoir, Master mode et Slave mode.

8257 Architecture

L'image suivante montre l'architecture du 8257 -

8257 Description des broches

L'image suivante montre le schéma des broches d'un contrôleur DMA 8257 -

DRQ 0 −DRQ3

Ce sont les quatre entrées de demande DMA de canal individuel, qui sont utilisées par les périphériques pour utiliser les services DMA. Lorsque le mode de priorité fixe est sélectionné, alors DRQ 0 a la priorité la plus élevée et DRQ 3 a la priorité la plus basse parmi eux.

DACK o - DACK 3

Ce sont les lignes d'accusé de réception DMA actif-bas, qui mettent à jour le périphérique demandeur sur l'état de sa demande par la CPU. Ces lignes peuvent également servir de lignes stroboscopiques pour les appareils demandeurs.

D o - D 7

Ce sont des lignes de données bidirectionnelles qui sont utilisées pour interfacer le bus système avec le bus de données interne du contrôleur DMA. En mode Esclave, il porte les mots de commande à 8257 et le mot d'état à 8257. En mode maître, ces lignes sont utilisées pour envoyer l'octet supérieur de l'adresse générée à la bascule. Cette adresse est en outre verrouillée à l'aide du signal ADSTB.

IOR

Il s'agit d'une ligne d'entrée à trois états bidirectionnelle active-low, qui est utilisée par la CPU pour lire les registres internes de 8257 en mode esclave. En mode maître, il est utilisé pour lire les données des périphériques pendant un cycle d'écriture mémoire.

IOW

Il s'agit d'une ligne active à trois états bidirectionnelle basse, qui est utilisée pour charger le contenu du bus de données dans le registre de mode 8 bits ou l'octet supérieur / inférieur d'un registre d'adresse DMA 16 bits ou d'un registre de comptage de terminaux. En mode maître, il est utilisé pour charger les données sur les périphériques pendant le cycle de lecture de la mémoire DMA.

CLK

Il s'agit d'un signal de fréquence d'horloge nécessaire au fonctionnement interne du 8257.

RÉINITIALISER

Ce signal est utilisé pour RÉINITIALISER le contrôleur DMA en désactivant tous les canaux DMA.

A o - A 3

Ce sont les quatre lignes d'adresse les moins significatives. En mode esclave, ils agissent comme une entrée, qui sélectionne l'un des registres à lire ou à écrire. En mode maître, ce sont les quatre lignes de sortie d'adresse mémoire les moins significatives générées par 8257.

CS

Il s'agit d'une ligne de sélection de puce active-low. En mode esclave, il active les opérations de lecture / écriture vers / depuis 8257. En mode maître, il désactive les opérations de lecture / écriture vers / depuis 8257.

A 4 - A 7

Il s'agit du quartet le plus élevé de l'adresse d'octet inférieur généré par DMA en mode maître.

PRÊT

Il s'agit d'un signal d'entrée asynchrone actif-haut, qui prépare le DMA en insérant des états d'attente.

HRQ

Ce signal est utilisé pour recevoir le signal de demande de maintien du périphérique de sortie. En mode esclave, il est connecté à une ligne d'entrée DRQ 8257. En mode maître, il est connecté à l'entrée HOLD de la CPU.

HLDA

C'est le signal d'acquittement de maintien qui indique au contrôleur DMA que le bus a été accordé au périphérique demandeur par la CPU lorsqu'il est mis à 1.

MEMR

C'est le signal de lecture de mémoire faible, qui est utilisé pour lire les données à partir des emplacements de mémoire adressés pendant les cycles de lecture DMA.

MEMW

C'est le signal à trois états actif-bas qui est utilisé pour écrire les données dans l'emplacement de mémoire adressé pendant l'opération d'écriture DMA.

ADST

Ce signal est utilisé pour convertir l'octet supérieur de l'adresse mémoire générée par le contrôleur DMA en verrous.

AEN

Ce signal est utilisé pour désactiver le bus d'adresse / bus de données.

TC

Il signifie «Terminal Count», qui indique le cycle DMA actuel vers les périphériques actuels.

MARQUE

La marque sera activée après chaque 128 cycles ou des multiples entiers de celui-ci depuis le début. Il indique que le cycle DMA actuel est le 128e cycle depuis la sortie MARK précédente vers le périphérique sélectionné.

V cc

C'est le signal de puissance qui est nécessaire au fonctionnement du circuit.