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