Arquitectura y Funcionamiento de la CPU: Desde la Unidad de Control hasta las Interrupciones
Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones
Escrito el en español con un tamaño de 28,46 KB
Módulo 8: Unidad de Control y Arquitectura del Procesador
Función de la Unidad de Control
La Unidad de Control (UDC) coordina y administra la ejecución de instrucciones, generando las señales eléctricas necesarias para conectar y desconectar componentes como la ALU, la memoria y otros registros. Esto permite que la CPU procese las instrucciones en el orden y tiempo correcto.
Instrucciones de Alto Nivel, Bajo Nivel y Microinstrucciones
Las instrucciones de alto nivel se refieren a los comandos en lenguajes como C++, Java o Python, que el programador utiliza. Estas instrucciones se convierten en instrucciones de bajo nivel (código máquina o binario) mediante un compilador o intérprete. Finalmente, cada instrucción de bajo nivel se descompone en microinstrucciones en la UDC, que son las señales específicas para activar los componentes físicos de la CPU.
Formato de una Instrucción y la Parte que se Decodifica
Las instrucciones están compuestas por un Código de Operación (COP) y pueden incluir operandos o direcciones de memoria. El COP define la operación que se realizará, mientras que los operandos proporcionan los datos necesarios. La UDC decodifica el COP para entender la operación a ejecutar y emite las señales necesarias.
Unidad de Control Cableada y Microprogramada
Las UC cableadas usan circuitos lógicos fijos para interpretar instrucciones y generar señales de control, siendo rápidas pero menos flexibles. Las microprogramadas almacenan microinstrucciones en una memoria de control, permitiendo mayor versatilidad al añadir nuevas instrucciones. En CPUs modernas, se usan UC híbridas, combinando ambas.
Set de Instrucciones (ISA)
Es el conjunto de todas las operaciones que un procesador puede ejecutar. Este set define los tipos de datos, registros, modos de direccionamiento, y la administración de la memoria. El set de instrucciones es específico de cada arquitectura y se almacena en el circuito físico del procesador.
Registro Contador de Programa (PC)
Este registro apunta a la posición de memoria de la siguiente instrucción a ejecutar y contiene su dirección. Es operado automáticamente por la UDC y permite a la CPU llevar el control del flujo de instrucciones.
Etapas del Ciclo de Instrucción
- Búsqueda de Instrucción (IF): La UDC accede a la memoria para recuperar la instrucción y la almacena en el Registro de Instrucción (IR).
- Decodificación (ID): La UDC interpreta el COP de la instrucción y genera las señales de control necesarias.
- Búsqueda de Operandos (OF): Si se necesitan operandos y no están en la instrucción, la UDC accede a la memoria para obtenerlos.
- Ejecución (EX): La UDC envía señales a la ALU u otros componentes para ejecutar la instrucción. En algunos procesadores, puede haber una etapa de Escritura (WB) donde se almacenan los resultados en registros.
Búsqueda y Decodificación
Durante la búsqueda, la UDC recupera la instrucción desde la memoria principal y actualiza el PC. En la decodificación, interpreta el COP y emite las señales de control.
Operandos en Instrucciones
No siempre se requieren operandos. Si la instrucción es de tipo implícito, todos los datos están definidos en el COP. En caso contrario, los operandos se buscan en la memoria o se encuentran en la propia instrucción.
Escritura luego de la Ejecución
En procesadores avanzados, existe una etapa de escritura donde los resultados se almacenan en registros o memoria, asegurando que los resultados estén disponibles para futuras instrucciones.
Interrupciones
Al finalizar cada ciclo de instrucción, la UDC verifica si hay una solicitud de interrupción. Si la hay, se detiene la ejecución del programa actual para atender la interrupción y luego continúa el programa en curso.
Longitud de Palabra en una CPU
La longitud de palabra es la cantidad de bits que el procesador puede procesar de una vez y es generalmente un múltiplo de 8. Por ejemplo, en el Intel 8086, la palabra es de 16 bits (2 bytes).
Capacidad de Direccionamiento
La capacidad de direccionamiento se refiere a cuántas direcciones puede generar la CPU para acceder a la memoria y a los puertos de entrada/salida. En el Intel 8086, el bus de direcciones de 20 bits permite direccionar hasta 1 MB de memoria.
Modos de Direccionamiento
Existen varios modos de direccionamiento en el Intel 8086:
- Direccionamiento Implícito: La instrucción solo contiene el COP, sin operandos. Ejemplo: INC AX.
- Direccionamiento Inmediato: El operando está directamente en la instrucción. Ejemplo: ADD AX,4.
- Direccionamiento Directo: La instrucción incluye una dirección de memoria específica para el operando. Ejemplo: ADD CH, [120].
- Direccionamiento Indirecto: La instrucción contiene una dirección que apunta a otra dirección con el operando real. Aunque el Intel 8086 no lo usa en el sentido puro, este modo es común en otros procesadores.
- Direccionamiento Indirecto de Registro: La instrucción indica un registro que contiene la dirección de la memoria donde se encuentra el operando. Ejemplo: ADD DL, [BX].
Pipeline de Instrucciones
Un pipeline de instrucciones permite dividir el ciclo de instrucción en varias etapas independientes, como la búsqueda (IF), decodificación (ID), búsqueda de operandos (OF) y ejecución (EX). Cada etapa realiza una parte del procesamiento, similar a una línea de montaje, lo que aumenta el rendimiento al procesar varias instrucciones en paralelo. Esto genera un paralelismo temporal, permitiendo que el procesador ejecute una instrucción por ciclo de reloj una vez que el pipeline está lleno.
Procesador sin Pipeline vs. Procesador con Pipeline
En un procesador sin pipeline, cada instrucción se ejecuta por completo antes de pasar a la siguiente, ocupando todos los recursos de la CPU para cada instrucción en su ciclo completo. Esto resulta en un IPC (instrucciones por ciclo) bajo.
En un procesador con pipeline, varias instrucciones pueden procesarse en distintas etapas simultáneamente, aumentando el IPC y mejorando el rendimiento.
Ventajas de implementar el Pipeline
- Mejora el IPC, permitiendo al procesador ejecutar más instrucciones por ciclo de reloj.
- Aumenta la frecuencia operativa al dividir el ciclo de instrucción en múltiples etapas más pequeñas, cada una de las cuales requiere menos tiempo.
Superpipelining
El superpipelining consiste en dividir las etapas del pipeline en sub-etapas más pequeñas, incrementando la cantidad de ciclos de reloj por instrucción. Esto permite alcanzar frecuencias más altas en el procesador y aumentar el rendimiento.
Paralelismo y Procesadores Superescalares
Los procesadores superescalares pueden ejecutar múltiples instrucciones en paralelo al tener varios pipelines. Esto permite el paralelismo espacial o ILP (Instruction Level Parallelism), que maximiza el rendimiento al despachar múltiples instrucciones al mismo tiempo.
El Intel Pentium fue el primer procesador superescalar de Intel, con dos pipelines que permitían ejecutar instrucciones enteras en paralelo, lo que duplicó teóricamente su IPC.
Problemas en el Pipeline
- Problemas de datos: Surgen cuando una instrucción depende del resultado de una instrucción previa. Soluciones: forwarding y registros de renombramiento.
- Problemas de control: Ocurren en instrucciones de salto, ya que no se sabe de antemano el flujo de ejecución. Soluciones: predicción de saltos (predictor estático y dinámico).
- Problemas de estructura: Suceden cuando varias instrucciones requieren la misma unidad de ejecución. Soluciones: agregar más unidades funcionales (Paralelismo y Procesado…).
IPC (Instrucciones por ciclo)
Mide el rendimiento de un procesador y representa la cantidad de instrucciones que puede ejecutar en cada ciclo de reloj. Cuanto más alto sea el IPC, mayor es el rendimiento del procesador. Los procesadores superescalares pueden alcanzar un IPC alto al ejecutar múltiples instrucciones en paralelo.
Taxonomía de Flynn
Clasifica las arquitecturas según la capacidad de procesar múltiples instrucciones y datos en paralelo:
- SISD (Single Instruction, Single Data): Procesa una instrucción en un solo dato. Ejemplo: procesadores simples como el Intel 80386.
- SIMD (Single Instruction, Multiple Data): Ejecuta una instrucción en múltiples datos simultáneamente, útil para operaciones vectoriales.
- MISD (Multiple Instruction, Single Data): Poco implementado comercialmente.
- MIMD (Multiple Instruction, Multiple Data): Ejecuta diferentes instrucciones en distintos datos simultáneamente. Los procesadores multinúcleo actuales pertenecen a esta categoría (Paralelismo y Procesado…).
Multiprocesamiento Simétrico (SMP)
En el multiprocesamiento simétrico (SMP), múltiples procesadores comparten la misma memoria y pueden ejecutar tareas de manera independiente, controlados por un solo sistema operativo. Esta arquitectura mejora el rendimiento en sistemas de alto rendimiento y servidores.
Clusters
Un cluster es un conjunto de computadoras interconectadas que trabajan en conjunto como una sola unidad para realizar tareas de alto rendimiento, comúnmente utilizado en servidores y centros de datos. Cada nodo en el cluster puede operar de forma independiente.
UMA y NUMA (Acceso a Memoria Uniforme y No Uniforme)
- UMA (Uniform Memory Access): Todos los procesadores tienen un tiempo de acceso uniforme a la memoria.
- NUMA (Non-Uniform Memory Access): Los tiempos de acceso varían según la ubicación de la memoria, optimizando el rendimiento en sistemas de múltiples procesadores.
CISC y RISC
- CISC (Complex Instruction Set Computing): Procesadores con instrucciones complejas y múltiples modos de direccionamiento, como la familia x86.
- RISC (Reduced Instruction Set Computing): Procesadores con instrucciones simples y rápidas, como los procesadores ARM, optimizados para eficiencia y velocidad (Paralelismo y Procesado…).
Front-End y Back-End en Procesadores Modernos
En los procesadores modernos, el front-end se encarga de la búsqueda y decodificación de instrucciones, mientras que el back-end realiza la ejecución y manejo del flujo de datos. Esta división permite la ejecución fuera de orden y optimización del paralelismo.
Ejecución Fuera de Orden (Out-of-Order Execution)
Permite que el procesador ejecute instrucciones fuera del orden original del programa para maximizar el uso de las unidades de ejecución. Utiliza registros de renombramiento y buffers de reordenamiento para gestionar el flujo de datos y reducir dependencias.
Multithreading (procesamiento multihilo)
Técnica que permite ejecutar múltiples hilos de ejecución en paralelo en un solo núcleo, mejorando el uso de los pipelines y el rendimiento en aplicaciones multitarea. Ejemplo: la tecnología Hyperthreading de Intel.
Arquitecturas Multinúcleo y Multiprocesador
- Multinúcleo: Procesador con varios núcleos en un solo chip, cada uno capaz de ejecutar instrucciones independientemente.
- Multiprocesador: Sistema con múltiples procesadores físicos interconectados, común en servidores y sistemas de alto rendimiento.
Chiplet y MCM (Multi Chip Module)
Los chiplets son módulos independientes dentro de un procesador que se conectan mediante buses de alta velocidad, permitiendo una fabricación más flexible y eficiente.
Un MCM (Multi Chip Module) es un ensamblaje de varios chiplets interconectados que funcionan como un solo procesador. Ejemplo: los procesadores AMD Ryzen utilizan esta arquitectura para mejorar la eficiencia y reducir costos (Paralelismo y Procesado…).
Módulo 10: Señales y Buses en Sistemas de Computación
1. Tipos de Señales
- Continuas: Su valor permanece constante a lo largo del tiempo, como en una pila de 1.5 V.
- Alternas: Varían en el tiempo y pueden ser periódicas, repitiendo su patrón en intervalos constantes. Ejemplo: señal senoidal.
- Analógicas: Pueden tomar infinitos valores dentro de un rango continuo.
- Digitales: Pueden tomar solo valores discretos. Ejemplo: señal cuadrada, que representa niveles binarios (1 y 0).
2. Señal de Reloj de la CPU
Generada por un oscilador de cristal, sincroniza las operaciones del procesador. Es una señal digital rectangular con una frecuencia medida en Hertz (MHz o GHz). A mayor frecuencia, mayor capacidad de procesamiento de instrucciones por segundo. La velocidad del procesador no depende solo de la frecuencia, sino también de factores como el IPC y la cantidad de núcleos.
3. Interconexión de Bus
La interconexión de bus es el conjunto de conexiones que permiten la comunicación entre los componentes de un sistema (CPU, memoria y dispositivos de E/S). Un bus se caracteriza por ser un medio compartido donde solo un dispositivo puede transmitir a la vez. Existen normas para regular la conexión y comunicación en el bus.
4. Tipos de Buses del Sistema
- Bus de Datos: Transporta los datos entre CPU, memoria y E/S. Su ancho determina cuántos bits se transmiten simultáneamente (e.g., 16, 32, 64 bits).
- Bus de Direcciones: Transporta la dirección de memoria o del puerto de E/S al que accede la CPU. El ancho del bus de direcciones define la capacidad de direccionamiento.
- Bus de Control: Lleva señales de control para coordinar las operaciones, como Memory read, Memory write, I/O read, I/O write, y señales de sincronización como Clock y Reset.
5. Características de los Buses
- Buses Paralelos y Seriales: Los buses paralelos transmiten varios bits a la vez, siendo efectivos en cortas distancias, mientras que los seriales transmiten un bit a la vez, adecuados para largas distancias y altas velocidades.
- Ancho de Banda: La cantidad de datos que puede transmitir el bus por unidad de tiempo. Depende del ancho y la velocidad del bus.
- Sincronización: Los buses pueden ser sincrónicos (con una señal de reloj común) o asincrónicos (cada dispositivo regula su sincronización).
- Multiplexado y Dedicado: Un bus multiplexado comparte líneas para múltiples tipos de datos, reduciendo el costo. Un bus dedicado tiene líneas exclusivas, mejorando el rendimiento al permitir transmisiones simultáneas.
6. Interconexión Punto a Punto
En la interconexión punto a punto, cada dispositivo tiene un enlace dedicado, eliminando la necesidad de arbitraje y proporcionando mayor ancho de banda y menor latencia. Ejemplos: PCIe, SATA, USB, HDMI. Esta conexión es adecuada para procesadores modernos, donde se requiere alta velocidad y baja latencia.
7. Jerarquía de Buses
Los sistemas modernos usan una jerarquía de buses para manejar eficientemente el ancho de banda. En los CPUs actuales, el bus de sistema está jerárquicamente organizado para minimizar los cuellos de botella. Por ejemplo, los buses internos del procesador son más rápidos que los buses de expansión de E/S.
El bus interno del microprocesador, que lo conecta con su memoria caché es el más rápido de la jerarquía. Le sigue el bus de sistema (en amarillo), compuesto por los buses de datos, control y direcciones que salen de la CPU. Este bus conecta la CPU con la memoria principal y con el bus de E/S. Por último, para la conexión de E/S se implementa un bus de expansión.
PCI (Peripheral Component Interconnect en verde) paralelo que tiene conectadas interfaces controladoras y sirve de puente (Bridge) a los restantes buses más lentos del sistema. El bus PCI y el ISA actualmente son obsoletos y se dejaron de utilizar, sin embargo ilustran perfectamente la jerarquía de buses.
8. Ejemplos de Buses de E/S en la PC
- PCI Express (PCIe): Interconexión punto a punto serial que conecta componentes de alta velocidad, como tarjetas gráficas y SSDs. Soporta versiones como PCIe 3.0, 4.0 y 5.0.
- SATA: Conexión serial para almacenamiento, utilizada en discos duros y SSDs. Las versiones más comunes son SATA 3.0 y SATA Express.
- USB: Interfaz para periféricos como teclados, ratones y discos externos. Los estándares incluyen USB 2.0, 3.0, 3.1, 3.2 y USB4.
- HDMI y DisplayPort: Para transmisión de video y audio. HDMI es popular en monitores y televisores, mientras que DisplayPort permite conexión en cadena de múltiples monitores.
- Ethernet: Para redes locales (LAN), con velocidades de hasta 1 Gbit/s en conexiones Gigabit Ethernet.
Módulo 11: Gestión de Entrada/Salida (E/S)
1. Concepto de Entrada/Salida (E/S)
Entrada/Salida (E/S) es el intercambio de información entre la CPU y los dispositivos periféricos externos, como teclados, monitores, discos duros y redes. Los módulos de E/S actúan como interfaces entre la CPU y los periféricos, gestionando la comunicación y el control de datos.
2. Funciones de los Módulos de E/S
- Control y temporización: Coordinan el tráfico de datos entre la CPU y los periféricos.
- Comunicación con la CPU: Incluye reconocimiento de direcciones, decodificación de órdenes, intercambio de datos y señalización de estados.
- Comunicación con dispositivos: Similar a la comunicación con la CPU, excepto que no requiere reconocimiento de direcciones.
- Almacenamiento temporal de datos: Utiliza buffers para adaptar las velocidades de transferencia entre la CPU y los dispositivos, como en el caso de un periférico rápido que necesita comunicar datos a un dispositivo más lento.
- Detección de errores: Los módulos informan a la CPU sobre errores en los periféricos utilizando códigos como paridad y Hamming (Unidad Entrada Salida).
3. Puertos de E/S
- Puerto de Control: La CPU escribe valores para controlar el comportamiento del dispositivo.
- Puerto de Estado: La CPU lee el estado actual del dispositivo.
- Puerto de Datos: La CPU lee y escribe datos para el intercambio con el periférico.
4. Modalidades de E/S
- E/S Programada: La CPU ejecuta un programa que verifica constantemente el estado de los dispositivos periféricos (método de polling). Este método es ineficiente, ya que la CPU no puede realizar otras tareas mientras espera la respuesta del periférico.
- E/S por Interrupciones: El periférico interrumpe a la CPU cuando necesita atención. Esto permite que la CPU realice otras tareas hasta que el periférico requiera su intervención. Es más eficiente que el polling.
- E/S por Acceso Directo a Memoria (DMA): Un controlador DMA realiza la transferencia de datos entre la memoria principal y el periférico sin intervención de la CPU, liberando al procesador para otras tareas. El DMA se convierte en el "máster" del bus mientras realiza la transferencia y notifica a la CPU una vez que ha terminado. Este método es el más eficiente (Unidad Entrada Salida).
5. Necesidades del ADM o DMA para Operar
La CPU configura el controlador DMA con la dirección de origen, longitud de datos y modo de operación. El controlador DMA toma el control del bus y realiza la transferencia. Una vez completada, el DMA interrumpe a la CPU para informar que la tarea ha finalizado (Unidad Entrada Salida).
6. Tipos de Direccionamiento de E/S
- E/S Mapeada a Memoria (Memory-Mapped I/O): Las direcciones de E/S comparten el espacio de direccionamiento con la memoria principal. Simplifica las instrucciones al tratar las operaciones de E/S como accesos a memoria.
- E/S Mapeada Aislada (Isolated I/O): Las direcciones de E/S están en un espacio separado de la memoria principal. Esto requiere instrucciones específicas para operaciones de E/S.
7. Chipset
El chipset es un conjunto de chips en la placa madre que facilita la comunicación entre la CPU y otros componentes, como la memoria y los periféricos. Antiguamente, se dividía en el Puente Norte (controlaba la comunicación con la memoria y gráficos) y el Puente Sur (gestionaba interfaces más lentas como USB, audio y discos). Actualmente, el Puente Norte se ha integrado en la CPU, mientras que el Puente Sur ha evolucionado en el PCH (Platform Controller Hub) en Intel o el controlador de I/O en AMD (Unidad Entrada Salida).
8. Diferencias entre el Puente Norte y el Puente Sur
El Puente Norte controlaba la comunicación de alta velocidad con la memoria y gráficos, mientras que el Puente Sur gestionaba dispositivos de baja velocidad. Hoy en día, las funciones del Puente Norte están integradas en la CPU, y el Puente Sur sigue en el chipset.
9. Función del Puente Norte en las CPU actuales
Las funciones del Puente Norte, como el control de memoria y gráficos, ahora están integradas dentro de la CPU, permitiendo una comunicación más rápida y directa con la memoria y la tarjeta gráfica.
10. Bus Mastering
El Bus Mastering permite que un dispositivo periférico (como un controlador DMA) tome control del bus de sistema y realice transferencias de datos directamente con la memoria sin intervención de la CPU. Esto mejora la eficiencia y reduce la carga de trabajo del procesador, permitiendo que la CPU continúe con otras tareas.
11. Medios de Almacenamiento Secundario
- Disco Duro Mecánico (HDD): Almacena datos en platos magnéticos, tiene una gran capacidad (varios terabytes), pero es más lento debido a sus partes mecánicas.
- SSD SATA: Basado en memoria flash, ofrece tiempos de acceso rápidos y menor consumo de energía que los HDD, aunque generalmente tiene menos capacidad.
- SSD NVMe: Utiliza el bus PCIe y ofrece velocidades de transferencia mucho mayores que los SSD SATA, con tiempos de acceso de menos de 0.1 ms. Ideal para aplicaciones que requieren alta velocidad de lectura y escritura, aunque son más costosos por GB.
Módulo 12: Interrupciones y Excepciones en Sistemas de Computación
1. Diferencia entre Interrupciones y Excepciones
- Interrupciones: Son eventos externos a la CPU (como una solicitud de E/S) que causan una transferencia de control hacia una rutina de atención de interrupciones (ISR). Las interrupciones pueden ser enmascarables o no enmascarables y son causadas principalmente por hardware.
- Excepciones: Son eventos generados internamente por el software, como un error de ejecución (e.g., división por cero) o una instrucción específica que genera una excepción (e.g., instrucciones INT). Las excepciones no respetan esquemas de prioridad y se manejan mediante software (Interrupciones).
2. Etapas de las Interrupciones Enmascarables
- Solicitud: Un dispositivo envía una señal de solicitud de interrupción (INTR) a la CPU.
- Reconocimiento: La CPU verifica el estado del flag IF (Interrupt Flag). Si el flag está en 1, se acepta la interrupción, y se envía la señal INTA (Interrupt Acknowledge).
- Atención: La CPU ejecuta la ISR correspondiente, interactuando con el dispositivo solicitante.
- Retorno: Al finalizar la ISR, se restaura el contexto del programa interrumpido, devolviendo el control a este mediante la instrucción IRET (Interrupciones).
3. Función del Flag IF
El Flag IF es un bit en el registro de estado de la CPU que habilita o deshabilita las interrupciones enmascarables. IF=1 permite que la CPU reconozca y atienda interrupciones enmascarables, mientras que IF=0 hace que la CPU ignore estas interrupciones.
4. Señales durante la Solicitud y el Reconocimiento
- INTR (Interrupt Request): Enviada por un dispositivo para solicitar una interrupción.
- INTA (Interrupt Acknowledge): Enviada por la CPU al dispositivo para confirmar que la solicitud ha sido reconocida y que la interrupción será atendida (Interrupciones).
5. Vector de Interrupciones
El vector de interrupciones es una tabla en la memoria que contiene punteros hacia las rutinas de servicio de interrupción (ISR). Cada tipo de interrupción tiene un número asociado que la CPU usa para buscar la dirección de la ISR correspondiente en el vector. En CPUs Intel, el vector de interrupciones permite gestionar hasta 256 tipos de interrupciones diferentes (Interrupciones).
6. Datos que Debe Guardar la CPU en la Pila
Antes de ejecutar la ISR, la CPU guarda en la pila el contador de programa (registro CS e IP) y el registro de estado (flags). Esto permite a la CPU retomar el programa interrumpido en el mismo punto donde fue interrumpido una vez finalizada la ISR.
7. Proceso de Retorno
Tras ejecutar la ISR, la CPU usa la instrucción IRET para restaurar los registros CS, IP y flags desde la pila, retomando la ejecución del programa interrumpido como si la interrupción no hubiera ocurrido.
8. Interrupciones Enmascarables y No Enmascarables
- Enmascarables: Controladas por el flag IF, el cual puede habilitar o deshabilitar su reconocimiento.
- No enmascarables: No dependen del flag IF y siempre deben ser atendidas debido a su prioridad. Generalmente usadas para errores críticos como fallos de paridad (Interrupciones).
9. Anidamiento de Interrupciones
El anidamiento ocurre cuando una interrupción interrumpe a otra ISR en ejecución. Para permitir anidamiento, la primera instrucción de la ISR debe habilitar interrupciones (STI). Si no se desea anidamiento, no se incluye la instrucción STI, y las interrupciones adicionales no serán atendidas hasta finalizar la ISR en curso (Interrupciones).
10. Tipos Dedicados del Vector de Interrupción
Algunos tipos dedicados en la CPU Intel x86 incluyen:
- Tipo 0: División por cero.
- Tipo 1: Paso a paso, usado en depuración.
- Tipo 2: Interrupción no enmascarable (NMI).
- Tipo 3: Punto de interrupción para depuración.
- Tipo 4: Desbordamiento (overflow) (Interrupciones).
11. Administración de Prioridades en Interrupciones
En sistemas con múltiples interrupciones, se utiliza un controlador de interrupciones programable (PIC), como el 8259A, que permite manejar prioridades y definir el orden de atención. Las interrupciones de mayor prioridad pueden interrumpir a otras de menor prioridad (Interrupciones).
12. Excepciones Programadas o Interrupciones por Software
Estas son instrucciones que el software ejecuta para forzar una interrupción específica, como las instrucciones INT en ensamblador. Las interrupciones por software no dependen de hardware y son predecibles, usadas comúnmente para comunicación entre programas y el sistema operativo (Interrupciones).
13. Interrupciones Señalizadas por Mensaje (MSI)
En lugar de usar una línea física de señal, el sistema MSI (Message Signaled Interrupts) permite que los dispositivos generen interrupciones mediante mensajes escritos en posiciones específicas de memoria. Este método es común en interfaces modernas como PCIe y reduce la latencia, ya que elimina la necesidad de un pin físico para cada línea de interrupción (Interrupciones).