miércoles, 10 de junio de 2009

Manejo de Interrupciones


Una interrupción es un evento que hace que el microcontrolador deje de ejecutar la tarea que está realizando para atender dicho acontecimiento y luego regrese y continue la tarea que estaba realizando antes de que se presentara la interrupción.El mecanismo interno (dentro del procesador) de trasferencia de interrupciones, llamado “Mondo”, del sistema “Sun4u” (perteneciente a la misma compañía que fabrican el procesador UltraSPARC-IIi, basado en la arquitectura SPARC–V9) es implementado con el UltraSPARC-IIi, por medio del cual se reduce la sobrecarga del servicio de interrupciones, identificando a un único dispositivo “interruptor”, sin necesidad de sondear varios registros de estados.Los procesadores con la arquitectura SPARC V9 proporcionan un conjunto de registros dedicados, de uso exclusivo para el servicio de interrupciones. Esto elimina la necesidad que tiene el procesador de salvar su conjunto normal de registros para atender una interrupción, y luego ser vueltos a almacenar.Un paquete de interrupciones contiene un vector Mondo con tres palabras dobles, dedicados a asistir al procesador en el servicio de interrupciones.Algunas de las limitaciones del vector Mondo son:· Solo un paquete de solicitud de interrupción puede ser atendido a la vez.· No existe nivel de prioridad asociado con el vector de interrupciones Mondo; ellos son atendidos con la lógica “primero que llega, primero en ser atendido”.La entrega de los paquetes de interrupción ahora se realiza dentro del UltraSPARC-IIi. Como es un camino dedicado a un solo proceso, las tareas de flujo de control son más simples, y no se necesitan reintento de interrupciones. UltraSPARC-IIi causa una sola entrega del paquete de interrupción a la vez, luego de cada reconocimiento por software (en el manejador de trampas de recepción mondo).El bloque lógico PIE del UltraSPARC-IIi es responsable por recibir las interrupciones desde una fuente externa PCI, otras fuentes externas (dispositivos de E/S, interrupciones gráficas, UPA64S y otros), y fuentes internas, cargando los registros de datos mondo, y señalizando una trampa de recepción mondo al pipeline del UltraSPARC-IIi. Las interrupciones externas son concentrados en un ASIC (circuito integrado de aplicación específica) externo (STP2210QFP) que muestrea todas las líneas de entrada de interrupciones en forma cíclica (round–robin) y presenta a una de ellas a la vez al UltraSPARC-IIi. Este soporta hasta 8 líneas de PCI con 4 interrupciones cada una (hasta un máximo de 26), 12 para dispositivos de E/S, uno para gráficos y uno para el UPA. Los tipos de línea de entrada al concentrador pueden ser por nivel y por pulso. Esto es transparente al software, pero el hardware lo trata de modo distinto.Atendiendo al sistema Mondo, con cada interrupción son cargados tres registros de palabras dobles, junto con los datos. Para el UltraSPARC-IIi, los 53 bits más significativos de la primer palabra, como los 64 bits de los otros dos registros son ceros. Los 11 bits menos significativos de la primera palabra contienen el número de interrupción (INR), el cual indica el tipo de interrupción. El software utiliza el INR para indexar (apuntar) en una tabla, la cual típicamente provee el IRL, que es el Contador de Programa (Program Counter) de la rutina de servicio de interrupción, y los argumentos necesarios para la rutina.La CPU puede procesar solo una interrupción a la vez. La Unidad de Despacho Mondo es responsable de recordar todas las interrupciones que han llegado, y colocarles en serie en el cause (pipeline) de la CPU como trampas (traps). Además, rastrea el estado de escrituras pendientes del DMA y garantiza que todas las escrituras DMA sean completadas a la memoria antes de notificar a la CPU.Cada interrupción tiene una prioridad asociada con él. Existen 8 niveles de prioridad (8 el más alto y 1 el más bajo). Son utilizadas en las decisiones en los arbitrajes. Así, cuando varias interrupciones estén presente, será atendida aquella con mayor prioridad. Si ellas tienen todas la misma prioridad, serán atendidas en forma cíclica (round–robin).

2 comentarios:

  1. Aquien quieres engañar con esta informacion copiada y pegada de dos paginas de internet distintas, combinando circuitos electricos con sistemas :/

    ResponderEliminar