>> Tecnologia Eletrônica >  >> Casa Inteligente >> Aspirador de pó

Por Que Mascaramento de Interrupção é Essencial em Microprocessadores

Execução Atômica e Determinismo em Tempo Real

Mascaramento de interrupção desabilita temporariamente o tratamento de interrupções, permitindo que a CPU execute seções críticas de código atomicamente. É um primitivo fundamental de sincronização.

Principais Razões

  1. Proteção de Seção Crítica: Previne condições de corrida ao acessar recursos compartilhados (variáveis globais, registradores de hardware, listas encadeadas). Sem mascaramento, uma ISR poderia corromper dados no meio da atualização.
  2. Determinismo em Tempo Real: Garante tempo de execução pior-caso (WCET) para tarefas de alta prioridade limitando latência de interrupção. Essencial para sistemas hard real-time (automotivo, aviônicos, controle de motor).
  3. Read-Modify-Write Atômico: Permite implementação segura de semáforos, mutexes e algoritmos lock-free em single-core.
  4. Gerenciamento de Energia: Desabilitar clocks do controlador de interrupção durante deep sleep reduz corrente de vazamento em dispositivos a bateria.
  5. Otimização de Troca de Contexto: Reduz saves/restores de contexto desnecessários quando interrupções são adiadas durante rotinas curtas do kernel.

Mecanismos de Implementação

  • Máscara Global: Flag única (ex.: x86 CLI/STI, ARM CPSID I/CPSIE I, RISC-V mie CSR).
  • Máscara Seletiva: Bits de habilitação por interrupção no controlador de interrupção (PIC, APIC, GIC, PLIC).
  • Limiar de Prioridade: Mascara todos abaixo de um nível (ARM BASEPRI, RISC-V PMP).

Riscos de Uso Excessivo

Mascaramento excessivo → latência de interrupção aumentada, deadlines perdidos, eventos perdidos (serial overrun, drift de timer tick). Boa prática: mantenha seções mascaradas < 10–20 µs; use locking fine-grained onde possível.