蔣 林, 王杏軍, 劉鎮(zhèn)弢, 宋 輝
(西安郵電大學(xué) 電子工程學(xué)院, 陜西 西安 710121)
基于SystemC的可重構(gòu)陣列處理器模型
蔣林, 王杏軍, 劉鎮(zhèn)弢, 宋輝
(西安郵電大學(xué) 電子工程學(xué)院, 陜西 西安 710121)
摘要:基于可重構(gòu)技術(shù)以及SystemC的體系結(jié)構(gòu)建模特點(diǎn),構(gòu)建一種基于SystemC的可重構(gòu)陣列處理器模型。采用模塊化的SystemC系統(tǒng)模型分別對(duì)指令傳輸模塊、處理元模塊以及鄰接互連模塊建模,構(gòu)成32×32的可重構(gòu)陣列處理器。通過指令傳輸模塊實(shí)現(xiàn)局部和非局部?jī)煞N單指令多數(shù)據(jù)模式的快速切換,使用鄰接互連模塊完成處理元間的通信。對(duì)建立的模型進(jìn)行仿真驗(yàn)證,同時(shí)將高效視頻編解碼標(biāo)準(zhǔn)中視頻算法映射到該模型上。仿真結(jié)果表明,該模型搭建正確,能夠?qū)崿F(xiàn)視頻編解碼標(biāo)準(zhǔn)中視頻算法的并行化映射。
關(guān)鍵詞:陣列處理器;可重構(gòu)技術(shù);SystemC;體系結(jié)構(gòu)建模
視頻處理技術(shù)[1]以數(shù)據(jù)并行和密集型運(yùn)算為特征,已廣泛應(yīng)用于高清信號(hào)傳輸、視頻聊天、視頻會(huì)議等方面[2],其要求具有運(yùn)算能力較高的處理器來應(yīng)對(duì)復(fù)雜多變的網(wǎng)絡(luò)應(yīng)用環(huán)境[3-4]。可重構(gòu)陣列處理器[5]具有強(qiáng)大的處理能力和優(yōu)越的可擴(kuò)展性等特點(diǎn),已成為視頻處理技術(shù)研究熱點(diǎn)之一。
系統(tǒng)級(jí)建模工具SystemC[6-7],綜合了硬件特有的并行性和軟件設(shè)計(jì)的便捷性,可通過仿真來分析和優(yōu)化可重構(gòu)處理器結(jié)構(gòu)。文獻(xiàn)[8]提出了動(dòng)態(tài)可重構(gòu)系統(tǒng)的概念,并采用SystemC對(duì)其進(jìn)行系統(tǒng)級(jí)建模,通過指定上下文切換時(shí)間和被選功能的激活時(shí)間來評(píng)估總線周期精確的性能,但是該系統(tǒng)采用上下文切換,只能改變不同功能的重構(gòu),不能實(shí)現(xiàn)部分可重構(gòu)機(jī)制。一種動(dòng)態(tài)可重構(gòu)協(xié)處理器(DynamicllyReconfigurableCo-processors,DRC)結(jié)構(gòu)[9],解決了文獻(xiàn)[8]中缺陷,可以支持部分可重構(gòu),可對(duì)不同可重構(gòu)方案進(jìn)行快速設(shè)計(jì)空間探索。基于SystemC的周期精確級(jí)數(shù)字信號(hào)處理器(DigitalSignalProcessing,DSP)的建模方法[10],改善了高級(jí)語言在模型精度方面的不足。但是上述方法都缺乏對(duì)數(shù)據(jù)并行和密集型等視頻算法的適應(yīng)性。
本文擬采用SystemC對(duì)可重構(gòu)陣列處理器進(jìn)行體系結(jié)構(gòu)建模,該模型由1 024個(gè)同構(gòu)、規(guī)則處理元組成,相鄰處理元之間以鄰接互連形式組成32×32的處理器陣列,通過全局控制器實(shí)現(xiàn)對(duì)1 024個(gè)處理元的控制和管理。
1可重構(gòu)陣列處理器系統(tǒng)結(jié)構(gòu)
可重構(gòu)陣列處理器系統(tǒng)由主處理器、接口控制器、全局指令存儲(chǔ)器、輸入/輸出存儲(chǔ)器和可重構(gòu)陣列處理器組成,結(jié)構(gòu)如圖1所示。

圖1 可重構(gòu)陣列處理器系統(tǒng)結(jié)構(gòu)
主處理器通過接口控制器負(fù)責(zé)控制調(diào)度可重構(gòu)陣列處理器;全局指令存儲(chǔ)器用于存儲(chǔ)可重構(gòu)陣列處理器工作的操作指令和調(diào)用指令;輸入/輸出存儲(chǔ)器用于存放陣列處理器需要的輸入和處理數(shù)據(jù);可重構(gòu)陣列處理器用于完成主處理器分配的任務(wù),由指令傳輸網(wǎng)絡(luò)、處理元(ProcessingElement,PE)和鄰接互連網(wǎng)絡(luò)組成。
1.1指令傳輸網(wǎng)絡(luò)
指令傳輸網(wǎng)絡(luò)是可重構(gòu)陣列處理器的管理核心,當(dāng)全局控制器的控制信號(hào)有效時(shí),指令傳輸網(wǎng)絡(luò)依照H型網(wǎng)絡(luò)[11]將指令傳輸?shù)较鄳?yīng)的PE中,如圖2所示,正方形為傳輸節(jié)點(diǎn),到達(dá)的第1個(gè)節(jié)點(diǎn)命名為1,第2個(gè)節(jié)點(diǎn)有兩個(gè),分別命名為2-1和2-2,其他節(jié)點(diǎn)的命名方式與此類似,每個(gè)傳輸節(jié)點(diǎn)的終點(diǎn)為PE。
指令傳輸網(wǎng)絡(luò)包括掩碼檢測(cè)單元和尋址單元,其中掩碼檢測(cè)單元接收到全局控制器發(fā)送的42bit尋址信息后,其格式如圖3所示。掩碼檢測(cè)單元根據(jù)[31:30]兩位信息檢測(cè)出該指令是局部單指令多數(shù)據(jù)(SingleInstructionMultipleData,SIMD)模式和非局部SIMD模式的操作指令、調(diào)用指令。如果[31∶30]兩位是10,表示該指令是局部SIMD模式的操作指令,將高10位掩碼信息保存,并在下個(gè)周期和指令的尋址信息一起下發(fā)到選中的PE。否則高10位直接作為尋址信息。尋址單元負(fù)責(zé)對(duì)1 024個(gè)PE進(jìn)行尋址,圖4給出了節(jié)點(diǎn)1的尋址邏輯流程,通過對(duì)到達(dá)節(jié)點(diǎn)1的42bit信息的最高位進(jìn)行檢測(cè),如果是1將低41bit信息發(fā)送到2-1;如果是0則將41bit信息發(fā)送到2-2。其他節(jié)點(diǎn)的處理過程與此類似,最終完成對(duì)1 024個(gè)PE的尋址。

圖2 指令傳輸網(wǎng)絡(luò)

圖3 傳輸指令的格式

圖4 節(jié)點(diǎn)的尋址邏輯流程
1.2處理元
可重構(gòu)陣列處理器可以支持1 024個(gè)PE。每個(gè)PE由算術(shù)邏輯單元(ArithmeticLogicUnit,ALU)、指令存儲(chǔ)器、數(shù)據(jù)存儲(chǔ)器、指令寄存器(InstructionRegister,IR)、譯碼單元、控制器、鄰接互連控制器和寄存器文件組成,整體結(jié)構(gòu)如圖5所示。每個(gè)時(shí)鐘周期,控制器根據(jù)當(dāng)前的地址值和偏移地址,產(chǎn)生下一個(gè)周期的程序計(jì)數(shù)器(ProgramCounter,PC),根據(jù)該地址將指令存儲(chǔ)中選定的指令送入IR。PE中有12個(gè)IR,其中R0、R1、R2、R3、R4、R5、R6、R7等8個(gè)寄存器為PE私有的,RE、RW、RS、RN等4個(gè)寄存器為東、西、南、北方向相鄰PE的共享寄存器。

圖5 處理元結(jié)構(gòu)
1.3鄰接互連網(wǎng)絡(luò)
通過互連單元實(shí)現(xiàn)互連網(wǎng)絡(luò),其主要對(duì)指令地址碼中碼字是RE、RS、RW、RN的寄存器進(jìn)行管理。鄰接互連控制器的具體實(shí)現(xiàn)如圖6所示。

圖6 鄰接互連控制模塊功能
如圖6(a)所示,地址碼是目的操作數(shù),表示本地PE要將運(yùn)算結(jié)果寫到相鄰PE的寄存器中。以ADDRE,R2,R1這條指令為例來說明,當(dāng)PE的譯碼單元檢測(cè)到目的操作數(shù)為RE,鄰接互連控制器把R1和R2相加的結(jié)果寫到端口eo_data2,同時(shí)將寫信號(hào)eo_w拉高。
如圖6(b)所示,地址碼是源操作數(shù),表示本地PE要將相鄰PE寄存器中的數(shù)據(jù)作為源操作數(shù)進(jìn)行操作。以ADDR2,RE,R1這條指令為例來說明,當(dāng)PE的譯碼單元檢測(cè)到源操作數(shù)為RE,將讀信號(hào)eo_r拉高。東邊PE的鄰接互連控制器檢測(cè)到該信號(hào)有效時(shí),把與本地PE共享寄存器中的數(shù)據(jù)傳輸給ei_data2。
2可重構(gòu)陣列處理器建模
2.1建模系統(tǒng)設(shè)計(jì)
可重構(gòu)陣列處理器模型系統(tǒng)如圖7所示。用戶界面通過匯編器將匯編程序解釋成機(jī)器能夠識(shí)別的二進(jìn)制指令碼,并將這些二進(jìn)制指令碼送往視頻陣列處理器,同時(shí)用戶界面通過進(jìn)程間通信啟用ModelSim10.1d仿真軟件對(duì)可重構(gòu)陣列處理器進(jìn)行仿真,可重構(gòu)陣列處理器的仿真結(jié)果反饋給用戶界面以方便對(duì)該系統(tǒng)進(jìn)行性能分析。

圖7 可重構(gòu)陣列處理器模型系統(tǒng)
用戶通過在Windows菜單中單擊代表特定窗口的一項(xiàng),就可以激活該窗口,點(diǎn)擊圖標(biāo)B將匯編程序翻譯成二進(jìn)制的形式,點(diǎn)擊圖標(biāo)M將調(diào)用Modelsim10.1d對(duì)設(shè)計(jì)的算法進(jìn)行仿真,點(diǎn)擊圖標(biāo)C選擇需要調(diào)試的PE,點(diǎn)擊圖標(biāo)D將二進(jìn)制數(shù)轉(zhuǎn)換成十進(jìn)制形式,實(shí)際操作用戶界面如圖8所示。

