專利名稱:一種中央處理器系統(tǒng)性能測試方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種測試方法,尤其涉及一種中央處理器系統(tǒng)性能測試方法。
背景技術(shù):
目前,隨著通信技術(shù)的發(fā)展,單板種類越來越多,運(yùn)行速度越來越快,因此對(duì)單板的性能提出了更高的要求。單板上的中央處理器(CPU)系統(tǒng)一般包括CPU、同步動(dòng)態(tài)隨機(jī)訪問存儲(chǔ)器(SDRAM)和閃速存儲(chǔ)器(FLASH),這里的FLASH特指保存基本輸入輸出系統(tǒng)(BIOS)的FLASH。
其中,CPU是單板的核心,用于執(zhí)行單板軟件指定的各項(xiàng)操作。SDRAM是一種動(dòng)態(tài)的存儲(chǔ)器,單板掉電以后,保存在SDRAM的程序或數(shù)據(jù)就會(huì)丟失,CPU可以快速地對(duì)SDRAM進(jìn)行讀寫操作。FLASH是一種電可擦除的存儲(chǔ)器,即使單板掉電,保存在其中的程序或數(shù)據(jù)也不會(huì)丟失,CPU可以方便地讀取FLASH中的內(nèi)容,只有在特定的情況下才可以對(duì)FLASH中保存的內(nèi)容進(jìn)行擦除和寫入操作。這里,SDRAM屬于內(nèi)存。
上述兩種存儲(chǔ)器本身的特點(diǎn)決定了CPU對(duì)FLASH中的數(shù)據(jù)讀寫較慢,而對(duì)SDRAM中的數(shù)據(jù)讀寫較快。所以,一般單板軟件都是被保存在FLASH中,單板上電進(jìn)行必要的初始化后,再將FLASH中保存的程序和數(shù)據(jù)讀到SDRAM中運(yùn)行,這樣可以保證單板以較快的速度運(yùn)行。
CPU系統(tǒng)對(duì)單板來說是非常重要的,因此有必要對(duì)CPU系統(tǒng)進(jìn)行嚴(yán)格的性能測試,以便發(fā)現(xiàn)其可能存在的故障隱患。
現(xiàn)有的CPU系統(tǒng)性能測試方法一般都是通過在CPU系統(tǒng)中運(yùn)行一些程序來提高CPU占用率,但是對(duì)于如何提高內(nèi)存占用率一直沒有很好的辦法,因此,在這種情況下,測試效果也很難保證。比如,人們在購買新電腦后往往要對(duì)其進(jìn)行所謂的“拷機(jī)”,來測試電腦的性能。通常的測試方法是長時(shí)間運(yùn)行一些很耗內(nèi)存的商用測試軟件來進(jìn)行測試,或運(yùn)行一些大型游戲,讓電腦在保持較高的內(nèi)存占用率的情況下,CPU滿負(fù)荷運(yùn)轉(zhuǎn),檢查電腦會(huì)不會(huì)出現(xiàn)死機(jī)或復(fù)位等異常情況。這些測試方法,一般都需要很長的測試時(shí)間,并且測試效果很難保證。
從以上描述可以看出,在現(xiàn)有技術(shù)中對(duì)CPU系統(tǒng)測試的方法雖然可以在一定程度上滿足CPU系統(tǒng)性能測試的要求,但仍存在如下缺點(diǎn)1)商用測試軟件通常關(guān)注如何使CPU滿負(fù)荷運(yùn)轉(zhuǎn),但對(duì)于內(nèi)存的占用率卻很難一直保持最高水平。
2)商用測試軟件需要有電腦操作系統(tǒng)支持才能運(yùn)行,不能直接放到通信設(shè)備的單板上運(yùn)行。
3)采用運(yùn)行游戲的方式雖然看起來有效,但卻是很費(fèi)時(shí)、費(fèi)力的事情,而且一旦停止游戲,CPU和內(nèi)存的占用率將會(huì)明顯降低,不可能保證讓CPU一直維持長時(shí)間滿負(fù)荷運(yùn)轉(zhuǎn),內(nèi)存更是不可能長時(shí)間大量占用。且這種方法可以用于電腦的整機(jī)測試中,但不可能用到通信設(shè)備的單板測試上。
發(fā)明內(nèi)容
本發(fā)明的主要目的在于提供一種CPU系統(tǒng)性能測試方法,可以保證CPU和內(nèi)存長期維持在一種滿負(fù)荷運(yùn)轉(zhuǎn)狀態(tài)下,提高測試質(zhì)量和效果。
本發(fā)明公開了一種CPU系統(tǒng)性能測試方法,該方法包括以下步驟A、分配中央處理器系統(tǒng)的內(nèi)存,記錄分配的內(nèi)存塊個(gè)數(shù);B、保存數(shù)據(jù)緩存的狀態(tài),關(guān)閉數(shù)據(jù)緩存;C、調(diào)用內(nèi)存單元測試算法對(duì)分配的所有內(nèi)存塊進(jìn)行循環(huán)測試;D、確定循環(huán)測試結(jié)束后,釋放分配的所有內(nèi)存。
步驟A所述的分配內(nèi)存為按照相同的內(nèi)存塊大小分配內(nèi)存、或不同的內(nèi)存塊大小分配內(nèi)存。
步驟A所述的分配內(nèi)存為通過設(shè)定內(nèi)存指針數(shù)組進(jìn)行內(nèi)存分配,所述內(nèi)存指針數(shù)組的元素個(gè)數(shù)由內(nèi)存大小和分配內(nèi)存時(shí)采用的內(nèi)存塊大小確定。
步驟D所述的確定循環(huán)測試結(jié)束后進(jìn)一步包括恢復(fù)數(shù)據(jù)緩存的狀態(tài)。
步驟C所述內(nèi)存單元測試算法對(duì)分配的所有內(nèi)存塊進(jìn)行循環(huán)測試前,進(jìn)一步包括保存指令緩存的狀態(tài),打開指令緩存。
步驟D所述的確定循環(huán)測試結(jié)束后,進(jìn)一步包括恢復(fù)指令緩存的狀態(tài)。
步驟D所述的確定循環(huán)測試結(jié)束為根據(jù)定義的循環(huán)次數(shù)、或循環(huán)測試時(shí)間是否到達(dá)來確定循環(huán)測試是否結(jié)束。
步驟C所述的內(nèi)存單元測試算法包括但不限于五步法、九步法或增量補(bǔ)償法。
所述的中央處理器系統(tǒng)為電腦主板中央處理器系統(tǒng)、或通信設(shè)備單板中央處理器系統(tǒng)。
由此可見,在本發(fā)明中,CPU系統(tǒng)可以利用操作系統(tǒng)管理內(nèi)存的特點(diǎn)不斷地分配內(nèi)存緩沖區(qū),使空閑的內(nèi)存不斷減少,從而使得系統(tǒng)的CPU可以長時(shí)間保持高占用率,并且實(shí)現(xiàn)了內(nèi)存的高使用率,從而極大提高了CPU系統(tǒng)的測試質(zhì)量和效果。
本發(fā)明的CPU系統(tǒng)測試方法具有非常廣泛的應(yīng)用范圍,包括各種單板的CPU系統(tǒng)性能測試、自帶CPU的單板的環(huán)境試驗(yàn)和老化中測試、電腦整機(jī)測試、用于產(chǎn)生CPU系統(tǒng)最繁忙的狀態(tài),在系統(tǒng)測試過程中創(chuàng)造重現(xiàn)問題的條件以及進(jìn)行CPU系統(tǒng)的在線測試或例行測試。
本發(fā)明的測試方法可以提升老化中測試的效果,使CPU系統(tǒng)在老化過程中一直維持滿負(fù)荷運(yùn)轉(zhuǎn),可以提高單板老化質(zhì)量,也就是說,可以縮短達(dá)到相同老化效果的時(shí)間,從而達(dá)到降低老化成本的目的。
本發(fā)明的測試方法還可以通過分配超過單板內(nèi)存大小的內(nèi)存塊,實(shí)現(xiàn)對(duì)電腦主板及類似電腦主板的單板的硬盤或CF卡的測試。
圖1為本發(fā)明CPU系統(tǒng)性能測試方法的流程圖;
圖2為圖1所示本發(fā)明方法的一個(gè)較佳實(shí)施例的流程圖;具體實(shí)施方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面結(jié)合附圖及具體實(shí)施例對(duì)本發(fā)明作進(jìn)一步地詳細(xì)描述。
本發(fā)明的核心思想是CPU系統(tǒng)可以利用自身具有的操作系統(tǒng)管理內(nèi)存的機(jī)制,不斷地分配內(nèi)存緩沖區(qū),使空閑的內(nèi)存減少,并利用現(xiàn)有的內(nèi)存單元測試算法循環(huán)測試分配到的內(nèi)存塊,從而使得在進(jìn)行CPU系統(tǒng)測試時(shí),系統(tǒng)的CPU和內(nèi)存都可以長時(shí)間保持高占用率。
參見圖1,圖1為本發(fā)明CPU系統(tǒng)性能測試方法的流程圖。如圖1所示,該流程包括以下步驟步驟101,分配CPU系統(tǒng)的內(nèi)存。
這里,所述分配可以通過定義內(nèi)存指針數(shù)組、或其它方式進(jìn)行內(nèi)存分配。
步驟102,判斷能否分配到內(nèi)存塊,如果能,則返回步驟101,繼續(xù)分配內(nèi)存塊;否則,執(zhí)行步驟103。
步驟103,記錄分配到的內(nèi)存塊個(gè)數(shù),以便對(duì)分配的每個(gè)內(nèi)存塊進(jìn)行測試及測試結(jié)束后釋放分配的所有內(nèi)存塊。
步驟104,保存數(shù)據(jù)緩存的狀態(tài),然后關(guān)閉數(shù)據(jù)緩存。關(guān)閉數(shù)據(jù)緩存的目的是確保測試數(shù)據(jù)寫入內(nèi)存單元中,保證內(nèi)存測試的有效性。
該步驟中,可以進(jìn)一步包括保存指令緩存的狀態(tài),然后打開指令緩存。這里,打開指令緩存的目的是為了提高測試速度,因?yàn)橹噶罹彺婵梢杂脕泶鎯?chǔ)測試指令,而從指令緩存讀取測試指令的速度要比直接從CPU系統(tǒng)的內(nèi)存中讀取快得多。
步驟105,調(diào)用內(nèi)存單元測試算法對(duì)前面分配到的所有內(nèi)存塊進(jìn)行循環(huán)測試。
其中,所述內(nèi)存單元測試算法可以為五步法、九步法或增量補(bǔ)償法,也可以為其它內(nèi)存單元測試算法。具體內(nèi)存單元測試算法如何實(shí)現(xiàn)是本領(lǐng)域技術(shù)人員的公知技術(shù),這里不再贅述。
步驟106,判定循環(huán)測試是否結(jié)束,如果判定循環(huán)測試結(jié)束,則執(zhí)行步驟107;否則,返回步驟105繼續(xù)進(jìn)行循環(huán)測試。
該步驟中循環(huán)測試是否結(jié)束可以通過定義循環(huán)次數(shù)來判定,當(dāng)達(dá)到所定義的循環(huán)次數(shù)時(shí),判定循環(huán)測試結(jié)束。通過調(diào)整循環(huán)測試次數(shù)就可以達(dá)到調(diào)整測試時(shí)間的目的。如果需要加長測試時(shí)間,可以通過增大循環(huán)次數(shù)來實(shí)現(xiàn)。理論上,測試時(shí)間可以達(dá)到無窮大。
判定循環(huán)測試是否結(jié)束也可以直接通過設(shè)定循環(huán)測試時(shí)間來判定,當(dāng)?shù)竭_(dá)所設(shè)定的循環(huán)測試時(shí)間時(shí),判定循環(huán)測試結(jié)束。
當(dāng)循環(huán)測試結(jié)束后,步驟106前可以進(jìn)一步包括恢復(fù)數(shù)據(jù)緩存的狀態(tài)和指令緩存的狀態(tài)的步驟。
步驟107,釋放分配的所有內(nèi)存。
參見圖2,圖2為圖1所示本發(fā)明方法的一個(gè)較佳實(shí)施例的流程圖。如圖2所示,該流程包括以下步驟步驟201,按照CPU系統(tǒng)的內(nèi)存大小,定義內(nèi)存指針數(shù)組。
步驟202,利用步驟201定義的內(nèi)存指針數(shù)組,按照相同大小的內(nèi)存塊依次分配內(nèi)存。
步驟203,判斷是否可以繼續(xù)分配到內(nèi)存塊,如果不能,則執(zhí)行步驟204;否則,返回步驟202繼續(xù)分配內(nèi)存塊。
步驟204,記錄分配到的內(nèi)存塊個(gè)數(shù)。
以內(nèi)存大小為1G的情況為例假設(shè)內(nèi)存大小總共為1G,按照內(nèi)存大小定義內(nèi)存指針數(shù)組為1024個(gè)元素,然后每次分配1M,總共可以分配1G的內(nèi)存,這樣就可以保證將內(nèi)存全部分配。
但是,如果CPU系統(tǒng)中只有1G的內(nèi)存,而正在運(yùn)行的測試程序占用了一部分,因此,不太可能將1G的內(nèi)存全部分配,即在已經(jīng)分配的所有內(nèi)存塊的大小總和不到1G的時(shí)候,就不能再分配到內(nèi)存塊了,此時(shí)就可以認(rèn)為內(nèi)存已耗盡。在確認(rèn)內(nèi)存已耗盡后,記錄分配的內(nèi)存塊個(gè)數(shù)。
步驟205,保存數(shù)據(jù)緩存的狀態(tài),關(guān)閉數(shù)據(jù)緩存;保存指令緩存的狀態(tài),打開指令緩存。
關(guān)閉數(shù)據(jù)緩存是為了防止測試數(shù)據(jù)只是寫入數(shù)據(jù)緩存而沒有寫入內(nèi)存單元中,保證內(nèi)存測試的有效性;在內(nèi)存測試之前打開指令緩存是為了提高讀取指令的速度,提高測試效率。
步驟206,調(diào)用內(nèi)存單元測試算法對(duì)分配到的所有內(nèi)存塊進(jìn)行指定次數(shù)的循環(huán)測試。
步驟207,判斷循環(huán)次數(shù)是否完成,如果完成,則執(zhí)行步驟208;否則返回步驟206繼續(xù)進(jìn)行循環(huán)測試。
步驟208,恢復(fù)數(shù)據(jù)緩存和指令緩存原有的狀態(tài)。
步驟209,根據(jù)步驟204中記錄的內(nèi)存塊個(gè)數(shù),釋放所述指針,即釋放分配的所有內(nèi)存。
上述實(shí)施例中的步驟202所述的內(nèi)存分配方式是按照相同大小的內(nèi)存塊依次分配內(nèi)存,這樣做的目的是將所有內(nèi)存都分配到,并且方便進(jìn)行循環(huán)測試。但并不是只能采用這種方式進(jìn)行內(nèi)存分配,也可以通過大小不一的內(nèi)存塊來實(shí)現(xiàn)內(nèi)存的分配,只要能夠?qū)⑺袃?nèi)存都分配到的方式都可以采用。
本發(fā)明提供的CPU系統(tǒng)性能測試方法還可以應(yīng)用于通信設(shè)備的環(huán)境試驗(yàn)和老化中。通信設(shè)備環(huán)境試驗(yàn)是指在高溫或溫度循環(huán)變化的條件下,對(duì)通信設(shè)備的CPU系統(tǒng)進(jìn)行性能測試,驗(yàn)證CPU系統(tǒng)能否滿足在惡劣環(huán)境下工作的要求。
通信設(shè)備的老化是指在高溫環(huán)境中給通信設(shè)備的單板長時(shí)間上電,對(duì)單板進(jìn)行環(huán)境應(yīng)力篩選。如果在單板的老化中,采用本發(fā)明的測試方法讓老化過程中的CPU和內(nèi)存一直維持滿負(fù)荷運(yùn)轉(zhuǎn),那么在同樣的老化時(shí)間內(nèi)可以提高單板老化質(zhì)量,或在同樣的老化質(zhì)量下可縮短老化時(shí)間。因此采用本發(fā)明的CPU系統(tǒng)測試方法,可以提高老化效果。
本發(fā)明的CPU系統(tǒng)性能測試方法可以應(yīng)用到電腦主板及類似電腦主板的單板的測試中。此類單板一般都具有CPU、內(nèi)存、硬盤或CF卡,而且硬盤或CF卡可以設(shè)置為單板的虛擬內(nèi)存。對(duì)這類單板可以使用本發(fā)明的測試方法不僅可以對(duì)CPU和內(nèi)存進(jìn)行測試,還可以對(duì)單板的硬盤和CF卡進(jìn)行測試。
比如在圖2所示的實(shí)施例的步驟201中,定義超過單板內(nèi)存大小的指針數(shù)組,假設(shè)內(nèi)存大小總共為1G,定義內(nèi)存指針數(shù)組為2048個(gè)元素,然后每次分配1M,總共可以分配2G的內(nèi)存,這樣分配的超過1G的內(nèi)存塊就是指向了為單板提供虛擬內(nèi)存的硬盤或CF卡。利用內(nèi)存單元測試方法對(duì)這些內(nèi)存塊進(jìn)行循環(huán)測試時(shí),就實(shí)現(xiàn)了對(duì)硬盤或CF卡的測試。
利用本發(fā)明的測試方法還可以進(jìn)行CPU系統(tǒng)的在線測試或例行測試。如電腦在正常工作狀態(tài)下,其上運(yùn)行了Windows操作系統(tǒng)、VC++等程序,這時(shí)可以利用本發(fā)明提供的測試方法進(jìn)行CPU系統(tǒng)測試。在這種情況下,電腦并不會(huì)復(fù)位或死機(jī),只是運(yùn)行別的程序時(shí)的速度下降,反應(yīng)明顯延遲。測試完畢后,系統(tǒng)可以自動(dòng)恢復(fù)正常工作狀態(tài)。因此,如果利用本發(fā)明提供的CPU系統(tǒng)測試方法進(jìn)行在線測試,可能會(huì)影響系統(tǒng)性能,但不會(huì)中斷業(yè)務(wù),所以可以將本發(fā)明的CPU系統(tǒng)測試方法作為一種典型的在線測試方法。
另外,本發(fā)明的測試方法也可以應(yīng)用于對(duì)CPU系統(tǒng)的例行測試,即可以利用本發(fā)明提供的測試方法定期對(duì)CPU系統(tǒng)進(jìn)行測試。
總之,以上所述僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種中央處理器系統(tǒng)性能測試方法,其特征在于,該方法包括以下步驟A、分配中央處理器系統(tǒng)的內(nèi)存,記錄分配的內(nèi)存塊個(gè)數(shù);B、保存數(shù)據(jù)緩存的狀態(tài),關(guān)閉數(shù)據(jù)緩存;C、調(diào)用內(nèi)存單元測試算法對(duì)分配的所有內(nèi)存塊進(jìn)行循環(huán)測試;D、確定循環(huán)測試結(jié)束后,釋放分配的所有內(nèi)存。
2.如權(quán)利要求1所述的方法,其特征在于,步驟A所述的分配內(nèi)存為按照相同的內(nèi)存塊大小分配內(nèi)存、或不同的內(nèi)存塊大小分配內(nèi)存。
3.如權(quán)利要求1或2所述的方法,其特征在于,步驟A所述的分配內(nèi)存為通過設(shè)定內(nèi)存指針數(shù)組進(jìn)行內(nèi)存分配,所述內(nèi)存指針數(shù)組的元素個(gè)數(shù)由內(nèi)存大小和分配內(nèi)存時(shí)采用的內(nèi)存塊大小確定。
4.如權(quán)利要求1或2所述的方法,其特征在于,步驟D所述的確定循環(huán)測試結(jié)束后,進(jìn)一步包括恢復(fù)數(shù)據(jù)緩存的狀態(tài)。
5.如權(quán)利要求1或2所述的方法,其特征在于,步驟C所述調(diào)用內(nèi)存單元測試算法對(duì)分配的所有內(nèi)存塊進(jìn)行循環(huán)測試前,進(jìn)一步包括保存指令緩存的狀態(tài),打開指令緩存。
6.如權(quán)利要求5所述的方法,其特征在于,步驟D所述的確定循環(huán)測試結(jié)束后,進(jìn)一步包括恢復(fù)指令緩存的狀態(tài)。
7.如權(quán)利要求1或2所述的方法,其特征在于,步驟D所述的確定循環(huán)測試結(jié)束為根據(jù)定義的循環(huán)次數(shù)、或循環(huán)測試時(shí)間是否到達(dá)來確定循環(huán)測試是否結(jié)束。
8.如權(quán)利要求1或2所述的方法,其特征在于,步驟C所述的內(nèi)存單元測試算法包括但不限于五步法、九步法、或增量補(bǔ)償法。
9.如權(quán)利要求1所述的方法,其特征在于,所述的中央處理器系統(tǒng)為電腦主板中央處理器系統(tǒng)、或通信設(shè)備單板中央處理器系統(tǒng)。
全文摘要
本發(fā)明公開了一種CPU系統(tǒng)性能測試方法,CPU系統(tǒng)可以利用操作系統(tǒng)管理內(nèi)存的特點(diǎn)不斷地分配內(nèi)存塊,直到將所有內(nèi)存都耗盡為止,然后利用現(xiàn)有的內(nèi)存單元測試方法對(duì)分配到的所有內(nèi)存塊進(jìn)行循環(huán)測試,從而實(shí)現(xiàn)了在測試過程中CPU和內(nèi)存可以長時(shí)間保持高占用率,極大的提高了CPU系統(tǒng)的性能測試質(zhì)量和效果。本發(fā)明公開的這種CPU系統(tǒng)性能測試方法具有非常廣泛的應(yīng)用范圍,不僅可以應(yīng)用于電腦、服務(wù)器等的主板測試中,也可以應(yīng)用于通行設(shè)備的環(huán)境試驗(yàn)和老化中,提高環(huán)境試驗(yàn)和老化的效果。
文檔編號(hào)G06F11/00GK1983201SQ20061008728
公開日2007年6月20日 申請日期2006年6月14日 優(yōu)先權(quán)日2006年6月14日
發(fā)明者朱星海 申請人:華為技術(shù)有限公司