999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于動態(tài)偽隨機(jī)技術(shù)的微處理器驗(yàn)證

2008-01-01 00:00:00吳列治張盛兵沈緒榜

摘要:通過分析現(xiàn)有微處理器驗(yàn)證方案的不足,提出了一種以功能覆蓋率為參考條件的動態(tài)偽隨機(jī)驗(yàn)證方法。實(shí)驗(yàn)結(jié)果表明,與傳統(tǒng)驗(yàn)證手段相比,該方法在仿真時間相同的情況下,條件覆蓋率平均提高了13%;在測試指令數(shù)目相同的情況下,條件覆蓋率平均提高了20%。

關(guān)鍵詞:微處理器; 動態(tài)偽隨機(jī); 驗(yàn)證; 功能覆蓋率

中圖分類號:TP303文獻(xiàn)標(biāo)志碼:A

文章編號:1001-3695(2008)06-1704-03

在微處理器設(shè)計(jì)領(lǐng)域,驗(yàn)證已經(jīng)成為整個設(shè)計(jì)流程的瓶頸。目前已經(jīng)提出多種基于偽隨機(jī)技術(shù)產(chǎn)生測試程序的方案[1~3],這些指令生成器根據(jù)用戶輸入自動產(chǎn)生測試程序。但是驗(yàn)證過程需要人工干預(yù)并具有很強(qiáng)的人為因素,使得邊界情況的驗(yàn)證不夠充分。

針對這些產(chǎn)生器的不足,本文提出了一種動態(tài)的偽隨機(jī)指令產(chǎn)生器,利用現(xiàn)有的EDA工具在仿真過程中不斷收集微處理器的運(yùn)行狀態(tài)、統(tǒng)計(jì)功能覆蓋率,并實(shí)時地調(diào)整指令生成模型,產(chǎn)生對當(dāng)前微處理器運(yùn)行狀態(tài)有針對性的測試指令序列,從而在短時間內(nèi)獲得較高的覆蓋率,提高驗(yàn)證效率。

1微處理器的驗(yàn)證方法

目前有很多種不同的方法驗(yàn)證微處理器,仿真和形式化驗(yàn)證是較為常用的兩種手段。但是隨著電路拓?fù)浣Y(jié)構(gòu)以及控制狀態(tài)機(jī)復(fù)雜度的急劇增加,使得形式化驗(yàn)證的作用很有限。對于復(fù)雜度很高的微處理器設(shè)計(jì)來說,仿真仍然是最主要的驗(yàn)證手段,而仿真需要大量的測試程序。目前,生成測試程序主要有手工編寫測試程序和隨機(jī)生成測試程序。這兩種方法均存在著一定的缺陷。手工編寫測試程序雖然有著較強(qiáng)的針對性,但需要大量的時間和人員投入,且不能夠保證驗(yàn)證的充分性;隨機(jī)指令產(chǎn)生器生成的測試程序雖然很多,但是并不能獲得理想的效果。因?yàn)椴荒芸焖俚仳?yàn)證到設(shè)計(jì)中的邊界情況,所以在覆蓋率(如代碼覆蓋率,功能覆蓋率)滿足之前需要仿真大量的測試程序,且這些程序?qū)ξ⑻幚砥鞯尿?yàn)證可能有較多重疊,使仿真時間急劇增加。

2動態(tài)偽隨機(jī)技術(shù)的驗(yàn)證方法

無論采用現(xiàn)有的哪種方法產(chǎn)生測試程序,為了驗(yàn)證到設(shè)計(jì)中大部分的邊界情況,付出的時間代價都是巨大的[4]。造成偽隨機(jī)指令產(chǎn)生器產(chǎn)生的測試程序質(zhì)量不高的根本原因在于偽隨機(jī)指令生成器是靜態(tài)的,在生成測試程序時生成器沒有考慮微處理器的實(shí)時運(yùn)行狀態(tài),所以生成的指令流針對性不強(qiáng),不能實(shí)時地調(diào)整指令流以側(cè)重于當(dāng)前驗(yàn)證最不充分的功能模塊。基于此,本文提出了改進(jìn)的動態(tài)偽隨機(jī)指令產(chǎn)生器,與偽隨機(jī)指令產(chǎn)生器相比有如下優(yōu)點(diǎn):a)動態(tài)可調(diào)整的偽隨機(jī)指令產(chǎn)生模型;b)驗(yàn)證過程中能夠利用功能覆蓋率報(bào)告;c)實(shí)時評估偽隨機(jī)指令流的質(zhì)量。