圖8 用戶界面
2.2模型的建立
可重構(gòu)陣列處理器模型分為指令傳輸、處理元和鄰接互連等3個(gè)模塊,通過實(shí)例化處理元模塊和鄰接互連模塊連接構(gòu)成1 024個(gè)陣列處理器,與指令傳輸模塊連接構(gòu)成可重構(gòu)陣列處理器。
(1) 指令傳輸模塊
指令傳輸模塊包含控制信息分析、指令處理和指令更新等3個(gè)并行執(zhí)行的進(jìn)程和1個(gè)信息類。
控制信息分析進(jìn)程根據(jù)尋址信息的最高位和掩碼信息實(shí)現(xiàn)對(duì)1 024個(gè)PE的尋址過程以及采用何種下發(fā)指令的方式;指令處理進(jìn)程是任務(wù)處理進(jìn)程,向處理元模塊下發(fā)該模式下的指令和指示指令有效的功能;指令更新進(jìn)程等當(dāng)前任務(wù)下發(fā)結(jié)束后,將設(shè)定新的工作模式,等待下一個(gè)任務(wù)的調(diào)用;信息類是存儲(chǔ)可重構(gòu)陣列的編碼信息,并為實(shí)現(xiàn)任務(wù)放置、刪除任務(wù)等任務(wù)提供接口。
(2) 處理元模塊
處理元模塊為實(shí)現(xiàn)基本計(jì)算單元,該模塊包含1個(gè)信息類、1個(gè)數(shù)據(jù)結(jié)構(gòu)體和1個(gè)ALU進(jìn)程。
信息類存儲(chǔ)運(yùn)行時(shí)間,并檢測(cè)PE是否在執(zhí)行任務(wù)中;數(shù)據(jù)結(jié)構(gòu)體記錄所有的通用寄存器的值和PC指針等變量;ALU進(jìn)程用來實(shí)現(xiàn)每條指令的操作。當(dāng)全局控制信號(hào)無效時(shí),PE內(nèi)部的指令地址強(qiáng)制加1,否則,執(zhí)行下發(fā)到指令存儲(chǔ)中的配置指令。
(3) 鄰接互連模塊
鄰接互連模塊是實(shí)現(xiàn)相鄰PE之間的互連,該模塊包含目的處理和源處理兩個(gè)并行執(zhí)行的進(jìn)程。目的處理進(jìn)程將本地PE運(yùn)算結(jié)果寫入相鄰PE的共享寄存器中,源處理進(jìn)程實(shí)現(xiàn)從相鄰PE共享寄存器中數(shù)據(jù)作為本地PE的源操作數(shù)。
3仿真結(jié)果及分析
可重構(gòu)陣列處理器的模型搭建完成后,通過Modelsim10.1d得到仿真波形,設(shè)定時(shí)鐘周期為20ns。
(1) 處理元基本功能的仿真測(cè)試結(jié)果
配置處理元PE00的指令如表1所示,測(cè)試處理元在執(zhí)行基本指令、功能和時(shí)序的正確性。

表1 處理元的配置指令
由表1可知,4條指令共執(zhí)行了7個(gè)時(shí)鐘周期,第[0]條ADDI指令為1號(hào)寄存器,賦值為3;第[1]條指令J#A,通過助記符A代替立即數(shù),該條指令的執(zhí)行結(jié)果為PC=3,向指令寄存器中加載PC為3的指令,將第[2]條指令跳過,下個(gè)時(shí)鐘周期直接執(zhí)行第[3]條指令,在80ns時(shí)PC被更新為3,說明所構(gòu)建的模型可以正確執(zhí)行跳轉(zhuǎn)指令;第[3]指令為SUBR3,R1,R2,即3=3-0;第[4]條指令為L(zhǎng)DR1,R3,此條指令將地址寄存器R3中的值作為數(shù)據(jù)存儲(chǔ)器地址,地址3所存儲(chǔ)的值為5,將取出的值放到R1中,即R1中的值為5,說明存儲(chǔ)指令得到正確執(zhí)行。
(2) 鄰接互連功能的仿真測(cè)試結(jié)果
按表2所示的指令配置相應(yīng)的處理元,測(cè)試模型中鄰接互連的正確性。

