Tema 7: Sistemas de Entrada/Salida - Área de …atc2.aut.uah.es/~juani/documentos/capitulo7.pdf ·...

21
Fundamentos de Computadores Tema 7: Sistemas de Entrada/Salida Problemática de la Entrada/Salida: Problemática de la selección del periférico Mapas de Entrada/Salida Problemática de la sincronización: Entrada/Salida programada Entrada/Salida mediante interrupciones Acceso directo a memoria (DMA) Bibliografía Comunicación CPU-Periféricos Ejemplos de periféricos Unidad de disco Puerto serie Monitor Sistema de adquisición de datos

Transcript of Tema 7: Sistemas de Entrada/Salida - Área de …atc2.aut.uah.es/~juani/documentos/capitulo7.pdf ·...

Fundamentos de Computadores

Tema 7:Sistemas de Entrada/Salida

Problemática de la Entrada/Salida:Problemática de la selección del periférico

Mapas de Entrada/Salida

Problemática de la sincronización:

Entrada/Salida programada Entrada/Salida mediante interrupciones Acceso directo a memoria (DMA)

Bibliografía Comunicación CPU-Periféricos Ejemplos de periféricos

Unidad de discoPuerto serieMonitorSistema de adquisición de datos

2Fundamentos de ComputadoresDepartamento de Automática Universidad de Alcalá

Bibliografía

Arquitectura de Computadores (Capítulo 6)José A. de Frutos, Rafael Rico. Ed. Servicio de Publicaciones de la UA

Fundamentos de los Computadores (Capítulo 8)Pedro de Miguel Anasagasti. Ed. Paraninfo

Arquitectura de computadores. Un enfoque cuantitativo (Capítulo 9) Hennessy, J.L., Patterson, D.A Ed. McGraw-Hill.

Estructura y diseño de computadores: Interficie circuitería/programación(Capítulo 8). Patterson, D.A., Hennessy, J.L.. Ed. Reverté.

Organización y Arquitectura de Computadores (Capítulo 6)William Stallings. Ed. Prentice Hall

3Fundamentos de ComputadoresDepartamento de Automática Universidad de Alcalá

Comunicación CPU-Periféricos (I)

El fin de los sistemas de E/S de un computador es comunicar éste con el mundo exterior

Esta comunicación cubre numerosos aspectos: desde la interacción hombre-máquina hasta el control de procesos en sistemas automáticos La transferencia de información entre la CPU (computador) y el mundo exterior se realiza a través de dispositivos llamados periféricos Los periféricos realizan la interfaz entre el mundo síncrono y codificado del computador y el mundo analógico exterior

MEMORIACENTRALALU UC

CPU

COMPUTADOR

SISTEMASDEE/S

MUNDOEXTERIOR

4Fundamentos de ComputadoresDepartamento de Automática Universidad de Alcalá

Comunicación CPU-Periféricos (II)

Los periféricos pueden ser:Dispositivos de entrada de datos: el teclado, el ratón, elscaner, los sensores de magnitudes mecánicas oelectricas, etc Dispositivos de salida de datos: como el monitor, la impresora, etc Dispositivos de entrada y salida de datos: como los discos

Un caso especial de periférico son los puertos serie o paralelo que representan simplemente canales de E/S de datos entre CPU y el exterior

Un periférico siempre tiene dos partes: El controlador: se encarga de la comunicación con la CPU El dispositivo mecánico, electromecánico o electromagnético con su electrónica de control (o un transductor en el caso de sensores)

Misión del controlador:Transferencia de datos (objeto propio de la comunicación) Protocolo de la transferencia ("ponerse de acuerdo" en el cómo y el cúando)

Misión del dispositivo:Relación con el exterior

5Fundamentos de ComputadoresDepartamento de Automática Universidad de Alcalá

Ejemplos de periféricos (I)

PERIFÉRICO

CONTROLADOR

asignación depuerto de E/S

sincronización

codificacióndecodificación

física delfenómeno DISPOSITIVO

registro de datos

