国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      基于虛存機(jī)制的指令片上異構(gòu)存儲(chǔ)資源動(dòng)態(tài)分配的方法

      文檔序號(hào):6586633閱讀:240來源:國(guó)知局
      專利名稱:基于虛存機(jī)制的指令片上異構(gòu)存儲(chǔ)資源動(dòng)態(tài)分配的方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及嵌入式片上存儲(chǔ)器領(lǐng)域,特別涉及一種基于虛存機(jī)制的指令片上異構(gòu) 存儲(chǔ)資源(包括指令Cache和指令SPM)動(dòng)態(tài)分配的方法。
      背景技術(shù)
      隨著微電子技術(shù)的發(fā)展,以SoC(System-on-a-Chip)為基礎(chǔ)的嵌入式計(jì)算平臺(tái)日 益成熟。然而,由于處理器速度與外部存儲(chǔ)器速度的差距不斷增大,SoC存儲(chǔ)子系統(tǒng)已經(jīng)成 為系統(tǒng)性能、功耗和成本的瓶頸。因此如何優(yōu)化存儲(chǔ)子系統(tǒng)的架構(gòu)及管理策略,一直是嵌入 式研究的熱點(diǎn)。 作為傳統(tǒng)片上存儲(chǔ)器,Cache由硬件管理,大部分情況下對(duì)軟件透明,能自動(dòng)裝載 頻繁訪問的指令和數(shù)據(jù)到片上存儲(chǔ)器中。然而,Cache的高功耗、占用面積大、程序執(zhí)行時(shí) 間不可預(yù)知等不足一直限制其在嵌入式系統(tǒng)中的廣泛運(yùn)用。尤其是Cache的組關(guān)聯(lián)特性, 可能導(dǎo)致被映射到同一 Cache行的不同程序內(nèi)容,由于訪存規(guī)律,反復(fù)相互替換,從而增大 了系統(tǒng)性能與能耗的開銷,即出現(xiàn)Cache抖動(dòng)。與Cache相比,SPM (Scratch-Pad Memory, 便簽存儲(chǔ)器)是一種高速片上存儲(chǔ)器,通常由SRAM實(shí)現(xiàn),是現(xiàn)代嵌入式系統(tǒng)中一個(gè)非常重 要的系統(tǒng)框架設(shè)計(jì)考慮因素。SPM處于處理器可直接訪問的地址空間之內(nèi),由于傳統(tǒng)的SPM 控制器不包含任何輔助管理數(shù)據(jù)的邏輯電路,SPM中的所有內(nèi)容必須經(jīng)由軟件顯式的管理, 相對(duì)于對(duì)程序員透明的Cache,增加了程序管理的復(fù)雜性。由于沒有管理邏輯電路帶來的額 外代價(jià),相較于傳統(tǒng)Cache, SPM硬件實(shí)現(xiàn)更為簡(jiǎn)單、單次訪問功耗更低、占用芯片面積更小 而且訪問時(shí)間可預(yù)知。綜上,Cache和SPM各具優(yōu)勢(shì)且存在互補(bǔ)性,因此對(duì)Cache和SPM共 存的異構(gòu)存儲(chǔ)器存儲(chǔ)資源進(jìn)行研究,可以充分利用兩者優(yōu)勢(shì),從而最大限度降低系統(tǒng)能耗、 提升系統(tǒng)性能。 —些針對(duì)嵌入式片上存儲(chǔ)器的研究的主要分析單純配置Cache或單純配置SPM的 架構(gòu),不能很好的利用兩者互補(bǔ)的特性。直接將僅針對(duì)SPM的優(yōu)化算法或僅針對(duì)Cache的 優(yōu)化算法運(yùn)用到兩者共存的架構(gòu)中,不能達(dá)到整體性能最優(yōu)化,在一種存儲(chǔ)體上取得的優(yōu) 化收益可能被另一種存儲(chǔ)器的開銷所抵消,甚至引入更多系統(tǒng)性能與能耗的額外開銷。例 如針對(duì)SPM的優(yōu)化算法將某段主存的內(nèi)容搬運(yùn)到SPM,從而得到了性能與能耗的收益。然 而搬運(yùn)代碼本身可能對(duì)指令Cache造成污染、引起Cache優(yōu)化算法的失效,從而造成額外的 Cache缺失,抵消SPM的優(yōu)化收益。 Cache缺失時(shí)需要實(shí)際訪外存操作并將新的內(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沖突,但是這樣又會(huì) 引入新的芯片面積并提升單次Cache讀寫時(shí)間及能耗。目前有研究指出Cache沖突是造成 系統(tǒng)性能和能耗瓶頸的重要原因,因此他們將容易引起Cache沖突的程序段放入SPM,以此 得到性能和能耗的收益。將容易引起Cache沖突的頁(yè)選入SPM中,不僅可以通過降低Cache沖突而降低系統(tǒng)能耗,提升系統(tǒng)性能,還能由單次訪問SPM與Cache的能耗差獲得更多收 益。但是這些研究都是基于靜態(tài)的設(shè)計(jì),即在程序執(zhí)行中SPM中的內(nèi)容不發(fā)生改變,沒有充 分的利用Cache沖突在在時(shí)間維上的局部性,降低了 SPM的利用率。并且,這些設(shè)計(jì)對(duì)SPM 的管理依賴于對(duì)源程序跳轉(zhuǎn)指令的修改,是一種侵入式的分析。 由于對(duì)SPM內(nèi)容的更改需要軟件顯示的進(jìn)行,因此一般對(duì)SPM進(jìn)行動(dòng)態(tài)管理的研 究都是通過"打樁"的形式,即在需要優(yōu)化的程序核心循環(huán)前后,手工插入代碼搬運(yùn)指令,從 而完成對(duì)程序內(nèi)容的換入換出。在程序映像中插入新的指令,需要依賴對(duì)源碼的分析,并且 新的指令很可能引起共存架構(gòu)中Cache行為的變化,例如產(chǎn)生更多的沖突。
      目前針對(duì)Cache和SPM共存架構(gòu)中指令部分的研究, 一般需要對(duì)程序進(jìn)行侵入式 的分析,需要在用戶程序中插入、修改部分代碼,以實(shí)現(xiàn)在程序執(zhí)行過程中內(nèi)容的動(dòng)態(tài)換入 換出。到目前為止,還未有相關(guān)研究涉及基于虛存管理、利用時(shí)隙方法、不需要修改程序源 碼地將程序的指令內(nèi)容動(dòng)態(tài)映射到片上SPM的方法。

      發(fā)明內(nèi)容
      本發(fā)明的目的在于克服現(xiàn)有片上存儲(chǔ)子系統(tǒng)的不足,提供基于虛存機(jī)制的指令片 上異構(gòu)存儲(chǔ)資源動(dòng)態(tài)分配的方法,采用容量較小的指令SPM存儲(chǔ)器在程序執(zhí)行過程中緩沖 頻繁訪問以及容易引起指令Cache沖突的程序,對(duì)程序的指令部分進(jìn)行優(yōu)化,從而提高微 處理器運(yùn)行的速度并降低系統(tǒng)能耗。 為實(shí)現(xiàn)上述目的,本發(fā)明采取的技術(shù)方案是一種基于虛存機(jī)制對(duì)指令片上異構(gòu) 存儲(chǔ)資源動(dòng)態(tài)分配的方法,其特征在于通過對(duì)應(yīng)用程序執(zhí)行過程中處理器內(nèi)核對(duì)指令 Cache訪問的跟蹤,得到指令Cache命中和缺失的時(shí)間和空間分布,由該空間分布得到指令 Cache的時(shí)隙訪問圖,包括命中權(quán)重,缺失關(guān)系及權(quán)重,并對(duì)其進(jìn)行數(shù)學(xué)抽象,根據(jù)能耗目標(biāo) 函數(shù)、性能目標(biāo)函數(shù)分別利用整數(shù)非線性規(guī)劃的方法選出系統(tǒng)總能耗最優(yōu)時(shí)每個(gè)指令頁(yè)的 狀態(tài),得到每個(gè)時(shí)隙中最有優(yōu)化價(jià)值指令頁(yè)的頁(yè)號(hào),利用迭代求解方法,對(duì)時(shí)隙大小進(jìn)行調(diào) 整,在程序執(zhí)行中通過時(shí)鐘中斷,使用指令SPM控制器實(shí)現(xiàn)頁(yè)表項(xiàng)入口的修改以及直接內(nèi) 存訪問控制器DMA的配置,將指令訪問熱點(diǎn)及容易引起指令Cache沖突的地址空間動(dòng)態(tài)重 映射到片上指令SPM存儲(chǔ)器中,消除指令Cache沖突帶來的額外訪存。
      所述得到指令Cache的時(shí)隙訪問圖,并對(duì)其進(jìn)行數(shù)學(xué)抽象后,利用程序執(zhí)行時(shí)表 現(xiàn)出來的時(shí)間局部性,將每個(gè)時(shí)隙內(nèi)最頻繁訪問以及容易引起指令Cache沖突的指令頁(yè)按 照收益大小排列,指令SPM存儲(chǔ)器的大小除以匪U頁(yè)大小是優(yōu)化的指令頁(yè)個(gè)數(shù),根據(jù)這個(gè)數(shù) 選擇最有優(yōu)化價(jià)值的指令頁(yè),將其重映射到指令SPM存儲(chǔ)器中。 所說虛存機(jī)制是在TLB中增加S位,用于標(biāo)志該頁(yè)內(nèi)容在指令SPM存儲(chǔ)器中,減少 額外Cache比較的能耗開銷,同時(shí),修改TLB使之支持對(duì)512Byte/虛存頁(yè)以及256Byte/虛 存頁(yè),從而將指令訪問熱點(diǎn)及容易引起指令Cache沖突的地址空間抽離出來,而避免對(duì)大 量?jī)?yōu)化價(jià)值不大的地址空間做重映射。 所說指令SPM控制器在程序執(zhí)行過程中動(dòng)態(tài)高效的將程序指令部分換入換出指 令SPM存儲(chǔ)器,利用片上AHB高速總線的Burst特性,避免對(duì)指令Cache以及數(shù)據(jù)Cache的 二次污染。指令SPM控制器中增加了一組專用于記錄寫回地址以及虛存頁(yè)大小的指令SPM 區(qū)域寄存器,其作用是1)該組寄存器將負(fù)責(zé)在某虛存頁(yè)重映射在指令SPM存儲(chǔ)器時(shí)記錄其對(duì)應(yīng)的主存地址,此地址將在該虛存頁(yè)被換出便簽存儲(chǔ)器時(shí)作為DMA的目的地址;2)該
      組寄存器中負(fù)責(zé)記錄虛存頁(yè)大小的位將用于配置DMA搬運(yùn)長(zhǎng)度;3)該組寄存器中的使能位
      負(fù)責(zé)控制該頁(yè)內(nèi)容是否可用。 本發(fā)明方法具體可按以下步驟實(shí)現(xiàn) (1)建立虛存管理的機(jī)制 虛存管理機(jī)制可以通過修改頁(yè)表項(xiàng),形成物理分離、邏輯連續(xù)的地址空間,這樣就 可以實(shí)現(xiàn)將部分程序頁(yè)的地址映射到SPM中。相對(duì)于傳統(tǒng)的動(dòng)態(tài)SPM優(yōu)化技術(shù),利用虛存 完成地址空間映射關(guān)系的更改,可以實(shí)現(xiàn)對(duì)程序源代碼和編譯后生成的二進(jìn)制映像的完全 非侵入式優(yōu)化。為了適應(yīng)對(duì)Cache和SPM動(dòng)態(tài)管理的方法,本發(fā)明需要對(duì)原有的存儲(chǔ)硬件 進(jìn)行改進(jìn)。 一是在TLB中增加S位以實(shí)現(xiàn)必需的訪問控制。使用S位可以使MMU在進(jìn)行 地址翻譯的同時(shí)確定出實(shí)際應(yīng)該訪問的物理地址,并將該地址發(fā)給需要訪問的片上指令存 儲(chǔ)器,即指令Cache和指令SPM控制器二者之一。二是通過修改TLB的譯碼邏輯,增加對(duì) 512Byte/虛擬頁(yè)、256Byte/虛擬頁(yè)支持。傳統(tǒng)的TLB僅支持最小IK Byte/虛擬頁(yè)的管理, 而Cache是按行組織的,每行僅32-64Bytes,在程序執(zhí)行的一段時(shí)間內(nèi)出現(xiàn)指令Cache的訪 問熱點(diǎn)以及容易引起Cache沖突的地址空間大多小于傳統(tǒng)TLB支持的最小虛存頁(yè)大小,無 法充分利用SPM容量。本發(fā)明將利用傳統(tǒng)頁(yè)表項(xiàng)入口中的保留位,并修改TLB的Tag存儲(chǔ) 器和比較電路,實(shí)現(xiàn)對(duì)256Byte/虛擬頁(yè)和512Byte/虛擬頁(yè)的支持。
      (2)時(shí)隙訪問圖的建立 本發(fā)明通過分析指令Cache訪存特性,包括命中特性和缺失特性,對(duì)共存架構(gòu)的 存儲(chǔ)器進(jìn)行優(yōu)化。本發(fā)明提出"時(shí)隙訪問圖"概念,從時(shí)間和空間上對(duì)Cache命中和缺失進(jìn) 行分析。時(shí)隙訪問圖根據(jù)對(duì)指令Cache的trace信息(包括命中信息和缺失信息),對(duì)其進(jìn) 行數(shù)學(xué)抽象。由于本發(fā)明采用虛存管理機(jī)制對(duì)程序指令部分進(jìn)行管理,程序指令部分的劃 分粒度即為匪U的頁(yè)大小,時(shí)隙訪問圖將按頁(yè)進(jìn)行抽象,訪問圖包括指令頁(yè)本身的權(quán)重, 即指令Cache命中次數(shù);頁(yè)沖突圖, 一種定量描述被映射到同一指令Cache行中的不同程序 內(nèi)容之間替換關(guān)系的矢量圖,包括不同的指令頁(yè)相互引起指令Cache缺失的方向以及替代 次數(shù)。建立時(shí)隙訪問圖之后,需要對(duì)其進(jìn)行數(shù)學(xué)建模以描述各頁(yè)之間的權(quán)重分布,最終由整 數(shù)非線性規(guī)劃求得不同時(shí)隙中整體能耗收益最優(yōu)時(shí)每個(gè)頁(yè)的狀態(tài)。這樣就得到在每個(gè)時(shí)隙 中最有優(yōu)化價(jià)值的指令頁(yè),這些頁(yè)在程序執(zhí)行的過程中會(huì)被動(dòng)態(tài)的換入到SPM中。
      (3)時(shí)隙長(zhǎng)度的迭代求解 本研究利用時(shí)隙對(duì)程序進(jìn)行動(dòng)態(tài)管理。時(shí)鐘中斷可以實(shí)現(xiàn)對(duì)程序的時(shí)隙劃分, 僅需要在每個(gè)時(shí)隙開始的時(shí)候,重新加載時(shí)鐘模塊計(jì)數(shù)器,當(dāng)計(jì)數(shù)器自減到0時(shí)產(chǎn)生時(shí)鐘 中斷,處理器內(nèi)核將接受到中斷處理模塊發(fā)出的中斷請(qǐng)求,系統(tǒng)進(jìn)入IRQ模式,完成對(duì)指令 SPM存儲(chǔ)器內(nèi)容的換入換出,最終實(shí)現(xiàn)對(duì)指令SPM的動(dòng)態(tài)管理。 通過時(shí)鐘中斷對(duì)程序執(zhí)行時(shí)間標(biāo)記,需知道某個(gè)時(shí)隙具體的長(zhǎng)度。在建立時(shí)隙沖 突圖時(shí),是等長(zhǎng)的劃分整個(gè)時(shí)隙的。但是在對(duì)程序進(jìn)行優(yōu)化時(shí),由于降低指令Cache沖突使 得性能提升,即程序執(zhí)行時(shí)間變短,使得時(shí)隙的長(zhǎng)度有了變化。因此,我們需要采用迭代求 解的方法,對(duì)優(yōu)化后的時(shí)隙長(zhǎng)度進(jìn)行調(diào)整。調(diào)整后的時(shí)隙長(zhǎng)度,及(1)中所確定的每個(gè)時(shí)隙 中需要放入SPM中的頁(yè)號(hào),在每次時(shí)鐘中斷的時(shí)候,加載到時(shí)鐘模塊的時(shí)隙寄存器中。
      (4)利用指令SPM控制器完成動(dòng)態(tài)管理
      5
      在程序執(zhí)行階段,時(shí)鐘模塊在時(shí)隙結(jié)束時(shí)會(huì)發(fā)出中斷信號(hào),由中斷控制器接管,在 中斷處理程序中,可以使用指令SPM控制器,可以完成對(duì)頁(yè)表項(xiàng)的修改及指令SPM存儲(chǔ)器中 內(nèi)容的換入換出,以適應(yīng)下一個(gè)時(shí)隙的程序訪存模態(tài)。 在時(shí)鐘中斷中,SPM內(nèi)容換入換出操作是通過指令SPM控制器來完成的。進(jìn)入中斷 后,指令SPM控制器需要完成第一,利用時(shí)鐘模塊的時(shí)隙寄存器得到當(dāng)前的時(shí)隙,確定當(dāng) 前的時(shí)隙配置信息的偏移;第二,對(duì)本時(shí)隙需要寫入SPM頁(yè)進(jìn)行頁(yè)表項(xiàng)的更新操作;第三, 配置DMA進(jìn)行換入操作。 傳統(tǒng)的SPM控制器設(shè)計(jì)較為簡(jiǎn)單,無法實(shí)現(xiàn)動(dòng)態(tài)地址映射機(jī)制所要求的更為復(fù)雜 的SPM動(dòng)態(tài)分配策略。因此本發(fā)明在傳統(tǒng)SPM控制器的基礎(chǔ)上通過增加一組用于記錄寫 回地址的寄存器,即SPM區(qū)域寄存器,將傳統(tǒng)的、僅能實(shí)現(xiàn)尋址功能的SPM控制器擴(kuò)展為支 持不同粒度SPM管理,并能通過主動(dòng)配置DMA實(shí)現(xiàn)其內(nèi)容動(dòng)態(tài)換入換出的指令SPM控制器。 DMA可以在指令SPM控制器的配置下將指令塊動(dòng)態(tài)換入換出SPM,相較于傳統(tǒng)的、通過LDR/ STR指令執(zhí)行SPM內(nèi)容的換入換出,DMA在很大程度上利用了主存SDRAM與片上高速總線 AHB的BURST特性,從而降低了傳輸?shù)某杀九c中斷延時(shí)。 本發(fā)明的優(yōu)點(diǎn)及顯著效果利用虛存管理的思想可以實(shí)現(xiàn)對(duì)程序指令部分的非侵 入優(yōu)化,時(shí)隙訪問圖的分析方法可以充分利用程序的局部性。采用虛存管理的思想,可以 將實(shí)際的物理地址與虛擬地址隔離開。這樣,在不同時(shí)隙中,可以通過修改頁(yè)表項(xiàng),并通過 DMA,完成對(duì)指令SPM存儲(chǔ)器中內(nèi)容的換入換出,對(duì)于CPU而言地址空間在優(yōu)化前后都是連 續(xù)的,但對(duì)于真實(shí)的硬件而言,已經(jīng)將經(jīng)常訪問以及頻繁引起指令Cache沖突的部分程序 指令內(nèi)容放入指令SPM存儲(chǔ)器,從而降低了指令Cache沖突的次數(shù),并由Cache和SPM的 單次訪問能耗差,最終獲得了性能和能耗上的收益。同時(shí),基于虛存機(jī)制對(duì)程序進(jìn)行管理, 可以實(shí)現(xiàn)對(duì)程序非侵入式的分析和優(yōu)化,即不需要在用戶程序中顯示的增加SPM的搬運(yùn)代 碼,而在中斷處理中通過配置DMA和修改頁(yè)表來完成對(duì)程序內(nèi)容的換入換出。另外,本發(fā)明 充分利用程序執(zhí)行的時(shí)間局部性特點(diǎn),創(chuàng)新提出了時(shí)隙訪問圖的概念,繼而通過SPM動(dòng)態(tài) 分配算法將每個(gè)時(shí)隙內(nèi)導(dǎo)致Cache沖突的頁(yè)利用虛存管理的機(jī)制重定位到SPM,從而獲得 相較于靜態(tài)優(yōu)化更為可觀的性能和能耗收益,最終動(dòng)態(tài)的利用了有限的片上SPM資源,降 低程序的能耗,提升系統(tǒng)性能。


      圖1為指令片上異構(gòu)存儲(chǔ)器的系統(tǒng)框圖;
      圖2為指令SPM控制器的寄存器的設(shè)計(jì);
      圖3為時(shí)隙沖突的示例圖; 圖4為利用時(shí)隙分析方法對(duì)指令片上存儲(chǔ)資源進(jìn)行管理的系統(tǒng)流程圖;
      圖5為迭代求解示意圖; 圖6為采用本發(fā)明優(yōu)化方法對(duì)系統(tǒng)能耗進(jìn)行優(yōu)化的試驗(yàn)結(jié)果。
      具體實(shí)施例方式
      下面結(jié)合附圖與具體實(shí)施方式
      對(duì)本發(fā)明作進(jìn)一步詳細(xì)描述。 本發(fā)明通過對(duì)應(yīng)用程序執(zhí)行過程中指令Cache訪問的跟蹤,得到指令Cache命中和缺失的時(shí)間和空間分布,繼而由該分布得到指令Cache的時(shí)隙訪問圖,包括指令頁(yè)本身權(quán)重(即Cache命中次數(shù))以及指令頁(yè)之間的沖突圖。沖突圖是一種定量描述被映射到同一 Cache行中不同程序內(nèi)容之間替換關(guān)系的矢量圖。通過對(duì)Cache時(shí)隙訪問進(jìn)行數(shù)學(xué)抽像,利用整數(shù)非線性規(guī)劃的方法可以確定系統(tǒng)總能耗最優(yōu)時(shí)每個(gè)指令頁(yè)的狀態(tài),從而得到每個(gè)時(shí)隙中最有優(yōu)化價(jià)值指令頁(yè)的頁(yè)號(hào)。之后,根據(jù)迭代求解方法,對(duì)時(shí)隙大小進(jìn)行調(diào)整。根據(jù)每個(gè)時(shí)隙中需要優(yōu)化的指令頁(yè)和調(diào)整后的時(shí)隙大小信息,在程序執(zhí)行中利用時(shí)鐘中斷,通過指令SPM控制器實(shí)現(xiàn)頁(yè)表項(xiàng)入口的修改、DMA的配置等步驟,從而頻繁訪問以及容易引起指令Cache沖突的地址空間動(dòng)態(tài)重映射到SPM中,最終消除指令Cache沖突帶來的額外訪存,并由Cache和SPM的單次訪問能耗差獲得更多的系統(tǒng)能耗收益。 圖1所示為在原有架構(gòu)上需要進(jìn)行增加和修改的部分,包括TLB中S位、指令SPM控制器、DMA、時(shí)鐘模塊。 TLB中S位數(shù)為增加,是為了適應(yīng)本研究所必需的訪問控制。使用特殊的S位可以使匪U在進(jìn)行地址翻譯的同時(shí)確定出實(shí)際應(yīng)該訪問的物理地址,并將該地址發(fā)給需要訪問的片上存儲(chǔ)器(指令Cache或者指令SPM控制器)。需要指出的是對(duì)該SPM位的計(jì)算是在算法階段完成的,用于標(biāo)明在特定時(shí)隙內(nèi)需要重映射到SPM的頁(yè),而真實(shí)的置位操作是在每個(gè)時(shí)隙結(jié)束時(shí)的時(shí)鐘中斷中完成的。由此,在時(shí)鐘中斷處理之后,繼續(xù)執(zhí)行基準(zhǔn)測(cè)試程序時(shí)就能根據(jù)SPM位的置位情況,在物理地址-虛擬地址翻譯的同一個(gè)時(shí)鐘周期內(nèi)決定后續(xù)訪問的片上存儲(chǔ)器類型。S位的增加可以減少片上尋址的能耗。如果不使用S位,地址經(jīng)過匪U的虛擬地址_物理地址的轉(zhuǎn)換之后,需要同時(shí)將地址發(fā)向指令Cache或者指令SPM控制器,Cache的比較電路和SPM的尋址邏輯同時(shí)開始工作。由于指令僅可能在一種存儲(chǔ)器中,兩種尋址邏輯都要消耗一定的能耗。設(shè)計(jì)S位,可以在地址轉(zhuǎn)換的時(shí)候判斷地址發(fā)送到指令Cache或者指令SPM控制器,以節(jié)省一定功耗。 圖2為指令SPM控制器的寄存器設(shè)計(jì)。傳統(tǒng)的SPM控制器設(shè)計(jì)較為簡(jiǎn)單,無法實(shí)現(xiàn)動(dòng)態(tài)地址映射機(jī)制所要求的更為復(fù)雜的SPM動(dòng)態(tài)分配策略。因此本發(fā)明在傳統(tǒng)SPM控制器的基礎(chǔ)上通過增加一組用于記錄寫回地址以及頁(yè)大小的寄存器,即SPM區(qū)域寄存器。將傳統(tǒng)的、僅能實(shí)現(xiàn)尋址功能的SPM控制器擴(kuò)展為支持不同粒度SPM管理,并能通過主動(dòng)配置DMA實(shí)現(xiàn)其內(nèi)容動(dòng)態(tài)換入換出的指令SPM控制器。由于本研究可以針對(duì)不同大小的匪U頁(yè)做設(shè)計(jì)空間探索,因此需要對(duì)頁(yè)大小做說明。SPM區(qū)域寄存器的第0位為EN位,該位在系統(tǒng)初始化時(shí)會(huì)被置0,當(dāng)對(duì)SPM某頁(yè)第一次做DMA換入操作時(shí),將該位置1 ;區(qū)域寄存器的第1位至第3位來確定的頁(yè)大小,其具體對(duì)應(yīng)的基地址由高位地址給出,根據(jù)其頁(yè)大小占用位數(shù)不等。 DMA可以在指令SPM控制器的配置下將指令塊動(dòng)態(tài)換入換出指令SPM存儲(chǔ)器,相較于傳統(tǒng)的、通過LDR/STR指令執(zhí)行SPM內(nèi)容的換入換出,DMA在很大程度上利用了主存SDRAM與片上高速總線AHB的BURST特性,從而降低了傳輸?shù)某杀九c中斷延時(shí)。對(duì)DMA的控制主要由指令SPM控制器完成,指令SPM控制器通過讀取加載到主存的配置信息,在不同的時(shí)隙按需求將需要更新部分信息加載到DMA控制器的對(duì)應(yīng)控制寄存器中,從而完成對(duì)DMA的配置。之后DMA控制器將申請(qǐng)總線,按照指令SPM控制器的配置通過DMA操作將需要的內(nèi)容換入換出指令SPM存儲(chǔ)器,從而完成指令SPM存儲(chǔ)器內(nèi)容的動(dòng)態(tài)更新。
      時(shí)鐘中斷是動(dòng)態(tài)調(diào)整SPM內(nèi)容的基礎(chǔ)。由于程序執(zhí)行通常具有比較明顯的時(shí)間局部性,因此程序指令段也存在類似的特性,指令Cache出現(xiàn)缺失也具有類似的時(shí)間局部性特征,如果充分利用,則能在很大程度上充分利用SPM面積,最終通過動(dòng)態(tài)調(diào)整SPM內(nèi)容得到更好的能耗收益。當(dāng)時(shí)鐘模塊的時(shí)鐘計(jì)數(shù)寄存器自減到0時(shí),處理器內(nèi)核將接受到中斷處理模塊發(fā)出的中斷請(qǐng)求,然后系統(tǒng)進(jìn)入IRQ模式。之后,指令SPM控制器根據(jù)對(duì)區(qū)域寄存器中的內(nèi)容,完成對(duì)SPM內(nèi)容換入換出的操作,最終實(shí)現(xiàn)對(duì)指令SPM控制器的動(dòng)態(tài)管理。
      圖3為時(shí)隙訪問的示例圖。由于程序執(zhí)行存在較為明顯的時(shí)間局部性,時(shí)隙訪問圖根據(jù)劃分程序執(zhí)行的整個(gè)過程為均勻長(zhǎng)度的時(shí)隙,并在不同時(shí)隙內(nèi)部分別得到各自的Cache訪問圖。訪問圖包括指令頁(yè)的本身權(quán)重(即指令Cache命中次數(shù))以及與其他節(jié)點(diǎn)之間的關(guān)系(包括指令頁(yè)之間的沖突關(guān)系和沖突次數(shù))。由于指令Cache的命中率較高,因此最優(yōu)節(jié)點(diǎn)的選擇需要同時(shí)考慮到Cache命中和缺失之間的關(guān)系。但是將指令頁(yè)重定位到SPM中的能耗收益是不同的,命中收益為Cache和SPM的單次訪問能耗差。對(duì)缺失的優(yōu)化收益較大,這是由于Cache缺失時(shí),Cache的硬件會(huì)自動(dòng)地發(fā)起行填充的過程,需要經(jīng)由外部總線訪問SDRAM并填充到Cache體中,除此之外Cache不命中還會(huì)引入兩次Cache讀的能量消耗,這是因?yàn)榈谝淮巫xCache發(fā)現(xiàn)不命中,而第二次讀發(fā)生在行填充完成之后將Cache中有效數(shù)據(jù)讀出;當(dāng)發(fā)生沖突的指令頁(yè)放入SPM之后,消除了 Cache缺失,訪問能耗僅為對(duì)SPM的訪問能耗,因此對(duì)缺失優(yōu)化的能耗收益要高于對(duì)命中的優(yōu)化。由于指令Cache的命中率較高,必須同時(shí)考慮Cache的命中和缺失信息。時(shí)隙訪問圖可以充分的考慮Cache的訪問特性,根據(jù)不同時(shí)隙的特性,選擇出最有優(yōu)化價(jià)值的指令頁(yè)。 通過SPM動(dòng)態(tài)分配算法將每個(gè)時(shí)隙內(nèi)導(dǎo)致Cache沖突的頁(yè)利用虛存管理的機(jī)制重定位到SPM,基于時(shí)隙的動(dòng)態(tài)優(yōu)化可以利用了有限的片上SPM資源,獲得相較于靜態(tài)優(yōu)化更為可觀的性能和能耗收益。 圖4所示為利用時(shí)隙分析方法對(duì)指令片上異構(gòu)存儲(chǔ)資源進(jìn)行動(dòng)態(tài)管理的方法的系統(tǒng)流程圖。在程序分析階段,第一步通過收集到的指令Cache的trace/跟蹤信息,建立指令Cache時(shí)隙訪問圖?;谥噶頒ache時(shí)隙訪問圖可以實(shí)現(xiàn)對(duì)程序非侵入式的分析。第二步,進(jìn)行數(shù)學(xué)抽象,通過對(duì)指令Cache訪問圖進(jìn)行數(shù)學(xué)建模以描述各指令頁(yè)之間的權(quán)重分布,繼而通過權(quán)重分布的變化定量描述各備選指令頁(yè)的狀態(tài)對(duì)能耗函數(shù)的影響,最終由整數(shù)非線性規(guī)劃求得整體能耗收益最優(yōu)時(shí)每個(gè)指令頁(yè)的狀態(tài)。第三步,將每個(gè)時(shí)隙內(nèi)最頻繁訪問以及容易引起指令Cache沖突的指令頁(yè)按照收益大小排列,指令SPM存儲(chǔ)器的大小除以MMU頁(yè)大小是可以優(yōu)化的指令頁(yè)個(gè)數(shù),根據(jù)這個(gè)數(shù)選擇最有優(yōu)化價(jià)值的指令頁(yè),將其重映射到指令SPM存儲(chǔ)器中。例如,指令SPM存儲(chǔ)器為4K Byte,匪U頁(yè)大小為512Byte時(shí),這樣可以被優(yōu)化的指令頁(yè)的個(gè)數(shù)就為4K Byte除以512Byte,為8個(gè),在選擇時(shí)將每個(gè)時(shí)隙中最有優(yōu)化價(jià)值的8個(gè)指令頁(yè)放入指令SPM存儲(chǔ)器。這樣得到在每個(gè)時(shí)隙中,最有優(yōu)化價(jià)值的指令頁(yè)號(hào),這些指令頁(yè)在程序執(zhí)行的過程中會(huì)被動(dòng)態(tài)的換入到指令SPM存儲(chǔ)器中。第四步,通過迭代對(duì)時(shí)隙長(zhǎng)度進(jìn)行調(diào)整,如圖5所示。由于每個(gè)時(shí)隙內(nèi)由于消除了大量指令Cache缺失,從而獲得了能耗和性能兩方面的收益,而性能上的收益會(huì)直接導(dǎo)致本時(shí)隙程序執(zhí)行時(shí)間縮短,從而導(dǎo)致下一個(gè)時(shí)隙開始的時(shí)間點(diǎn)偏移,因此需要通過迭代求解的方法,統(tǒng)計(jì)出每個(gè)時(shí)隙在優(yōu)化前后時(shí)間的差距,將其校正。在完成上述步驟后,可以得到調(diào)整后的每個(gè)時(shí)隙的具體長(zhǎng)度以及每個(gè)時(shí)隙內(nèi)需要搬入SPM的頁(yè)的內(nèi)容。 在程序執(zhí)行階段,當(dāng)時(shí)鐘模塊到時(shí)時(shí),處理器內(nèi)核將接受到中斷處理模塊發(fā)出的中斷請(qǐng)求,然后系統(tǒng)進(jìn)入IRQ模式。在異常模式下,可以完成對(duì)頁(yè)表項(xiàng)的修改及指令SPM存儲(chǔ)器中內(nèi)容的換入換出,以適應(yīng)下一個(gè)時(shí)隙的程序訪存模態(tài)。進(jìn)入時(shí)鐘中斷的具體過程為第一步,在進(jìn)入該模式并保存相關(guān)的環(huán)境變量后,利用時(shí)鐘模塊的時(shí)隙寄存器得到當(dāng)前的時(shí)隙數(shù),從而得到該時(shí)隙所需要的配置信息,包括需要?jiǎng)討B(tài)換入指令頁(yè)的頁(yè)號(hào)及調(diào)整后的時(shí)隙長(zhǎng)度。第二步,指令SPM控制器將利用該值得到當(dāng)前時(shí)隙指令SPM存儲(chǔ)器中應(yīng)該緩沖的主存地址空間信息和相關(guān)標(biāo)志位。第三步,指令SPM控制器將加載本時(shí)隙需要寫入SPM頁(yè)的主存地址到對(duì)應(yīng)的映射區(qū)間寄存器,并開始頁(yè)表項(xiàng)的更新操作。第四步,完成頁(yè)表項(xiàng)更新后,指令SPM控制器將負(fù)責(zé)加載映射區(qū)間寄存器中主存地址到DMA的源地址寄存器,并加載SPM對(duì)應(yīng)頁(yè)的物理地址到DMA的目的地址寄存器,然后開始DMA的換入操作。最后,中斷處理程序?qū)r(shí)鐘模塊的時(shí)隙寄存器加l,為下一個(gè)時(shí)隙做準(zhǔn)備,并恢復(fù)中斷前的環(huán)境變量,退出中斷處理程序,處理器內(nèi)核開始繼續(xù)執(zhí)行時(shí)鐘中斷以前的基準(zhǔn)測(cè)試程序。
      圖6所示為使用本發(fā)明基于虛存機(jī)制的指令片上異構(gòu)存儲(chǔ)資源動(dòng)態(tài)分配的方法所得到的能耗收益。對(duì)比試驗(yàn)采用實(shí)際芯片中常見的16K Byte 4路組關(guān)聯(lián)的指令Cache,優(yōu)化試驗(yàn)采用4K Byte直接關(guān)聯(lián)的指令Cache及8K Byte的指令SPM存儲(chǔ)器,利用時(shí)隙分析方法對(duì)指令異構(gòu)存儲(chǔ)資源進(jìn)行動(dòng)態(tài)管理。根據(jù)Cacti3. 2對(duì)片上存儲(chǔ)器面積的計(jì)算,優(yōu)化試驗(yàn)所用的4K直接關(guān)聯(lián)Cache與4K的SPM的面積之和,與對(duì)比試驗(yàn)8K Byte 4路組關(guān)聯(lián)Cache相比,芯片面積降低19. 0%,系統(tǒng)能耗平均降低12. 7%,最高降低22. 3%,同時(shí),系統(tǒng)執(zhí)行時(shí)間平均降低15. 9%,最高降低25. 6% 。
      9
      權(quán)利要求
      一種基于虛存機(jī)制對(duì)指令片上異構(gòu)存儲(chǔ)資源動(dòng)態(tài)分配的方法,其特征在于通過對(duì)應(yīng)用程序執(zhí)行過程中處理器內(nèi)核對(duì)指令Cache訪問的跟蹤,得到指令Cache命中和缺失的時(shí)間和空間分布,由該空間分布得到指令Cache的時(shí)隙訪問圖,包括命中權(quán)重,缺失關(guān)系及權(quán)重,并對(duì)其進(jìn)行數(shù)學(xué)抽象,根據(jù)能耗目標(biāo)函數(shù)、性能目標(biāo)函數(shù)分別利用整數(shù)非線性規(guī)劃的方法選出系統(tǒng)總能耗最優(yōu)時(shí)每個(gè)指令頁(yè)的狀態(tài),得到每個(gè)時(shí)隙中最有優(yōu)化價(jià)值指令頁(yè)的頁(yè)號(hào),利用迭代求解方法,對(duì)時(shí)隙大小進(jìn)行調(diào)整,在程序執(zhí)行中通過時(shí)鐘中斷,使用指令SPM控制器實(shí)現(xiàn)頁(yè)表項(xiàng)入口的修改以及直接內(nèi)存訪問控制器DMA的配置,將指令訪問熱點(diǎn)及容易引起指令Cache沖突的地址空間動(dòng)態(tài)重映射到片上指令SPM存儲(chǔ)器中,通過指令Cache和指令SPM的單次訪問能耗差,以及減少指令Cache缺失帶來的額外訪存,降低系統(tǒng)能耗。
      2. 根據(jù)權(quán)利要求1所述的基于虛存機(jī)制對(duì)指令片上異構(gòu)存儲(chǔ)資源動(dòng)態(tài)分配的方法,其 特征在于得到指令Cache的時(shí)隙訪問圖,并對(duì)其進(jìn)行數(shù)學(xué)抽象后,利用程序執(zhí)行時(shí)表現(xiàn)出 來的時(shí)間局部性,將每個(gè)時(shí)隙內(nèi)最頻繁訪問以及容易引起指令Cache沖突的指令頁(yè)按照收 益大小排列,指令SPM存儲(chǔ)器的大小除以匪U頁(yè)大小是優(yōu)化的指令頁(yè)個(gè)數(shù),根據(jù)這個(gè)數(shù)選擇 最有優(yōu)化價(jià)值的指令頁(yè),將其重映射到指令SPM存儲(chǔ)器中。
      3. 根據(jù)權(quán)利要求1所述的基于虛存機(jī)制對(duì)指令片上異構(gòu)存儲(chǔ)資源動(dòng)態(tài)分配的方法,其 特征在于所說虛存機(jī)制是在旁路轉(zhuǎn)換緩沖TLB中增加S位,用于標(biāo)志該頁(yè)內(nèi)容在指令SPM 存儲(chǔ)器中,減少額外Cache比較的能耗開銷,同時(shí),修改TLB使之支持對(duì)512Byte/虛存頁(yè)以 及256Byte/虛存頁(yè),從而將指令訪問熱點(diǎn)及容易引起指令Cache沖突的地址空間抽離出 來,而避免對(duì)大量?jī)?yōu)化價(jià)值不大的地址空間做重映射。
      4. 根據(jù)權(quán)利要求1所述的基于虛存機(jī)制對(duì)指令片上異構(gòu)存儲(chǔ)資源動(dòng)態(tài)分配的方法, 其特征在于指令SPM控制器在程序執(zhí)行過程中動(dòng)態(tài)高效的將程序指令部分換入換出指令 SPM控制器,利用片上AHB高速總線的Burst特性,避免對(duì)指令Cache以及數(shù)據(jù)Cache的二 次污染。
      5. 根據(jù)權(quán)利要求4所述的基于虛存機(jī)制對(duì)指令片上異構(gòu)存儲(chǔ)資源動(dòng)態(tài)分配的方法, 其特征在于在指令SPM控制器中增加了一組專用于記錄寫回地址以及虛存頁(yè)大小的指令 SPM控制寄存器1) 該組寄存器將負(fù)責(zé)在某虛存頁(yè)重映射在指令SPM存儲(chǔ)器時(shí)記錄其對(duì)應(yīng)的主存地址, 此地址將在該虛存頁(yè)被換出指令SPM存儲(chǔ)器時(shí)作為DMA的目的地址;2) 該組寄存器中負(fù)責(zé)記錄虛存頁(yè)大小的位將用于配置DMA搬運(yùn)長(zhǎng)度;3) 該組寄存器中的使能位負(fù)責(zé)控制該頁(yè)內(nèi)容是否可用。
      全文摘要
      本發(fā)明公開了一種基于虛存機(jī)制對(duì)指令片上異構(gòu)存儲(chǔ)資源動(dòng)態(tài)分配的方法,充分利用指令片上存儲(chǔ)資源,包括指令Cache和指令SPM。本發(fā)明采用時(shí)隙分析方法,對(duì)高頻率引起指令Cache命中和缺失的時(shí)間和空間分布進(jìn)行分析,得到指令Cache的時(shí)隙訪問圖,并對(duì)其進(jìn)行數(shù)學(xué)抽象。根據(jù)能耗目標(biāo)函數(shù)、性能目標(biāo)函數(shù),利用整數(shù)非線性規(guī)劃的方法選出不同時(shí)隙中需要優(yōu)化的程序指令部分,利用時(shí)鐘模塊對(duì)不同的程序階段進(jìn)行劃分,在時(shí)鐘中斷時(shí),使用指令SPM控制器,將有優(yōu)化價(jià)值的指令頁(yè)動(dòng)態(tài)重映射到片上指令SPM存儲(chǔ)器中,由此可以避免因指令Cache沖突引起的額外訪存,同時(shí)由Cache和SPM的單次訪問能耗差獲得能耗收益。本發(fā)明方法對(duì)指令片上異構(gòu)存儲(chǔ)的充分利用,可以降低系統(tǒng)能耗,提升系統(tǒng)性能。
      文檔編號(hào)G06F12/08GK101763316SQ200910264520
      公開日2010年6月30日 申請(qǐng)日期2009年12月25日 優(yōu)先權(quán)日2009年12月25日
      發(fā)明者凌明, 張陽(yáng), 李冰, 梅晨, 武建平, 王歡 申請(qǐng)人:東南大學(xué)
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1