2.1整體結(jié)構(gòu)

覆蓋率(代碼覆蓋率、功能覆蓋率等)是衡量驗(yàn)證是否充分的重要指標(biāo)[5],也被用于評估隨機(jī)指令流的質(zhì)量。在動態(tài)偽隨機(jī)指令生成器中,利用功能覆蓋率作為參考條件動態(tài)地約束指令生成器。指令生成器根據(jù)當(dāng)前功能覆蓋率報(bào)告實(shí)時地產(chǎn)生約束,調(diào)整指令生成策略,從而調(diào)整產(chǎn)生的指令序列。

如圖1所示,與一般的微處理器驗(yàn)證流程相比,基于動態(tài)偽隨機(jī)指令產(chǎn)生器的驗(yàn)證方案是以驗(yàn)證和指令序列產(chǎn)生并行的方式進(jìn)行的。在仿真過程中,功能覆蓋率分析器分析當(dāng)前微處理器功能覆蓋率的情況,實(shí)時地產(chǎn)生約束、動態(tài)地調(diào)整偽隨機(jī)指令生成器的指令產(chǎn)生模型。通過實(shí)時地調(diào)整指令流,能夠避免多個單測試程序?qū)ξ⑻幚砥鞯尿?yàn)證存在重疊的問題。內(nèi)部狀態(tài)記錄器實(shí)時地記錄微處理器運(yùn)行時的內(nèi)部狀態(tài)。當(dāng)行為級模型和RTL設(shè)計(jì)的執(zhí)行結(jié)果不匹配時,仿真停止,設(shè)計(jì)人員通過記錄下來的內(nèi)部狀態(tài)進(jìn)行調(diào)試,追蹤設(shè)計(jì)錯誤。

2.2關(guān)鍵技術(shù)

為了讓動態(tài)偽隨機(jī)指令生成器能夠達(dá)到更好的效果,需要驗(yàn)證人員盡量利用對設(shè)計(jì)微體系結(jié)構(gòu)的了解來動態(tài)調(diào)整指令生成器,所以動態(tài)偽隨機(jī)指令生成器與設(shè)計(jì)有著較高的耦合性。在對微處理器進(jìn)行驗(yàn)證之前定義一個較為完備的功能描述是非常重要的。功能描述來源于體系結(jié)構(gòu)的說明或微體系結(jié)構(gòu)和設(shè)計(jì)的細(xì)節(jié)。定義了較為完備的功能描述之后,通過仿真收集微處理器內(nèi)部信號的變化來探測微處理器是否完成了既定功能,統(tǒng)計(jì)出微處理器在運(yùn)行時的功能覆蓋率,分析功能覆蓋率報(bào)告,調(diào)整對偽隨機(jī)指令生成器的約束。

為了提高驗(yàn)證效率,指令產(chǎn)生器必須產(chǎn)生高質(zhì)量的指令序列,而且應(yīng)該在生成指令的過程中對某些指令序列有所側(cè)重,使在正常程序運(yùn)行過程中很難出現(xiàn)的事件在隨機(jī)指令序列中大量地并發(fā)出現(xiàn)。在不同的體系結(jié)構(gòu)中,編程模型會對指令之間的關(guān)系有不同的限制,以PowerPC體系結(jié)構(gòu)為例,如要求lwarx/stwcx這兩條指令成對地出現(xiàn)。

為了滿足上述限制,將指令序列分為兩類:a)原子序列;體系結(jié)構(gòu)中規(guī)定的指令都是原子序列。另外,類似更改cache內(nèi)容的特定指令序列也被認(rèn)為是原子序列。b)非原子序列。這種序列由原子序列構(gòu)成,也可以由非原子序列構(gòu)成。

