国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于模型和庫(kù)的處理器偽隨機(jī)激勵(lì)生成器設(shè)計(jì)與實(shí)現(xiàn)*

2018-01-26 02:46巨鵬錦張曉冬
關(guān)鍵詞:指令集寄存器指令

巨鵬錦,張曉冬,李 輝

(上海高性能集成電路設(shè)計(jì)中心,上海 201204)

1 引言

隨著集成電路技術(shù)的飛速發(fā)展,高性能處理器設(shè)計(jì)的復(fù)雜度和規(guī)模不斷增大,同時(shí)激烈的行業(yè)競(jìng)爭(zhēng)也促使高性能處理器廠家努力縮短產(chǎn)品研發(fā)周期,加快產(chǎn)品更新速度。近些年來(lái),在國(guó)家大力發(fā)展自主可控信息產(chǎn)業(yè)的戰(zhàn)略下,國(guó)產(chǎn)高性能處理器研發(fā)取得長(zhǎng)足的發(fā)展,產(chǎn)業(yè)化應(yīng)用不斷深入。在國(guó)產(chǎn)高性能處理器設(shè)計(jì)技術(shù)不斷縮小與國(guó)外差距的同時(shí),作為研發(fā)平臺(tái)支撐的國(guó)產(chǎn)處理器驗(yàn)證技術(shù)必須適應(yīng)處理器研發(fā)需要,不斷提升處理器驗(yàn)證的核心技術(shù)能力。

當(dāng)今高性能處理器的驗(yàn)證通常綜合采用模擬驗(yàn)證[1,2]、硬件仿真加速驗(yàn)證[3,4]、FPGA原型驗(yàn)證[5]、形式驗(yàn)證[4,6]等方法。從各種驗(yàn)證方法發(fā)現(xiàn)的設(shè)計(jì)錯(cuò)誤統(tǒng)計(jì)來(lái)看,模擬驗(yàn)證仍然是主要驗(yàn)證手段,發(fā)現(xiàn)錯(cuò)誤的比例占總數(shù)的九成左右,而處理器模擬驗(yàn)證的最大難點(diǎn)在于如何能夠快速編寫(xiě)和生成大量高質(zhì)量的測(cè)試激勵(lì)。目前業(yè)界主要采用偽隨機(jī)激勵(lì)生成器來(lái)生成高質(zhì)量的驗(yàn)證程序。Stress Test[7]由基于馬爾可夫模型的生成器和活動(dòng)監(jiān)測(cè)器組成,生成器和監(jiān)測(cè)器構(gòu)成閉環(huán)生成模型,生成器利用用戶提供的模板和監(jiān)測(cè)器反饋的信息生成驗(yàn)證程序;Genesys-Pro[8 - 10]通過(guò)編寫(xiě)測(cè)試模板、單指令建模、處理器結(jié)構(gòu)建模,使用約束求解CSP(Constraint Satisfaction Problem)來(lái)生成測(cè)試激勵(lì);文獻(xiàn)[11]提出一種基于分層思想的受限隨機(jī)激勵(lì)產(chǎn)生方法,通過(guò)測(cè)試層、場(chǎng)景層、功能層和指令層的多層約束,實(shí)現(xiàn)隨機(jī)激勵(lì)生成。以上激勵(lì)生成器的設(shè)計(jì)方法主要是針對(duì)如何高效生成偽隨機(jī)測(cè)試激勵(lì)、加快覆蓋率收斂速度方面的研究。但是,面對(duì)當(dāng)今處理器不斷發(fā)展的架構(gòu)設(shè)計(jì),如多核、多線程、眾核等等,處理器偽隨機(jī)激勵(lì)生成器設(shè)計(jì)不僅需要考慮如何高效生成高覆蓋率的測(cè)試激勵(lì),而且需要考慮當(dāng)處理器架構(gòu)變化時(shí),如何能夠利用已有的測(cè)試激勵(lì)集合重構(gòu)新架構(gòu)處理器的測(cè)試激勵(lì)集合,從而最大限度重用已有的測(cè)試庫(kù),以高起點(diǎn)開(kāi)始新架構(gòu)處理器的驗(yàn)證工作,只有這樣才能滿足越來(lái)越短的處理器產(chǎn)品研發(fā)周期要求。

本文提出一種基于模型和庫(kù)的偽隨機(jī)激勵(lì)生成器實(shí)現(xiàn)方法,該方法能夠較好地解決處理器設(shè)計(jì)變化對(duì)已有測(cè)試激勵(lì)集合的影響,可以避免因設(shè)計(jì)變化而導(dǎo)致激勵(lì)生成器生成的測(cè)試激勵(lì)失效問(wèn)題。本文設(shè)計(jì)實(shí)現(xiàn)的激勵(lì)生成器不但能夠適應(yīng)處理器關(guān)鍵微結(jié)構(gòu)的變化,還可以適應(yīng)處理器指令集和地址空間的變化,而且在多核Cache一致性測(cè)試方面還可以適應(yīng)多核處理器核心數(shù)量的改變。

2 需求分析

建立一個(gè)高效的處理器偽隨機(jī)激勵(lì)生成器,需要充分考慮處理器功能驗(yàn)證中的需求,包括:(1)指令流測(cè)試,用戶能夠選擇指令集合進(jìn)行測(cè)試激勵(lì)生成;(2)異??刂?,用戶可以控制測(cè)試激勵(lì)中每種異常發(fā)生的頻度;(3)資源共享,用戶可以控制指令序列對(duì)CPU資源的共享情況,如寄存器、訪存地址等等;(4)循環(huán),用戶可以定義各種類型的循環(huán)結(jié)構(gòu),用于特定情況的驗(yàn)證;(5)數(shù)據(jù)類型,用戶調(diào)用這些數(shù)據(jù)類型可以方便隨機(jī)各種數(shù)據(jù)邊界情況,如整數(shù)最大、最小值數(shù)據(jù)、全零、浮點(diǎn)無(wú)窮大、非數(shù)等等;(6)偽隨機(jī)約束控制,偽隨機(jī)約束用于控制激勵(lì)生成器產(chǎn)生某些情況的概率,用戶既可以對(duì)激勵(lì)中的特定條目施加“局部約束”,也可以對(duì)激勵(lì)中某一類結(jié)構(gòu)施加“全局約束”。

