基于SystemC的異構多核通信模塊設計
*/ void Controller();
//對于每一個write_shm_data 請求,將數(shù)據(jù)寫入指定的共享存儲區(qū)空間
void WriteShmDataHandler(struct InstBuffer *inst);
//對于每一個read_shm_data 請求,將數(shù)據(jù)寫入指定的共享存儲區(qū)空間
void ReadShmDataHandler(struct InstBuffer *inst);
……
SC_HAS_PROCESS(CMCCtrl);
// constructor
CMCCtrl (sc_module_name _name){……}
};
4 MP3 解碼程序的多核測試
為了更加充分進行驗證,并展示多核通信模塊在實際應用中的價值,本文選擇了MP3 解碼程序進行基于多核系統(tǒng)的移植,并驗證仿真結果以及仿真效率。
MP3編碼的主要方法是在頻域上對音頻文件內容進行編碼壓縮,而解碼過程是還原頻域 的內容再變換成原始的時域音頻信號。按照ISO/IEC11172-3標準,MP3解碼算法分為同步與 校驗、Huffman解碼、比例因子解析、反量化、重排序、立體聲處理等十個部分。
在考慮應用程序的多核移植時,可以是數(shù)據(jù)劃分也可以是任務劃分的。對于MP3代碼, 如果采用數(shù)據(jù)劃分式,則可以在不同的處理器內核上解不同的數(shù)據(jù)幀。而如果采用任務劃分 方式,則可以將解碼的不同過程在多個內核之間形成流水作業(yè),采用共享存儲區(qū)進行不同流 水級之間的數(shù)據(jù)傳遞。顯然后者需要更多的核間通信,更適合于驗證其性能,因此,本文采 用了按照任務劃分的方式進行代碼的多核移植。
在測試中,我們采用ARM+PISA的雙核系統(tǒng),因此需要將MP3解碼程序按照功能劃分為 兩部分,分別放在兩個內核上運行,形成流水線。本文所采用的MP3解碼軟件在ARM開發(fā) 套件(ARM Design Suit)軟件仿真平臺上測試的結果表明:合成多項濾波器部分占用了大 約50%的計算量[4]。根據(jù)這個結論,本文粗略地對應用程序在雙核之間進行任務劃分:其中 一個內核運行計算量最大的合成濾波,另外一個內核實現(xiàn)Huffman解碼、比例因子解析、反 量化等步驟。兩個內核通過系統(tǒng)提供的通信控制模塊進行通信并保持同步。
表2是這一測試的統(tǒng)計結果。統(tǒng)計數(shù)據(jù)提供了兩方面的信息:
1)MP3解碼程序的雙核加速比,由統(tǒng)計結果中的“運行周期數(shù)”反映;
2)多核仿真器在進行MP3解碼仿真時的仿真效率,由“仿真時間”和“仿真速度”兩 項統(tǒng)計結果反映。
5 總結
無論考慮單位計算性能的能耗因素,還是對于提高處理器性能,多核體系結構尤其是異 構多核體系結構都是當前的熱點研究方向。本文主要論述了面向異構多核處理器的片上通信 設計。對于處理器的內核間通信,采用了共享內存技術。
本模型充分體現(xiàn)了SystemC的語言優(yōu)勢,對進一步了解和探討異構多核處理器結構、核 間通信、異構多核低功耗設計等方面打下一定基礎。
本文作者創(chuàng)新點: 提出了一種基于SystemC的異構多核通信架構模型,并通過添加控制 模塊解決異構多核間通信通用性問題。
評論