Está en la página 1de 22

1

Tema 3: Sistema de Entrada/Salida

Arquitectura de Computadores

Grado en Ingeniería Informática


Arquitectura de Computadores

Sistema de Entrada/Salida 2

Índice
– Introducción
– Módulos de Entrada/Salida
– Mapa de Entrada/Salida: común y separado
– Métodos de Entrada/Salida
• E/S programada
• E/S por interrupciones
• Acceso directo a memoria

Bibliografía
– Organización y Arquitectura de Computadores, William
Stalling

Arquitectura de Computadores

1
Sistema de Entrada/Salida 3

Introducción (I)
• Un computador no puede estar formado sólo por la CPU y la memoria.
Para darle alguna utilidad, debe poder comunicarse con el mundo
exterior. Esto se realiza a través del subsistema de entrada/salida
(módulos de E/S)
• La misión principal del subsistema de E/S es la adaptación de los
dispositivos externos para su conexión al bus del sistema. ¿Por qué no
pueden conectarse directamente?
– A menudo, la velocidad de transmisión de datos de los periféricos es
mucho menor que la de la memoria y la CPU (es necesario amortiguar esa
diferencia de velocidades)
– Debido a la gran variedad de periféricos existentes no es posible incorporar
toda la lógica necesaria para controlar tal diversidad de dispositivos dentro
del procesador
– Los formatos y tamaños de datos de los periféricos suelen ser diferentes a
los utilizados por el computador a los que se conectan

Arquitectura de Computadores

Sistema de Entrada/Salida 4

Introducción (II)

Arquitectura de Computadores

2
Módulos de E/S 5

Definiciones (I)
• Dispositivo externo: elementos que permiten la transferencia de información
entre la CPU y el mundo exterior. Funcionan a modo de interface
transformando la información asíncrona y analógica del mundo exterior a la
información síncrona y codificada del computador
• Módulo de E/S: elementos que permiten la conexión de un dispositivo externo
al bus del sistema. Los términos “controlador”, “procesador de E/S” y “módulo
de E/S” son equivalentes desde el punto de vista funcional:
• Los controladores son módulos de E/S muy sencillos que tienen el
hardware mínimo necesario para que funcione el dispositivo externo. La
lógica de control la gestiona en parte la CPU.
• Los canales o procesadores de E/S son auténticos procesadores con un
juego especializado de instrucciones orientado a operaciones de E/S, que
son programados por la CPU, permitiendo un funcionamiento autónomo.
• Un dispositivo externo conectado a un módulo de E/S se denomina dispositivo
periférico o simplemente periférico

Arquitectura de Computadores

Módulos de E/S 6

Definiciones (II)

Computador Mundo exterior


Periférico
Módulo de E/S Disp.Externo
sistema
Bus del

Control
Datos,
Controlador
Dir. estado, Disp. Externo
Asinc.&Analog.
control
Datos

Arquitectura de Computadores

3
Módulos de E/S 7

Diagrama de bloques de un dispositivo externo

Módulo de E/S

Control Estado Datos

Buffer
Lógica de
Datos
Control Transductor Exterior

Dispositivo Externo

Arquitectura de Computadores

Módulos de E/S 8

Diagrama de bloques de un módulo de E/S


Interfaz con el bus del sistema Interfaz con el dispositivo externo

Bus de datos Registros de


datos
Lógica de Datos
Registros de interfaz de Estado Dispositivo
control/estado
Bus del sistema

dispositivo Control externo 1


externo
Bus de direcciones . .
Lógica . .
de E/S . .
Bus de control
Lógica de Datos
interfaz de Estado Dispositivo
dispositivo Control externo N
externo
Módulo de E/S

Arquitectura de Computadores

4
Módulos de E/S 9

Funciones (I)

• Las funciones de un módulo de E/S son:


– Control y temporización

– Comunicación con el procesador

– Comunicación con los dispositivos

– Almacenamiento temporal

– Detección de errores

Arquitectura de Computadores

Módulos de E/S
Funciones (II)
• Control y temporización
– Necesarios para coordinar el tráfico entre los recursos internos (bus del sistema,
memoria principal) y los dispositivos externos
– Por ejemplo, el control de la transferencia de datos desde un dispositivo externo
al procesador podría implicar la siguiente secuencia de pasos:
1. El procesador pregunta por el estado del dispositivo
2. El módulo de E/S devuelve el estado del dispositivo
3. Si el dispositivo está listo, el procesador solicita la transferencia (lectura) al módulo de
E/S (mediante una orden)
4. El módulo de E/S obtiene los datos
5. Los datos se transfieren del módulo de E/S al procesador
3. Procesador 4. Módulo E/S 5. Procesador
1. Procesador 2. Módulo E/S ¿Dispositivo
Si Solicita obtiene datos del obtiene datos del
pregunta Estado devuelve estado externo listo?
transferencia dispositivo ext. módulo de E/S.

No

• La comunicación con el procesador implica:


– Decodificación de órdenes
– Transferencia de datos
– Información de estado
– Reconocimiento de dirección

10

5
Módulos de E/S 11

Funciones (III)
• La comunicación con los dispositivos implica:
– Órdenes
– Información de estado
– Datos
• Almacenamiento temporal de datos
– Los datos se envían en ráfagas rápidas desde la memoria o el
procesador al módulo de E/S y después se envían al periférico a la
velocidad de éste (el proceso inverso es semejante)
– Los datos se almacenan para no mantener ocupada a la memoria en
una operación de transferencia lenta (evitar una caída en el
rendimiento)
• Detección de errores
– Errores debidos a defectos mecánicos o eléctricos
– Errores en la transmisión de información (códigos de detección de
errores)
Arquitectura de Computadores

11

Módulos de E/S 12

Funciones (IV)
Velocidades típicas de transferencia en dispositivos de E/S (bps)
(Almacenamiento temporal de datos)
Gigabit Ethernet

Monitor Gráfico

Fast Ethernet

Disco duro

Ethernet

Impresora láser

Módem

Ratón

Teclado

101 102 103 104 105 106 107 108 109

Arquitectura de Computadores

12

6
Conexión del subsistema de E/S 13

E/S Separada
• A la hora de integrar el subsistema de E/S (selección del dispositivos y
acceso a sus registros) en un computador, existen dos posibilidades: E/S
separada (o aislada) y E/S mapeada en memoria (o común)
– E/S separada: el acceso a la E/S se realiza a través de un espacio de
direcciones diferente al espacio de direcciones de memoria, al que
llamaremos espacio de direcciones de E/S (puertos de E/S). Por lo tanto,
en los sistemas que implementan la E/S separada existen dos espacios de
direcciones independientes: uno para memoria y otro para E/S.
– El acceso a la E/S está contemplado en la arquitectura: se utilizan
señales e instrucciones específicas de E/S.
– Ejemplo: la arquitectura IA32 dispone de un espacio de direcciones
de E/S de 16 bits al que se accede mediante las instrucciones IN y
OUT

Arquitectura de Computadores

13

Conexión del subsistema de E/S 14

E/S Separada – Ejemplo: mapa de direcciones de E/S en un PC

Los registros del RTC


(Reloj en Tiempo Real)
se encuentran en las
direcciones de E/S (o
puertos) 0x70 y 0x71

Bus de direcciones de 16 bits

Arquitectura de Computadores

14

7
Conexión del subsistema de E/S 15

E/S mapeada en memoria


– E/S común o mapeada en memoria: El acceso a la E/S se realiza a través
del espacio de direcciones de memoria; es decir, el acceso a los periféricos se
hace como si se accediese a un dato almacenado en la memoria principal.
• A los periféricos se le asigna posiciones de memoria como si fueran
variables.
• El procesador no contempla el acceso a módulos de E/S.
• Ejemplo: procesador RISCV, MIPS, Motorola 68000.
Espacio de
direcciones
de memoria
0 - ???? Mapa de E/S

Mapa de
???? – FFFF
Memoria

Arquitectura de Computadores

15

Sistema de E/S: programación básica (I) 16

• Ejemplo de E/S separada y mapeada:


• Dispositivo con tres registros de 8 bits:
Control (DirBase+0): Operación de lectura → Escribir un 5.
Estado (DirBase+1): Lectura realizada → Si bit más significativo a 1.
Datos (DirBase+2): Contiene el último dato leído del dispositivo.
• Comportamiento para realizar una lectura:
1º - Enviar petición de lectura.
2º - Verificar si se ha realizado la lectura.
Si fuese el caso, obtener el dato leído.
• Ejemplo en C++ : Dirección Base 1000
E/S Mapeada E/S Separada (Linux)
char res = 0; char res = 0;
Sintaxis en Linux:
char* v; outb(5, 1000);
dato = inb (puerto)
v = (char*)1000; if ((inb(1001)&0x80)!=0)
outb(dato8bits, puerto)
*v = 5; res = inb(1002);
Sintaxis en Windows:
v++;
dato = inportb (puerto)
if( ( (*v) & 0x80 )!=0)
outportb(puerto, dato8bits)
res = *(++v);

Arquitectura de Computadores

16

8
Sistema de E/S: programación básica (II) 17

• Ejercicio anterior suponiendo:


En RISCV: mapeados a partir de la dirección base 0xFFFFA000
En 8086: mapeados a partir de la dirección base 0x300

• Ensamblador
E/S Mapeada (RISCV) E/S Separada (8086)
addi x3,x0,5 mov al, 5
lui x2, 0xFFFFA mov dx, 300h Sintaxis de in y out del 80x86:
ori x2,x2,0x000 out dx, al in dato, puerto
sb x3,0(x2) inc dx out puerto, dato
lbu x4,1(x2) in al, dx dato:
andi x4,x4,0x80 and al,80h · Sólo registro acumulador (AL, AX EAX)
beq x4,x0,fin jz fin · Tamaño del registro según el del puerto.
lb x5,2(x2) inc dx puerto:
fin: in al, dx si es de 8 bits → inmediato
mov bl, al si es de 16 bits → Reg. DX.
fin:

Arquitectura de Computadores

17

E/S mapeada en memoria: Ventajas 18

• Simplifica el juego de instrucciones del procesador,


ya que no requiere instrucciones de propósito
específico.
• Accesos más eficientes a los dispositivos
• Programación más flexible y eficiente:
– Aprovecha toda la potencia del juego de instrucciones,
facilitando la programación ya que el juego de
instrucciones específicos de E/S suele ser reducido.
– El compilador tiene mas libertad para elegir el lugar y el
modo de direccionamiento en el acceso a memoria
Ejemplo: en IA32, las instrucciones IN y OUT sólo
pueden usar los registros EAX, AX o AL para almacenar
el dato leído o escrito del puerto de E/S y el registro DX
para indicar el puerto.
Arquitectura de Computadores

18

9
E/S mapeada en memoria: Inconvenientes (I) 19

• Desperdicia parte del espacio de direcciones de memoria.


• Las optimizaciones que realizan reordenación de
instrucciones son problemáticas puesto pueden alterar el
orden en el que se accede a los registros del dispositivo.
• Los efectos colaterales de los accesos a la E/S mapeada
pueden afectar negativamente a:
– La memoria caché:
Para evitar el uso de la caché, el rango de direcciones usadas
por el dispositivo debe ser configurado como memoria no
cacheable.
– La memoria virtual:
Las direcciones virtuales utilizadas para acceder a la E/S
deben ser mapeadas a las direcciones físicas a las que
responde el dispositivo.
Arquitectura de Computadores

19

E/S mapeada en memoria: Inconvenientes (II) 20

• Problema de la E/S mapeada por los efectos colaterales.


– Código RISCV del ejercicio anterior:

addi x3,x0,5 Si la caché es CB-WA la escritura en


lui x2, 0xFFFFA 0xFFFFA000 no llega al registro de control
ori x2,x2,0x000 Si las direcciones 0xFFFFA0000-
sb x3,0(x2) 0xFFFFA0002 pertenecen al mismo bloque
lbu x4,1(x2) de memoria, siempre se leerán los valores
andi x4,x4,0x80 que había memoria en el momento del
beq x4,x0,fin primer acceso al bloque.
lb x5,2(x2) En Memoria virtual, las direcciones
fin: virtuales no tienen porqué coincidir con
las direcciones físicas
Arquitectura de Computadores

20

10
Métodos de Entrada/Salida: Clasificación 21

• Mecanismos para sincronizar las operaciones de E/S, pues:


– La diferencia de velocidades entre procesador y periféricos.
– Los eventos de E/S se producen de forma asíncrona (llegada de
datos del dispositivo, dato procesado por el dispositivo, etc.)
• Factores a tener en cuenta:
– Inicio de la transferencia: ¿Quién sincroniza la transferencia?
– Control de la Transferencia: ¿Quién realiza la transferencia?
• Métodos para realizar las operaciones de E/S:
CPU sincroniza las CPU NO sincroniza las
transferencias transferencias
CPU realiza la Programada
transferencia
Interrupciones
(Polling/sondeo)
CPU NO realiza la Acceso directo a
transferencia
X
memoria