如圖2所示,非原子序列有兩種基本構(gòu)成方式。方式一是順序關(guān)系,即非原子序列A由非原子序列B和原子序列C及非原子序列D構(gòu)成。方式二是或關(guān)系,即非原子序列A或者由非原子序列B構(gòu)成,或者由原子序列C構(gòu)成,或者由非原子序列D構(gòu)成,具體可能性的大小由各自的權(quán)重決定。通過這兩種基本關(guān)系,使用原子序列構(gòu)成不同的非原子序列,且定義非原子序列之間的關(guān)系,便可以精確地控制隨機(jī)產(chǎn)生的指令。

隨機(jī)生成指令的約束主要來自兩個方面:a)對原子序列源操作數(shù)、目的操作數(shù)和立即數(shù)的約束;b)對非原子序列的子序列的權(quán)重約束。比如,可以通過約束原子序列的源操作數(shù)、目的操作數(shù),加大指令之間的相關(guān)性,也可以通過調(diào)整子序列的權(quán)重來增加對某部分功能的驗(yàn)證力度。

3動態(tài)偽隨機(jī)技術(shù)的實(shí)現(xiàn)

3.1“龍騰R2”動態(tài)偽隨機(jī)驗(yàn)證的實(shí)現(xiàn)方案

“龍騰R2”微處理器是西北工業(yè)大學(xué)自主設(shè)計(jì)的與PowerPC 750指令集兼容的32位高性能RISC處理器,主頻為233 MHz。“龍騰R2”微處理器采用指令預(yù)取(IF)、指令譯碼(ID)、取數(shù)(RD)、執(zhí)行(EX)、數(shù)據(jù)獲取及中斷處理(TE)、結(jié)果寫回(WB)六級流水。IEU是“龍騰R2”微處理器的定點(diǎn)運(yùn)算部件,負(fù)責(zé)指令的運(yùn)行、流水線的控制、精確異常的處理。IEU模塊是整個“龍騰R2”微處理器的核心部件[6],對IEU的驗(yàn)證覆蓋率在一定程度上代表了整個“龍騰R2”微處理器的驗(yàn)證覆蓋率。筆者使用Synopsys的Vera驗(yàn)證語言實(shí)現(xiàn)了對“龍騰R2”微處理器IEU模塊的動態(tài)偽隨機(jī)驗(yàn)證方案。

3.1.1參考模型的建立

利用驗(yàn)證語言Vera可以根據(jù)PowerPC體系結(jié)構(gòu)的定義快速開發(fā)出“龍騰R2”的行為級模型。為了能夠在仿真過程中同步比較行為級模型和RTL設(shè)計(jì)之間的運(yùn)行結(jié)果,設(shè)計(jì)的“龍騰R2”行為級模型執(zhí)行任何一條指令都在一個時鐘周期之內(nèi)完成。這樣能夠保證行為級模型總比RTL級設(shè)計(jì)的指令執(zhí)行要快,比較結(jié)果時RTL級設(shè)計(jì)的流水線不被阻塞,達(dá)到充分驗(yàn)證的目的。

如圖3所示,原子操作是一系列由CPU REG類和CPU RAM方法組成的操作,來源于PowerPC體系結(jié)構(gòu)的定義。該模型的執(zhí)行總共分為取指、譯碼、執(zhí)行三個過程。根據(jù)來自整體驗(yàn)證環(huán)境的控制條件,取指模塊決定當(dāng)前是否取指,如果要取指,給出取指的地址。取到指令之后開始譯碼,譯碼得到的信息送給執(zhí)行單元,執(zhí)行單元根據(jù)這些信息將指令的執(zhí)行動作分解為多條原子操作的組合。CPU REG類包括PowerPC體系結(jié)構(gòu)所規(guī)定的所有通用和特殊寄存器,并提供了對這些寄存器進(jìn)行操作的方法;CPU RAM類主要提供對IRAM類和DRAM類進(jìn)行讀寫操作的方法。

3.1.2功能定義

對“龍騰R2”微處理器功能的定義至關(guān)重要。只有功能定義完備,才能進(jìn)行功能覆蓋率的統(tǒng)計(jì),對功能覆蓋率的分析是約束和控制隨機(jī)指令生成器的重要參考因素。根據(jù)“龍騰R2”微體系結(jié)構(gòu)和IEU模塊設(shè)計(jì)的特點(diǎn),將功能定義主要集中在以下幾個方面:

