用户工具

站点工具


协议学习:x86:apic

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

后一修订版
前一修订版
协议学习:x86:apic [2020/03/12 14:50] – 创建 zhangguo协议学习:x86:apic [2023/03/17 10:12] (当前版本) – 外部编辑 127.0.0.1
行 1: 行 1:
 apic apic
 +
 +https://wiki.osdev.org/APIC
 +
 +https://wiki.osdev.org/IOAPIC
 +
 +https://zhuanlan.zhihu.com/p/26464793
 +
 +
 +
 +https://www.bbsmax.com/A/kjdwX7BzNp/
 +
 +apic 发展历程:
 +
 +pic(8259) -> apic(早期P6) -> xapic(PENTIUM 4 AND XEON) -> x2apic 
 +
 +检测APIC版本可以用CPUID指令。
 +
 +在xAPIC模式中,寄存器是通过内存映射到一段物理地址。有一个默认值。防止同其他地址冲突,这个基地址又可以重新指定到另外一个地方。BIOS开发人员在对付APIC时可能会用到这个功能。
 +
 +在x2APIC模式中,取消了内存映射方式来读取APIC的寄存器,而是采用了MSR的方式。MSR的全写是Model-specific register(每个型号特有的寄存器)这样的好处是不用再担心内存地址的冲突问题。
 +
 +不同的APIC模式的开启,关闭以及状态切换之间又有一些规则。如果你要自己改这些地方,就要按照规定来。同时注意在x2APIC模式下,写入寄存器的时候不保证顺序,所以要自己小心,比如用个BARRIER之类的。
 +
协议学习/x86/apic.1583995843.txt.gz · 最后更改: 2023/03/17 10:12 (外部编辑)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki