專利名稱:非統(tǒng)一存儲(chǔ)器存取環(huán)境下的存儲(chǔ)器檢測(cè)方法
技術(shù)領(lǐng)域:
本發(fā)明是關(guān)于一種存儲(chǔ)器檢測(cè)方法,尤其是關(guān)于一種非統(tǒng)一存儲(chǔ)器存取(NUMA) 環(huán)境下的存儲(chǔ)器檢測(cè)方法。
背景技術(shù):
現(xiàn)今,非統(tǒng)一存儲(chǔ)器存取(Non Uniform Memory Access,以下簡(jiǎn)稱NUMA)技術(shù)可以 使眾多服務(wù)器像單一系統(tǒng)那樣運(yùn)轉(zhuǎn),同時(shí)保留小系統(tǒng)便于編程和管理的優(yōu)點(diǎn)。在含有許多 中央處理單元(Central Processing Unit,以下簡(jiǎn)稱CPU)的電腦上,NUMA硬件可將專用存 儲(chǔ)器與CPU配對(duì),進(jìn)而大幅改善效能。目前,硬件的趨勢(shì)已走向可提供多個(gè)系統(tǒng)總線,而每一個(gè)總線都可服務(wù)一小組處 理器。每一組處理器都有自己的存儲(chǔ)器,可能的話,也會(huì)有自己的輸入/輸出(I/O)通道。 不過(guò),每個(gè)CPU都可存取與使用相同方法設(shè)計(jì)的其他群組相關(guān)聯(lián)的存儲(chǔ)器。每一個(gè)群組就 稱為NUMA節(jié)點(diǎn)(node)。NUMA節(jié)點(diǎn)內(nèi)的CPU數(shù)目取決于硬件供應(yīng)商。存取本機(jī)存儲(chǔ)器會(huì)比 存取與其他NUMA節(jié)點(diǎn)相關(guān)聯(lián)的存儲(chǔ)器更快。在NUMA硬件上,有些存儲(chǔ)器區(qū)域?qū)嶋H上是位于其他區(qū)域的不同總線上。因?yàn)镹UMA 使用本機(jī)和外部存儲(chǔ)器,所以存取某些存儲(chǔ)器區(qū)域的時(shí)間有時(shí)會(huì)比存取其他區(qū)域更久?!氨?機(jī)存儲(chǔ)器”和“外部存儲(chǔ)器”通常是用來(lái)參考目前執(zhí)行的執(zhí)行線程。本機(jī)存儲(chǔ)器是與目前 執(zhí)行的執(zhí)行線程的CPU位于相同節(jié)點(diǎn)上的存儲(chǔ)器。不屬于目前執(zhí)行的執(zhí)行線程節(jié)點(diǎn)的存儲(chǔ) 器,就是外部存儲(chǔ)器。外部存儲(chǔ)器也稱為“遠(yuǎn)端存儲(chǔ)器”。NUMA的主要優(yōu)點(diǎn)是延展性。NUMA架構(gòu)是為了超越對(duì)稱性多重處理(Symmetric Multiprocessing,簡(jiǎn)稱SMP)架構(gòu)的延展性限制而設(shè)計(jì)的。使用SMP時(shí),所有存儲(chǔ)器存取都 會(huì)公佈到相同共用存儲(chǔ)器總線。這適合只有少數(shù)幾個(gè)CPU的時(shí)候使用,當(dāng)有幾十個(gè)甚至幾 百個(gè)CPU爭(zhēng)相存取共用存儲(chǔ)數(shù)目,并利用高速互連的方式來(lái)連接不同的節(jié)點(diǎn)。已知的NUMA環(huán)境下的存儲(chǔ)器檢測(cè)方法只是簡(jiǎn)單的通過(guò)驅(qū)動(dòng)程序?qū)崿F(xiàn)了分配實(shí)體 存儲(chǔ)器對(duì)其進(jìn)行檢測(cè)的功能。并沒(méi)有能夠利用NUMA系統(tǒng)本身所固有的硬件環(huán)境特點(diǎn)來(lái)進(jìn) 行更加優(yōu)化的存儲(chǔ)器檢測(cè)處理,因此通過(guò)優(yōu)化現(xiàn)有的測(cè)試方法,測(cè)試壓力及測(cè)試效率還有 進(jìn)一步提升的空間。請(qǐng)參考圖1,此圖為現(xiàn)有技術(shù)的NUMA環(huán)境下的存儲(chǔ)器檢測(cè)方法所運(yùn)行的系統(tǒng)方塊 圖。如圖所示,現(xiàn)有技術(shù)的NUMA環(huán)境下的存儲(chǔ)器檢測(cè)方法在具有多個(gè)CPU及其專屬存儲(chǔ)器 的NUMA硬件架構(gòu)的環(huán)境中僅僅通過(guò)一個(gè)存儲(chǔ)器測(cè)試執(zhí)行線程10來(lái)遍歷測(cè)試所有的實(shí)體存 儲(chǔ)器,現(xiàn)有技術(shù)的這種檢測(cè)方法存有諸多缺陷或限制,特別是1、沒(méi)有能夠利用多CPU的硬件環(huán)境來(lái)盡可能地并行作業(yè)以提升系統(tǒng)的測(cè)試壓力。2、存儲(chǔ)器測(cè)試執(zhí)行線程始終綁定在一個(gè)固定的CPU上,這樣當(dāng)測(cè)試遠(yuǎn)端存儲(chǔ)器 (屬于其他CPU的專屬存儲(chǔ)器)的時(shí)候,訪問(wèn)及存取速度會(huì)大幅降低,進(jìn)而嚴(yán)重影響測(cè)試效 率及測(cè)試壓力。
發(fā)明內(nèi)容
為了解決上述現(xiàn)有技術(shù)中的問(wèn)題與缺陷,本發(fā)明的目的在于提供一種可減少測(cè)試 用時(shí)并可大幅提升測(cè)試壓力的NUMA環(huán)境下的存儲(chǔ)器檢測(cè)方法。本發(fā)明所提供的一種NUMA環(huán)境下的存儲(chǔ)器檢測(cè)方法,包含以下步驟獲得NUMA環(huán)境下系統(tǒng)的節(jié)點(diǎn)個(gè)數(shù);根據(jù)節(jié)點(diǎn)個(gè)數(shù),將存儲(chǔ)器測(cè)試程序的執(zhí)行線程復(fù)制多份;將每一執(zhí)行線程分別綁定到不同的CPU上加以執(zhí)行;以及利用各執(zhí)行線程并行地測(cè)試各CPU專屬的存儲(chǔ)器。其中,上述本發(fā)明所提供的一種NUMA環(huán)境下的存儲(chǔ)器檢測(cè)方法中,利用各執(zhí)行線 程并行地測(cè)試各CPU專屬的存儲(chǔ)器可進(jìn)一步包含如下步驟當(dāng)各執(zhí)行線程運(yùn)行之后,分別在各自的節(jié)點(diǎn)中利用驅(qū)動(dòng)程序分配實(shí)體存儲(chǔ)器;將實(shí)體存儲(chǔ)器映射到用戶進(jìn)程空間;以及應(yīng)用針對(duì)各種不同目的的演算法對(duì)各存儲(chǔ)器進(jìn)行讀寫(xiě)驗(yàn)證,當(dāng)全部的讀寫(xiě)驗(yàn)證結(jié) 果均一致時(shí),則測(cè)試通過(guò),否則報(bào)錯(cuò)并退出測(cè)試。此外,上述本發(fā)明的方法中,各執(zhí)行線程以CPU間規(guī)格書(shū)上的相互間的訪問(wèn)延遲 時(shí)間較短的單方向訪問(wèn)和測(cè)試存儲(chǔ)器,或者在某兩個(gè)CPU空閑時(shí)單方向互測(cè)存儲(chǔ)器。綜上所述,本發(fā)明所提供的一種NUMA環(huán)境下的存儲(chǔ)器檢測(cè)方法,由于通過(guò)復(fù)制多 份存儲(chǔ)器測(cè)試程序的執(zhí)行線程,并將每一個(gè)執(zhí)行線程分別綁定到不同的CPU上面去并行的 測(cè)試各CPU專屬的存儲(chǔ)器,因而相對(duì)于現(xiàn)有技術(shù)具有如下的優(yōu)點(diǎn)1、由于利用NUMA架構(gòu)的硬件特性而使得存儲(chǔ)器測(cè)試的并行度大幅提高,進(jìn)而因 測(cè)試并行度的提升使系統(tǒng)的測(cè)試壓力得到提升。2、由于每一份獨(dú)立的存儲(chǔ)器測(cè)試執(zhí)行線程都不會(huì)去訪問(wèn)遠(yuǎn)端存儲(chǔ)器,因而可使測(cè) 試所需時(shí)間大幅降低,同時(shí)提高了測(cè)試效率及測(cè)試壓力。
圖1為現(xiàn)有技術(shù)的NUMA環(huán)境下的存儲(chǔ)器檢測(cè)方法所運(yùn)行的系統(tǒng)方塊圖;圖2為本發(fā)明一實(shí)施例的NUMA環(huán)境下的存儲(chǔ)器檢測(cè)方法的整體步驟流程圖;圖3為圖2中步驟104的分解步驟流程圖;以及圖4為本發(fā)明一實(shí)施例的NUMA環(huán)境下的存儲(chǔ)器檢測(cè)方法所運(yùn)行的系統(tǒng)方塊圖。附圖標(biāo)記說(shuō)明10 存儲(chǔ)器測(cè)試執(zhí)行線程
具體實(shí)施例方式有關(guān)本發(fā)明的特征與實(shí)作,茲配合圖示作較佳實(shí)施例詳細(xì)說(shuō)明如下。請(qǐng)參考圖2,此圖為本發(fā)明一實(shí)施例的NUMA環(huán)境下的存儲(chǔ)器檢測(cè)方法的整體步驟 流程圖,如圖所示,本發(fā)明的一種NUMA環(huán)境下的存儲(chǔ)器檢測(cè)方法,包含以下步驟獲得NUMA環(huán)境下系統(tǒng)的節(jié)點(diǎn)個(gè)數(shù)(步驟101);根據(jù)節(jié)點(diǎn)個(gè)數(shù),將存儲(chǔ)器測(cè)試程序的執(zhí)行線程復(fù)制多份(步驟102);將每一執(zhí)行線程分別綁定到不同的CPU的上加以執(zhí)行(步驟103);以及
利用各執(zhí)行線程并行地測(cè)試各CPU專屬的存儲(chǔ)器(步驟104)。其中,如圖3所示,上述本發(fā)明一實(shí)施例的一種NUMA環(huán)境下的存儲(chǔ)器檢測(cè)方法中 的步驟104可進(jìn)一步包含如下步驟當(dāng)各執(zhí)行線程運(yùn)行之后,分別在各自的節(jié)點(diǎn)中利用驅(qū)動(dòng)程序分配實(shí)體存儲(chǔ)器(步 驟 1041);將實(shí)體存儲(chǔ)器映射到用戶進(jìn)程空間(步驟1042);應(yīng)用針對(duì)各種不同目的的演算法對(duì)各存儲(chǔ)器進(jìn)行讀寫(xiě)驗(yàn)證(步驟1043);判斷讀寫(xiě)驗(yàn)證結(jié)果是否均一致(步驟1044);以及當(dāng)全部的讀寫(xiě)驗(yàn)證結(jié)果均一致時(shí),則測(cè)試通過(guò)(步驟1045),否則報(bào)錯(cuò)并退出測(cè)試 (步驟 1046)。此外,上述本發(fā)明一實(shí)施例的NUMA環(huán)境下的存儲(chǔ)器檢測(cè)方法中,各執(zhí)行線程以 CPU間規(guī)格書(shū)上的相互間的訪問(wèn)延遲時(shí)間較短的單方向訪問(wèn)和測(cè)試存儲(chǔ)器,或者在某兩個(gè) CPU空閑時(shí)單方向互測(cè)存儲(chǔ)器?,F(xiàn)在請(qǐng)參考圖4,此圖為本發(fā)明一實(shí)施例的NUMA環(huán)境下的存儲(chǔ)器檢測(cè)方法所運(yùn)行 的系統(tǒng)方塊圖,如圖所示,應(yīng)用本發(fā)明的存儲(chǔ)器檢測(cè)方法,在具體測(cè)試的時(shí)候首先會(huì)獲得系 統(tǒng)的節(jié)點(diǎn)(CPU與本地存儲(chǔ)器的集合稱為節(jié)點(diǎn))個(gè)數(shù),隨后根據(jù)節(jié)點(diǎn)的個(gè)數(shù)派生出多個(gè)存儲(chǔ) 器測(cè)試執(zhí)行線程10,然后分別將各執(zhí)行線程10綁定到每個(gè)CPU上面去執(zhí)行,當(dāng)存儲(chǔ)器測(cè)試 執(zhí)行線程10運(yùn)行起來(lái)之后,首先會(huì)分別在各自的節(jié)點(diǎn)中利用驅(qū)動(dòng)程序(driver)分配實(shí)體 存儲(chǔ)器,隨后將它們映射到用戶進(jìn)程空間,接下來(lái)就應(yīng)用針對(duì)各種不同目的的演算法來(lái)對(duì) 存儲(chǔ)器進(jìn)行讀寫(xiě)驗(yàn)證,當(dāng)所有的讀寫(xiě)驗(yàn)證結(jié)果都一致時(shí),則測(cè)試通過(guò)。當(dāng)在上述測(cè)試過(guò)程中 出現(xiàn)讀寫(xiě)驗(yàn)證不一致的情況時(shí),就說(shuō)明系統(tǒng)存儲(chǔ)器存有相應(yīng)的品質(zhì)缺陷,進(jìn)而使問(wèn)題被檢 測(cè)出來(lái)。因此,採(cǎi)用如上所述的本發(fā)明的NUMA環(huán)境下的存儲(chǔ)器檢測(cè)方法將會(huì)很好地解決現(xiàn) 有技術(shù)的NUMA環(huán)境下的存儲(chǔ)器檢測(cè)方法所存在的諸多問(wèn)題。當(dāng)然,本發(fā)明還可有其它多種實(shí)施例,在不背離本發(fā)明精神及其實(shí)質(zhì)的情況下,熟 悉本領(lǐng)域的普通技術(shù)人員當(dāng)可根據(jù)本發(fā)明做出各種相應(yīng)的改變和變形,但這些相應(yīng)的改變 和變形都應(yīng)屬于本發(fā)明所附的權(quán)利要求的保護(hù)范圍。
權(quán)利要求
1.一種非統(tǒng)一存儲(chǔ)器存取環(huán)境下的存儲(chǔ)器檢測(cè)方法,包含以下步驟 獲得非統(tǒng)一存儲(chǔ)器存取環(huán)境下系統(tǒng)的一節(jié)點(diǎn)個(gè)數(shù);根據(jù)該節(jié)點(diǎn)個(gè)數(shù),將一存儲(chǔ)器測(cè)試程序的一執(zhí)行線程復(fù)制多份; 將每一該執(zhí)行線程分別綁定到不同的一 CPU上加以執(zhí)行;以及 利用所述各該執(zhí)行線程并行地測(cè)試所述各該CPU專屬的一存儲(chǔ)器。
2.根據(jù)權(quán)利要求1所述的存儲(chǔ)器檢測(cè)方法,其中利用所述各執(zhí)行線程并行地測(cè)試所述 各該CPU專屬的該存儲(chǔ)器進(jìn)一步包含如下步驟當(dāng)所述各該執(zhí)行線程運(yùn)行之后,分別在各自的一節(jié)點(diǎn)中利用驅(qū)動(dòng)程序分配一實(shí)體存儲(chǔ)器;將該實(shí)體存儲(chǔ)器映射到用戶進(jìn)程空間;以及應(yīng)用針對(duì)各種不同目的的演算法對(duì)所述各該存儲(chǔ)器進(jìn)行一讀寫(xiě)驗(yàn)證,當(dāng)全部的該讀寫(xiě) 驗(yàn)證結(jié)果均一致時(shí),則測(cè)試通過(guò),否則報(bào)錯(cuò)并退出測(cè)試。
3.根據(jù)權(quán)利要求2所述的存儲(chǔ)器檢測(cè)方法,其中所述各該執(zhí)行線程以該CPU間規(guī)格書(shū) 上的相互間的訪問(wèn)延遲時(shí)間較短的單方向訪問(wèn)和測(cè)試所述該存儲(chǔ)器。
4.根據(jù)權(quán)利要求2所述的存儲(chǔ)器檢測(cè)方法,其中所述各該執(zhí)行線程在某兩個(gè)該CPU空 閑時(shí)單方向互測(cè)該存儲(chǔ)器。
全文摘要
一種非統(tǒng)一存儲(chǔ)器存取環(huán)境下的存儲(chǔ)器檢測(cè)方法,包含以下步驟獲得NUMA環(huán)境下系統(tǒng)的節(jié)點(diǎn)個(gè)數(shù);根據(jù)節(jié)點(diǎn)個(gè)數(shù),將存儲(chǔ)器測(cè)試程序的執(zhí)行線程復(fù)制多份;將每一執(zhí)行線程分別綁定到不同的CPU上加以執(zhí)行;以及利用各執(zhí)行線程并行地測(cè)試各CPU專屬的存儲(chǔ)器。此方法可使測(cè)試所需時(shí)間大幅降低,同時(shí)提高測(cè)試效率及測(cè)試壓力。
文檔編號(hào)G11C29/00GK102053886SQ20091020775
公開(kāi)日2011年5月11日 申請(qǐng)日期2009年10月30日 優(yōu)先權(quán)日2009年10月30日
發(fā)明者李巖, 陳玄同 申請(qǐng)人:英業(yè)達(dá)股份有限公司