網(wǎng)絡(luò)問題

      電腦開機(jī)時(shí)侯的第一段指令,是 CPU 里哪一個(gè)/哪一些核執(zhí)行的?

      2020-04-29
      0
      這個(gè)問題其實(shí)比較復(fù)雜。分為單CPU(單socket)和多CPU(多Socket)兩種。我們先從單CPU講起。

      單CPU的電腦,排除十年前的CPU,現(xiàn)在的基于Intel的電腦。上電的順序如下:

      老狼:按下電源鍵后發(fā)生了什么?電腦是如何優(yōu)雅地開機(jī)的?
      ?
      zhuanlan.zhihu.com
      圖標(biāo)
      先起來的是基于MCU的ME部分。ME跑了一會(huì),認(rèn)為可以了(安全認(rèn)證啥的),就放開了CPU的PWRGOOD#引腳,CPU正式開始運(yùn)行。問題是CPU里面哪個(gè)內(nèi)核先跑呢?這是由PCU決定,不一定是CPUID為0的Thread。這個(gè)thread我們叫它BSP,其他的thread叫做AP。BSP開始執(zhí)行reset vector的代碼,也就是BIOS代碼;而AP處在wait for SIPI的狀態(tài),等待被喚醒。

      多CPU,前面和單CPU差不多,區(qū)別是ME會(huì)同時(shí)放開兩個(gè)CPU,它們一起醒來。每個(gè)CPU的BSP都執(zhí)行BIOS代碼,而由BIOS來決定誰主導(dǎo)后面的啟動(dòng)過程。這個(gè)主導(dǎo)的thread叫做SBSP,那個(gè)跑了一段BIOS就"被"休息的其他CPU的thread叫做NBSP。
      部分文章來源與網(wǎng)絡(luò),若有侵權(quán)請(qǐng)聯(lián)系站長刪除!

      推薦產(chǎn)品