a)流水線的功能定義。流水線的控制是IEU模塊最為重要的功能。流水線的引進(jìn)使得設(shè)計(jì)在性能上有較大程度的提升,但是因?yàn)榭刂频膹?fù)雜性會使得驗(yàn)證不夠充分。問題主要集中在兩個方面:流水線中處理指令相關(guān)的邏輯是否正確;各個流水級空閑或者忙碌狀態(tài)的各種組合是否使流水線的控制出現(xiàn)問題。

a)CR和XER特殊寄存器的功能定義。CR和XER特殊寄存器是PowerPC體系結(jié)構(gòu)中的標(biāo)記寄存器,用于標(biāo)記運(yùn)算結(jié)果是否溢出、是否有進(jìn)位等。對CR和XER特殊寄存器的監(jiān)測在一定程度上能夠保證各種情況下的算術(shù)運(yùn)算都執(zhí)行過。

c)精確異常的功能定義。在正常的程序運(yùn)行過程中,異常的出現(xiàn)是比較少的,但是對異常的處理非常地重要。為了保證在流水線的微處理器中實(shí)現(xiàn)精確異常,“龍騰R2”的IEU模塊中有專門的異常處理模塊,而且對異常的檢測分布在IEU各個流水級。因?yàn)楫惓D軌蚯袚Q微處理器的運(yùn)行狀態(tài),而且在一般的程序中很難有出現(xiàn)的機(jī)會,所以有必要對異常處理的功能覆蓋率進(jìn)行統(tǒng)計(jì)。

利用模塊中關(guān)鍵信號組合的狀態(tài)以及狀態(tài)之間的相互遷移來標(biāo)志該模塊是否完成了既定功能。以CR特殊寄存器為例,CR[0:3]的各個位分別代表當(dāng)前運(yùn)算結(jié)果小于零、等于零、大于零和溢出。這樣可以定義出16個狀態(tài),然后根據(jù)體系結(jié)構(gòu)的說明剔除其中不可能到達(dá)的狀態(tài);同樣,還可以剔除狀態(tài)之間不可能發(fā)生的遷移,從而定義出關(guān)于CR特殊寄存器完備的功能描述。在仿真運(yùn)行過程中,通過統(tǒng)計(jì)CR[0:3]到達(dá)的狀態(tài)以及狀態(tài)之間的遷移情況得到功能覆蓋率報(bào)告。

3.1.3偽隨機(jī)指令序列生成

指令產(chǎn)生器的隨機(jī)性主要表現(xiàn)在兩個方面:單條指令的隨機(jī)性和指令序列的隨機(jī)性。對于單條指令,隨機(jī)性主要表現(xiàn)在對源操作數(shù)和目的操作數(shù)的隨機(jī)選擇;對于指令序列,隨機(jī)性主要表現(xiàn)在對單條指令組合的隨機(jī)選擇。

為了保證偽隨機(jī)產(chǎn)生器能夠動態(tài)調(diào)整,需要對單條指令和指令序列的隨機(jī)性加以約束。對于單條指令,約束的施加較為簡單,通過約束源操作數(shù)、目的操作數(shù)、內(nèi)存存取地址等有限的全局變量控制單條指令的隨機(jī)區(qū)域,達(dá)到隨機(jī)可控的目的。對于指令序列,本文采用類似BNF(backus naur form)范式的方式控制偽隨機(jī)指令序列的生成。

BNF范式一般用于定義編程語言的語法規(guī)則,通過檢測程序語法是否匹配BNF范式來判斷該程序是否有語法或者語義錯誤。BNF范式可以定義組成指令序列的規(guī)則,約束偽隨機(jī)指令序列的生成。BNF范式包括終結(jié)符和非終結(jié)符,當(dāng)推導(dǎo)至某個終結(jié)符時將會產(chǎn)生上文所述的原子序列指令,非終結(jié)符則會遞歸的推導(dǎo)下去。下面是一個BNF范式定義的指令序列的例子:

