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