張 玄,張多利,宋宇鯤
(合肥工業(yè)大學(xué) 電子科學(xué)與應(yīng)用物理學(xué)院,安徽 合肥 230009)
隨著單核處理器性能提升受到限制,研究者將研究重點(diǎn)轉(zhuǎn)向了高性能多核處理器。通過(guò)增加處理器的核心數(shù)來(lái)提高處理器性能逐漸成為集成電路設(shè)計(jì)的趨勢(shì)[1]。伴隨著片上處理器核數(shù)的增多以及處理器性能的提升,對(duì)存儲(chǔ)帶寬的要求也逐漸提高,因此帶來(lái)了“存儲(chǔ)墻”問(wèn)題[2],例如最新的DDR4存儲(chǔ)帶寬為2 133 Mbit·s-1,而目前多核處理器的主頻高達(dá)6 GHz[3]。
為了解決訪存帶寬受限、訪存延遲過(guò)大等問(wèn)題,目前普遍采用多級(jí)緩存來(lái)緩解處理器速度與片外存儲(chǔ)速度匹配度不高的問(wèn)題。多級(jí)緩存又可分為分布式緩存設(shè)計(jì)、集中式緩存設(shè)計(jì)以及可重構(gòu)緩存設(shè)計(jì)[4]等方案。文獻(xiàn)[5~6]提出了面向陣列處理器的分布式Cache結(jié)構(gòu),使用多個(gè)處理單元(Processing Element , PE),通過(guò)多級(jí)仲裁訪問(wèn)多個(gè)Cache組,可快速命中數(shù)據(jù),緩解處理器速度與片外存儲(chǔ)速度之間的差異。但是這種增加了一層Cache網(wǎng)絡(luò)的方案會(huì)增加面積和功耗,且PE組與Cache組之間的互聯(lián)訪問(wèn)過(guò)于復(fù)雜。文獻(xiàn)[7]采用集中式緩存設(shè)計(jì),在DDR接口側(cè)耦合了一組大容量Cache,并且結(jié)合多路并行訪存結(jié)構(gòu)來(lái)訪問(wèn)外部存儲(chǔ)。大容量Cache能增加訪存帶寬,但會(huì)消耗大量SRAM,使整個(gè)系統(tǒng)面積增加。文獻(xiàn)[8]使用可重構(gòu)緩存設(shè)計(jì)方案,能將集中式緩存設(shè)計(jì)的一些處于閑置狀態(tài)的二級(jí)存儲(chǔ)資源重構(gòu)為本地私有緩存。這種結(jié)構(gòu)特異性較強(qiáng),但需要二級(jí)緩存有大量空閑時(shí)間,僅適用于特定資源節(jié)點(diǎn)。文獻(xiàn)[9]針對(duì)嵌入式應(yīng)用的技術(shù)需求,優(yōu)化了存儲(chǔ)體系中各層次的權(quán)重,并探討了層次化存儲(chǔ)。本文在層次化存儲(chǔ)的基礎(chǔ)上,基于NOC網(wǎng)絡(luò)的特性,復(fù)用網(wǎng)絡(luò)中一些閑置的分布式存儲(chǔ)資源,并研究了分布式存儲(chǔ)的集中控制使用。
本文基于分布式緩存、集中式控制的結(jié)構(gòu),設(shè)計(jì)了一種可復(fù)用本地空閑存儲(chǔ)資源,并將其用作二級(jí)緩存的層次化存儲(chǔ)結(jié)構(gòu)[9]來(lái)緩解存片內(nèi)外存儲(chǔ)速度不匹配的問(wèn)題。本文將系統(tǒng)中一些長(zhǎng)時(shí)間不用的功能單元(例如專(zhuān)用硬件加速器、矩陣求逆器等)的存儲(chǔ)資源進(jìn)行統(tǒng)一編址,使其在邏輯功能上為共享存儲(chǔ)結(jié)構(gòu),在物理結(jié)構(gòu)上為分布式存儲(chǔ)結(jié)構(gòu);然后將這些統(tǒng)一編址管理的存儲(chǔ)塊作為二級(jí)緩存,供其他運(yùn)算節(jié)點(diǎn)存取數(shù)據(jù),節(jié)省了片上存儲(chǔ)資源,也減小了面積。為了最大程度利用外部存儲(chǔ)器帶寬,可采取層次化存儲(chǔ)方案,設(shè)置多路并行訪存接口來(lái)訪問(wèn)外部存儲(chǔ)器,提高數(shù)據(jù)的訪存效率。
目標(biāo)系統(tǒng)為面向高密度計(jì)算的異構(gòu)多核系統(tǒng)[10-12](Heterogeneous Multi-Core System,HMCS)。該系統(tǒng)是一種路由通訊系統(tǒng),主體通訊架構(gòu)由數(shù)據(jù)層、配置層、狀態(tài)層等搭建。該系統(tǒng)上掛載了多個(gè)計(jì)算單元(Computing Unit,CU)、存儲(chǔ)單元(Memory Unit,MU)、輸入輸出接口(I/O)、主控制器(Main Controller,MC)和可復(fù)用緩存控制器(Reusable Cache Controller,RCC)等,結(jié)構(gòu)如圖 1所示,其中計(jì)算簇和接口簇可根據(jù)需要靈活布局。該系統(tǒng)可執(zhí)行高階矩陣運(yùn)算(Matrix Operations,MO)、快速傅里葉運(yùn)算(Fast Fourier Transform,F(xiàn)FT)、通用浮點(diǎn)運(yùn)算(General Floating point Processor,GFP)和可重構(gòu)計(jì)算(Reconfigurable Computing Unit,RCU)等功能。執(zhí)行一次FFT運(yùn)算時(shí),I/O口請(qǐng)求通過(guò)以太網(wǎng)或者PCIE接口導(dǎo)入任務(wù)配置信息以及運(yùn)算源數(shù)據(jù)到MU,然后MC接受請(qǐng)求信息,解析配置信息,并分配運(yùn)算單元。與此同時(shí),通過(guò)下發(fā)控制指令去MU取源數(shù)據(jù),并將其送到各個(gè)運(yùn)算節(jié)點(diǎn)。各節(jié)點(diǎn)運(yùn)算完成后,將數(shù)據(jù)寫(xiě)回到MU,此處的MU指外部存儲(chǔ)器DDR3。
圖1 異構(gòu)多核系統(tǒng)結(jié)構(gòu)圖Figure 1. Structure diagram of heterogeneous multi-core system
為了適應(yīng)系統(tǒng)粗粒度、高密度的計(jì)算特性,本設(shè)計(jì)中的數(shù)據(jù)采用“二級(jí)矩陣[10]”形式來(lái)組織和管理數(shù)據(jù)。如圖 2所示是一級(jí)矩陣,其內(nèi)部嵌套多個(gè)二級(jí)矩陣塊。引入矩陣帶來(lái)以下優(yōu)勢(shì):(1)便于對(duì)數(shù)據(jù)進(jìn)行分割處理;(2)便于封裝和拓展,例如可以增加矩陣維度;(3)任務(wù)訪存請(qǐng)求的指令解析更加方便快捷?!岸?jí)矩陣”需與存儲(chǔ)中的真實(shí)訪存地址之間進(jìn)行地址轉(zhuǎn)換,下文給出地址轉(zhuǎn)換規(guī)則,并建立參數(shù)模型。
ADDR=(P1,P2,M,N,E,S,A)
(1)
式中,P1(y,x)表示一級(jí)矩陣坐標(biāo),y∈[0,M-1],x∈[0,N-1];P2(y1,x1)表示二級(jí)矩陣坐標(biāo),y1∈[0,E-1],x1∈[0,S-1];M表示一級(jí)矩陣行數(shù);N表示一級(jí)矩陣列數(shù);E表示二級(jí)矩陣行數(shù);S表示二級(jí)矩陣列數(shù);A表示存儲(chǔ)的起始地址,圖2中的A為0。通過(guò)以上參數(shù)可以得到二級(jí)矩陣數(shù)據(jù)塊內(nèi)行與行之間的地址跳變,如式(2)所示。
JUMP_ADDR=(N-1)×S+1
(2)
任何一個(gè)二級(jí)矩陣塊的起始地址如式(3)所示。
Start_ADDR=A+(S×N×E×y)+(S×x)
(3)
通過(guò)這7個(gè)參數(shù)可以快速定位任一矩陣塊,并訪問(wèn)數(shù)據(jù)。
圖2 兩級(jí)矩陣數(shù)據(jù)組織形式圖Figure 2. Diagram of two-level matrix data organization
以二級(jí)矩陣為基本存儲(chǔ)單位,單個(gè)運(yùn)算單元一次能處理一個(gè)二級(jí)矩陣數(shù)據(jù),所以可以將一個(gè)一級(jí)矩陣分割成多個(gè)二級(jí)矩陣,再將二級(jí)矩陣分給不同的運(yùn)算單元進(jìn)行計(jì)算,充分利用多核并行計(jì)算來(lái)減少任務(wù)計(jì)算時(shí)間。由上述模型可知,二級(jí)矩陣塊數(shù)i=M×N,若分給x(由系統(tǒng)特性知1≤x≤8,且i=x×N,C為整數(shù)) 個(gè)運(yùn)算單元,則每個(gè)運(yùn)算單元需要處理的運(yùn)算單元個(gè)數(shù)為
(4)
那么,第n個(gè)運(yùn)算單元以此類(lèi)推,取第n個(gè)、n+x個(gè)、n+2x個(gè)直到n+(z-1)×x個(gè)數(shù)據(jù)組進(jìn)行計(jì)算。
本文將網(wǎng)絡(luò)中一些長(zhǎng)時(shí)間空閑不用的存儲(chǔ)節(jié)點(diǎn)統(tǒng)一編址管理,然后用作二級(jí)緩存,供其他節(jié)點(diǎn)訪存數(shù)據(jù)。這樣設(shè)計(jì)不僅減少了處理器訪問(wèn)外部存儲(chǔ)的頻率,節(jié)省了訪存時(shí)間,還增加了處理器的訪存帶寬,提高了數(shù)據(jù)訪存效率。訪存帶寬Bs=Bd +Bl,其中Bd為外部存儲(chǔ)帶寬,Bl為可復(fù)用二級(jí)緩存帶寬[13-14]。
復(fù)用本地節(jié)點(diǎn)的存儲(chǔ)資源(下文稱(chēng)“可復(fù)用節(jié)點(diǎn)”,例如FFT、MO等節(jié)點(diǎn))需要具備兩個(gè)基本特點(diǎn):(1)該節(jié)點(diǎn)所空閑的時(shí)間需足夠長(zhǎng),防止私有存儲(chǔ)和共享存儲(chǔ)來(lái)回切換導(dǎo)致系統(tǒng)工作效率降低;(2)合適的位置。該位置不可距離普通計(jì)算節(jié)點(diǎn)(下文稱(chēng)“運(yùn)算節(jié)點(diǎn)”,例如GFP、RCU等運(yùn)算節(jié)點(diǎn))過(guò)遠(yuǎn),否則會(huì)導(dǎo)致網(wǎng)絡(luò)鏈路過(guò)長(zhǎng)、結(jié)構(gòu)設(shè)置復(fù)雜化、數(shù)據(jù)存取效率降低。綜合上述特點(diǎn)并結(jié)合系統(tǒng)任務(wù)特性,本文設(shè)置連續(xù)空閑時(shí)間為tx(0≤x≤n),則平均連續(xù)空閑時(shí)間如式(5)所示。
(5)
整個(gè)運(yùn)算時(shí)間周期為T(mén),當(dāng)不含有FFT類(lèi)型的任務(wù)時(shí),F(xiàn)FT存儲(chǔ)資源空閑周期為T(mén);當(dāng)含有FFT操作的任務(wù)時(shí),F(xiàn)FT存儲(chǔ)資源空閑周期如式(6)所示。
(6)
參考快表[15-16](Translation Lookaside Buffer,TLB)查詢(xún)?cè)恚瑢⒕W(wǎng)絡(luò)中可復(fù)用節(jié)點(diǎn)統(tǒng)一編址,節(jié)點(diǎn)內(nèi)也采用首地址加偏移地址的形式做成一個(gè)查找表,即節(jié)點(diǎn)坐標(biāo)+首地址RAM塊坐標(biāo)+偏移地址,快速訪存所需數(shù)據(jù)。緩存任務(wù)由主控制器通過(guò)配置網(wǎng)下發(fā)。緩存控制器根據(jù)任務(wù)的優(yōu)先級(jí)將任務(wù)分類(lèi)存儲(chǔ)并下發(fā),優(yōu)先級(jí)如表1所示,表中優(yōu)先級(jí)自高向低排列??蓮?fù)用二級(jí)存儲(chǔ)結(jié)構(gòu)設(shè)計(jì)如圖 3所示:緩存控制模塊(Cache_ctrl_top)主要實(shí)現(xiàn)緩存任務(wù)存儲(chǔ)和下發(fā)、空閑節(jié)點(diǎn)判斷回收、讀寫(xiě)緩存任務(wù)命中下發(fā)、節(jié)點(diǎn)RAM的讀寫(xiě)分配、節(jié)點(diǎn)RAM塊狀態(tài)記錄等功能;地址解析模塊(Addr_cfg_gen)負(fù)責(zé)計(jì)算網(wǎng)絡(luò)中傳來(lái)的讀寫(xiě)地址;任務(wù)仲裁模塊(Ach_top)主要完成訪存任務(wù)的仲裁存儲(chǔ)并按優(yōu)先級(jí)下發(fā)任務(wù);Dch為多路并行數(shù)據(jù)通道模塊,訪問(wèn)DDR3_ip;Data_Type為不同的任務(wù)類(lèi)型,具有不同的優(yōu)先級(jí)。
表1 不同類(lèi)型任務(wù)優(yōu)先級(jí)及占用數(shù)據(jù)通道資源
圖3 可復(fù)用二級(jí)存儲(chǔ)結(jié)構(gòu)設(shè)計(jì)圖Figure 3. Design diagram of reusable secondary memory structure
主控制器會(huì)下發(fā)寫(xiě)緩存任務(wù)和讀緩存任務(wù)。當(dāng)緩存控制器通過(guò)配置網(wǎng)接收到寫(xiě)緩存任務(wù)時(shí),緩存控制器會(huì)根據(jù)緩存內(nèi)各個(gè)節(jié)點(diǎn)的空閑情況以及節(jié)點(diǎn)空閑的位置,根據(jù)寫(xiě)入節(jié)點(diǎn)坐標(biāo)與預(yù)判斷的讀出節(jié)點(diǎn)的曼哈頓距離[17-18],選擇兩者節(jié)點(diǎn)坐標(biāo)曼哈頓距離的平均值節(jié)點(diǎn)作為目的節(jié)點(diǎn),并在選定好節(jié)點(diǎn)后建立連接,通過(guò)數(shù)據(jù)網(wǎng)傳輸數(shù)據(jù)。同理,當(dāng)接收到讀緩存任務(wù)時(shí),解析讀任務(wù)配置信息,判斷出所讀數(shù)據(jù)批次和數(shù)據(jù)量,然后根據(jù)快表找到所需數(shù)據(jù)所在位置,通過(guò)數(shù)據(jù)網(wǎng)讀出數(shù)據(jù)到目的節(jié)點(diǎn)。讀寫(xiě)請(qǐng)求流程如圖 4所示,左側(cè)表為讀緩存請(qǐng)求流程,右邊表示寫(xiě)緩存流程。
圖4 讀寫(xiě)緩存流程圖Figure 4. Flow chart of read and write cache
為了減少處理器因訪問(wèn)大容量?jī)?nèi)存而導(dǎo)致的性能下降,引入了TLB。本文TLB中的項(xiàng)由兩部分組成,即標(biāo)識(shí)和數(shù)據(jù)。標(biāo)識(shí)中存放的是虛擬地址的一部分,數(shù)據(jù)部分存放物理頁(yè)號(hào)以及其他一些輔助信息。假設(shè)內(nèi)存頁(yè)大小是256×64 bit,則TLB中有64項(xiàng),采用直接映射方式時(shí)的TLB變換原理如圖5所示。因?yàn)轫?yè)大小是256×64 bit,所以虛擬地址的0~7 bit作為頁(yè)內(nèi)地址偏移。由于一批數(shù)據(jù)所占?jí)K數(shù)不同,所以虛擬地址的8~13 bit記錄塊長(zhǎng)度。TLB表有64項(xiàng),所以虛擬地址的14~19 bit作為T(mén)LB表項(xiàng)的索引,20~25 bit則為一批數(shù)據(jù)的批標(biāo)識(shí)。假如虛擬地址的14~19 bit是1,那么就會(huì)查詢(xún)TLB的第1項(xiàng),從中取出標(biāo)識(shí),與虛擬地址的20~25位作比較,如果相等,表示TLB命中,反之則表示TLB失靶。
圖5 TLB命中示意圖Figure 5. Schematic diagram of TLB hit
在寫(xiě)數(shù)據(jù)時(shí),如圖6所示,需要用RAM1作為第2個(gè)查找表,記錄所需的數(shù)據(jù)塊,同時(shí)用RAM2記錄數(shù)據(jù)塊的地址,這樣在釋放時(shí)可以清楚地知道數(shù)據(jù)塊被釋放的地址,使其可以被再次回收使用。當(dāng)TLB命中時(shí),則說(shuō)明命中所需批次數(shù)據(jù)塊的首地址,那么根據(jù)首地址以及所需數(shù)據(jù)的塊數(shù),可將所需全部數(shù)據(jù)按順序讀出。
圖6 讀寫(xiě)數(shù)據(jù)塊位置記錄示意圖Figure 6. Schematic diagram of position record of read and write data blocks
本文將可復(fù)用的緩存架構(gòu)設(shè)計(jì)集成到Xilinx XC7V2000T FPGA上的目標(biāo)HMCS中,加載一些任務(wù),驗(yàn)證其功能并對(duì)性能進(jìn)行評(píng)估。測(cè)試流程為:待系統(tǒng)初始化后,上位機(jī)經(jīng)以太網(wǎng)口導(dǎo)入配置信息和源數(shù)據(jù)到外部存儲(chǔ)DDR3中;配置信息再?gòu)腄DR3通過(guò)片上網(wǎng)絡(luò)傳送到主控制器中。主控制器為各運(yùn)算簇分配算力,開(kāi)始運(yùn)算任務(wù);運(yùn)算完成后的數(shù)據(jù)經(jīng)片上網(wǎng)絡(luò)存儲(chǔ)在外部存儲(chǔ)中,隨后經(jīng)以太網(wǎng)打包傳送至上位機(jī);上位機(jī)將運(yùn)算結(jié)果數(shù)據(jù)與理論數(shù)據(jù)進(jìn)行對(duì)比,從而驗(yàn)證系統(tǒng)的性能。
平均數(shù)據(jù)傳輸并行度(Data Transfer Parallelism,DTP)表示系統(tǒng)并行執(zhí)行的訪存任務(wù)的平均數(shù)目。該值越大,則說(shuō)明多核并行計(jì)算度高,需要的周期越少。由于系統(tǒng)中旁路數(shù)據(jù)通道最多6組并行,而緩存組最多8路并行,所以平均DTP的計(jì)算如式(7)所示。
(7)
計(jì)算訪存比(Ratio of Computation time to Access time,RCA)的定義為:在一次任務(wù)計(jì)算過(guò)程中,計(jì)算所消耗周期數(shù)TC與訪存所消耗周期數(shù)TM的比值,以此描述任務(wù)的復(fù)雜度。
(8)
系統(tǒng)性能測(cè)試共有3組實(shí)驗(yàn),各組實(shí)驗(yàn)特征如表2所示。
表2 實(shí)驗(yàn)組特征表
本文所設(shè)計(jì)的可復(fù)用存儲(chǔ)架構(gòu)中有兩種類(lèi)型的可復(fù)用節(jié)點(diǎn)FFT和MO,每種可復(fù)用類(lèi)型有8組,每組有14塊BRAM,每塊大小為2 k×64 bit。本文方法總體所消耗的資源如表 3所示,其相比文獻(xiàn)[7]中的方法多耗費(fèi)Slice LUT,但節(jié)省了Block RAM36,因此在片上資源較少且可以節(jié)省面積;與文獻(xiàn)[10]方法對(duì)比,雖然資源消耗相似,但是本文所涉及結(jié)構(gòu)的性能有較大提升。
表3 資源消耗表
實(shí)驗(yàn)1的目的是測(cè)試沒(méi)有計(jì)算任務(wù)的數(shù)據(jù)存取。以矩陣轉(zhuǎn)置為實(shí)驗(yàn)對(duì)象,有6個(gè)CU參與運(yùn)算,每個(gè)運(yùn)算單元在不同的矩陣規(guī)模下運(yùn)行2 048次,在每種矩陣規(guī)模下取平均值給出實(shí)驗(yàn)結(jié)果。圖7表示平均任務(wù)執(zhí)行周期數(shù),圖8表示平均DTP對(duì)比圖。此時(shí)DDR基本無(wú)空閑帶寬,所以理論上與普通存儲(chǔ)架構(gòu)性能接近。
圖7 實(shí)驗(yàn)1任務(wù)執(zhí)行周期數(shù)Figure 7. Number of task execution cycles of experiment 1
圖8 實(shí)驗(yàn)1數(shù)據(jù)傳輸并行度Figure 8. Data transmission parallelism of experiment 1
由上述實(shí)驗(yàn)結(jié)果對(duì)比圖可知,實(shí)驗(yàn)1的任務(wù)執(zhí)行周期數(shù)加速比的平均值為1.011,性能提升1.1%;平均DTP加速比的平均值為1.016,性能提升1.6%。這是由于實(shí)驗(yàn)1的矩陣轉(zhuǎn)置沒(méi)有計(jì)算過(guò)程,片上網(wǎng)絡(luò)與外部存儲(chǔ)一直在交換數(shù)據(jù),DDR3無(wú)空閑帶寬,沒(méi)有用到片上共享存儲(chǔ),所以性能與文獻(xiàn)[10]接近。
實(shí)驗(yàn)2是不包含F(xiàn)FT任務(wù)的簡(jiǎn)單計(jì)算。將FFT作為共享緩存使用,以8個(gè)RCU進(jìn)行簡(jiǎn)單的單精度浮點(diǎn)運(yùn)算為實(shí)驗(yàn)對(duì)象。每個(gè)RCU在不同矩陣規(guī)模下運(yùn)行2 048次,在不同的矩陣規(guī)模下取平均值給出實(shí)驗(yàn)結(jié)果。圖9表示平均任務(wù)執(zhí)行周期數(shù),圖10表示平均DTP對(duì)比圖,此實(shí)驗(yàn)理論上可獲得最佳性能。
圖9 實(shí)驗(yàn)2執(zhí)行周期數(shù)Figure 9. Number of task execution cycles of experiment 2
圖10 實(shí)驗(yàn)2數(shù)據(jù)傳輸并行度Figure 10. Data transmission parallelism of experiment 2
由上述實(shí)驗(yàn)結(jié)果可知,實(shí)驗(yàn)2的任務(wù)執(zhí)行周期數(shù)加速比平均值為1.406,性能提升40.6%,平均DTP加速比的平均值為1.412,性能提升41.2%。在本實(shí)驗(yàn)中,RCU復(fù)數(shù)運(yùn)算的中間數(shù)據(jù)不用回到外部存儲(chǔ)中,其暫時(shí)寄存在二級(jí)共享緩存中,減少了系統(tǒng)與外部存儲(chǔ)交換數(shù)據(jù)的頻率,并且沒(méi)有共享存儲(chǔ)和私有存儲(chǔ)之間的轉(zhuǎn)換,從而使得本文方法與文獻(xiàn)[10]方法相比,在性能上得到了提升。該實(shí)驗(yàn)結(jié)果也與理論結(jié)果相符,但是隨著數(shù)據(jù)量的增加,由于緩存容量有限,所以性能提升幅度減少,加速比也呈下降趨勢(shì)。
實(shí)驗(yàn)3是流水線任務(wù),實(shí)驗(yàn)對(duì)象為8個(gè)FFT、6個(gè)RCU和6個(gè)GFP的混合運(yùn)算。數(shù)據(jù)流從FFT到RCU再到GFP,當(dāng)系統(tǒng)完成FFT任務(wù)時(shí),可切換為共享存儲(chǔ)使用,作為RCU流到GFP的二級(jí)緩存。每個(gè)CU在不同的矩陣規(guī)模下運(yùn)行2 048次,取平均值在不同數(shù)據(jù)規(guī)模下的實(shí)驗(yàn)結(jié)果。圖11表示平均任務(wù)執(zhí)行周期數(shù),圖12表示平均DTP對(duì)比圖。此實(shí)驗(yàn)涉及到FFT在共享存儲(chǔ)與私有存儲(chǔ)之間的切換,所以理論上的性能提升效果介于實(shí)驗(yàn)1與實(shí)驗(yàn)2之間。
圖11 實(shí)驗(yàn)3執(zhí)行周期數(shù)Figure 11. Number of task execution cycles of experiment 3
圖12 實(shí)驗(yàn)3數(shù)據(jù)傳輸并行度Figure 12. Data transmission parallelism of experiment 3
由上述實(shí)驗(yàn)結(jié)果對(duì)比圖可知,實(shí)驗(yàn)3的任務(wù)執(zhí)行周期數(shù)加速比平均值為1.133,性能提升13.3%,平均DTP加速比的平均值為1.164,性能提升16.4%。這是由于實(shí)驗(yàn)3是流模式混合運(yùn)算,當(dāng)系統(tǒng)中的FFT任務(wù)完成后,F(xiàn)FT本地存儲(chǔ)資源切換為共享緩存,在RCU數(shù)據(jù)流到GFP時(shí)可以同時(shí)提供數(shù)據(jù)以增加GFP訪存帶寬,從而顯著提升性能。但是,當(dāng)數(shù)據(jù)量明顯增加時(shí),由于緩存容量有限,所以性能受到限制,加速效果降低,平均DTP變緩,整體平均加速比在實(shí)驗(yàn)1與實(shí)驗(yàn)2之間,與理論結(jié)果相符。
從上述3組實(shí)驗(yàn)結(jié)果可以看出,與文獻(xiàn)[10]的系統(tǒng)架構(gòu)相比,在沒(méi)有FFT任務(wù)且片外存儲(chǔ)有空閑帶寬的情況下,本文方法獲得了40%的性能提升,即使含有FFT的任務(wù),本文方法的性能也有一定幅度提升。本系統(tǒng)特性的任務(wù)FFT一般作為加速器使用,所以在執(zhí)行加速任務(wù)后,會(huì)空閑大量周期。與文獻(xiàn)[7]相比,本文架構(gòu)節(jié)約了大量片上SRAM資源和面積。綜上所述,本系統(tǒng)存儲(chǔ)架構(gòu)符合系統(tǒng)任務(wù)特性,其性能也比已有架構(gòu)有所提升。
本文設(shè)計(jì)了一種用于異構(gòu)多核SoC系統(tǒng)中的可復(fù)用本地存儲(chǔ)資源的層次化存儲(chǔ)架構(gòu)。該架構(gòu)將本地長(zhǎng)時(shí)間閑置的存儲(chǔ)資源作為二級(jí)共享緩存,增加了總訪問(wèn)帶寬,緩解了片外存儲(chǔ)與片內(nèi)訪存的速度差異,提高了存儲(chǔ)訪問(wèn)性能。實(shí)驗(yàn)結(jié)果表明,該存儲(chǔ)架構(gòu)節(jié)省了69.36%的片上SRAM資源,對(duì)于含有FFT類(lèi)型的任務(wù),平均性能提高41.2%,整體任務(wù)計(jì)算時(shí)間平均減少約40.6%。