Está en la página 1de 97

El sistema de Entrada/Salida

Fabrizio Trivio T
Ingeniera de Sistemas
Arquitectura de Computadoras

Estructura del tema

Introduccin
La entrada/salida en el procesador
Definicin de perifrico e interfaz

Controladores de entrada/salida
Funciones de un controlador
Estructura de un controlador

Tcnicas para las operaciones de entrada/salida


Entrada/salida programada
Entrada/salida mediante interrupciones
Acceso directo a memoria

Evolucin de la entrada/salida
2

Componentes de un computador

Los componentes de un computador son:


Unidad Central de Proceso (CPU Procesador)
Procesa los datos
Controla el funcionamiento del computador

Memoria
Almacenamiento de datos

Entrada/Salida
Transfiere datos entre el computador
y el entorno externo

Sistema de interconexin
Proporciona la comunicacin necesaria
entre los tres componentes anteriores

[STALLINGS 1.2]

Interaccin entre los componentes

El procesador
controla el
computador
Registros de
direccin:
indican donde
leer/escribir
Registros de
almacenamiento
temporal

[STALLINGS 3.1]

Interaccin entre los componentes

La memoria es
un conjunto de
posiciones
secuenciales
Instrucciones
Datos

[STALLINGS 3.1]

Interaccin entre los componentes

La entrada/salida
gestiona las
transferencias
con el exterior
A/desde el
procesador
A/desde memoria
Utiliza registros
internos para
almacenamiento
temporal

[STALLINGS 3.1]

Importancia de la entrada/salida

[PATTERSON 8.1]

Perifricos e interfaces

Un perifrico es un dispositivo fsico que permite


al computador interactuar con su entorno
Adquirir informacin del exterior
Proporcionar informacin al exterior
Transformar informacin del formato
interno al formato externo y/o viceversa

Una interfaz es una conexin entre dispositivos


que permite la interaccin entre ellos

Clasificacin de los perifricos

Las caractersticas principales que nos permiten


clasificar los perifricos son:
Comportamiento
Entrada (lectura)
Salida (escritura)
Almacenamiento

Interlocutor: quin est al otro lado de la comunicacin?


Humano
Mquina

Velocidad: cmo de rpido se transmiten los datos?

[PATTERSON 8.3]

Clasificacin de los perifricos

[PATTERSON 8.3]

10

Estructura del tema

Introduccin
La entrada/salida en el procesador
Definicin de perifrico e interfaz

Controladores de entrada/salida
Funciones de un controlador
Estructura de un controlador

Tcnicas para las operaciones de entrada/salida


Entrada/salida programada
Entrada/salida mediante interrupciones
Acceso directo a memoria

Evolucin de la entrada/salida
11

Controladores de entrada/salida

Los perifricos no pueden conectarse


directamente al computador
Hay muchos perifricos con funcionamientos distintos, no
puede incorporarse lgica al procesador para que sepa como
interactuar con todos ellos
La velocidad de los perifricos suele ser diferente
a la velocidad de la memoria o del procesador
El formato de los datos usado por los perifricos
suele ser diferente al usado por el computador

[STALLINGS 7.0]

12

Controladores de entrada/salida

Un controlador de E/S es un mdulo que implementa


la interfaz de los perifricos con el procesador y la
memoria

control
direccin

Procesador

dato

controlador E/S

Memoria
perifrico
[STALLINGS 7.0]

controlador E/S

perifrico
13

Controladores de entrada/salida

El principal objetivo de un controlador de E/S


es establecer una abstraccin
Simplificar la visin que el computador
tiene de los perifricos
Ocultar detalles fsicos, de formato, de temporizacin
control
direccin

Procesador

dato

controlador E/S

Memoria
perifrico
[STALLINGS 7.0]

controlador E/S

perifrico
14

Estructura del tema

Introduccin
La entrada/salida en el procesador
Definicin de perifrico e interfaz

Controladores de entrada/salida
Funciones de un controlador
Estructura de un controlador

Tcnicas para las operaciones de entrada/salida


Entrada/salida programada
Entrada/salida mediante interrupciones
Acceso directo a memoria

Evolucin de la entrada/salida
15

Funciones de un controlador

Control y temporizacin: coordinar el trfico entre los


recursos internos y los dispositivos externos

Ejemplo: transferencia de datos de un dispositivo al procesador


solicitud

solicitud

reconocimiento

reconocimiento

procesador

[STALLINGS 7.2]

controlador

perifrico

dato

dato

reconocimiento

reconocimiento

16

Funciones de un controlador

Almacenamiento temporal de datos: compensar


