I have been reading a lot about IRQs, and it seems there is conflicting and out of date information. Some of it dating back to Windows 95. Here is what I'm confused about.
Are both software interrupts and hardware interrupts managed and dispatched by the interrupt vector table. If not how are then controlled differently.
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?
Now that we have PCI express, do they use PCI mode IRQs (if they exist), how do they work (interrupt wise).
EDIT 4. Looking at this picture it appears that are many IRQs and that they are mapped to memory. What are the implications of this? There are way more than 16 IRQs. I know that APIC allows for more, but this many?

Thanks in advance :-)