Sie sind auf Seite 1von 25

Tema 4: SISTEMAS DE ENTRADA/SALIDA

NDICE
1. 2. 3. 4.

Introduccin. Mdulos de Entrada/Salida: comunicacin CPU - Perifricos. Mapa de Entrada/Salida: comn y separada. Introduccin a los mtodos de programacin de E/S. E/S programada. E/S por interrupciones. Acceso directo a memoria. Canales y procesadores de E/S. Ejemplo de dispositivo de E/S: puerto paralelo (interfaz centronics).

5. 6.

Introduccin (I)

Un computador no puede estar formado slo por la CPU y la memoria. Para darle alguna utilidad debe comunicarse con el mundo exterior (perifricos) a travs del subsistema de entrada/salida.

CPU
Interconexiones

Memoria

E/S
Perifricos

1. Introduccin

Introduccin (II)
La misin principal del subsistema de E/S es adaptar los dispositivos externos antes de conectarlos al bus del sistema.

Por qu no se conectan directamente al bus del sistema?

La velocidad de transmisin de datos de los perifricos es siempre menor que la de la memoria y la CPU. Es necesario amortiguar esa diferencia de velocidades. Debido a la gran diversidad de perifricos no es posible incorporar toda la lgica necesaria en el computador para manejar cada uno de stos. Los tamaos y formatos de datos de los perifricos son diferentes a los del resto del computador.
3

1. Introduccin

Implementacin del sistema de E/S

Hay dos formas de implementar la E/S en un computador:


1.

Construir a medida el subsistema utilizando elementos bsicos. (Ejemplo: circuito para que al escribir un 1 en una direccin de memoria se ilumine un LED). o bien incorporar y programar dispositivos estndares ms complejos y genricos (Ej. 8255).

2.

(2)

(1)

1. Introduccin

Funciones Bsicas del sistema de E/S

Direccionamiento: Seleccin del dispositivo correspondiente de entre todos los dispositivos presentes en el sistema. Sincronizacin: Permitir que la CPU y la memoria (alta
velocidad transferencia de datos) se puedan comunicar con los dispositivos de E/S (baja velocidad) sincronizando los envos de datos entre ambos. (Inicio de la transferencia).

Transferencia: El sistema de E/S debe tener toda la circuitera y


seales de comunicacin apropiadas para llevar a cabo la comunicacin con cada uno de los dispositivos del sistema. (Mtodo de transferencia).

1. Introduccin

Comunicacin CPU - Perifricos


La E/S se implementa mediante perifricos. Perifrico:

Elemento que permite la transferencia de informacin entre la CPU y el mundo exterior. Interfaz que traduce la informacin asncrona y analgica del mundo exterior a la informacin sncrona y codificada del computador. Dos partes: mdulo de E/S (controlador) y dispositivo externo.

2. Perifrico

Comunicacin CPU - Perifricos


disco

Mdulo E/S Bus sistema Bus perifricos

Dispositivo

Comunicacin CPU/Mem perifrico

Comunicacin exterior

2. Perifrico

Comunicacin CPU - Perifricos

Impresora Teclado Monitor H.D.

CPU

Memoria

Mdulo E/S

Mdulo E/S

Mdulo E/S

Mdulo E/S Bus del sistema

2. Perifrico

Mdulo de E/S
Funciones
Elemento que permite la conexin de un dispositivo externo al bus del sistema.
1.

Control y Temporizacin:
Coordina el trfico entre dispositivos internos (memoria, CPU) y externos (impresora, monitor, ).

2.

Comunicacin con la CPU:


Reconocer la direccin de la CPU que identifica al dispositivo externo Recepcin y decodificacin de mandatos (comandos) desde la CPU Transferencia de datos entre la CPU y el dispositivo externo Informacin sobre el estado del perifrico

3. 4. 5.

Comunicacin con el/los dispositivo/s (rdenes, estado, datos). Almacenamiento temporal de datos. Deteccin de errores.

2. Perifrico. Mdulo de E/S

Comunicacin CPU Dispositivo externo


Direccin Datos Control Dato Salida
CPU Modulo E/S DISPOSITIVO EXTERNO

Ordenes Estado Dato Entrada

Control Estado

Datos

2. Perifrico. Mdulo de E/S


10

Comunicacin CPU Dispositivos externos

2. Perifrico. Mdulo de E/S


11

Dispositivo Externo

Elemento que permite la transferencia de informacin entre la CPU y el mundo exterior.

La forma de comunicacin con el mdulo de E/S se hace mediante:


