專利名稱:一種基于擴展型Cache Coherence協(xié)議的多級一致性域仿真驗證和測試方法
技術(shù)領(lǐng)域:
本發(fā)明涉及本發(fā)明屬于計算機體系結(jié)構(gòu)范疇,具體涉及多處理器計算機系統(tǒng)的Cache—致性;多節(jié)點多處理器計算機系統(tǒng);CC-NUMA (Cache Coherent Non-Uniform
Memory Access-Cache 一致性非一致內(nèi)存訪問)架構(gòu);Cache Coherence協(xié)議的多級一
致性域和模型測試驗證方法,具體地說是一種基于擴展型Cache Coherence協(xié)議的多級一致性域仿真驗證和測試方法。
背景技術(shù):
當(dāng)前多處理器之間的連接方式由總線連接轉(zhuǎn)變?yōu)辄c對點連接,內(nèi)存也從掛接處理器外部橋接芯片轉(zhuǎn)變?yōu)橹苯訏旖犹幚砥?。由于?nèi)存掛接方式的變化,內(nèi)存在系統(tǒng)中的分布也發(fā)生變化,從而導(dǎo)致多處理器系統(tǒng)中內(nèi)存訪問的非均一性,故當(dāng)前多處理器系統(tǒng)多為NUMA (Non-Uniform Memory Access-非一致內(nèi)存訪問)架構(gòu)系統(tǒng)。NUMA系統(tǒng)中有多個Cache單元分布于系統(tǒng),因而設(shè)計NUMA系統(tǒng)須解決多Cache之間的一致性問題。如何解決Cache —致性問題是CC-NUMA系統(tǒng)的核心問題。因而對Cache一致性協(xié)議的驗證工作也相應(yīng)成為CC-NUMA系統(tǒng)驗證工作的重要組成部分。在普遍使用商用微處理器構(gòu)建巨型機的潮流下,使用商用多核微處理器構(gòu)建CC-NUMA系統(tǒng)也就成為必然的趨勢。為了支持多處理器并行,目前的高端商用微處理器基本都支持多路直連擴展。若處理器使用內(nèi)置存控,并對全局訪存空間統(tǒng)一編址,多個直連的處理器即可構(gòu)成一個小型的CC-NUMA系統(tǒng)。然而受處理器直連接口數(shù)量限制,僅使用處理器直聯(lián)方式難以構(gòu)建大型系統(tǒng)。為實現(xiàn)大規(guī)模的CC-NUMA多處理器系統(tǒng),需借助節(jié)點控制器NC (NodeController)擴大一致性域空間。本文涉及到的節(jié)點控制器具有維護全局Cache —致性和擴展系統(tǒng)規(guī)模兩種功能:首先,每個節(jié)點控制器連接I至4顆處理器,組成一個節(jié)點和第一級Cache —致性域,域內(nèi)一致性由處理器和節(jié)點控制器共同維護;其次,節(jié)點控制器直接互連或通過節(jié)點路由器連接以組成大規(guī)模CC-NUMA系統(tǒng)。節(jié)點間的第二級Cache —致性由節(jié)點控制器維護。這樣構(gòu)成的大規(guī)模的CC-NUMA系統(tǒng)需要在處理器直聯(lián)Cache—致性協(xié)議基礎(chǔ)上擴展建立多層次的協(xié)議,并維護全局一致性。基于擴展型Cache Coherence協(xié)議的多級一致性域CC-NUMA系統(tǒng)協(xié)議往往相對比較復(fù)雜,與此同時仿真測試也尤為重要,對其仿真驗證工作也成為重要工作。如上文所述,按處理器直連的方式構(gòu)成的多處理器系統(tǒng)規(guī)模有限。為實現(xiàn)更大規(guī)模的CC-NUMA多處理器系統(tǒng),必須借助于圖1中節(jié)點控制器(Node Controller)。節(jié)點控制器具有擴展系統(tǒng)規(guī)模和維護全局Cache —致性的功能;首先,每個節(jié)點控制器連接I至4顆處理器,組成一個節(jié)點和第一級Cache —致性域,域內(nèi)Cache —致性由處理器和節(jié)點控制器共同維護。節(jié)點控制器也會占用域內(nèi)的至少一個處理器ID,因而域內(nèi)處理器加節(jié)點控制器的數(shù)量不能大于處理器所能支持的域內(nèi)處理器ID數(shù)。然后,節(jié)點控制器直接互連或通過節(jié)點路由器連接以組成大規(guī)模CC-NUMA系統(tǒng)。節(jié)點間的第二級Cache —致性由節(jié)點控制器維護,某節(jié)點內(nèi)的處理器跨節(jié)點和Cache —致性域訪問另一個節(jié)點內(nèi)處理器的內(nèi)存時,全局Cache 一致性通過節(jié)點控制器維護。據(jù)此設(shè)計相關(guān)模型CC-NUMA總線功能模型:模擬實現(xiàn)了處理器中Cache、存儲、以及處理器間的互連網(wǎng)絡(luò);支持自定義系統(tǒng)拓?fù)浣Y(jié)構(gòu);支持訪存行為事務(wù)級的模擬;模擬處理器直連Cache —致性協(xié)議并提供系統(tǒng)中各訪存事務(wù)、Cache、存儲的實時行為和狀態(tài)。同時設(shè)計節(jié)點控制器仿真模型:通過總線功能模型的API接口,模擬實現(xiàn)了節(jié)點控制器自有的多級Cache —致性協(xié)議;使用處理器Cache —致性的協(xié)議消息與處理器進行通信,并以擴展Cache —致性的協(xié)議消息通過節(jié)點控制器網(wǎng)絡(luò)在各節(jié)點控制器之間進行通信,完成多級域之間的一致性協(xié)議的轉(zhuǎn)換。使用模擬驗證方法來進行功能驗證,核心思想是將設(shè)計者的意圖與觀察模擬器的實際行為進行比較,以確定它們的一致性。當(dāng)一個設(shè)計在模擬中能夠像設(shè)計者所期望的那樣運行并且達(dá)到設(shè)計要求的時候,我們認(rèn)為這個設(shè)計就已經(jīng)被驗證了。在驗證過程中,通過對己產(chǎn)生的測試激勵進行模擬結(jié)果覆蓋率的分析,結(jié)合由系統(tǒng)功能描述中導(dǎo)出的信息,改進進一步驗證的測試激勵生成算法或者測試激勵生成約束,使得再次生成的測試激勵能使模擬系統(tǒng)達(dá)到更高的覆蓋率。Cache—致性協(xié)議是為實現(xiàn)共享數(shù)據(jù)訪問一致性、提供共享存儲編程接口所采用的處理機制,不僅直接決定系統(tǒng)的正確性,而且對系統(tǒng)的規(guī)模和性能有著重要影響,是實現(xiàn)分布共享主存多處理機多核系統(tǒng)的關(guān)鍵。系統(tǒng)規(guī)模的快速擴充、網(wǎng)絡(luò)延時的不確定性和存儲一致性模型的多樣性等諸多因素,使Cache —致性協(xié)議異常復(fù)雜,協(xié)議的狀態(tài)空間呈指數(shù)級增長,甚至出現(xiàn)爆炸現(xiàn)象。業(yè)內(nèi)在Cache —致性協(xié)議驗證方法上有諸多論述,主要包括形式化驗證和軟件模擬驗證。由于固有的狀態(tài)空間爆炸問題,完全形式化的驗證目前還難以應(yīng)用到復(fù)雜多級協(xié)議的驗證工作中。軟件模擬驗證可通過人工方式撰寫約束模型同時進行帶約束的偽隨機測試,對于特定的目標(biāo)進行驗證,其效率也已有較大提高,是一種實用可行的方法。本發(fā)明基于軟件模擬的方法,首先說明基于擴展型Cache Coherence協(xié)議的多級一致性描述方式的仿真模型構(gòu)建,提出了一種軟件模擬驗證的方法,可以有效驗證多狀態(tài)空間下多級域的Cache Coherence—致性協(xié)議。通過構(gòu)建一個多處理器驗證系統(tǒng)模型并開展相關(guān)仿真驗證,進一步論證該方法的適用性和有效性。由于處理器所能支持的域內(nèi)處理器ID數(shù)量有限,導(dǎo)致多處理器系統(tǒng)所需節(jié)點控制器數(shù)目過大,造成節(jié)點間互連規(guī)模龐大、拓?fù)浣Y(jié)構(gòu)復(fù)雜。建立一種基于擴展型CacheCoherence協(xié)議的多級一致性協(xié)議,通過節(jié)點控制器查詢本地協(xié)議表轉(zhuǎn)換機制,轉(zhuǎn)換多級一致性域報文,可顯著擴展大規(guī)模共享內(nèi)存多處理器系統(tǒng),并能有效提升系統(tǒng)性能,降低系統(tǒng)拓?fù)鋸?fù)雜度。
發(fā)明內(nèi)容
本發(fā)明的目的是針對CC-NUMA系統(tǒng)中的多層Cache —致性協(xié)議,建立一種基于擴展型Cache Coherence協(xié)議的多級一致性協(xié)議轉(zhuǎn)換正確性的測試驗證方法。
本發(fā)明的目的是通過下述的技術(shù)方案實現(xiàn):包括:多層Cache —致性協(xié)議模型模擬測試結(jié)構(gòu);可擴展的拓?fù)浣Y(jié)構(gòu);節(jié)點仿真模型;協(xié)議表查詢與狀態(tài)轉(zhuǎn)換執(zhí)行方法;協(xié)議表執(zhí)行流程;事務(wù)生成器;測試評價方法和提高覆蓋率方法,使用覆蓋率驅(qū)動的驗證策略構(gòu)建一套基于偽隨機模擬驗證系統(tǒng),以及由覆蓋率驅(qū)動的測試激勵自動產(chǎn)生器組成的模擬驗證系統(tǒng),其中:
為實現(xiàn)大規(guī)模的CC-NUMA多處理器系統(tǒng),需借助節(jié)點控制器NC擴大一致性域空間,節(jié)點控制器具有維護全局Cache —致性和擴展系統(tǒng)規(guī)模兩種功能:首先,每個節(jié)點控制器連接I至4顆處理器,組成一個節(jié)點和第一級Cache —致性域,域內(nèi)一致性由處理器和節(jié)點控制器共同維護;其次,節(jié)點控制器直接互連或通過節(jié)點路由器連接以組成大規(guī)模CC-NUMA系統(tǒng);節(jié)點間的第二級Cache —致性由節(jié)點控制器維護,這樣構(gòu)成的大規(guī)模的CC-NUMA系統(tǒng)需要在處理器直聯(lián)Cache —致性協(xié)議基礎(chǔ)上擴展建立多層次的協(xié)議,并維護全局一致性,為了構(gòu)建一種基于擴展型Cache Coherence協(xié)議的多級一致性域CC-NUMA系統(tǒng)協(xié)議的仿真模型,需構(gòu)建系統(tǒng)關(guān)鍵節(jié)點內(nèi)協(xié)議表查詢和狀態(tài)轉(zhuǎn)換執(zhí)行機制,確保多一致性域內(nèi)與域間之間傳輸?shù)臏?zhǔn)確性、穩(wěn)定性;提出一種可信的協(xié)議入口轉(zhuǎn)換覆蓋率評價驅(qū)動驗證方法,通過加載經(jīng)優(yōu)化的事務(wù)發(fā)生器推動模型進行事務(wù)處理,在運行結(jié)束時獲得覆蓋率指標(biāo),較之隨機事務(wù)推進機制提高驗證效率,通過構(gòu)建一個多處理器驗證系統(tǒng)模型并開展相關(guān)仿真驗證,進一步確認(rèn)該方法的適用性和有效性;
1)多層Cache—致性協(xié)議模型模擬測試結(jié)構(gòu)
使用SystemC語言設(shè)計一種基于擴展型Cache Coherence協(xié)議的多級一致性域模型的系統(tǒng)模擬器和與系統(tǒng)模擬器并行執(zhí)行的模型驗證系統(tǒng),模型驗證系統(tǒng)通過構(gòu)建偽隨機事務(wù)發(fā)生器進行測試,通過全局檢查器進行系統(tǒng)正確性判斷;模型驗證系統(tǒng)包括:總線功能模型、協(xié)議參考模型、節(jié)點控制器模擬器、網(wǎng)絡(luò)模擬器、全局檢查器、協(xié)議入口查詢機制,其中:
(O總線功能模型:是一個時鐘精確的功能模型,模擬實現(xiàn)了處理器中Cache、存控、以及處理器內(nèi)部和處理器間的互連網(wǎng)絡(luò),提供了對訪存行為的事務(wù)級模擬支持,支持自定義系統(tǒng)拓?fù)浣Y(jié)構(gòu),提供外部API接口,可與外部模塊進行消息交互,運行中按照處理器直聯(lián)Cache 一致性協(xié)議模擬并提供系統(tǒng)中各訪存事務(wù)、Cache、存控的實時行為和狀態(tài);
(2)協(xié)議參考模型:與總線功能模型緊密集成,對模擬系統(tǒng)中的系統(tǒng)狀態(tài)和消息流進行實時檢查,用于發(fā)現(xiàn)模擬過程中系統(tǒng)偏離協(xié)議的行為;
(3)節(jié)點控制器模擬器:通過總線功能模型的API接口掛接在其上,模擬實現(xiàn)了節(jié)點控制器NC自有的Cache—致性協(xié)議;以處理器直聯(lián)Cache—致性協(xié)議消息與處理器進行通信,并以自有的Cache —致性協(xié)議消息通過網(wǎng)絡(luò)模擬器在各NC模擬器間進行通信;
(4)網(wǎng)絡(luò)模擬器:模擬了一個簡單的不保序全交換網(wǎng)絡(luò),通過此網(wǎng)絡(luò)進行擴展Cache一致性協(xié)議的消息通信;
(5)全局檢查器:運行在整個系統(tǒng)之上,通過總線功能模型的API檢查全局的數(shù)據(jù)Cache 一致性;
(6)隨機/定點測試激勵自動發(fā)生器:通過總線功能模型的API接口掛接,在模擬過程中持續(xù)產(chǎn)生隨機/定點的訪存事務(wù),并通過總線功能模型的API接口發(fā)送到總線功能模型中的Cache上;
2)可擴展的拓?fù)浣Y(jié)構(gòu)
節(jié)點間通信通過域間互連網(wǎng)絡(luò),由網(wǎng)絡(luò)接口 NI進行報文傳輸,每個域包含兩個CPU,每個CPU掛接一個存儲器,倉Ij建基于4 Clumps可擴展的基本拓?fù)浣Y(jié)構(gòu),每個Clump域內(nèi)帶有4個節(jié)點的多節(jié)點多處理器系統(tǒng)拓?fù)浣Y(jié)構(gòu),根據(jù)系統(tǒng)規(guī)模對一致性空間、非一致性空間、IO空間的地址進行劃分設(shè)定,NC代理所有遠(yuǎn)端的地址空間,據(jù)系統(tǒng)地址映射方案,每一個ClumpNC節(jié)點的地址區(qū)域與其它NC節(jié)點的地址區(qū)域不重疊,因此輸入到NC的報文如果地址區(qū)域不在本Clump之內(nèi),則必然需要進行跨Clump的轉(zhuǎn)換操作;
3)節(jié)點仿真模型
NC是接受處理從Clump內(nèi)與Clump間的報文,并經(jīng)過相應(yīng)的記錄與處理后,向Clump內(nèi)與Clump間發(fā)出報文,NC實現(xiàn)了一個從配置文件中預(yù)讀取協(xié)議表具體操作的協(xié)議表模擬器,當(dāng)節(jié)點模擬器收到一條消息時,協(xié)議表模擬器即被激活,首先入口條件查詢器按照收到的消息和當(dāng)前系統(tǒng)的狀態(tài)進行查找,找到一個入口后轉(zhuǎn)到對應(yīng)的狀態(tài)轉(zhuǎn)換執(zhí)行器執(zhí)行相應(yīng)的狀態(tài)轉(zhuǎn)換代碼,如果無法找到對應(yīng)的入口,則報告模擬出錯并結(jié)束模擬;
4)協(xié)議表查詢與狀態(tài)轉(zhuǎn)換執(zhí)行,包括協(xié)議表模擬器和入口條件查詢器,其中:
協(xié)議表模擬器作為系統(tǒng)模擬器的核心,協(xié)議表模擬器是多層Cache —致性協(xié)議模型能夠正常工作的關(guān)鍵,協(xié)議表是被驗證的目標(biāo),在整個驗證過程中協(xié)議表可能被修改,因而要設(shè)置一個從配置文件中預(yù)讀取協(xié)議表具體操作的協(xié)議表模擬器,該模擬器包括兩個部分:入口條件查詢器和狀態(tài)轉(zhuǎn)換執(zhí)行器,當(dāng)節(jié)點模擬器收到一條消息時,協(xié)議表模擬器即被激活,首先入口條件查詢器按照收到的消息和當(dāng)前系統(tǒng)的狀態(tài)進行查找,找到一個入口后轉(zhuǎn)到對應(yīng)的狀態(tài)轉(zhuǎn)換執(zhí)行器執(zhí)行相應(yīng)的狀態(tài)轉(zhuǎn)換代碼,如果無法找到對應(yīng)的入口,則報告模擬出錯并結(jié)束模擬;
入口條件查詢器是執(zhí)行域間一致性的關(guān)鍵模塊,節(jié)點控制器收到的一致性報文均由這兩個模塊依據(jù)其協(xié)議表執(zhí)行轉(zhuǎn)換,A 口條件查詢器收到報文,根據(jù)自身狀態(tài)查詢協(xié)議表,更新本地狀態(tài)并發(fā)出新報文,入口條件查詢器中記錄有協(xié)議表若干項,同時記錄事件狀態(tài)的結(jié)構(gòu)有Trk (報文記錄存儲模塊)\Rdt (讀報文存儲模塊)\Wrt (寫報文存儲模塊)\Orb (發(fā)出報文存儲模塊)\Dir (目錄存儲模塊)等;首先定義系統(tǒng)狀態(tài)寄存器的編碼方法:由于每個狀態(tài)寄存器的取值位數(shù)是固定的,所以將所有狀態(tài)寄存器轉(zhuǎn)換為對應(yīng)的二進制數(shù)后,向左補齊最大位數(shù),將全部的補齊后二進制數(shù)串起來即獲得對應(yīng)的編碼值,如果在協(xié)議表中給出的取值為不確定,則在編碼時需將不確定值展開為所有取值,編碼后所有取值均指向同一個入口,在每種消息的配置文件中,首先根據(jù)入口條件值進行排序,每個條件對應(yīng)一個入口 ;
入口條件查詢器,采用分級設(shè)計,第一級針對收到的消息進行查詢,該部分使用Strategy設(shè)計模式進行設(shè)計,為每種消息實現(xiàn)了一個消息處理類,并繼承公共的消息處理類,當(dāng)北橋模擬器收到一條消息時,使用哈希查找表模式中的匹配方法對消息進行匹配,快速找到對應(yīng)的入口;
5)協(xié)議表執(zhí)行流程
協(xié)議表中所有可能進行的狀態(tài)轉(zhuǎn)換包括寄存器值的填寫和消息的發(fā)送兩類,寄存器的填寫使用通用的填寫函數(shù),將寄存器的值作為參數(shù)傳入;而消息的發(fā)送則根據(jù)發(fā)送消息的不同編寫不同消息發(fā)送函數(shù),并將各類要發(fā)送的消息函數(shù)編碼,將編碼與對應(yīng)的消息發(fā)送函數(shù)的函數(shù)指針綁定,這樣,在每個消息的操作配置文件中,每個入口有對應(yīng)寄存器值,和需要調(diào)用的消息發(fā)送函數(shù)編碼; 實際模擬器執(zhí)行過程中,當(dāng)入口條件查詢器查詢到對應(yīng)的入口時,將控制權(quán)轉(zhuǎn)交到狀態(tài)轉(zhuǎn)換執(zhí)行器,狀態(tài)轉(zhuǎn)換執(zhí)行器根據(jù)預(yù)先從配置文件中讀入的操作列表分別調(diào)用對應(yīng)的寄存器填寫函數(shù)和消息發(fā)送函數(shù)進行工作;
6)事務(wù)生成器
事務(wù)生成器的工作為隨機測試,隨機測試是保證測試覆蓋完整性的有效方式和過程,隨機測試主要是對協(xié)議的所有重要條目進行復(fù)測,也包括測試那些當(dāng)前的測試樣例沒有覆蓋到的部分,每個環(huán)節(jié)都有可供選擇的幾項內(nèi)容,通過大量的隨機環(huán)節(jié),產(chǎn)生出各個協(xié)議條目,通過隨機組合的方式來達(dá)到協(xié)議驗證的目的;
7)測試評價方法與提高覆蓋率方法
建模測試過程中,模擬驗證不斷被進行,如果發(fā)現(xiàn)有違背設(shè)計參考的驗證模擬結(jié)果出現(xiàn),則修改模擬實現(xiàn),并再次投入模擬;如果沒有違背設(shè)計參考的模擬出現(xiàn),則分析是否已經(jīng)達(dá)成了目標(biāo)覆蓋率,如果未達(dá)成,則修改測試激勵,并再次投入模擬;如果已經(jīng)達(dá)成目標(biāo)覆蓋率,則驗證工作完成,覆蓋率驅(qū)動驗證方法的核心技術(shù)是覆蓋率測度報告與測試激勵自動生成;
根據(jù)選擇的覆蓋率驅(qū)動的模擬驗證方法,建立如下模擬驗證流程模型:在驗證過程中,測試由若干模擬周期構(gòu)成,每個周期開始時,測試激勵自動發(fā)生器產(chǎn)生若干訪存事務(wù)并將其注入系統(tǒng)模擬器,系統(tǒng)模擬器通過模擬運行完成產(chǎn)生的訪存事務(wù),當(dāng)一次產(chǎn)生的訪存事務(wù)全部完成時,系統(tǒng)完成一個模擬周期,每個模擬周期結(jié)束后,系統(tǒng)統(tǒng)計協(xié)議表項覆蓋率情況,重置模擬器,并進入下一個模擬周期;
在模擬驗證過程中,顯然每個周期都會有若干個協(xié)議表項被覆蓋到,除去已經(jīng)在此前的模擬周期中覆蓋過的協(xié)議表項,新被覆蓋的協(xié)議表項即為增加的協(xié)議表覆蓋項,設(shè)第i個周期增加的協(xié)議表為K,則第i個周期的覆蓋率增長速率為Ki/N(N為協(xié)議表的總項數(shù)),設(shè)第t個周期覆蓋的協(xié)議表集合為{KJ,則T個周期后的覆蓋率為Card{KT = K1 U K2......Kt
}/N ;
考察一個模擬周期,測試激勵完全隨機產(chǎn)生,則對于協(xié)議表中的每一項,在任何一個周期中被覆蓋到的概率均相等,對于各協(xié)議表項,一個模擬周期看作一個單重貝努利實驗,如果在此周期內(nèi)模擬器的輸出覆蓋到了該協(xié)議表項,則認(rèn)為實驗成功,否則實驗失??;
協(xié)議表中有相當(dāng)多表項是專為解決小概率死鎖事件設(shè)計的,即協(xié)議表中各項在產(chǎn)生的概率是不相同的,當(dāng)模擬周期數(shù)增加時,每周期新被覆蓋的協(xié)議表項數(shù)必然是持續(xù)下降的,在長期運行過程中,有效測試激勵的產(chǎn)生必然會迅速下降并趨向于O ;
覆蓋率驅(qū)動的測試激勵自動產(chǎn)生器,通過上述分析可知,使用純粹的隨機測試激勵產(chǎn)生器,必然無法進行高效的驗證,要提高測試的效率,必須使每次產(chǎn)生的測試激勵具有針對性,使其能夠以較大概率使模擬器覆蓋到尚未被覆蓋到的協(xié)議表項,同時這也是對覆蓋率驅(qū)動驗證方法的必然要求,對此,兩種根據(jù)覆蓋率變化使用覆蓋率驅(qū)動的測試激勵自動產(chǎn)生器對測試激勵產(chǎn)生進行調(diào)整方法如下:
(O由于驗證目標(biāo)協(xié)議的復(fù)雜性,以及不保序網(wǎng)絡(luò)帶來的訪存事務(wù)完成過程的多變性,幾乎不可能分析特定輸入測試激勵和輸出覆蓋目標(biāo)之間的關(guān)系,在此中條件下,考慮引入一個測試激勵分類器,該分類器能給出概率性的輸入測試激勵和輸出覆蓋率間的關(guān)系,使用此分類器對隨機產(chǎn)生的測試激勵進行過濾,遴選出有大概率產(chǎn)生新的覆蓋目標(biāo)的測試激勵作為有效激勵送入模擬器中執(zhí)行,而將無效的測試激勵予以拋棄;
(2)通過分析協(xié)議表,協(xié)議表中有大量表項具有相似項,包括很多專為小概率事件設(shè)計的協(xié)議表項,因此在基于相關(guān)分析的方法在測試激勵的產(chǎn)生中引入偏置思想,在每個周期的模擬結(jié)束以后,對該周期的測試激勵施加偏置,將帶偏置的測試激勵再次送入模擬器中運行,以迅速覆蓋與上一個周期所產(chǎn)生的模擬驗證結(jié)果相似的協(xié)議表條目。本發(fā)明的方法具有以下突出的有益效果:國際上復(fù)雜的Cache Coherence計算機系統(tǒng)驗證普遍存在著驗證系統(tǒng)規(guī)模選擇和協(xié)議設(shè)計驗證難度極高的難題。本發(fā)明的目的是建立一種基于擴展型Cache Coherence協(xié)議的多級一致性協(xié)議轉(zhuǎn)換正確性的測試驗證模型。由于處理器所能支持的域內(nèi)處理器ID數(shù)量有限,導(dǎo)致多處理器系統(tǒng)所需節(jié)點控制器數(shù)目過大,造成節(jié)點間互連規(guī)模龐大、拓?fù)浣Y(jié)構(gòu)復(fù)雜。建立一種基于擴展型Cache Coherence協(xié)議的多級一致性協(xié)議,通過節(jié)點控制器查詢本地協(xié)議表轉(zhuǎn)換機制,轉(zhuǎn)換多級一致性域報文,可顯著擴展大規(guī)模共享內(nèi)存多處理器系統(tǒng),并能有效提升系統(tǒng)性能,降低系統(tǒng)拓?fù)鋸?fù)雜度。我們針對CC-NUMA系統(tǒng)中的多層Cache —致性協(xié)議,設(shè)計實現(xiàn)了一套完整的驗證方法。該方法使用覆蓋率驅(qū)動的驗證策略,驗證系統(tǒng)由一套基于偽隨機模擬驗證系統(tǒng),以及由覆蓋率驅(qū)動的測試激勵自動產(chǎn)生器組成。本發(fā)明的優(yōu)勢主要表現(xiàn)在:
1.模擬建模的方式實現(xiàn)大規(guī)?;跀U展型CacheCoherence協(xié)議的多級一致性計算機系統(tǒng)的協(xié)議設(shè)計驗證,在較短時間內(nèi)以極低的資金成本、人員成本完成大規(guī)模計算機系統(tǒng)關(guān)鍵協(xié)議的驗證;
2.能快速發(fā)現(xiàn)大規(guī)模計算機系統(tǒng)關(guān)鍵協(xié)議反例,由于建模的記錄完整性可進行故障追溯,從而指導(dǎo)關(guān)鍵協(xié)議的修訂;
3.構(gòu)建標(biāo)準(zhǔn)模型,指導(dǎo)大規(guī)?;跀U展型CacheCoherence協(xié)議的多級一致性計算機系統(tǒng)互聯(lián)芯片的構(gòu)建。保證了算機系統(tǒng)和其關(guān)鍵芯片組的驗證覆蓋率,同時也大大節(jié)約了項目設(shè)計驗證成本,保證開發(fā)周期。
圖1是帶節(jié)點控制器的多級一致性域系統(tǒng)拓?fù)浣Y(jié)構(gòu) 圖2是一致性協(xié)議模型模擬測試結(jié)構(gòu)示意 圖3是多節(jié)點多處理器系統(tǒng)互連網(wǎng)絡(luò)基本結(jié)構(gòu)示意 圖4是多節(jié)點多處理器系統(tǒng)拓?fù)浣Y(jié)構(gòu)示意圖 圖5是節(jié)點仿真模型關(guān)鍵結(jié)構(gòu)圖 圖6是模擬器執(zhí)行過程圖 圖7是食物生成器執(zhí)行過程 圖8是覆蓋率為驅(qū)動的雙環(huán)路驗證工作流程 圖9是多級一致性域仿真與驗證曲線圖。
具體實施例方式下面結(jié)合附圖對本發(fā)明的方法作進一步詳細(xì)說明。I)多層Cache —致性協(xié)議模型模擬測試結(jié)構(gòu) 本系統(tǒng)使用SystemC語言設(shè)計并實現(xiàn)了全系統(tǒng)模擬器,實現(xiàn)模擬并行化方法,模型驗證通過在SystemC環(huán)境下構(gòu)建偽隨機的軟件模擬驗證系統(tǒng)進行,其結(jié)構(gòu)如圖2所示;
驗證系統(tǒng)主要包括以下部分:
(O總線功能模型:是一個時鐘精確的功能模型,模擬實現(xiàn)了處理器中Cache、存控、以及處理器內(nèi)部和處理器間的互連網(wǎng)絡(luò);提供了對訪存行為的事務(wù)級模擬支持;支持自定義系統(tǒng)拓?fù)浣Y(jié)構(gòu);提供外部API接口,可與外部模塊進行消息交互;運行中按照處理器直聯(lián)Cache 一致性協(xié)議模擬并提供系統(tǒng)中各訪存事務(wù)、Cache、存控的實時行為和狀態(tài);
(2)Reference Model (協(xié)議參考模型):與總線功能模型緊密集成,對模擬系統(tǒng)中的系統(tǒng)狀態(tài)和消息流進行實時檢查,用于發(fā)現(xiàn)模擬過程中系統(tǒng)偏離協(xié)議的行為;
(3)NodeController (節(jié)點控制器模擬器):通過總線功能模型的API接口掛接在其上,模擬實現(xiàn)了節(jié)點控制器(NC)自有的Cache—致性協(xié)議;以處理器直聯(lián)Cache —致性協(xié)議消息與處理器進行通信,并以自有的Cache —致性協(xié)議消息通過網(wǎng)絡(luò)模擬器在各NC模擬器間進行通信;
(4)Network Simulator (網(wǎng)絡(luò)模擬器):模擬了一個簡單的不保序全交換網(wǎng)絡(luò),通過此網(wǎng)絡(luò)進行擴展Cache —致性協(xié)議的消息通信;
(5)Global Checker (全局檢查器):運行在整個系統(tǒng)之上,通過總線功能模型的API檢查全局的數(shù)據(jù)Cache —致性;
(6)Random/ForceTest Stimulation Generator (隨機/定點測試激勵自動發(fā)生器):通過總線功能模型的API接口掛接,在模擬過程中持續(xù)產(chǎn)生隨機/定點的訪存事務(wù),并通過總線功能模型的API接口發(fā)送到總線功能模型中的Cache上;
2)可擴展的拓?fù)浣Y(jié)構(gòu)
本設(shè)計中多節(jié)點多處理器系統(tǒng)互連網(wǎng)絡(luò)基本結(jié)構(gòu)如圖3,節(jié)點間通信通過域間互連網(wǎng)絡(luò),由NI (NetWork Interface,網(wǎng)絡(luò)接口)進行報文傳輸。每個Domain (域)包含兩個CPU (圖3標(biāo)為P ),每個CPU掛接一個MEM (Memory,主存)存儲空間。創(chuàng)建基于4 Clumps可擴展的基本拓?fù)浣Y(jié)構(gòu),每個Clump域內(nèi)帶有4個Nodes的多節(jié)點多處理器系統(tǒng)拓?fù)浣Y(jié)構(gòu)示意如圖1所示。根據(jù)系統(tǒng)規(guī)模對一致性空間、非一致性空間、IO空間的地址進行劃分設(shè)定。NC代理所有遠(yuǎn)端的地址空間,據(jù)系統(tǒng)地址映射方案,如圖4,每一個Clump NC節(jié)點的地址區(qū)域與其它NC節(jié)點的地址區(qū)域不重疊,因此輸入到NC的報文如果地址區(qū)域不在本Clump之內(nèi),則必然需要進行跨Clump的轉(zhuǎn)換操作;
3)節(jié)點仿真模型
NC是接受處理從Clump內(nèi)與Clump間的報文,并經(jīng)過相應(yīng)的記錄與處理后,向Clump內(nèi)與Clump間發(fā)出報文。NC實現(xiàn)了一個可以從配置文件中預(yù)讀取協(xié)議表具體操作的協(xié)議表模擬器。當(dāng)節(jié)點模擬器收到一條消息時,協(xié)議表模擬器即被激活,首先入口條件查詢器按照收到的消息和當(dāng)前系統(tǒng)的狀態(tài)進行查找,找到一個入口后轉(zhuǎn)到對應(yīng)的狀態(tài)轉(zhuǎn)換執(zhí)行器執(zhí)行相應(yīng)的狀態(tài)轉(zhuǎn)換代碼,如果無法找到對應(yīng)的入口,則報告模擬出錯并結(jié)束模擬,如圖5為節(jié)點仿真模型關(guān)鍵結(jié)構(gòu);
4)協(xié)議表入口查詢
Protocol Engine是執(zhí)行域間一致性的關(guān)鍵模塊。節(jié)點控制器收到的一致性報文均由這兩個模塊依據(jù)其協(xié)議表執(zhí)行轉(zhuǎn)換。Protocol Engine模塊收到報文,根據(jù)自身狀態(tài)查詢協(xié)議表,更新本地狀態(tài)并發(fā)出新報文。Protocol Engine中記錄有協(xié)議表若干項,同時記錄事件狀態(tài)的結(jié)構(gòu)有Trk (報文記錄存儲模塊)\Rdt (讀報文存儲模塊)\ffrt (寫報文存儲模塊)\0rb (發(fā)出報文存儲模塊)\Dir (目錄存儲模塊)等,實現(xiàn)狀態(tài)結(jié)構(gòu)存儲與查詢;
舉例而言,協(xié)議表如下表所示:
權(quán)利要求
1.一種基于擴展型Cache Coherence協(xié)議的多級一致性域仿真驗證和測試方法,其特征在于,包括:多層Cache —致性協(xié)議模型模擬測試結(jié)構(gòu);可擴展的拓?fù)浣Y(jié)構(gòu);節(jié)點仿真模型;協(xié)議表查詢與狀態(tài)轉(zhuǎn)換執(zhí)行方法;協(xié)議表執(zhí)行流程;事務(wù)生成器;測試評價方法和提高覆蓋率方法,使用覆蓋率驅(qū)動的驗證策略構(gòu)建一套基于偽隨機模擬驗證系統(tǒng),以及由覆蓋率驅(qū)動的測試激勵自動產(chǎn)生器組成的模擬驗證系統(tǒng),其中: 為實現(xiàn)大規(guī)模的CC-NUMA多處理器系統(tǒng),需借助節(jié)點控制器NC擴大一致性域空間,節(jié)點控制器具有維護全局Cache —致性和擴展系統(tǒng)規(guī)模兩種功能:首先,每個節(jié)點控制器連接I至4顆處理器,組成一個節(jié)點和第一級Cache —致性域,域內(nèi)一致性由處理器和節(jié)點控制器共同維護;其次,節(jié)點控制器直接互連或通過節(jié)點路由器連接以組成大規(guī)模CC-NUMA系統(tǒng);節(jié)點間的第二級Cache —致性由節(jié)點控制器維護,這樣構(gòu)成的大規(guī)模的CC-NUMA系統(tǒng)需要在處理器直聯(lián)Cache —致性協(xié)議基礎(chǔ)上擴展建立多層次的協(xié)議,并維護全局一致性,為了構(gòu)建一種基于擴展型Cache Coherence協(xié)議的多級一致性域CC-NUMA系統(tǒng)協(xié)議的仿真模型,需構(gòu)建系 統(tǒng)關(guān)鍵節(jié)點內(nèi)協(xié)議表查詢和狀態(tài)轉(zhuǎn)換執(zhí)行機制,確保多一致性域內(nèi)與域間之間傳輸?shù)臏?zhǔn)確性、穩(wěn)定性;提出一種可信的協(xié)議入口轉(zhuǎn)換覆蓋率評價驅(qū)動驗證方法,通過加載經(jīng)優(yōu)化的事務(wù)發(fā)生器推動模型進行事務(wù)處理,在運行結(jié)束時獲得覆蓋率指標(biāo),較之隨機事務(wù)推進機制提高驗證效率,通過構(gòu)建一個多處理器驗證系統(tǒng)模型并開展相關(guān)仿真驗證,進一步確認(rèn)該方法的適用性和有效性; I)多層Cache —致性協(xié)議模型模擬測試結(jié)構(gòu) 使用SystemC語言設(shè)計一種基于擴展型Cache Coherence協(xié)議的多級一致性域模型的系統(tǒng)模擬器和與系統(tǒng)模擬器并行執(zhí)行的模型驗證系統(tǒng),模型驗證系統(tǒng)通過構(gòu)建偽隨機事務(wù)發(fā)生器進行測試,通過全局檢查器進行系統(tǒng)正確性判斷;模型驗證系統(tǒng)包括:總線功能模型、協(xié)議參考模型、節(jié)點控制器模擬器、網(wǎng)絡(luò)模擬器、全局檢查器、協(xié)議入口查詢機制,其中: (1)總線功能模型:是一個時鐘精確的功能模型,模擬實現(xiàn)了處理器中Cache、存控、以及處理器內(nèi)部和處理器間的互連網(wǎng)絡(luò),提供了對訪存行為的事務(wù)級模擬支持,支持自定義系統(tǒng)拓?fù)浣Y(jié)構(gòu),提供外部API接口,可與外部模塊進行消息交互,運行中按照處理器直聯(lián)Cache 一致性協(xié)議模擬并提供系統(tǒng)中各訪存事務(wù)、Cache、存控的實時行為和狀態(tài); (2)協(xié)議參考模型:與總線功能模型緊密集成,對模擬系統(tǒng)中的系統(tǒng)狀態(tài)和消息流進行實時檢查,用于發(fā)現(xiàn)模擬過程中系統(tǒng)偏離協(xié)議的行為; (3)節(jié)點控制器模擬器:通過總線功能模型的API接口掛接在其上,模擬實現(xiàn)了節(jié)點控制器NC自有的Cache—致性協(xié)議;以處理器直聯(lián)Cache—致性協(xié)議消息與處理器進行通信,并以自有的Cache —致性協(xié)議消息通過網(wǎng)絡(luò)模擬器在各NC模擬器間進行通信; (4)網(wǎng)絡(luò)模擬器:模擬了一個簡單的不保序全交換網(wǎng)絡(luò),通過此網(wǎng)絡(luò)進行擴展Cache一致性協(xié)議的消息通信; (5)全局檢查器:運行在整個系統(tǒng)之上,通過總線功能模型的API檢查全局的數(shù)據(jù)Cache 一致性; (6)隨機/定點測試激勵自動發(fā)生器:通過總線功能模型的API接口掛接,在模擬過程中持續(xù)產(chǎn)生隨機/定點的訪存事務(wù),并通過總線功能模型的API接口發(fā)送到總線功能模型中的Cache上;2)可擴展的拓?fù)浣Y(jié)構(gòu) 節(jié)點間通信通過域間互連網(wǎng)絡(luò),由網(wǎng)絡(luò)接口 NI進行報文傳輸,每個域包含兩個CPU,每個CPU掛接一個存儲器,倉Ij建基于4 Clumps可擴展的基本拓?fù)浣Y(jié)構(gòu),每個Clump域內(nèi)帶有4個節(jié)點的多節(jié)點多處理器系統(tǒng)拓?fù)浣Y(jié)構(gòu),根據(jù)系統(tǒng)規(guī)模對一致性空間、非一致性空間、IO空間的地址進行劃分設(shè)定,NC代理所有遠(yuǎn)端的地址空間,據(jù)系統(tǒng)地址映射方案,每一個ClumpNC節(jié)點的地址區(qū)域與其它NC節(jié)點的地址區(qū)域不重疊,因此輸入到NC的報文如果地址區(qū)域不在本Clump之內(nèi),則必然需要進行跨Clump的轉(zhuǎn)換操作; 3)節(jié)點仿真模型 NC是接受處理從Clump內(nèi) 與Clump間的報文,并經(jīng)過相應(yīng)的記錄與處理后,向Clump內(nèi)與Clump間發(fā)出報文,NC實現(xiàn)了一個從配置文件中預(yù)讀取協(xié)議表具體操作的協(xié)議表模擬器,當(dāng)節(jié)點模擬器收到一條消息時,協(xié)議表模擬器即被激活,首先入口條件查詢器按照收到的消息和當(dāng)前系統(tǒng)的狀態(tài)進行查找,找到一個入口后轉(zhuǎn)到對應(yīng)的狀態(tài)轉(zhuǎn)換執(zhí)行器執(zhí)行相應(yīng)的狀態(tài)轉(zhuǎn)換代碼,如果無法找到對應(yīng)的入口,則報告模擬出錯并結(jié)束模擬; 4)協(xié)議表查詢與狀態(tài)轉(zhuǎn)換執(zhí)行方法,包括協(xié)議表模擬器和入口條件查詢器,其中: 協(xié)議表模擬器作為系統(tǒng)模擬器的核心,協(xié)議表模擬器是多層Cache —致性協(xié)議模型能夠正常工作的關(guān)鍵,協(xié)議表是被驗證的目標(biāo),在整個驗證過程中協(xié)議表可能被修改,因而要設(shè)置一個從配置文件中預(yù)讀取協(xié)議表具體操作的協(xié)議表模擬器,該模擬器包括兩個部分:入口條件查詢器和狀態(tài)轉(zhuǎn)換執(zhí)行器,當(dāng)節(jié)點模擬器收到一條消息時,協(xié)議表模擬器即被激活,首先入口條件查詢器按照收到的消息和當(dāng)前系統(tǒng)的狀態(tài)進行查找,找到一個入口后轉(zhuǎn)到對應(yīng)的狀態(tài)轉(zhuǎn)換執(zhí)行器執(zhí)行相應(yīng)的狀態(tài)轉(zhuǎn)換代碼,如果無法找到對應(yīng)的入口,則報告模擬出錯并結(jié)束模擬; 入口條件查詢器是執(zhí)行域間一致性的關(guān)鍵模塊,節(jié)點控制器收到的一致性報文均由這兩個模塊依據(jù)其協(xié)議表執(zhí)行轉(zhuǎn)換,入口條件查詢器收到報文,根據(jù)自身狀態(tài)查詢協(xié)議表,更新本地狀態(tài)并發(fā)出新報文,入口條件查詢器中記錄有協(xié)議表若干項,同時記錄事件狀態(tài)的結(jié)構(gòu)有Trk\Rdt\Wrt\Orb\Dir,實現(xiàn)狀態(tài)結(jié)構(gòu)存儲與查詢; 首先定義系統(tǒng)狀態(tài)寄存器的編碼方法:由于每個狀態(tài)寄存器的取值位數(shù)是固定的,所以將所有狀態(tài)寄存器轉(zhuǎn)換為對應(yīng)的二進制數(shù)后,向左補齊最大位數(shù),將全部的補齊后二進制數(shù)串起來即獲得對應(yīng)的編碼值,如果在協(xié)議表中給出的取值為不確定,則在編碼時需將不確定值展開為所有取值,編碼后所有取值均指向同一個入口,在每種消息的配置文件中,首先根據(jù)入口條件值進行排序,每個條件對應(yīng)一個入口 ; 入口條件查詢器,采用分級設(shè)計,第一級針對收到的消息進行查詢,該部分使用Strategy設(shè)計模式進行設(shè)計,為每種消息實現(xiàn)了一個消息處理類,并繼承公共的消息處理類,當(dāng)北橋模擬器收到一條消息時,使用哈希查找表模式中的匹配方法對消息進行匹配快速找到對應(yīng)的入口 ; 5)協(xié)議表執(zhí)行流程 協(xié)議表中所有可能進行的狀態(tài)轉(zhuǎn)換包括寄存器值的填寫和消息的發(fā)送兩類,寄存器的填寫使用通用的填寫函數(shù),將寄存器的值作為參數(shù)傳入;而消息的發(fā)送則根據(jù)發(fā)送消息的不同編寫不同消息發(fā)送函數(shù),并將各類要發(fā)送的消息函數(shù)編碼,將編碼與對應(yīng)的消息發(fā)送函數(shù)的函數(shù)指針綁定,這樣,在每個消息的操作配置文件中,每個入口有對應(yīng)寄存器值,和需要調(diào)用的消息發(fā)送函數(shù)編碼; 實際模擬器執(zhí)行過程中,當(dāng)入口條件查詢器查詢到對應(yīng)的入口時,將控制權(quán)轉(zhuǎn)交到狀態(tài)轉(zhuǎn)換執(zhí)行器,狀態(tài)轉(zhuǎn)換執(zhí)行器根據(jù)預(yù)先從配置文件中讀入的操作列表分別調(diào)用對應(yīng)的寄存器填寫函數(shù)和消息發(fā)送函數(shù)進行工作; 6)事務(wù)生成器 事務(wù)生成器的工作為隨機測試,隨機測試是保證測試覆蓋完整性的有效方式和過程,隨機測試主要是對協(xié)議的所有重要條目進行復(fù)測,也包括測試那些當(dāng)前的測試樣例沒有覆蓋到的部分,每個環(huán)節(jié)都有可供選擇的幾項內(nèi)容,通過大量的隨機環(huán)節(jié),產(chǎn)生出各個協(xié)議條目,通過隨機組合的方式來達(dá)到協(xié)議驗證的目的; 7)測試評價方法與提高覆蓋率方法 建模測試過程中,模擬驗證不斷被進行,如果發(fā)現(xiàn)有違背設(shè)計參考的驗證模擬結(jié)果出現(xiàn),則修改模擬實現(xiàn),并再次投入模擬;如果沒有違背設(shè)計參考的模擬出現(xiàn),則分析是否已經(jīng)達(dá)成了目標(biāo)覆蓋率,如果未達(dá)成,則修改測試激勵,并再次投入模擬;如果已經(jīng)達(dá)成目標(biāo)覆蓋率,則驗證工作完成,覆蓋率驅(qū)動驗證方法的核心技術(shù)是覆蓋率測度報告與測試激勵自動生成; 根據(jù)選擇的覆蓋率驅(qū)動的模擬驗證方法,建立如下模擬驗證流程模型:在驗證過程中,測試由若干模擬周期構(gòu)成,每個周期開始時,測試激勵自動發(fā)生器產(chǎn)生若干訪存事務(wù)并將其注入系統(tǒng)模擬器,系統(tǒng)模擬器通過模擬運行完成產(chǎn)生的訪存事務(wù),當(dāng)一次產(chǎn)生的訪存事務(wù)全部完成時,系統(tǒng)完成一個模擬周期,每個模擬周期結(jié)束后,系統(tǒng)統(tǒng)計協(xié)議表項覆蓋率情況,重置模擬器,并進入下一個模擬周期; 在模擬驗證過程中,顯然每個周期都會有若干個協(xié)議表項被覆蓋到,除去已經(jīng)在此前的模擬周期中覆蓋過的 協(xié)議表項,新被覆蓋的協(xié)議表項即為增加的協(xié)議表覆蓋項,設(shè)第i個周期增加的協(xié)議表為K,則第i個周期的覆蓋率增長速率為Ki/N(N為協(xié)議表的總項數(shù)),設(shè)第t個周期覆蓋的協(xié)議表集合為{KJ,則T個周期后的覆蓋率為Card{Kt = K1 U K2......Kt}/N ; 考察一個模擬周期,測試激勵完全隨機產(chǎn)生,則對于協(xié)議表中的每一項,在任何一個周期中被覆蓋到的概率均相等,對于各協(xié)議表項,一個模擬周期看作一個單重貝努利實驗,如果在此周期內(nèi)模擬器的輸出覆蓋到了該協(xié)議表項,則認(rèn)為實驗成功,否則實驗失??; 協(xié)議表中有相當(dāng)多表項是專為解決小概率死鎖事件設(shè)計的,即協(xié)議表中各項在產(chǎn)生的概率是不相同的,當(dāng)模擬周期數(shù)增加時,每周期新被覆蓋的協(xié)議表項數(shù)必然是持續(xù)下降的,在長期運行過程中,有效測試激勵的產(chǎn)生必然會迅速下降并趨向于O ; 覆蓋率驅(qū)動的測試激勵自動產(chǎn)生器,通過上述分析可知,使用純粹的隨機測試激勵產(chǎn)生器,必然無法進行高效的驗證,要提高測試的效率,必須使每次產(chǎn)生的測試激勵具有針對性,使其能夠以較大概率使模擬器覆蓋到尚未被覆蓋到的協(xié)議表項,同時這也是對覆蓋率驅(qū)動驗證方法的必然要求,對此,兩種根據(jù)覆蓋率變化使用覆蓋率驅(qū)動的測試激勵自動產(chǎn)生器對測試激勵產(chǎn)生進行調(diào)整方法如下: (I)由于驗證目標(biāo)協(xié)議的復(fù)雜性,以及不保序網(wǎng)絡(luò)帶來的訪存事務(wù)完成過程的多變性,幾乎不可能分析特定輸入測試激勵和輸出覆蓋目標(biāo)之間的關(guān)系,在此中條件下,考慮引入一個測試激勵分類器,該分類器能給出概率性的輸入測試激勵和輸出覆蓋率間的關(guān)系,使用此分類器對隨機產(chǎn)生的測試激勵進行過濾,遴選出有大概率產(chǎn)生新的覆蓋目標(biāo)的測試激勵作為有效激勵送入模擬器中執(zhí)行,而將無效的測試激勵予以拋棄; (2)通過分析協(xié)議表,協(xié)議表中有大量表項具有相似項,包括很多專為小概率事件設(shè)計的協(xié)議表項,因此在基于相關(guān)分析的方法在測試激勵的產(chǎn)生中引入偏置思想,在每個周期的模擬結(jié)束以后,對該周期的測試激勵施加偏置,將帶偏置的測試激勵再次送入模擬器中運行,以迅速覆蓋與上一個周期所產(chǎn)生的模擬驗證結(jié)果相似的協(xié)議表條目。
全文摘要
本發(fā)明提出了一種基于擴展型Cache Coherence協(xié)議的多級一致性域仿真驗證和測試方法。構(gòu)建了一種基于擴展型Cache Coherence協(xié)議的多級一致性域CC-NUMA系統(tǒng)協(xié)議的仿真模型,發(fā)明系統(tǒng)關(guān)鍵節(jié)點內(nèi)協(xié)議表查詢與狀態(tài)轉(zhuǎn)換執(zhí)行機制,確保單計算域內(nèi)維護Cache Coherence協(xié)議并且多個計算域之間也同時維護Cache Coherence協(xié)議,域內(nèi)與域間的傳輸確保準(zhǔn)確性、穩(wěn)定性;提出一種可信的協(xié)議入口轉(zhuǎn)換覆蓋率評價驅(qū)動驗證方法,通過加載經(jīng)優(yōu)化的事務(wù)發(fā)生器推動模型進行事務(wù)處理,在運行結(jié)束時獲得覆蓋率指標(biāo),較之隨機事務(wù)推進機制提高驗證效率。通過構(gòu)建一個多處理器多一致性域驗證系統(tǒng)模型并開展相關(guān)仿真驗證,進一步確認(rèn)該方法的適用性和有效性。
文檔編號G06F12/08GK103150264SQ20131001812
公開日2013年6月12日 申請日期2013年1月18日 優(yōu)先權(quán)日2013年1月18日
發(fā)明者王恩東, 胡雷鈞, 陳繼承, 張峰, 周恒釗, 符云越, 甘小偉 申請人:浪潮電子信息產(chǎn)業(yè)股份有限公司