Arquitectura de Computadores

21

Métodos de Entrada/Salida: E/S programada (I) 22

• La CPU es el responsable único de realizar la operación.


• Ejecutará un programa que verifique cuando el dispositivo
está listo para realizar la transferencia (sincronización).
– Sondear (interrogar) el estado del dispositivo leyendo
sus registros de estado → Esperas activas
• Accederá a los registros de datos para transferir los datos.
mientras (no disponible) → leer estado
realizar transferencia.
• Ventajas:
– Necesita un hardware de E/S mínimo.
– Las operaciones se realizan muy rápidamente.
• Inconvenientes:
– Las esperas activas consumen un elevado tiempo de proceso.
– Las esperas activas son problemáticas en sistemas multiproceso.
Arquitectura de Computadores

22

11
E/S programada: Ejemplo 23

Realizar una operación de lectura en un dispositivo suponiendo que:


· Antes de enviar una petición de lectura, el dispositivo debe estar ‘disponible’.
· De debe esperar a que ‘finalice’ la lectura antes de transferir el dato al computador.

Leer estado del dispositivo


Espera activa
No
¿Disponible?

Enviar petición de lectura

Leer estado del dispositivo

No
Espera activa
¿Fin lectura?

Transferir el Dato

Arquitectura de Computadores

23

Métodos de Entrada/Salida: Interrupciones 24

• La CPU ya no sincroniza la transferencia, sino que el


dispositivo avisa a la CPU cuando está preparado.
– Aunque la CPU sigue realizando la transferencia de datos.
• La CPU dispone de una(s) línea(s) de interrupción, que
son activadas por los módulos de E/S cuando el
dispositivo notifica que está preparado.
– El dispositivo debe ser capaz de utilizar interrupciones.
Línea de
interrupción
CPU Módulo E/S Dispositivo
BUS

• La CPU realizará la transferencia cuando activen la interrupción.


– Habrá algún mecanismo para identificar qué dispositivo ha
enviado la interrupción y de prioridades.
• Ventaja: Mejora el rendimiento de la CPU al eliminar esperas activas.
• Inconveniente: es más lenta debido a los cambios de contexto.
Arquitectura de Computadores

24

12
E/S por interrupciones: Funcionamiento básico 25

1. La CPU envía una petición y continúa con otra tarea.


2. Cuando el dispositivo finaliza la operación (o cambia su
estado), el módulo de E/S activa la línea de interrupción.
3. Tras terminar la instrucción en curso, la CPU envía una señal
de reconocimiento al modulo de E/S.
4. La CPU ejecuta la rutina que trata la interrupción (rutina de
servicio de interrupción) responsable de la transferencia.
5. Al finalizar la rutina, continúa ejecutando su tarea.
Proceso
Rutina de Servicio
Configurar Interrupción

de Interrupción
Envía Petición …
… Transferir dato
Otras Inst i …
tareas …
Inst j

Arquitectura de Computadores

25

E/S por interrupciones: Funcionamiento detallado26


1- Configurar el dispositivo
2- Configurar el computador INT
CPU INTA
Módulo Disp
3 - Enviar la petición
BUS
4 - El módulo E/S ordena la operación

5 - Ejecutar otras Instrucciones


INT
6 - El dispositivo finaliza la petición
Rutina de Servicio de Interrupción
7 - El módulo E/S activa línea de interrupción
16 - [Deshabilitar interrupciones]
8 - Terminar la ejecución en curso 17 - Guardar los registros seguros
9 - Gestionar prioridades si existen varias 18 - [Leer registro de estado]
10 - Reconocer la interrupción INTA 19 - Procesar la Interrupción (Transferir)
11 - El módulo de E/S desactiva la línea INT 20 - [Enviar nueva petición]
12 - Identificar el dispositivo 21 – [El módulo ordena nueva petición]
13 - Determinar la Rut. Servicio Interrupción 22 - Restaurar los registros seguros
14 - Salvar el estado actual (PSW, PC…)
23 - [Habilitar interrupciones]
15 – Cargar en PC la dirección de la RSI
24 - Restaurar el estado anterior (PSW)
26 - Continuar la ejecución de Instrucciones 25 - Restaurar el PC anterior

Arquitectura de Computadores