SEALES DE CONTROL (mandatos/comandos enviados por la CPU), ESTADO (informacin sobre el funcionamiento del dispositivo) y DATOS.
CONTROL ESTADO DATOS

INTERFAZ MDULO E/S

BUFFER LGICA DE CONTROL


INTERFAZ MUNDO EXTERIOR

TRANSDUCTOR
DATOS

Funciona a modo de interfaz, transformando la informacin asincrona y analgica del mundo exterior a la informacin sincrona y codificada del computador (transductor) Internamente suele haber una serie de buffers que son capaces de almacenar temporalmente datos o informacin adicional de contexto.

2. Perifrico. Dispositivo externo

12

Ejemplos de perifricos Unidad de Disco

13

Ejemplos de perifricos Puerto Serie

14

Ejemplos de perifricos Monitor

15

Ejemplos de perifricos Sistema de Adquisicin de Datos

16

MAPA DE E/S:
E/S comn y separada
Segn el modo de seleccionar el perifrico y el acceso a sus registros de control, datos y estado:

E/S comn o asignada/mapeada en memoria


El acceso a estos mdulos se realiza de igual modo a como se accede a un dato de memoria principal. Los perifricos se integran en el computador como si fueran parte de la memoria Comunicarse con un mdulo de E/S es leer y escribir en memoria. Ej: 68000. VENTAJA: Se aprovecha la potencia del juego de instrucciones. INCONVENIENTE: Se desperdicia parte del espacio de direcciones.
Bus del sistema

CPU

Memoria

Unidad de E/S 1

...

Unidad de E/S n

3. Mapa de E/S

17

MAPA DE E/S:
E/S comn y separada

E/S aislada o separada


El acceso a la E/S est contemplado en la arquitectura. Existen dos mapas de memoria separados: uno para memoria y otro para E/S Existen seales e instrucciones especficas. Ej: intel 80x86.
Bus del sistema
MEM/IO Unidad de E/S 1 Unidad de E/S n

CPU

Memoria

...

Bus de memoria
CPU Memoria

Bus de E/S

Unidad de E/S 1

...

Unidad de E/S n

3. Mapa de E/S

18

Ejemplo de Mapa de E/S

3. Mapa de E/S

19

Mapa de E/S en el PC-AT

3. Mapa de E/S

20

10

Mtodos de programacin de E/S.

E/S Programada (Encuesta o pooling). E/S por interrupciones. Acceso directo a memoria (DMA).

4. Mtodos de programacin de E/S

21

E/S Programada (Encuesta o pooling)

La CPU se dedica por completo a realizar la operacin de E/S:

realiza la inicializacin, la comprobacin de estado y la transferencia.

La CPU tiene el control absoluto de la operacin de E/S. Ventaja: Hardware mnimo. Inconvenientes:

Malgasta tiempo de proceso (interroga continuamente al perifrico). Dificultad para atender varios perifricos.
Inicio ... Inicializar Periferico() Mientras existan datos que transferir hacer Recoger estado del perifrico() Si el estado del periferico es PREPARADO entonces Transferir informacion() Fin Si Fin Mientras ... Fin

Bucle de espera activa

4. Mtodos de programacin de E/S. E/S PROGRAMADA

22

11

E/S por interrupciones

La E/S le indica a la CPU cuando est preparada para transferir datos (genera una interrupcin a la CPU), activando una lnea especial conectada a la CPU (lnea de interrupcin).

Lnea de interrupcin

CPU

Mod E/S

Mem

4. Mtodos de programacin de E/S. E/S POR INTERRUPCIONES

23

Funcionamiento
1.

El procesador ejecuta instrucciones de un programa. Al finalizar cada instruccin comprueba si se ha producido una interrupcin. En caso afirmativo se salva el estado actual del programa (contador del programa y registros) y se salta a ejecutar la rutina de servicio correspondiente.

2.

Programa ... Inic. perifrico ... Instr i ... Instr j ... Instr k ...

Se activa la lnea de interrupcin

Rutina de Servicio

... ... ...


Sigue con la ejecucin del programa principal Se realiza la transferencia de datos, ya que es el perifrico quien la pide (est preparado).

3.

La rutina de servicio efecta las operaciones apropiadas en la E/S para realizar la transferencia de datos solicitada. Al finalizar la rutina de servicio se recupera el estado de la CPU y se contina ejecutando el programa que se estaba ejecutando antes de la interrupcin.

4.

4. Mtodos de programacin de E/S. E/S POR INTERRUPCIONES

24

12

Clasificacin de Interrupciones

Segn FUENTE que produce la interrupcin:

Interrupciones HARDWARE

INTERNAS (producidas por la CPU) EXTERNAS (producidas por los dispositivos de E/S)