另外,還需要考慮模擬仿真環(huán)境對(duì)隨機(jī)激勵(lì)生成器的開(kāi)發(fā)需求:(1)靈活方便地對(duì)內(nèi)存空間進(jìn)行劃分。內(nèi)存空間的分配和使用是模擬仿真環(huán)境的一個(gè)重要方面,項(xiàng)目不同使用方式也可能不同,同一個(gè)項(xiàng)目也會(huì)發(fā)生變化,以此要求隨機(jī)激勵(lì)生成器應(yīng)能夠根據(jù)仿真環(huán)境靈活方便地對(duì)內(nèi)存空間進(jìn)行劃分。(2)應(yīng)滿足處理器的復(fù)雜初始化需求。這包括頁(yè)表的創(chuàng)建、寄存器的初始化、核心內(nèi)部控制寄存器的初始化,甚至芯片內(nèi)部的I/O寄存器初始化等等。(3)生成的激勵(lì)目標(biāo)文件最好為二進(jìn)制格式,應(yīng)該包含激勵(lì)中要運(yùn)行的配置、指令和各種數(shù)據(jù)信息。(4)能夠方便查看生成的激勵(lì)的反匯編結(jié)果。

除了首先要滿足以上這些通用需求外,本文在開(kāi)發(fā)隨機(jī)激勵(lì)生成器的時(shí)候要還重點(diǎn)考慮生成器以及在其上開(kāi)發(fā)的測(cè)試庫(kù)的通用性和繼承性,力求使其能夠適用于多種不同架構(gòu)處理器的開(kāi)發(fā),使得已開(kāi)發(fā)測(cè)試庫(kù)能直接或經(jīng)過(guò)重構(gòu)后用于多款不同處理器的研發(fā),從而能夠充分繼承之前的驗(yàn)證成果,縮短處理器驗(yàn)證周期,提高驗(yàn)證效率。

3 設(shè)計(jì)實(shí)現(xiàn)

3.1 設(shè)計(jì)思想和方法

本文激勵(lì)生成器KIG(Knowledgeable Instruction Generator)是一款基于約束求解的處理器偽隨機(jī)激勵(lì)生成器,采用Specman E語(yǔ)言設(shè)計(jì)實(shí)現(xiàn)。Specman E提供了強(qiáng)大的約束分析引擎和偽隨機(jī)發(fā)生器,稱為“IntelliGen”,能夠分析復(fù)雜約束條件,產(chǎn)生各種偽隨機(jī)數(shù)據(jù)類型和數(shù)據(jù)結(jié)構(gòu)。SystemVerilog語(yǔ)言也是各家EDA公司都支持的成熟語(yǔ)言,與Specman E屬于同一類語(yǔ)言,也可以用于建立偽隨機(jī)激勵(lì)生成器。

為了適應(yīng)處理器設(shè)計(jì)變化的需求,本文激勵(lì)生成器采用了基于模型和測(cè)試庫(kù)的、自底向上的層次化設(shè)計(jì)方法。如圖1所示,共分6個(gè)層次,自底向上分別為基礎(chǔ)結(jié)構(gòu)層、單元模型層、單元樹(shù)層、測(cè)試知識(shí)庫(kù)、測(cè)試序列庫(kù)和測(cè)試情景。

Figure 1 Bottom-up design method of processor test generator development圖1 自底向上的處理器激勵(lì)生成器設(shè)計(jì)方法

激勵(lì)生成器的層次化設(shè)計(jì)遵循以下原則:(1)基礎(chǔ)結(jié)構(gòu)層和單元模型層是激勵(lì)生成器的底層定義,由開(kāi)發(fā)人員維護(hù),不允許用戶修改;(2)“單元樹(shù)”層是激勵(lì)生成器的中間層,是生成器與用戶的交界面,也由開(kāi)發(fā)人員維護(hù),但為驗(yàn)證測(cè)試人員提供了對(duì)單元樹(shù)的組織結(jié)構(gòu)進(jìn)行變更的接口;(3)測(cè)試知識(shí)庫(kù)主要由經(jīng)驗(yàn)豐富的驗(yàn)證工程師開(kāi)發(fā)和維護(hù);(4)測(cè)試序列庫(kù)是完全開(kāi)放的,所有驗(yàn)證工程師都可以根據(jù)需求定義自己的庫(kù),通常會(huì)按照驗(yàn)證側(cè)重點(diǎn)分類,但這個(gè)分類是指導(dǎo)性的,因?yàn)樘幚砥黩?yàn)證的復(fù)雜性往往使得很多測(cè)試序列是綜合類型的;(5)測(cè)試情景中定義了全局約束和各個(gè)處理器核心與序列庫(kù)的調(diào)用關(guān)系。

為了保證測(cè)試程序的可重用性,測(cè)試情景只調(diào)用測(cè)試序列,不在測(cè)試情景中編寫(xiě)具體的用戶程序。全局約束是指對(duì)激勵(lì)生成器內(nèi)全局結(jié)構(gòu)的約束,可以施加于測(cè)試情景之下的各個(gè)層次。如對(duì)基礎(chǔ)結(jié)構(gòu)層的處理器結(jié)構(gòu)信息模型和仿真環(huán)境模型的全局約束,通常會(huì)為每款處理器定義一個(gè)單獨(dú)的配置文件。在多核Cache一致性的測(cè)試情景中,可通過(guò)定義全局的共享規(guī)則約束來(lái)控制不同核心對(duì)Cache的共享情況,在本文的3.6節(jié)會(huì)具體展開(kāi)說(shuō)明。測(cè)試情景與測(cè)試序列庫(kù)的不同之處在于,測(cè)試情景區(qū)分單核測(cè)試和多核測(cè)試,而測(cè)試序列庫(kù)則不區(qū)分單多核測(cè)試。圖2是KIG的圖形界面,用戶可以使用該界面配置激勵(lì)生成約束,并自動(dòng)生成測(cè)試情景。

Figure 2 GUI of KIG processor pseudo-random test generator圖2 KIG偽隨機(jī)激勵(lì)生成器界面

這種層次化設(shè)計(jì)方法使得當(dāng)處理器設(shè)計(jì)或者仿真環(huán)境變化時(shí),我們只需要修改基礎(chǔ)結(jié)構(gòu)層、單元模型層或者是單元樹(shù)層的定義,就可以保證上層的測(cè)試知識(shí)庫(kù)、測(cè)試序列庫(kù)保持不變。而由于測(cè)試情景與設(shè)計(jì)的密切相關(guān)性,比如參與測(cè)試的處理器核心數(shù)發(fā)生變化,測(cè)試情景也必須隨之變化,但由于測(cè)試情景僅僅包含核心對(duì)序列庫(kù)調(diào)用關(guān)系和全局約束,并不包含用戶編寫(xiě)的測(cè)試代碼,容易修改和繼承,甚至于在用戶指導(dǎo)下進(jìn)行批量轉(zhuǎn)換。同理,基于所有已開(kāi)發(fā)的測(cè)試序列庫(kù),還可以定義各類全局約束組合,批量重構(gòu)新的測(cè)試情景,大批量產(chǎn)生偽隨機(jī)測(cè)試激勵(lì),使已有測(cè)試序列庫(kù)發(fā)揮更大作用。

