Tema 7: Sistemas de Entrada/Salida - Área de …atc2.aut.uah.es/~juani/documentos/capitulo7.pdf ·...
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