注意: PDF Link Inter MultiProcessor specification Version 1.4
3.9 多核CPU启动
操作系统必须允许访问多核启动信息配置。MP规范提供两个方法向操作系统传递这些信息: 一个是遵循一组常见硬件默认设置的简单方法、另一个是可以根据硬件灵活设计的复杂的方法。
两个结构体作用:
- MP Floating Pointer Structure 这个结构提供了一个物理地址指针,指向了MP 配置表和其他MP特征信息。如果这个结构存在,则当前系统符合MP规范。它必须储存在至少一个如下的内存区中,因为操作系统按照下面的顺序搜索这个结构体:
- 在BIOS拓展空间(EBDA)的前1K字节中
- 在系统基础内存的最后1K字节中(例如,系统基础内存为640KB 在639K-640K之间 ,或者系统内存为512KB 在511K-512K之间 )
- 在BOIS ROM地址空间中(0F0000h 到 0FFFFFh)
- MP Configuration Table 这个结构是可选的。这个结构由基础部分和拓展部分组成。基础部分包括完全向后兼容的先前版本的结构。拓展部份包括额外的入口标志。MP配置结构包括详细的高级可编程中断控制器,处理器,总线和中断信息。入口标志决定了这个结构的格式和长度。如果这个结构存在,它必须储存在non-reported系统内存区或者BIOS制度内存区。
如果系统设计和默认配置相对应则不需要MP配置表。注意,默认配置只针对那些总是配有两个处理器的设计。支持处理器数量可变的系统必须提供一个完整的MP配置表,它指示了可以提供的处理器数量。例如,只使用一个处理器的系统但是为以后的升级提供了两个处理器可能不使用默认的MP。
MP配置表可能位于下列的内存中
- 在EBDA的前1K字节中
- 在系统内存的后1K字节中
- 在系统物理内存的开始
- 在BIOS的只读内存中
MP Floating Pointer Structre
struct _MP
{
cha