3.2 單核心結(jié)構(gòu)建模

處理器單核心結(jié)構(gòu)模型中描述了部分處理器內(nèi)核的結(jié)構(gòu)和微結(jié)構(gòu)信息,例如Cache組成結(jié)構(gòu)、結(jié)構(gòu)寄存器、地址代換緩沖TLB(Translation Lookaside Buffer)、內(nèi)部控制和狀態(tài)寄存器信息等等。本文在處理器單核結(jié)構(gòu)模型的建模中主要采用了以下三種建模方法:

(1)結(jié)構(gòu)信息參數(shù)化建模法。如Cache的組成結(jié)構(gòu)建模就只需要建立各級(jí)Cache的信息檔案,包括容量、相聯(lián)度、Cache塊大小等。有了這些信息,后續(xù)編寫(xiě)測(cè)試激勵(lì)時(shí)可以調(diào)用這些變量控制激勵(lì)的生成,當(dāng)處理器設(shè)計(jì)改變時(shí),只需要根據(jù)新的處理器結(jié)構(gòu)對(duì)這些參數(shù)重新配置即可。本文在對(duì)處理器結(jié)構(gòu)建模時(shí),Cache結(jié)構(gòu)、TLB結(jié)構(gòu)、物理寄存器資源數(shù)量等都采用了這種建模方法。

(2)資源池建模法,典型的如寄存器資源。在處理器驗(yàn)證中,指令序列的寄存器相關(guān)性測(cè)試是處理器流水線驗(yàn)證中的一種必測(cè)情形;另一種情形是某些寄存器在一段時(shí)間內(nèi)用于保存特定數(shù)據(jù),比如訪存地址,而在序列隨機(jī)混合時(shí)不希望這個(gè)寄存器內(nèi)容被其它隨機(jī)生成的指令沖掉。以上兩種情形需要激勵(lì)生成器提供一種機(jī)制對(duì)寄存器資源的使用進(jìn)行控制。本文采用資源池建模法,在激勵(lì)生成器中設(shè)置全局的free和lock的寄存器資源列表,free列表中存放著待分配的空閑寄存器,lock列表中存放著已分配的寄存器,free列表中的寄存器允許隨機(jī)讀寫(xiě),而lock列表中的寄存器不允許被隨機(jī)讀寫(xiě)。如果不希望指令序列的某些寄存器被其它指令序列更改,可以申請(qǐng)寄存器分配,分配成功后,該寄存器會(huì)被放入lock列表,并且從free列表中刪除,其他隨機(jī)產(chǎn)生的指令應(yīng)該避免使用lock列表中的寄存器作為目標(biāo)寄存器。這種建模方法不但解決了硬件資源的使用沖突問(wèn)題,而且還便于控制指令序列在使用硬件資源時(shí)的相關(guān)性,如下偽代碼所示:

allocated_reg_list=int_reg.reg_alloc(參數(shù):寄存器個(gè)數(shù));

do add inst keeping {

.src0 inint_reg.free_list();

.src1 inint_reg.lock_list();

.desinallocated_reg_list; /*目標(biāo)寄存器指定為分配的寄存器*/

};

do sub inst keeping {

.src0 inallocated_reg_list; /*源寄存器使用add指令的目標(biāo)寄存器*/

.src1 inint_reg.free_list();

.desinint_reg.free_list(); /*這個(gè)約束保證了lock寄存器不會(huì)被沖掉*/

};

add指令目標(biāo)寄存器使用分配得到的寄存器資源,sub指令源寄存器也使用分配得到的寄存器資源,則sub與add指令之間建立了一種先寫(xiě)后讀的相關(guān)性關(guān)系,sub指令作為一種隨機(jī)指令將目標(biāo)寄存器約束為free列表,同時(shí)也避免沖掉其它序列已經(jīng)分配使用的寄存器。

(3)行為模型建模法。對(duì)處理器某些結(jié)構(gòu)的建模必須實(shí)現(xiàn)該結(jié)構(gòu)的行為功能才能控制特定激勵(lì)序列的生成,比如地址代換緩沖TLB的建模,生成TLB測(cè)試激勵(lì)時(shí),TLB的模型必須支持用戶對(duì)TLB頁(yè)表?xiàng)l目的約束控制,如頁(yè)面權(quán)限設(shè)置、頁(yè)面粒度等,但用戶不能控制物理頁(yè)面的分配,這部分功能必須由激勵(lì)生成器實(shí)現(xiàn)。

3.3 仿真環(huán)境結(jié)構(gòu)建模

處理器仿真環(huán)境的一般構(gòu)成如圖3所示,主要由被測(cè)設(shè)計(jì)DUT(Design Under Test)、內(nèi)存模型(Memory Model)、指令集模擬器ISS(Instruction Set Simulator)、設(shè)計(jì)監(jiān)測(cè)(Monitor)及結(jié)果檢查模塊(Checker)組成。仿真環(huán)境主要有三大功能:支持DUT的引導(dǎo)和運(yùn)行、支持測(cè)試激勵(lì)的加載和內(nèi)存空間管理,以及支持運(yùn)行結(jié)果的檢查比較。

Figure 3 Simulation environment of processor verification圖3 處理器仿真驗(yàn)證環(huán)境構(gòu)成圖

由于處理器設(shè)計(jì)不同,仿真環(huán)境也可能不同,尤其是指令集模擬器的內(nèi)存空間管理發(fā)生變化時(shí),必然會(huì)影響原有測(cè)試程序的重用,另外程序的運(yùn)行初始化也會(huì)因設(shè)計(jì)功能改變而變化,處理器的架構(gòu)改變,比如從單核到多核或者眾核,測(cè)試激勵(lì)的組成形式也必然發(fā)生變化,這些都會(huì)影響到激勵(lì)生成器的可重用性。因此,在激勵(lì)生成器設(shè)計(jì)時(shí)應(yīng)該綜合考慮以上需求,將這些數(shù)據(jù)信息建模到仿真環(huán)境模型中,使得仿真環(huán)境與激勵(lì)生成器之間的接口協(xié)議規(guī)范化和參數(shù)化,從而實(shí)現(xiàn)偽隨機(jī)激勵(lì)生成器跨芯片設(shè)計(jì)環(huán)境的可重用。

