2025年6月21日 星期六

CPU Core Disable Bitmap


有時我們會需要手動啟用或關閉特定的CPU核心,此時我們可以在BIOS中利用CPU Core Disable Bitmap這個功能,透過位元邏輯操作來達成CPU核心的控制。CPU Bitmap是一組二進位位元 (Bit),每一個位元代表一顆CPU核心的狀態
  • 1:啟用
  • 0:停用
若有16顆核心,一個16位元的bitmap:1111 1111 1111 1111就代表所有核心都啟用。

Bitmap的位元順序與十六進位轉換

在BIOS Setup中,系統會以十六進位 (Hex) 形式來呈現 Bitmap的位元狀態。例如,假設系統有16顆CPU核心,對應的Bitmap就是一組16位元的二進位數字,用來表示每顆核心的啟用狀態。若所有核心都被啟用,則該16位元的二進位表示為1111 1111 1111 1111。將這組二進位數字轉換成十六進位,即為 0xFFFF。

Disable Bitmap的原理

這裡會用到兩種位元邏輯運算:
  • ~:位元反轉 (NOT) — 把每一個bit反轉,例如1變0,0變1
  • &:位元 (AND) — 只有當兩個位元都是1時,結果才是1
為了關閉特定核心,BIOS會使用兩組Bitmap搭配邏輯運算:
  • Available_Bitmap:當前啟用中的核心狀態
  • Disable_Bitmap:使用者想要停用的核心位元
邏輯運算的完整公式為:New_Available_Bitmap = Available_Bitmap & ~Disable_Bitmap 
舉一個簡單16位元的例子:
  1. Available_Bitmap:1111 1111 1111 1011 (HEX:0xFFFB) 
  2. Disable_Bitmap:0000 1111 1111 0000 (HEX:0x0FF0) 
  3. ~Disable_Bitmap:1111 0000 0000 1111 (NOT)
  4. New_Available_Bitmap:1111 0000 0000 1011 (AND運算後的結果)
New_Available_Bitmap代表新的可用核心狀態,經過Disable_Bitmap遮罩後第4~11位元會被關閉,其餘位元保持不變,從原本的15核心開啟減至7核心開啟。

沒有留言:

張貼留言