本發(fā)明涉及計(jì)算機(jī)軟件開(kāi)發(fā)領(lǐng)域,尤其涉及一種服務(wù)器CPU超線(xiàn)程技術(shù)的檢測(cè)方法。
背景技術(shù):
盡管提高CPU的時(shí)鐘頻率和增加緩存容量后的確可以改善性能,但這樣的CPU性能提高在技術(shù)上存在較大的難度。實(shí)際上在應(yīng)用中基于很多原因,CPU的執(zhí)行單元都沒(méi)有被充分使用。如果CPU不能正常讀取數(shù)據(jù)(總線(xiàn)/內(nèi)存的瓶頸),其執(zhí)行單元利用率會(huì)明顯下降。另外就是目前大多數(shù)執(zhí)行線(xiàn)程缺乏ILP(Instruction-Level Parallelism,多種指令同時(shí)執(zhí)行)支持。這些都造成了目前CPU的性能沒(méi)有得到全部的發(fā)揮。因此,Intel則采用另一個(gè)思路去提高CPU的性能,讓CPU可以同時(shí)執(zhí)行多重線(xiàn)程,就能夠讓CPU發(fā)揮更大效率,即所謂"超線(xiàn)程(Hyper-Threading,簡(jiǎn)稱(chēng)"HT")"技術(shù)。超線(xiàn)程技術(shù)就是利用特殊的硬件指令,把兩個(gè)邏輯內(nèi)核模擬成兩個(gè)物理芯片,讓單個(gè)處理器都能使用線(xiàn)程級(jí)并行計(jì)算,進(jìn)而兼容多線(xiàn)程操作系統(tǒng)和軟件,減少了CPU的閑置時(shí)間,提高的CPU的運(yùn)行速度。
采用超線(xiàn)程即是可在同一時(shí)間里,應(yīng)用程序可以使用芯片的不同部分。雖然單線(xiàn)程芯片每秒鐘能夠處理成千上萬(wàn)條指令,但是在任一時(shí)刻只能夠?qū)σ粭l指令進(jìn)行操作。而超線(xiàn)程技術(shù)可以使芯片同時(shí)進(jìn)行多線(xiàn)程處理,使芯片性能得到提升。超線(xiàn)程技術(shù)是在一顆CPU同時(shí)執(zhí)行多個(gè)程序而共同分享一顆CPU內(nèi)的資源,理論上要像兩顆CPU一樣在同一時(shí)間執(zhí)行兩個(gè)線(xiàn)程。
當(dāng)前在服務(wù)器工廠(chǎng)段,必須檢查服務(wù)器所安裝的CPU是否符合要求,而由于 BIOS可以決定是否其用超線(xiàn)程,而超線(xiàn)程有對(duì)于CPU原始線(xiàn)程數(shù)目起到一定的決定作用,但是目前的CPU指令只能抓去在超線(xiàn)程啟用或者停用的情況下的實(shí)際線(xiàn)程總數(shù),并不能反映CPU真正的原始線(xiàn)程數(shù)目,從而使同款的有超線(xiàn)程的CPU在BIOS將超線(xiàn)程關(guān)閉的情況下誤認(rèn)為無(wú)超線(xiàn)程的CPU。
技術(shù)實(shí)現(xiàn)要素:
為了解決以上問(wèn)題,本發(fā)明提出了一種服務(wù)器CPU超線(xiàn)程技術(shù)的檢測(cè)方法,可以減少人力,物力及流程管理的成本。
本方法是針對(duì)工程功能測(cè)試時(shí)無(wú)法鑒別真正的超線(xiàn)程CPU所做的發(fā)明。
本發(fā)明的技術(shù)方案是:
一種服務(wù)器CPU超線(xiàn)程技術(shù)的檢測(cè)方法,包括
①利用x2APIC(Intel可編程的最新一代中斷處理器)對(duì)最大數(shù)目的中斷數(shù)的計(jì)數(shù),來(lái)確定是否相應(yīng)的CPU支持超線(xiàn)程技術(shù),無(wú)論BIOS是否將其啟動(dòng)或者關(guān)閉。
②如果x2APIC ID的數(shù)目是計(jì)數(shù)是奇數(shù),即EDX的最后一位二進(jìn)制數(shù)是1,就表示這款CPU是支持超線(xiàn)程技術(shù)的,如果是偶數(shù),就表示這款CPU不支持超線(xiàn)程技術(shù)。
③傳到源碼服務(wù)器。
④如果決定上傳到源碼服務(wù)器, 這些提交的源碼就會(huì)補(bǔ)丁包的形式添加到源碼服務(wù)器的工作目錄中。
本方法通過(guò)編寫(xiě)C++程序進(jìn)行實(shí)現(xiàn)。
本發(fā)明的有益效果是
①通過(guò)這個(gè)方法的導(dǎo)入,使工廠(chǎng)的功能測(cè)試中可以避免將同款的超線(xiàn)程和非超線(xiàn)程的CPU裝錯(cuò),進(jìn)而流到客戶(hù)手中,導(dǎo)致客訴。
②通過(guò)此方法的導(dǎo)入,也減少了CPU物料管控的成本。
具體實(shí)施方式
下面對(duì)本發(fā)明的內(nèi)容進(jìn)行更加詳細(xì)的闡述:
a)利用CPUID指令讀取x2APIC的各個(gè)寄存器,EDX保存。
b)檢測(cè)此計(jì)數(shù)是偶數(shù)還是奇數(shù)。
c)根據(jù)上一步的結(jié)果進(jìn)行判斷。
通過(guò)編寫(xiě)C++程序進(jìn)行實(shí)現(xiàn),工廠(chǎng)拿到程序后只需執(zhí)行即可。
此方法可用在Nehalem架構(gòu)以后的Intel CPU。
此方法可避免錯(cuò)誤的CPU出貨給客戶(hù)。能較少工程及工廠(chǎng)的物料管控成本。