26

13
E/S por interrupciones: Tipos de interrupciones 27

• Interrupciones Software:
– Producidas intencionadamente mediante instrucciones específicas.
• Interrupciones Hardware:
– Internas (excepciones): producidas por la CPU.
– Externas: producidas por los dispositivos de E/S.
• Vectorizadas: Identifican la interrupción mediante un vector.
– El vector es utilizado para obtener la rutina de servicio de
la interrupción.
• No vectorizadas (autovectorizadas): El procesador identifica
el dispositivo por sí mismo.
• No enmascarables (NMI): siempre son atendidas.
– Suelen ser prioritarias a las no enmascarables.
• Enmascarables: pueden ser desactivadas.
Arquitectura de Computadores

27

E/S por interrupciones: Implementación (I) 28

• En la implementación de la E/S mediante interrupciones


aparecen dos cuestiones:
– Identificación del dispositivo:
• ¿Cómo determina el procesador qué dispositivo ha
provocado la interrupción?
– Esquema de prioridades:
• Si se producen varias interrupciones simultáneas, ¿cómo
decide el procesador la que debe atender?
• Hay cuatro técnicas utilizadas comúnmente para
implementar la E/S por interrupciones:
– Múltiples líneas de interrupción
– Consulta software (software polling)
– Conexión en cadena (daisy chain)
– Arbitraje de bus Interrupciones autovectorizadas
Arquitectura de Computadores

28

14
E/S por interrupciones: Implementación (II) 29

1.- Múltiples líneas de interrupción


• Consiste en proporcionar varías líneas de interrupción entre el
procesador y los módulos de E/S.
• La prioridad viene fijada por el procesador
• El dispositivo se identifica con la línea activa

CPU Módulo E/S 0 Módulo E/S 1 … Módulo E/S N


INT 0
INTA 0
INT 1
INTA 1
...
INT N
INTA N

• Inconvenientes:
• Malgasta terminales del procesador
• De existir más periféricos que líneas no resolvería el problema.
Arquitectura de Computadores

29

E/S por interrupciones: Implementación (III) 30

2.- Consulta software


• Comparten una línea común para solicitar interrupciones.
• Cuando el procesador detecta una interrupción, se produce un
salto a una rutina de tratamiento de interrupción que consulta el
registro de estado de cada módulo de E/S para determinar cuál
ha producido la interrupción.
• Prioridad: determinada por el orden en que se hace la consulta
Programa RSI general
? ? ?
Estado
RSI 0
Mód 0
Módulo Módulo Módulo int
CPU E/S 0 E/S 1 … E/S N Estado
RSI 1
Mód 1

INT Estado
RSI N
Mód N

• Desventaja:
– Consume mucho tiempo consultando en busca del módulo.
Arquitectura de Computadores

30

15
E/S por interrupciones: Implementación (IV) 31

3.- Conexión en cadena (consulta hardware)


• La línea de reconocimiento de interrupción se conecta
encadenando los módulos uno tras otro
• La señal de reconocimiento se propaga por la cadena hasta
alcanzar un módulo de E/S que hubo solicitado la interrupción.
• El módulo E/S correspondiente responde colocando un número
que lo identifica (vector de interrupción) en las líneas de datos.
• El procesador ejecuta la rutina de interrupción según el vector.
Bus de datos Vector
CPU
INTA Módulo E/S 0 Módulo E/S 1 Módulo E/S N

INT

• Prioridad: según el orden en que se conectan los módulos.


• Ventaja : Evita ejecutar una rutina de servicio general.
Arquitectura de Computadores

31

E/S por interrupciones: Implementación (V) 32

4.- Arbitraje de bus


• Un módulo de E/S debe disponer del acceso del bus antes de
poder activar la línea de petición de interrupción.
• Cuando la CPU acepta la interrupción el dispositivo sitúa el
vector de interrupción en el bus de datos antes de soltarlo.
• Mediante el arbitrador de bus se garantiza que sólo un módulo
puede activar la señal de petición en un determinado instante.

Bus de datos Vector


Arbitrador
CPU de Bus
Módulo de E/S 0 Módulo de E/S N

INT
INTA

• Prioridad: viene determinada por el arbitrador.


Arquitectura de Computadores

32

16
E/S por interrupciones: Ejemplo. Intel 8086 33

BUS 8 bits NºInt: 200

