You are on page 1of 16

Entrada/Salida Arquitectura de Ordenadores

ENTRADA/SALIDA

José A. Rodríguez Mondéjar UPCO ICAI Departamento de Electrónica y Automática 1


Cesáreo Fernández Martínez

Entrada/Salida Arquitectura de Ordenadores

Conectar con el mundo real


CPU
MEMORIA

R0 R1 PC 10000100
LO L1 LPC
01100001
DATAPATH

10001010
TPC 10010100
MX MY
X Y 10000100
OA 10101000
00100101

RA TAD
LA SALIDA

TRA TA TDD
CONTROL

L0 L1 LA LPC TRA TA TPC TAD TDD OP ENTRADA


LIR0
R/W’
IR LIR1
CS’s

José A. Rodríguez Mondéjar UPCO ICAI Departamento de Electrónica y Automática 2


Cesáreo Fernández Martínez

1
Entrada/Salida Arquitectura de Ordenadores

Ejemplo de entrada/salida muy sencilla Cuando la CPU escribe


en el bit 0 de la dirección
Cuando la CPU lee el bit 1 de la 0, enciende (1) o apaga
dirección 0, lee el estado del (0) la bombilla)
interruptor (1-abierto 0-cerrado)

5V
R/W’

CS
La CPU (y
por tanto mi
0 programa) ve
A0 1 el mundo
como
A1 2
posiciones
3 en el mapa
de memoria
donde se lee
y escribe

D1 D0
José A. Rodríguez Mondéjar UPCO ICAI Departamento de Electrónica y Automática 3
Cesáreo Fernández Martínez

Entrada/Salida Arquitectura de Ordenadores

Mapa de memoria básico


Mapa de memoria
00000
ROM

Bus de datos
RAM
Bus de direcciones
CPU
Bus de control

Teclado
Pantalla
Disco duro
FFFFF HD

José A. Rodríguez Mondéjar UPCO ICAI Departamento de Electrónica y Automática 4


Cesáreo Fernández Martínez

2
Entrada/Salida Arquitectura de Ordenadores

Organización física simple

CPU MEMORIA

Tarjeta controladora
del dispositivo (IOC)
Bus del sistema

8085
8085

8085

8085
8085

8085
HD

Dispositivo (unidad)
de entrada/salida
(Periférico)
Entrada/Salida del sistema

José A. Rodríguez Mondéjar UPCO ICAI Departamento de Electrónica y Automática 5


Cesáreo Fernández Martínez

Entrada/Salida Arquitectura de Ordenadores

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
• Controlador del propio periférico

José A. Rodríguez Mondéjar UPCO ICAI Departamento de Electrónica y Automática 6


Cesáreo Fernández Martínez

3
Entrada/Salida Arquitectura de Ordenadores

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. INTERFAZ

Registro de Estado
Interfaz Módulo de
Bus del Memoria Registro de Comandos
sistema Registro para dato de entrada

Módulo de Registro para dato de salida


Interfaz
Memoria
CPU Bus del
periférico
Interfaz Controladora
Disco duro HD

Tarjeta
Interfaz gráfica

José A. Rodríguez Mondéjar UPCO ICAI Departamento de Electrónica y Automática 7


Cesáreo Fernández Martínez

Entrada/Salida Arquitectura de Ordenadores

Organización del mapa de memoria


• ¿Cómo interconectar al bus de datos y direcciones de la
CPU?
– Memoria RAM ROM
CS
– Memoria ROM Bus de control
– Periférico 1
– Periférico 2

Bus de datos RAM

CS
CPU Lógica
Decodi-
Bus de Perif. 1
ficación CS
Direcciones
+ Control Perif. 2
CS

– Posible opción: división en bloques de tamaño igual


José A. Rodríguez Mondéjar UPCO ICAI Departamento de Electrónica y Automática 8
Cesáreo Fernández Martínez

4
Entrada/Salida Arquitectura de Ordenadores

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

No
¿Ha llegado?
Entrada/Salida
programada
(Polling)
Leer dato del registro de entrada

José A. Rodríguez Mondéjar UPCO ICAI Departamento de Electrónica y Automática 9


Cesáreo Fernández Martínez

Entrada/Salida Arquitectura de Ordenadores

