Está en la página 1de 25

UNIVERSIDAD NACIONAL “PEDRO RUÍZ GALLO”

FACULTAD DE CIENCIAS FÍSICAS Y MATEMÁTICAS

ESCUELA PROFESIONAL DE INGENIERÍA ELECTRÓNICA

ACCESO DIRECTO A MEMORIA-DMA

AUTORES:

William Bravo Palacios


Miller Villegas Avellaneda
Lenin Guevara Torres
Jean Marcos Chávez Hernández

DOCENTE:
ING. Enrique Javier Ruiz Vega

CICLO: V
Lambayeque, 2017
I
N
T
R
O
D
U
C
C
I
Ó
N
Un computador no puede estar formado solo por la CPU y
la memoria

Para darle alguna utilidad, debe de comunicarse con el


mundo exterior a través del subsistema de
entrada/salida (I/O imput/output)

CPU

MUNDO
MEMORIA I/O EXTERI
OR
la misión
principal es adaptar los dispositivos
del externos antes de conectarlos
subsistema al bus del sistema
E/S

no se
pueden
conectar
la velocidad de transmisión directame
de datos nte al bus ya que
del
sistema

Diversidad de periféricos

Formatos de datos de los


periféricos
Hay dos formas de implementar la E/S en un
computador

construir a medida que el subsistema


utiliza elementos básicos

incorporar y programar dispositivos


estándares más complejos y genéricos
Métodos de Programación de E/S

• La CPU tiene el • La E/S le indica • Es programable,


control absoluto a la CPU cuando aquí la CPU no
de la operación está preparada realiza ninguna
de E/S e inicia y para transferir tarea
lleva a cabo la datos activando
transferencia la línea de
interrupción

Acceso
E/S por
E/S directo a la
interrupcion
programada memoria
es
DMA
ACCESO

DIRECTO

A MEMORIA

(DMA)
Ordenadores
¿Qué es DMA? modernos

es un

método rápido para transferir datos de forma directa


de un dispositivo periférico a la memoria del sistema
por medio de circuitería especializada o un
microprocesador exclusivo, sin pasar por el CPU

se lleva a
Una
cabo por el
transferencia
controlador
DMA
DMA
consiste principalmente

en copiar un bloque de
memoria de un
dispositivo a otro
Dispositivo capaz de controlar una
transferencia de datos
Controlador
DMA Está controlado por un chip especifico, el
DMAC ("DMA Controller")

“Decide” la prioridad cuando se solicita el


acceso simultáneo
debe

Actuar como “máster” y debe ser


capaz de:

Solicitar el uso del bus mediante las señales y


la lógica de arbitraje necesarias
Especificar la dirección de memoria sobre la
que se realiza la transferencia

Generar las señales de control del bus

Tipo de operación (lectura/escritura)

Señales de sincronización de la transferencia


CONFIGURACIONES DE DMA

Un bus, controlador DMA


separado
• Cada transferencia usa el bus
dos veces: I/O a DMA, luego
DMA a memoria
• La CPU es suspendida dos
veces

Un bus controlador, DMA


integrado
• El controlador puede
manejar > 1 dispositivo.
• Cada transferencia usa el
bus una vez: DMA a
memoria.
• La CPU es suspendida una
vez.
Bus separado de I/O
• El bus soporta todos los dispositivos
habilitados para DMA
• Cada transferencia usa el bus una vez:
DMA a memoria.
• La CPU es suspendida una vez.
ETAPAS DE UNA TRANSFERENCIA
DMA

Inicialización de la La CPU debe enviar a la interfase del


transferencia periférico y al DMAC los parámetros
de la transferencia

Inicialización del Inicialización del


interfaz (Bus master: controlador DMA (Bus
CPU - Bus slave: master: CPU - Bus slave:
Interfaz) DMAC)

• Nº de bytes o palabras a
transferir
• Nº de bytes a transferir
• Tipo de transferencia
• Tipo de transferencia
(lectura/escritura) Dirección de
(lectura/escritura)
memoria inicial para la
• Otra información de control
transferencia
(pista, sector, etc.)
• Nº de canal (para DMAs con
varios canales)
Realización de El DMAC pide el control del
la bus y se realiza la
transferencia transferencia entre el
periférico y la memoria

Bus máster: DMAC


+ Periférico - Bus
slave: Memoria

Nº de bytes o palabras
Después de la a transferir
transferencia de
cada palabra se
actualizan los
registros del DMA Dirección de memoria
Finalización de
la
transferencia

El DMAC suele
activar una señal
de interrupción
El DMAC libera el
para indicar a la
bus y devuelve el
CPU la
control a la CPU
finalización de la
operación de E/S
solicitada
FUNCIONAMIENTO DE DMA

