白龍飛,樊曉椏,張 萌,孫立超
西北工業(yè)大學(xué) 計(jì)算機(jī)學(xué)院,西安 710129
龍騰Stream流處理器驗(yàn)證
白龍飛,樊曉椏,張 萌,孫立超
西北工業(yè)大學(xué) 計(jì)算機(jī)學(xué)院,西安 710129
VLSI技術(shù)的巨大進(jìn)步使得在單個(gè)芯片上集成超過(guò)數(shù)百萬(wàn)個(gè)晶體管以搭建大規(guī)模的SoC(System on Chip,片上系統(tǒng))成為可能,驗(yàn)證工作已成為芯片設(shè)計(jì)流程中最為關(guān)鍵的瓶頸,大約有70%~80%的設(shè)計(jì)時(shí)間都花費(fèi)在了功能驗(yàn)證中[1]。巨大的驗(yàn)證工作量使得現(xiàn)在很多的新工具和方法學(xué)都把驗(yàn)證作為研究目標(biāo),并通過(guò)并行化、更高層次的抽象和自動(dòng)化來(lái)縮短驗(yàn)證需要的時(shí)間[2]。通過(guò)驗(yàn)證語(yǔ)言、硬件描述語(yǔ)言或C等高級(jí)語(yǔ)言搭建驗(yàn)證平臺(tái)是功能驗(yàn)證中最為重要的驗(yàn)證手段。驗(yàn)證平臺(tái)需要提供各種自動(dòng)化機(jī)制以提高測(cè)試案例的功能覆蓋率和減少創(chuàng)建測(cè)試案例的時(shí)間,從而保證驗(yàn)證過(guò)程更快地達(dá)到收斂。System Verilog[3]是業(yè)界新興的一種硬件描述和驗(yàn)證語(yǔ)言(HDVL),支持受約束隨機(jī)激勵(lì)的產(chǎn)生和覆蓋率統(tǒng)計(jì)分析,其面向?qū)ο蟮木幊探Y(jié)構(gòu)有助于采用事務(wù)級(jí)的驗(yàn)證和提供驗(yàn)證的可重用性[4]。System Verilog面向?qū)ο蟮木幊棠P瓦@一特性能夠極大地增強(qiáng)驗(yàn)證平臺(tái)組件的重用能力,利用驗(yàn)證組件組合成的強(qiáng)大驗(yàn)證環(huán)境能夠滿足被驗(yàn)證設(shè)計(jì)(DUV)的各種必要的測(cè)試案例。
SoC設(shè)計(jì)通常集成了CPU、存儲(chǔ)器及其他功能模塊,并在硬件上運(yùn)行相應(yīng)的嵌入式軟件,因此SoC設(shè)計(jì)的驗(yàn)證工作除了驗(yàn)證硬件設(shè)計(jì)的實(shí)現(xiàn)功能,還需要驗(yàn)證軟件與硬件協(xié)同工作的兼容性和性能[5-6]。傳統(tǒng)的基于RΤL(Register Τransfer Level,寄存器傳輸級(jí))的軟件驗(yàn)證平臺(tái)由于仿真速度的限制[7],存在著時(shí)間開(kāi)銷(xiāo)大、仿真效率低的問(wèn)題。此外,由于RΤL級(jí)仿真忽略了大量的電路實(shí)際延遲,其性能分析的評(píng)估數(shù)據(jù)過(guò)于樂(lè)觀。而基于FPGA原型的軟硬件協(xié)同驗(yàn)證可以快速完成驗(yàn)證并保持周期精確,同時(shí)降低了開(kāi)發(fā)風(fēng)險(xiǎn),避免了由于仿真模型的缺陷而引起大量的芯片故障,極大地提高了SoC設(shè)計(jì)的驗(yàn)證效率[7-8]。
西北工業(yè)大學(xué)航空微電子中心對(duì)面向流計(jì)算的主動(dòng)適應(yīng)體系結(jié)構(gòu)進(jìn)行深入研究,成功設(shè)計(jì)出了龍騰Stream流處理器。本文通過(guò)開(kāi)發(fā)基于System Verilog的覆蓋率驅(qū)動(dòng)的自動(dòng)化驗(yàn)證平臺(tái),對(duì)流處理器的指令集進(jìn)行了全面的功能驗(yàn)證,并搭建FPGA原型系統(tǒng)對(duì)流處理器的實(shí)現(xiàn)功能和性能進(jìn)行了深入評(píng)測(cè)。根據(jù)在原型系統(tǒng)上的性能評(píng)測(cè)結(jié)果,分析了影響流處理器性能的關(guān)鍵因素,并提出了優(yōu)化流處理器加速性能的方法。