la diferencia de velocidad en las transferencias
Si los datos llegan con demasiada rapidez se
almacenan y se van procesando al ritmo adecuado
Si los datos llegan con demasiada lentitud se van
almacenando y se procesan cuando hay suficientes

Deteccin de errores
Defectos mecnicos o elctricos
Errores de transmisin

[STALLINGS 7.2]

17

Funciones de un controlador

Comunicacin con el procesador

Decodificar rdenes provenientes del procesador


Intercambiar datos
Comunicar informacin de estado y condiciones de error
Reconocimiento de una direccin como correspondiente
a uno de los perifricos bajo control

Comunicacin con el dispositivo:


intercambio de seales de control, estado y datos

[STALLINGS 7.2]

18

Estructura del tema

Introduccin
La entrada/salida en el procesador
Definicin de perifrico e interfaz

Controladores de entrada/salida
Funciones de un controlador
Estructura de un controlador

Tcnicas para las operaciones de entrada/salida


Entrada/salida programada
Entrada/salida mediante interrupciones
Acceso directo a memoria

Evolucin de la entrada/salida
19

Interconexin con los controladores

Desde el punto de vista del procesador, la entrada/salida


funciona igual que la memoria
Operaciones de lectura
Operaciones de escritura

Un controlador de E/S
tiene dos interfaces
Con el procesador y
la memoria
Con los perifricos

[STALLINGS 3.3] [STALLINGS 7.1]

20

Interconexin con los controladores

Las conexiones entre el procesador, la memoria y los


controladores E/S reciben usualmente el nombre de bus
Lneas de control
Lneas de direccin
Lneas de datos

[STALLINGS 3.3] [STALLINGS 7.1]

21

Estructura de un controlador de E/S

Registro de datos
Almacena los datos que se envan/reciben

[STALLINGS 7.2]

22

Estructura de un controlador de E/S

Registro de estado
Proporciona informacin del estado actual
Puede funcionar como un registro de control para almacenar
la informacin de control transmitida por el procesador

[STALLINGS 7.2]

23

Estructura de un controlador de E/S

Lgica de entrada/salida
Interacta con el procesador por medio de lneas de control
por las que recibe rdenes del procesador pero que tambin
puede usar para solicitar recursos (acceso al bus)
Reconoce y genera los identificadores asociados con cada
dispositivo que controla

[STALLINGS 7.2]

24

Estructura de un controlador de E/S

Lgica especfica de interfaz con cada


dispositivo gestionado

[STALLINGS 7.2]

25

Estructura de un perifrico

Lgica de control: maneja el perifrico en funcin


de las indicaciones del controlador de E/S

[STALLINGS 7.1]

26

Estructura de un perifrico

Transductor: convierte seales digitales a otra


forma de energa (salida) o viceversa (entrada)
Un buffer permite el almacenamiento temporal de las seales
Hay gran variedad de interfaces entre el perifrico
y el exterior (teclado, monitor, ratn)

[STALLINGS 7.1]

27

Interfaz controlador de E/S perifrico

La interfaz puede ser serie o paralela.


Paralela: hay varias lneas
de conexin, lo que permite
transmitir varios bits de forma
simultnea
Serie: slo hay una lnea
de conexin, los bits se
transmiten de uno en uno
Tradicionalmente se asocian las interfaces paralelas con
dispositivos de alta velocidad (cinta, disco) y las interfaces
serie con dispositivos ms lentos (impresoras, terminales)
Hoy en da, las interfaces serie de alta velocidad hacen que
las paralelas sean cada vez menos frecuentes

[STALLINGS 7.7]

28

Estructura del tema

Introduccin
La entrada/salida en el procesador
Definicin de perifrico e interfaz

Controladores de entrada/salida
Funciones de un controlador
Estructura de un controlador

Tcnicas para las operaciones de entrada/salida


Entrada/salida programada
Entrada/salida mediante interrupciones
Acceso directo a memoria

Evolucin de la entrada/salida
29

Tcnicas para las operaciones de E/S

E/S programada
Los datos se intercambian entre el procesador y el
controlador
El procesador enva una orden y espera a que la operacin
termine ejecutando un programa que controla la operacin
(lectura, escritura, comprobacin de estado)

[STALLINGS 7.3] [STALLINGS 7.4] [STALLINGS 7.5]

30

Tcnicas para las operaciones de E/S

Desventajas de la E/S programada


Consume tiempo: el procesador debe dedicar parte
de su tiempo a gestionar las operaciones de E/S
Mantiene al procesador innecesariamente ocupado:
si el procesador es ms rpido se ver obligado a
comprobar el estado del controlador una y otra vez
hasta que la operacin finaliza
Velocidad limitada: la velocidad de transferencia est
limitada por la velocidad a la que el procesador puede
atender al controlador

