1. 程式人生 > >Intel處理器Family、Model、Stepping等的學習

Intel處理器Family、Model、Stepping等的學習

本文主要介紹在Linux系統中檢視本機CPU資訊方法,接著針對intel的x86處理器標識進行概括性描述,包括CPU ID、vendor、Family、Model、Stepping等。這些資訊主要來自網路搜尋所得,同時參考Intel IA32架構軟體開發手冊第2卷、第3捲進行修正完善,參見文後附帶地址以便了解更多。


一、Linux下檢視CPU資訊
Linux系統使用lscpu命令可以檢視CPU資訊,如:
[email protected]:~$ lscpu 
Architecture:          i686
CPU op-mode(s):        32-bit, 64-bit
CPU(s):                8
Thread(s) per core:    2
Core(s) per socket:    4
CPU socket(s):         1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 58
Stepping:              9
CPU MHz:               1600.000
Virtualization:        VT-x
L1d cache:             32K
L1i cache:             32K
L2 cache:              256K
L3 cache:              8192K


從上面看到,筆者處理器架構為i686,8核CPU,CPU廠商為“ GenuineIntel”,family為6,Model為58(0x3A)。
 
另外用cat /proc/cpuinfo檢視本機CPU詳細資訊,如(共8核,只顯示第0個):
[email protected]
:~$ cat /proc/cpuinfo
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 58
model name      : Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz
stepping        : 9
cpu MHz         : 1600.000
cache size      : 8192 KB
physical id     : 0
siblings        : 8
core id         : 0
cpu cores       : 4
apicid          : 0
initial apicid  : 0
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 13
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx rdtscp lm constant_tsc arch_perfmon pebs bts xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 x2apic popcnt aes xsave avx f16c rdrand lahf_lm ida arat tpr_shadow vnmi flexpriority ept vpid
bogomips        : 6784.61
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual
power management:


二、Intel處理器標識


CPU ID
CPU ID是CPU生產廠家為識別不同型別的CPU,而為CPU制訂的不同的單一的程式碼;不同廠家的CPU,其CPU ID定義也是不同的;如 “0F24”(Inter處理器)、“681H”(AMD處理器),根據這些數字程式碼即可判斷CPU屬於哪種型別,這就是一般意義上的CPU ID。
CPU ID也是以十六進位制表示的。Inter處理器的CPU ID一共包含四個數字,如“0F24”,從左至右分別表示 Type(型別)、Family(系列)、Mode(型號)和Stepping(步進編號)。從CPUID為“068X”的處理器開始,Inter另外增 加了Brand ID(品種標識)用來輔助應用程式識別CPU的型別,因此根據“068X”CPUID還不能正確判別Pentium和Celerom處理 器。必須配合Brand ID來進行細分。AMD處理器一般分為三位,如“681”,從左至右分別表示為Family(系列)、Mode(型號)和 Stepping(步進編號)。 


Type(型別)
型別標識用來區別INTEL微處理器是用於由終端使用者安裝,還是由專業個人計算機系 統整合商、服務公司或製作商安裝;數字“1”標識所測試的微處理器是用於由使用者安裝的;數字“0”標識所測試的微處理器是用於由專業個人計算機系統整合 商、服務公司或製作商安裝的。我們通常使用的INTEL處理器型別標識都是“0”,“0F24”CPUID就屬於這種型別。
Family(系列)
系 列標識可用來確定處理器屬於那一代產品。如6系列的INTEL處理器包括Pentium Pro、Pentium II、Pentium II Xeon、Pentium III和Pentium III Xeon處理器。5系列(第五代)包括Pentium處理器和採用 MMX技術的Pentium處理器。AMD的6系列實際指有K7系列CPU,有DURON和ATHION兩大類。最新一代的INTEL Pentium 4系列處理器(包括相同核心的Celerom處理器)的系列值為“F”
Mode(型號)
型號標識可用來 確定處理器的製作技術以及屬於該系列的第幾代設計(或核心),型號與系列通常是相互配合使用的,用於確定計算機所安裝的處理器是屬於某系列處理器的哪種特 定型別。如可確定Celerom處理器是Coppermine還是Tualutin核心;Athlon XP處理器是Paiomino還是 Thorouhgbred核心。
Stepping(步進編號)
步進編號用來標識處理器的設計或製作版本,有助於控制和跟蹤處理器的更 改,步進還可以讓終端使用者更具體地識別其系統安裝的處理器版本,確定微處理器的內部設計或製作特性。步進編號就好比處理器的小版本號,如CPUID為 “686”和“686A”就好比WINZIP8.0和8.1的關係。步進編號和核心步進是密切聯絡的。如CPUID為“686”的Pentium III 處理器是cCO核心,而“686A”表示的是更新版本cD0核心。
Brand ID(品種標識)
INTEL從Coppermine核心的處理器開始引入Brand ID作為CPU的輔助識別手段。如我們通過Brand ID可以識別出處理器究竟是Celerom還是Pentium 4。


