1 / 39

Consideraciones generales (2)

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.

margo
Download Presentation

Consideraciones generales (2)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Consideraciones generales (2)

  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

  3. Cliente típico

  4. Portátil típico

  5. Servidor típico

  6. 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

  7. 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

  8. Un ejemplo #include <stdio.h> #include <dos.h> main(){ while (1){ printf(“%d\n”,inportb(0x60)); } }

  9. El “cuándo” • Explorar continuamente el estado • “Esperar el aviso” • Explorar ante aviso genérico • Vectorización

  10. 1 > Exploración continua • Muy ineficiente • Inseguro • Fácil implementar prioridades • Adecuado sólo para micros dedicados

  11. 2 > Esperar aviso • Sólo apto para periféricos rápidos, como discos duros • No sirve para implementar prioridades

  12. 3 > Explorar aviso genérico • Se usa con conjuntos de periféricos del mismo tipo • Permite implementar prioridades dentro del conjunto

  13. 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

  14. 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

  15. 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…

  16. 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

  17. 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

  18. Interrupciones, latencia

  19. Interrupciones, latencia

  20. 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?

  21. 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

  22. 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…)

  23. 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…)

  24. 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…)

  25. 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.

  26. Ejemplo de programación

More Related