APIC

A partir das placas soquete 7, os dois controladores de interrupções foram substituídos por um controlador aprimorado, batizado de APIC (Advanced Programmable Interrupt Controller). O APIC preserva a compatibilidade com os dois controladores antigos, o que permite que placas de legado e sistemas operacionais antigos continuem funcionando normalmente. Originalmente, ele foi desenvolvido para melhorar a eficiência de sistemas com dois ou mais processadores, mas ele traz benefícios mesmo em máquinas com apenas um.

Para que o APIC possa ser ativado, é necessário que exista suporte por parte do processador (todos os processadores a partir do Pentium 1 o suportam), por parte da placa-mãe (o suporte foi introduzido a partir das placas soquete 7, de forma que todas as placas atuais o suportam) e também por parte do sistema operacional. Na família Windows, o suporte foi introduzido a partir do Windows 2000, enquanto no Linux ele existe desde a série 2.4 do Kernel.

O APIC pode ser desativado através da opção “APIC Function” (ou similar) do setup, mas é importante mantê-lo ativado em qualquer PC atual (sobretudo ao usar as versões atuais do Windows), pois ele acrescenta 8 novos endereços de IRQ, do 16 ao 23, além de melhorar sensivelmente o sistema de atribuição automática de endereços.

Em teoria, é possível desenvolver controladores APIC com mais endereços, ou mesmo combinar vários controladores na mesma placa, de forma a aumentar o número de endereços disponíveis. Com isso, os fabricantes ganham margem para expansões futuras, que eventualmente se tornem necessárias. Aqui temos um screenshot do gerenciador de dispositivos, mostrando a distribuição dos endereços em um PC atual, com o Windows XP SP2 instalado:

Gerenciador de dispositivos, mostrando a distribuição dos endereços em um PC atual, com o Windows XP SP2 instalado

Veja que além de distribuir os dispositivos instalados entre os agora 24 endereços disponíveis, o sistema permite que alguns endereços sejam compartilhados por vários dispositivos. Graças à expansão do número de endereços, o PC continua com vários endereços livres, apesar da adição das controladoras USB, placa wireless, leitor de cartões e outros dispositivos que não eram comumente usados em PCs antigos.

Embora qualquer distribuição Linux atual ofereça suporte ao APIC, é comum que problemas na implementação dos fabricantes (que frequentemente possuem bugs ou adicionam recursos fora da especificação) causem problemas na detecção de alguns dispositivos, sobretudo de periféricos onboard, como a placa de som ou a placa de rede.

Nesses casos, é possível desativar o APIC utilizando a opção “noapic“, especificada na tela de boot, ou adicionada na linha com opções para o Kernel dentro do arquivo “/boot/grub/menu.lst” ou “/etc/lilo.conf“.

Ver Mais

Postagem relacionada