圖1 龍騰Stream流處理器計(jì)算平臺(tái)
龍騰Stream流處理器[9]是針對(duì)具有大量數(shù)據(jù)并行性、計(jì)算密集型的應(yīng)用而設(shè)計(jì)的面向于短向量的適應(yīng)性流體系結(jié)構(gòu),以多套單指令多數(shù)據(jù)模式的短向量簇實(shí)現(xiàn)程序的并行加速。
流處理器以層次化的片上流存儲(chǔ)體系捕獲數(shù)據(jù)局部性的,其存儲(chǔ)結(jié)構(gòu)分為三級(jí):片外存儲(chǔ)器、片上局部存儲(chǔ)器和寄存器文件。主控核組織數(shù)據(jù)流并通過(guò)總線傳到片上局部存儲(chǔ)器中,向量指令集中的Load/Store指令將片上局部存儲(chǔ)器中的數(shù)據(jù)搬移到寄存器組中,計(jì)算部件直接從寄存器組中取數(shù)據(jù)。
流處理器計(jì)算平臺(tái)包含短向量計(jì)算簇、標(biāo)量單元以及局部存儲(chǔ)模塊,如圖1所示。
2.1 短向量計(jì)算簇
短向量計(jì)算簇(Short Vector Cluster,SVC)是實(shí)現(xiàn)計(jì)算平臺(tái)的主要計(jì)算部件,主要包括向量Load/Store單元(VLSU),向量簡(jiǎn)單定點(diǎn)計(jì)算單元(VSIU),向量復(fù)雜定點(diǎn)計(jì)算單元(VCIU),向量置換單元(VPU),向量浮點(diǎn)計(jì)算單元(VFPU),向量寄存器文件(VRF)。計(jì)算平臺(tái)集成4套短向量計(jì)算簇,每套短向量計(jì)算簇?fù)碛懈髯元?dú)立對(duì)應(yīng)的向量寄存器文件,以SIMD方式執(zhí)行操作。
2.2 標(biāo)量單元
標(biāo)量單元(Scalar Unit)包含32個(gè)標(biāo)量寄存器,1個(gè)條件寄存器和ALU單元。其主要功能是少量的標(biāo)量運(yùn)算以及獨(dú)立的標(biāo)量訪存,輔助短向量計(jì)算簇實(shí)現(xiàn)循環(huán)操作,同時(shí)為計(jì)算簇的訪存單元計(jì)算有效地址提供支持。
2.3 局部存儲(chǔ)模塊
局部存儲(chǔ)模塊(Local Memory)為計(jì)算平臺(tái)提供指令和數(shù)據(jù)的存儲(chǔ)空間,共有四種不同的存儲(chǔ)模塊,分別為指令存儲(chǔ)模塊(Instruction Memory)、標(biāo)量數(shù)據(jù)存儲(chǔ)模塊(Scalar Data Memory)、配置存儲(chǔ)模塊(Configuration Memory)和向量數(shù)據(jù)存儲(chǔ)模塊(Stream Memory)。指令存儲(chǔ)模塊存儲(chǔ)主控核傳遞過(guò)來(lái)的指令;標(biāo)量數(shù)據(jù)存儲(chǔ)模塊存儲(chǔ)標(biāo)量數(shù)據(jù)并供標(biāo)量單元使用;配置存儲(chǔ)模塊存儲(chǔ)用戶寫(xiě)入的控制數(shù)據(jù),主要功能是寫(xiě)入程序的起始地址和結(jié)束地址,控制計(jì)算單元的執(zhí)行與結(jié)束;向量數(shù)據(jù)存儲(chǔ)模塊主要存儲(chǔ)提供給SVC計(jì)算部件的向量數(shù)據(jù)。
龍騰Stream流處理器的指令集采用RISC設(shè)計(jì)原則,指令長(zhǎng)度為32位,指令格式規(guī)整,實(shí)現(xiàn)了152條向量指令和10條標(biāo)量指令。向量指令完成簡(jiǎn)單和復(fù)雜的定點(diǎn)運(yùn)算、浮點(diǎn)乘加和其他一些向量數(shù)據(jù)處理功能。標(biāo)量指令主要用于循環(huán)控制、標(biāo)量訪存以及向量LSU指令中的標(biāo)量操作。流處理器的指令格式如圖2和圖3所示。