Interrupciones
• Problemas de la
entrada/salida programada
o por polling (consulta
continua del registro de MEM
estado)
– La CPU no puede hacer
otros trabajos BUS
• La CPU espera durante
horas a que se teclee una
tecla INTR 2
• Solución: Interrupciones CPU INTR 1 E/S 1 E/S 2
– La CPU sigue con otros
trabajos
– Cuando el periférico está
listo avisa a través de la Las líneas de interrupción forman
línea de interrupción a la parten del bus de control dentro del
bus de sistema
CPU para que lea el dato

José A. Rodríguez Mondéjar UPCO ICAI Departamento de Electrónica y Automática 10


Cesáreo Fernández Martínez

5
Entrada/Salida Arquitectura de Ordenadores

Funcionamiento de la interrupción MEM


RUTINA DE Programa
Se salva PC
en el stack INTERRUPCIÓN Rutina INTR1
PROGRAMA
‘2’ Instrucción 1 Rutina INTR2
Instrucción 1 ción
up Instrucción 2
Instrucción 2 err
r int Instrucción 3
INTR 2 Instrucción 3 cto

Stack
Ve Instrucción 4 PC Programa
Instrucción 4
Instrucción 5
Instrucción 5
....................

interrupción
vectores de
Instrucción 6 Dirección INTR1

Tabla de
IRET
Instrucción 7 Dirección INTR2
Se recupera
Instrucción 8 PC del stack
Instrucción 9
BUS
....................

INTR 2
CPU
INTR 1 E/S 1 E/S 2
PC
José A. Rodríguez Mondéjar UPCO ICAI Departamento de Electrónica y Automática 11
Cesáreo Fernández Martínez

Entrada/Salida Arquitectura de Ordenadores

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 CPU
• 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 Memoria DMAC IOC
– El controlador de DMA (DMAC) es el
encargado de realizar la operación de
DMA entre periférico y memoria
Dispositivo
– 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

José A. Rodríguez Mondéjar UPCO ICAI Departamento de Electrónica y Automática 12


Cesáreo Fernández Martínez

6
Entrada/Salida Arquitectura de Ordenadores

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

José A. Rodríguez Mondéjar UPCO ICAI Departamento de Electrónica y Automática 13


Cesáreo Fernández Martínez

Entrada/Salida Arquitectura de Ordenadores

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
– Mapa auxiliar de entrada/salida (Típico de la familia Intel)

José A. Rodríguez Mondéjar UPCO ICAI Departamento de Electrónica y Automática 14


Cesáreo Fernández Martínez

7
Entrada/Salida Arquitectura de Ordenadores

Procesadores de Entrada/Salida
• La CPU delega en un
Bus de los
procesador (IOP) la dispositivos
entrada/salida
• Desde la CPU se sigue viendo CPU IOP D1
como una posición de memoria
más. D2
• La CPU manda comandos al Mem
Bus
de la
IOP y éste los ejecuta. CPU
– Los programas que debe ejecutar Dn
el IOP correspondientes a esos I/O
bus
comandos puede estar en la
memoria principal o en una
memoria propia del procesador
(ROM)
• Más adelante se tratará en
profundidad los buses

José A. Rodríguez Mondéjar UPCO ICAI Departamento de Electrónica y Automática 15


Cesáreo Fernández Martínez

Entrada/Salida Arquitectura de Ordenadores

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
• Es un caso semejante al de interrupción

José A. Rodríguez Mondéjar UPCO ICAI Departamento de Electrónica y Automática 16


Cesáreo Fernández Martínez

8
Entrada/Salida Arquitectura de Ordenadores

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.

Dispositivo1 DispositivoN
Mayor Dispositivo2 Menor
Prioridad Prioridad

ACK ACK ACK


CPU Vector Int
INT

José A. Rodríguez Mondéjar UPCO ICAI Departamento de Electrónica y Automática 17


Cesáreo Fernández Martínez

Entrada/Salida Arquitectura de Ordenadores

Controlador de interrupciones

José A. Rodríguez Mondéjar UPCO ICAI Departamento de Electrónica y Automática 18


Cesáreo Fernández Martínez

9
Entrada/Salida Arquitectura de Ordenadores

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
José A. Rodríguez Mondéjar UPCO ICAI Departamento de Electrónica y Automática 19
Cesáreo Fernández Martínez

Entrada/Salida Arquitectura de Ordenadores

¿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
Magnetic disk storage machine 2000.00-10,000.00
José A. Rodríguez Mondéjar UPCO ICAI Departamento de Electrónica y Automática 20
Cesáreo Fernández Martínez