Vectorizadas No vectorizadas

Interrupciones SOFTWARE (producidas por la ejecucin de instrucciones de la CPU).

Segn MODO DE CONOCER el VECTOR DE INTERRUPCIN (la direccin donde se encuentra la rutina de servicio de la interrupcin):

Interrupciones AUTOVECTORIZADAS: el vector de interrupcin es FIJO. Interrupciones VECTORIZADAS: el vector de interrupcin lo suministra el propio perifrico

4. Mtodos de programacin de E/S. E/S POR INTERRUPCIONES

25

Interrupciones Vectorizadas

Con el vector de interrupcin se indexa una tabla de vectores en memoria principal para obtener la direccin de la rutina de servicio a la que hay que saltar.

4. Mtodos de programacin de E/S. E/S POR INTERRUPCIONES

26

13

Conexin de varios perifricos

Generalmente existen VARIOS PERIFRICOS conectados (y no uno slo) que pueden realizar interrupciones. Es necesario: Decidir cmo se conectan los perifricos a la CPU.

Una sola lnea de interrupcin. Varias lneas de interrupcin.

Establecer prioridades. Determinar para cada perifrico su vector de interrupciones.

4. Mtodos de programacin de E/S. E/S POR INTERRUPCIONES

27

Una sola lnea de interrupcin


Todos los perifricos interrumpen por la misma lnea. El vector de interrupcin es fijo y comn a todos los perifricos. Mediante polling (Consulta software del Registro de Estado) la CPU identifica el perifrico y desactiva la interrupcin. La prioridad viene determinada por el orden de la encuesta.

Inconveniente: Tiempo consumido en la consulta software.

4. Mtodos de programacin de E/S. E/S POR INTERRUPCIONES

28

14

Varias lneas de interrupcin


Cada perifrico tiene su lnea de interrupcin. Cada lnea tiene su propio vector de interrupcin asociado. La CPU determina la prioridad.

CPU

PERIFERICO 0

PERIFERICO 1

...

PERIFERICO n

INT0 INT1 INTn

Inconveniente: Malgasta terminales de CPU. Si hay ms perifricos que lneas?

4. Mtodos de programacin de E/S. E/S POR INTERRUPCIONES

29

Daisy-chain o conexin en cadena


Una nica lnea INT para todos los perifricos. El vector de interrupciones es fijo. La CPU enva la seal INTA, como reconocimiento de la interrupcin. Si el perifrico que recibe la seal INTA, no gener la interrupcin, entonces la transmite al siguiente elemento de la cadena. La seal INTA se propaga de un perifrico a otro y el perifrico de mayor prioridad desactiva la peticin de interrupcin INT. La prioridad viene determinada por la posicin del perifrico en la cadena.

4. Mtodos de programacin de E/S. E/S POR INTERRUPCIONES

30

15

Controlador de interrupciones
(PIC, programmable interrupt controller)

Permite conectar interrupciones.


varios

perifricos

una

misma

lnea

de

Enmascarar interrupciones por software Definir vectores de interrupciones asociados a cada interrupcin Gestionar prioridades.

Ej: el i8259

4. Mtodos de programacin de E/S. E/S POR INTERRUPCIONES

31

32

16

Acceso Directo a Memoria (DMA)


Ejemplo de E/S con perifrico lento
Imprimir un archivo de 10KB en una impresora lser de 20 pginas por minuto.

E/S programada

La CPU entra en un bucle y enva un nuevo byte cada vez que la impresora est preparada. La impresora tarda 10s en imprimir 10 Kbytes. La CPU est ocupada 10 s con la operacin de E/S (la CPU podra haber ejecutado 1000 millones de
instrucciones).

CPU
200MhZ CPI = 2

MEMORIA
10 KBytes

Modulo E/S

E/S por interrupciones

Tc = 1/FREC = 1/200x106seg = 1/200x106x 10-9 ns = 5ns Tiempo promedio de ejecucin de una instruccin = 2 x 5ns = 10ns

20 pag/min 1 pag = 3000 bytes

La impresora genera una interrupcin cada vez que est preparada. Si la Rutina de Interrupcin tiene 10 instrucciones
(salvar contexto, comprobar estado, transferir byte, restaurar contexto, rti), para transferir 10 Kbytes se ejecuta 10.000 x 10 instrucciones. La CPU est ocupada 0,001 s con la operacin de E/S.

La impresora imprime 20 x 3000 = 60000 bytes/minuto = 1000 b/s = 1Kbyte/s

4. Mtodos de programacin de E/S. DMA

33

