一種一維可重構計算系統(tǒng)模型的設計
杜高明,張敏,宋宇鯤,張多利,倪偉
(合肥工業(yè)大學 微電子設計研究所,安徽 合肥230009)
摘要:文章提出了一種PE個數可配置的一維可重構計算系統(tǒng)模型,設計了PE間3種重構模式和PE內3種重構模式,大大簡化了系統(tǒng)配置信息。建立C++描述的周期精確級系統(tǒng)模型,映射復數矩陣乘算法,分析比較不同PE內重構模式、同一PE內重構模式不同PE個數下系統(tǒng)的計算性能。實驗結果表明,2-PE系統(tǒng)簡單、靈活而高效。
關鍵詞:MPSoC;可重構計算;系統(tǒng)建模;可重構模式
收稿日期:2014-01-06;修回日期:2014-03-21
基金項目:國家自然科學基金資助項目(61106020;61006024);高等學校博士學科點專項科研基金(青年教師)資助項目(20100111120009)
作者簡介:杜高明(1977-),男,湖南邵陽人,博士,合肥工業(yè)大學副研究員,碩士生導師.
doi:10.3969/j.issn.1003-5060.2015.01.013
中圖分類號:TN403文獻標識碼:A
Designofone-dimensionalreconfigurablecomputingsystemmodel
DUGao-ming,ZHANGMin,SONGYu-kun,ZHANGDuo-li,NIWei
(InstituteofVLSIDesign,HefeiUniversityofTechnology,Hefei230009,China)
Abstract:In this paper, a one-dimensional reconfigurable computing system model is proposed, in which the number of PE can be set. Three modes between PEs and three modes for PE are designed to simplify the configuration information. C++ is used to build the cycle-accurate level system model. Mapping complex matrix multiplication algorithm is used to compare the computing performance between different models for PEs, different models in PE within the same models for PEs. The experimental results show that 2-PE system is simple, flexible and highly efficient.
Keywords:multi-processorsystem-on-chip(MPSoC);reconfigurablecomputing;system-levelmodeling;reconfigurablemodel
在當今的多核片上系統(tǒng)(Multi-processorSystem-on-Chip,MPSoC)研究中,如何面向應用設計高效能、高可用的系統(tǒng)體系結構成為多核時代的研究主題[1]。MPSoC允許將多個不同類型、針對特定應用的處理核心集成在一塊芯片中,形成異構MPSoC,因而面對不同應用需求,可以提供較高的靈活性和高效的處理機制[2]。
可重構片上多核系統(tǒng)利用不同粒度、不同耦合度的可重構資源,充分開發(fā)資源的并行性,兼顧硬件計算的高性能及軟件實現的靈活性[3]??芍貥嬘嬎銖浹a了MPSoC靈活性不足的特點,MPSoC對作為異構子系統(tǒng)的可重構計算提出了新要求,簡要概括為靈活、簡單而高效。
可重構計算處理器具有較高的靈活性與高效性,系統(tǒng)設計空間巨大,設計一個優(yōu)化的系統(tǒng)結構或得到一個優(yōu)化的實現方案十分復雜[4]。同時,它集成了多核技術、分布式計算技術、可重構技術等重要前沿技術。其中,作為核心技術之一的重構模式研究具有重要的戰(zhàn)略意義[5-7]。自從1960年可重構計算的概念誕生以來,很多可重構體系結構在工業(yè)界和學術界陸續(xù)被提出,如COPACOBANA、Matrix、GRAP、Elixent、PACTXPP、SiliconHive、Montium、Pleiades、Morphosys、PiCoGA[3]。相比于這些成熟的可重構體系結構,目前可重構片上多核系統(tǒng)方面的研究還比較少。
文獻[6]提出了一種動態(tài)可重構眾核處理器,有效降低眾核處理器中的網絡負載和訪存延時,提高大量并行應用在眾核處理器上同時運行的性能;文獻[5]設計了一款具有2種重構模式(陣列并行模式和流水模式)的動態(tài)可重構協(xié)處理器DReAC,通過幾種典型算法驗證了其性能全面超過了同類其他系統(tǒng);文獻[7]給出了一種基于二維mesh片上網絡的可重構處理器陣列模型,通過片上網絡來實現任意2個處理單元(ProcessingElement,PE)之間的通信。
圖1所示為基于NoC的可重構眾核系統(tǒng)模型[8]。PE簇作為可重構節(jié)點,通過NoC實現PE簇間的通訊,PE簇內通過Crossbar實現互聯(lián)。以PE簇的方式可以大大減小PE間通訊的時間開銷,因而可以提高系統(tǒng)計算性能。同時,簇內PE間采用重構模式的方式,PE內部同樣采用重構模式,可以實現系統(tǒng)快速重構,減少配置信息,提高系統(tǒng)計算性能。
圖1 基于 NoC的3×3可重構計算簇陣列
本文在這種背景下,提出了一種面向高密度計算的可重構計算系統(tǒng)模型。該系統(tǒng)模型是基于Crossbar互聯(lián)的一維線性陣列結構,實現了粗粒度局部動態(tài)可配置,提出了PE間3種重構模式和PE內3種重構模式,簇內PE個數可配置。
采用C++語言對可重構計算系統(tǒng)進行系統(tǒng)級描述,建立了可重構計算單元的周期精確級模型??芍貥嬘嬎闾幚韱卧蓴U展,通過配置信息來加載應用,驗證了系統(tǒng)模型正確性。添加了實時監(jiān)測網絡,映射復數矩陣乘算法。實驗結果顯示,PE內3種模式下系統(tǒng)計算性能不同,同PE內模式不同PE個數下系統(tǒng)的計算性能不同,在2-PE內重構模式2下,資源利用率為100%,同時具有很好的延拓性,符合最初設計簡單、靈活而高效的初衷。
1可重構計算系統(tǒng)結構及系統(tǒng)級建模
可重構計算單元(reconfigurablecomputingunit,RCU)的結構如圖2所示,主要由存儲器、互聯(lián)網絡和PE構成。為了提高計算系統(tǒng)的并行計算能力,存儲器采用雙口靜態(tài)緩存器,有2個獨立的地址變量;互聯(lián)網絡由2層Crossbar組成,每層Crossbar由多個多路選擇器構成,通過配置多路選擇器來實現RAM的任一數據傳輸到PE的任一輸入端口。PE是支持流水操作的處理單元,是RCU的核心計算單元。PE間的通信由Crossbar完成,支持任意相鄰2個PE間直接通信。對該系統(tǒng)而言,輸入雙口RAM為只讀,輸出雙口RAM為只寫;對于連接該RCU的網絡接口,則輸入RAM為只寫,輸出RAM為只讀。
圖2 2- PE RCU結構示意圖
本文在一維線性結構的基礎上,針對高密度計算的特定算法,提出了3種PE間重構模式,如圖3所示。
(1) 模式1。每個PE單獨工作,計算結果分別輸出存儲在RAM中。
(2) 模式2。PE依次兩兩結合,即PE1的計算結果作為PE2的輸入,PE2的計算結果輸出存儲在RAM中,以此類推,PE個數若為奇數個,最后一個PE單獨工作,其他的PE依次兩兩組合。
轉眼40年過去了,改革開放讓農場人的日子越過越美。三哥小時挨揍最多,長大卻最孝順,和二老住一起,對他們的飲食格外上心。瞧,整潔的灶臺上一溜農場自產的綠色健康菜籽油、大豆油特別顯眼。我故意逗他:“饞蟲,挑一下,想用啥油炸饅頭?不會挨揍哦!”
(3) 模式3。PE以鏈式結合,即PE1的計算結果作為PE2的輸入,PE2的計算結果作為PE3的輸入,以此類推,最后一個PE的計算結果輸出給RAM。
圖3 PE內可重構模式示意圖
本文主要面向高密度計算,PE內部由2個加法器和2個乘法器組成。通過配置,乘法器一個輸入端口可以輸入常數1,加法器一個輸入端口可以進行取負操作,另一個輸入端口可以輸入常數0,同時帶有作累加操作的計數器。在該結構之上,提出了3種PE內可重構模式,如圖3所示。
(1) 模式1。2個MUL(乘法器)、2個ADD(加法器)中任意選取2個單獨計算,計算結果作為PE輸出,計算為1級流水。
(2) 模式2。MUL1和MUL2分別作乘法計算,計算結果輸入給ADD1做累加計算,累加的結果輸入給ADD2做累加計算,累加的結果作為PE輸出,計算為3級流水。
(3) 模式3。MUL1和MUL2分別作乘法計算,計算結果分別送到ADD1和ADD2作自加,自加結果作為PE輸出,計算為2級流水。
在圖2所示系統(tǒng)結構的基礎上,建立了PE可任意擴展的周期精確級RCU系統(tǒng)模型。采用基于接口的建模方法,一次完整的數據流包括4個環(huán)節(jié):RAM→ConnectNet→PE→RAM。RAM作為輸入數據和輸出結果的存儲單元,雙口RAM的RTL級描述:RAM數據類型參數化定義;RAM深度可配置;有2個獨立的地址變量,1次可同時讀或寫2個數;有read和write信號,分別控制RAM的讀和寫操作,每個周期RAM只讀和寫1次數據。互聯(lián)網絡可通過配置信息實現自動互聯(lián),互聯(lián)網絡的RTL級描述:由2層Crossbar共同完成,對于包含N個PE的RCU而言,第1層由4個N輸入的交叉開關組成,第2層由N個4輸入的交叉開關組成。PE可通過配置信息實現加法器和乘法器之間互聯(lián),互聯(lián)方式為PE內3種模式。為了驗證模型的正確性,并評估不同配置信息對RCU計算性能的影響,設計了系統(tǒng)監(jiān)測網絡。
2實驗及分析
本文通過映射復數矩陣乘算法來分析不同配置策略對計算性能的影響。設置寄存器深度為2K,隨機產生若干組32×64和64×32的浮點型復數矩陣,分別作了2組仿真實驗:一組為3種PE內重構模式映射復數矩陣乘算法;另一組為同一PE內重構模式下不同PE個數映射復數矩陣乘算法。每次實驗記錄仿真所用的時間ST(SimulationTime)、計算運行周期MC(MachineCycle)、PE資源占用個數RUN(ResourceUtilizationNumber)以及PE資源利用率RUR(ResourceUtilizationRate)。
可知,復數矩陣乘運算得到的結果矩陣仍為復數矩陣,矩陣元素cij的實部(cr)ij、虛部(ci)ij均通過乘加(或減)再累加得到。以2-PE的RCU為例來說明算法的映射過程,圖4所示為2-PE內模式2下計算實部cr的RCU內部數據流。4個輸入RAM分別存儲復數矩陣A和B實部和虛部,2層Crossbar通過配置信息實現PE輸入數據依次為ar、br、ai、bi,PE通過配置信息選擇合適的PE間模式、PE內模式,同時配置加法器和乘法器的常數輸入、加法器用作減法的取負操作以及用于累加的計數器t。通過設置輸入RAM的地址,依次取出復數矩陣A實部ar和虛部ai的第i行和復數矩陣B實部br和虛部bi第j列,加法器計數到n時輸出累加值即為待求值cr。ci的求值過程與之相似,在此不再贅述。
圖4 2- PE內模式2下 RCU求解實部c r數據流
通過配置映射復數矩陣乘算法,在3種PE內重構模式下,記錄系統(tǒng)計算性能見表1所列。從實驗結果可知:模式1的資源占用率最高為50%,以模式1為主要重構模式系統(tǒng)資源不能得到充分利用;模式2擁有最高的資源占用率,處于滿負荷工作狀態(tài),并且具有最少的仿真時間;模式1的資源占用率為模式2的1/2,計算周期約為模式2的1倍;模式3的資源占用率高于模式1,計算周期與模式1的相當;模式1受工作機制限制,其資源利用率最高為50%;通過增加PE個數,將模式1和模式3組合,以增加50%的資源為代價,提高了資源利用率,計算效率約提高了1倍。由此可知,復數矩陣乘法在該可重構計算系統(tǒng)結構下采用模式2可獲得最高的計算效率。
表1 3種 PE內重構模式仿真實驗性能
通過在不同PE個數、PE內重構模式2下映射復數矩陣乘算法,記錄系統(tǒng)計算性能見表2所列。從實驗結果可知:系統(tǒng)資源每增加1倍,系統(tǒng)計算效率也成倍增加,系統(tǒng)資源利用率始終為100%。說明針對復數矩陣乘算法,該可重構計算系統(tǒng)在PE內模式2配置策略下具有很好的延拓性。因此,本文提出的可重構計算系統(tǒng)結構在處理復數矩陣乘法運算時,配置策略為PE間重構模式2實現了最高的資源利用率,獲得了最高效的計算效率,同時PE處于滿負荷工作狀態(tài),具有最高的計算性能;在該配置策略下,隨著PE資源成倍增加,系統(tǒng)計算性能也成倍增加,因此2-PE可作為最小的RCU系統(tǒng)單元。
表2 不同 PE個數 PE內重構模式2的仿真實驗性能
3結束語
本文設計了一種面向高密度計算的可重構計算模型,PE個數可配置,給出了PE間3種重構模式和PE內3種重構模式。通過C++語言對系統(tǒng)進行周期精確級建模,分別對PE內3種重構模式進行復數矩陣乘算法映射,分析比較了不同PE內模式下、同一PE內模式不同PE個數下系統(tǒng)的計算性能。實驗結果表明,對于復數矩陣乘法,2-PE系統(tǒng)簡單、靈活而高效,滿足設計要求。
[參考文獻]
[1]嚴明.面向領域應用的異構多核SoC系統(tǒng)結構設計與優(yōu)化[D]. 長沙:國防科學技術大學,2011.
[2]楊宏來,黃旻忞.基于SystemGenerator的異構多核片上系統(tǒng)設計[J]. 電子與封裝,2012,12(11):27-31.
[3]唐柳,黃樟欽,侯義斌,等.可重構多核片上系統(tǒng)體系結構綜述[J]. 計算機工程與應用,2012,48(20):39-45.
[4]孫康.可重構計算相關技術研究[D].杭州:浙江大學,2007.
[5]宋宇鯤.動態(tài)可重構協(xié)處理器研究[D].合肥:合肥工業(yè)大學,2006.
[6]韓興,蔣江,付宇卓,等.動態(tài)可重構眾核處理器仿真平臺設計[J]. 上海交通大學學報,2013,47(1):44-48.
[7]潘鵬,王鵬,林水生.可重構處理器陣列的系統(tǒng)級建模研究[J]. 微電子學與計算機,2011,28(11):85-89.
[8]侯寧,高明倫,杜高明,等. 二維網格NoC中資源-網絡接口設計與實現[J]. 合肥工業(yè)大學學報:自然科學版,2008,31(8):1155-1158.
(責任編輯馬國鋒)