Línea de petición
NMI INTR
de interrupción
PIC 8259 IMR
CPU Lógica de prioridades
Línea de aceptación
INTA
de interrupción IRQ0 IRQ1 IRQ2 IRQ3 IRQ4 IRQ5 IRQ6 IRQ7
Tabla de vectores
PIC 8259
NºInt de Interrupción Teclado Impresora
200 Direc. Tipo Interrupción esclavo
0 0 Divide Error ||||||||
x 4 4 1 Single Step
800 8 2 NMI Dedicadas
12 3 Breakpoint
16 4 Overflow Rutina Servicio
Dirección del 20 5 Usadas en de Interrupción
Vector de … … sucesores del Reservadas
interrupción 124 31 8086
128 32

800 200 Vector de Interr.
… Usuario
1020 255

Arquitectura de Computadores

33

Métodos de E/S: Acceso directo a memoria 34

• La E/S por programada y por interrupciones requieren la


intervención activa del procesador para transferir datos entre la
memoria y los módulos de E/S.
– Impacto negativo sobre la actividad del procesador y la
velocidad de E/S.
• Utilizando la E/S programada, el procesador puede transferir
datos a alta velocidad al precio de no hacer nada más
• La E/S por interrupciones libera en parte al procesador a
expensas de reducir la velocidad de E/S (debido a la sobrecarga
que supone el cambio de contexto)
• Cuando hay que transferir grandes volúmenes de datos:
Acceso Directo a Memoria (DMA)
La CPU no se encarga ni del inicio ni del control de la
transferencia (se libera a la CPU)

Arquitectura de Computadores

34

17
Acceso directo memoria: Controlador DMAC 35
• Los módulos de E/S que no tienen capacidad para realizar acceso directo a
memoria requieren un Controlador de DMA (DMAC) en el bus del sistema.
– El bus PCI no precisa DMAC, pues ya posee los mecanismos necesarios para
que los módulos puedan acceder directamente a memoria.
• La CPU debe configurar el DMAC, especificando: DMAC
– Dirección del módulo de E/S Cuenta
– Dirección inicial de memoria
Bus datos
– El tamaño de la transferencia Datos
– El tipo transferencia: lectura o escritura
Bus direcciones
• El DMAC transfiere el bloque palabra a palabra. Dirección
– Se sincroniza con el dispositivo a través de DMA REQ
DMA Req y DMA Ack en cada palabra.
DMA ACK
– Realiza el acceso a la memoria con su registro Lógica
INT (TC)
de datos, de dirección y las señales de control. de
read
– Actualiza el registro de dirección y decrementa control
write
el registro cuenta de datos.
– Repite mientras registro “Cuenta de datos” != 0
– Cuando finaliza, envía una interrupción al procesador (TC, Terminal Count)
Arquitectura de Computadores

35

Acceso directo memoria: Funcionamiento básico 36

1. Inicialización de transferencia: la CPU envía los parámetros de la


transferencia:
• Configurar Controlador de DMA: nº bytes/palabras, tipo de transferencia
(R/W), dirección de memoria inicial para transferencia; nº de canal, si
DMA tiene más de un canal, etc.
• Configurar Dispositivo de E/S: número de bytes a transferir, tipo de
transferencia (R/W), etc.
2. Transferencia:
• La CPU: continúa la ejecución de otras tareas, por lo que tendrá que
utilizar el bus durante algunos ciclos.
• El controlador de DMA: realiza la transferencia del bloque controlando el
acceso a la memoria y accediendo al dispositivo mediante las señales de
control… pero:
¿Cómo accede a memoria y al dispositivo exactamente?
¿Accede al bus del sistema? ¿Cómo afecta al rendimiento?
3. Finalización de la transferencia:
El controlador notifica el resultado de la operación con una interrupción de TC
Arquitectura de Computadores

36

18
Acceso directo memoria: Funcionamiento (I) 37

¿Cómo accede a Memoria?


• Memoria multipuerto: Memoria de dos puertos para CPU y DMAC.
– Permite realizar transferencias simultáneas de la CPU y el DMAC.
• Exige mecanismos de control en el acceso concurrente a un mismo bloque
Direcciones Memoria Direcciones
Procesador Datos de doble Datos Controlador
Control puerto Control
DMA

• Acceso por compartición del bus:


– El DMAC pide el control del bus por INT (Terminal Count)

las líneas Hold Req y Hold Ack CPU


