IRQ's e tabela vetorial de interrupções

2

Eu tenho lido muito sobre IRQs, e parece que há informações conflitantes e desatualizadas. Algumas delas remontam ao Windows 95. Aqui está o que estou confuso.

  1. Are both software interrupts and hardware interrupts managed and dispatched by the interrupt vector table. If not how are then controlled differently.

  2. I read there is a difference between PCI mode IRQs and ISA mode IRQs, is this true? If so how do you set the mode, and how do they function differently?

  3. Now that we have PCI express, do they use PCI mode IRQs (if they exist), how do they work (interrupt wise).

EDIT 4. Olhando para esta imagem, parece que há muitos IRQs e que eles são mapeados para a memória. Quais são as implicações disto? Existem mais de 16 IRQs. Eu sei que o APIC permite mais, mas isso muitos?

Agradecemos antecipadamente: -)

    
por rubixibuc 01.05.2012 / 00:13

1 resposta

2

Não há modos diferentes, há hardware diferente no barramento ISA antigo e no barramento PCI. O barramento ISA forneceu 16 linhas de IRQ no barramento que os dispositivos poderiam usar para sinalizar a atenção. O controlador de interrupção programável (na verdade, um par de chips 8259A em cascata) respondeu a essas linhas priorizando-as e sinalizando a CPU quando ela estava ativa. Isso fez com que a CPU invocasse uma rotina de serviço de interrupção. IRQs 0-7 desencadearam int 8-F e IRQs 8-15 desencadearam int 70-77. Interrupções também poderiam ser acionadas via instrução int, e faziam a CPU chamar uma rotina apontada pelo slot correspondente na tabela de vetores de interrupção.

Em vez de 16 linhas IRQ compartilhadas por todos os dispositivos no barramento, o PCI forneceu 4 linhas IRQ diferentes para cada slot no barramento chamado INTA-INTD, permitindo que cada dispositivo tenha até 4 IRQs diferentes para seu próprio uso. Na prática, os dispositivos só usam o INTA, que o hardware direciona para IRQs específicos.

Os números que você vê na imagem não são endereços de memória, eles são simplesmente a representação hexadecimal do número de IRQ.

O APIC suporta 256 vetores de interrupção.

    
por 01.05.2012 / 03:48