[STALLINGS 7.3] [STALLINGS 7.4] [STALLINGS 7.5]

31

Tcnicas para las operaciones de E/S

E/S mediante interrupciones


El procesador da la orden y sigue ejecutando otras
instrucciones hasta que el controlador de E/S le interrumpe
para comunicarle que la operacin ha concluido
Es ms eficiente porque elimina esperas innecesarias, pero
los datos siguen pasando a travs del procesador
Consume tiempo
Limita velocidad

[STALLINGS 7.3] [STALLINGS 7.4] [STALLINGS 7.5]

32

Tcnicas para las operaciones de E/S

Acceso directo a memoria (DMA Direct Memory Access)


La memoria y el controlador de E/S intercambian datos
directamente sin intervencin del procesador
El procesador da la orden y sigue ejecutando otras
instrucciones hasta que el controlador de E/S le interrumpe
para comunicarle que la operacin ha concluido, pero los
datos no pasan a travs de l

[STALLINGS 7.3] [STALLINGS 7.4] [STALLINGS 7.5]

33

Tcnicas para las operaciones de E/S

La E/S programada puede resultar ms rpida para


pequeas cantidades de datos, pero el procesador
no podr hacer nada ms

La E/S mediante interrupciones libera el procesador


para que haga otras tareas, pero la transferencia ser
ms lenta

DMA es la tcnica ms eficiente cuando se trata de


transmitir grandes volmenes de informacin

[STALLINGS 7.3] [STALLINGS 7.4] [STALLINGS 7.5]

34

Tcnicas para las operaciones de E/S


Ejemplo: lectura de datos (transferencia E/S memoria)

[STALLINGS 7.3] [STALLINGS 7.4] [STALLINGS 7.5]

35

Estructura del tema

Introduccin
La entrada/salida en el procesador
Definicin de perifrico e interfaz

Controladores de entrada/salida
Funciones de un controlador
Estructura de un controlador

Tcnicas para las operaciones de entrada/salida


Entrada/salida programada
Entrada/salida mediante interrupciones
Acceso directo a memoria

Evolucin de la entrada/salida
36

E/S programada

Al encontrar una instruccin E/S, el procesador genera:


El identificador del controlador y el perifrico
Una orden de E/S

La orden de E/S es enviada al controlador

El controlador realiza la operacin y ajusta el valor


del registro de estado, pero no avisa al procesador

El procesador debe controlar peridicamente el estado


del controlador hasta que comprueba que la operacin
ha finalizado

[STALLINGS 7.3]

37

rdenes de E/S

Hay cuatro tipos de rdenes de E/S


Control: son especficas de cada tipo particular de perifrico
(activar perifrico, indicarle qu hacer)
Test: comprueban condiciones de estado (conectado?,
disponible?, operacin terminada?, error?)
Lectura
El controlador lee un dato del perifrico y lo almacena internamente
El procesador podr obtener el dato pidiendo al controlador que lo
ponga en el bus

Escritura
El controlador toma un dato del bus
El dato es transmitido al perifrico

[STALLINGS 7.3]

38

Direccionamiento de los perifricos

Las instrucciones de E/S suelen tener una


correspondencia directa 1-1 con las rdenes de E/S

El formato de las instrucciones de E/S depende de la


forma de direccionamiento de los dispositivos, pues
deben contener la direccin adecuada

Si el procesador, la memoria y la E/S comparten un bus


se pueden usar dos modos de direccionamiento
E/S asignada en memoria
E/S aislada de memoria

[STALLINGS 7.3]

39

E/S asignada en memoria

Existe un nico espacio de direcciones para posiciones


de memoria y dispositivos de E/S

Los registros de estado y de datos de los controladores


son vistos por el procesador como posiciones de
memoria y accede a ellos como si lo fueran

Slo existe una lnea de lectura y una lnea de escritura


Por ejemplo, con 10 lneas de direccin tendramos
un total de 210 = 1024 posiciones de memoria y E/S

[STALLINGS 7.3]

40

E/S aislada de memoria

Existen lneas de lectura/escritura en memoria y otras


separadas para las rdenes de E/S
Por ejemplo, con 10 lneas para memoria y otras 10
lneas
de direccin para E/S tendramos 210 = 1024
posiciones de memoria y otras tantas de E/S

Las instrucciones deben especificar si se refieren a una


posicin de memoria o a un dispositivo de E/S

[STALLINGS 7.3]

41

E/S asignada vs. aislada

E/S asignada en memoria


La programacin es ms eficiente porque existe una gran
variedad de instrucciones de lectura/escritura en memoria
La desventaja es que hay que compartir el valioso espacio
de direcciones de memoria