為適應(yīng)處理器設(shè)計(jì)和仿真環(huán)境的變化,對(duì)仿真環(huán)境的建模主要針對(duì)測(cè)試激勵(lì)加載、內(nèi)存空間管理和程序運(yùn)行初始化功能。

(1)測(cè)試激勵(lì)加載建模。偽隨機(jī)激勵(lì)生成器生成的測(cè)試激勵(lì)既可以選擇生成匯編源代碼,也可以選擇直接生成目標(biāo)碼。為了方便隨機(jī)生成指令字段中的各個(gè)域,簡(jiǎn)化仿真環(huán)境,偽隨機(jī)激勵(lì)生成器通常會(huì)直接生成目標(biāo)碼。為了適應(yīng)不同處理器架構(gòu)下測(cè)試激勵(lì)的生成和加載模式,同時(shí)從偽隨機(jī)測(cè)試的需求分析,偽隨機(jī)激勵(lì)生成器生成的目標(biāo)碼格式可以自由定義,不需要與編譯器生成的目標(biāo)碼格式一致。這樣做的好處是,當(dāng)處理器架構(gòu)或指令集改變時(shí),偽隨機(jī)驗(yàn)證不需要依賴于編譯器、匯編器等軟件開(kāi)發(fā)的進(jìn)度,偽隨機(jī)激勵(lì)生成器與指令集模擬器接口一致,自成一體。自定義目標(biāo)碼的格式只需要包含一些基礎(chǔ)段即可,如頁(yè)表段、指令正文段、偽隨機(jī)數(shù)據(jù)段、用戶數(shù)據(jù)段等等,如圖4所示。

Figure 4 File head of a customized pseudo-random test object圖4 自定義激勵(lì)目標(biāo)碼文件頭信息

(2)內(nèi)存空間管理建模。在無(wú)操作系統(tǒng)的仿真環(huán)境下,內(nèi)存空間的管理主要通過(guò)指令集模擬器實(shí)現(xiàn),通過(guò)定義不同類型的內(nèi)存空間來(lái)實(shí)現(xiàn)一個(gè)滿足驗(yàn)證要求的裸機(jī)運(yùn)行環(huán)境。內(nèi)存空間的類型包括:①測(cè)試程序數(shù)據(jù)段,其內(nèi)存空間劃分與偽隨機(jī)目標(biāo)碼的功能段劃分相對(duì)應(yīng)。②頁(yè)表數(shù)據(jù)。頁(yè)表是一類特殊的數(shù)據(jù),在有操作系統(tǒng)管理的環(huán)境下,頁(yè)表數(shù)據(jù)是動(dòng)態(tài)產(chǎn)生的,而在偽隨機(jī)測(cè)試環(huán)境下,頁(yè)表數(shù)據(jù)則是由激勵(lì)生成器在激勵(lì)生成過(guò)程中生成的。③特權(quán)程序。特權(quán)程序是處理器在特定情況下執(zhí)行的固件代碼,這部分?jǐn)?shù)據(jù)一般不會(huì)修改,但也可以根據(jù)測(cè)試需要做修改。④特殊功能的地址空間,比如鎖測(cè)試程序中定義的鎖和臨界資源的內(nèi)存地址。偽隨機(jī)激勵(lì)生成器應(yīng)該使用參數(shù)定義上述內(nèi)存空間,當(dāng)指令集模擬器內(nèi)存空間管理發(fā)生變化時(shí),根據(jù)新的內(nèi)存空間定義、修改激勵(lì)生成器的對(duì)應(yīng)參數(shù),即可使原有測(cè)試庫(kù)符合新的仿真環(huán)境內(nèi)存空間定義。

(3)程序運(yùn)行初始化功能建模。由于處理器設(shè)計(jì)的需要,通常在啟動(dòng)運(yùn)行階段,處理器會(huì)執(zhí)行一段特定程序完成對(duì)設(shè)計(jì)的必要初始化。通常在偽隨機(jī)驗(yàn)證中,為了測(cè)試處理器的各種運(yùn)行模式和參數(shù)配置,也需要對(duì)這段程序進(jìn)行約束和隨機(jī)。因此,激勵(lì)生成器應(yīng)該定義初始化程序段以滿足處理器設(shè)計(jì)變化時(shí)對(duì)初始化程序的變更需求。

3.4 可配置多核處理器建模

單核心和仿真環(huán)境的結(jié)構(gòu)建模是可配置多核處理器建模的基礎(chǔ)。本文在實(shí)現(xiàn)中采用了UVM(Universal Verification Methodology)方法學(xué)[12],將與單核心相關(guān)的設(shè)計(jì)結(jié)構(gòu)和環(huán)境信息獨(dú)立封裝,可根據(jù)多核處理器核心數(shù)量配置單核模型實(shí)例化的個(gè)數(shù),并通過(guò)采用Virtual Sequence[12]技術(shù)將N個(gè)核心的Sequence Driver集中控制,如圖5所示。

Figure 5 Scalability of multi-core processor model composed of single-core models圖5 可配置多核處理器模型結(jié)構(gòu)圖

多核處理器執(zhí)行程序的指令空間可以分為共享空間和私有空間,所謂共享空間即各個(gè)核心共享內(nèi)存的一份指令數(shù)據(jù),私有空間即各個(gè)核心的指令數(shù)據(jù)是地址分開(kāi)的。這兩種方式在實(shí)際軟件應(yīng)用中都是存在的,從驗(yàn)證功能的完備性考慮,激勵(lì)生成器理論上應(yīng)該支持這兩種實(shí)現(xiàn)方式。但是,激勵(lì)生成器的設(shè)計(jì)應(yīng)該從功能驗(yàn)證的需求出發(fā),在滿足驗(yàn)證需求的前提下盡量簡(jiǎn)化測(cè)試激勵(lì)模型,以提高激勵(lì)生成效率。就這點(diǎn)而言,驗(yàn)證需求的本質(zhì)是如何滿足不同的核執(zhí)行指令序列的相關(guān)性要求。這里的相關(guān)性要求包括兩個(gè)方面:一是指令空間上的地址相關(guān)性,二是指令序列中訪存操作的地址相關(guān)性。訪存操作的地址相關(guān)性驗(yàn)證,即多核處理器Cache一致性實(shí)現(xiàn)的功能驗(yàn)證,其重要性不言而喻,必須提供高效的測(cè)試機(jī)制。而指令空間上的地址相關(guān)性,當(dāng)程序段多核共享時(shí),不同核心指令Cache中有共享指令數(shù)據(jù)的只讀副本,由于指令空間通常是只讀的,因此這種指令相關(guān)性功能比較簡(jiǎn)單。驗(yàn)證環(huán)境中的固件程序通常采用這種實(shí)現(xiàn)方式,即可滿足這部分的功能驗(yàn)證。特殊情況下也存在某一核心生產(chǎn)指令,其它核心消費(fèi)指令的使用模式,這是一種特殊的編程模式,本質(zhì)上也是訪存操作地址的相關(guān)性,可以轉(zhuǎn)換成數(shù)據(jù)地址空間上的相關(guān)性來(lái)實(shí)現(xiàn)。

