簡介
CPUID操作碼是一個面向
x86架構的處理器補充指令,它的名稱派生自
CPU識別,作用是允許軟體發現處理器的詳細信息。它由
英特爾在1993年引入
奔騰和SL增強486處理器。
通過使用CPUID操作碼,軟體可以確定處理器的類型和特性支持(例如
MMX/
SSE)。CPUID操作碼為0Fh、A2h(雙位元組形式,A20Fh為單字(word))形式,值位於EAX暫存器中,某些情況下ECX暫存器用於指定要返回的信息。
歷史
在CPUID指令普遍可用前,程式設計師需要編寫深奧的
機器語言利用CPU行為的微小差異來確定處理器的情況和型號。
在x86系列之外,開發人員大多仍然需要使用深奧的過程來確定CPU設計存在的差異。雖然CPUID指令針對x86架構,但其他架構(例如ARM)通常提供可供讀取的片上暫存器來獲取與此指令提供的相同種類的信息。
調用CPUID
在
彙編語言中,CPUID指令不使用參數,因為CPUID隱式使用EAX暫存器來確定返回信息的主類別。在英特爾最新的術語中,這被稱為CPUID leaf。CPUID的調用應該以EAX = 0開始,這將在EAX暫存器中返回CPU支持的最高EAX調用參數(leaf)。
x86外的特定CPU識別信息
一些非x86的CPU架構也提供了有關處理器能力的某種形式的結構化信息,通常作為一組特殊暫存器:
參見
CPU-Z,一個使用CPUID等信息識別系統配置的Windows實用工具