X86架构下的产品包括Notebook, Desktop,Server,Workstation等。Notebook和Desktop里一般都只有一颗CPU,Server和Workstation则会有多颗。而随着生活水平的提高,对于CPU速度的要求越来越高,但由于工艺的原因,速度提升到一定阶段之后就无法再提升,此时,工业界想出了另外一个办法:集成多个核。这就是多核CPU的来历。这里的核称作core。
除了多核CPU,Intel还提出了一种技术叫Hyper-threading,也就是超线程技术。当超线程技术使能之后,一个core会虚拟出两个logical-processor。
总结一下,平台可能有1-N个CPU,每个CPU可能有1-N个核,每个核可能有1-2个logical-processor。
我们可以把操作系统中的线程(thread)对应到这里的logical-processor,实际上操作系统中的thread的概念要更会复杂,但这里只考虑thread由一个logical-processor来执行这种一一对应的关系而已。
在OS中是多线程的执行环境,但在BIOS POST阶段是单线程执行,那么如何处理这多个logical-processor的关系呢?
BSP - boot strap processor; AP - application processor; nBSP - native BSP,适用于多个CPU的环境下,指最终选作执行BIOS代码的logical-processor。
AP在POST阶段处于何种状态:在被选作AP之后(竞争BSP失败),AP的