摘要:當代高性能SoC通常引入對程序員透明的片上Cache作為對主存數據的緩沖。然而傳統(tǒng)數據Cache受制于其容量與組關聯(lián)度,因此常出現沖突的問題。本研究通過新引入的、與數據Cache共存的另一款片上存儲器SPM來消除這部分沖突。我們提出了一種由MMU管理的、Cache與SPM共存的片上存儲器架構。利用虛存管理的思想,將虛擬上連續(xù)、物理上離散的程序地址空間段通過的異構片上存儲器進行緩沖,從而將容易引起數據Cache沖突的頁,在程序執(zhí)行的過程中重定位到SPM,最終得到了能耗和性能上的收益。
關鍵詞:SPM動態(tài)管理;虛存管理;能耗
中圖分類號:TP391文獻標識碼:A文章編號:1009-3044(2009)24-6777-02
Dynamic SPM Optimization Mechanism Based on Virtual Memory Management
ZHANG Yang, LING Ming
(IC Department, Southeast University, Nanjing 214135,China)
Abstract: The state-of-the-art SoCs always employ on-chip cache to transparently reduce the memory accessing. However, due to its capacity as well as association, traditional Data Cache is suffered from the so-called Cache conflicts. This paper proposes a novel mechanism to reduce those conflicts by introducing another coexist on-chip memory: SPM. We use the main idea of virtual memory to buffer those most frequently accessed sections of the program in those two kinds of heterogeneous on-chip memories, and finally redirect most of the accessing, which may cause some serious Cache conflicts, into SPM for performance enhancements as well as energy considerations.
Key words: dynamic SPM optimization; virtual memory management; energy consumption
隨著微電子技術的發(fā)展,嵌入式產品逐步走入人們的生活。然而,由于處理器速度與存儲器速度的差距不斷增大,SoC芯片存儲子系統(tǒng)的訪問延遲已經成為系統(tǒng)性能、功耗和成本的瓶頸。因此如何通過優(yōu)化片上存儲子系統(tǒng)緩解該瓶頸,一直是SoC研究的熱點。
作為傳統(tǒng)片上存儲器,Cache由硬件管理,大部分情況下對于軟件透明,能自動將頻繁訪問的指令和數據裝載到片上存儲器。然而,由于Cache有可能因為程序局部性的問題導致大量的沖突不命中,因此單純使用Cache很難滿足系統(tǒng)對性能、能耗與確定性的要求。與Cache相比,SPM結構簡單,占用芯片面積小且單次訪問能耗低且與外部存儲器統(tǒng)一編址。因此程序員可以通過顯式的重定位需要加速的程序段到SPM,得到性能和能耗的收益。我們認為Cache和SPM各具優(yōu)勢且存在互補性,因此對其共存架構的研究是有價值的。
目前針對共存架構下的優(yōu)化技術研究,根據對片上系統(tǒng)選擇的側重,一般分為2類:韓國首爾大學Egger等人[1]和浙江大學陳天洲等人[2]認為使用SPM比使用Cache更有優(yōu)勢,因此共存架構應該首先考慮將核心程序放入SPM,而Cache則僅作為輔助存儲。Panda等人[3]和Verma等人[4]認為Cache沖突是造成系統(tǒng)性能和能耗出現問題的主因。因此他們將容易引起Cache沖突的程序段放入SPM,以此得到性能和能耗的收益。
1 實現機制
本研究平臺采用韓國首爾大學設計的時鐘周期精確的ARM 9 EJ-S內核以及片上總線模型,并根據研究的需要擴展出時鐘周期精確且附加詳細能耗信息的存儲子系統(tǒng)模型,其中包括數據/指令Cache模型、SPM模型以及片外SDRAM模型等。下面將詳細介紹本研究實現的機制。
1.1MMU和頁表的改進
基于虛存管理的動態(tài)地址映射機制,如圖1是本研究賴以開展的基礎,通過在程序執(zhí)行過程中動態(tài)修改頁表項的物理地址-虛擬地址映射關系以及訪問控制位,我們可以動態(tài)改變某虛擬地址實際映射的物理地址空間,從而將由處理器內核發(fā)出的,對主存SDRAM的的存儲訪問重定位到片上SPM,最終取得能耗和性能上的收益。為了實現對SPM的精細管理,從而增大SPM的平均利用率,并最小化換入換出的成本,我們對TLB的設計做了一定的修改,使其適應512B/虛存頁,甚至256B/虛存頁。
1.2 SPM控制器的設計
傳統(tǒng)的SPM控制器設計較為簡單,無法實現本研究動態(tài)地址映射機制所要求的,更為復雜的SPM動態(tài)分配策略。因此我們在傳統(tǒng)SPM控制器的基礎上通過增加一組用于記錄寫回地址和寫臟情況的寄存器(如圖2),將傳統(tǒng)的、僅能實現尋址功能的SPM控制器擴展為支持寫臟操作、支持不同粒度SPM管理,并能通過主動配置專用DMA實現其內容動態(tài)換入換出的先進SPM控制器,從而在滿足本研究設計要求的基礎上,提升了本研究平臺的可配置型,為后續(xù)的優(yōu)化算法提供了更靈活的仿真與驗證平臺。
1.3 SPM管理器的設計
總的來說,SPM管理器是將SPM動態(tài)分配算法得到的結果具體實現為程序執(zhí)行過程中,可供SPM控制器自由加載并使用的配置信息的全過程。從具體實現上說,就是將由SPM動態(tài)分配算法得到的、每個時隙應該放入SPM的虛存頁以及時隙迭代優(yōu)化求解后對各時隙的修正時鐘周期數轉變成SPM控制器中映射基址寄存器與實時時鐘模塊的時鐘加載寄存器方便使用的格式,并將其作為全局數據變量鏈接到待評估的基準測試程序中。這樣,在實際程序執(zhí)行的全過程不需要依賴任何的人為操作與外界附加信息的插入,從而更為真實的模擬出可能的實際使用環(huán)境。
1.4 時鐘中斷處理
時鐘中斷處理是本研究動態(tài)管理片上SPM資源、合理利用程序執(zhí)行過程中數據Cache沖突時間局部性的手段。同時也是將本研究平臺中對MMU的改進、對SPM控制器的改進以及對SPM管理器的構建關聯(lián)起來的重要機制。脫離時鐘中斷處理程序,我們將無法實現程序執(zhí)行過程中改變數據段映射關系,并最終高效利用片上SPM資源的目的。
2 實驗結果分析
通過對所有15個基準測試程序的系統(tǒng)能耗數據可以看出,配置了4KB直接關聯(lián)的數據Cache+4KB SPM與8KB各種關聯(lián)度的數據Cache情況下我們取得了最大50%,平均約20%的能耗收益,如圖3。這組實驗都是基于優(yōu)化后芯片面積有所降低,程序執(zhí)行性能沒有損失的前提。
參考文獻:
[1] Bernhard Egger, Jaejin Lee, Heonshik Shin. Dynamic scratchpad memory management for code in portable systems with an MMU [J].ACM Transactions on Embedded Computing Systems (TECS), Feb. 2008. p:1-38.
[2] Chen Tianzhou, Zhao Yi, Hu We. Assigning program to cache-aware scratchpad concerning the influence of the whole embedded system[C]. Networking, Architecture, and Storages. IEEE Conf of International Workshop on Aug. 2006: 5.
[3] Panda,Preeti Ranjan,Dutt,Nikil D.,Nicolau Alexandru. Efficient Utilization of Scratch-Pad Memory in Embedded Proeessor Applieations[C]. Proeeedings of the 997 European conference on Design and Test,1997:7-11.
[4] M Verma, S Steinke, P Marwedel. Data partitioning for maximal scratchpad usage[C]. Proeeedings of the 2003 conference on Asia South Pacific design automation,2003:77-83.