圖2 向量指令格式

圖3 標(biāo)量指令格式

圖4 流處理器驗(yàn)證平臺(tái)結(jié)構(gòu)
本驗(yàn)證采用基于System Verilog的高級(jí)驗(yàn)證方法學(xué)[10]搭建覆蓋率驅(qū)動(dòng)的自動(dòng)化驗(yàn)證平臺(tái),完成流處理器指令集的功能驗(yàn)證。流處理器驗(yàn)證平臺(tái)的結(jié)構(gòu)設(shè)計(jì)如圖4所示。驗(yàn)證平臺(tái)為分層次結(jié)構(gòu),每個(gè)層次給其上層或測(cè)試案例提供服務(wù),并通過(guò)抽象隱藏低層次細(xì)節(jié)[10-12]。
驗(yàn)證平臺(tái)主要包括指令序列生成器、驅(qū)動(dòng)器、監(jiān)測(cè)器、參考模型、自檢器以及功能覆蓋率分析等組件。發(fā)生器使用藍(lán)圖模式[11]產(chǎn)生一條受約束的隨機(jī)指令,將其發(fā)送給參考模型得到期望響應(yīng)并回調(diào)給自檢器,同時(shí)通過(guò)Mailbox發(fā)送到驅(qū)動(dòng)器。驅(qū)動(dòng)器將指令激勵(lì)發(fā)送給DUV,監(jiān)測(cè)器檢測(cè)到流處理器運(yùn)行結(jié)束后將接收到的實(shí)際響應(yīng)回調(diào)給自檢器,并通知發(fā)生器生成下一條指令激勵(lì)。自檢器對(duì)期望響應(yīng)和實(shí)際響應(yīng)進(jìn)行比較后輸出測(cè)試報(bào)告。
3.1 發(fā)生器
該驗(yàn)證平臺(tái)要完成流處理器實(shí)現(xiàn)的152條向量指令和10條標(biāo)量指令的驗(yàn)證。考慮到指令集中指令的操作碼并不完備,且指令格式也不一致,完全隨機(jī)的生成方式需要排除掉大量非法指令,受約束的隨機(jī)生成方式則要求編寫(xiě)大量的約束條件。因此考慮將操作碼和操作數(shù)分開(kāi)隨機(jī)生成,再根據(jù)指令類(lèi)型封裝成完整的指令激勵(lì)。本文將待測(cè)指令的操作碼存入指令數(shù)組,通過(guò)約束邊界隨機(jī)生成數(shù)組索引得到指令操作碼。指令中的操作數(shù)及對(duì)應(yīng)寄存器內(nèi)容的邊界較為規(guī)整,因此采用受約束的隨機(jī)方式生成。
所有約束使用帶有范圍變量的inside運(yùn)算符和權(quán)重變量的dist操作符來(lái)參數(shù)化約束條件,不需要手動(dòng)修改約束驗(yàn)證平臺(tái)便可改變指令發(fā)生器的激勵(lì)產(chǎn)生行為。指令類(lèi)中inside和dist約束的操作碼索引的生成按若干段均勻分布,操作數(shù)對(duì)應(yīng)寄存器內(nèi)容的生成分布按待驗(yàn)證的指令功能點(diǎn)劃分,比如加減法指令溢出、浮點(diǎn)指令非法操作等異常情況。
3.2 驅(qū)動(dòng)器
流處理器的指令集按操作數(shù)數(shù)目可分為四類(lèi),如表1所示。驅(qū)動(dòng)器根據(jù)指令類(lèi)別分情況配置流處理器的四個(gè)存儲(chǔ)模塊,實(shí)現(xiàn)指令激勵(lì)的驅(qū)動(dòng)。

