390 likes | 559 Views
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.
E N D
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
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
Un ejemplo #include <stdio.h> #include <dos.h> main(){ while (1){ printf(“%d\n”,inportb(0x60)); } }
El “cuándo” • Explorar continuamente el estado • “Esperar el aviso” • Explorar ante aviso genérico • Vectorización
1 > Exploración continua • Muy ineficiente • Inseguro • Fácil implementar prioridades • Adecuado sólo para micros dedicados
2 > Esperar aviso • Sólo apto para periféricos rápidos, como discos duros • No sirve para implementar prioridades
3 > Explorar aviso genérico • Se usa con conjuntos de periféricos del mismo tipo • Permite implementar prioridades dentro del conjunto
4 > Vectorización completa • Es el método más eficiente • Cada dispositivo tiene una señal propia y es atendido por la CPU cuando la emite • 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 • Un o varios periféricos generan una señal • Un “chip” específico evalúa las prioridades • Se activa un protocolo de comunicación con la cpu • Si la cpu acepta la interrupción…
Interrupciones, sucesos • El número de interrupción indexa una tabla, llamada TVI • En la TVI se encuentra la rutina encargada de atender a la interrupción (RSI) • La RSI salva el estado de la cpu, atiende al periférico y restaura el estado de la cpu • 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, determinismo Aproximadamente el 20% de las instrucciones de un micro son saltos. ¿Qué ocurre cuando se falla en la predicción de un salto?
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.