10
Entrada/Salida Arquitectura de Ordenadores

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

José A. Rodríguez Mondéjar UPCO ICAI Departamento de Electrónica y Automática 21


Cesáreo Fernández Martínez

Entrada/Salida Arquitectura de Ordenadores

Importancia de la entrada/salida
• Aplicación general • Aplicación WWW

José A. Rodríguez Mondéjar UPCO ICAI Departamento de Electrónica y Automática 22


Cesáreo Fernández Martínez

11
Entrada/Salida Arquitectura de Ordenadores

Programa y periféricos

Programas de usuario y aplicaciones

Llamadas al sistema

Núcleo del SO (Linux)


Control
Controlde
dedispositivos
dispositivos

Disp.de Disp.de
Disp.de Manejadores de
Caracter Bloque WM
RED dispositivos

Periféricos
Sistema
Teclado Discos RED
Gráfico

José A. Rodríguez Mondéjar UPCO ICAI Departamento de Electrónica y Automática 23


Cesáreo Fernández Martínez

Entrada/Salida Arquitectura de Ordenadores

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
Productor Cola Consumidor

José A. Rodríguez Mondéjar UPCO ICAI Departamento de Electrónica y Automática 24


Cesáreo Fernández Martínez

12
Entrada/Salida Arquitectura de Ordenadores

Ejemplo de periférico: Disco duro


• Almacenamiento masivo y barato de la información
• Lento: nivel bajo de la jerarquía de memoria

José A. Rodríguez Mondéjar UPCO ICAI Departamento de Electrónica y Automática 25


Cesáreo Fernández Martínez

Entrada/Salida Arquitectura de Ordenadores

Evolución de los discos duros (historia de IBM)

José A. Rodríguez Mondéjar UPCO ICAI Departamento de Electrónica y Automática 26


Cesáreo Fernández Martínez

13
Entrada/Salida Arquitectura de Ordenadores

¿Cómo es un disco duro por dentro?

José A. Rodríguez Mondéjar UPCO ICAI Departamento de Electrónica y Automática 27


Cesáreo Fernández Martínez

Entrada/Salida Arquitectura de Ordenadores

Organización lógica del disco duro


• Pista
• Sector
• Cilindro

José A. Rodríguez Mondéjar UPCO ICAI Departamento de Electrónica y Automática 28


Cesáreo Fernández Martínez

14
Entrada/Salida Arquitectura de Ordenadores

Detalles físicos del disco duro

José A. Rodríguez Mondéjar UPCO ICAI Departamento de Electrónica y Automática 29


Cesáreo Fernández Martínez

Entrada/Salida Arquitectura de Ordenadores

Números en un disco duro


• Leer un dato tiene cuatro fases:
1. Colocar la cabeza lector en la pista adecuada
(SEEK TIME) Pista
• Entre 5 y 15 ms Sector
2. Rotar para colocar la cabeza sobre el sector
adecuado (ROTATIONAL LATENCY)
– 5000 rpm a 15000 rpm
– Entre 12 y 4 ms
Cilindro
3. Leer el sector (TRANSFER TIME)
– Tamaño del sector típico: 1 KB Disco
– Entre 10 y 30 MB/seg Cabeza
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) + Valores medios
(TRANSFER TIME) + (CONTROLLER TIME)
José A. Rodríguez Mondéjar UPCO ICAI Departamento de Electrónica y Automática 30
Cesáreo Fernández Martínez

15
Entrada/Salida Arquitectura de Ordenadores

Ejemplo de cálculo de tiempo de acceso


• Datos del disco duro
– Tamaño del sector: 512 bytes
– 5400 RPM
– Tiempo de búsqueda medio (Seek time): 12 ms
– Velocidad media de transferencia: 4 MB/seg
– Overhead del controlador: 1 ms
• Cálculo:
– Latencia máxima en la rotación: 60/5400 = 11 ms
– Latencia media de rotación: 5.5 ms
– Tiempo de transferencia del sector: 0.512/(4*1024)= 0.1ms
– Tiempo medio de acceso: 12ms + 5.5ms + 0.1ms + 1ms = 18.6 ms
– Ancho de banda: depende de dónde estén las cabezas

• Seek Time y Rotational Latency establecen la velocidad media


• Controlador establece la velocidad máxima

José A. Rodríguez Mondéjar UPCO ICAI Departamento de Electrónica y Automática 31


Cesáreo Fernández Martínez

16

You might also like