表1 流處理器指令分類(lèi)表
向量指令驅(qū)動(dòng)的處理步驟為:(1)通過(guò)對(duì)標(biāo)量數(shù)據(jù)存儲(chǔ)模塊進(jìn)行寫(xiě)操作,設(shè)定待測(cè)指令四個(gè)操作數(shù)的存放地址;(2)將源操作數(shù)寫(xiě)入向量數(shù)據(jù)存儲(chǔ)模塊;(3)組織指令,在待測(cè)指令前安排Load指令將源操作數(shù)裝入向量寄存器,其后安排Store指令將向量寄存器中的執(zhí)行結(jié)果存儲(chǔ)到向量數(shù)據(jù)模塊;(4)將組織好的指令序列寫(xiě)入指令存儲(chǔ)模塊;(5)寫(xiě)配置存儲(chǔ)模塊設(shè)定流處理器執(zhí)行的指令序列的起始與結(jié)束地址;(6)寫(xiě)配置存儲(chǔ)模塊啟動(dòng)流處理器進(jìn)入工作狀態(tài)。
驅(qū)動(dòng)Load/Store指令時(shí)需額外考慮目的操作數(shù)/源操作數(shù)的存放地址,以避免和源操作數(shù)/目的操作數(shù)的地址發(fā)生沖突。
3.3 監(jiān)測(cè)器
由于不同類(lèi)型指令的執(zhí)行結(jié)果存放位置不同,因此監(jiān)測(cè)器需要根據(jù)指令類(lèi)型設(shè)定讀取地址。
監(jiān)測(cè)器首先從與發(fā)生器相連的Mailbox中讀取指令激勵(lì),根據(jù)指令索引判斷指令類(lèi)型并設(shè)定讀取指令執(zhí)行結(jié)果的地址。通過(guò)監(jiān)視配置存儲(chǔ)模塊的處理器狀態(tài)寄存器,在流處理器執(zhí)行結(jié)束后讀取指令執(zhí)行結(jié)果并回調(diào)給自檢器,同時(shí)通知發(fā)生器該指令執(zhí)行完畢。
3.4 自檢查結(jié)構(gòu)
本驗(yàn)證平臺(tái)的自檢查結(jié)構(gòu)采用基于參考模型的黑盒驗(yàn)證手段。如圖5所示,激勵(lì)同時(shí)施加給DUV和參考模型,參考模型動(dòng)態(tài)預(yù)測(cè)期望響應(yīng),比較函數(shù)將期望響應(yīng)與實(shí)際響應(yīng)進(jìn)行比較。