表2 處理元的配置指令
PE00輸入指令A(yù)DDIRE,R0,#1,此條指令是將寄存器R0的值與立即數(shù)1相加的結(jié)果寫入到PE01的R5中。PE01的第[0]條指令是NOP,執(zhí)行空操作,因?yàn)橄蛳噜廝E寄存器中讀寫數(shù)據(jù)都需要兩個(gè)時(shí)鐘周期,所以PE01插入NOP指令等待1拍,第[1]條指令A(yù)DDR2,R0,R5中R5的值就是PE00寫入的值1,表明該互連寫指令得到正確執(zhí)行;第[2]條指令A(yù)DDR1,RE,R2是將寄存器R2中的值與PE02中寄存器R5中的值相加寫入寄存器R1中,即R1中寫入的是數(shù)值3,表明該互連讀指令得到正確執(zhí)行。
(3) 實(shí)現(xiàn)視頻算法映射的仿真測(cè)試結(jié)果
驗(yàn)證建立模型可以正確執(zhí)行各種指令后,針對(duì)新一代高效視頻編解碼(HighEfficiencyVideoCoding,HEVC)標(biāo)準(zhǔn)的整數(shù)變換[12]、去塊濾波[13]和運(yùn)動(dòng)估計(jì)[14]等算法,分別在單處理元和可重構(gòu)陣列處理器模型上使用匯編程序?qū)崿F(xiàn)其映射,并對(duì)仿真時(shí)間進(jìn)行測(cè)試。
在Inteli3-2350 2.30GHz、2GRAM上處理1幀圖像,表3是比較在單處理元和可重構(gòu)陣列處理器模型上運(yùn)行整數(shù)變換、幀間預(yù)測(cè)和去塊濾波算法所使用的PE數(shù)和仿真時(shí)間。