E/S aislada de memoria


Hay menos opciones de programacin porque slo
se dispone de unas pocas instrucciones de E/S
No se comparte el espacio de direcciones

Ambas se utilizan frecuentemente hoy en da

[STALLINGS 7.3]

42

Estructura del tema

Introduccin
La entrada/salida en el procesador
Definicin de perifrico e interfaz

Controladores de entrada/salida
Funciones de un controlador
Estructura de un controlador

Tcnicas para las operaciones de entrada/salida


Entrada/salida programada
Entrada/salida mediante interrupciones
Acceso directo a memoria

Evolucin de la entrada/salida
44

E/S mediante interrupciones

Desde el punto de vista del controlador de E/S


El controlador recibe una orden del procesador
El controlador gestiona la operacin con el
perifrico asociado
Una vez concluye la operacin, el controlador
enva una interrupcin al procesador
El controlador espera a que el procesador acte
Lectura: toma el dato
Escritura: comprueba el estado

El controlador queda preparado para la siguiente operacin

[STALLINGS 7.4]

45

E/S mediante interrupciones

Desde el punto de vista del procesador


El procesador enva una orden al controlador y luego
contina ejecutando instrucciones
Del mismo programa si es posible paralelizar
De un programa distinto

[STALLINGS 7.4] [STALLINGS 3.2]

46

E/S mediante interrupciones

Desde el punto de vista del procesador


En cada ciclo de instruccin, el procesador comprueba
el estado de las interrupciones
Una vez detectada, la interrupcin es procesada

[STALLINGS 7.4] [STALLINGS 3.2]

47

Procesamiento de interrupciones

El procesamiento de una interrupcin consiste en


Suspender la ejecucin del programa y guardar su contexto
Cargar la rutina de gestin de la interrupcin
Puede haber una por interrupcin o una por interrupcin y dispositivo
Puede haber ms de una adecuada
La interrupcin puede haber indicado cual era la adecuada
Puede ser necesario interrogar al dispositivo al respecto

Ejecutar la rutina de gestin


de la interrupcin, lo que puede
implicar comunicarse de nuevo
con el dispositivo
Recuperar el contexto del programa
anterior (u otro distinto)
[STALLINGS 7.4] [STALLINGS 3.2]

48

Procesamiento de interrupciones
Procedimiento de interrupcin
simplificado
PC = Program Counter
PSW = Program Status Word

[STALLINGS 7.4]

49

Procesamiento de interrupciones
El contexto de un
programa se almacena
en la pila del sistema

[STALLINGS 7.4]

50

Procesamiento de interrupciones

Es posible que se produzca una interrupcin


mientras se est procesando otra

Para tratar con estos casos hay dos alternativas


Deshabilitar interrupciones
Establecer prioridades

[STALLINGS 7.4] [STALLINGS 3.2]

51

Deshabilitar interrupciones

Mientras se est tratando una interrupcin se ignora


cualquier interrupcin que llegue posteriormente
Las interrupciones posteriores quedan pendientes
y se procesarn cuando acabe la actual
Las interrupciones son tratadas en un orden estrictamente
secuencial, pero no se tienen en cuenta la prioridad relativa
o las operaciones en tiempo crtico

[STALLINGS 7.4]

52

Interrupciones con prioridades

Se permite que una interrupcin de


mayor prioridad interrumpa al gestor
de una interrupcin de menor prioridad

[STALLINGS 7.4]

53

Quin interrumpe?

La presencia de mltiples controladores implica


que es necesario establecer una estrategia para que
el procesador sepa quin gener una interrupcin

Mltiples lneas de interrupcin


Se podran tener varias lneas de interrupcin
entre el procesador y los controladores
No resulta prctico tener sino unas pocas lneas
Incluso si hay varias lneas, tendrn que ser
compartidas entre controladores distintos

[STALLINGS 7.4]

54

Quin interrumpe?

Consulta software (software poll)


Cuando se detecta una interrupcin se salta a una rutina
general de servicio de interrupcin que consulta a cada
controlador para determinar el responsable
Activar una seal de control para que el controlador responda
Direccionar el registro de estado de cada controlador

Una vez identificado el controlador se salta a una rutina


especfica de servicio de interrupcin
El principal problema de esta tcnica es que consume
demasiado tiempo

[STALLINGS 7.4]

55

Quin interrumpe?

Conexin en cadena (daisy chain)


Todos los controladores comparten una
lnea comn para solicitar interrupciones
La lnea de reconocimiento de interrupciones se conecta
encadenando los controladores uno tras otro
Cuando el procesador detecta una interrupcin activa el
reconocimiento, que se va propagando hasta el controlador correcto
El controlador responde poniendo en el bus un identificador (vector)
que el procesador usa como puntero a la rutina de interrupcin

