Download Consideraciones generales (2)

Document related concepts
no text concepts found
Transcript
Consideraciones generales (2)
Evolución de la arquitectura
 Un periférico conectado al
procesador mediante un bus
especial
 Un buffer intermedio que permite
la conexión al procesador de
varios periféricos
 Arquitectura PCI
 Arquitectura PCI-Express
Tipo PCI
X1
Ancho de
banda simple
250MBps
Ancho de
banda doble
500MBps
X2
500MBps
1000MBps
X4
1000MBps
2000MBps
X8
2000MBps
4000MBps
X12
3000MBps
6000MBps
X16
4000MBps
8000MBps
Cliente típico
Portátil típico
Servidor típico
Resumiendo…(1)
 La diferencia de velocidad entre la
cpu y los periféricos obliga a disponer
de áreas de memoria intermedia
 Éstas forman una jerarquía: cuanto
más cerca del procesador, más
escasa y más rápida es la memoria
Resumiendo…(2)
 Allanado el camino para la
comunicación, ésta se realiza a
través de los C.D.
 Los C.D. tienen una parte soft y una
parte hard
 La parte soft se conecta con la
parte hard a través de los puertos
Controlador dma
Controlador interrup.
000-00F
020-021
Temporizador
040-043
Controlador juegos
200-20F
Puerto serie
2F8-2FF
Controladora disco
320-32F
Puerto Paralelo
378-37F
Controlador gráficos
3D0-3DF
Disco flexible
3F0-3F7
Un ejemplo
#include <stdio.h>
#include <dos.h>
main(){
while (1){
printf(“%d\n”,inportb(0x60));
}
}
El “cuándo”
1.
2.
3.
4.
Explorar continuamente el estado
“Esperar el aviso”
Explorar ante aviso genérico
Vectorización
1 > Exploración continua
1.
2.
3.
4.
Muy ineficiente
Inseguro
Fácil implementar prioridades
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 eficiente
2. 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
 Un mecanismo mediante el cual
un periférico requiere la atención de
la cpu
 Requiere apoyo hardware, sobre
todo para implementar las
prioridades
Interrupciones, sucesos
1. Un o varios periféricos generan una
señal
2. Un “chip” específico evalúa las
prioridades
3. Se activa un protocolo de
comunicación con la cpu
4. Si la cpu acepta la interrupción…
Interrupciones, sucesos
1. El número de interrupción indexa una
tabla, llamada TVI
2. 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, latencia
 En la descripción anterior, la RSI
salva el estado de la cpu. No ha de
ser necesariamente así. Puede
hacerse por hardware
 La reducción de tiempo necesario
para atender una interrupción no ha
sido correlativo al aumento de
velocidad de los procesadores
Interrupciones, latencia
Procesador
Entrada
Salida
Philips LPC 2106
(60MHz), 2004
432ns/27c
400ns/25c
RTX2000
(10MHz), 1988
400ns/0c
200ns/1c
Interrupciones, latencia
Procesador
Ciclos
Tiempo
RTX2000
4
0.4x10^-6
Sun3 M68020
200-400
14x10^-6
Sun4 (SPARC) 1150-1600
>81x10^-6
Interrupciones, determinismo
Aproximadamente el 20% de las instrucciones de
un micro son saltos. ¿Qué ocurre cuando se falla
en la predicción de un salto?
Procesador
Ciclos perdidos
Pentium IV
30 (385 peor caso)
ARM
4
RTX2000
2 (siempre)
Ejemplo de implementación
 El micro 8259 es un controlador
programable de interrupciones que se
encuentra en los ordenadores
personales
 Recibe las señales de interrupción de
los periféricos, evalúa las prioridades
y se comunica con la cpu
Secuencia de sucesos
 El CPI recibe por las líneas irx una o
varias señales de periféricos
 Cada línea activa un bit en un registro
especial llamado “IRR”
 El chip evalúa las prioridades, y
selecciona una interrupción
 Toma el bit que corresponde y lo pasa
a otro registro, llamado ISR (sigue…)
Secuencia de sucesos
 Mediante la línea “int” el chip se
comunica con la CPU
 La cpu asiente mediante la línea
“inta”. Una segunda “inta” es la señal
para que el CPI deposite en el bus dx
un número
 Ese número le señala a la CPU la
interrupción (sigue…)
Secuencia de sucesos
 La cpu usa ese número para indexar
una tabla que se encuentra en la base
de la memoria, llamada TVI
 En esa tabla se encuentran las
direcciones de las rutinas que han de
atender a las interrupciones
 Se pasa el control a la rutina con la
dirección indicada en la TVI (sigue…)
Secuencia de sucesos
 La rutina apila los registros de la CPU
 Accede a los puertos y se comunica
con los periféricos, o bien, deja una
señal para el S.O.
 Restaura el registro ISR del CPI
 Restaura los registros de la CPU
 La CPU sigue su marcha.
Ejemplo de programación