我现在正在尝试了解启动过程以及处理器如何初始化。我已经阅读了多处理器规范部分B.4.2,但我不清楚INIT IPI
和STARTUP IPI
对BSP
和AP
的作用。
答案 0 :(得分:3)
总的来说; INIT IPI
就像(逻辑)CPU的软复位,将其置于“等待SIPI状态”。英特尔手册中的表格显示了上电后,复位后和INIT IPI
之后各种寄存器的默认值。
Startup IPI
是一种告诉CPU在可以设置可用IDT之前在某个地址(从Startup IPI
的“向量字段”派生的地址)开始执行的方法。这也使CPU从“等待SIPI状态”中脱离出来。当某些(大多数)CPU处于“等待SIPI状态”时,它们将响应Startup IPI
,但如果没有先前的INIT IPI
,则您不能指望CPU处于已知状态/当时的安全状态。
所有CPU都响应INIT IPI
和Startup IPI
。 BSP和AP之间的主要区别在于上电(BSP在AP CPU等待时执行固件)。