De esta forma se evita ejecutar una rutina de servicio general


primero pues la consulta es hardware (hardware poll)
Esta tcnica tambin recibe el nombre de
interrupciones vectorizadas
[STALLINGS 7.4]

56

Quin interrumpe?

Arbitraje de bus
Un controlador debe disponer del bus
antes de poder activar una interrupcin
Slo un controlador puede interrumpir en cada momento
Cuando el procesador detecta la interrupcin responde
activando la lnea de reconocimiento, con lo que el
controlador coloca su vector en el bus
(esta tcnica tambin es vectorizada)

[STALLINGS 7.4]

57

Quin tiene prioridad?

Las tcnicas anteriores proporcionan una forma de


asignar prioridades a las interrupciones
Mltiples lneas de interrupcin: el procesador
elige la lnea que tenga mayor prioridad
Consulta software: la prioridad viene determinada
por el orden en el que se consultan los controladores
Conexin en cadena: la prioridad viene determinada por el
orden en el que los controladores se conectan en la cadena
Arbitraje de bus: la prioridad en la asignacin del
bus determina la prioridad de las interrupciones

[STALLINGS 7.4]

58

Intel 82C59A

El controlador de interrupciones Intel 82C59A es


un
rbitro de interrupciones externo utilizado con
el
procesador 80386
El 80386 tiene una nica lnea de peticin de interrupcin:
INTR (interrupt request)
El 80386 tiene una nica lnea de reconocimiento de
interrupcin: INTA (interrupt acknowledge)
La conexin con el 82C59A permite al procesador manejar
cierta variedad de dispositivos y estructuras de prioridad

[STALLINGS 7.4]

59

Intel 82C59A

Este chip se encarga nicamente de la gestin


de interrupciones

Acepta solicitudes de los controladores


Determina quin tiene la prioridad ms alta
Activa INTR para indicrselo al procesador
El procesador activa INTA para reconocer la solicitud
El chip pone el vector apropiado en el bus
El procesador inicia el gestor de la interrupcin y pasa a
comunicarse directamente con el controlador a partir de
ese momento

[STALLINGS 7.4]

60

Intel 82C59A
Un chip puede manejar
hasta 8 controladores
Pueden conectarse
varios chips en cascada
para manejar hasta 64
controladores

[STALLINGS 7.4]

61

Intel 82C59A
El 82C59A es programable
El procesador determina el esquema de prioridad que
se va a usar cargando una palabra de control en el chip

Completamente anidado: las solicitudes de interrupcin


se ordenan segn el nivel de prioridad (de IR0 a IR7)
Rotatorio: hay varios dispositivos con igual prioridad pero,
despus de ser atendido, un dispositivo pasa a tener la menor
prioridad del grupo
Con mscara especial: se permite que el procesador
pueda inhibir selectivamente las interrupciones desde
ciertos dispositivos

[STALLINGS 7.4]

62

Intel 82C55A

Mientras que el 82C59A era un rbitro de


interrupciones externo, la interfaz programable de
perifricos 82C55A es un verdadero controlador de E/S
Es un controlador de propsito general que puede usarse
tanto para E/S programada como para E/S mediante
interrupciones
Est integrado en un solo chip
con 40 terminales
Tambin se utiliza junto con el
procesador 80386

[STALLINGS 7.4]

63

Intel 82C55A

La interfaz externa se compone de 24 lneas de E/S


configurables mediante un registro de control
Tres buses de 8 bits
(A, B y C)
Dos buses de 8 bits
(A y B) y cuatro bits
de seales de control
y estado para cada uno
(CA y CB)

[STALLINGS 7.4]

64

Intel 82C55A

La interfaz externa se compone de 24 lneas de E/S


configurables mediante un registro de control
Cada puerto puede
designarse como de
entrada o salida
Las lneas C pueden
usarse para
sincronizacin
mediante
confirmacin de
seales o para
peticin de
interrupciones

[STALLINGS 7.4]

65

Intel 82C55A

La interfaz interna se compone de


Un bus bidireccional de 8 bits (D) usado para transferir datos
a/desde los puertos de
E/S y al registro de
control
Dos lneas de direccin
(A0,A1) para
especificar uno de los
puertos de E/S o el
registro de control

[STALLINGS 7.4]

66

Intel 82C55A

La interfaz interna se compone de


Una seal RESET para inicializar el controlador
Una seal
CHIP SELECT que
indicar
el comienzo
de una
transferencia
cuando se
active junto
con la seal
READ o
la seal
WRITE

[STALLINGS 7.4]

67