Acceso Directo a Memoria (DMA)


Ejemplo de E/S con perifrico rpido
Transferir un archivo de 10MB de la memoria a disco.

E/S programada

La CPU entra en un bucle y enva un nuevo byte cada vez que el disco est preparado. El disco tarda 1s en recibir 10 Mbytes. La CPU est ocupada 1 s con la operacin de E/S (la CPU podra haber ejecutado 100 millones de instrucciones).

CPU
200MhZ CPI = 2

MEMORIA
10 MBytes

Modulo E/S

E/S por interrupciones

Tc = 1/FREC = 1/200x106seg = 1/200x106x 10-9 ns = 5ns Tiempo promedio de ejecucin de una instruccin = 2 x 5ns = 10ns

El disco genera una interrupcin cada vez que est preparado. Si la Rutina de Interrupcin tiene 10 instrucciones
(salvar contexto, comprobar estado, transferir byte, restaurar contexto, rti), para transferir 10Mbytes se ejecuta 10.000000 x 10 instrucciones. La CPU est ocupada 1 s con la operacin de E/S.

10 Mbytes/s
10 MBytes

4. Mtodos de programacin de E/S. DMA

34

17

Acceso Directo a Memoria (DMA)


Motivacin y Definicin

La E/S programada y la E/S por interrupcin tienen un impacto negativo sobre la actividad del procesador y la velocidad de E/S:

E/S programada: La CPU transfiere datos a alta velocidad al precio de no hacer nada. E/S por interrupciones: Libera en parte al procesador a expensas de reducir la velocidad de E/S (sobrecarga por el cambio de contexto).

DMA (Direct Memory Access): LIMITA AL MXIMO LA INTERVENCION DE LA CPU.

Es un dispositivo capaz de controlar una transferencia de datos entre un perifrico y memoria sin intervencin de la CPU.
peticin concecin

Mdulo DMA E/S

B. DIR

MEMORIA

CPU
B. DATOS

4. Mtodos de programacin de E/S. DMA

35

Estructura hardware de un DMAC

4. Mtodos de programacin de E/S. DMA

36

18

Acceso Directo a Memoria


Funcionamiento (I)
1.

Inicializacin de transferencia: la CPU enva los parmetros de la transferencia:


inicializa interfaz del perifrico: n de bytes a transferir, tipo de transferencia (R/W) inicializa DMA: n bytes/palabras, tipo de transferencia (R/W), direccin de memoria inicial para transferencia; n de canal, si DMA tiene ms de un canal

2. 3.

La CPU retorna a su tarea y se olvida de la evolucin de la transferencia. Se realiza la transferencia:


Cuando el perifrico est preparado se lo avisa a DMAC. El DMAC pide el control del bus: acta como master del bus durante la transferencia, especifica la direccin de memoria sobre la que realiza la transferencia, y realiza transferencia entre perifrico y memoria. Genera las seales de control:

Tipo de operacin (R/W). Seales de sincronizacin de la transferencia.

4.

Finaliza la transferencia:
DMAC libera el bus y devuelve el control a la CPU (generalmente con una interrupcin)
37

4. Mtodos de programacin de E/S. Funcionamiento DMA

Acceso Directo a Memoria


Funcionamiento (II)

Programa ... Programar DMA ... ... ... ... Instr i

El DMA termina la transferencia

Rutina de Servicio ... Se comprueba el estado ... del DMA por si ha habido ... algn error. ...

4. Mtodos de programacin de E/S. Funcionamiento DMA

38

19

Acceso Directo a Memoria


Control del bus
Rfagas: El DMA toma control del bus y no lo libera hasta transmitir un bloque de datos completo. Mayor velocidad de transferencia pero puede dejar sin actividad a la CPU durante periodos grandes de tiempo.
Instruccin 1 Ciclo DMA Ciclo DMA Instruccin 2

Robo de ciclos (ms usual): EL DMA toma control del bus y lo retiene durante un solo ciclo. (Transmite una palabra y libera el
bus).

Instruccin 1 Ciclo DMA

Instruccin 2 Ciclo DMA

Transparente: El DMA accede al bus solo en los ciclos en los que la CPU no lo utiliza. (En diferentes fases
de ejecucin de las instrucciones).

La ejecucin del programa no se ve afectada en su velocidad de ejecucin.


Instruccin Bsqueda Decodificacin Ciclo DMA Bsqueda Ejecucin Ciclo DMA Almacenamiento

4. Mtodos de programacin de E/S. DMA. Control del bus.

39

Acceso Directo a Memoria


Control del bus. Ejemplo de Robo de Ciclos