圖5 驗(yàn)證平臺(tái)的自檢查結(jié)構(gòu)
本驗(yàn)證平臺(tái)的參考模型用C語(yǔ)言實(shí)現(xiàn),通過(guò)直接編程接口(DPI)[3]將其集成到System Verilog驗(yàn)證環(huán)境中。參考模型根據(jù)指令激勵(lì)的索引調(diào)用相應(yīng)的執(zhí)行函數(shù)得到期望響應(yīng)。參考模型的期望響應(yīng)輸出與DUV的實(shí)際響應(yīng)輸出之間的延遲不一,需要自檢器對(duì)其周期匹配后再進(jìn)行比較。本文先將參考模型輸出的期望響應(yīng)保存,在監(jiān)視器得到實(shí)際響應(yīng)后調(diào)用比較函數(shù)進(jìn)行比較,并輸出測(cè)試報(bào)告。
3.5 功能覆蓋率
由于本驗(yàn)證平臺(tái)是對(duì)流處理器的指令集進(jìn)行功能驗(yàn)證,因此功能覆蓋率的分析主要關(guān)注指令類(lèi)型及其功能點(diǎn)的覆蓋,即指令集中的所有指令及其異常情況是否全部生成并驗(yàn)證。
覆蓋組使用cross結(jié)構(gòu)記錄操作碼索引和操作數(shù)對(duì)應(yīng)寄存器內(nèi)容覆蓋點(diǎn)的組合值。驗(yàn)證環(huán)境的總體覆蓋率計(jì)算由所有簡(jiǎn)單覆蓋點(diǎn)和交叉覆蓋點(diǎn)的命中情況決定,而本驗(yàn)證平臺(tái)的覆蓋率目標(biāo)僅由交叉覆蓋率反映,因此將各個(gè)覆蓋點(diǎn)的覆蓋率權(quán)重置為零,以防止總體覆蓋率被錯(cuò)誤地提高。操作碼索引覆蓋點(diǎn)的每個(gè)值對(duì)應(yīng)一個(gè)倉(cāng),寄存器內(nèi)容覆蓋點(diǎn)則按待驗(yàn)證指令的功能點(diǎn)創(chuàng)建倉(cāng),并使用ignore_bins結(jié)構(gòu)清除掉不需要關(guān)注的操作碼索引和寄存器內(nèi)容組合對(duì)應(yīng)的交叉?zhèn)}。
覆蓋率分析器通過(guò)對(duì)參考模型輸出和監(jiān)測(cè)器接收到的響應(yīng)數(shù)據(jù)進(jìn)行采樣,實(shí)時(shí)統(tǒng)計(jì)覆蓋組的功能覆蓋率及各功能點(diǎn)的命中情況,并根據(jù)分析結(jié)果動(dòng)態(tài)調(diào)整指令生成器中約束條件的范圍和權(quán)重。通過(guò)從功能覆蓋率到生成器的反饋使驗(yàn)證過(guò)程自動(dòng)集中在覆蓋率空間中未被覆蓋的區(qū)域,最終達(dá)到指令類(lèi)型及其功能點(diǎn)全覆蓋的目標(biāo)。
通過(guò)分析覆蓋率報(bào)告修改隨機(jī)約束或人工編寫(xiě)定向測(cè)試激勵(lì)可以提高驗(yàn)證的覆蓋率,但需要測(cè)試人員的實(shí)時(shí)干預(yù)。改變隨機(jī)種子并添加到回歸測(cè)試包的方法在不同版本仿真器和約束解釋器中重用驗(yàn)證平臺(tái)時(shí)會(huì)出現(xiàn)問(wèn)題,使用相同的種子可能生成不同的激勵(lì),覆蓋率漏洞會(huì)因?yàn)榧?lì)的不同而不同。本文實(shí)現(xiàn)的覆蓋率自動(dòng)反饋機(jī)制不僅減少了人工的干預(yù)和工作量,而且使得驗(yàn)證平臺(tái)在移植到不同仿真軟件上時(shí)具有良好的通用性。
實(shí)驗(yàn)分別使用VCS和Questasim仿真軟件運(yùn)行驗(yàn)證平臺(tái),均獲得了100%的功能覆蓋率,表明驗(yàn)證平臺(tái)具有良好的可移植性。驗(yàn)證平臺(tái)共檢測(cè)出23個(gè)bug(浮點(diǎn)指令:14個(gè),置換指令:8個(gè),簡(jiǎn)單定點(diǎn)指令:1個(gè))。同原有的功能仿真驗(yàn)證平臺(tái)相比,本驗(yàn)證平臺(tái)大大提高了驗(yàn)證效率和覆蓋率,如表2所示。

表2 覆蓋率驅(qū)動(dòng)的驗(yàn)證平臺(tái)同原有功能驗(yàn)證平臺(tái)比較
龍騰Stream流處理器的FPGA原型驗(yàn)證系統(tǒng)[13]的結(jié)構(gòu)如圖6所示。流處理器通過(guò)Avalon Slave總線連接到基于Nios II處理器的硬件系統(tǒng)中,其運(yùn)行受到主處理器的控制。標(biāo)量主處理器Nios II承擔(dān)流處理過(guò)程中的控制和數(shù)據(jù)的組織傳遞,包括啟動(dòng)計(jì)算平臺(tái),控制傳入到計(jì)算平臺(tái)的輸入數(shù)據(jù),對(duì)計(jì)算平臺(tái)的運(yùn)行結(jié)束信號(hào)進(jìn)行檢測(cè),執(zhí)行流級(jí)程序。流處理器原型作為協(xié)處理器實(shí)現(xiàn)流應(yīng)用的運(yùn)算加速。

圖6 流處理器FPGA驗(yàn)證平臺(tái)
FPGA原型驗(yàn)證系統(tǒng)通過(guò)運(yùn)行測(cè)試程序集完成流處理器實(shí)現(xiàn)功能及性能的評(píng)測(cè)工作。測(cè)試程序集選用典型的流應(yīng)用實(shí)例,包含了傳統(tǒng)的圖像處理應(yīng)用、常用的數(shù)字信號(hào)處理應(yīng)用以及通用計(jì)算與科學(xué)計(jì)算。根據(jù)流處理器原型系統(tǒng)設(shè)計(jì)測(cè)試程序的軟件架構(gòu),對(duì)應(yīng)用實(shí)現(xiàn)并行化流編程。在測(cè)試程序中加入串行的參考程序,以驗(yàn)證FPGA原型系統(tǒng)的正確性。原型系統(tǒng)的性能評(píng)測(cè)環(huán)境如表3所示。

表3 性能評(píng)測(cè)環(huán)境
性能評(píng)測(cè)以通用計(jì)算架構(gòu)作為對(duì)比,分別對(duì)流應(yīng)用程序進(jìn)行測(cè)試,精確統(tǒng)計(jì)程序執(zhí)行的周期數(shù)。通過(guò)比對(duì)運(yùn)行結(jié)果,并行程序和參考的串行程序完全一致,從而驗(yàn)證了流處理器實(shí)現(xiàn)功能和FPGA原型系統(tǒng)的正確性和可靠性。圖7列出了流處理器原型系統(tǒng)相對(duì)于MPC8270的加速比,大部分流應(yīng)用均在流處理器原型系統(tǒng)上取得了可觀的加速效果,平均加速比可達(dá)15.9。

圖7 流處理器原型系統(tǒng)相對(duì)于MPC8270的加速比
造成各流應(yīng)用加速效果差異的主要原因是核級(jí)程序的并行處理寬度不同,向量點(diǎn)積、FIR、Laplace變換、均勻量化、DCΤ和FFΤ的并行寬度均為16,矩陣乘法的并行寬度為32,而中值濾波的并行寬度為64,所以中值濾波和矩陣乘法均取得了不錯(cuò)的加速效果。
流應(yīng)用的核級(jí)執(zhí)行時(shí)間所占比例也是影響加速效果的一個(gè)重要因素。測(cè)試程序的核級(jí)執(zhí)行時(shí)間所占比例如圖8所示。核級(jí)執(zhí)行時(shí)間比例較大的應(yīng)用容易獲得較好的加速效果,比如DCΤ、矩陣乘法和中值濾波。

圖8 測(cè)試程序的核級(jí)程序執(zhí)行時(shí)間所占比例
實(shí)驗(yàn)結(jié)果發(fā)現(xiàn),F(xiàn)FΤ算法的加速性能并不理想。該算法每一級(jí)的蝶形運(yùn)算在核級(jí)程序中通過(guò)短向量簇并行加速完成,但由于流體系只適合處理規(guī)則的流數(shù)據(jù),每一級(jí)運(yùn)算的數(shù)據(jù)置換操作則需要標(biāo)量主處理器來(lái)承擔(dān)。盡管核級(jí)程序具有極大的并行數(shù)據(jù)寬度,但流存儲(chǔ)器對(duì)總線的帶寬僅有32位,這使得大量的程序執(zhí)行時(shí)間耗費(fèi)在了數(shù)據(jù)來(lái)回遷移的過(guò)程中,大幅降低了核級(jí)程序執(zhí)行時(shí)間所占的比例,從而制約了加速性能的發(fā)揮。
主協(xié)處理器異構(gòu)核間相差巨大的數(shù)據(jù)帶寬已成為制約流處理器系統(tǒng)性能的瓶頸,開(kāi)發(fā)具有更高帶寬的片上數(shù)據(jù)總線或數(shù)據(jù)傳輸方式是提升流處理器計(jì)算性能的關(guān)鍵。因此,對(duì)流處理器結(jié)構(gòu)的優(yōu)化可以從兩個(gè)方面考慮,一是通過(guò)支持組間交叉存儲(chǔ)和數(shù)據(jù)流索引訪問(wèn),為隨機(jī)訪存提供強(qiáng)大的數(shù)據(jù)帶寬;二是在片上局部存儲(chǔ)器和片外存儲(chǔ)器中間加入DMA模塊,提高數(shù)據(jù)在主控處理器和流處理器之間傳輸?shù)乃俣取?/p>
本文通過(guò)開(kāi)發(fā)基于System Verilog的覆蓋率驅(qū)動(dòng)的自動(dòng)化驗(yàn)證平臺(tái),對(duì)龍騰Stream流處理器的指令集進(jìn)行了功能驗(yàn)證,提高了驗(yàn)證的效率和覆蓋率,驗(yàn)證平臺(tái)具有良好的重用性和可移植性。搭建FPGA原型系統(tǒng)對(duì)流處理器的實(shí)現(xiàn)功能和系統(tǒng)性能進(jìn)行了評(píng)測(cè),并根據(jù)實(shí)驗(yàn)結(jié)果分析了影響流處理器性能的關(guān)鍵因素,并提出了優(yōu)化流處理器結(jié)構(gòu)的方法。未來(lái)將在可靠數(shù)據(jù)帶寬、多粒度并行和編程模型等方面作深入研究,進(jìn)一步改進(jìn)流處理器原型系統(tǒng)。
[1]Mulani P D.SoC level verification using System Verilog[C]// Second International Conference on Emerging Τrends in Engineering and Τechnology,Nagpur,2009.
[2]Bergeron J.Writing testbenches:functional verification of HDL models[M].2nd ed.New York:Springer,2003:3-4.
[3]SystemVerilog Standards Committee.SystemVerilog 3.1a language reference manual[R/OL].(2004-03-04).http://www. eda-stds.org/sv.
[4]鐘文楓.System Verilog與功能驗(yàn)證[M].北京:機(jī)械工業(yè)出版社,2010:22-23.
[5]Huang Xu,Liu Lintao,Li Yujing,et al.FPGA verification methodology for SiSoC based SoC design[C]//International Conference on Electron Devices and Solid-State Circuits,Τianjin,2011.
[6]Chen Wenwei,Zhang Jinyi,Li Jiao,et al.Study on a mixed verification strategy forIP-based SoC design[C]//Seventh IEEE CPMΤ Conference on High Density Microsystem Design and Packaging and Component Failure Analysis,Shanghai,2005.
[7]Nakamura Y,Hosokawa K,Kuroda L,et al.A fast hardware/ software co-verification method for system-on-a-chip by using a C/C++simulator and FPGA emulator with shared register communication[C]//41st Design Automation Conference,San Diego,2004.
[8]Lin Yifan,Zeng Xiaoyang,Wu Min,et al.New methods of FPGA co-verification for System on Chip(SoC)[C]//Sixth International Conference on ASIC,Shanghai,2005.
[9]開(kāi)耀文.多核流處理器原型系統(tǒng)設(shè)計(jì)[D].西安:西北工業(yè)大學(xué),2012.
[10]Bergeron J,Cerny E,Hunter A,et al.Verification methodology manual for SystemVerilog[M].New York:Springer,2005:1-280.
[11]Spear C,Τumbush G.SystemVerilog for verification:a guide to learning the testbench language features[M].3rd ed.New York:Springer,2012:1-22,280-284,323-360.
[12]Bergeron J.Writing testbenches using SystemVerilog[M].New York:Springer,2006:279-331.
[13]張宇軒.流處理器演示系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D].西安:西北工業(yè)大學(xué),2012.
[14]S2C dual stratix-4 ΤAI LM hardware reference manual[R]. California:S2C Inc.,2010.
[15]MPC8280 PowerQUICCII family reference manual[R].Τexas:Freescale Semiconductor,Inc.,2005.
BAI Longfei,FAN Xiaoya,ZHANG Meng,SUN Lichao
School of Computer Science,Northwestern Polytechnical University,Xi’an 710129,China
Τhe improvement of chip design complexity urgently needs advanced methodology to cope with the huge workload of verification.Τhis paper presents a method for functional verification of the“Longtium Stream”processor instruction set by constructing an automatic coverage-driven verification platform.Τhe experimental results show that the method improves the efficiency and functional coverage of verification and enhances the reusability and portability of the verification platform.Τhis paper builds a FPGA prototype system to evaluate the functionality and performance of the Stream processor,and proposes optimization methods for accelerating its performance.
Stream processor;instruction set verification;System Verilog;Field Programmable Gate Array(FPGA)prototype verification
芯片設(shè)計(jì)復(fù)雜度的提高迫切地需要先進(jìn)的方法學(xué)以應(yīng)對(duì)巨大的驗(yàn)證工作量。通過(guò)開(kāi)發(fā)基于System Verilog的覆蓋率驅(qū)動(dòng)的自動(dòng)化驗(yàn)證平臺(tái),對(duì)龍騰Stream流處理器的指令集進(jìn)行了功能驗(yàn)證。實(shí)驗(yàn)結(jié)果表明,該驗(yàn)證平臺(tái)提高了驗(yàn)證效率和功能覆蓋率,具有良好的重用性和可移植性。搭建FPGA原型驗(yàn)證系統(tǒng)對(duì)流處理器的功能和系統(tǒng)性能進(jìn)行了評(píng)測(cè),并提出了優(yōu)化流處理器加速性能的方法。
流處理器;指令集驗(yàn)證;System Verilog;現(xiàn)場(chǎng)可編程門(mén)陣列(FPGA)原型驗(yàn)證
A
ΤP303
10.3778/j.issn.1002-8331.1304-0160
BAI Longfei,FAN Xiaoya,ZHANG Meng,et al.Verification of“Longtium Stream”processor.Computer Engineering and Applications,2013,49(15):65-69.
國(guó)家高技術(shù)研究發(fā)展計(jì)劃(863)(No.2009AA01Z110);教育部博士點(diǎn)基金(No.20116102120049)。
白龍飛(1988—),男,碩士研究生,主要研究領(lǐng)域?yàn)橛?jì)算機(jī)系統(tǒng)結(jié)構(gòu);樊曉椏(1962—),男,博士,教授,主要研究領(lǐng)域?yàn)橛?jì)算機(jī)系統(tǒng)結(jié)構(gòu);張萌(1978—),男,博士,講師,主要研究領(lǐng)域?yàn)橛?jì)算機(jī)系統(tǒng)結(jié)構(gòu);孫立超(1989—),男,碩士研究生,主要研究領(lǐng)域?yàn)橛?jì)算機(jī)系統(tǒng)結(jié)構(gòu)。E-mail:bailongfei@mail.nwpu.edu.cn
2013-04-11
2013-05-27
1002-8331(2013)15-0065-05
◎網(wǎng)絡(luò)、通信、安全◎