Procesamiento de interrupciones
Ejemplo: controlar una
terminal con teclado y pantalla

[STALLINGS 7.4]

68

Estructura del tema

Introduccin
La entrada/salida en el procesador
Definicin de perifrico e interfaz

Controladores de entrada/salida
Funciones de un controlador
Estructura de un controlador

Tcnicas para las operaciones de entrada/salida


Entrada/salida programada
Entrada/salida mediante interrupciones
Acceso directo a memoria

Evolucin de la entrada/salida
69

Controlador de DMA
El controlador de DMA es un mdulo capaz de recibir
el control del bus del sistema (cedido por el procesador)
para transferir datos a/desde memoria
Dos opciones de
funcionamiento:

Utilizar el bus slo


cuando el procesador
no lo necesita
Lo ms comn es forzar
al procesador a que
suspenda temporalmente
el uso del bus
(robo de un ciclo de bus)
[STALLINGS 7.5]

70

Controlador de DMA

Cuando el procesador desea leer/escribir un bloque


de datos enva una orden al controlador de DMA
incluyendo la siguiente informacin:
Indicacin de si es lectura
o escritura usando la lnea
de control apropiada
Direccin del dispositivo
de E/S usando las lneas
de datos

[STALLINGS 7.5]

71

Controlador de DMA

Cuando el procesador desea leer/escribir un bloque


de datos enva una orden al controlador de DMA
incluyendo la siguiente informacin:
Posicin inicial de memoria
a la que leer/escribir usando
las lneas de datos y que ser
almacenada en el registro
de direcciones
Nmero de palabras a
leer/escribir usando las
lneas de datos y que
ser almacenado en el
registro de cuenta de datos

[STALLINGS 7.5]

72

Controlador de DMA

El controlador de DMA puede robarle el bus al


procesador justo antes de que lo necesite
No es una interrupcin: el procesador no guarda el contexto,
tan solo espera un ciclo de bus
El procesador se
ralentiza, pero para
transmitir varias
palabras es ms
eficiente que las otras
Cuando termina la
transmisin, el
controlador de DMA
devuelve el control del bus al procesador

[STALLINGS 7.5]

73

Controlador de DMA

El procesador puede continuar con su trabajo despus


de enviar la orden al controlador de DMA pues, a todos
los efectos, ha delegado en l la operacin

El controlador de DMA se encarga de transferir


el bloque completo de datos, palabra a palabra,
directamente a/desde memoria
pasar por el procesador)