基于上述分析,多核版本的激勵(lì)生成器采用了私有空間方式實(shí)現(xiàn)每個(gè)核心的指令空間,主要考慮到指令空間地址相關(guān)性并非處理器功能驗(yàn)證的重點(diǎn)難點(diǎn),且有其他測(cè)試手段補(bǔ)充驗(yàn)證,而私有空間實(shí)現(xiàn)方式可以為每個(gè)核心提供差異化的測(cè)試序列,更具有靈活性。由于每個(gè)核心的測(cè)試序列不同,測(cè)試激勵(lì)的大小各不相同,為了解決這個(gè)問(wèn)題,在實(shí)現(xiàn)多核版本時(shí),采用不同核心串行生成測(cè)試激勵(lì)的方法,每個(gè)核心所需要占用的內(nèi)存空間通過(guò)動(dòng)態(tài)計(jì)算得到,每個(gè)核心的測(cè)試激勵(lì)單獨(dú)控制。在多核測(cè)試時(shí),指令序列中訪存操作的地址相關(guān)性更為重要,因?yàn)樯婕暗讲煌诵闹g內(nèi)存共享如何實(shí)現(xiàn)。本文通過(guò)建立訪存地址模型和定義全局的共享規(guī)則,約束底層指令序列中訪存地址的生成來(lái)實(shí)現(xiàn),詳見(jiàn)3.6節(jié)。

3.5 指令集建模

指令集是激勵(lì)生成器的用戶接口,指令集的定義方式直接關(guān)系到偽隨機(jī)激勵(lì)的編寫(xiě)效率,本文提出了一種“指令樹(shù)”建模方法,實(shí)踐中取得了良好效果。

指令樹(shù)建模方法,顧名思義,就是將指令集看作是一棵樹(shù),如圖7所示?!皹?shù)葉”為指令單元,如圖中的“SUBW”和“SUBL”。指令單元主要定義了指令的格式和各種屬性信息,“樹(shù)枝”為指令組,由一組特定分類的指令單元組成,如圖中的“減法指令”;“樹(shù)枝”可以分為支干和主干,低級(jí)指令組“支干”可以組成更高一級(jí)的指令組“主干”;最頂級(jí)的就是“樹(shù)根”,樹(shù)根包含了所有指令定義?!皹?shù)干”節(jié)點(diǎn)代表的就是指令單元的各類屬性,指令單元的屬性定義越多,則“指令樹(shù)”的層次劃分越多,偽隨機(jī)控制就越精細(xì)。

Figure 6 Organization of instruction set tree圖6 指令樹(shù)組織結(jié)構(gòu)圖

指令樹(shù)建模法有以下優(yōu)點(diǎn):(1)能有效避免指令集調(diào)整對(duì)原有測(cè)試序列的影響,實(shí)現(xiàn)原有測(cè)試知識(shí)庫(kù)、測(cè)試序列不做修改地繼承;(2)“樹(shù)形結(jié)構(gòu)”有效地組織了隨機(jī)元素,使得在激勵(lì)編寫(xiě)中能夠靈活地指定隨機(jī)方向——“樹(shù)枝”“樹(shù)干”,并且控制不同方向上的權(quán)重;(3)“樹(shù)形結(jié)構(gòu)”能夠在Excel表中清楚地表達(dá)指令集的隨機(jī)元素,使得激勵(lì)編寫(xiě)人員能夠快速地掌握激勵(lì)編寫(xiě)技術(shù),提高了激勵(lì)開(kāi)發(fā)效率,并且文檔具有很強(qiáng)的繼承性。

3.6 訪存地址建模

隨著半導(dǎo)體工藝的發(fā)展,高性能處理器集成的核心數(shù)量越來(lái)越多,運(yùn)算性能不斷提升,而存儲(chǔ)器帶寬的提升相對(duì)較慢,為了解決“存儲(chǔ)器墻”問(wèn)題,高性能處理器通常采用多層次存儲(chǔ)器、多條訪存流水線、硬件預(yù)取等設(shè)計(jì)[13],再加上復(fù)雜的片上Cache一致性協(xié)議,這些都對(duì)處理器訪存驗(yàn)證提出了很高的要求。本文提出一種面向多核處理器驗(yàn)證的多維訪存地址建模方法,可降低多核訪存激勵(lì)編寫(xiě)的難度,同時(shí)便于控制測(cè)試激勵(lì)的隨機(jī)度,提高多核處理器的驗(yàn)證效率。

一般的訪存激勵(lì)中僅僅把訪存地址看作一個(gè)一維的數(shù)據(jù),而如何選擇一個(gè)合適的訪存地址以達(dá)到測(cè)試目的,則需要激勵(lì)編程人員不僅對(duì)處理器的訪存流水線設(shè)計(jì)非常的清楚,而且還需要對(duì)仿真環(huán)境的內(nèi)存模型空間限制很清楚,一旦編寫(xiě)多核Cache一致性測(cè)試激勵(lì),還必須仔細(xì)考慮多個(gè)核心對(duì)內(nèi)存地址的共享方式。傳統(tǒng)的訪存激勵(lì)編寫(xiě)模式費(fèi)時(shí)費(fèi)力,對(duì)編程人員要求很高,而一旦處理器設(shè)計(jì)變化,原有的測(cè)試激勵(lì)很可能失效。

