O Papel do Módulo de E/S (I/O Module)
A CPU e a memória principal não se comunicam diretamente com os periféricos externos (teclados, placas de rede, monitores) devido a disparidades drásticas de velocidade de transferência, formatos de sinal elétrico e protocolos de comunicação. O Módulo de E/S atua como um controlador intermediário inteligente que expõe registradores internos de dados, controle e estado para a CPU.
Abordagens de Mapeamento de Dispositivos
- I/O Mapeado em Memória (Memory-Mapped I/O): Os registradores do módulo de E/S compartilham o mesmo espaço lógico de endereçamento da memória RAM convencional. A CPU utiliza as mesmas instruções de leitura e escrita em memória (ex:
MOVou ponteiros em C) para manipular o hardware externo. É o padrão utilizado em arquiteturas ARM e barramentos PCIe modernos. - I/O Isolado (Port-Mapped I/O): O sistema possui um espaço de endereçamento exclusivo para dispositivos externos separado da memória RAM. Exige instruções específicas de nível de máquina do processador (como
INeOUTna arquitetura x86) para interagir com as portas de hardware.
Técnicas de Gerenciamento de Transferência de Dados
Existem três métodos fundamentais de controle e sincronização de dados entre a periferia e o núcleo de processamento:
1. E/S Programada (Polling ou Varredura)
A CPU emite um comando para o módulo de E/S e entra em um loop infinito monitorando continuamente o registrador de estado do dispositivo para verificar se a operação terminou.
Desvantagem: Desperdiça ciclos computacionais valiosos mantendo a CPU ocupada com esperas ociosas (busy-waiting).
2. E/S Controlada por Interrupções
Em vez de forçar a CPU a esperar, o módulo de E/S assume o trabalho. Quando o dispositivo externo está pronto (ex: uma tecla foi pressionada ou um pacote de rede chegou), ele envia um sinal elétrico para um pino físico da CPU chamado linha de Interrupção (IRQ).
O processador suspende temporariamente a execução do programa do usuário, salva o contexto atual de registradores na pilha de memória e salta para executar uma função específica de software do driver chamada Rotina de Tratamento de Interrupção (ISR - Interrupt Service Routine). Ao terminar, restaura o contexto e continua o processamento original.
3. DMA (Direct Memory Access - Acesso Direto à Memória)
Para transmissões de dados em massa (como leitura de arquivos em SSDs NVMe ou pacotes em redes Gigabit), o uso de interrupções bit a bit saturaria a CPU. O controlador de DMA assume o controle dos barramentos do sistema.
A CPU apenas configura o DMA informando o endereço de origem, o endereço de destino na memória RAM e o tamanho do bloco de dados. O DMA realiza toda a transferência de bytes de forma independente e paralela. Ao final da transferência do bloco inteiro, o DMA emite uma única interrupção para avisar a CPU que o bloco está pronto.