Académique Documents
Professionnel Documents
Culture Documents
INFORME DE
EXPOSICIÓN
DMA EN LA PC XT
INTEGRANTES:
Arrieta Andrés.
Piedra Oscar.
Reinoso Jonathan.
OBJETIVOS:
INTRODUCCIÓN
USO DE DMA EN LA PC XT
El chip 8237 tiene cuatro canales dos de los cuales son usados por la PC
XT.
• Canal 0 realiza el refresco a una memoria dinámica.
• Canal 2 transfiere datos entre memoria y la interface de disco
flexible.
• Los canales 1 y 3 están disponibles en el bus del sistema y pueden
ser usados por las interfaces.
Direcciones de 0->7
REGISTROS
Direc WRITE READ
I/O
0 Dirección Base Dirección Canal
v Corriente Corriente 0
1 Contador Base Contador Canal
v Corriente Corriente 0
2 Dirección Base Dirección Canal
y Corriente Comente 1
3 Contador Base Contador Canal
y Corriente Corriente 1
4 Dirección Base Dirección Canal
y Corriente Comente 2
5 Contador Base Contador Canal
y Corriente Corriente 2
6 Dirección Base Dirección Canal
y Corriente Corriente 3
7 Contador Base Contador Canal
y Comente Corriente 3
8 Registro de Registro de
Comandos Estado
9 Registro de _
Pedidos
A Registro de _
Máscara Simple
B Registro de _
Modo
C Apaga Flip-Flop _
apuntador
D Master Clear Registro
Temporal
E Registro Borra _
Máscaras
F Registro Escribe -
Máscaras
Registro que Apaga Flip-Flop Apuntador de Byte (Clear Byte Pointer Flip
Flop)
Ningún dato está asociado con esta dirección (OCH). Una escritura en esa
dirección apaga el flip-flop interno que es usado para seleccionar el byte alto o
bajo de las palabras de 16 bits, cuando se escribe o se Iee en las direcciones 0
a 7. Cuando el flip-flop está apagado, la próxima operación de lectura o
escritura usa el byte menos significativo de la palabra de 16 bits. Esa
operación, de lectura o escritura, invierte el estado del flip-flop que pasa a
indicar que se va a operar con el byte más significativo (después de esa
operación el flip-fiop será nuevamente invertido). Así, con un bus de 8 bits se
puede enviar o recibir datos de 16 bits. El también es usado cuando se escribe
en los registros de direcciones base y corriente así como también el de
contadores base y corriente. El también es usado cuando se lee el registro de
dirección corriente o contador corriente.
Master Clear
Su función es realizada cuando se escribe en la dirección de I/O OEH. Realiza
el enceramiento del controlador. Después del Master Clear es necesario
inicializar el Controlador.
Ejemplos:
65536 65535
1 0
Latencia de DMA
Algunas veces un dato importante no es la velocidad de transferencia, si no
cuanto tiempo lleva transferir un primer byte. Eso frecuentemente determina si
es necesario colocar un buffer entre una interface y el bus. En la PC, después
de efectuado un pedido de DMA, puede llevar 7 clocks (1.47 useg) antes del
ciclo inicial. Este tiempo puede ser aumentado si son insertados ciclos de
espera.
2.- En las máquinas mas antiguas, el procesador hacia prácticamente todo. Aparte de
hacer funcionar los programas también era responsable de transferir datos a los
periféricos. Desafortunadamente, dejar que el procesador haga estas transferencias,
es bastante negativo porque le impide hacer otras tareas.
3.- DMA permitió a los procesadores hacer otros trabajos y que los periféricos
transfieran los datos ellos mismos, con la consiguiente mejora del rendimiento.
4.- Algunos canales especiales fueron creados, aparte de los circuitos integrados,
permitiendo la transferencia de información sin que el procesador controlara cada
aspecto de la transferencia.
5.- Hay que tener en cuenta que los canales DMA solo se encuentran en los bus ISA .
El uso de un canal de DMA por una interfaz, no impide que el mismo sea utilizado en
otro proyecto.
Los canales DMA son dispositivos únicos cuando hablamos de compartir recursos. Si
dos dispositivos tratan de usar el mismo canal DMA al mismo tiempo, la información se
mezclará entre los dos equipos que tratan de usarlo Las demás interfaces no puedes
usar simultáneamente el mismo canal pero si no se requieren simultáneamente las
interfaces pueden utilizar un mismo canal.
Ejemplo:
EL CONTROLADOR 8237
3.- El 8237 puede efectuar transferencias de DMA a velocidades de hasta 1.6 Mbytes
por segundo. Cada una puede direccionar a una sección completa de 64 Kbytes de la
memoria y puede transferir hasta 64 Kbytes con una sola programación.
4.- El 8237 tiene cuatro canales y es compatible con los microprocesadores 8086 y
8088.
5.- El 8237, genera una señal cada vez que uno de los cuatro canales llega a la
condición de fin de conteo.
6.- Normalmente se utiliza esta señal por una interfaz para terminar las transferencias.
Ejemplo
Se desea transferir 90 KB. La memoria esta libre desde la página 7, y están utilizados
20kb de esta página.
Se usa para generar una interrupción. El controlador genera un único TC para los
cuatro canales. Para poder saber a que canal corresponde el TC generado es
necesario hacer una AND (OR para señales habilitadas en nivel bajo ) con DACK.
Ejemplo:
Se puede programar el registro de la pagina 7, y el controlador DMA para transferir
44KB a partir de la primera dirección libre. Cuando el controlador termina la
trasferencia, este habilita la señal TC, la misma que es responsable de cambiar de
registro de pagina a la pagina 8 y programar el contador para trasferir 46KB, un nuevo
TC será generado y una nueva rutina debe parar el DMA y señalizar que termina la
transferencia.
DMA permite trasmitir datos a alta velocidad. Gracias a los recursos de DMA.A estas
velocidades, la mitad de la banda pasante de bus es usada para un canal de DMA.
Esto va a reducir a la mitad la velocidad de ejecución de los programas. DMA fue
proyectado para que el CPU no sea detenido.
Ejemplo: