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