协议学习: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:// | ||
+ | |||
+ | https:// | ||
+ | |||
+ | https:// | ||
+ | |||
+ | |||
+ | |||
+ | https:// | ||
+ | |||
+ | 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 (外部编辑)