registro de control

Señales de control

Direcciones

Datos

Ejemplo de un periférico general

6Fundamentos de ComputadoresDepartamento de Automática Universidad de Alcalá

Ejemplos de periféricos (II)Unidad de disco

Ejemplo de un disco

UNIDAD DE DISCO

CONTROLADORA IDE

DMA transfer.

codificación / decodificación

registro de datosregistro de control

lógica de control de motores

discos

motor discos

motor posicióncabezas

Señales de control

Direcciones

Datos

7Fundamentos de ComputadoresDepartamento de Automática Universidad de Alcalá

Ejemplos de periféricos (III)Puerto serie

Ejemplo de un puerto serie

PUERTO SERIE

CONTROLADOR

reloj

registro de datosregistro de control

conector DB9

INTERFAZ RS-232C1 5

6 9

2 RxD3 TxD4 DTR5 Gnd

6 DSR7 RTS8 CTS

Señales de control

Direcciones

Datos

8Fundamentos de ComputadoresDepartamento de Automática Universidad de Alcalá

Ejemplos de periféricos (IV)Monitor

Ejemplo de un monitor

MONITOR

CONTROLADORA VGADMA transfer.

Codificación-RGB&sincronismo

registro de datos

registro de control

MEMORIA

F. A.

electrónicaalta frecuencia

1 red2 green3 blue13 horiz. sync.14 vert. sync.

conector DB15

Señales de control

Direcciones

Datos

9Fundamentos de ComputadoresDepartamento de Automática Universidad de Alcalá

Ejemplos de periféricos (V)Sistema de adquisición de datos

SISTEMA DE ADQUISICIÓN DE DATOS

TARJETA DE ADQUISICIÓN

registro de datos

registro de control

acondicionamientode señal

tensiones termopar

fuente de tensión

mux.A/D

temporizador

memoria

DMAIRQ

Señales de control

Direcciones

Datos

Ejemplo de un sistema de adquisición de datos

10Fundamentos de ComputadoresDepartamento de Automática Universidad de Alcalá

Problemática de la Entrada/Salida (I)

1. Selección del periférico Direccionando los registros de datos y de controlA cada periférico le corresponden varias direcciones del mapa de E/S, llamadas puertos

2. SincronizaciónProblemática de salida de datos:La CPU trabaja a una velocidad muy superior a la que transmiten información los periféricos, de manera que pueden ser desbordadosProblemática de la entrada de datos:La información no es generada por el periférico en sincronía con la CPU

3. Gestión de las señales de control

Solución CPU, controlador del dispositivo y software de E/S

11Fundamentos de ComputadoresDepartamento de Automática Universidad de Alcalá

Problemática de la Entrada/Salida (II)Problemática de selección del periféricoMapas de Entrada/Salida

Existen dos soluciones:Mapas de memoria y de E/S disjuntos (separados)Mapas de memoria y de E/S comunes (E/S mapeada en memoria)

La forma de direccionar puertos es similar a la de posiciones de memoria; tan solo cambian las señales de control si los mapas de memoria y E/S son disjuntos.

12Fundamentos de ComputadoresDepartamento de Automática Universidad de Alcalá

Problemática de la Entrada/Salida (III)Problemática de la sincronización (I)Sincronización controlador-dispositivo

El registro de estado del controlador informa a la CPU sobre el estado de las señales que se encargan de la sincronización con el dispositivo:

Petición de servicio Ocupado/error Servicio terminado

El registro de estado puede indicar también situaciones de error, anomalías en el funcionamiento del periférico, etc.

Petición de servicio

Ocupado/Error

Servicio terminado

controlador

dispositivo

dispositivo

CONTROLADOR DISPOSITIVO

Información

Petición de servicioOcupado/Error

Servicio terminado

PERIFÉRICO

Datos

Direcciones

CPU

13Fundamentos de ComputadoresDepartamento de Automática Universidad de Alcalá

Problemática de la Entrada/Salida (IV)Problemática de la sincronización (II)

Debe haber mecanismos que resuelvan los problemas de temporización Hay que tener en cuenta esta temporización en dos aspectos:

Inicio de la transferencia Transferencia propiamente dicha

Según la intervención de la CPU en estos momentos tenemos:E/S programada: la CPU tiene todo el protagonismo ya que inicia y lleva a cabo la transferencia E/S por interrupción: la CPU ejecuta la transferencia pero el inicio es pedido por el periférico que indica así su disponibilidad Acceso directo a memoria (DMA): la transferencia es realizada por un controlador especializado

14Fundamentos de ComputadoresDepartamento de Automática Universidad de Alcalá

Problemática de la Entrada/Salida (V)Problemática de la sincronización (III)Entrada/Salida programada

PollingLa CPU consulta si los periféricos están disponibles para realizar una transferencia registro de estado del controlador del periférico

La CPU inicia y realiza la transferenciaLa transferencia puede ser:

Incondicional: la CPU no comprueba si el periférico está disponibleCondicional: la CPU comprueba si el periférico está disponible antes de iniciar una transferencia de información. Este método se conoce como sondeo o polling

Ventajas: Programación sencilla y el hardware es simple Inconveniente: Se malgasta tiempo de proceso

Datodisponible?

otras tareas

si

no fin?

si

no

LECTURA/ENTRADA

lectura reg. datos

lectura reg. estado

Aceptanuevo dato?

otras tareas

si

no fin?

si

no

ESCRITURA/SALIDA

escritura reg. datos

lectura reg. estado

15Fundamentos de ComputadoresDepartamento de Automática Universidad de Alcalá

Problemática de la Entrada/Salida (VI)Problemática de la sincronización (IV)Entrada/Salida mediante interrupciones (I)

En la E/S por interrupción:1º El periférico realiza la petición de

servicio mediante una señal de control específica (interrupción hardware)

2º Cuando la interrupción es aceptada por la CPU, ésta abandona momentáneamente el programa principal para ejecutar la rutina de tratamiento de la interrupción y realiza la transferenciaAntes de comenzar la rutina de tratamiento de la interrupción la CPU debe salvar la dirección de retorno y el registro de estado

ANTES INT RUTINA INT DESPUÉS INT

PC

FLAGS

PILA

Siguiente instrucción

SP

Vector deinterrupción

Siguienteinstrucción

Estado

SP

SPEstado

Siguienteinstrucción

Estado

16Fundamentos de ComputadoresDepartamento de Automática Universidad de Alcalá

Problemática de la Entrada/Salida (VII)Problemática de la sincronización (V)Entrada/Salida mediante interrupciones (II)

Mecanismos de la E/S por interrupción:Aceptación o no de la petición de interrupción Dirección donde se encuentra la rutina de tratamiento de la interrupción (vector de interrupción) Conexión de varios periféricos con capacidad de interrumpir Gestión de prioridades en caso de peticiones simultáneas

Aceptación de interrupcionesLas interrupciones pueden ser:

Enmascarables: se pueden dejar de atender por procedimiento software No enmascarables: siempre son atendidas

Vector de interrupciónExisten dos formas de determinar la posición en la que se encuentra la rutina de tratamiento de la interrupción:

Vector de interrupción fijo y determinado por la CPU El periférico suministra el vector de interrupción completo o una codificación del mismo

17Fundamentos de ComputadoresDepartamento de Automática Universidad de Alcalá

Problemática de la Entrada/Salida (VIII)Problemática de la sincronización (VI)Entrada/Salida mediante interrupciones (III)

Conexión de varios periféricos y gestión de prioridadesResolver cómo conectarlos con la CPU Establecer prioridadesDeterminar el vector de interrupción

1. CPU con una línea de interrupción:Todos los periféricos hacen la petición en la misma línea El vector de interrupción es fijo y común a todos los periféricos La rutina de interrupción identifica mediante polling el periférico que interrumpió a la CPU y desactiva la petición La prioridad se determina por el orden en que se realiza el polling