Solucin mas econmica. El DMA cada vez que quiere tomar el control del bus del sistema para realizar la transferencia de un dato, lo solicita a la CPU mediante la seal HOLD. La CPU concede el control del bus mediante la seal HLDA. Despus de realizar la transferencia el controlador de DMA lo comunica a la CPU mediante las seales de control correspondientes.

4. Mtodos de programacin de E/S. DMA. Control del bus.

40

20

Conexin del DMA al sistema


1.

Bus nico, DMA independiente: Acta como una CPU de E/S. Necesita un ciclo para acceder al mdulo de E/S o perifrico y otro para acceder a memoria.

2.

Bus nico, DMA y E/S integradas: alternativa para reducir un ciclo de bus en la transferencias.

3.

Bus de E/S: es una variacin de la anterior que permite hacer la arquitectura ms escalable.

4. Mtodos de programacin de E/S. DMA

41

Ejemplo de DMAC: 8237

Ejemplo de DMA: i8237. Posee 4 canales (procesadores de DMA) programables con tres modos diferentes y adems se puede poner en cascada con otros i8237.

Esquema de conexin:

4. Mtodos de programacin de E/S. DMA

42

21

Ejemplo de DMAC: Conexin CPU - 8237

4. Mtodos de programacin de E/S. DMA

43

Evolucin de la E/S

La CPU controla directamente los perifricos. Se agrega un mdulo de E/S o controlador. Aparece la gestin de E/S por interrupcin. El mdulo de E/S provee el acceso directo a memoria (DMA). El mdulo de E/S tiene su propio procesador con su pequeo conjunto de instrucciones (canal de E/S). El mdulo adems tiene su memoria local o sea se convierte en una computadora en s mismo (procesador de E/S).

5. Canales y procesadores de E/S.

44

22

Caractersticas de los canales de E/S


Los canales representan una extensin al concepto DMA. Tienen la habilidad de ejecutar instrucciones de E/S. Completo control de la transferencia de datos, por lo tanto, la CPU no ejecuta instrucciones de E/S. Instrucciones almacenadas en memoria principal que sern ejecutadas por un procesador especial en el canal. La CPU inicia la transferencia de E/S instruyendo al canal para ejecutar el programa que est en memoria. Este programa especifica dispositivos reas de memoria a usar, prioridades y acciones ante errores. El canal siguiendo las instrucciones controla la transferencia de datos.

5. Canales y procesadores de E/S.

45

Canales y procesadores de E/S


Memoria

Bus de Memoria

CPU

Bus de E/S

Procesador E/S Servidor de Terminales

Procesador E/S

Impr. 1

Impr. 2 H.D. H.D. CD-ROM Red

Term. 1

Term. 2

Term. 3

5. Canales y procesadores de E/S.

46

23

Funcionamiento

Para realizar una transferencia de E/S, la CPU primero ha de indicar qu canal de E/S ejecuta un determinado programa. La CPU tambin debe definir el rea de almacenamiento temporal, establecer una prioridad y establecer las correspondientes acciones en caso de error. El programa a ejecutar est cargado en memoria principal y puede contener instrucciones propias slo procesables por el canal de E/S. Despus de terminar la operacin de E/S, el canal de E/S deja el resultado en un rea de memoria y a continuacin genera una interrupcin para indicar que ha acabado.

5. Canales y procesadores de E/S.

47

48

24

Ejemplo de dispositivo de E/S.


Puerto paralelo (interfaz centronics).

Es un controlador de E/S que est pensado, en principio, para ser usado solamente por impresoras. Para ello habra que utilizar un cable adaptado al bus de puerto paralelo diferente al Centronics, que es el que se utiliza habitualmente. Un PC tiene dos puertos paralelos llamados LPT1 y LPT2 a partir de las direcciones o puertos de E/S 378 (LPT1) y 278 (LPT2). NOTA: no confundir puerto de E/S (direccin) con puerto hardware (puerto serie, puerto paralelo, ...) !!

6. Ejemplo de dispositivo de E/S. Puerto paralelo interfaz centronics

49

Puerto paralelo (interfaz centronics).

Registro de datos: es de slo escritura. Direcciones 378 (LPT1) y 278 (LPT2). Compuesto por un byte. Registro de estado: es de slo lectura. Direcciones 379 (LPT1) y 279 (LPT2). Compuesto por un byte.

Registro de control: es de lectura/escritura. Direcciones 37A (LPT1) y 27A (LPT2). Compuesto por un byte.
50

6. Ejemplo de dispositivo de E/S. Puerto paralelo interfaz centronics

25

Das könnte Ihnen auch gefallen