国产精品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>

      一種面向嵌入式應(yīng)用的軟件可控Cache的實(shí)現(xiàn)方法

      文檔序號:6466797閱讀:245來源:國知局
      專利名稱:一種面向嵌入式應(yīng)用的軟件可控Cache的實(shí)現(xiàn)方法
      技術(shù)領(lǐng)域
      本發(fā)明屬于嵌入式設(shè)計領(lǐng)域,特別是一種面向嵌入式應(yīng)用的軟件可控Cache的實(shí)現(xiàn)方 法,可應(yīng)用于高性能嵌入式系統(tǒng)芯片設(shè)計中數(shù)據(jù)存儲的優(yōu)化。
      技術(shù)背景在現(xiàn)代高性能嵌入式系統(tǒng)設(shè)計中,高速緩存(Cache)有效地解決了處理器和主存之 間的速度匹配問題。相對于處理器頻率以每年超過40%的速度在提高,存儲器的速度每年 僅提高11%左右??梢灶A(yù)見,隨著處理器與主存之間的這種速度差異越來越大,Cache的 設(shè)計也將成為決定系統(tǒng)整體性能的關(guān)鍵因素之一。但是傳統(tǒng)的面向嵌入式應(yīng)用的Cache 僅由單一的硬件替換算法來預(yù)測訪問的局部性,并沒有充分考慮到軟件應(yīng)用程序的自身特點(diǎn),與數(shù)據(jù)存儲相關(guān)的硬件與軟件機(jī)制相互分離,從而使得Cache的設(shè)計存在利用率低、控制性差的不足。發(fā)明內(nèi)容本發(fā)明的目的在于解決上述現(xiàn)有技術(shù)中存在的問題,提供一種面向嵌入式應(yīng)用的軟件 可控Cache的實(shí)現(xiàn)方法,采用該方法獲得了對嵌入式系統(tǒng)中片上Cache方便有效的管理機(jī) 制,同時提高了數(shù)據(jù)的存儲效率,降低了 Cache活動功耗,減少了 Cache帶來的總線開銷。為解決現(xiàn)有技術(shù)中存在的技術(shù)問題,本發(fā)明所設(shè)計的面向嵌入式系統(tǒng)應(yīng)用的軟件可控 Cache,針對包括ARM公司的ARM7TDMI微處理器、片上指令數(shù)據(jù)統(tǒng)一 Cache、片外同步動 態(tài)隨機(jī)存儲器的嵌入式系統(tǒng)。其中,ARM7TDMI嵌入式微處理器與片上高速緩存Cache緊 耦合;片外同步動態(tài)隨機(jī)存儲器與片上高速緩存Cache之間通過外部存儲器控制接口 EMI 間接連接,片上高速緩存Cache與外部存儲器控制接口之間通過AMBA總線連接,片外同 步動態(tài)隨機(jī)存儲器的數(shù)據(jù)接口和控制接口分別通過數(shù)據(jù)總線和控制總線與EMI外部存儲 器的數(shù)據(jù)接口和控制接口對應(yīng)連接;其特征在于基于傳統(tǒng)的嵌入式Cache結(jié)構(gòu),增加一 個Cache控制器,用于實(shí)現(xiàn)如下的三種操作訪問開銷代價大且生命期均勻分布的數(shù)據(jù), 在Cache中保留副本;造成Cache預(yù)取時間局部性下降的數(shù)據(jù),由處理器直接與外存通信; 某一時刻被頻繁訪問的數(shù)據(jù),在其有效生命期內(nèi),優(yōu)先停留在Cache中;方法是在關(guān)閉 Cache緩存功能的條件下運(yùn)行應(yīng)用程序,得到訪問記錄;根據(jù)訪問記錄,選取標(biāo)記數(shù)據(jù)塊; 根據(jù)標(biāo)記數(shù)據(jù)塊的特點(diǎn),生成標(biāo)記信息表的內(nèi)容,加載到Cache控制器中,控制Cache 的操作過程;其中,標(biāo)記信息表的內(nèi)容可以在系統(tǒng)運(yùn)行過程中為軟件動態(tài)地配置。包含以下具體步驟(1) 在關(guān)閉Cache緩存功能的條件下,得到ARM7TDMI嵌入式微處理器對片外同步動態(tài)隨機(jī)存儲器的訪問記錄;(2) 根據(jù)訪問記錄,將造成Cache預(yù)取局部性下降的數(shù)據(jù)塊,標(biāo)記為CN類型;將 訪問開銷代價大且生命期均勻分布的數(shù)據(jù)塊,標(biāo)記為CS1類型;將某一時刻被頻繁訪問的 數(shù)據(jù)塊,標(biāo)記為CS2類型;(3) 根據(jù)(2)中對數(shù)據(jù)塊標(biāo)記的情況,生成標(biāo)記信息表的內(nèi)容,加載到Cache控 制器中;(4) 標(biāo)記信息表的具體內(nèi)容,可以在系統(tǒng)運(yùn)行過程中,通過軟件動態(tài)地配置;(5) Cache控制器在系統(tǒng)運(yùn)行過程中,根據(jù)標(biāo)記信息表的配置情況,監(jiān)視并控制 Cache的工作行為標(biāo)記為CN類型的數(shù)據(jù)塊,由處理器直接與外存通信;標(biāo)記為CS1類 型的數(shù)據(jù)塊,在Cache中保留副本;標(biāo)記為CS2類型的數(shù)據(jù)塊,在其有效生命期內(nèi),被優(yōu) 先鎖定在Cache中。所述Cache控制器的結(jié)構(gòu)包括三個子模塊標(biāo)記信息表子模塊用于存儲三種類型的標(biāo) 記信息;存儲副本子模塊用于保存數(shù)據(jù)塊的副本;控制邏輯子模塊用于監(jiān)視和控制Cache 的工作過程;標(biāo)記信息表子模塊和存儲副本子模塊中的存儲單元,有唯一的地址映射,允 許通過軟件動態(tài)的配置。ARM7TDMI嵌入式微處理器對片外同步動態(tài)隨機(jī)存儲器的訪問記錄的內(nèi)容包括記錄1, 每個數(shù)據(jù)字被訪問的次數(shù);記錄2,將系統(tǒng)時鐘周期以M為單位分成N份,記錄每M個時 鐘周期內(nèi)每個數(shù)據(jù)字被訪問的次數(shù)和時鐘開銷數(shù)。CN類型標(biāo)記數(shù)據(jù)塊的選取步驟如下(1) 以Cache數(shù)據(jù)行的大小為單位,將外部存儲器劃分成各個數(shù)據(jù)塊,根據(jù)訪問記 錄l,將數(shù)據(jù)塊中每個數(shù)據(jù)字被訪問的次數(shù)累加求和,得到每個數(shù)據(jù)塊的訪問權(quán)重;(2) 選取權(quán)重大于等于l,小于4的數(shù)據(jù)塊,并且將它們以權(quán)重大小排序,根據(jù)需 要的標(biāo)記條數(shù)N-CN,選擇其中權(quán)重最小的N-CN個數(shù)據(jù)塊。CS1類型標(biāo)記數(shù)據(jù)塊的選取步驟如下(1) 以Cache數(shù)據(jù)行的大小為單位,將外部存儲器劃分成各個數(shù)據(jù)塊,根據(jù)訪問記 錄2,將數(shù)據(jù)塊中每個數(shù)據(jù)字的周期開銷累加,計算每M個時鐘周期內(nèi)各個數(shù)據(jù)塊累計的 周期開銷數(shù),以及各個數(shù)據(jù)塊在系統(tǒng)運(yùn)行過程中總共的周期開銷數(shù);(2) 由上一步的計算結(jié)果,得到兩類統(tǒng)計圖 一類是各個數(shù)據(jù)塊的總體周期開銷情 況;另一類是各個數(shù)據(jù)塊在以M為單位的時鐘周期上更加詳細(xì)的分布情況;結(jié)合兩類統(tǒng)計 圖,根據(jù)需要的標(biāo)記條數(shù)N-CS1,從總體周期開銷大且生命期均勻分布的數(shù)據(jù)塊中,選取 N-CS1個數(shù)據(jù)塊。CS2類型標(biāo)記數(shù)據(jù)塊的選取步驟如下(1) 以Cache數(shù)據(jù)行的大小為單位,將外部存儲器劃分成各個數(shù)據(jù)塊,將各個數(shù)據(jù) 塊中每個數(shù)據(jù)字的訪問次數(shù)累加,計算每M個時鐘周期內(nèi)每個數(shù)據(jù)塊的訪問次數(shù);(2) 由上一步的計算結(jié)果,得到各個數(shù)據(jù)塊的訪問次數(shù)在以M為單位的時鐘周期上 的分布情況,根據(jù)需要的標(biāo)記條數(shù)N-CS2,從需要頻繁換進(jìn)換出且生命期集中分布的數(shù)據(jù) 塊中,選取N-CS2個數(shù)據(jù)塊。本方法的步驟進(jìn)一步解釋如下a)在關(guān)閉Cache緩存功能的條件下,得到ARM7T匿I 嵌入式微處理器對片外同步動態(tài)隨機(jī)存儲器的訪問記錄記錄l (每個數(shù)據(jù)字被訪問的次 數(shù))和記錄2 (將系統(tǒng)時鐘周期以M為單位分成N份,記錄每M個時鐘周期內(nèi)每個數(shù)據(jù)字 被訪問的次數(shù)和時鐘開銷數(shù));b)從記錄1中找到會引起Cache污染的數(shù)據(jù)塊,標(biāo)記為 CN (Cache Noise);例如,對于Cache塊大小為4個字的情況,外存地址0xE0到OxEC
      范圍內(nèi)的四個數(shù)據(jù)字,將作為一個完整的數(shù)據(jù)塊被載入到Cache中,如果某一數(shù)據(jù)塊被處 理器訪問的幾率非常小,那么這樣的數(shù)據(jù)塊將會造成Cache預(yù)取的時間局部性下降,并且 占用Cache資源,使得Cache的利用率降低,這樣的數(shù)據(jù)塊就稱為引起了 Cache污染的數(shù) 據(jù)塊;c)從記錄2中找到可能被Cache頻繁換進(jìn)換出的數(shù)據(jù)塊,稱為Cache敏感數(shù)據(jù)塊, 有兩種不同類型的Cache敏感數(shù)據(jù)塊 一類是Cache預(yù)取操作的開銷代價很大,且生命期 均勻分布的數(shù)據(jù)塊,標(biāo)記為CS1 (Cache Sensibility-type 1),例如一些全局變量等; 另一類是Cache預(yù)取操作頻繁,且生命期集中分布在某一些特定時刻內(nèi)的數(shù)據(jù)塊,標(biāo)記為 CS2 (Cache Sensibility-type 2),例如一些局部變量或內(nèi)嵌循環(huán)程序段等;d)將標(biāo)記 CN、 CS1、 CS2的信息分別載入Cache控制器中的標(biāo)記表,Cache控制器在系統(tǒng)運(yùn)行過程中, 將根據(jù)標(biāo)記信息,分別觸發(fā)相應(yīng)的操作:對于標(biāo)記為CN的數(shù)據(jù)塊,Cache控制器屏蔽Cache 的緩存功能,由處理器直接與外存?zhèn)鬏敂?shù)據(jù);對于標(biāo)記為CS1的數(shù)據(jù)塊,Cache控制器首 先判斷Cache中是否保存了其副本備份,如果是,則直接讀取副本內(nèi)容,如果沒有,發(fā)起 對外存的預(yù)取操作,并且創(chuàng)建其副本備份;對于標(biāo)記為CS2的數(shù)據(jù)塊,Cache控制器首先 判斷是否出現(xiàn)在其生命期,若是,則鎖定當(dāng)前數(shù)據(jù)塊所在的Cache數(shù)據(jù)行,將這個數(shù)據(jù)行 的優(yōu)先級設(shè)置為高,對于N路M組關(guān)聯(lián)的Cache,除非其它N_l路中的同一數(shù)據(jù)行的優(yōu)先 級都為高,否則不允許將這個數(shù)據(jù)行替換出去;對于沒有標(biāo)記的數(shù)據(jù)塊操作,不作改變。 標(biāo)記數(shù)據(jù)塊的選取步驟a)關(guān)閉Cache的緩存功能,打開外部存儲器訪問接口中的信息統(tǒng)計功能,運(yùn)行程序 得到記錄1和記錄2; b)對于CN標(biāo)記數(shù)據(jù)塊的選取首先,以Cache數(shù)據(jù)行的大小為單 位,將外部存儲器劃分成各個數(shù)據(jù)塊,將數(shù)據(jù)塊中每個數(shù)據(jù)字被訪問的次數(shù)累加求和,得 到每個數(shù)據(jù)塊的訪問權(quán)重;然后,選取權(quán)重大于等于l,小于4的數(shù)據(jù)塊,并且將它們以 權(quán)重大小排序,根據(jù)需要選取的CN類型標(biāo)記的條數(shù)N-CN,選擇其中權(quán)重最小的N-CN個 數(shù)據(jù)塊;c)對于CS1標(biāo)記數(shù)據(jù)塊的選取首先,以Cache數(shù)據(jù)行的大小為單位,將外部 存儲器劃分成各個數(shù)據(jù)塊,根據(jù)訪問記錄2,將數(shù)據(jù)塊中每個數(shù)據(jù)字的周期開銷累加,計 算每M個時鐘周期內(nèi)各個數(shù)據(jù)塊累計的周期開銷數(shù),以及各個數(shù)據(jù)塊在系統(tǒng)運(yùn)行過程中總 共的周期開銷數(shù);然后,由上一步的計算結(jié)果,得到兩類統(tǒng)計圖 一類是各個數(shù)據(jù)塊的總 體周期開銷情況;另一類是各個數(shù)據(jù)塊在以M為單位的時鐘周期上更加詳細(xì)的分布情況, 根據(jù)需要選取的CSl標(biāo)記的條數(shù)N-CSl,從需要周期開銷大且生命期均勻分布的數(shù)據(jù)塊中, 選取N-CS1個數(shù)據(jù)塊;d)對于CS2標(biāo)記數(shù)據(jù)塊的選取首先,以Cache數(shù)據(jù)行的大小為 單位,將外部存儲器劃分成各個數(shù)據(jù)塊,將各個數(shù)據(jù)塊中每個數(shù)據(jù)字的訪問次數(shù)累加,計 算每M個時鐘周期內(nèi)各個數(shù)據(jù)塊的訪問次數(shù);然后,由上一步的計算結(jié)果,得到每個數(shù)據(jù) 塊的訪問次數(shù)在以M為單位的時鐘周期上的分布情況,根據(jù)需要選取的CS2標(biāo)記的條數(shù) N-CS2,從需要頻繁換進(jìn)換出且生命期集中分布的數(shù)據(jù)塊中,選取N-CS2個數(shù)據(jù)塊。標(biāo)記數(shù)據(jù)塊的標(biāo)記信息載入Cache控制器中,Cache控制器在程序運(yùn)行時,根據(jù)具體 的標(biāo)記信息,監(jiān)視并控制相應(yīng)的Cache操作,Cache控制器的結(jié)構(gòu)如下標(biāo)記表子模塊它是一個L (行)X32 (位)的存儲表(L可配置),行號1到3的存 儲單元用于說明三種標(biāo)記信息各自的條數(shù),如行l(wèi)、行2、行3存儲的數(shù)據(jù)分別為0x8、 0x4、 0x4,說明行5到行12中存儲的是CN類型的標(biāo)記信息,行13到行16存儲的是CS1
      類型的標(biāo)記信息,行17到行20存儲的是CS2類型的標(biāo)記信息,行4用于保存系統(tǒng)時鐘周 期的劃分單位。對于每一行存儲的CN和CS1標(biāo)記信息高28位用于記錄對應(yīng)標(biāo)記數(shù)據(jù)塊的地址信息, 低4位用于表明數(shù)據(jù)塊的延展長度,例如,0x002001C0到0x002001CC 、 0x002001D0到 0x002001DC 、 0x002001E0到0x002001EC、 0x002001F0到0x002001FC連續(xù)的四個數(shù)據(jù)塊 (塊大小為4個字)均被選取為CN標(biāo)記數(shù)據(jù)塊,那么行5到行12中存儲的某一條記錄信 息就為0x02001C04;對于CS2標(biāo)記信息,需要兩行來存儲一條記錄信息第一行內(nèi)容與CN和CS1標(biāo)記類 型的存儲格式相同;第二行存儲該條標(biāo)記的生命期信息,用于表明該標(biāo)記的有效作用域。特別的,標(biāo)記表子模塊的每一行都有唯一映射的地址,可以在程序運(yùn)行過程中,通過 軟件動態(tài)修改標(biāo)記表的內(nèi)容。存儲副本子模塊它是一個S (行)XB (Cache塊大小,以字為單位)X32 (位)的 存儲表(S可配置),用于保存某一時刻Cache中某一行的數(shù)據(jù)副本??刂七壿嬜幽K用于監(jiān)視當(dāng)前Cache的狀態(tài),當(dāng)符合標(biāo)記表中的標(biāo)記信息時,觸發(fā) 相應(yīng)的操作。本發(fā)明的優(yōu)點(diǎn)及有益效果(1) 本發(fā)明的面向嵌入式應(yīng)用的軟件可控Cache結(jié)構(gòu),通過在傳統(tǒng)Cache的結(jié)構(gòu)上 增加一個簡單的控制模塊,實(shí)現(xiàn)了對Cache方便高效的管理機(jī)制。(2) 根據(jù)本發(fā)明的面向嵌入式應(yīng)用的軟件可控Cache實(shí)現(xiàn)方法,使得Cache的工作 過程具有靈活可控的特點(diǎn),提高了 Cache對于不同軟件應(yīng)用的適應(yīng)能力。本發(fā)明的面向嵌入式應(yīng)用的軟件可控Cache的實(shí)現(xiàn)方法,以CRC校驗(yàn)(ARM-CRC32)軟 件應(yīng)用程序?yàn)槔?,可以使系統(tǒng)性能提升10%左右,總線占用率降低28%左右。


      圖1為ARM7TDMI嵌入式微處理器的存儲子系統(tǒng)結(jié)構(gòu)框圖。 圖2為本發(fā)明的一種面向嵌入式應(yīng)用的軟件可控Cache實(shí)現(xiàn)方法的流程圖。 圖3為本發(fā)明的一種面向嵌入式應(yīng)用的軟件可控Cache的結(jié)構(gòu)示意圖。 圖4為本發(fā)明的一種面向嵌入式應(yīng)用的軟件可控Cache的工作原理圖。
      具體實(shí)施方式
      下面結(jié)合附圖與具體實(shí)施方式
      對本發(fā)明作進(jìn)一步詳細(xì)描述。圖中標(biāo)號說明ARM7TDMI嵌入式微處理器1、片上高速緩存Cache2、片外同步動態(tài) 隨機(jī)存儲器3、存儲子系統(tǒng)性能仿真模塊4、 Cache控制器5、標(biāo)記表子模塊6、存儲副本 子模塊7、控制邏輯子模塊8、解碼單元9、 Cache存儲單元10、替換候補(bǔ)行選擇單元11、 數(shù)據(jù)1/0單元12。圖1為ARM7TDMI嵌入式微處理器的存儲子系統(tǒng)結(jié)構(gòu)框圖。該存儲子系統(tǒng)包括 ARM7TDMI嵌入式微處理器1、片上高速緩存Cache2、片外同步動態(tài)隨機(jī)存儲器3,其中, ARM7TDMI嵌入式微處理器1與片上高速緩存Cache2緊耦合;片外同步動態(tài)隨機(jī)存儲器3 與片上高速緩存Cache2之間通過外部存儲器控制接口 EMI間接連接,片上高速緩存 Cache2與外部存儲器控制接口之間通過AMBA總線連接,片外同步動態(tài)隨機(jī)存儲器3的數(shù) 據(jù)接口和控制接口,分別通過數(shù)據(jù)總線和控制總線,與EMI外部存儲器的數(shù)據(jù)接口和控制 接口對應(yīng)連接。本發(fā)明的工作流程如下,參見圖2:第一步,將軟件應(yīng)用程序載入片外同步動態(tài)隨機(jī)存儲器3中運(yùn)行,關(guān)閉高速緩存Cache 的預(yù)取功能,得到運(yùn)行過程中ARM7TDMI嵌入式微處理器1對片外同步動態(tài)隨機(jī)存儲器3 的訪問記錄。第二步,根據(jù)上一步得到的訪問記錄,選取CN、 CS1、 CS2標(biāo)記數(shù)據(jù)塊。 第三步,根據(jù)標(biāo)記數(shù)據(jù)塊的選取情況,生成標(biāo)記信息表內(nèi)容,以及相應(yīng)的Cache控制 器配置信息。第四步,將標(biāo)記信息表的內(nèi)容加載到Cache控制器,并且設(shè)置相應(yīng)的Cache控制器配 置信息;第五步,在軟件應(yīng)用程序運(yùn)行過程中,根據(jù)實(shí)際情況的需要,可以修改Cache控制器 中標(biāo)記信息表的內(nèi)容,從而可以動態(tài)地控制Cache的工作行為。下面分別介紹本發(fā)明的嵌入式可控Cache實(shí)現(xiàn)方法涉及的兩個關(guān)鍵模塊。一、 存儲子系統(tǒng)性能仿真模塊4:利用ARM公司的電子系統(tǒng)級(ESL)設(shè)計工具SoC Designer,編寫嵌入式微處理器的 存儲子系統(tǒng)性能仿真模塊,使得應(yīng)用程序在本模塊上運(yùn)行時可以得到應(yīng)用程序?qū)Υ鎯ψ酉?統(tǒng)的訪問記錄,作為標(biāo)記信息表的數(shù)據(jù)來源。二、 Cache控制器5:Cache控制器用于實(shí)現(xiàn)對Cache工作行為的控制,以及對標(biāo)記信息內(nèi)容的管理,包括 三個子模塊,參見圖3:a) 標(biāo)記表子模塊6;b) 存儲副本子模塊7;c) 控制邏輯子模塊8。標(biāo)記信息表子模塊6用于存儲三種不同類型的標(biāo)記信息:a)對于CN和CS1標(biāo)記類型, 每一行存儲一條標(biāo)記信息,高28位為數(shù)據(jù)塊地址信息,低4位為數(shù)據(jù)塊的延展長度;b) 對于CS2標(biāo)記類型,每兩行存儲一條標(biāo)記信息,第一行內(nèi)容與前兩者的存儲格式相同;第 二行存儲該條標(biāo)記的生命期信息NH (高16位)和NL (低16位),具體意義與存儲系統(tǒng)時 鐘周期的劃分單位(保存在標(biāo)記信息表的第4行)M有關(guān)以M個時鐘周期為單位將系統(tǒng) 運(yùn)行過程劃分成若干個工作區(qū)域,生命期信息NH和NL表示,從其中的第NH個區(qū)域到第 NH+NL個區(qū)域的范圍為其生命期。例如,M = 10000, NH = 100, NL = 10,表示系統(tǒng)時鐘 周期在100萬到110萬之間時,為該條標(biāo)記信息的有效生命期;同時,在標(biāo)記信息表子模 塊中,有一個32位只讀計數(shù)器CNT,用于記錄當(dāng)前系統(tǒng)運(yùn)行的工作區(qū)域。標(biāo)記信息表的前三行,用于確定三種標(biāo)記信息各自的記錄條數(shù),第四行用于存放系統(tǒng) 時鐘周期的劃分單位。標(biāo)記信息表的每一行都有唯一的地址映射,允許在軟件應(yīng)用程序運(yùn)
      行過程中被動態(tài)的修改。標(biāo)記信息表子模塊中所有可尋址的存儲單元以0x10001000為基 地址,最小編址單位為32位。存儲副本子模塊7用于保存數(shù)據(jù)塊的副本,數(shù)據(jù)塊的存儲從第3行開始,數(shù)據(jù)塊的存 儲位置與標(biāo)記信息表子模塊中CS1標(biāo)記信息的具體內(nèi)容有關(guān),例如,CS1標(biāo)記信息的第一 條記錄為0x02001C04,說明存儲副本子模塊的第3行到第6行(每行為一個數(shù)據(jù)塊大小, 4個字),分別保存的是.-0x002001C0到0x002001CC 、 0x002001D0到0x002001DC 、 0x002001E0到0x002001EC、 0x002001F0到0x002001FC連續(xù)的四個數(shù)據(jù)塊(塊大小為4 個字);存儲副本子模塊的第l行和第2行用于說明存儲副本中對應(yīng)數(shù)據(jù)塊的有效性,從 第1行的高位開始,每一位依次對應(yīng)從第3行開始到第66行結(jié)束每個數(shù)據(jù)塊的有效性, 例如第l行是"0x10000002",說明第6行和第33行的數(shù)據(jù)塊是有效的,其他的數(shù)據(jù)塊是 無效的。存儲副本子模塊中的存儲單元均可以被軟件應(yīng)用程序訪問,以0x10002000為基 地址,并且最小地址邊界是32位??刂七壿嬜幽K8用于監(jiān)視和控制Cache的工作過程,主要分為三個部分,參見圖4: a)監(jiān)視處理器對Cache的訪問,當(dāng)操作地址符合標(biāo)記信息表中某一 CN類型標(biāo)記時,控制 Cache的工作過程做出相應(yīng)的改變禁止當(dāng)前Cache的緩存功能,對于取數(shù)據(jù)/指令操作, 通過數(shù)據(jù)I/O單元12直接從外存讀取數(shù)據(jù)/指令;對于數(shù)據(jù)存儲操作,通過數(shù)據(jù)1/0單元 12直接向外存寫數(shù)據(jù);b)同樣監(jiān)視處理器對Cache的訪問,位于解碼單元9: 一方面, 當(dāng)取數(shù)據(jù)/指令操作符合某一CSl標(biāo)記信息時,首先判斷存儲副本子模塊中對應(yīng)的數(shù)據(jù)塊 是否有效如果有效,則直接將其取出;如果無效,發(fā)起一次預(yù)取操作填充Cache中相應(yīng) 的數(shù)據(jù)行,同時更新存儲副本,并將對應(yīng)的有效位置位。另一方面,當(dāng)寫數(shù)據(jù)操作符合某 一CS1標(biāo)記信息時,首先判斷是否寫命中如果不命中,清除對應(yīng)的有效位,然后轉(zhuǎn)到 常規(guī)的Cache操作過程;如果寫命中,則先將存儲副本中對應(yīng)的數(shù)據(jù)塊更新,然后替換 Cache存儲單元中對應(yīng)的數(shù)據(jù)行;c)監(jiān)視Cache的替換候補(bǔ)行選擇過程,當(dāng)替換候補(bǔ)行 中對應(yīng)的數(shù)據(jù)塊,符合某一 CS2標(biāo)記信息時,首先根據(jù)對應(yīng)標(biāo)記信息中包含的生命期信息, 判斷是否在有效期內(nèi)若是,則鎖定該數(shù)據(jù)行,重新選擇替換候補(bǔ)行;否則,就轉(zhuǎn)到常規(guī) 的Cache操作。需要注意的是,如果當(dāng)前Cache的N路中對應(yīng)的同一數(shù)據(jù)行均被鎖定時, 需要解鎖所有這些數(shù)據(jù)行,并且將最后一次選擇的數(shù)據(jù)行作為替換候補(bǔ)行。
      權(quán)利要求
      1、一種面向嵌入式應(yīng)用的軟件可控Cache的實(shí)現(xiàn)方法,應(yīng)用于包括ARM7TDMI嵌入式微處理器、片上指令數(shù)據(jù)統(tǒng)一Cache、片外同步動態(tài)隨機(jī)存儲器在內(nèi)的嵌入式系統(tǒng)設(shè)計,其中,ARM7TDMI嵌入式微處理器與片上高速緩存Cache緊耦合;片外同步動態(tài)隨機(jī)存儲器與片上高速緩存Cache之間通過外部存儲器控制接口EMI間接連接,片上高速緩存Cache與外部存儲器控制接口之間通過AMBA總線連接,片外同步動態(tài)隨機(jī)存儲器的數(shù)據(jù)接口和控制接口分別通過數(shù)據(jù)總線和控制總線與EMI外部存儲器的數(shù)據(jù)接口和控制接口對應(yīng)連接;其特征在于基于傳統(tǒng)的嵌入式Cache結(jié)構(gòu),增加一個Cache控制器,用于實(shí)現(xiàn)如下的三種操作訪問開銷代價大且生命期均勻分布的數(shù)據(jù),在Cache中保留副本;造成Cache預(yù)取時間局部性下降的數(shù)據(jù),由處理器直接與外存通信;某一時刻被頻繁訪問的數(shù)據(jù),在其有效生命期內(nèi),優(yōu)先停留在Cache中;方法是在關(guān)閉Cache緩存功能的條件下運(yùn)行應(yīng)用程序,得到訪問記錄;根據(jù)訪問記錄,選取標(biāo)記數(shù)據(jù)塊;根據(jù)標(biāo)記數(shù)據(jù)塊的特點(diǎn),生成標(biāo)記信息表的內(nèi)容,加載到Cache控制器中,控制Cache的操作過程;其中,標(biāo)記信息表的內(nèi)容可以在系統(tǒng)運(yùn)行過程中為軟件動態(tài)地配置。
      2、 根據(jù)權(quán)利要求l所述的面向嵌入式應(yīng)用的軟件可控Cache的實(shí)現(xiàn)方法,其特征是 包含以下具體步驟(1) 在關(guān)閉Cache緩存功能的條件下,得到ARM7TDMI嵌入式微處理器對片外同步 動態(tài)隨機(jī)存儲器的訪問記錄;(2) 根據(jù)訪問記錄,將造成Cache預(yù)取局部性下降的數(shù)據(jù)塊,標(biāo)記為CN類型;將 訪問開銷代價大且生命期均勻分布的數(shù)據(jù)塊,標(biāo)記為CS1類型;將某一時刻被頻繁訪問的 數(shù)據(jù)塊,標(biāo)記為CS2類型;(3) 根據(jù)(2)中對數(shù)據(jù)塊標(biāo)記的情況,生成標(biāo)記信息表的內(nèi)容,加載到Cache控 制器中;(4) 標(biāo)記信息表的具體內(nèi)容,可以在系統(tǒng)運(yùn)行過程中,通過軟件動態(tài)地配置;(5) Cache控制器在系統(tǒng)運(yùn)行過程中,根據(jù)標(biāo)記信息表的配置情況,監(jiān)視并控制 Cache的工作行為標(biāo)記為CN類型的數(shù)據(jù)塊,由處理器直接與外存通信;標(biāo)記為CSl類 型的數(shù)據(jù)塊,在Cache中保留副本;標(biāo)記為CS2類型的數(shù)據(jù)塊,在其有效生命期內(nèi),被優(yōu) 先鎖定在Cache中。
      3、 根據(jù)權(quán)利要求2所述的面向嵌入式應(yīng)用的軟件可控Cache的實(shí)現(xiàn)方法,其特征在于, Cache控制器的結(jié)構(gòu)包括三個子模塊標(biāo)記信息表子模塊用于存儲三種類型的標(biāo)記信息; 存儲副本子模塊用于保存數(shù)據(jù)塊的副本;控制邏輯子模塊用于監(jiān)視和控制Cache的工作過程;標(biāo)記信息表子模塊和存儲副本子模塊中的存儲單元,有唯一的地址映射,允許通過軟 件動態(tài)的配置。
      4、 根據(jù)權(quán)利要求1或2或3所述的面向嵌入式應(yīng)用的軟件可控Cache的實(shí)現(xiàn)方法,其 特征在于,ARM7TDMI嵌入式微處理器對片外同步動態(tài)隨機(jī)存儲器的訪問記錄的內(nèi)容包括 記錄l,每個數(shù)據(jù)字被訪問的次數(shù);記錄2,將系統(tǒng)時鐘周期以M為單位分成N份,記錄 每M個時鐘周期內(nèi)每個數(shù)據(jù)字被訪問的次數(shù)和時鐘開銷數(shù)。
      5、 根據(jù)權(quán)利要求2或3所述的面向嵌入式應(yīng)用的軟件可控Cache的實(shí)現(xiàn)方法,其特征 在于,CN類型標(biāo)記數(shù)據(jù)塊的選取步驟如下(1) 以Cache數(shù)據(jù)行的大小為單位,將外部存儲器劃分成各個數(shù)據(jù)塊,根據(jù)訪問記 錄l,將數(shù)據(jù)塊中每個數(shù)據(jù)字被訪問的次數(shù)累加求和,得到每個數(shù)據(jù)塊的訪問權(quán)重;(2) 選取權(quán)重大于等于l,小于4的數(shù)據(jù)塊,并且將它們以權(quán)重大小排序,根據(jù)需 要的標(biāo)記條數(shù)N-CN,選擇其中權(quán)重最小的N-CN個數(shù)據(jù)塊。
      6、 根據(jù)權(quán)利要求2或3所述的面向嵌入式應(yīng)用的軟件可控Cache的實(shí)現(xiàn)方法,其特征 在于,CS1類型標(biāo)記數(shù)據(jù)塊的選取步驟如下(1) 以Cache數(shù)據(jù)行的大小為單位,將外部存儲器劃分成各個數(shù)據(jù)塊,根據(jù)訪問記 錄2,將數(shù)據(jù)塊中每個數(shù)據(jù)字的周期開銷累加,計算每M個時鐘周期內(nèi)各個數(shù)據(jù)塊累計的 周期開銷數(shù),以及各個數(shù)據(jù)塊在系統(tǒng)運(yùn)行過程中總共的周期開銷數(shù);(2) 由上一步的計算結(jié)果,得到兩類統(tǒng)計圖 一類是各個數(shù)據(jù)塊的總體周期開銷情 況;另一類是各個數(shù)據(jù)塊在以M為單位的時鐘周期上更加詳細(xì)的分布情況;結(jié)合兩類統(tǒng)計 圖,根據(jù)需要的標(biāo)記條數(shù)N-CS1,從總體周期開銷大且生命期均勻分布的數(shù)據(jù)塊中,選取 N-CS1個數(shù)據(jù)塊。
      7、 根據(jù)權(quán)利要求2或3所述的面向嵌入式應(yīng)用的可控Cache的實(shí)現(xiàn)方法,其特征在于, CS2類型標(biāo)記數(shù)據(jù)塊的選取步驟如下(1) 以Cache數(shù)據(jù)行的大小為單位,將外部存儲器劃分成各個數(shù)據(jù)塊,將各個數(shù)據(jù) 塊中每個數(shù)據(jù)字的訪問次數(shù)累加,計算每M個時鐘周期內(nèi)每個數(shù)據(jù)塊的訪問次數(shù);(2) 由上一步的計算結(jié)果,得到各個數(shù)據(jù)塊的訪問次數(shù)在以M為單位的時鐘周期上 的分布情況,根據(jù)需要的標(biāo)記條數(shù)N-CS2,從需要頻繁換進(jìn)換出且生命期集中分布的數(shù)據(jù) 塊中,選取N-CS2個數(shù)據(jù)塊。
      全文摘要
      一種面向嵌入式應(yīng)用的軟件可控Cache的實(shí)現(xiàn)方法,基于傳統(tǒng)的嵌入式Cache結(jié)構(gòu),增加了一個Cache控制器,用于實(shí)現(xiàn)如下的三種操作訪問開銷代價大且生命期均勻分布的數(shù)據(jù),在Cache中保留副本;造成Cache預(yù)取時間局部性下降的數(shù)據(jù),由處理器直接與外存通信;某一時刻被頻繁訪問的數(shù)據(jù),在其有效生命期內(nèi),優(yōu)先停留在Cache中。其步驟如下在關(guān)閉Cache緩存功能的條件下運(yùn)行應(yīng)用程序,得到訪問記錄;根據(jù)訪問記錄,選取標(biāo)記數(shù)據(jù)塊;根據(jù)標(biāo)記數(shù)據(jù)塊的特點(diǎn),生成標(biāo)記信息表的內(nèi)容,加載到Cache控制器中,控制Cache的操作過程。其中,標(biāo)記信息表的內(nèi)容可以在系統(tǒng)運(yùn)行過程中為軟件動態(tài)地配置。
      文檔編號G06F12/08GK101398786SQ20081015653
      公開日2009年4月1日 申請日期2008年9月28日 優(yōu)先權(quán)日2008年9月28日
      發(fā)明者波 劉, 劉新寧, 軍 楊, 王學(xué)香 申請人:東南大學(xué)
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
      1