專利名稱:利用虛存機制對片上異構(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í)行時 間不可預(yù)知等不足一直限制其在嵌入式系統(tǒng)中的廣泛運用。尤其是Cache的組關(guān)聯(lián)特性, 可能導(dǎo)致被映射到同一 Cache行的不同程序內(nèi)容,由于訪存規(guī)律,反復(fù)相互替換,從而增大 了系統(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,增加了程序管理的復(fù)雜性。由于沒有管理邏輯電路帶來的額 外代價,相較于傳統(tǒng)Cache, SPM硬件實現(xiàn)更為簡單、單次訪問功耗更低、占用芯片面積更小 而且訪問時間可預(yù)知。綜上,Cache和SPM各具優(yōu)勢且存在互補性,因此對Cache和SPM共 存的異構(gòu)存儲器存儲資源進(jìn)行研究,可以充分利用兩者優(yōu)勢,從而最大限度降低系統(tǒng)能耗、 提升系統(tǒng)性能。 —些針對嵌入式片上存儲器的研究的主要分析單純配置Cache或單純配置SPM的 架構(gòu),不能很好的利用兩者互補的特性。直接將僅針對SPM的優(yōu)化算法或僅針對Cache的 優(yōu)化算法運用到兩者共存的架構(gòu)中,不能達(dá)到整體性能最優(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)容可能反復(fù)相互 替換,帶來大量的訪存操作,從而導(dǎo)致系統(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)指令的修改,是一種侵入式的分析,因此僅能針對指令部分進(jìn) 行分析,而不能分析更容易引起Cache抖動的程序數(shù)據(jù)部分。 由于對SPM內(nèi)容的更改需要軟件顯示的進(jìn)行,因此一般對SPM進(jìn)行動態(tài)管理的研 究都是通過"打樁"的形式,即在需要優(yōu)化的程序核心循環(huán)前后,手工插入代碼搬運指令,從 而完成對程序內(nèi)容的換入換出。在程序映像中插入新的指令,需要依賴對源碼的分析,并且 新的指令很可能引起共存架構(gòu)中Cache行為的變化,例如產(chǎn)生更多的沖突。
目前針對Cache和SPM共存架構(gòu)中數(shù)據(jù)部分的研究, 一般都是僅針對程序的全局 數(shù)據(jù)部分進(jìn)行研究。對于在程序在執(zhí)行過程中,動態(tài)分配與使用的堆數(shù)據(jù)和棧數(shù)據(jù),基于源 碼分析的靜態(tài)分析方法,如程序擴展流圖(Control Flow Gr即h)、數(shù)組劃分等,難以對其進(jìn) 行優(yōu)化。因此目前針對堆優(yōu)化和棧優(yōu)化的方案中,優(yōu)化效率較低,且方案不適用于全局?jǐn)?shù)據(jù) 和常量池數(shù)據(jù)。因此,針對數(shù)據(jù)部分的優(yōu)化,一般是分別對全局?jǐn)?shù)據(jù)、常量池、堆和棧進(jìn)行分 別優(yōu)化的。 到目前為止,還未有相關(guān)研究涉及將程序數(shù)據(jù)部分,包括全局?jǐn)?shù)據(jù)、常量池、堆和 棧進(jìn)行統(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沖突,對全局?jǐn)?shù)據(jù)、常量池、堆和棧進(jìn)行統(tǒng)一優(yōu)化,從而降低由沖突帶來的 額外訪存,最終提高微處理器運行的速度并降低系統(tǒng)能耗。 為實現(xiàn)上述目的,本發(fā)明采取的技術(shù)方案是一種利用虛存機制對片上異構(gòu)存儲 資源動態(tài)分配的方法,其特征在于通過對應(yīng)用程序執(zhí)行過程中處理器內(nèi)核對數(shù)據(jù)Cache 訪問的跟蹤,得到包括全局?jǐn)?shù)據(jù)、堆棧數(shù)據(jù)、堆數(shù)據(jù)以及常量池數(shù)據(jù)在內(nèi)的Cache沖突的數(shù) 據(jù)段缺失的時間和空間分布,由該空間分布得到數(shù)據(jù)Cache的時隙沖突圖并對其進(jìn)行數(shù)學(xué) 抽像,根據(jù)能耗目標(biāo)函數(shù)、性能目標(biāo)函數(shù)分別利用整數(shù)非線性規(guī)劃的方法選出系統(tǒng)總能耗 最優(yōu)時每個數(shù)據(jù)頁的狀態(tài),得到每個時隙中最有優(yōu)化價值數(shù)據(jù)頁的頁號,利用迭代求解方 法,對時隙大小進(jìn)行調(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位,用于標(biāo)志該頁內(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)該組寄存器將負(fù)責(zé)在某虛存頁重映射在數(shù)據(jù)SPM存儲器時記錄其對應(yīng)的主存 地址,此地址將在該虛存頁被換出便簽存儲器時作為DMA(直接內(nèi)存訪問控制器)的目的地 址; 2)該組寄存器中負(fù)責(zé)記錄寫臟情況的位用來表示該頁在映射到片上便簽存儲器
后是否發(fā)生寫操作,如果該頁被寫臟,需在下一時隙開始前將內(nèi)容換出至主存,以保持?jǐn)?shù)據(jù)
一致性,數(shù)據(jù)SPM控制器根據(jù)寫臟位決定是否使能DMA(直接內(nèi)存訪問控制器); 3)該組寄存器中負(fù)責(zé)記錄虛存頁大小的位將用于配置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)對程序源代碼和編譯后生成的二進(jìn)制映 像的完全非侵入式優(yōu)化。為了適應(yīng)對Cache和SPM動態(tài)管理的方法,本發(fā)明需要對原有的 存儲硬件進(jìn)行改進(jìn)。 一是在TLB中增加S位以實現(xiàn)必需的訪問控制。使用S位可以使匪U 在進(jìn)行地址翻譯的同時確定出實際應(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支持的最小虛存頁大小,如果對頁大小加以改進(jìn),則無法充分利用 數(shù)據(jù)SPM存儲器的容量。本發(fā)明將利用傳統(tǒng)頁表項入口中的保留位,并修改TLB的Tag存 儲器和比較電路,實現(xiàn)對256Byte/虛擬頁和512Byte/虛擬頁的支持。
(2)時隙沖突圖的建立 本發(fā)明通過分析Cache沖突對共存架構(gòu)的存儲器進(jìn)行優(yōu)化,又因為Cache沖突表 現(xiàn)出明顯的時間局部性,因此本發(fā)明創(chuàng)新性的提出"時隙沖突圖"概念,從時間和空間上對 Cache沖突進(jìn)行分析。時隙沖突圖根據(jù)對數(shù)據(jù)Cache的trace信息,包含全局?jǐn)?shù)據(jù)、常量池 數(shù)據(jù)、棧數(shù)據(jù)和堆數(shù)據(jù)的所有沖突圖,并對其進(jìn)行數(shù)學(xué)抽象。沖突圖是一種定量描述被映射 到同一 Cache行中不同程序內(nèi)容之間替換關(guān)系的矢量圖。由于本發(fā)明采用虛存管理機制對 程序數(shù)據(jù)部分進(jìn)行管理,程序的劃分粒度即為匪U的頁大小,Cache沖突將按頁進(jìn)行抽象, 并對其進(jìn)行數(shù)學(xué)建模以描述各頁之間的權(quán)重分布,最終由整數(shù)非線性規(guī)劃求得不同時隙中整體能耗收益最優(yōu)時每個頁的狀態(tài)。這樣就得到在每個時隙中最有優(yōu)化價值的頁,這些頁 在程序執(zhí)行的過程中會被動態(tài)的換入到數(shù)據(jù)SPM存儲器中。
(3)時隙長度的迭代求解 本研究利用時隙對程序進(jìn)行動態(tài)管理。時鐘中斷可以實現(xiàn)對程序的時隙劃分, 僅需要在每個時隙開始的時候,重新加載時鐘模塊計數(shù)器,當(dāng)計數(shù)器自減到0時產(chǎn)生時鐘 中斷,處理器內(nèi)核將接受到中斷處理模塊發(fā)出的中斷請求,系統(tǒng)進(jìn)入IRQ模式,完成對數(shù)據(jù) SPM存儲器內(nèi)容的換入換出,最終實現(xiàn)對數(shù)據(jù)SPM存儲器的動態(tài)管理。 通過時鐘中斷對程序執(zhí)行時間標(biāo)記,需知道某個時隙具體的長度。在建立時隙沖 突圖時,是等長的劃分整個時隙的。但是在對程序進(jìn)行優(yōu)化時,由于降低Cache沖突使得性 能提升,即程序執(zhí)行時間變短,使得時隙的長度有了變化。因此,我們需要采用迭代求解的 方法,對優(yōu)化后的時隙長度進(jìn)行調(diào)整。調(diào)整后的時隙長度,及(1)中所確定的每個時隙中需 要放入數(shù)據(jù)SPM存儲器中的頁號,在每次時鐘中斷的時候,加載到時鐘模塊時隙寄存器中。
(4)利用數(shù)據(jù)SPM控制器完成動態(tài)管理 在程序執(zhí)行階段,當(dāng)時鐘模塊到時時,處理器內(nèi)核將接受到中斷處理模塊發(fā)出的 中斷請求,系統(tǒng)進(jìn)入IRQ模式。在異常模式下,可以完成對頁表項的修改及數(shù)據(jù)SPM存儲器 中內(nèi)容的換入換出,以適應(yīng)下一個時隙的程序訪存模態(tài)。 在時鐘中斷中,數(shù)據(jù)SPM存儲器內(nèi)容換入換出操作是通過數(shù)據(jù)SPM控制器來完成 的。進(jìn)入中斷后,數(shù)據(jù)SPM控制器需要完成第一,利用時鐘模塊的時隙寄存器得到當(dāng)前的 時隙,確定當(dāng)前的時隙配置信息的偏移;第二,通過判斷上一時隙中數(shù)據(jù)SPM存儲器中的數(shù) 據(jù)是否寫臟,決定是否對當(dāng)開始DMA換出操作;第三,對本時隙需要寫入數(shù)據(jù)SPM存儲器的 頁進(jìn)行頁表項的更新操作;第四,配置DMA進(jìn)行換入操作,并清除其寫臟寄存器的對應(yīng)位。
傳統(tǒng)的數(shù)據(jù)SPM控制器設(shè)計較為簡單,無法實現(xiàn)動態(tài)地址映射機制所要求的更為 復(fù)雜的數(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ù),最終獲得 了性能和能耗上的收益。同時,利用虛存機制對程序進(jìn)行管理,可以實現(xiàn)對程序非侵入式 的分析和優(yōu)化,即不需要在用戶程序中顯示的增加SPM的搬運代碼,而在中斷處理中通過
6配置DMA和修改頁表來完成對程序內(nèi)容的換入換出。另外,本發(fā)明充分利用程序執(zhí)行的時 間局部性特點,創(chuàng)新提出了時隙沖突圖的概念,繼而通過動態(tài)分配算法將每個時隙內(nèi)導(dǎo)致 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ù)進(jìn)行管理的系統(tǒng)流程圖
圖5為迭代求解示意圖 圖6為采用本發(fā)明優(yōu)化方法對系統(tǒng)能耗進(jìn)行優(yōu)化的試驗結(jié)果
具體實施例方式
下面結(jié)合附圖與具體實施方式
對本發(fā)明作進(jìn)一步詳細(xì)描述。 本發(fā)明通過對應(yīng)用程序執(zhí)行過程中數(shù)據(jù)Cache訪問的跟蹤,得到數(shù)據(jù)Cache缺失 的時間和空間分布,繼而由該分布得到數(shù)據(jù)Cache的時隙沖突圖,包括全局?jǐn)?shù)據(jù)、常量池數(shù) 據(jù)、棧數(shù)據(jù)和堆數(shù)據(jù)。沖突圖是一種定量描述被映射到同一 Cache行中不同程序內(nèi)容之間 替換關(guān)系的矢量圖。通過對Cache時隙沖突進(jìn)行數(shù)學(xué)抽像,利用整數(shù)非線性規(guī)劃的方法可 以確定系統(tǒng)總能耗最優(yōu)時每個數(shù)據(jù)頁的狀態(tài),從而得到每個時隙中最有優(yōu)化價值數(shù)據(jù)頁的 頁號。之后,根據(jù)迭代求解方法,對時隙大小進(jìn)行調(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)上需要進(jìn)行增加和修改的部分,包括TLB中S位、數(shù)據(jù)SPM控 制器、DMA、時鐘模塊。 TLB中S位數(shù)為增加,是為了適應(yīng)本研究所必需的訪問控制。使用特殊的S位可以 使匪U在進(jìn)行地址翻譯的同時確定出實際應(yīng)該訪問的物理地址,并將該地址發(fā)給需要訪問 的片上存儲器(數(shù)據(jù)/指令Cache或者SPM)。需要指出的是對該SPM位的計算是在算法 階段完成的,用于標(biāo)明在特定時隙內(nèi)需要重映射到數(shù)據(jù)SPM存儲器的頁,而真實的置位操 作是在每個時隙結(jié)束時的時鐘中斷中完成的。由此,在時鐘中斷處理之后,繼續(xù)執(zhí)行基準(zhǔn)測 試程序時就能根據(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)地址映射機制所要求的更為復(fù)雜的數(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)換入換出的先進(jìn)SPM控制器。由 于本研究可以針對不同大小的匪U頁做設(shè)計空間探索,因此需要對頁大小做說明。SPM區(qū)域 寄存器的第0位為EN位,該位在系統(tǒng)初始化時會被置0,當(dāng)對SPM某頁第一次做DMA換入操 作時,將該位置1 ;SPM區(qū)域寄存器的第1位為寫臟控制,主要用來標(biāo)記處理器內(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)容得到更好的能耗收益。當(dāng)時鐘模塊的時鐘計數(shù)寄存器自減到0 時,處理器內(nèi)核將接受到中斷處理模塊發(fā)出的中斷請求,然后系統(tǒng)進(jìn)入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)導(dǎo)致Cache沖突的頁利用虛存管理的 機制重定位到數(shù)據(jù)SPM存儲器,基于時隙的動態(tài)優(yōu)化可以利用了有限的片上SPM資源,獲得 相較于靜態(tài)優(yōu)化更為可觀的性能和能耗收益。 圖4所示為利用時隙分析方法對片上異構(gòu)存儲資源數(shù)據(jù)進(jìn)行動態(tài)管理的方法的 系統(tǒng)流程圖。 在程序分析階段,第一步通過收集到的數(shù)據(jù)Cache的trace/跟蹤信息,建立數(shù)據(jù) Cache時隙沖突圖。基于數(shù)據(jù)Cache時隙沖突圖可以實現(xiàn)對程序非侵入式的分析,并且可 以分析程序數(shù)據(jù)的所有部分,包括全局?jǐn)?shù)據(jù)、常量池數(shù)據(jù),以及一般研究難以分析和處理的 動態(tài)分配和使用的棧數(shù)據(jù)和堆數(shù)據(jù)。第二步,進(jìn)行數(shù)學(xué)抽象我們通過對Cache沖突圖進(jìn)行 數(shù)學(xué)建模以描述各數(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存儲器中。第四步,通過迭代對時隙長度進(jìn)行調(diào)整,如圖5所示。
8由于每個時隙內(nèi)由于消除了大量數(shù)據(jù)Cache缺失,從而獲得了能耗和性能兩方面的收益, 而性能上的收益會直接導(dǎo)致本時隙程序執(zhí)行時間縮短,從而導(dǎo)致下一個時隙開始的時間點 偏移,因此需要通過迭代求解的方法,統(tǒng)計出每個時隙在優(yōu)化前后時間的差距并將其校正。 在完成上述步驟后,可以得到調(diào)整后的每個時隙的具體長度以及每個時隙內(nèi)需要搬入數(shù)據(jù) SPM存儲器的頁內(nèi)容。 在程序執(zhí)行階段,當(dāng)時鐘模塊到時時,處理器內(nèi)核將接受到中斷處理模塊發(fā)出的 中斷請求,然后系統(tǒng)進(jìn)入IRQ模式。在異常模式下,可以完成對頁表項的修改及數(shù)據(jù)SPM存 儲器中內(nèi)容的換入換出,以適應(yīng)下一個時隙的程序訪存模態(tài)。進(jìn)入時鐘中斷的具體過程為 第一步,在進(jìn)入該模式并保存相關(guān)的環(huán)境變量后,利用時鐘模塊的時隙寄存器得到當(dāng)前的 時隙數(shù),從而得到該時隙所需要的配置信息,包括需要動態(tài)換入數(shù)據(jù)頁的頁號及調(diào)整后的 時隙長度。第二步,數(shù)據(jù)SPM控制器將利用該值得到當(dāng)前時隙數(shù)據(jù)SPM存儲器中應(yīng)該緩沖 的主存地址空間信息和相關(guān)標(biāo)志位。第三步,由于數(shù)據(jù)存在寫回問題,數(shù)據(jù)SPM控制器將根 據(jù)其寫臟寄存器對該頁的標(biāo)記,決定是否開始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控制器將負(fù)責(zé)加載映射區(qū)間寄存器中 主存地址到DMA的源地址寄存器,并加載數(shù)據(jù)SPM存儲器對應(yīng)頁的物理地址到DMA的目的 地址寄存器,然后開始DMA的換入操作,并清除其寫臟寄存器的對應(yīng)位。最后,中斷處理程 序?qū)r鐘模塊的時隙寄存器加l,為下一個時隙做準(zhǔn)備,并恢復(fù)中斷前的環(huán)境變量,退出中 斷處理程序,處理器內(nèi)核開始繼續(xù)執(zhí)行時鐘中斷以前的基準(zhǔn)測試程序。
圖5所示為使用本發(fā)明提出的利用虛存管理機制對片上異構(gòu)存儲資源進(jìn)行管理 所得到的能耗收益。對比試驗采用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ù)進(jìn)行動態(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訪問的跟蹤,得到包括全局?jǐn)?shù)據(jù)、堆棧數(shù)據(jù)、堆數(shù)據(jù)以及常量池數(shù)據(jù)在內(nèi)的Cache沖突的數(shù)據(jù)段缺失的時間和空間分布,由該空間分布得到數(shù)據(jù)Cache的時隙沖突圖并對其進(jìn)行數(shù)學(xué)抽像,根據(jù)能耗目標(biāo)函數(shù)、性能目標(biāo)函數(shù)分別利用整數(shù)非線性規(guī)劃的方法選出系統(tǒng)總能耗最優(yōu)時每個數(shù)據(jù)頁的狀態(tài),得到每個時隙中最有優(yōu)化價值數(shù)據(jù)頁的頁號,利用迭代求解方法,對時隙大小進(jìn)行調(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位,用于標(biāo)志該頁內(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) 該組寄存器將負(fù)責(zé)在某虛存頁重映射在數(shù)據(jù)SPM存儲器時記錄其對應(yīng)的主存地址, 此地址將在該虛存頁被換出便簽存儲器時作為直接內(nèi)存訪問控制器DMA的目的地址;2) 該組寄存器中負(fù)責(zé)記錄寫臟情況的位用來表示該頁在映射到片上便簽存儲器后是 否發(fā)生寫操作,如果該頁被寫臟,需在下一時隙開始前將內(nèi)容換出至主存,以保持?jǐn)?shù)據(jù)一致 性,數(shù)據(jù)SPM控制器根據(jù)寫臟位決定是否使能直接內(nèi)存訪問控制器DMA ;3) 該組寄存器中負(fù)責(zé)記錄虛存頁大小的位將用于配置直接內(nèi)存訪問控制器DMA搬運 長度。
全文摘要
本發(fā)明公開了一種利用虛存機制對片上異構(gòu)存儲資源動態(tài)分配的方法,采用時隙分析方法,對高頻率引起數(shù)據(jù)Cache沖突的數(shù)據(jù)段(包括全局?jǐn)?shù)據(jù)、堆棧數(shù)據(jù)、堆數(shù)據(jù)以及常量池數(shù)據(jù))的時間和空間分布進(jìn)行分析,繼而由該分布得到數(shù)據(jù)Cache的時隙沖突圖,并對其進(jìn)行數(shù)學(xué)抽象。根據(jù)能耗目標(biāo)函數(shù)、性能目標(biāo)函數(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ā)明者凌明, 張陽, 梅晨, 武建平, 王歡 申請人:東南大學(xué)