如上所示,main、top、mid、bot為非終結(jié)符,ld、add、store均是終結(jié)符。當(dāng)推導(dǎo)至終結(jié)符時產(chǎn)生上文所述的原子序列,構(gòu)成該原子序列的指令序列是固定的,隨機(jī)的只是單條指令的操作數(shù)。

如圖4所示, main和bot非終結(jié)符的推導(dǎo)較為簡單,只需將控制權(quán)交給其第一個子序列。構(gòu)成top和mid非終結(jié)符的表達(dá)式較為特殊,其第一個子序列為自身,所以推導(dǎo)過程是遞歸的。以top和ld節(jié)點(diǎn)為例闡述如何控制帶遞歸的BNF范式的推導(dǎo)過程:對于top節(jié)點(diǎn),當(dāng)獲得控制權(quán)之后,判斷fin是否為真,如果為真將控制權(quán)交給ld節(jié)點(diǎn),否則根據(jù)權(quán)重隨機(jī)選擇將控制權(quán)交給ld節(jié)點(diǎn)還是自身;如果隨機(jī)的結(jié)果是自身則將cnt加1,否則置fin為真,然后將控制權(quán)交給所選擇的節(jié)點(diǎn)。對于ld節(jié)點(diǎn),當(dāng)獲得控制權(quán)之后首先產(chǎn)生預(yù)定義的原子序列,然后判斷cnt是否為零,如果不為零,將控制權(quán)交給top節(jié)點(diǎn)且將cnt減1,否則將控制權(quán)交給mid節(jié)點(diǎn)。

通過定義非原子序列的BNF推導(dǎo)式便可以控制偽隨機(jī)過程中指令序列的生成,并使之遵從一定的規(guī)則。為了能夠在驗(yàn)證過程中動態(tài)調(diào)整生成的指令序列,BNF范式為其每一項(xiàng)構(gòu)成式分配權(quán)重,權(quán)重越大說明在偽隨機(jī)過程中推導(dǎo)出該構(gòu)成式的可能性越大。極端情況下,可以給某一項(xiàng)構(gòu)成式分配權(quán)重零,從而禁止推導(dǎo)出該式。

3.2采用動態(tài)偽隨機(jī)驗(yàn)證方案的覆蓋率分析

在覆蓋率指標(biāo)上本文主要采用代碼覆蓋率(塊覆蓋率、條件覆蓋率)對驗(yàn)證的效果進(jìn)行評價。在采用了動態(tài)偽隨機(jī)驗(yàn)證方案后,對IEU模塊的驗(yàn)證進(jìn)行了覆蓋率分析,并與之前采用手寫測試程序和偽隨機(jī)產(chǎn)生測試程序結(jié)合的驗(yàn)證方案進(jìn)行了比較。

圖5和6分別是在相同仿真時間情況下原驗(yàn)證方案和現(xiàn)驗(yàn)證方案塊覆蓋率和條件覆蓋率的比較圖。從圖中可以得知,塊覆蓋率平均提高了10%,條件覆蓋率平均提高了13%。

圖7和8分別是在相同測試指令數(shù)目的情況下原驗(yàn)證方案和現(xiàn)驗(yàn)證方案塊覆蓋率和條件覆蓋率的比較圖。從圖中可以得知,塊覆蓋率平均提高了16%,條件覆蓋率平均提高了20%。

4結(jié)束語

本文分析了當(dāng)前微處理器驗(yàn)證的幾種方法,提出了一種基于功能覆蓋率分析、動態(tài)約束偽隨機(jī)指令序列產(chǎn)生的方案,解決了傳統(tǒng)多個單偽隨機(jī)測試程序?qū)ξ⑻幚砥鞯尿?yàn)證中存在重疊的問題。詳細(xì)分析了“龍騰R2”微處理器微體系結(jié)構(gòu)和IEU模塊設(shè)計(jì),搭建了基于該方法對“龍騰R2”IEU模塊的驗(yàn)證環(huán)境。

圖9是原有驗(yàn)證方案和現(xiàn)在驗(yàn)證方案bug曲線的對比圖。從圖中可以得知,相比之前的驗(yàn)證方案,改進(jìn)之后的方案的bug曲線收斂性更好,縮短了驗(yàn)證時間,提高了驗(yàn)證效率。