------------------------------------------------------------------
vendor_id CPU製造商ID
Intel處理器的vendor字串為“GenuineIntel”。下面是其它的x86的vendor字串(來自coreboot原始碼):
CYRIX:CyrixInstead
AMD:AuthenticAMD
UMC:UMC UMC UMC
NEXGEN:NexGenDriven
CENTAUR:CentaurHauls
RISE:RiseRiseRise
TRANSMETA:GenuineTMx86
TRANSMETA:TransmetaCPU
NSC:Geode by NSC
SiS:SiS SiS SiS


   
cpu family:CPU產品系列代號。從手冊中看到,6系列(第六代)包括眾多處理器,如Celeron,Pentium 2,Pentium 3,Core i5&i7,Atom系列(E3000t系列、Z3600系列、C2000系列,等等)。關於family,從網路搜尋到的一些資料,列出下面:
“1”表示為8086和80186級晶片;
“2”表示為286級晶片;
“3”表示為386級晶片; 
“4”表示為486級晶片(SX、DX、:DX2、DX4); 
“5”表示為P5級晶片(Pentium處理器和含MMX技術的Pentium處理器);
“6”表示為P6級晶片(包括Celeron、Pentium II、PenfiumIII系列); 
“F”代表Xeon處理器、Pentium 4處理器。 


model   :CPU屬於其系列中的哪一代的代號。“型號”編號可以讓英特爾識別微處理器的製造技術以及屬於第幾代設計(例如型號4)。型號與系列通常是相互配合使用的,用以確定您的計算機中所安裝的處理器是屬於處理器系列中的哪一種特定型別。在與英特爾聯絡時,此資訊通常用以識別特定的處理器。


model name:CPU屬於的名字及其編號、標稱主頻
   
stepping   :CPU屬於製作更新版本。Stepping ID(步進)也叫分級鑑別產品資料轉換規範, “步進”編號標識生產英特爾微處理器的設計或製造版本資料(例如步進4)。步進用於標識一次“修訂”,通過使用唯一的步進,可以有效地控制和跟蹤所做的更 改。步進還可以讓終端使用者更具體地識別其系統所安裝的處理器版本。在嘗試確定微處理器的內部設計或製造特性時,英特爾可能會需要使用此分類資料。
Intel和AMD都有Stepping的概念,用來標識一款同樣規模的微處理器從一開始到你用的這款處理器經歷的設計過程,用一個字母和一個數字表示。 一般來說,一款同樣規模的微處理器的第一個版本是A0,如果改進了設計,則可以通過改變字母或者數字進行標識,如果僅僅改變數字(比如改成A3),說明進 行了一些輔助的改進,如果字母和數字都改變,說明改動較大,Stepping可以使使用者可以識別微處理器的版本。


The first version of a new microprocessor product is the A-0 core step. Later, as improvements are made to the product for functional fixes or manufacturing improvements, the core stepping number is incremented. Generally speaking, minor changes result in an increased number (i.e. A-3 to A-4), while more complex changes result in the letter being changed (i.e. A-3 to B-0). Note that a B-0 core stepping is more recent than an A-4 core stepping.


-----------------


關於family的權威解釋,參閱IA32架構軟體開發手冊第3卷35章(Intel 64 and IA-32 Architectures Software Developer’s Manual Volume 3 (3A, 3B, 3C & 3D): System Programming Guide)。








本文未涉及MSR(model specified register),關於此主題,待撰文講述。


參考資料:
IA32架構軟體開發手冊第2卷3.2 CPUID指令;第3卷35章。
Intel 64 and IA-32 Architectures Software Developer’s Manual手冊下載地址:
http://www.intel.com/content/www/us/en/processors/architectures-software-developer-manuals.html
CPUID的wiki頁面:https://en.wikipedia.org/wiki/CPUID
部落格:http://blog.sina.com.cn/s/blog_605f5b4f010180st.html