一種面向多核DSP的小容量緊耦合快速共享數(shù)據(jù)池
除了這種對程序員透明的硬件同步機制之外,F(xiàn)SDP還支持基于軟件查詢的同步機制。即在每次改變信號燈狀態(tài)前,插入一段查詢“信號燈”狀態(tài)的例程,然后根據(jù)查詢的結果決定程序的流向。
4.4 消除讀訪問沖突
在FSDP的共享模式下存在多DSP核同時讀一個存儲體的沖突。雖然利用仲裁邏輯配合隊列機制可以緩解沖突,但是,這種方式降低了FSDP的并行性。另外,可以采用存儲體復制或者采用多端口存儲體的方式。為此,本文進行了對比實驗,結果表明,4個1KB大小的單端口SRAM在工作頻率和面積上都優(yōu)于4端口1KB的全定制SRAM模塊,而且單端口SRAM可以由EDA工具快速編譯生成,便于設計實現(xiàn)。因此,對于FSDP這類小容量的便箋存儲器,本文采用存儲體復制的方式解決訪問沖突:將原來的每個存儲體換成4個同樣大小的單端口存儲體,構成具有4個虛擬端口的存儲體,如圖5所示。
在處理讀寫訪問時,存控邏輯自動進行數(shù)據(jù)寫復制和讀端口的分配工作,讀寫過程中對用戶都是透明的。這種方式完全消除了多核的讀訪問沖突,實現(xiàn)了最大的共享訪問帶寬,提高了FSDP的并行性和實時性。
圖5 存儲體復制構成虛擬多端口存儲體
5. 性能分析
5.1 分析模型與設計實現(xiàn)
本文構建了整個SDSP的C語言模擬器SDSP-Sim。SDSP-Sim是一個時鐘精確的模擬器,能夠運行經(jīng)過編譯和手工分配的多核DSP應用程序,報告程序運行的各種統(tǒng)計信息和計算結果。每個處理器核占用一個模擬進程,RISC與DSP核之間采用進程通信的方式傳輸控制信息。本文以MediaBench基準程序集為基礎,選擇了6組典型的多媒體類與通信類應用程序,用于評測FSDP的性能,如表1所示。為了滿足多核DSP的并行計算需求,對于原來復雜度較低的一些測試程序,例如PEGWIT和JPEG_c,本文擴大了它們的數(shù)據(jù)集。對于MP3解碼程序MP3_d則將其擴展為兩路并行解碼器2MP3_d。由于SDSP的并行編譯器開發(fā)工作還沒有完成,本文仍采用手工的方式對測試程序進行并行化映射。
表1 用于性能評測的測試程序說明
本文采用SMIC 0.13μm CMOS工藝庫對FSDP進行了設計實現(xiàn)。其中各存儲體采用EDA工具生成的單端口SRAM。下表2給出了FSDP的各項設計指標。其中,“無阻塞讀延遲”是指在同步成功且沒有沖突的情況下,從DSP核發(fā)出讀請求到獲得返回數(shù)據(jù)之間的時間間隔。
表20.13μm CMOS工藝下四通道FSDP的各項性能指標
5.2 性能對比
對于多核處理器共享SPM的研究,前人的工作主要是針對SPM的編譯優(yōu)化和數(shù)據(jù)劃分算法的研究。文獻0介紹的VS-SPM(虛擬共享便箋存儲器)原型結構與本文的FSDP有類似之處,它根據(jù)SPM與處理器核的關系,將SPM分成本地SPM和遠程SPM,各個處理器核通過共享總線訪問各SPM模塊。下表3對比了本文的FSDP與VS-SPM在結構上的差異。VS-SPM主要是針對編譯優(yōu)化和數(shù)據(jù)劃分算法優(yōu)化而設計的,其硬件優(yōu)化程度和訪問速度都不及FSDP,而且沒有解決多個處理器核并行訪問沖突的問題,不支持核間數(shù)據(jù)的流水傳輸。
表3 FSDP與VS-SPM的結構對比
本文建立了VS-SPM的結構模型,將DSP核間同樣一批共享數(shù)據(jù)先后映射到VS-SPM和FSDP的存儲空間上,分別得到兩種結構下程序的執(zhí)行時間TVS-SPM和TF-SDP,然后按照(1)式計算出FSDP相對VS-SPM的性能加速比。
圖6給出了6組測試程序的實驗結果。結果表明,通過FSDP在DSP核之間傳輸共享數(shù)據(jù)相比通過VS-SPM傳輸具有明顯的性能優(yōu)勢,6組程序的平均性能加速比達到了1.37。
圖6FSDP相對VS-SPM的性能加速比
在引入FSDP之前,異構多核DSP主要通過共享L2 Cache傳輸DSP核間的共享數(shù)據(jù)。為了評測FSDP對系統(tǒng)性能的加速作用,本文比較了下列三種數(shù)據(jù)映射方式下異構多核DSP的計算性能:
僅用L2 Cache:DSP核間的共享數(shù)據(jù)全部通過L2傳輸;
僅用FSDP:DSP核間的共享數(shù)據(jù)全部通過FSDP傳輸;
FSDP + L2:將DSP核間的不規(guī)則共享數(shù)據(jù)映射到FSDP的地址空間,其余的共享數(shù)據(jù)流仍通過L2傳輸。
利用SDSP-Sim軟件模擬器分別得到上述三種映射方式下程序的執(zhí)行時間,然后以第一種映射方式下的執(zhí)行時間為基準,計算出另外兩種方式的性能加速比,結果如圖7所示:
圖7三種數(shù)據(jù)映射方式下系統(tǒng)的計算性能對比
實驗結果表明,在FSDP + L2 Cache方式下,程序的性能是最高的。6組程序的平均性能加速比為1.13。本文分析認為:
對于核間共享數(shù)據(jù)包含大量細粒度數(shù)據(jù)和不規(guī)則數(shù)據(jù)流的應用程序(例如PEGWIT和RASTA),僅用FSDP相比僅通過L2 Cache傳輸共享數(shù)據(jù)具有更高的計算性能;
對于核間共享數(shù)據(jù)量較大和數(shù)據(jù)流分布比較密集的應用程序(例如2MP3_d和MPEG2_e),僅用FSDP傳輸共享數(shù)據(jù)的計算性能較低,這是因為FSDP對共享數(shù)據(jù)的分塊處理使得同步開銷在執(zhí)行時間中的比例增大,影響了總執(zhí)行時間;
FSDP與共享數(shù)據(jù)Cache結合使用進一步提高了共享存儲多核DSP的片內數(shù)據(jù)重用性,減少了對片外數(shù)據(jù)的長延遲訪問,因而能夠獲得最佳的計算性能。其中,對于需要緊耦合共享的小容量數(shù)據(jù)或者非常不規(guī)則的短數(shù)據(jù)流,優(yōu)先選擇通過FSDP傳輸,減少通過共享Cache的長延遲訪問開銷;反之,對于大塊數(shù)據(jù)的共享或者規(guī)則數(shù)據(jù)流的傳輸,則宜采用共享Cache的方式,降低數(shù)據(jù)頻繁分塊的同步開銷。
5.3 擴展性分析
在消除了FSDP的訪問沖突之后,所有DSP核可以同時訪問不同的存儲體。理論上來看,F(xiàn)SDP的訪問帶寬可以隨著DSP核數(shù)量的增長而線性增長,具有良好的可擴展性。為此,我們進行了分析與實驗。定義B為FSDP的有效訪問帶寬,即在考慮訪存延遲和工作頻率的情況下所有DSP核訪問FSDP的實際存儲帶寬;N表示DSP核的數(shù)量。本文在N=1~8的情況下分別對FSDP進行了單獨的設計實現(xiàn),得到了B與N的關系,如圖8所示。
圖8FSDP有效訪問帶寬與DSP核數(shù)量的關系
由實驗結果可見,當N小于5時, B快速增長,與N呈近似的線性關系。隨著N的進一步增大,DSP核與存儲體之間的控制邏輯開銷、互連總線和交叉開關端口數(shù)量以O(N2)量級增長,F(xiàn)SDP的工作頻率開始下降,訪問延遲越來越大,F(xiàn)SDP的有效訪問帶寬增長十分緩慢。因此,F(xiàn)SDP更適合于5核以內的多核DSP。當DSP核數(shù)量超過8核以上時,我們將以4核為一個超節(jié)點進行結構擴展。超節(jié)點內部采用FSDP實現(xiàn)緊耦合的數(shù)據(jù)傳輸,超節(jié)點之間通過片上網(wǎng)絡(NoC)或者其他共享存儲結構進行數(shù)據(jù)傳輸。
7結束語
相比傳統(tǒng)的Cache結構,便箋式存儲器具有更靈活的結構、簡潔的控制邏輯、更低的訪問延遲和方便的數(shù)據(jù)管理等諸多優(yōu)勢。本文針對多核DSP架構設計的快速共享數(shù)據(jù)緩沖池FSDP結合了便箋式存儲器的結構特點和共享存儲結構的編程需要,采用軟/硬件聯(lián)合的設計方法,為多核DSP之間傳輸細粒度共享數(shù)據(jù)提供了一個緊耦合的快速通路,相比共享二級Cache和DMA傳輸方式具有更好的傳輸效率,是一種新型而實用的、可擴展多核共享存儲結構。今后,我們將深入研究面向多核處理器的高性能共享存儲結構,增強片上存儲的可擴展性和可重構能力,進一步提高多核SoC的存儲帶寬。
評論