參考文獻(xiàn):

[1]TAYLOR S,QUINN M,BROWN D,et al. Functional verification of a multiple-issue,out-of-order,superscalar alpha processor:the DEC Alpha 21264 microprocessor[C]//Proc ofthe 35th Annual Conference on Design Automation. New York:ACM Press,1998:638-643.

[2]AHARON A,GOODMAN D,LEVINGER M,et al. Test program gene-ration for functional verification of Power PC processors in IBM[C]//Proc ofDesign Automation Conference. 1995:279-285.

[3]BIRD D L, MUNOZ C U. Automatic generation of random self-checking test cases[J].IBM System Journal,1996,22(3):229-245.

[4]VIKRAM L, ELIZABETH M R. A biased random instruciton generation environment for architectural verification of pipeline processors[J]. Journal of Electronic Testing:Theory and Application,2000,16(1-2):13-27.

[5]姚英彪,劉鵬,姚慶棟,等. 微處理器功能驗(yàn)證程序生成[J].計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào),2006,18(10):1484-1490.

[6]黃小平,樊曉椏,賈琳,等.“龍騰R2”微處理器流水線的設(shè)計(jì)與優(yōu)化[J].微電子與計(jì)算機(jī),2006,23(2):144-147.

注:本文中所涉及到的圖表、注解、公式等內(nèi)容請以PDF格式閱讀原文

主站蜘蛛池模板: 色欲不卡无码一区二区| 欧美成一级| 欧美色视频网站| 成人亚洲国产| 老司机精品一区在线视频 | 欧美成人影院亚洲综合图| 国产乱子伦无码精品小说| 在线精品欧美日韩| 日本道中文字幕久久一区| 中文字幕无码电影| 国产美女视频黄a视频全免费网站| 欧美激情二区三区| 国产日韩欧美精品区性色| 国产小视频a在线观看| 亚洲人视频在线观看| 午夜影院a级片| AV不卡在线永久免费观看| 日韩精品一区二区三区免费| 亚洲热线99精品视频| 国产精品3p视频| 99久久国产综合精品女同| 亚洲天堂网在线播放| 国产天天射| 97久久精品人人| 99伊人精品| 97成人在线视频| 亚洲男人天堂2018| 亚洲精品无码日韩国产不卡| 试看120秒男女啪啪免费| 又黄又湿又爽的视频| 视频二区国产精品职场同事| AV无码无在线观看免费| 国产成人1024精品下载| 久久免费视频播放| 亚洲欧美色中文字幕| 欧美激情成人网| 国产精品一区在线观看你懂的| 欧美在线导航| 看国产毛片| www.亚洲色图.com| 国产成人精品视频一区视频二区| 国产在线日本| 亚洲妓女综合网995久久| 制服无码网站| 中国一级特黄大片在线观看| 四虎国产精品永久一区| 天天爽免费视频| 日韩在线播放中文字幕| 成人精品区| 亚洲欧洲自拍拍偷午夜色| 国产jizzjizz视频| 思思99热精品在线| 国产美女精品人人做人人爽| 国产无码高清视频不卡| 国产va在线观看| 久久99热66这里只有精品一| 国产在线观看成人91| 九色综合伊人久久富二代| 视频一区视频二区日韩专区| 色婷婷综合在线| 人妻少妇乱子伦精品无码专区毛片| 狠狠色成人综合首页| 国产欧美成人不卡视频| 22sihu国产精品视频影视资讯| 国产美女在线观看| 久久性妇女精品免费| 波多野吉衣一区二区三区av| 免费在线a视频| 欧美另类图片视频无弹跳第一页| 奇米影视狠狠精品7777| 真人免费一级毛片一区二区| 国产高清精品在线91| 日本免费一级视频| 婷婷色婷婷| 五月婷婷精品| 中文字幕丝袜一区二区| 国产门事件在线| 国产精品亚欧美一区二区| 国产精品3p视频| 一本大道无码日韩精品影视| 综合社区亚洲熟妇p| 国产欧美在线视频免费|