表3 不同視頻算法的仿真時(shí)間
由表3可以看出,基于SystemC的32×32規(guī)模的可重構(gòu)陣列處理器模型能夠?qū)崿F(xiàn)HEVC視頻算法的并行化映射,仿真時(shí)間得到提高。
4結(jié)語
構(gòu)建了一種基于SystemC的32×32規(guī)模的可重構(gòu)陣列處理器模型,該模型采用指令傳輸模塊實(shí)現(xiàn)局部SIMD和非局部SIMD模式之間的切換;加入鄰接互連模塊完成PE間的通信,增加了PE的寄存器資源。對(duì)建立的模型進(jìn)行仿真驗(yàn)證,同時(shí)將HEVC標(biāo)準(zhǔn)中整數(shù)變化、幀內(nèi)預(yù)測(cè)和運(yùn)動(dòng)估計(jì)等視頻算法分別映射到單處理元和該模型,結(jié)果表明,該模型搭建正確,能夠?qū)崿F(xiàn)HEVC視頻算法的并行化映射,仿真時(shí)間得到提高。
參考文獻(xiàn)
[1]陶文卿. 面向媒體處理的可重構(gòu)陣列的結(jié)構(gòu)設(shè)計(jì)與研究[D]. 上海: 上海交通大學(xué), 2010:2-17.
[2]劉禹成. 面向密集數(shù)據(jù)并行計(jì)算的可重構(gòu)線性陣列處理器架構(gòu)的設(shè)計(jì)[D]. 上海:上海交通大學(xué), 2011:2-5.
[3]霍俊彥,常義林,李明,等. 多視點(diǎn)視頻編碼的研究現(xiàn)狀及其展望[J]. 通信學(xué)報(bào), 2010, 31(5):113-121.DOI:10.3969/j.issn.1000-436X.2010.05.016.
[4]雷海軍,楊輝,何業(yè)軍. 高效率的多視點(diǎn)視頻編碼預(yù)測(cè)結(jié)構(gòu)[J]. 電視技術(shù), 2012, 36(18): 32-35.DOI:10.3969/j.issn.1002-8692.2012.18.016.
[5]李濤,劉應(yīng)天,喬虹. 多態(tài)并行陣列機(jī)中處理單元的設(shè)計(jì)與實(shí)現(xiàn)[J]. 西安郵電大學(xué)學(xué)報(bào), 2015, 20(3):21-28.DOI:10.13682/j.issn.2095-6533. 2015.03.003.
[6]FUMMIF,LOGHIM,PERBELLINIG,etal.SystemCco-simulationforcore-basedembeddedsystems[J].DesignAutomationforEmbeddedSystems, 2007, 11(2-3):141-166.DOI:10.1007/s10617-007-9006-7.
[7]SynopsysInc.SystemC2.3.1CoreSystemCLanguageandExamples[EB/OL].[2015-12-11].http://www.systemC.org.
[8]PELKONENA,MASSELOSK,CUPAKM.System-levelmodelingofdynamicallyreconfigurablehardwarewithSystemC[J].Parallel&DistributedProcessingSymposium.proceedings.international, 2003:174b.DOI:10.1109/IPDPS.2003.1213321.
[9]YANGQ,TIENSYRJAK,MASSELOSK.System-LevelModelingofDynamicallyReconfigurableCo-processors[C/OL]//FieldProgrammableLogicandApplication: 14thInternationalConference,Fpl2004,Leuven,Belgium,August30 -september1, 2004.Proceedings.Berlin:Springer, 2004:881-885[2015-10-20].http://dx.doi.org/10.1007/978-3-540-30117-2_93.
[10] 何衛(wèi)強(qiáng),楊靚,盧強(qiáng). 基于SystemC的周期精確級(jí)DSP處理器建模[J].微電子學(xué)與計(jì)算機(jī),2013,30(4): 107-110.
[11] 彭良睿, 李學(xué)明. 一種基于樹型結(jié)構(gòu)的P2P系統(tǒng)高維數(shù)據(jù)檢索方法[J]. 計(jì)算機(jī)應(yīng)用研究, 2015, 32(3): 842-845.DOI:10.3969/j.issn. 1001-3695.2015.03.046.
[12] 田小平, 田永召. 面向交互應(yīng)用的HEVC編碼性能分析[J]. 西安郵電大學(xué)學(xué)報(bào), 2014, 19(3): 6-10.DOI:10.13682/j.issn.2095-6533. 2014.03.002.
[13]LEEYL,PARKHW.Loopfilteringandpost-filteringforlow-bit-ratesmovingpicturecoding[J].SignalProcessing:ImageCommunication, 2001, 16(9): 871-890.DOI:10.1016/S0923-5965(00)00048-5.
[14]YANC,ZHANGY,DAIF,etal.HighlyParallelFrameworkforHEVCMotionEstimationonMany-CorePlatform[C/OL]//2013DataCompressionConference.Snowbird,UT:IEEE, 2013:63-72[2015-10-20].http://dx.doi.org/10.1109/DCC.2013.14.
[責(zé)任編輯:祝劍]
ReconfigurableArrayProcessorModelingBasedonSystemC
JIANGLin,WANGXingjun,LIUZhentao,SONGHui
(SchoolofElectronicEngineering,Xi’anUniversityofPostsandTelecommunications,Xi’an710121,China)
Abstract:Based on the reconfigurable technology and the feature of SystemC architecture modeller, a reconfigurable array processor modelling based on SystemC is proposed. A model of reconfigurable array processor with 32×32 is built by building instruction transmission module, processing element module and adjacent interconnect module by using the modular SystemC system model design method. The model uses the instruction transmission module to achieve the fast switching of the local single instruction multiple data and the non-local single instruction multiple data mode, and then the adjacent interconnection module is used to complete the communication between the processing elements. Once the modeller is set up, simulation and verification are carried out, and the new generation video coding standard is mapped to the modeller. Simulation results show that the system modeller is correct and can achieve the parallel mapping of the new generation of efficient video codec standard video algorithm.
Keywords:array processor, reconfigurable technology, SystemC, architecture modeler
doi:10.13682/j.issn.2095-6533.2016.03.012
收稿日期:2015-12-11
基金項(xiàng)目:國(guó)家自然科學(xué)基金資助項(xiàng)目(61272120);陜西省自然科學(xué)基金資助項(xiàng)目(2015JM6326);陜西省科技統(tǒng)籌創(chuàng)新工程基金資助項(xiàng)目(2016KTZDGY02-04-02)
作者簡(jiǎn)介:蔣林(1970-),男,博士,教授,從事集成電路設(shè)計(jì)方向的研究。E-mail: jl@xupt.edu.cn 王杏軍(1989-),女,碩士研究生,研究方向?yàn)槲㈦娮訉W(xué)與固體電子學(xué)。E-mail: 654221611@qq.com
中圖分類號(hào):TP391
文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):2095-6533(2016)03-0073-06