(sin

Cuando la operacin concluye, el controlador enva una


interrupcin al procesador para comunicrselo

[STALLINGS 7.5]

74

Configuracin del DMA

La configuracin ms econmica es que todos los


controladores compartan el bus del sistema
El controlador de DMA actuar como un procesador
suplementario que usa E/S programada para transferir
datos entre la memoria y un controlador de E/S
Es ineficiente porque cada dato consumir dos ciclos de bus
(E/S DMA Memoria)

[STALLINGS 7.5]

75

Configuracin del DMA

Integrar las funciones de DMA y E/S reducira el


nmero de ciclos de bus necesarios
Existe un camino entre el controlador de DMA y uno o varios
controladores de E/S que no pasa por el bus del sistema
El controlador de DMA puede ser un mdulo separado que
gestiona varios controladores de E/S o parte de uno de ellos
Cada dato consumir un solo ciclo del bus del sistema
(DMA Memoria)

[STALLINGS 7.5]

76

Configuracin del DMA

Se puede dar un paso ms conectando los controladores


de E/S a un controlador de DMA usando un bus de E/S
El controlador de DMA slo tiene una interfaz con la E/S,
dando lugar a una configuracin fcilmente ampliable
De nuevo, cada dato consumir un solo ciclo del bus
del sistema (DMA Memoria)

[STALLINGS 7.5]

77

Intel 8237A

El controlador de DMA Intel 8237A proporciona la


interfaz necesaria para realizar el acceso directo a
memoria en computadores basados en procesadores
de la familia 80x86

[STALLINGS 7.5]

78

Intel 8237A

El 8237A es un controlador de DMA al vuelo


(fly-by DMA) porque los datos no pasan nunca
a travs del propio controlador y no se almacenan
en l
Puede controlar transferencias Memoria E/S
No puede controlar transferencias E/S E/S
Puede controlar transferencias Memoria Memoria
usando un registro temporal

En cualquier caso, mientras el controlador de DMA


utiliza los buses, el procesador permanece ocioso (idle)

[STALLINGS 7.5]

79

Intel 8237A Ejemplo de transferencia

Por ejemplo, supongamos que el controlador de DMA


va a transferir un bloque de datos desde la memoria
hasta el disco
1. El controlador de disco solicitar el DMA activando la seal
DREQ (DMA Request)
2. El controlador DMA necesita usar los buses para la
transferencia (datos, direccin y control), por lo que
enva al procesador la seal HRQ (Hold Request);
esta seal debe estar activa durante toda la transmisin
3. El procesador terminar el ciclo de bus en el que se
encuentre, aunque no necesariamente terminar la
ejecucin de la instruccin

[STALLINGS 7.5]

80

Intel 8237A Ejemplo de transferencia

Por ejemplo, supongamos que el controlador de DMA


va a transferir un bloque de datos desde la memoria
hasta el disco
4. El procesador responde al controlador de DMA activando la
seal de reconocimiento HLDA (Hold Acknowledge) para
indicarle que puede usar los buses
5. El controlador de DMA activar la seal DACK (DMA
Acknowledge) para indicar al perifrico que comienza la
transmisin
6. Se realiza la transmisin de datos
7. Una vez finalizado el proceso, el controlador de DMA
desactiva la seal HRQ para indicarle al procesador que
puede volver a hacer uso de los buses

[STALLINGS 7.5]

81

Intel 8237A Ejemplo de transferencia

Cuando la transmisin de datos (paso 6) sea una


lectura de memoria, el controlador de DMA realizar
las siguientes operaciones:

Poner en el bus de direcciones la direccin del primer byte a


leer de memoria
Activar MEMR (Memory Read) para obtener el byte de
datos de memoria y ponerlo en el bus de datos
Activar IOW (Input/Output Write) para escribir en el
perifrico el dato presente en el bus
Decrementar el contador de bytes ledos
Incrementar el puntero a la posicin que debe leerse
Repetir el proceso hasta que todos los datos se hayan ledo

[STALLINGS 7.5]

82

Intel 8237A Ejemplo de transferencia

Cuando la transmisin de datos (paso 6) sea una


escritura en memoria, el controlador de DMA
realizar las siguientes operacines:

Poner en el bus de direcciones la direccin de la primera


posicin de memoria a escribir
Activar IOR (Input/Output Read) para obtener un byte de
datos del perifrico y ponerlo en el bus de datos
Activar MEMW (Memory Write) para escribir en memoria
el dato presente en el bus
Decrementar el contador de bytes escritos
Incrementar el puntero a la posicin en que se debe escribir
Repetir el proceso hasta que todos los datos se hayan escrito

[STALLINGS 7.5]

83

Intel 8237A Canales de DMA

El 8237A tiene cuatro canales (0, 1, 2 y 3)


Cada canal se puede programar independientemente
Cualquiera canal puede estar activo en un momento dado,
incluso varios (o todos) de forma simultnea

El 8237A dispone de ocho registros de datos que


utiliza para indicar la posicin y el tamao de la
zona de memoria afectada por una transferencia
Un registro de direccin de memoria por cada canal
Un registro contador por cada canal

[STALLINGS 7.5]

84

Intel 8237A Canales de DMA

El 8237A dispone de cinco registros de control que se


utilizan para programar y controlar la operacin DMA
de cada uno de los cuatro canales

Orden (command)
Estado (status)
Modo (mode)
Mscara simple (single mask)
Mscara completa (all mask)

[STALLINGS 7.5]

85

Intel 8237A Registros de Control

[STALLINGS 7.5]

86

Intel 8237A Registros de Control

Orden (command): el procesador carga este registro


para controlar la operacin de DMA
D0 habilita una transferencia Memoria Memoria que
usa el canal 0 para leer un byte en un registro temporal y el
canal 1 para transferirlo de nuevo a memoria
D1 permite deshabilitar el incremento/decremento en el
canal 0 para forzar la transmisin de un valor fijo
D2 habilita/deshabilita las operaciones de DMA
D3 reduce el periodo de bus
D4 elige entre prioridad fija y prioridad mxima rotatoria
D5 define el comportamiento de la seal MEMW
D6 y D7 define cuando DREQ y DACK estn activas (0 1)

[STALLINGS 7.5]

87

Intel 8237A Registros de Control

Estado (status): el procesador lee este registro para


determinar el estado del controlador de DMA
D0 D3: indican si los canales 0 3 han alcanzado el valor
final de la cuenta
D4 D7: indican si hay una peticin de DMA pendiente en
los canales 0 3

[STALLINGS 7.5]

88

Intel 8237A Registros de Control

Modo (mode): el procesador carga este registro para


establecer el modo de operacin de un canal
D0,D1: selecciona el canal
D2 D7: establece el modo de operacin del canal elegido
D2,D3: indican si la transferencia es E/S Memoria (escritura) o
Memoria E/S (lectura)
D4: vuelve a cargar el registro de direccin de memoria y el registro
contador a los valores iniciales una vez que termina la transferencia
D5: indica si durante la transferencia hay que incrementar o
decrementar las direcciones
D6,D7: determina el modo de utilizacin del 8237A
Simple: se transfiere un nico bit de datos
Bloque/Demanda: transfiere bloques (demanda = finalizacin prematura)
Modo cascada: permite encadenar varios para tener ms de cuatro canales

[STALLINGS 7.5]

89

Intel 8237A Registros de Control

Mscara simple (single mask): el procesador modifica


este registro para deshabilitar un canal determinado
enmascarando la entrada DREQ
D0,D1: selecciona el canal
D2: activa o desactiva el bit de mscara correspondiente al
canal seleccionado

Mscara completa (all mask): es similar al anterior


pero permite habilitar/deshabilitar todos los canales
en una sola operacin

[STALLINGS 7.5]

90

Estructura del tema

Introduccin
La entrada/salida en el procesador
Definicin de perifrico e interfaz

Controladores de entrada/salida
Funciones de un controlador
Estructura de un controlador

Tcnicas para las operaciones de entrada/salida


Entrada/salida programada
Entrada/salida mediante interrupciones
Acceso directo a memoria

Evolucin de la entrada/salida
91

Evolucin de la Entrada/Salida

A medida que los computadores evolucionaban,


entrada/salida ha evolucionado con ellos

la

1. El procesador controlaba directamente los perifricos


2. Aparece el controlador de E/S y el procesador se
independiza de los detalles especficos de la interfaz
de los perifricos; las operaciones se gestionan por
medio de E/S programada
3. Surge el concepto de interrupcin; el procesador
ya no tiene que esperar por las operaciones de E/S,
aumentando su eficiencia
4. Aparece el DMA; el procesador ya slo necesita
involucrarse al comienzo y al final de las operaciones
[STALLINGS 7.6]

92

Evolucin de la Entrada/Salida

A medida que los computadores evolucionaban,


entrada/salida ha evolucionado con ellos

la

5. Canales de E/S: los controladores mejoran tanto que se


comportan como pequeos procesadores con su propio
repertorio de instrucciones especializado
El procesador especifica al canal una secuencia de
actividades, indicndole que ejecute su propio programa
desde memoria, y se desentiende hasta que la secuencia
termine y reciba una interrupcin
6. Procesadores de E/S: el canal de E/S tiene memoria propia
puede controlar un conjunto grande de dispositivos de E/S
con una intervencin mnima por parte del procesador

[STALLINGS 7.6]

93

Canales de Entrada/Salida
En general, esta evolucin se caracteriza por que cada
vez ms funciones se realizan sin intervencin del
procesador, mejorando con ello su rendimiento
Los canales y procesadores de E/S son un cambio
importante en el concepto de controlador de E/S

Amplan el concepto de DMA con la capacidad de


ejecutar programas de E/S
La capacidad de ejecutar instrucciones de E/S les
proporciona completo control sobre las operaciones de E/S
Tanto el trmino canal como el trmino procesador se
pueden utilizar indistintamente, pero usaremos canal
de E/S para generalizar y evitar confusiones
[STALLINGS 7.6]

94

Canales de Entrada/Salida

El procesador no ejecuta instrucciones de E/S


Se almacenan en memoria como programas independientes
Al principio de una transferencia, el procesador indica al
canal de E/S qu programa debe ejecutar
El programa de entrada salida determina

Dispositivo/s a utilizar
rea/s de memoria
Prioridades
Acciones a realizar en caso de error

El canal de E/S sigue estas instrucciones y controla


la transferencia

[STALLINGS 7.6]

95

Canales de Entrada/Salida

En general, se pueden distinguir dos tipos de canales


de E/S: selectores y multiplexores
Un canal selector se usa en lugar del procesador para
gestionar los controladores
Controla varios dispositivos de velocidad elevada
Cada dispositivo (o grupo de ellos) es gestionado por un controlador
En un momento dado, el canal de E/S selecciona un dispositivo y
efecta una transferencia

[STALLINGS 7.6]

96

Canales de Entrada/Salida

En general, se pueden distinguir dos tipos de canales


de E/S: selectores y multiplexores
Un canal multiplexor puede gestionar la E/S de varios
dispositivos al mismo tiempo
Los datos enviados por varios
dispositivos son entrelazados
y transmitidos tan rpidamente
como sea posible
Dispositivos de velocidad reducida:
entrelazado a nivel de bytes
Dispositivos de velocidad elevada:
entrelazado a nivel de bloques

[STALLINGS 7.6]

97

Bibliografa

GRACIAS

98

También podría gustarte