專利名稱:一種cpu型號識別方法和硬件檢測系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及硬件檢測技術(shù),具體涉及一種CPU型號識別方法和硬件檢測系統(tǒng)。
背景技術(shù):
目前,人們在購買用戶設(shè)備、優(yōu)化用戶設(shè)備配置、了解用戶設(shè)備的應(yīng)用環(huán)境等諸多需求中需要詳細(xì)了解用戶設(shè)備的各種硬件信息(例如CPU、主板、內(nèi)存、顯卡、顯示器、硬盤、網(wǎng)卡、聲卡,以及所有接入的USB設(shè)備等信息),因而對硬件檢測工具存在很大的需求?,F(xiàn)有技術(shù)中,一些操作系統(tǒng)為用戶提供了查看用戶設(shè)備主要硬件信息的工具,如Windows系統(tǒng)的“設(shè)備管理器”和“系統(tǒng)信息”工具。具體而言,用戶可以右擊桌面上的“我的電腦”,從快捷菜單中選擇“屬性”命令,打開“系統(tǒng)屬性”窗口以查看當(dāng)前用戶設(shè)備的主要硬件信息;或者從控制面板中打開“系統(tǒng)屬性”窗口,切換到“硬件”標(biāo)簽頁,點(diǎn)擊“設(shè)備管理器”按鈕以查看當(dāng)前用戶設(shè)備的主要硬件信息。此外,用戶還可以從Windows系統(tǒng)的開始菜單中的附件選項(xiàng)下找到“系統(tǒng)工具”,然后選擇“系統(tǒng)信息”以查看當(dāng)前用戶設(shè)備的主要硬件信息;或者,在“運(yùn)行”對話框中直接輸入“msinfo32. exe”以查看當(dāng)前用戶設(shè)備的主要硬件信息。通過這些工具,可以得到用戶設(shè)備上CPU、內(nèi)存、主板等主要硬件的基本信息。目前,大多數(shù)硬件檢測工具可以通過intel IA32架構(gòu)下的CPU信息匯編指令(CPUID指令)得到較為完整的CPU信息數(shù)據(jù),其中包括CPU類型、型號、制造商信息、商標(biāo)信息、序列號、緩存等一系列CPU相關(guān)的信息。對于Intel新型號的CPU而言,這些硬件檢測工具在檢測CPU的型號時,都是通過CPUID指令獲取CPU的Processor Brand String (處理器商標(biāo)字符串)來識別CPU型號,這是因?yàn)镻rocessor Brand String中一般會包含CPU的型號信息。例如,酷睿2P8400的CPU,通過CPUID指令獲取Processor Brand String時,會返回 InteI (R) Core (TM) 2 Duo CPU P8400i 2. 26GHz。又如,15 750 的 CPU,它對應(yīng)的Processor Brand String會返回 Intel (R)Core (TM) i5 CPU 75002.67GHz。這樣,可以通過分析這些Processor Brand String中的相應(yīng)信息,就可以獲取到正確的CPU型號。但對于Intel某些型號的CPU而言,調(diào)用CPUID指令所返回的ProcessorBrandString中并沒有包含型號信息,比如Core i5 2540Μ CPU返回的Processor BrandString 就是 Intel 002. 60GHz ;Core i5 3470 CPU 返回的 Processor Brand String 是Inteli3. 20GH ;Core i7 3960X Extreme Edition CPU 返回的 Processor Brand String 則是Intel @3. 30GHz。這些返回信息中都沒有包含CPU的型號信息,因而也就無法據(jù)此正確識別并顯示CPU的型號,由此導(dǎo)致硬件檢測結(jié)果的完整性及可信度大打折扣。
發(fā)明內(nèi)容
鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的CPU型號識別方法和硬件檢測系統(tǒng)。依據(jù)本發(fā)明的一個方面,提供了一種CPU型號識別方法,包括運(yùn)行CPUID指令,得到CPU信息數(shù)據(jù)集的全集或若干子集,作為待比較CPU數(shù)據(jù)集;以及從預(yù)置的CPU特征數(shù)據(jù)庫中搜索與該待比較CPU數(shù)據(jù)集匹配的CPU型號信息作為CPU型號識別結(jié)果,其中,該CPU特征數(shù)據(jù)庫中的每組CPU特征數(shù)據(jù)唯一關(guān)聯(lián)一 CPU型號;其中,得到待比較CPU數(shù)據(jù)集的步驟之后,包括判斷該待比較CPU數(shù)據(jù)集中是否包括CPU型號信息;若是,提取相應(yīng)的CPU型號信息作為CPU型號識別結(jié)果;若否,從CPU特征數(shù)據(jù)庫中搜索與該待比較CPU數(shù)據(jù)集的CPU型號信息作為CPU型號識別結(jié)果??蛇x地,該待比較CPU數(shù)據(jù)集包括若干個CPU信息數(shù)據(jù)子集,其中,每個CPU信息數(shù)據(jù)子集匯集對CPU的EAX寄存器進(jìn)行一次賦值,運(yùn)行CPUID指令后所得到的相應(yīng)數(shù)據(jù)??蛇x地,該CPU型號識別方法具體包括對CPU的EAX寄存器賦值;運(yùn)行CPUID指令,得到與該賦值對應(yīng)的CPU信息數(shù)據(jù)子集;將該CPU信息數(shù)據(jù)子集合并到當(dāng)前的待比較CPU數(shù)據(jù)集之中;搜索CPU特征數(shù)據(jù)庫中是否存在與該待比較CPU數(shù)據(jù)集匹配的CPU型號信息,若是,以該CPU型號信息作為CPU型號識別結(jié)果,并結(jié)束;若否,重復(fù)上述步驟??蛇x地,第一順序?qū)PU的EAX寄存器賦值為處理器商標(biāo)字符串對應(yīng)的輸入值,運(yùn)行CPWD指令后得到的處理器商標(biāo)字符串作為第一順序CPU信息數(shù)據(jù)子集。可選地,從CPU特征數(shù)據(jù)庫中搜索與該待比較CPU數(shù)據(jù)集匹配的CPU型號信息的步驟包括依據(jù)該CPU特征數(shù)據(jù)庫中的記錄索引,將該CPU特征數(shù)據(jù)庫中的數(shù)據(jù)記錄逐條與該待比較CPU數(shù)據(jù)集進(jìn)行比對;至可以唯一區(qū)分CPU型號時結(jié)束比對,并以該CPU特征數(shù)據(jù)庫中當(dāng)前數(shù)據(jù)記錄對應(yīng)的CPU型號信息作為CPU型號識別結(jié)果??蛇x地,該CPU特征數(shù)據(jù)庫中,通過提取一組唯一區(qū)分特定CPU型號的CPU特征數(shù)據(jù)建立與已知CPU關(guān)聯(lián)的相應(yīng)數(shù)據(jù)記錄。可選地,該組唯一區(qū)分特定CPU型號的CPU特征數(shù)據(jù)為處理器商標(biāo)字符串、CPU系列、CPU擴(kuò)展系列、CPU型號、CPU步進(jìn)編號、CPU頻率及緩存容量大小中的一個數(shù)據(jù)或多個數(shù)據(jù)的組合??蛇x地,該組唯一區(qū)分CPU型號的CPU特征數(shù)據(jù)包括處理器商標(biāo)字符串、CPU系列、CPU擴(kuò)展系列、型號、CPU步進(jìn)編號、CPU頻率和緩存容量大??;將CPU特征數(shù)據(jù)庫中的某條數(shù)據(jù)記錄與CPU信息數(shù)據(jù)集進(jìn)行比對的順序?yàn)榈谝豁樞虮葘μ幚砥魃虡?biāo)字符串;第二順序比對CPU系列、CPU擴(kuò)展系列、CPU型號、CPU步進(jìn)編號及CPU頻率;第三順序比對緩存容量大??;其中,某一順序可以唯一區(qū)分CPU型號時結(jié)束比對??蛇x地,通過比對待比較CPU數(shù)據(jù)集和CPU特征數(shù)據(jù)庫而無法識別CPU型號時,進(jìn)一步獲取主板南橋芯片型號信息,并在CPU特征數(shù)據(jù)庫中搜索與該主板南橋芯片型號匹配的CPU型號信息,當(dāng)該主板南橋芯片型號支持的CPU頻率與CPU特征數(shù)據(jù)庫中某條數(shù)據(jù)記錄的CPU頻率匹配時,以該條數(shù)據(jù)記錄對應(yīng)的CPU型號信息作為CPU型號識別結(jié)果。
根據(jù)本發(fā)明的另一方面,提供了一種硬件檢測系統(tǒng),通過客戶端查詢服務(wù)器端的硬件特征數(shù)據(jù)庫,得到與客戶端硬件信息數(shù)據(jù)匹配的客戶端硬件參數(shù)信息,客戶端硬件參數(shù)信息包括CPU型號識別結(jié)果;其中,服務(wù)器端被配置有存儲器,用于存儲CPU特征數(shù)據(jù)庫,其中每組CPU特征數(shù)據(jù)唯一關(guān)聯(lián)一 CPU型號;客戶端被配置有運(yùn)算模塊,用于運(yùn)行CPUID指令,得到CPU信息數(shù)據(jù)集的全集或若干子集,作為待比較CPU數(shù)據(jù)集;以及解析器,用于從CPU特征數(shù)據(jù)庫中搜索與該待比較CPU數(shù)據(jù)集匹配的CPU型號信息作為CPU型號識別結(jié)果。根據(jù)本發(fā)明的CPU型號識別方法和硬件檢測系統(tǒng),可以方便地獲取用戶設(shè)備的各種CPU型號信息,由此克服現(xiàn)有硬件檢測工具對CPU型號識別不準(zhǔn)確、不完整的問題,取得提高CPU識別準(zhǔn)確性、完整性的有益效果。具體而言本發(fā)明實(shí)施例通過收集各種已知型號CPU無法通過Processor BrandString準(zhǔn)確獲取型號的CPU數(shù)據(jù),并提取已知CPU中的能唯一區(qū)分的特性建立CPU特征數(shù)據(jù)庫,在檢測中遇到不能獲取型號的CPU時在CPU特征數(shù)據(jù)庫中匹配,匹配成功的話使用CPU特征數(shù)據(jù)庫中的型號,這樣就能方便地識別用戶設(shè)備的(PU型號,有助于保證整個硬件檢測結(jié)果的完整性、準(zhǔn)確性。上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下特舉本發(fā)明的具體實(shí)施方式
。
通過閱讀下文優(yōu)選實(shí)施方式的詳細(xì)描述,各種其他的優(yōu)點(diǎn)和益處對于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實(shí)施方式的目的,而并不認(rèn)為是對本發(fā)明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中圖1示出了根據(jù)本發(fā)明一個實(shí)施例的CPU型號識別方法的流程圖;圖2示出圖1中CPU特征數(shù)據(jù)庫與待比較CPU數(shù)據(jù)集的匹配過程圖;圖3示出圖1中CPU特征數(shù)據(jù)庫中各數(shù)據(jù)記錄與CPU信息數(shù)據(jù)集進(jìn)行比對的流程圖;圖4示出了根據(jù)本發(fā)明另一個實(shí)施例的CPU型號識別方法的流程圖;圖5示出了根據(jù)本發(fā)明一個實(shí)施例的CPU型號識別設(shè)備的組成圖;圖6示出了根據(jù)本發(fā)明一個實(shí)施例的硬件檢測系統(tǒng)的組成圖;圖7示出了根據(jù)本發(fā)明另一個實(shí)施例的硬件檢測系統(tǒng)的組成圖;以及圖8示出了根據(jù)本發(fā)明又一個實(shí)施例的硬件檢測系統(tǒng)的組成圖。
具體實(shí)施例方式下面將參照附圖更詳細(xì)地描述本發(fā)明的示例性實(shí)施例。雖然附圖中顯示了本發(fā)明的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本發(fā)明而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本發(fā)明,并且能夠?qū)⒈景l(fā)明的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。為方便進(jìn)行描述,先對CPWD指令進(jìn)行簡要介紹。CPWD指令是intel IA32架構(gòu)下獲得CPU信息的匯編指令,可以得到CPU類型、型號、制造商信息、商標(biāo)信息、序列號、緩存等一系列CPU相關(guān)的信息。CPUID使用EAX寄存器作為輸入?yún)?shù),EAX、EBX、ECX、EDX寄存器作為輸出參數(shù)。對EAX寄存器的不同賦值,EAX、EBX、ECX、EDX寄存器返回?cái)?shù)據(jù)如下EAX=O:獲取制造商ID
通過EBX、ECX、EDX返回一個12個字符長度的制造商ID,對于IntelCPU來說,返回的是 Genuinelntel, AMD CPU 返回的是 AuthenticAMD。EAX=1:處理器信息和特征位通過EAX返回CPU的步進(jìn)編號、型號和系列信息,EDX和ECX返回特征標(biāo)志,EBX返回?cái)U(kuò)展特征。其中EAX的數(shù)據(jù)結(jié)構(gòu)如下3:0-步進(jìn)編號7:4-型號11:8-系列13:12-處理器類型19:16-擴(kuò)展型號27:20-擴(kuò)展系列其中,標(biāo)準(zhǔn)的Intel特征標(biāo)志如表I所示。表1:EDX、ECX特征標(biāo)志一覽表
__EDX__ECX_
縮寫特征描述縮寫特征描述
fpu 板載協(xié)處理器pniPrescott新指令(SSE3)
vme 虛擬模式擴(kuò)展pclmulqdq PCLMULQDQ支持
de調(diào)試擴(kuò)展dtes( 464位調(diào)試存儲
權(quán)利要求
1.一種CPU型號識別方法,包括 運(yùn)行CPUID指令,得到CPU信息數(shù)據(jù)集的全集或若干子集,作為待比較CPU數(shù)據(jù)集;以及 從預(yù)置的CPU特征數(shù)據(jù)庫中搜索與該待比較CPU數(shù)據(jù)集匹配的CPU型號信息作為CPU型號識別結(jié)果,其中,該CPU特征數(shù)據(jù)庫中的每組CPU特征數(shù)據(jù)唯一關(guān)聯(lián)一 CPU型號; 其中,所述得到待比較CPU數(shù)據(jù)集的步驟之后,包括判斷該待比較CPU數(shù)據(jù)集中是否包括CPU型號信息; 若是,提取相應(yīng)的CPU型號信息作為CPU型號識別結(jié)果; 若否,從CPU特征數(shù)據(jù)庫中搜索與該待比較CPU數(shù)據(jù)集的CPU型號信息作為CPU型號識別結(jié)果。
2.如權(quán)利要求1所述的方法,該待比較CPU數(shù)據(jù)集包括若干個CPU信息數(shù)據(jù)子集,其中,每個CPU信息數(shù)據(jù)子集匯集對CPU的EAX寄存器進(jìn)行一次賦值,運(yùn)行CPnD指令后所得到的相應(yīng)數(shù)據(jù)。
3.如權(quán)利要求2所述的方法,具體包括 對CPU的EAX寄存器賦值; 運(yùn)行CPUID指令,得到與該賦值對應(yīng)的CPU信息數(shù)據(jù)子集; 將該CPU信息數(shù)據(jù)子集合并到當(dāng)前的待比較CPU數(shù)據(jù)集之中; 搜索CPU特征數(shù)據(jù)庫中是否存在與該待比較CPU數(shù)據(jù)集匹配的CPU型號信息, 若是,以該CPU型號信息作為CPU型號識別結(jié)果,并結(jié)束; 若否,重復(fù)上述步驟。
4.如權(quán)利要求3所述的方法,第一順序?qū)PU的EAX寄存器賦值為處理器商標(biāo)字符串對應(yīng)的輸入值,運(yùn)行CPUID指令后得到的處理器商標(biāo)字符串作為第一順序CPU信息數(shù)據(jù)子集。
5.如權(quán)利要求1所述的方法,所述從CPU特征數(shù)據(jù)庫中搜索與該待比較CPU數(shù)據(jù)集匹配的CPU型號信息的步驟包括 依據(jù)該CPU特征數(shù)據(jù)庫中的記錄索引,將該CPU特征數(shù)據(jù)庫中的數(shù)據(jù)記錄逐條與該待比較CPU數(shù)據(jù)集進(jìn)行比對; 至可以唯一區(qū)分CPU型號時結(jié)束比對,并以該CPU特征數(shù)據(jù)庫中當(dāng)前數(shù)據(jù)記錄對應(yīng)的CPU型號信息作為CPU型號識別結(jié)果。
6.如權(quán)利要求1所述的方法,該CPU特征數(shù)據(jù)庫中,通過提取一組唯一區(qū)分特定CPU型號的CPU特征數(shù)據(jù)建立與已知CPU關(guān)聯(lián)的相應(yīng)數(shù)據(jù)記錄。
7.如權(quán)利要求6所述的方法,該組唯一區(qū)分特定CPU型號的CPU特征數(shù)據(jù)為處理器商標(biāo)字符串、CPU系列、CPU擴(kuò)展系列、CPU型號、CPU步進(jìn)編號、CPU頻率及緩存容量大小中的一個數(shù)據(jù)或多個數(shù)據(jù)的組合。
8.如權(quán)利要求6所述的方法,該組唯一區(qū)分CPU型號的CPU特征數(shù)據(jù)包括處理器商標(biāo)字符串、CPU系列、CPU擴(kuò)展系列、型號、CPU步進(jìn)編號、CPU頻率和緩存容量大??;將CPU特征數(shù)據(jù)庫中的某條數(shù)據(jù)記錄與CPU信息數(shù)據(jù)集進(jìn)行比對的順序?yàn)榈谝豁樞虮葘μ幚砥魃虡?biāo)字符串;第二順序比對CPU系列、CPU擴(kuò)展系列、CPU型號、CPU步進(jìn)編號及CPU頻率;第三順序比對緩存容量大小;其中,某一順序可以唯一區(qū)分CPU型號時結(jié)束比對。
9.如權(quán)利要求f8任一項(xiàng)所述的方法,通過比對待比較CPU數(shù)據(jù)集和CPU特征數(shù)據(jù)庫而無法識別CPU型號時,進(jìn)一步獲取主板南橋芯片型號信息,并在CPU特征數(shù)據(jù)庫中搜索與該主板南橋芯片型號匹配的CPU型號信息,當(dāng)該主板南橋芯片型號支持的CPU頻率與CPU特征數(shù)據(jù)庫中某條數(shù)據(jù)記錄的CPU頻率匹配時,以該條數(shù)據(jù)記錄對應(yīng)的CPU型號信息作為CPU型號識別結(jié)果。
10.一種硬件檢測系統(tǒng),通過客戶端查詢服務(wù)器端的硬件特征數(shù)據(jù)庫,得到與客戶端硬件信息數(shù)據(jù)匹配的客戶端硬件參數(shù)信息,所述客戶端硬件參數(shù)信息包括CPU型號識別結(jié)果; 其中,所述服務(wù)器端被配置有 存儲器,用于存儲CPU特征數(shù)據(jù)庫,其中每組CPU特征數(shù)據(jù)唯一關(guān)聯(lián)一 CPU型號; 所述客戶端被配置有 運(yùn)算模塊,用于運(yùn)行CPUID指令,得到CPU信息數(shù)據(jù)集的全集或若干子集,作為待比較CPU數(shù)據(jù)集;以及 解析器,用于從所述CPU特征數(shù)據(jù)庫中搜索與該待比較CPU數(shù)據(jù)集匹配的CPU型號信息作為CPU型號識別結(jié)果。
11.如權(quán)利要求10所述的系統(tǒng),其特征在于,所述客戶端還包括數(shù)據(jù)輸入接口,被配置為連接CPU的EAX寄存器,以便對CPU的EAX寄存器賦值,經(jīng)所述運(yùn)算模塊運(yùn)行CPWD指令之后得到與該賦值對應(yīng)的CPU信息數(shù)據(jù)子集。
12.如權(quán)利要求11所述的系統(tǒng),其特征在于,所述解析器被配置為將與該賦值對應(yīng)的CPU信息數(shù)據(jù)子集合并到當(dāng)前的待比較CPU數(shù)據(jù)集之中;搜索所述CPU特征數(shù)據(jù)庫中是否存在與該待比較CPU數(shù)據(jù)集匹配的CPU型號信息,若是,以該CPU型號信息作為CPU型號識別結(jié)果,并結(jié)束解析;若否,執(zhí)行下一輪解析。
13.如權(quán)利要求10所述的系統(tǒng),其特征在于,所述解析器被配置為連接主板芯片組,以便在通過比對所述待比較CPU數(shù)據(jù)集和所述CPU特征數(shù)據(jù)庫而無法識別CPU型號時,所述解析器進(jìn)一步獲取主板南橋芯片型號信息,,并在CPU特征數(shù)據(jù)庫中搜索與該主板南橋芯片型號匹配的CPU型號信息,當(dāng)該主板南橋芯片型號支持的CPU頻率與CPU特征數(shù)據(jù)庫中某條數(shù)據(jù)記錄的CPU頻率匹配時,以該條數(shù)據(jù)記錄對應(yīng)的CPU型號信息作為CPU型號識別結(jié)果。
14.如權(quán)利要求1(T13任一項(xiàng)所述的系統(tǒng),其特征在于,所述客戶端還包括數(shù)據(jù)輸出接口,被配置為連接所述解析器,以便向外部展示單元推送由所述解析器得到的CPU型號識別結(jié)果。
全文摘要
本發(fā)明涉及硬件檢測技術(shù),具體公開了一種CPU型號識別方法和硬件檢測系統(tǒng)。該硬件檢測系統(tǒng)通過客戶端查詢服務(wù)器端的硬件特征數(shù)據(jù)庫,得到與客戶端硬件信息數(shù)據(jù)匹配的客戶端硬件參數(shù)信息,所述客戶端硬件參數(shù)信息包括CPU型號識別結(jié)果;其中,所述服務(wù)器端被配置有存儲器,用于存儲CPU特征數(shù)據(jù)庫,其中每組CPU特征數(shù)據(jù)唯一關(guān)聯(lián)一CPU型號;所述客戶端被配置有運(yùn)算模塊,用于運(yùn)行CPUID指令,得到CPU信息數(shù)據(jù)集的全集或若干子集,作為待比較CPU數(shù)據(jù)集;以及解析器,用于從所述CPU特征數(shù)據(jù)庫中搜索與該待比較CPU數(shù)據(jù)集匹配的CPU型號信息作為CPU型號識別結(jié)果。采用本發(fā)明的技術(shù)方案,可以搜索出與待識別CPU匹配的CPU型號信息,提高了CPU識別的準(zhǔn)確性、完整性。
文檔編號G06F17/30GK103020225SQ20121053688
公開日2013年4月3日 申請日期2012年12月12日 優(yōu)先權(quán)日2012年12月12日
發(fā)明者何世偉 申請人:北京奇虎科技有限公司, 奇智軟件(北京)有限公司