Upload
others
View
7
Download
0
Embed Size (px)
Citation preview
Consideraciones generales (2)
Evolución de la arquitectura
q Un periférico conectado alprocesador mediante un bus especial
q Un buffer intermedio que permitela conexión al procesador de varios periféricos
q Arquitectura PCIq Arquitectura PCI-Express
8000MBps4000MBpsX16
6000MBps3000MBpsX12
4000MBps2000MBpsX8
2000MBps1000MBpsX4
1000MBps500MBpsX2
500MBps250MBpsX1
Ancho de banda doble
Ancho de banda simple
Tipo PCI
Cliente típico
Portátil típico
Servidor típico
Resumiendo…(1)o La diferencia de velocidad entre la
cpu y los periféricos obliga a disponerde áreas de memoria intermedia
o Éstas forman una jerarquía: cuantomás cerca del procesador, másescasa y más rápida es la memoria
Resumiendo…(2)o Allanado el camino para la
comunicación, ésta se realiza a través de los C.D.
o Los C.D. tienen una parte soft y unaparte hard
o La parte soft se conecta con la parte hard a través de los puertos
3F0-3F7Disco flexible
3D0-3DFControlador gráficos
378-37FPuerto Paralelo
320-32FControladora disco
2F8-2FFPuerto serie
200-20FControlador juegos
040-043Temporizador
020-021Controlador interrup.000-00FControlador dma
Un ejemplo
#include <stdio.h>#include <dos.h>main(){
while (1){printf(“%d\n”,inportb(0x60));
}}
El “cuándo”
1. Explorar continuamente el estado2. “Esperar el aviso”3. Explorar ante aviso genérico4. Vectorización
1 > Exploración continua
1. Muy ineficiente2. Inseguro3. Fácil implementar prioridades4. Adecuado sólo para micros
dedicados
2 > Esperar aviso
1. Sólo apto para periféricos rápidos, como discos duros
2. No sirve para implementar prioridades
3 > Explorar aviso genérico
1. Se usa con conjuntos de periféricos del mismo tipo
2. Permite implementar prioridades dentro del conjunto
4 > Vectorización completa
1. Es el método más eficiente2. Cada dispositivo tiene una señal
propia y es atendido por la CPU cuando la emite
3. No es posible asignar prioridades por software: han de estar definidas por hardware
Interrupciones
o Un mecanismo mediante el cualun periférico requiere la atención dela cpu
o Requiere apoyo hardware, sobre todo para implementar las prioridades
Interrupciones, sucesos1. Un o varios periféricos generan una
señal 2. Un “chip” específico evalúa las
prioridades3. Se activa un protocolo de
comunicación con la cpu4. Si la cpu acepta la interrupción…
Interrupciones, sucesos1. El número de interrupción indexa una
tabla, llamada TVI2. En la TVI se encuentra la rutina
encargada de atender a la interrupción (RSI)
3. La RSI salva el estado de la cpu, atiende al periférico y restaura el estado de la cpu
4. La cpu continúa con lo que estaba haciendo
Interrupciones, latenciao En la descripción anterior, la RSI
salva el estado de la cpu. No ha de ser necesariamente así. Puede hacerse por hardware
o La reducción de tiempo necesario para atender una interrupción no ha sido correlativo al aumento de velocidad de los procesadores
Interrupciones, latencia
200ns/1c400ns/0cRTX2000 (10MHz), 1988
400ns/25c432ns/27cPhilips LPC 2106 (60MHz), 2004
SalidaEntradaProcesador
Interrupciones, latencia
>81x10^-61150-1600Sun4 (SPARC)
14x10^-6200-400Sun3 M68020
0.4x10^-64RTX2000
TiempoCiclosProcesador
Interrupciones, determinismoAproximadamente el 20% de las instrucciones de un micro son saltos. ¿Qué ocurre cuando se falla en la predicción de un salto?
2 (siempre)RTX2000
4ARM
30 (385 peor caso)Pentium IV
Ciclos perdidosProcesador
Ejemplo de implementación
o El micro 8259 es un controlador programable de interrupciones que se encuentra en los ordenadores personales
o Recibe las señales de interrupción de los periféricos, evalúa las prioridades y se comunica con la cpu
Secuencia de sucesoso El CPI recibe por las líneas irx una o
varias señales de periféricoso Cada línea activa un bit en un registro
especial llamado “IRR”o El chip evalúa las prioridades, y
selecciona una interrupcióno Toma el bit que corresponde y lo pasa
a otro registro, llamado ISR (sigue…)
Secuencia de sucesoso Mediante la línea “int” el chip se
comunica con la CPUo La cpu asiente mediante la línea
“inta”. Una segunda “inta” es la señal para que el CPI deposite en el bus dxun número
o Ese número le señala a la CPU la interrupción (sigue…)
Secuencia de sucesoso La cpu usa ese número para indexar
una tabla que se encuentra en la base de la memoria, llamada TVI
o En esa tabla se encuentran las direcciones de las rutinas que han de atender a las interrupciones
o Se pasa el control a la rutina con la dirección indicada en la TVI (sigue…)
Secuencia de sucesoso La rutina apila los registros de la CPUo Accede a los puertos y se comunica
con los periféricos, o bien, deja una señal para el S.O.
o Restaura el registro ISR del CPIo Restaura los registros de la CPUo La CPU sigue su marcha.
Ejemplo de programación