
I have been reading about the APIC (Advanced Programmable Interrupt Controller) and know that it is a necessity for multiprocessor systems if your OS is capable of using more than one processor. However, my question is, other than the included timer that comes along with it, is there any advantage to detecting, initializing, and using the APIC on a uniprocessor system or an OS that is only uniprocessor capable?
As I see it, you still have to use the (emulated) 8259 for IRQ's and still only have the 15 vectors to choose from.
If you are going to use MSI's, I guess you need to have an APIC?
Anyway, what advantages does the APIC have in a uniprocessor system, besides the extras such as the timer?
If you only support one processor, do you need to even detect and initialize the APIC?
Now, to even confuse you and myself even more, the above is considered the Local APIC. What about the I/O APIC?
The I/O APIC, from what little reading I have done so far, does allow up to 24 vectors. Eight plus one more than the 8259.
In a uniprocessor or multiprocessor system, it is probably an advantage to detect, initialize, and use the I/O APIC so that you can now use 24 IRQ lines?
Anyway, I am just looking for your opinions on this, especially with a uniprocessor system/OS.
Thank you,
Ben
http://www.fysnet.net/osdesign_book_series.htm