通過(guò)對(duì)處理器的訪存測(cè)試情景進(jìn)行分析,可以看出,訪存地址的重要性在于處理器中各種訪存資源的使用均與訪存地址相關(guān),例如:(1)對(duì)Cache資源的使用?,F(xiàn)代處理器的Cache設(shè)計(jì)一般采用虛索引虛標(biāo)識(shí)VIVT(Virtual-Indexed,Virtual-Tagged)、虛索引物理標(biāo)識(shí)地址VIPT(Virtual-Indexed,Physical-Tagged),或者物理索引物理標(biāo)識(shí)PIPT(Physical-Indexed,Physical-Tagged)[14,15],無(wú)論采用哪種方式,內(nèi)存副本在Cache中的狀態(tài)轉(zhuǎn)換都與地址序列有關(guān),如Cache的命中、淘汰、預(yù)取、裝填、不同核心共享讀寫(xiě)等等。(2)對(duì)地址代換緩沖TLB資源的使用。TLB的裝填、命中、淘汰、刷新等操作均是通過(guò)頁(yè)面索引不同、頁(yè)面粒度不同的虛地址序列實(shí)現(xiàn)的。(3)對(duì)I/O寄存器的資源使用。(4)多核共享存儲(chǔ)資源。狹義的共享是指不同的核心訪問(wèn)的存儲(chǔ)器地址有交疊,而在處理器的硬件設(shè)計(jì)中,Cache數(shù)據(jù)是以Cache塊為單位管理的,也就是說(shuō),只要不同核心訪問(wèn)的地址在同一Cache塊內(nèi),即使地址沒(méi)有交疊也是共享,這里稱為“偽共享”,實(shí)際在驗(yàn)證當(dāng)中為了避免參考模型與設(shè)計(jì)行為不一致,一般采用“偽共享”的測(cè)試方法。

通過(guò)上述分析,可以根據(jù)訪存地址與訪存資源使用的對(duì)應(yīng)關(guān)系建立多種類型的多維訪存地址模型。圖7是多核共享訪存地址模型的定義示例,“塊內(nèi)索引”是指一個(gè)Cache塊內(nèi)的地址索引,“行索引”對(duì)應(yīng)Cache行的索引地址,“共享規(guī)則”域?qū)嶋H上是從TAG標(biāo)志地址分離出來(lái)的幾位,用于定義多核共享Cache塊的各種情況。

Figure 7 Bit field definition of multidimensional memory address
圖7 多維訪存地址位域定義

例如編寫(xiě)一個(gè)四核處理器的存儲(chǔ)共享程序,如下所示代碼中定義了兩個(gè)共享規(guī)則全局約束

R

0和

R

1。

R

0規(guī)則定義:TAG標(biāo)志隨機(jī)8個(gè),行索引隨機(jī)1個(gè),這些Cache塊由核心0、1、2共享,如果Cache是4路組相聯(lián)結(jié)構(gòu),指定行索引1個(gè),不同的TAG有8個(gè),那么在測(cè)試中既可以產(chǎn)生多核共享,又可以產(chǎn)生本核心的Cache擠占淘汰。

//在全局測(cè)試情景中定義共享規(guī)則名稱:

extendshare_rule_t[R0,R1];

/*R0規(guī)則定義:TAG標(biāo)志隨機(jī)8個(gè),行索引隨機(jī)1個(gè),核心0、1、2共享;*/

add_global_share_rules(R0,TagNum=8,IndexInum=1,core_list=(0, 1, 2));

/*R1規(guī)則定義:TAG標(biāo)志隨機(jī)4個(gè),行索引隨機(jī)2個(gè),核心0、1、2、3共享*/

add_global_share_rules(R1,TagNum=4,IndexInum=2,core_list=(0, 1, 2,3));

/*在序列庫(kù)中的使用方式如下,序列庫(kù)中的序列無(wú)需知道在哪個(gè)核運(yùn)行、有哪些共享規(guī)則*/

gen MEM addr_var keeping {

.ruleinenv.global_share_rules[my_core_name]; /*隨機(jī)從本核相關(guān)的共享規(guī)則中生成共享地址*/

};

這種實(shí)現(xiàn)方式將關(guān)鍵訪存流水線結(jié)構(gòu)信息,通過(guò)對(duì)訪存地址的多維建模施加到測(cè)試激勵(lì)中,不但大大降低了測(cè)試激勵(lì)的編寫(xiě)難度,而且便于測(cè)試序列庫(kù)跨處理器結(jié)構(gòu)重用。

3.7 測(cè)試庫(kù)實(shí)現(xiàn)

設(shè)置測(cè)試庫(kù)的目的是為了對(duì)測(cè)試程序進(jìn)行分層和分類管理,方便測(cè)試程序的查找、共享和維護(hù),測(cè)試庫(kù)分為兩個(gè)層次:測(cè)試知識(shí)庫(kù)和測(cè)試序列庫(kù)。

測(cè)試知識(shí)庫(kù)的概念就是由對(duì)處理器結(jié)構(gòu)和功能非常了解的資深驗(yàn)證工程師開(kāi)發(fā)出針對(duì)處理器各個(gè)測(cè)試方面的測(cè)試序列和約束條件,并內(nèi)置于激勵(lì)生成器,測(cè)試知識(shí)庫(kù)的約束會(huì)默認(rèn)施加給測(cè)試情景序列,驗(yàn)證人員也可以根據(jù)需要,在自己的測(cè)試情景序列中重載某些測(cè)試約束,例如加大某類指令的權(quán)重,或是控制邊界數(shù)據(jù)的比例;測(cè)試知識(shí)庫(kù)的序列一般是短小精悍,具有完全的可重用性,能覆蓋處理器測(cè)試中的特定測(cè)試情況。測(cè)試知識(shí)庫(kù)還具有開(kāi)放性的特點(diǎn),能夠在處理器驗(yàn)證過(guò)程中,不斷地添加、完善,逐漸累積,從而有效緩解了處理器測(cè)試空間巨大與測(cè)試激勵(lì)編寫(xiě)效率之間的矛盾。

測(cè)試序列庫(kù)的層次在測(cè)試知識(shí)庫(kù)之上,由一般測(cè)試人員編寫(xiě)和維護(hù),可以調(diào)用測(cè)試知識(shí)庫(kù)的程序,也可以使用地址樹(shù)、指令樹(shù)以及處理器模型和環(huán)境模型的接口編寫(xiě)測(cè)試程序,測(cè)試序列庫(kù)的開(kāi)發(fā)由處理器驗(yàn)證需求驅(qū)動(dòng),在處理器功能驗(yàn)證過(guò)程中不斷積累完善。為了便于使用管理,測(cè)試序列庫(kù)通常會(huì)按照驗(yàn)證側(cè)重點(diǎn)分類,如訪存類、運(yùn)算類、轉(zhuǎn)移預(yù)測(cè)類、異常故障類等等。