La CPU le indica al interfaz del periférico la


operación a realizar
INICIALIZACIÓN

La CPU accede a los registros del DMAC para


indicar los parámetros de la transferencia:
• Dirección inicial de memoria= reg. dir.
FASE DE

Memoria
• Numero de palabras a transferir= reg. Nº
palabras
• Sentido de la transferencia= reg. sentido

La CPU regresa a sus tareas


Cuando el periférico está listo para transmitir/recibir
lo indica al DMASC activando la señal DMA-REQ
TRANSFERENCIA

El DMA solicita el control del bus mediante las líneas


de arbitraje
FASE DE

El DMA recibe la concesión del bus y activa la señal


DMA-ACK para indicar al periférico que puede iniciar
la transferencia

El DMAC debe generar y procesar las


señales del bus adecuadas

Después de transferir cada palabra


el DMAC debe actualizar sus
registros
FASE DE FINALIZACIÓN
Cuando el registro de Nº de palabras llega a
cero el DMAC activa la señal de interrupción
para indicárselo a la CPU
PROBLEMA QUE PUEDE PRESENTAR EL DMA

Puede degradar el rendimiento de la CPU si el DMAC hace uso


intensivo del bus

Si el bus está ocupado en una transferencia DMA, la CPU no


puede acceder a memoria para leer instrucciones y datos

Este problema se reduce con el uso de MEMORIA CACHE

El DMAC va poder
La mayor parte del
aprovechar estos
tiempo, la CPU va leer
intervalos en los que
instrucciones de la
la CPU está leyendo
cache, por lo que no
instrucciones de la
va a necesitar usar el
cache para realizar
bus de memoria
las transferencias
El procesador no utiliza el bus
en todas las fases de la
En caso de ejecución de una instrucción
computadores sin
cache El DMAC puede aprovechar las
fases de ejecución de una
instrucción en las que la CPU
no utiliza el bus para realizar
sus transferencias
En conclusión:

Si el DMAC sólo toma el control del bus


durante los intervalos de tiempo en los que
la CPU no hace uso del mismo; entonces, el
rendimiento del sistema no sufrirá
degradación alguna
TIPOS DE TRANSFERENCIA DE DMA

DMA por ráfagas DMA por robo de ciclo

• Ventaja: La
transferencia se • Métodos más usados,
realiza de forma ya que requiere poca
rápida. utilización del CPU.
• Desventaja: Durante • Ventaja: No se
el tiempo que dura la degrada el
transferencia la CPU rendimiento del
no puede utilizar el sistema.
bus con memoria, lo • Desventaja: La
que puede degradar transferencia tarda
el rendimiento del más tiempo en
sistema. llevarse a cabo.
DMA transparente DMA Scatter-gather

• consiste en emplear
el bus del sistema • Permite transmitir
cuando la CPU no lo datos a varias áreas
necesita. de memoria en una
• Ventaja: permite que transacción DMA
la transferencia no simple.
impida que la CPU • Su objetivo es librar a
utilice el bus del la CPU la tarea de la
sistema. copia de datos e
• Desventaja: la interrupciones de
velocidad de entrada/salida
transferencia es la múltiples
más baja posible.
ESTRUCTURA HARDWARE DE UN DMAC

Son pequeñas zonas auxiliares


Registros del DMAC de memoria y se conoce como
registros de página

Reg. dir memoria: almacena la dir.


inicial de la memoria y se
incrementa/decrementa después
de transferir cada palabra

Reg. Número de palabras:


almacena el número de palabras a
transferir y se decrementa
después de transferir cada palabra

Reg. sentido: almacena el sentido


de la transferencia (lectura o
escritura)
Señales de control del periférico

La activa el periférico para indicar al


DMA-REQ: solicitud DMAC que está listo para
de servicio DMA transmitir/recibir

DMA-ACK: La activa el DMAC para indicar al


concesión del periférico que puede realizar la
servicio DMA transferencia

R/W-IO: Sentido de
la transferencia El periférico no puede utilizar la misma
para el periférico señal de R/W que la memoria

Operación DMA de Operación DMA de


lectura (memoria- escritura (periférico-
periférico) memoria)
EJEMPLO

ISA: Por ejemplo, un PC con arquitectura ISA con controlador


de DMA basado en el Intel 8237, el cual es un controlador de
DMA multimodo, que es una combinación de hardware-
software. Proporciona la interfaz necesaria para realizar el
acceso directo a memoria en computadores basados en
procesadores de la familia 80x86.

También podría gustarte