Publicado el 5 de Julio del 2019
983 visualizaciones desde el 5 de Julio del 2019
2,8 MB
30 paginas
Creado hace 7a (07/03/2017)
ec
ec
Introducción
Estructura y funciones del sistema de E/S
E/S Programada
E/S por interrupciones
Bibliografïa:
W. Stallings; Computer Organization and Architecture, 9ed. Prentice Hall 2013.
D. A. Patterson & J. L. Hennessy; Estructura y diseño de computadores. La interfaz
•
•
hardware/software, 4ed. Reverté 2011.
•
•
S. Furber; ARM System‐on‐Chip architecture, 2ed. Addison‐Wesley 2000.
Manuales del S3C44B0X y de la placa S3CEV40
Introducción
Estructura y funciones del sistema de E/S
E/S Programada
Concepto de Interrupción
E/S por interrupciones
ec
ec
Interacción CPU <‐> mundo
Entrada de datos
– Desde dispositivo a CPU
– Desde dispositivo a Memoria
Salida de datos
– Desde CPU a dispositivo
– Desde Memoria a dispositivo
En muchas ocasiones, el
rendimiento del sistema de
E/S determina el
rendimiento global del
sistema
CPU
MEMORIA
E/S
8085
5
8
0
8
8085
5
8
0
8
8085
5
8
0
8
Dispositivos de presentación de datos
– Interaccionan con los usuarios, transportando datos entre éstos y la
máquina
– Ratón, teclado, pantalla, impresora, etc
ec
ec
Dispositivos de comunicación con otros procesadores
– Permiten la comunicación con procesadores remotos a
través de redes
– Tarjeta de red, módem...
Dispositivos de adquisición de datos
– Permiten la comunicación con sensores y actuadores que operan de
forma autónoma.
– Se utilizan en sistemas de control automático de procesos por
computador
– Suelen incorporar conversores de señales A/D y D/A.
ec
ec
Dispositivos de almacenamiento de datos
– Forman parte de la jerarquía de memoria: interactúan de forma
autónoma con la máquina
– Discos magnéticos y cintas magnéticas…
ec
ec
Tipo de datos que se transmiten
– Bytes, bloques, tramas, etc
Tasa de transferencia
– Ancho de banda: cantidad de datos que se pueden transferir por unidad
de tiempo (Mbit/s, MB/s…)
• Dispositivos de almacenamiento/red ‐> gran ancho de banda
– Latencia: tiempo requerido para obtener el primer dato (s, ms, us, ns)
• Generalmente alta en comparación con velocidad de la CPU
Ancho de banda y latencia de algunos dispositivos periféricos
Los dispositivos tradicionales de transporte y presentación de datos representan una carga
relativamente baja de trabajo para el procesador :
Dispositivos
Sensores
Teclado
Línea de comunicaciones
Pantalla (CRT)
Impresora de línea
Cinta (cartridge)
Disco
Cinta
Ancho de banda
1 Bps – 1 KBps
10 Bps
30 Bps – 200 KBps
2 KBps
1 – 5 KBps
0.5 – 2 MBps
4.5 MBps
3-6 MBps
Los dispositivos de E/S multimedia demandan mayores exigencias de velocidad:
Medio
Gráficos
Vídeo
Voz
Ancho de banda Latencia max. permitida
1 MBps
100 MBps
64 KBps
1 - 5 segundos
20 milisegundos
50 - 300 milisegundos
Necesitamos
– Un interfaz distinto para periférico
• Controlador de E/S del dispositivo
– Distintas formas de interaccionar con ellos
• Técnicas de E/S
ec
ec
Introducción
Estructura y funciones del sistema de E/S
E/S Programada
E/S por interrupciones
ec
Componentes:
– Dispositivo periférico
– Módulo de E/S
controlador (hardware)
• Tarjeta
– Controlador software
• Driver
S.O.
– Canal de comunicación
• P. ej. bus
TEMA SIGUIENTE
ec
Organización sencilla
del sistema de E/S
CPU
Memoria
Bus del sistema
Controlador
8085
5
8
0
8
PERIFÉRICO
Dispositivo periférico
– Dispositivo en sí, de carácter mecánico, magnético…. (teclado, platos
Controlador del dispositivo (hardware)
– Interfaz lógica que ofrece el dispositivo al sistema
– Se entiende con el bus y conoce las características físicas del
del disco..)
dispositivo
concreto
dispositivo
Controlador software (driver)
– Código encargado de programar el controlador HW del dispositivo
– Forma parte del sistema operativo (suele proporcionarlo el fabricante)
Canal de comunicación (p. ej. bus)
– Interconexión entre la CPU, memoria y el controlador HW del
– Puede ser compartido por varios dispositivos
• Necesidad de arbitraje
Interfaz entre el dispositivo y el procesador
Funciones:
– Control y temporización
• Adapta la velocidad de transferencia
– Comunicación con el procesador
– Comunicación con el periférico
– Buffering o almacenamiento intermedio
– Detección de errores
Tiene dos
interfaces
ec
ec
Registro de datos
Registro de estado
Registro de control
Líneas
de Datos
Líneas de
dirección
Líneas
de control
Lógica de
interfaz con
el dispositivo
externo
Lógica
de E/S
Lógica de
interfaz con
el dispositivo
externo
Datos
Estado
Control
Datos
Estado
Control
Registro de datos: intercambio de datos entre CPU y periférico
Registro de estado: estado del dispositivo, ej. preparado, error, ocupado…
Registro de control: actuación sobre el dispositivo (imprime carácter, lee un
bloque…)
CUIDADO: NO son registros de la CPU. ¡¡¡Pueden estar en otro chip!!!
Una operación de entrada/salida se divide en:
– Petición: enviar el comando (y dirección)
• La CPU indica al dispositivo la operación que quiere hacer escribiendo en su
registro de control
– ¿Cómo seleccionar el dispositivo de E/S deseado? Depende de que sea E/S
aislada o mapeada en memoria
– Envío: transferencia de los datos
• La CPU leerá/escribirá de/al registro de datos del controlador del periférico
deseado
– ¿Cómo saber cuándo? SINCRONIZACIÓN
ec
ec
E/S aislada
• Espacio de direcciones diferente al de la memoria principal (existen dos
mapas de direcciones)
• Existen instrucciones específicas de E/S
– IN dir_E/S, Ri
– OUT Ri, dir_E/S
• Ejemplo: Intel x86
(CPU Periférico)
(Periférico CPU)
– Cada registro de un módulo de E/S es un puerto
E/S localizada en memoria
• La memoria y los dispositivos de E/S comparten el espacio de direcciones
• Podemos usar instrucciones tipo load/store (lw/sw)
– LOAD
– STORE
Ri, dir_E/S (CPU Periférico)
Ri, dir_E/S (Periférico CPU)
• Ejemplo: ARM
– Cada registro de un módulo de E/S es una dirección de memoria dentro de un
rango reservado
Controlador GPIO, gestiona pines multifunción del chip
Para encender un led conectado a uno de los pines
– Conocer las direcciones de memoria asignadas a sus registros (Puerto
B):
• Registro de control PCONB: 0x01D20008
• Registro de datos PDATB: 0x01D2000C
– Configurar los pines del controlador como salidas para poder escribir
en los leds :
– Escribir en el registro de control (PCONB) un '0'
mov r0,#0
ldr r1,=PCONB @0x01D20008
str r0,[r1]
– Encender los leds :
– Escribir en un registro de datos (PDATB )del GPIO el valor de la salida
» 0 enciende el led,
» 1 apaga el led
mov r0,#0
ldr r1,=PDATB @0x01D2000C
str r0,[r1]
ec
ec
El GPIO tiene un circuito electrónico que:
– Permite dar al pin la tensión Vcc o GND en función de lo
que se haya escrito en el registro de datos, sólo si en el
registro de control se ha configurado como pin de salida
– Permite leer el valor del pin
ec
ec
Exigida por la diferencia de velocidad entre la CPU y los dispositivos de E/S
Antes de enviar/recibir datos a/desde un periférico hay que asegurarse de
que el dispositivo está preparado para realizar la transferencia
– ¿Cómo sabe la CPU cuándo está lista/ha terminado la transferencia?
– ¿Cómo sabe si todo ha ido bien?
Existen dos mecanismos básicos de sincronización de la E/S
– E/S programada con espera de respuesta (polling)
– E/S por interrupciones
Introducción
Estructura y funciones del sistema de E/S
E/S Programada
E/S por interrupciones
ec
ec
Cada vez que la CPU quiere
realizar una transferencia:
– Lee una y otra vez el registro de
estado del periférico (encuesta o
“polling”) hasta que esté
preparado para realizar la
transferencia
– Realiza la transferencia
Orden de
lectura al
módulo de E/S
CPU E/S
Leer el estado
del módulo
E/S CPU
Bucle de sincronización
E/S CPU
Completar la operación
(lectura en el ejemplo)
CPU Memoria
no
no
¿estado indica
preparado?
si
Leer el dato
del módulo
de E/S
Escribir el
dato en
memoria
¿final?
si
La CPU no hace trabajo útil en el bucle de espera activa
– Con dispositivos lentos el bucle podría repetirse miles/millones
de veces
– La dinámica del programa se detiene durante la operación de
E/S
• Ejemplo: imaginar que en un vídeo‐juego se detuviese la dinámica
del juego a la espera de que el usuario pulse una tecla
Dificultades para atender a varios periféricos
– Mientras se espera a que un periférico esté listo para transmitir,
no se puede atender a otro
Orden de
lectura al
módulo de E/S
CPU E/S
Leer el estado
del módulo
E/S CPU
El bit 6 de PDATG es:
0 si el botón 1 ha sido pulsado y
1 si no ha sido pulsado
int reg
pseudocodigo
E/S CPU
CPU Memoria
no
no
¿estado indica
preparado?
si
Leer el dato
del módulo
de E/S
Escribir el
dato en
memoria
¿final?
si
reg = rPDATG
If ( bit 6 de reg) == 0)
pulsado=SI
else
pulsado=NO
ldr r0,=PDATG
…
bucleDet: ldr r1,[r0]
and r1,r1,#0x0040 @ me quedo con el bit 6
cmp r1,#0
bneq bucleDet
@ si no, hubo pulsación
@boton 1 pulsado
ec
ec
ldr r0,=PDATG
…
bucleDet: ldr r1,[r0]
and r1,r1,#0x0040 @ me quedo con el bit 6
cmp r1,#0
bneq bucleDet
@ si no hubo pulsación
@boton 1 pulsado
Ejercicio: ¿cuántas veces se ejecuta el bucle suponiendo que soy capaz de pulsar el
botón 1 vez por segundo, que el procesador tiene una frecuencia de reloj de 40MHz y
cada instrucción tarda 3 ciclos en ejecutarse?
40 x 1000000 ciclos/s / 12 ciclos/iteración = 3 millones de iteraciones/s
ec
Orden de
lectura al
módulo de
CPU E/S
Leer el estado
del módulo
E/S CPU
no
no
¿límite de tiempo?
E/S CPU
CPU Memoria
Fijar un límite de tiempo
en el bucle de espera
Otras
operaciones
de E/S
¿estado indica
preparado?
si
Leer el dato
del módulo
de E/S
Escribir el
dato en
memoria
¿final?
si
no
e
Comentarios de: Tema 2.1. Sistema de E/S - Módulo 2. Entrada/Salida (0)
No hay comentarios