4 應(yīng)用效果

本文實(shí)現(xiàn)的偽隨機(jī)激勵(lì)生成器KIG目前已成功應(yīng)用于5款不同型號(hào)處理器的研發(fā),這些處理器的芯片架構(gòu)不同,指令集也有差異。為了說(shuō)明應(yīng)用效果,我們選取了兩款應(yīng)用了KIG激勵(lì)生成器的處理器驗(yàn)證和一款采用一般方法實(shí)現(xiàn)的激勵(lì)生成器的處理器驗(yàn)證進(jìn)行對(duì)比分析。這三款處理器分別是:(1)16核處理器A,一款較早開(kāi)發(fā)的多核處理器,處理器核心指令集和芯片架構(gòu)有較大變動(dòng),核心微結(jié)構(gòu)變化較小,采用了一般的指令級(jí)建模偽隨機(jī)激勵(lì)生成器完成驗(yàn)證;(2)4核處理器B,處理器核心微結(jié)構(gòu)和指令集均有較大變化,核心由原來(lái)的2譯碼3發(fā)射變?yōu)?譯碼7發(fā)射,性能和復(fù)雜度均有較大提高,采用了本文開(kāi)發(fā)的KIG激勵(lì)生成器驗(yàn)證;(3)16核處理器C,處理器核心微結(jié)構(gòu)和指令集相對(duì)B均有部分變化,芯片架構(gòu)變動(dòng)較大,也采用本文開(kāi)發(fā)的KIG激勵(lì)生成器驗(yàn)證。

對(duì)這三款處理器驗(yàn)證效果進(jìn)行對(duì)比分析的主要指標(biāo)為覆蓋率驗(yàn)證周期和錯(cuò)誤收斂趨勢(shì)。這里的“覆蓋率驗(yàn)證周期”是指在處理器全片代碼合攏,驗(yàn)證環(huán)境創(chuàng)建完成,達(dá)到基本功能正確性后,開(kāi)始啟動(dòng)代碼和功能覆蓋率驗(yàn)證到雙覆蓋率達(dá)100%的驗(yàn)證階段。

從圖8中可以看到,16核處理器A由于指令集和芯片架構(gòu)有較大變化,而之前用的激勵(lì)生成器雖然采用了基于庫(kù)的分層設(shè)計(jì)方法,但是由于不是同時(shí)采用基于模型和庫(kù)的方法建模實(shí)現(xiàn),導(dǎo)致了之前積累測(cè)試激勵(lì)大部分都無(wú)法使用,修改的工作量巨大,因此覆蓋率驗(yàn)證花了近6個(gè)月才完成。4核處理器B雖然核心微結(jié)構(gòu)和指令集變化非常大,KIG激勵(lì)生成器也是第一次投入使用,但是基于模型和庫(kù)的設(shè)計(jì)方法提高了測(cè)試激勵(lì)編寫(xiě)效率,尤其是基于模型的實(shí)現(xiàn)方法降低了對(duì)驗(yàn)證人員工作經(jīng)驗(yàn)的要求,許多新入職驗(yàn)證人員也可以開(kāi)發(fā)出高質(zhì)量測(cè)試激勵(lì),從而使得覆蓋率收斂速度大幅提高,達(dá)到100%覆蓋率用了不到4個(gè)月時(shí)間,相比之前周期縮短了30%以上。16核處理器C同樣采用了KIG激勵(lì)生成器,雖然微結(jié)構(gòu)、指令集和芯片架構(gòu)都有調(diào)整,但是由于KIG激勵(lì)生成器可以迅速重用和重構(gòu)之前的1 500多個(gè)測(cè)試序列,處理器C在保證基本正確性后用了僅一個(gè)月覆蓋率就已經(jīng)接近80%,充分體現(xiàn)了KIG測(cè)試庫(kù)跨芯片重用帶來(lái)的驗(yàn)證效率提升。

Figure 8 Coverage growth trend of the three processors圖8 三款處理器的覆蓋率收斂趨勢(shì)圖

圖9是這三款處理器的錯(cuò)誤收率趨勢(shì)圖。從圖中可以看到:采用KIG驗(yàn)證的4核處理器B錯(cuò)誤收斂速度明顯快于基于普通激勵(lì)生成器的16核處理器A,16核處理器C繼承了4核處理器B的KIG測(cè)試庫(kù),在開(kāi)始2個(gè)月的驗(yàn)證中錯(cuò)誤收斂速度更快;從錯(cuò)誤發(fā)現(xiàn)總數(shù)看,處理器核心指令集和微結(jié)構(gòu)的大變化對(duì)處理器正確性驗(yàn)證會(huì)帶來(lái)更大的挑戰(zhàn),而KIG激勵(lì)生成器在這方面的驗(yàn)證效率非常高;從錯(cuò)誤收斂周期看,采用KIG激勵(lì)生成器的激勵(lì)發(fā)現(xiàn)錯(cuò)誤效率高,測(cè)試激勵(lì)庫(kù)的可繼承性強(qiáng),這兩方面都能夠有效縮短錯(cuò)誤收斂周期;另外,16核處理器C中后期的錯(cuò)誤收斂趨勢(shì)變得比較平緩,從具體錯(cuò)誤類型分析,主要是針對(duì)造錯(cuò)流程和芯片設(shè)備外接口的驗(yàn)證錯(cuò)誤收斂相對(duì)較慢,后期KIG激勵(lì)生成器還可以針對(duì)這方面的驗(yàn)證開(kāi)展進(jìn)一步工作。

Figure 9 Sum of bugs growth trend in the three processors’ verification圖9 三款處理器驗(yàn)證中的錯(cuò)誤收斂趨勢(shì)

綜上對(duì)比分析,本文激勵(lì)生成器的設(shè)計(jì)方法能夠高效地根據(jù)處理器芯片架構(gòu)、微結(jié)構(gòu)和指令集對(duì)激勵(lì)生成器進(jìn)行配置,快速部署應(yīng)用,尤其是測(cè)試集合能夠重用和重構(gòu),大大減少了測(cè)試激勵(lì)的開(kāi)發(fā)量,在芯片開(kāi)發(fā)初期就能夠快速發(fā)現(xiàn)將近一半的錯(cuò)誤,從而為FPGA原型驗(yàn)證和硬件仿真器驗(yàn)證的提早展開(kāi)創(chuàng)造了有利條件,不僅提高了處理器芯片的驗(yàn)證效率,而且縮短了軟硬件協(xié)同驗(yàn)證和軟件的研發(fā)周期。

