APIC, SAPIC, xAPIC and x2APIC
Posted: Sat Mar 29, 2008 10:03 am
Hi everybody!
My system is running fine in the smp environment. Thanks to your help about MP tables (especially thanks to Brendan!).
As I was implementing all the features I came across some different terms related to APICs. Until then, I thought there was the (one and only) APIC. Now there come the names "SAPIC" and "xAPIC" into play. I didn't find precise information about how APIC - SAPIC - xAPIC relate to each other.
In the IA32/Intel64 Manuals they are writing about xAPICs and apparently the "x" stands for "extended". But what is the extension in comparison to the "normal" APICs. Maybe I overlooked something, but I found no difference. Can someone please explain the extension compared to the "old"/"normal" APICs?
For the x2APICs, the successors of the xAPICs, the difference is clear, although I don't feel that the programming per MSRs is much more beneficial over accessing memory mapped registers. Why should it be so much better?
For "SAPIC", streamlined APIC, it's more simple. There is a Intel document that presents the SAPIC architecture and it says something like "SAPIC is very cool, better than the old APIC and you can program it like you ever did it". So the difference is the implementation (hardware) itself. Can someone please clarify what's "streamlined" there and where the advantage comes from?
Thank you in advance!
Snooky
My system is running fine in the smp environment. Thanks to your help about MP tables (especially thanks to Brendan!).
As I was implementing all the features I came across some different terms related to APICs. Until then, I thought there was the (one and only) APIC. Now there come the names "SAPIC" and "xAPIC" into play. I didn't find precise information about how APIC - SAPIC - xAPIC relate to each other.
In the IA32/Intel64 Manuals they are writing about xAPICs and apparently the "x" stands for "extended". But what is the extension in comparison to the "normal" APICs. Maybe I overlooked something, but I found no difference. Can someone please explain the extension compared to the "old"/"normal" APICs?
For the x2APICs, the successors of the xAPICs, the difference is clear, although I don't feel that the programming per MSRs is much more beneficial over accessing memory mapped registers. Why should it be so much better?
For "SAPIC", streamlined APIC, it's more simple. There is a Intel document that presents the SAPIC architecture and it says something like "SAPIC is very cool, better than the old APIC and you can program it like you ever did it". So the difference is the implementation (hardware) itself. Can someone please clarify what's "streamlined" there and where the advantage comes from?
Thank you in advance!
Snooky