UPCO ICAI Departamento de Electrónica y Automática 1 José A. Rodríguez Mondéjar
Cesáreo Fernández Martínez
ENTRADA/SALIDA
Arquitectura de Ordenadores
Entrada/Salida
Conectar con el mundo real
CPU
1 0 0 0 0 1 0 0 0 1 1 0 0 0 0 1 1 0 0 0 1 0 1 0 1 0 0 1 0 1 0 0
1 0 0 0 0 1 0 0 1 0 1 0 1 0 0 0 0 0 1 0 0 1 0 1
MEMORIA
R0
R1
PC
RA
X
Y
MX
MY
OA
LO L1 LPC
LA
TRA TA
TPC
TAD
TDD L0 L1 LA LPC TRA TA TPC TAD TDD OP
R/W’ CS’s
DA
TA
PA
T
H
CONTR
O
L
ENTRADA
SALIDA
UPCO ICAI Departamento de Electrónica y Automática 3 José A. Rodríguez Mondéjar
Cesáreo Fernández Martínez
Ejemplo de entrada/salida muy sencilla
A0 A1 CS R/W’
D1 D0
5 V
0 1 2 3
La CPU (y por tanto mi programa) ve
el mundo como posiciones en el mapa de memoria donde se lee y escribe Cuando la CPU escribe en el bit 0 de la dirección
0, enciende (1) o apaga (0) la bombilla) Cuando la CPU lee el bit 1 de la
dirección 0, lee el estado del interruptor (1-abierto 0-cerrado)
Arquitectura de Ordenadores
Entrada/Salida
Mapa de memoria básico
CPU
00000
FFFFF
HD
Mapa de memoria
ROM
RAM
Teclado
Pantalla
Disco duro
Bus de datos
Bus de direcciones
UPCO ICAI Departamento de Electrónica y Automática 5 José A. Rodríguez Mondéjar
Cesáreo Fernández Martínez
Organización física simple
MEMORIA
8085
8085
CPU
HD
8085
8085
8085
8085
Bus del sistema
Entrada/Salida del sistema
Dispositivo (unidad)
de entrada/salida
(Periférico)
Tarjeta controladora
del dispositivo (IOC)
Arquitectura de Ordenadores
Entrada/Salida
Organización del periférico
•
Dispositivo
– Parte mecánica
• Ejemplo: disquetera
– Motor que hace girar el disco a velocidad constante
– Motor para posicionar el brazo de lectura
– Parte electrónica
• Electrónica para poder grabar y leer los datos
• Electrónica de accionamiento de los motores
•
Controlador
– Electrónica que hace ver al dispositivo como un conjunto de
registros desde la CPU.
– Simple o complicado dependiendo del dispositivo
• Interfaz con el bus
UPCO ICAI Departamento de Electrónica y Automática 7 José A. Rodríguez Mondéjar
Cesáreo Fernández Martínez
Interfaz entre periféricos y bus del sistema
•
Cada periférico tiene una interfaz compatible con el bus del
sistema que permite ver al periférico desde la CPU como un
conjunto de registros.
CPU
Bus del
sistema
Interfaz
Interfaz
Interfaz
Interfaz
Módulo de
Memoria
Módulo de
Memoria
Controladora
Disco duro
Tarjeta
gráfica
HD
Bus del
periférico
Registro de Estado Registro de Comandos Registro para dato de entrada
Registro para dato de salida INTERFAZ
Arquitectura de Ordenadores
Entrada/Salida
Organización del mapa de memoria
•
¿Cómo interconectar al bus de datos y direcciones de la
CPU?
– Memoria RAM
– Memoria ROM
– Periférico 1
– Periférico 2
– Posible opción: división en bloques de tamaño igual
CPU
ROM
RAM
Perif. 1
Perif. 2
Bus de datos
Bus de
Direcciones
+ Control
Bus de control
UPCO ICAI Departamento de Electrónica y Automática 9 José A. Rodríguez Mondéjar
Cesáreo Fernández Martínez
Programación básica del periférico
Escribir comando para inicializar periférico
Escribir comando para pedir dato al periférico (teclado)
Leer registro de estado para ver si ha llegado el dato
¿Ha llegado?
Leer dato del registro de entrada
Entrada/Salida
programada
(Polling)
No
Arquitectura de Ordenadores
Entrada/Salida
Interrupciones
•
Problemas de la
entrada/salida programada
o por polling (consulta
continua del registro de
estado)
– La CPU no puede hacer
otros trabajos
• La CPU espera durante
horas a que se teclee una
tecla
•
Solución: Interrupciones
– La CPU sigue con otros
trabajos
– Cuando el periférico está
listo avisa a través de la
línea de interrupción a la
CPU para que lea el dato
MEM
E/S 1
CPU
E/S 2
BUS
INTR 1
INTR 2
Las líneas de interrupción forman parten del bus de control dentro del
UPCO ICAI Departamento de Electrónica y Automática 11 José A. Rodríguez Mondéjar
Cesáreo Fernández Martínez
Funcionamiento de la interrupción
Instrucción 1
Instrucción 2
Instrucción 3
Instrucción 4
Instrucción 5
Instrucción 6
Instrucción 7
Instrucción 8
Instrucción 9
...
PROGRAMAINTR 2
Instrucción 1
Instrucción 2
Instrucción 3
Instrucción 4
Instrucción 5
...
IRET
RUTINA DE INTERRUPCIÓN Vector inter
rupció
n ‘2’
E/S 1
CPU
E/S 2
BUS
INTR 1
INTR 2
Se salva PCen el stack
Se recupera PC del stack
PC
MEM
Dirección INTR1 Dirección INTR2 Rutina INTR1 Rutina INTR2 Programa PC ProgramaStack
Tabla de ve ct o res d e in te rru p ció nArquitectura de Ordenadores
Entrada/Salida
DMA
•
Polling e interrupción necesitan de
la intervención de la CPU
– Ejemplo: pasar un dato de la
controladora del disco duro a la
memoria
• La CPU lee de la controladora el dato • La CPU escribe el dato en la memoria
•
DMA (Direct Memory Access)
permite pasar los datos
directamente del periférico a la
memoria sin intervención de la CPU
– El controlador de DMA (DMAC) es el
encargado de realizar la operación de
DMA entre periférico y memoria
– El controlador de DMA toma de forma
momentánea el control del bus
• Toda la operación está controlada por la CPU, a través de programa con instrucciones adecuadas para la programación del controlador de DMA
CPU
IOC
UPCO ICAI Departamento de Electrónica y Automática 13 José A. Rodríguez Mondéjar
Cesáreo Fernández Martínez
Operación de DMA simple
•
Periférico está preparado para recibir un dato de la memoria y
solicita operación de DMA a DMAC
– La CPU (mi programa) configuró previamente el periférico para recibir datos
por DMA
•
DMAC pide el control del bus a la CPU (Bus request)
•
CPU deja de controlar el bus y avisa a DMAC
•
DMAC pone dirección del dato a leer de memoria
– La CPU programó en el DMAC una dirección de inicio y un número de
transferencias
•
Memoria pone dato en el bus
•
DMAC ordena a la interfaz del periférico leer del bus
•
Interfaz del periférico lee el dato del bus
•
DMAC avisa a la CPU para que recupere el control del bus
•
A así nuevamente: DMAC va robando ciclos de la CPU de control
del bus de sistema hasta realizar toda la transferencia
– Otros modos: bloque o ráfaga
Arquitectura de Ordenadores
Entrada/Salida
Resumen métodos para realizar la Entrada/Salida
•
Polling
– Simple, no necesita hardware adicional
– Desperdicio de ciclos de reloj, el periférico debe esperar
•
Interrupción
– Atención inmediata al periférico
– Complejo, se necesita hardware adicional (líneas adicionales,
controlador de interrupciones)
•
DMA
– Velocidad al comunicar directamente la memoria con el periférico
– Complejo de programar, hardware adicional (DMAC)
•
Metodos de conexión de la entrada/salida
– Mapa de memoria
UPCO ICAI Departamento de Electrónica y Automática 15 José A. Rodríguez Mondéjar
Cesáreo Fernández Martínez
Procesadores de Entrada/Salida
•
La CPU delega en un
procesador (IOP) la
entrada/salida
•
Desde la CPU se sigue viendo
como una posición de memoria
más.
•
La CPU manda comandos al
IOP y éste los ejecuta.
– Los programas que debe ejecutar
el IOP correspondientes a esos
comandos puede estar en la
memoria principal o en una
memoria propia del procesador
(ROM)
•
Más adelante se tratará en
profundidad los buses
CPU
IOP
Mem
D1
D2
Bus
de la
CPU
I/O
bus
Bus de los
dispositivos
Dn
Arquitectura de Ordenadores
Entrada/Salida
Gestión de prioridades
•
Varios periféricos conectados: ¿A quién se atiende
primero?
– Entrada/Salida programada
• Orden en el polling
– Entrada/Salida por interrupción: la línea de interrupción puede ser
activada por varios periféricos
• Software: Polling
– Orden en la consulta del registro de estado de los periféricos
• Hardware:
– Daisy-chain
» Está cableado el orden en la atención a los periféricos
– Unidad de control programada
» Un controlador dirime a qué periféricos se atiende primero
– Entrada/Salida por DMA
UPCO ICAI Departamento de Electrónica y Automática 17 José A. Rodríguez Mondéjar
Cesáreo Fernández Martínez
Daisy-chain
•
Uno o varios periféricos activan la línea de Interrupción
•
La CPU activa la línea ACK para indicar al primer
dispositivo conectado que ponga la dirección de la rutina
de interrupción a ejecutar (o vector)
•
Cuando este periférico ha sido atendido por la rutina de
interrupción, o no ha provocado la interrupción, activa la
línea ACK del siguiente periférico.
CPU
Dispositivo1
Mayor
Prioridad
ACK
Vector Int
INT
Dispositivo2
DispositivoN
Menor
Prioridad
ACK
ACK
Arquitectura de Ordenadores
Entrada/Salida
UPCO ICAI Departamento de Electrónica y Automática 19 José A. Rodríguez Mondéjar
Cesáreo Fernández Martínez
Intercambio de información entre CPU (Mem) e IO
•
Tres niveles
– Transferencia elemental
(Carácter)
• Envío o recepción de un solo dato (byte) (dato o comando)
– Se realiza por hardware
– Su duración es del orden de una instrucción
– No depende de la velocidad del periférico
– Transferencia de bloque
(Sector)
• Mover un bloque de datos
– Por software o por DMA
– La duración la marca el periférico
– Se realiza a base de transferencias elementales
– Operación de Entrada/Salida
(Fichero)
• Transferencia completa del mensaje entre CPU (memoria) y periférico
– Por software, basado en los niveles de bloque y elemental
– La velocidad la marca el periférico
– Tratamiento de errores
Arquitectura de Ordenadores
Entrada/Salida
¿Cómo es el mundo de los periféricos?
Device
Behavior
Partner
Data rate (KB/sec)
Keyboard
input
human
0.01
Mouse
input
human
0.02
Voice input
input
human
0.02
Scanner
input
human
400.00
Voice output
output
human
0.60
Line printer
output
human
1.00
Laser printer
output
human
200.00
Graphics display
output
human
60,000.00
Modem
input or output
machine
2.00-8.00
Network/LAN
input or output
machine
500.00-6000.00
Floppy disk
storage
machine
100.00
Optical disk
storage
machine
1000.00
Magnetic tape
storage
machine
2000.00
UPCO ICAI Departamento de Electrónica y Automática 21 José A. Rodríguez Mondéjar
Cesáreo Fernández Martínez
Rendimiento de la entrada/salida
•
¿De qué depende el rendimiento?
– CPU
– Sistema de memoria
– Buses de interconexión
– Controlador del periférico
– Periférico
– Driver del sistema operativo para controlar el periférico
– Eficiencia del software utilizando el periferico
•
Métricas para medir el rendimiento
– Ancho de banda del periférico
• Número de transacciones por unidad de tiempo
– Latencia del periférico
• Tiempo entre la orden de transacción y el fin de su ejecución
Arquitectura de Ordenadores
Entrada/Salida
Importancia de la entrada/salida
UPCO ICAI Departamento de Electrónica y Automática 23 José A. Rodríguez Mondéjar
Cesáreo Fernández Martínez
Programa y periféricos
Núcleo del SO (Linux)
Programas de usuario y aplicaciones
Teclado Discos RED
Periféricos
Disp.de
Bloque Manejadores de
dispositivos Llamadas al sistema
Disp.de Caracter
Control de dispositivos
Control de dispositivos
Disp.de
RED WM
Sistema Gráfico
Arquitectura de Ordenadores
Entrada/Salida
Modelo de programación y gestión de la IO
•
Cola
– Un consumidor y un productor que trabajan a muy diferente
velocidad
• CPU: 1 GB/seg
• Disco duro: 20 MB/seg
– Una cola o buffer para adaptar las velocidades
• Nunca se debe rebasar el tamaño del buffer
• Ancho de banda o throughput: número de elementos retirados por
unidad de tiempo
• Latencia: tiempo que media entre la entrada y la salida del elemento
• La capacidad de consumo debe ser mayor que la de producción
– El productor produce a ráfagas, que no desbordan la cola pero
con una velocidad de pico mayor que la de consumo
UPCO ICAI Departamento de Electrónica y Automática 25 José A. Rodríguez Mondéjar
Cesáreo Fernández Martínez
Ejemplo de periférico: Disco duro
•
Almacenamiento masivo y barato de la información
•
Lento: nivel bajo de la jerarquía de memoria
Arquitectura de Ordenadores
Entrada/Salida
UPCO ICAI Departamento de Electrónica y Automática 27 José A. Rodríguez Mondéjar
Cesáreo Fernández Martínez
¿Cómo es un disco duro por dentro?
Arquitectura de Ordenadores
Entrada/Salida
Organización lógica del disco duro
•
Pista
UPCO ICAI Departamento de Electrónica y Automática 29 José A. Rodríguez Mondéjar
Cesáreo Fernández Martínez
Detalles físicos del disco duro
Arquitectura de Ordenadores
Entrada/Salida
Números en un disco duro
•
Leer un dato tiene cuatro fases:
1. Colocar la cabeza lector en la pista adecuada
(
SEEK TIME
)
• Entre 5 y 15 ms
2. Rotar para colocar la cabeza sobre el sector
adecuado (
ROTATIONAL LATENCY
)
– 5000 rpm a 15000 rpm – Entre 12 y 4 ms
3. Leer el sector (
TRANSFER TIME
)
– Tamaño del sector típico: 1 KB – Entre 10 y 30 MB/seg
4. Transferir el sector al bus correspondiente del
ordenador (
CONTROLLER TIME
)
– SCSI, IDE
– Entre 10 y 30 MB/seg
•
Tiempo medio de acceso
–
(SEEK TIME) + (ROTATIONAL LATENCY) +
(TRANSFER TIME) + (CONTROLLER TIME)
Sector
Pista
Cilindro
Cabeza
Disco
UPCO ICAI Departamento de Electrónica y Automática 31 José A. Rodríguez Mondéjar
Cesáreo Fernández Martínez