5 結(jié)束語(yǔ)

本文通過(guò)對(duì)處理器設(shè)計(jì)和驗(yàn)證的需求進(jìn)行深入分析,提出了基于模型和庫(kù)的六層激勵(lì)生成器結(jié)構(gòu),并詳細(xì)闡述了激勵(lì)生成器設(shè)計(jì)中有關(guān)模型和庫(kù)的實(shí)現(xiàn)方法,其中指令樹(shù)建模方法和多維訪存地址建模方法是解決處理器研發(fā)中測(cè)試集合失效問(wèn)題的關(guān)鍵技術(shù)?;诖朔椒?,本文設(shè)計(jì)實(shí)現(xiàn)了基于模型和庫(kù)的國(guó)產(chǎn)處理器偽隨機(jī)激勵(lì)生成器KIG,現(xiàn)已經(jīng)成功應(yīng)用于多款不同架構(gòu)的處理器驗(yàn)證,完全實(shí)現(xiàn)了測(cè)試集合的繼承和持續(xù)豐富,達(dá)到良好的驗(yàn)證效果。

[1] Bryant R E.A methodology for hardware verification based on logic simulation[J].Journal of the ACM (JACM),1991,38(2):299-328.

[2] 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 of the 35th Design Automation Conference(DAC’98),1998: 638-643.

[3] Zhang Hang, Shen Hai-hua.Function verification of Godson2 processor[J].Journal of Computer Research and Development,2006,43(6):974-979.(in Chinese)

[4] Schubert K-D,Roesner W,Ludden J M,et al.Functional verication of the IBM POWER7 microprocessor and POWER7 multiprocessor systems[J].IBM Journal of Research .& Development,2011,55(3): 10-17.

[5] Zhu Ying, Chen Cheng,Li Yan-zhe,et al.Creation of FPGA verification platform for a high performance multiple-core microprocessor[J].Journal of Computer Research and Development,2014,51(6): 1295-1303.(in Chinese)

[6] Ludden J M,Roesner W,Heiling G M,et al.Functional verification of the POWER4 microprocessor and POWER4 multiprocessor systems[J].IBM Journal of Research .& Development,2002,46(1):53-76.

[7] Wagner I, Bertacco V, Austin T. StressTest: An automatic approach to test generation via activity monitors [C]∥Proc of the 42nd Design Automation Conference,2005:783-788.

[8] Fournier L,Arbetman Y,Levinger M.Functional verification methodology for microprocessors using the genesys test program generator: Application to the x86 microprocessors family[C]∥Proc of Design Automation and Test in Europe (DATE 99),1999:434-441.

[9] Aharon A,Dave G,Levinger M,et al.Test program generationfor functional verification of power PC processors in IBM[C]∥Proc of ACM/IEEE 32nd Design Automation Conference,1995:279-285.

[10] Lichtenstein Y,Malka Y,Aharon A.Model-based test generation for processor design verification[C]∥Proc of Innovative Applications of Artificial Intelligence (IAAI),1994:83-94.

[11] Zhang Xin, Huang Kai, Meng Jian-yi, et al.Multi-layer random stimulus strategy for microprocessor verification[J].Application Research of Computers,2010,27(4): 1284-1288.(in Chinese)

[12] Accellera. Universal verification methodology 1.1 user’s guide[M].California:Cadence Design Systems Inc,Mentor Graphics Corp.,Synopsys Inc.,2011.

[13] Hu Xiang-dong, Yang Jian-xin,Zhu Ying.Shenwei-1600: A high-performance multi-core microprocessor[J].Scientia Sinica Informationis,2015,45(4):513-522.(in Chinese)

[14] Zhang Chen-xi, Wang Zhi-ying, Zhang Chun-yuan, et al.Computer architecture[M].3rd Edition. Beijing: High Education Press,2006.(in Chinese)

[15] David P,John H.Computer architecture: A quantitative approach[M].4th Edition.San Francisco: Morgan Kaufmann Publishers,2006.

附中文參考文獻(xiàn):

[3] 張珩,沈海華.龍芯2號(hào)微處理器的功能驗(yàn)證[J].計(jì)算機(jī)研究與發(fā)展,2006,43(6):974-979.

[5] 朱英,陳誠(chéng),李彥哲,等.一款高性能多核處理器FPGA驗(yàn)證

平臺(tái)的創(chuàng)建[J].計(jì)算機(jī)研究與發(fā)展,2014,51(6):1295-1303.

[11] 張欣,黃凱,孟建熠,等.一種面向微處理器驗(yàn)證的分層隨機(jī)激勵(lì)方法[J].計(jì)算機(jī)應(yīng)用研究,2010,27(4):1284-1288.

[13] 胡向東,楊劍新,朱英.高性能多核處理器申威1600[J].中國(guó)科學(xué):信息科學(xué),2015,45(4):513-522.

[14] 張晨曦,王志英,張春元,等.計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)[M].第三版.北京:高等教育出版社,2006.

猜你喜歡
指令集寄存器指令
基于Kubernetes的RISC-V異構(gòu)集群云任務(wù)調(diào)度系統(tǒng)①
STM32和51單片機(jī)寄存器映射原理異同分析
3DNow指令集被Linux淘汰
《單一形狀固定循環(huán)指令G90車外圓仿真》教案設(shè)計(jì)
Lite寄存器模型的設(shè)計(jì)與實(shí)現(xiàn)
移位寄存器及算術(shù)運(yùn)算應(yīng)用
基于Dais—CMX模型機(jī)的斐波那契數(shù)列指令集設(shè)計(jì)
中斷與跳轉(zhuǎn)操作對(duì)指令串的影響
什么是AMD64
一種基于滑窗的余度指令判別算法
包头市| 微山县| 南投县| 家居| 搜索| 丰顺县| 莆田市| 贵州省| 扎赉特旗| 孟村| 新民市| 竹山县| 龙胜| 永和县| 襄樊市| 尼木县| 游戏| 吉林市| 禄劝| 页游| 屏东市| 疏附县| 庄浪县| 社旗县| 大石桥市| 曲松县| 武隆县| 南康市| 盐池县| 阳谷县| 化隆| 象山县| 思南县| 肇州县| 堆龙德庆县| 金沙县| 乐都县| 时尚| 尉犁县| 元谋县| 太白县|