HOLD Req
HOLD Ack
– La más utilizada habitualmente.
– Solución más económica. BUS DE DIRECCIONES

– Tres modos de compartición BUS DE DATOS

• Modo ráfaga.
• Modo por robo de ciclos Módulo DMA-Req
DMAC
MEM
• Modo transparente. E/S DMA-Ack Cuenta
Datos
Dir
Memoria

Arquitectura de Computadores

37

Acceso directo memoria: Funcionamiento (II) 38

¿Cómo accede a los módulos de E/S?


• Bus único, DMA independiente: Acceso por
– Requiere 2 accesos al bus del sistema: compartición de bus
1 ciclo para acceder al módulo de E/S
y otro a memoria (si no usa Fly-by)
CPU DMAC Módulo E/S Memoria
– Es económica.
• Bus único, DMA-E/S:
– La comunicación entre DMAC y E/S no
requiere acceder al bus del sistema. CPU DMAC Memoria
– Reduce número de ciclos de bus
E/S . . . E/S
integrando las funciones de DMA y E/S. 1 N
• Bus de E/S:
– Conexión del DMAC a los módulos de
E/S mediante un bus de E/S. CPU DMAC Memoria
– Se reduce a uno el número de interfaces
de E/S y es una configuración fácilmente E/S 1 ... E/S N
ampliable.
Arquitectura de Computadores

38

19
Acceso directo memoria: Funcionamiento (III) 39

Modos de transferencia DMA en acceso por compartición de bus


• Modo Ráfaga:
– El DMAC toma control y no lo libera hasta transmitir el bloque de completo.
– Mayor velocidad de transferencia pero puede dejar sin actividad a la CPU
durante periodos grandes de tiempo.
Instrucción 1 Instrucción 2

Ciclo DMA Ciclo DMA

• Modo Por robo de ciclo (más usual):


– El DMA toma control durante un solo ciclo. (Transmite una palabra y lo libera).
Instrucción 1 Instrucción 2

Ciclo DMA Ciclo DMA


• Modo Transparente:
– El DMA accede al bus solo en los ciclos en los que la CPU no lo utiliza. (En
diferentes fases de ejecución de las instrucciones).
– La ejecución del programa no se ve afectada en su velocidad de ejecución.
Instrucción
Búsqueda Decodificación Búsqueda Ejecución Almacenamiento
Ciclo DMA Ciclo DMA

Arquitectura de Computadores

39

Acceso directo a memoria: Funcionamiento (IV) 40

• Funcionamiento de compartición de bus por robo de ciclo


Módulo E/S DMAC Memoria CPU
DMA Req
Activa Hold Req
Activa Hold Ack
DMA Ack
Tiempo
(Transferencia desde/hacia memoria)
robo del
Desactiva Hold Req ciclo
Desactiva Hold Ack

Transferencia DMA “Fly-by”

Arquitectura de Computadores

40

20
Acceso directo a memoria: Funcionamiento (V) 41

• Esquema completo por compartición de bus

Arquitectura de Computadores

41

Métodos de E/S: Resumen (I) 42

Enviar orden de Enviar orden de CPU→E/S Enviar orden de CPU→DMA


lectura al módulo CPU→E/S lectura al módulo lectura de bloque
de E/S de E/S Hacer otra cosa al módulo DMA Hacer otra cosa

Leer el estado del Leer el estado del Interrupción Leer el estado del Interrupción
E/S→CPU
módulo de E/S módulo de E/S módulo DMA
E/S→CPU DMA→CPU

No
preparado
Condición Condición
Comprobar de error de error
Comprobar
el estado el estado c) Acceso directo a memoria
Preparado Preparado

Leer una palabra Leer una palabra


E/S→CPU E/S→CPU
del módulo de E/S del módulo de E/S

Escribir una Escribir una


palabra en CPU→Memoria palabra en CPU→Memoria
memoria memoria

NO
NO

Final Final

SÍ SÍ

a) E/S programada b) E/S por interrupciones

Arquitectura de Computadores

42

21
Métodos de E/S: Resumen (II) 43

CPU para Sincronizar CPU para Transferir Velocidad E/S

E/S Programada Alto (Esp. Activa) Alto Alta

E/S Interrupciones Bajo (No espera) Alto Baja (Contexto)

DMA Bajo (Config & TC) No (Lo hace otro) Alta

Arquitectura de Computadores

43

22

También podría gustarte