專利名稱:利用虛存機制對片上異構(gòu)存儲資源動態(tài)分配的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及嵌入式片上存儲器領(lǐng)域,特別涉及一種利用虛存機制對片上異構(gòu)存儲 資源(Cache和SPM的數(shù)據(jù)部分)動態(tài)分配的方法。
背景技術(shù):
隨著微電子技術(shù)的發(fā)展,以SoC(System-on-a-Chip)為基礎(chǔ)的嵌入式計算平臺日 益成熟。然而,由于處理器速度與外部存儲器速度的差距不斷增大,SoC存儲子系統(tǒng)已經(jīng)成 為系統(tǒng)性能、功耗和成本的瓶頸。因此如何優(yōu)化存儲子系統(tǒng)的架構(gòu)及管理策略,一直是嵌入 式研究的熱點。 作為傳統(tǒng)片上存儲器,Cache由硬件管理,大部分情況下對軟件透明,能自動裝載 頻繁訪問的指令和數(shù)據(jù)到片上存儲器中。然而,Cache的高功耗、占用面積大、程序執(zhí)行時 間不可預知等不足一直限制其在嵌入式系統(tǒng)中的廣泛運用。尤其是Cache的組關(guān)聯(lián)特性, 可能導致被映射到同一 Cache行的不同程序內(nèi)容,由于訪存規(guī)律,反復相互替換,從而增大 了系統(tǒng)性能與能耗的開銷,即出現(xiàn)Cache抖動。與Cache相比,SPM (Scratch-Pad Memory, 便簽存儲器)是一種高速片上存儲器,通常由SRAM實現(xiàn),是現(xiàn)代嵌入式系統(tǒng)中一個非常重 要的系統(tǒng)框架設(shè)計考慮因素。SPM處于處理器可直接訪問的地址空間之內(nèi),由于傳統(tǒng)的SPM 控制器不包含任何輔助管理數(shù)據(jù)的邏輯電路,SPM中的所有內(nèi)容必須經(jīng)由軟件顯式的管理, 相對于對程序員透明的Cache,增加了程序管理的復雜性。由于沒有管理邏輯電路帶來的額 外代價,相較于傳統(tǒng)Cache, SPM硬件實現(xiàn)更為簡單、單次訪問功耗更低、占用芯片面積更小 而且訪問時間可預知。綜上,Cache和SPM各具優(yōu)勢且存在互補性,因此對Cache和SPM共 存的異構(gòu)存儲器存儲資源進行研究,可以充分利用兩者優(yōu)勢,從而最大限度降低系統(tǒng)能耗、 提升系統(tǒng)性能。 —些針對嵌入式片上存儲器的研究的主要分析單純配置Cache或單純配置SPM的 架構(gòu),不能很好的利用兩者互補的特性。直接將僅針對SPM的優(yōu)化算法或僅針對Cache的 優(yōu)化算法運用到兩者共存的架構(gòu)中,不能達到整體性能最優(yōu)化,在一種存儲體上取得的優(yōu) 化收益可能被另一種存儲器的開銷所抵消,甚至引入更多系統(tǒng)性能與能耗的額外開銷。例 如針對SPM的優(yōu)化算法將某段主存的內(nèi)容搬運到SPM,從而得到了性能與能耗的收益。然 而搬運代碼本身可能對指令Cache造成污染、引起Cache優(yōu)化算法的失效,從而造成額外的 Cache缺失,抵消SPM的優(yōu)化收益。 Cache缺失時需要實際訪外存操作并將新的內(nèi)容換入Cache行,開銷較大,這被稱 為Cache缺失的懲罰。由于Cache的組關(guān)聯(lián)特性,被映射到同一 Cache行內(nèi)容可能反復相互 替換,帶來大量的訪存操作,從而導致系統(tǒng)性能急劇降低,系統(tǒng)能耗急劇增加,這就是Cache 的沖突。通過增大Cache容量、增大組關(guān)聯(lián)數(shù)等方法,可以減小Cache沖突,但是這樣又會 引入新的芯片面積并提升單次Cache讀寫時間及能耗。目前有研究指出Cache沖突是造成 系統(tǒng)性能和能耗瓶頸的重要原因,因此他們將容易引起Cache沖突的程序段放入SPM,以此 得到性能和能耗的收益。將容易引起Cache沖突的頁選入SPM中,不僅可以通過降低Cache沖突而降低系統(tǒng)能耗,提升系統(tǒng)性能,還能由單次訪問SPM與Cache的能耗差獲得更多收 益。但是這些研究都是基于靜態(tài)的設(shè)計,即在程序執(zhí)行中SPM中的內(nèi)容不發(fā)生改變,沒有充 分的利用Cache沖突在在時間維上的局部性,降低了 SPM的利用率。并且,這些設(shè)計對SPM 的管理依賴于對源程序跳轉(zhuǎn)指令的修改,是一種侵入式的分析,因此僅能針對指令部分進 行分析,而不能分析更容易引起Cache抖動的程序數(shù)據(jù)部分。 由于對SPM內(nèi)容的更改需要軟件顯示的進行,因此一般對SPM進行動態(tài)管理的研 究都是通過"打樁"的形式,即在需要優(yōu)化的程序核心循環(huán)前后,手工插入代碼搬運指令,從 而完成對程序內(nèi)容的換入換出。在程序映像中插入新的指令,需要依賴對源碼的分析,并且 新的指令很可能引起共存架構(gòu)中Cache行為的變化,例如產(chǎn)生更多的沖突。
目前針對Cache和SPM共存架構(gòu)中數(shù)據(jù)部分的研究, 一般都是僅針對程序的全局 數(shù)據(jù)部分進行研究。對于在程序在執(zhí)行過程中,動態(tài)分配與使用的堆數(shù)據(jù)和棧數(shù)據(jù),基于源 碼分析的靜態(tài)分析方法,如程序擴展流圖(Control Flow Gr即h)、數(shù)組劃分等,難以對其進 行優(yōu)化。因此目前針對堆優(yōu)化和棧優(yōu)化的方案中,優(yōu)化效率較低,且方案不適用于全局數(shù)據(jù) 和常量池數(shù)據(jù)。因此,針對數(shù)據(jù)部分的優(yōu)化,一般是分別對全局數(shù)據(jù)、常量池、堆和棧進行分 別優(yōu)化的。 到目前為止,還未有相關(guān)研究涉及將程序數(shù)據(jù)部分,包括全局數(shù)據(jù)、常量池、堆和 棧進行統(tǒng)一分析,并動態(tài)的將其映射到SPM中。
發(fā)明內(nèi)容
本發(fā)明的目的在于克服現(xiàn)有片上存儲子系統(tǒng)的不足,提供一種利用虛存機制對片 上異構(gòu)存儲資源動態(tài)分配的方法,采用容量較小的數(shù)據(jù)SPM存儲器在程序執(zhí)行過程中降低 傳統(tǒng)數(shù)據(jù)Cache沖突,對全局數(shù)據(jù)、常量池、堆和棧進行統(tǒng)一優(yōu)化,從而降低由沖突帶來的 額外訪存,最終提高微處理器運行的速度并降低系統(tǒng)能耗。 為實現(xiàn)上述目的,本發(fā)明采取的技術(shù)方案是一種利用虛存機制對片上異構(gòu)存儲 資源動態(tài)分配的方法,其特征在于通過對應(yīng)用程序執(zhí)行過程中處理器內(nèi)核對數(shù)據(jù)Cache 訪問的跟蹤,得到包括全局數(shù)據(jù)、堆棧數(shù)據(jù)、堆數(shù)據(jù)以及常量池數(shù)據(jù)在內(nèi)的Cache沖突的數(shù) 據(jù)段缺失的時間和空間分布,由該空間分布得到數(shù)據(jù)Cache的時隙沖突圖并對其進行數(shù)學 抽像,根據(jù)能耗目標函數(shù)、性能目標函數(shù)分別利用整數(shù)非線性規(guī)劃的方法選出系統(tǒng)總能耗 最優(yōu)時每個數(shù)據(jù)頁的狀態(tài),得到每個時隙中最有優(yōu)化價值數(shù)據(jù)頁的頁號,利用迭代求解方 法,對時隙大小進行調(diào)整,根據(jù)每個時隙中需要優(yōu)化的數(shù)據(jù)頁和調(diào)整后的時隙大小信息,在 程序執(zhí)行中通過時鐘中斷,在每個均分的時隙中通過數(shù)據(jù)SPM控制器實現(xiàn)包括頁表項入口 的修改、DMA(直接內(nèi)存訪問控制器)的配置,將引起數(shù)據(jù)Cache沖突的地址空間動態(tài)重映 射到數(shù)據(jù)SPM存儲器中,消除數(shù)據(jù)Cache沖突帶來的額外訪存; 得到數(shù)據(jù)Cache的時隙沖突圖后,利用程序執(zhí)行時表現(xiàn)出來的時間局部性,將一 段時間內(nèi)最頻繁引起數(shù)據(jù)Cache沖突的地址空間重映射到數(shù)據(jù)SPM存儲器中,而在其收益 不大時映射回主存。 所說虛存機制是在TLB(旁路轉(zhuǎn)換緩沖)中增加S位,用于標志該頁內(nèi)容在數(shù)據(jù) SPM存儲器中,減少額外Cache比較的能耗開銷,同時,修改TLB(旁路轉(zhuǎn)換緩沖)使之支持 對512Byte/虛存頁以及256Byte/虛存頁,從而將頻繁引起數(shù)據(jù)Cache沖突的部分抽離出
4來,而避免對大量優(yōu)化價值不大的地址空間做重映射; 所說數(shù)據(jù)SPM控制器在程序執(zhí)行過程中動態(tài)高效的將程序數(shù)據(jù)部分換入換出數(shù) 據(jù)SPM存儲器,利用片上AHB高速總線的Burst特性,避免對指令Cache以及數(shù)據(jù)Cache的
二次污染。 在數(shù)據(jù)SPM控制器中可增加了一組專用于記錄寫回地址、寫臟情況以及虛存頁大 小的數(shù)據(jù)SPM控制寄存器,其作用是 1)該組寄存器將負責在某虛存頁重映射在數(shù)據(jù)SPM存儲器時記錄其對應(yīng)的主存 地址,此地址將在該虛存頁被換出便簽存儲器時作為DMA(直接內(nèi)存訪問控制器)的目的地 址; 2)該組寄存器中負責記錄寫臟情況的位用來表示該頁在映射到片上便簽存儲器
后是否發(fā)生寫操作,如果該頁被寫臟,需在下一時隙開始前將內(nèi)容換出至主存,以保持數(shù)據(jù)
一致性,數(shù)據(jù)SPM控制器根據(jù)寫臟位決定是否使能DMA(直接內(nèi)存訪問控制器); 3)該組寄存器中負責記錄虛存頁大小的位將用于配置DMA(直接內(nèi)存訪問控制
器)搬運長度。 本發(fā)明方法具體可按以下步驟實現(xiàn)
(1)建立虛存管理的機制 虛存管理機制可以通過修改頁表項,形成物理分離、邏輯連續(xù)的地址空間,這樣就 可以實現(xiàn)將部分程序頁的地址映射到數(shù)據(jù)SPM存儲器中。相對于傳統(tǒng)的動態(tài)SPM優(yōu)化技術(shù), 利用虛存完成地址空間映射關(guān)系的更改,可以實現(xiàn)對程序源代碼和編譯后生成的二進制映 像的完全非侵入式優(yōu)化。為了適應(yīng)對Cache和SPM動態(tài)管理的方法,本發(fā)明需要對原有的 存儲硬件進行改進。 一是在TLB中增加S位以實現(xiàn)必需的訪問控制。使用S位可以使匪U 在進行地址翻譯的同時確定出實際應(yīng)該訪問的物理地址,并將該地址發(fā)給需要訪問的片上 存儲器,即數(shù)據(jù)Cache或者數(shù)據(jù)SPM控制器。不使用S位,虛擬地址經(jīng)過匪U轉(zhuǎn)換后,同時將 物理地址發(fā)向數(shù)據(jù)Cache和數(shù)據(jù)SPM控制器,因此Cache的比較電路和數(shù)據(jù)SPM控制器的尋 址邏輯同時開始工作。增加的S位在地址轉(zhuǎn)換的同時確定將地址發(fā)給數(shù)據(jù)Cache或者數(shù)據(jù) SPM控制器,可以減少片上尋址的能耗。二是通過修改TLB的譯碼邏輯,增加對512Byte/虛 擬頁、256Byte/虛擬頁支持。傳統(tǒng)的TLB僅支持最小IK Byte/虛擬頁的管理,而數(shù)據(jù)Cache 是按行組織的,每行僅32-64Bytes,在程序執(zhí)行的一段時間內(nèi)出現(xiàn)數(shù)據(jù)Cache沖突的地址 空間大多小于傳統(tǒng)TLB支持的最小虛存頁大小,如果對頁大小加以改進,則無法充分利用 數(shù)據(jù)SPM存儲器的容量。本發(fā)明將利用傳統(tǒng)頁表項入口中的保留位,并修改TLB的Tag存 儲器和比較電路,實現(xiàn)對256Byte/虛擬頁和512Byte/虛擬頁的支持。
(2)時隙沖突圖的建立 本發(fā)明通過分析Cache沖突對共存架構(gòu)的存儲器進行優(yōu)化,又因為Cache沖突表 現(xiàn)出明顯的時間局部性,因此本發(fā)明創(chuàng)新性的提出"時隙沖突圖"概念,從時間和空間上對 Cache沖突進行分析。時隙沖突圖根據(jù)對數(shù)據(jù)Cache的trace信息,包含全局數(shù)據(jù)、常量池 數(shù)據(jù)、棧數(shù)據(jù)和堆數(shù)據(jù)的所有沖突圖,并對其進行數(shù)學抽象。沖突圖是一種定量描述被映射 到同一 Cache行中不同程序內(nèi)容之間替換關(guān)系的矢量圖。由于本發(fā)明采用虛存管理機制對 程序數(shù)據(jù)部分進行管理,程序的劃分粒度即為匪U的頁大小,Cache沖突將按頁進行抽象, 并對其進行數(shù)學建模以描述各頁之間的權(quán)重分布,最終由整數(shù)非線性規(guī)劃求得不同時隙中整體能耗收益最優(yōu)時每個頁的狀態(tài)。這樣就得到在每個時隙中最有優(yōu)化價值的頁,這些頁 在程序執(zhí)行的過程中會被動態(tài)的換入到數(shù)據(jù)SPM存儲器中。
(3)時隙長度的迭代求解 本研究利用時隙對程序進行動態(tài)管理。時鐘中斷可以實現(xiàn)對程序的時隙劃分, 僅需要在每個時隙開始的時候,重新加載時鐘模塊計數(shù)器,當計數(shù)器自減到0時產(chǎn)生時鐘 中斷,處理器內(nèi)核將接受到中斷處理模塊發(fā)出的中斷請求,系統(tǒng)進入IRQ模式,完成對數(shù)據(jù) SPM存儲器內(nèi)容的換入換出,最終實現(xiàn)對數(shù)據(jù)SPM存儲器的動態(tài)管理。 通過時鐘中斷對程序執(zhí)行時間標記,需知道某個時隙具體的長度。在建立時隙沖 突圖時,是等長的劃分整個時隙的。但是在對程序進行優(yōu)化時,由于降低Cache沖突使得性 能提升,即程序執(zhí)行時間變短,使得時隙的長度有了變化。因此,我們需要采用迭代求解的 方法,對優(yōu)化后的時隙長度進行調(diào)整。調(diào)整后的時隙長度,及(1)中所確定的每個時隙中需 要放入數(shù)據(jù)SPM存儲器中的頁號,在每次時鐘中斷的時候,加載到時鐘模塊時隙寄存器中。
(4)利用數(shù)據(jù)SPM控制器完成動態(tài)管理 在程序執(zhí)行階段,當時鐘模塊到時時,處理器內(nèi)核將接受到中斷處理模塊發(fā)出的 中斷請求,系統(tǒng)進入IRQ模式。在異常模式下,可以完成對頁表項的修改及數(shù)據(jù)SPM存儲器 中內(nèi)容的換入換出,以適應(yīng)下一個時隙的程序訪存模態(tài)。 在時鐘中斷中,數(shù)據(jù)SPM存儲器內(nèi)容換入換出操作是通過數(shù)據(jù)SPM控制器來完成 的。進入中斷后,數(shù)據(jù)SPM控制器需要完成第一,利用時鐘模塊的時隙寄存器得到當前的 時隙,確定當前的時隙配置信息的偏移;第二,通過判斷上一時隙中數(shù)據(jù)SPM存儲器中的數(shù) 據(jù)是否寫臟,決定是否對當開始DMA換出操作;第三,對本時隙需要寫入數(shù)據(jù)SPM存儲器的 頁進行頁表項的更新操作;第四,配置DMA進行換入操作,并清除其寫臟寄存器的對應(yīng)位。
傳統(tǒng)的數(shù)據(jù)SPM控制器設(shè)計較為簡單,無法實現(xiàn)動態(tài)地址映射機制所要求的更為 復雜的數(shù)據(jù)SPM存儲器動態(tài)分配策略。因此本發(fā)明在傳統(tǒng)的數(shù)據(jù)SPM控制器的基礎(chǔ)上通 過增加一組用于記錄寫回地址和寫臟情況的寄存器,即SPM區(qū)域寄存器,將傳統(tǒng)的、僅能實 現(xiàn)尋址功能的SPM控制器擴展為支持寫臟操作、支持不同粒度SPM管理,并能通過主動配置 DMA實現(xiàn)其內(nèi)容動態(tài)換入換出的數(shù)據(jù)SPM控制器。DMA可以在數(shù)據(jù)SPM控制器的配置下將 數(shù)據(jù)塊動態(tài)換入換出數(shù)據(jù)SPM存儲器,相較于傳統(tǒng)的、通過LDR/STR指令執(zhí)行數(shù)據(jù)SPM存儲 器內(nèi)容的換入換出,DMA在很大程度上利用了主存SDRAM與片上高速總線AHB的BURST特 性,從而降低了傳輸?shù)某杀九c中斷延時。 本發(fā)明的優(yōu)點及顯著效果利用虛存管理的思想可以解決傳統(tǒng)SPM優(yōu)化技術(shù)難以 解決的對程序堆棧數(shù)據(jù)和堆數(shù)據(jù)的優(yōu)化,尤其是對堆數(shù)據(jù)的處理。傳統(tǒng)的優(yōu)化技術(shù)多采用 將待優(yōu)化的數(shù)據(jù)段動態(tài)搬運到SPM的辦法,然而堆數(shù)據(jù)是在程序執(zhí)行過程中由庫函數(shù)動態(tài) 分配的,分配的必要條件是必須存在大小合適的連續(xù)地址空間。如果此時將某段對數(shù)據(jù)搬 運到SPM,則勢必造成地址空間的不連續(xù),從而使程序無法正常執(zhí)行。采用虛存管理的思想, 就可以將實際的物理地址與庫函數(shù)分配時使用的虛擬地址隔離開。這樣,對于庫函數(shù)而言 地址空間在優(yōu)化前后都是連續(xù)的,但對于真實的硬件而言,已經(jīng)將頻繁引起數(shù)據(jù)Cache沖 突的部分堆數(shù)據(jù)段重映射到數(shù)據(jù)SPM存儲器,從而降低了數(shù)據(jù)Cache沖突的次數(shù),最終獲得 了性能和能耗上的收益。同時,利用虛存機制對程序進行管理,可以實現(xiàn)對程序非侵入式 的分析和優(yōu)化,即不需要在用戶程序中顯示的增加SPM的搬運代碼,而在中斷處理中通過
6配置DMA和修改頁表來完成對程序內(nèi)容的換入換出。另外,本發(fā)明充分利用程序執(zhí)行的時 間局部性特點,創(chuàng)新提出了時隙沖突圖的概念,繼而通過動態(tài)分配算法將每個時隙內(nèi)導致 Cache沖突的頁利用虛存管理的機制重定位到數(shù)據(jù)SPM存儲器,從而獲得相較于靜態(tài)優(yōu)化 更為可觀的性能和能耗收益,最終動態(tài)的利用了有限的片上SPM資源,降低程序的能耗,提 升系統(tǒng)性能。
圖1為利用虛存機制實現(xiàn)對片上異構(gòu)存儲資源動態(tài)管理的系統(tǒng)框圖;
圖2為數(shù)據(jù)SPM控制器的寄存器的設(shè)計;
圖3為時隙沖突的示例圖; 圖4為利用時隙分析方法對片上存儲資源數(shù)據(jù)進行管理的系統(tǒng)流程圖
圖5為迭代求解示意圖 圖6為采用本發(fā)明優(yōu)化方法對系統(tǒng)能耗進行優(yōu)化的試驗結(jié)果
具體實施例方式
下面結(jié)合附圖與具體實施方式
對本發(fā)明作進一步詳細描述。 本發(fā)明通過對應(yīng)用程序執(zhí)行過程中數(shù)據(jù)Cache訪問的跟蹤,得到數(shù)據(jù)Cache缺失 的時間和空間分布,繼而由該分布得到數(shù)據(jù)Cache的時隙沖突圖,包括全局數(shù)據(jù)、常量池數(shù) 據(jù)、棧數(shù)據(jù)和堆數(shù)據(jù)。沖突圖是一種定量描述被映射到同一 Cache行中不同程序內(nèi)容之間 替換關(guān)系的矢量圖。通過對Cache時隙沖突進行數(shù)學抽像,利用整數(shù)非線性規(guī)劃的方法可 以確定系統(tǒng)總能耗最優(yōu)時每個數(shù)據(jù)頁的狀態(tài),從而得到每個時隙中最有優(yōu)化價值數(shù)據(jù)頁的 頁號。之后,根據(jù)迭代求解方法,對時隙大小進行調(diào)整。根據(jù)每個時隙中需要優(yōu)化的數(shù)據(jù)頁 和調(diào)整后的時隙大小信息,在程序執(zhí)行中利用時鐘中斷,通過數(shù)據(jù)SPM控制器實現(xiàn)頁表項 入口的修改、DMA的配置等步驟,從而將引起數(shù)據(jù)Cache沖突的地址空間動態(tài)重映射到數(shù)據(jù) SPM存儲器中,最終消除數(shù)據(jù)Cache沖突帶來的額外訪存。 圖1所示為本發(fā)明所提出的虛存機制實現(xiàn)對片上異構(gòu)存儲資源動態(tài)管理的系統(tǒng) 框圖。圖中所示為在原有架構(gòu)上需要進行增加和修改的部分,包括TLB中S位、數(shù)據(jù)SPM控 制器、DMA、時鐘模塊。 TLB中S位數(shù)為增加,是為了適應(yīng)本研究所必需的訪問控制。使用特殊的S位可以 使匪U在進行地址翻譯的同時確定出實際應(yīng)該訪問的物理地址,并將該地址發(fā)給需要訪問 的片上存儲器(數(shù)據(jù)/指令Cache或者SPM)。需要指出的是對該SPM位的計算是在算法 階段完成的,用于標明在特定時隙內(nèi)需要重映射到數(shù)據(jù)SPM存儲器的頁,而真實的置位操 作是在每個時隙結(jié)束時的時鐘中斷中完成的。由此,在時鐘中斷處理之后,繼續(xù)執(zhí)行基準測 試程序時就能根據(jù)SPM位的置位情況,在物理地址-虛擬地址翻譯的同一個時鐘周期內(nèi)決 定后續(xù)訪問的片上存儲器類型。S位的增加可以減少片上尋址的能耗。如果不使用S位,地 址經(jīng)過匪U的虛擬地址-物理地址的轉(zhuǎn)換之后,需要同時將地址發(fā)向數(shù)據(jù)Cache和數(shù)據(jù)SPM 控制器,數(shù)據(jù)Cache的比較電路和數(shù)據(jù)SPM控制器的尋址邏輯同時開始工作。由于數(shù)據(jù)僅 可能在一種存儲器中,兩種尋址邏輯都要消耗一定的能耗。設(shè)計S位,可以在地址轉(zhuǎn)換的時 候判斷地址發(fā)送到數(shù)據(jù)Cache和數(shù)據(jù)SPM控制器,以節(jié)省一定功耗。
圖2為數(shù)據(jù)SPM控制器的寄存器設(shè)計。傳統(tǒng)的數(shù)據(jù)SPM控制器設(shè)計較為簡單,無 法實現(xiàn)動態(tài)地址映射機制所要求的更為復雜的數(shù)據(jù)SPM存儲器動態(tài)分配策略。因此本發(fā)明 在傳統(tǒng)SPM控制器的基礎(chǔ)上通過增加一組用于記錄寫回地址和寫臟情況的寄存器,即SPM 區(qū)域寄存器。將傳統(tǒng)的、僅能實現(xiàn)尋址功能的數(shù)據(jù)SPM控制器擴展為支持寫臟操作、支持不 同粒度SPM管理,并能通過主動配置DMA實現(xiàn)其內(nèi)容動態(tài)換入換出的先進SPM控制器。由 于本研究可以針對不同大小的匪U頁做設(shè)計空間探索,因此需要對頁大小做說明。SPM區(qū)域 寄存器的第0位為EN位,該位在系統(tǒng)初始化時會被置0,當對SPM某頁第一次做DMA換入操 作時,將該位置1 ;SPM區(qū)域寄存器的第1位為寫臟控制,主要用來標記處理器內(nèi)核對該SPM 頁的寫操作,方便DMA換出。區(qū)域寄存器的第2位至第六位來確定的頁大小,其具體對應(yīng)的 基地址由高位地址給出,根據(jù)其頁大小占用位數(shù)不等。 DMA可以在數(shù)據(jù)SPM控制器的配置下將數(shù)據(jù)塊動態(tài)換入換出數(shù)據(jù)SPM存儲器,相 較于傳統(tǒng)的、通過LDR/STR指令執(zhí)行SPM內(nèi)容的換入換出,DMA在很大程度上利用了主存 SDRAM與片上高速總線AHB的BURST特性,從而降低了傳輸?shù)某杀九c中斷延時。對DMA的控 制主要由數(shù)據(jù)SPM控制器完成,數(shù)據(jù)SPM控制器通過讀取加載到主存的配置信息,在不同的 時隙按需求將需要更新部分信息加載到DMA控制器的對應(yīng)控制寄存器中,從而完成對DMA 的配置。之后DMA控制器將申請總線,按照數(shù)據(jù)SPM控制器的配置通過DMA操作將需要的 內(nèi)容換入換出數(shù)據(jù)SPM存儲器,從而完成片上數(shù)據(jù)SPM存儲器內(nèi)容的動態(tài)更新。
時鐘中斷是動態(tài)調(diào)整數(shù)據(jù)SPM存儲器內(nèi)容的基礎(chǔ)。由于程序執(zhí)行通常具有比較明 顯的時間局部性,因此程序指令段對相關(guān)數(shù)據(jù)的訪問也存在類似的特性,數(shù)據(jù)Cache出現(xiàn) 缺失也具有類似的時間局部性特征,如果充分利用,則能在很大程度上充分利用SPM面積, 最終通過動態(tài)調(diào)整SPM內(nèi)容得到更好的能耗收益。當時鐘模塊的時鐘計數(shù)寄存器自減到0 時,處理器內(nèi)核將接受到中斷處理模塊發(fā)出的中斷請求,然后系統(tǒng)進入IRQ模式。之后,數(shù) 據(jù)SPM控制器根據(jù)對區(qū)域寄存器中的內(nèi)容,完成對SPM內(nèi)容換入換出的操作,最終實現(xiàn)對數(shù) 據(jù)SPM存儲器的動態(tài)管理。 圖3為時隙沖突的示例圖。由于程序執(zhí)行存在較為明顯的時間局部性,時隙沖突 圖根據(jù)劃分程序執(zhí)行的整個過程為均勻長度的時隙,并在不同時隙內(nèi)部分別得到各自的 Cache沖突圖。通過SPM動態(tài)分配算法將每個時隙內(nèi)導致Cache沖突的頁利用虛存管理的 機制重定位到數(shù)據(jù)SPM存儲器,基于時隙的動態(tài)優(yōu)化可以利用了有限的片上SPM資源,獲得 相較于靜態(tài)優(yōu)化更為可觀的性能和能耗收益。 圖4所示為利用時隙分析方法對片上異構(gòu)存儲資源數(shù)據(jù)進行動態(tài)管理的方法的 系統(tǒng)流程圖。 在程序分析階段,第一步通過收集到的數(shù)據(jù)Cache的trace/跟蹤信息,建立數(shù)據(jù) Cache時隙沖突圖?;跀?shù)據(jù)Cache時隙沖突圖可以實現(xiàn)對程序非侵入式的分析,并且可 以分析程序數(shù)據(jù)的所有部分,包括全局數(shù)據(jù)、常量池數(shù)據(jù),以及一般研究難以分析和處理的 動態(tài)分配和使用的棧數(shù)據(jù)和堆數(shù)據(jù)。第二步,進行數(shù)學抽象我們通過對Cache沖突圖進行 數(shù)學建模以描述各數(shù)據(jù)頁之間的權(quán)重分布,繼而通過權(quán)重分布的變化定量描述各備選節(jié)點 的狀態(tài)對能耗函數(shù)的影響,最終由整數(shù)非線性規(guī)劃求得整體能耗收益最優(yōu)時每個節(jié)點的狀 態(tài)。第三步,可以得到在每個時隙中,最有優(yōu)化價值的頁號,這些頁號在程序執(zhí)行的過程中 會被動態(tài)的換入到數(shù)據(jù)SPM存儲器中。第四步,通過迭代對時隙長度進行調(diào)整,如圖5所示。
8由于每個時隙內(nèi)由于消除了大量數(shù)據(jù)Cache缺失,從而獲得了能耗和性能兩方面的收益, 而性能上的收益會直接導致本時隙程序執(zhí)行時間縮短,從而導致下一個時隙開始的時間點 偏移,因此需要通過迭代求解的方法,統(tǒng)計出每個時隙在優(yōu)化前后時間的差距并將其校正。 在完成上述步驟后,可以得到調(diào)整后的每個時隙的具體長度以及每個時隙內(nèi)需要搬入數(shù)據(jù) SPM存儲器的頁內(nèi)容。 在程序執(zhí)行階段,當時鐘模塊到時時,處理器內(nèi)核將接受到中斷處理模塊發(fā)出的 中斷請求,然后系統(tǒng)進入IRQ模式。在異常模式下,可以完成對頁表項的修改及數(shù)據(jù)SPM存 儲器中內(nèi)容的換入換出,以適應(yīng)下一個時隙的程序訪存模態(tài)。進入時鐘中斷的具體過程為 第一步,在進入該模式并保存相關(guān)的環(huán)境變量后,利用時鐘模塊的時隙寄存器得到當前的 時隙數(shù),從而得到該時隙所需要的配置信息,包括需要動態(tài)換入數(shù)據(jù)頁的頁號及調(diào)整后的 時隙長度。第二步,數(shù)據(jù)SPM控制器將利用該值得到當前時隙數(shù)據(jù)SPM存儲器中應(yīng)該緩沖 的主存地址空間信息和相關(guān)標志位。第三步,由于數(shù)據(jù)存在寫回問題,數(shù)據(jù)SPM控制器將根 據(jù)其寫臟寄存器對該頁的標記,決定是否開始DMA換出操作。若該位為O,則表示待處理頁 在之前的時隙中并未被處理器內(nèi)容寫臟,也就無需開始DMA寫回操作。若該位為l,則數(shù)據(jù) SPM控制器將根據(jù)其映射區(qū)間寄存器的對應(yīng)值配置DMA的源地址和目的地址寄存器,開始 寫回操作。第四步,在完成對頁表和數(shù)據(jù)SPM存儲器內(nèi)容的寫回操作后,數(shù)據(jù)SPM控制器將 加載本時隙需要寫入數(shù)據(jù)SPM存儲器頁的主存地址到對應(yīng)的映射區(qū)間寄存器,并開始頁表 項的更新操作。第五步,完成頁表項更新后,數(shù)據(jù)SPM控制器將負責加載映射區(qū)間寄存器中 主存地址到DMA的源地址寄存器,并加載數(shù)據(jù)SPM存儲器對應(yīng)頁的物理地址到DMA的目的 地址寄存器,然后開始DMA的換入操作,并清除其寫臟寄存器的對應(yīng)位。最后,中斷處理程 序?qū)r鐘模塊的時隙寄存器加l,為下一個時隙做準備,并恢復中斷前的環(huán)境變量,退出中 斷處理程序,處理器內(nèi)核開始繼續(xù)執(zhí)行時鐘中斷以前的基準測試程序。
圖5所示為使用本發(fā)明提出的利用虛存管理機制對片上異構(gòu)存儲資源進行管理 所得到的能耗收益。對比試驗采用8K4路組關(guān)聯(lián)的數(shù)據(jù)Cache,優(yōu)化試驗采用4K直接關(guān)聯(lián) 的數(shù)據(jù)Cache及4K的數(shù)據(jù)SPM存儲器,利用時隙分析方法對異構(gòu)存儲資源數(shù)據(jù)進行動態(tài) 管理。根據(jù)Cacti3. 2對片上存儲器面積的計算,優(yōu)化試驗所用的4K直接關(guān)聯(lián)數(shù)據(jù)Cache 與4K的數(shù)據(jù)SPM存儲器的面積之和,其占用的芯片面積僅為對比試驗8K4路組關(guān)聯(lián)Cache 的80. 7%,但根據(jù)10個Benchmark的試驗結(jié)果,系統(tǒng)能耗平均降低26. 74%,最高降低 51. 07%。
權(quán)利要求
一種利用虛存機制對片上異構(gòu)存儲資源動態(tài)分配的方法,其特征在于通過對應(yīng)用程序執(zhí)行過程中處理器內(nèi)核對數(shù)據(jù)Cache訪問的跟蹤,得到包括全局數(shù)據(jù)、堆棧數(shù)據(jù)、堆數(shù)據(jù)以及常量池數(shù)據(jù)在內(nèi)的Cache沖突的數(shù)據(jù)段缺失的時間和空間分布,由該空間分布得到數(shù)據(jù)Cache的時隙沖突圖并對其進行數(shù)學抽像,根據(jù)能耗目標函數(shù)、性能目標函數(shù)分別利用整數(shù)非線性規(guī)劃的方法選出系統(tǒng)總能耗最優(yōu)時每個數(shù)據(jù)頁的狀態(tài),得到每個時隙中最有優(yōu)化價值數(shù)據(jù)頁的頁號,利用迭代求解方法,對時隙大小進行調(diào)整,根據(jù)每個時隙中需要優(yōu)化的數(shù)據(jù)頁和調(diào)整后的時隙大小信息,在程序執(zhí)行中通過時鐘中斷,在每個均分的時隙中通過數(shù)據(jù)SPM控制器實現(xiàn)包括頁表項入口的修改、直接內(nèi)存訪問控制器DMA的配置,將引起數(shù)據(jù)Cache沖突的地址空間動態(tài)重映射到數(shù)據(jù)SPM存儲器中,消除數(shù)據(jù)Cache沖突帶來的額外訪存。
2. 根據(jù)權(quán)利要求1所述的利用虛存機制對片上異構(gòu)存儲資源動態(tài)分配的方法,其特征 在于得到數(shù)據(jù)Cache的時隙沖突圖后,利用程序執(zhí)行時表現(xiàn)出來的時間局部性,將一段時 間內(nèi)最頻繁引起數(shù)據(jù)Cache沖突的地址空間重映射到數(shù)據(jù)SPM存儲器中,而在其收益不大 時映射回主存。
3. 根據(jù)權(quán)利要求1所述的利用虛存機制對片上異構(gòu)存儲資源動態(tài)分配的方法,其特征 在于虛存機制是在旁路轉(zhuǎn)換緩沖TLB中增加S位,用于標志該頁內(nèi)容在數(shù)據(jù)SPM存儲器 中,減少額外Cache比較的能耗開銷,同時,修改旁路轉(zhuǎn)換緩沖TLB使之支持對512Byte/虛 存頁以及256Byte/虛存頁,從而將頻繁引起數(shù)據(jù)Cache沖突的部分抽離出來,而避免對大 量優(yōu)化價值不大的地址空間做重映射。
4. 根據(jù)權(quán)利要求1所述的利用虛存機制對片上異構(gòu)存儲資源動態(tài)分配的方法,其特征 在于數(shù)據(jù)SPM控制器在程序執(zhí)行過程中動態(tài)高效的將程序數(shù)據(jù)部分換入換出數(shù)據(jù)SPM存 儲器,利用片上AHB高速總線的Burst特性,避免對指令Cache以及數(shù)據(jù)Cache的二次污染。
5. 根據(jù)權(quán)利要求4所述的利用虛存機制對片上異構(gòu)存儲資源動態(tài)分配的方法,其特征 在于在數(shù)據(jù)SPM控制器中增加了一組專用于記錄寫回地址、寫臟情況以及虛存頁大小的 數(shù)據(jù)SPM控制寄存器1) 該組寄存器將負責在某虛存頁重映射在數(shù)據(jù)SPM存儲器時記錄其對應(yīng)的主存地址, 此地址將在該虛存頁被換出便簽存儲器時作為直接內(nèi)存訪問控制器DMA的目的地址;2) 該組寄存器中負責記錄寫臟情況的位用來表示該頁在映射到片上便簽存儲器后是 否發(fā)生寫操作,如果該頁被寫臟,需在下一時隙開始前將內(nèi)容換出至主存,以保持數(shù)據(jù)一致 性,數(shù)據(jù)SPM控制器根據(jù)寫臟位決定是否使能直接內(nèi)存訪問控制器DMA ;3) 該組寄存器中負責記錄虛存頁大小的位將用于配置直接內(nèi)存訪問控制器DMA搬運 長度。
全文摘要
本發(fā)明公開了一種利用虛存機制對片上異構(gòu)存儲資源動態(tài)分配的方法,采用時隙分析方法,對高頻率引起數(shù)據(jù)Cache沖突的數(shù)據(jù)段(包括全局數(shù)據(jù)、堆棧數(shù)據(jù)、堆數(shù)據(jù)以及常量池數(shù)據(jù))的時間和空間分布進行分析,繼而由該分布得到數(shù)據(jù)Cache的時隙沖突圖,并對其進行數(shù)學抽象。根據(jù)能耗目標函數(shù)、性能目標函數(shù),利用整數(shù)非線性規(guī)劃的方法選出需要優(yōu)化的程序部分,并利用時鐘中斷,將其動態(tài)重映射到片上數(shù)據(jù)SPM(Scratch-padMemory,便簽存儲器)存儲器中,由此可以避免因數(shù)據(jù)Cache沖突引起的額外訪存。本發(fā)明方法對片上異構(gòu)存儲的充分利用,可以降低系統(tǒng)能耗,提升系統(tǒng)性能。
文檔編號G06F12/08GK101739358SQ20091026439
公開日2010年6月16日 申請日期2009年12月21日 優(yōu)先權(quán)日2009年12月21日
發(fā)明者凌明, 張陽, 梅晨, 武建平, 王歡 申請人:東南大學