2. CPU con varias líneas de interrupción:

Cada periférico hace la petición por una línea distinta El vector de interrupción es fijo pero diferente para cada línea y por tanto para cada periférico La prioridad la determina internamente la CPU

3. CPU con línea de petición de interrupción y de aceptación (I):

La CPU cuenta con una línea de entrada INT para las peticiones de interrupción y con una línea de salida INTA para dar los reconocimientos de interrupción

18Fundamentos de ComputadoresDepartamento de Automática Universidad de Alcalá

Problemática de la Entrada/Salida (IX)Problemática de la sincronización (VII)Entrada/Salida mediante interrupciones (IV)

3. CPU con línea de petición de interrupción y de aceptación (II):

a) Encadenamiento de periféricos odaisy-chain Todos los periféricos piden servicio por la misma línea (INT)Cuando la CPU acepta la interrupción activa INTAEl periférico de mayor prioridad desactiva la petición y activa unbiestable de concesiónLa CPU identifica por polling el periférico que ha interrumpido, observando el biestable de concesiónEl vector de interrupción es fijo y la resolución de prioridades es por daisy-chain

b) Interrupciones vectorizadas Todos los periféricos piden servicio por la misma línea (INT)Cuando la CPU reconoce la interrupción (INTA), el periférico se identifica poniendo en el bus de datos el vector de interrupciónLa resolución de prioridades se puede realizar por daisy-chain

19Fundamentos de ComputadoresDepartamento de Automática Universidad de Alcalá

Problemática de la Entrada/Salida (X)Problemática de la sincronización (VIII)Entrada/Salida mediante interrupciones (V)

3. CPU con línea de petición de interrupción y de aceptación (III):

c) Gestión centralizada de interrupciones mediante controlador Un PIC (Programmable Interruption Controller) permite la conexión de distintos periféricos a la línea de petición de la CPU expandiendo en varios niveles dicha línea (INT)Resuelve la gestión de prioridades de forma flexible:

Prioridad fija (por orden) Línea prioritaria la que lleva más tiempo sin atenderse

Permite enmascarar aquellas líneas que se desee mediante un registro de máscara programable Admite controladores esclavos para expandir más niveles de interrupción

20Fundamentos de ComputadoresDepartamento de Automática Universidad de Alcalá

Problemática de la Entrada/Salida (XI)Problemática de la sincronización (IX)Acceso directo a memoria - DMA (I)

En el acceso directo a memoria (Direct Memory Access):El controlador del periférico se comunica directamente con la memoria principal del computador La CPU no realiza ninguna tarea, tanto la inicialización como la transferencia son gobernadas por el periférico La transferencia de E/S se lleva a cabo por la activación de las señales de control de acceso a memoria

señales de control

DATOS

DIRECCIONES

MEMORIAPRINCIPAL

ControladoraDMA

CPU

HOLDAHOLD

21Fundamentos de ComputadoresDepartamento de Automática Universidad de Alcalá

Problemática de la Entrada/Salida (XII)Problemática de la sincronización (X)Acceso directo a memoria - DMA (II)

Formas de realizar el DMA:Acceso directo a memoria multipuerto

Una memoria multipuerto es aquella que tiene posibilidad de realizar transferencias simultáneas con el exterior por medio de varios puertos A cada puerto se le asigna un registro de datos y otro de direcciones que guardan el dato transferido y la dirección de transferencia

Acceso directo a memoria por robo de ciclo La memoria tiene un solo puerto que es compartido entre el controlador de DMA y la CPU Siempre que el periférico requiera una transferencia DMA debe hacer una petición de robo de ciclo a la CPU (HOLD) La CPU hace la concesión (HOLDA)El controlador de DMA controla los buses de direcciones y datos, y las señales de control de memoria y E/STerminada la transferencia, el controlador lo comunica a la CPU

MEMORIA

Puerto 1 Puerto 2 Puerto 3

Bus de datosBus de direccionesBus de control

CPUBus de datos

Bus de direccionesBus de control

Controladorperiférico