• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      DSP指令Cache的設(shè)計與實現(xiàn)

      2016-12-26 09:47:01湘潭大學(xué)物理與光電工程學(xué)院呂華智黃嵩人
      電子世界 2016年21期
      關(guān)鍵詞:表項存儲器內(nèi)存

      湘潭大學(xué)物理與光電工程學(xué)院 呂華智 黃嵩人

      DSP指令Cache的設(shè)計與實現(xiàn)

      湘潭大學(xué)物理與光電工程學(xué)院 呂華智 黃嵩人

      為提高DSP處理器的執(zhí)行效率,專門針對CPU指令處理速度與存儲器指令存取速度不匹配問題,本文通過在CPU與主存儲器之間設(shè)計了一款指令Cache,從而有效解決了上述問題。根據(jù)DSP四級流水線的特性,所設(shè)計的指令Cache采用直接映像機制;通過verilog實現(xiàn)指令Cache的編程,并使用ModelSim仿真軟件對指令Cache進行了仿真驗證,仿真結(jié)果表明指令Cache的效果符合預(yù)期。

      DSP;指令Cache;Cache控制器

      近年來,在國家的大力扶持下,集成電路產(chǎn)業(yè)發(fā)展異常迅速, CPU的處理速度越來越快,集成度也越來越高,然而相對于微處理器而言,存儲器讀寫速度的提高卻相對比較緩慢,兩者之間的速度差距越來越大,以至于導(dǎo)致瓶頸問題的產(chǎn)生,從而制約著系統(tǒng)整體性能的提高。在現(xiàn)代計算機體系結(jié)構(gòu)中,通常在CPU和主存儲器之間插入一個容量小而速度快的存儲器來滿足性能要求,這一存儲器被稱為高速緩存(Cache)。

      1 指令Cache的設(shè)計與實現(xiàn)

      1.1 Cache的工作原理

      在Cache的存儲系統(tǒng)中,Cache和主存儲器之間一般是用塊來進行信息交互的。因此,Cache和主存都會被分割成一些大小相同的塊,且塊的大小通常為2的冪次方字節(jié)。

      當CPU需要讀Cache里面的內(nèi)容時,CPU會發(fā)出一個物理地址,這個物理地址被放到主存地址寄存器中。緊接著地址變換部件會將主存地址中的塊號B轉(zhuǎn)換成Cache的塊號b,并存儲到Cache地址寄存器中。與此同時將主存地址中的塊內(nèi)地址W直接作為Cache的塊內(nèi)地址w裝入到Cache地址寄存器中。如果轉(zhuǎn)換成功(稱為Hit),就用此Cache地址去尋址Cache_SRAM,并且將訪問到的數(shù)據(jù)傳給CPU。反之,則稱為Cache Miss,CPU就直接訪問主存儲器,將主存儲器的內(nèi)容傳給CPU,且同時將其復(fù)制到Cache_SRAM中。在拷貝的過程中如果發(fā)現(xiàn)Cache已經(jīng)滿了,那么就需要采取某種替換策略將一些不常用到的塊替換出來,以此來裝入新調(diào)入的塊。由于程序具有局部性的特點,當發(fā)現(xiàn)Cache失效時,我們就將失效內(nèi)容對應(yīng)的整個塊都裝入Cache中,從而減少Cache的失誤率。

      1.2 指令Cache的基本結(jié)構(gòu)設(shè)計

      Cache容量的大小與映射的方式存在著一定的關(guān)系,被稱為2:1 Cache的經(jīng)驗規(guī)律,即容量為N的直接映射Cache與容量為N/2的二路組相聯(lián)Cache有著幾乎相同的缺失率[2]。其中強制性失效率并不會受Cache容量的影響,然而容量失效率則與Cache的容量成反比關(guān)系;同時強制失效和容量失效有一個共同點,就是他們都不受相聯(lián)度的影響。如果Cache容量過大,就會導(dǎo)致Cache的命中時間過長,進而會影響到CPU的執(zhí)行效率;沖突失效率是隨著Cache相聯(lián)度的增加而下降。但是并不是說Cache的容量越大越好,當達到一定容量的時候,如果再繼續(xù)增加Cache的塊大小,反而會導(dǎo)致Cache的命中率降低。

      在綜合考慮了性能、功耗、面積等方面的因素,最終把指令Cache的容量大小設(shè)計為8KB,塊大小為16個字節(jié),采用直接映射。指令Cache主要由以下幾個模塊構(gòu)成:ICache_CTR控制模塊、I Cache_SRAM模塊、TAG_SRAM模塊,其中TAG_SRAM、ICache_ SRAM可以稱為數(shù)據(jù)部分,ICache可以稱為控制部分,在數(shù)據(jù)部分進行查找操作,將查找結(jié)果(hit或miss)送到控制部分,由控制部分依據(jù)查找結(jié)果進行下一步的操作。

      由于直接映像是一種最簡單,也是最直接的方法,所以在本款32位的DSP內(nèi)核中,指令Cache采用直接地址映像的方式。其直接映像就是指主存中的一個塊在Cache中具有唯一的位置。當CPU訪問該主存塊時,利用塊索引查找對應(yīng)的目錄表項,如果其中保存的標識與主存塊Tag相同,且"Valid"位為1,則說明該位置上的Cache塊即是所要找的塊。假設(shè)主存的塊號為I。Cache的塊號為J,則可按照一種循環(huán)分配的原則確定I、J之間的對應(yīng)關(guān)系:

      J=I mode M

      其中,M為Cache的塊數(shù)。

      在本系統(tǒng)中,Tag表示存儲器的區(qū)號,index表示塊索引,offset表示塊內(nèi)偏移,通過每塊中的offset就可以找到塊中的每一個word。

      TAG_SRAM總共有512個目錄表項,每個表項包含Tag位和Valid位,其中取物理地址的高19位作為Tag位。ICache_SRAM存儲的是指令Cache中的內(nèi)容,ICache_SRAM中的4個表項(每個表項是一個word,其中一個word包含4個Byte)與TAG_SRAM中的一個表項組成ICache目錄表中的一個line,比如:TAG_SRAM的第1個表項與ICache_ SRAM中位于4~7的word組成ICache目錄表的line1.當要取指時需查找TAG_SRAM,利用要讀取指令地址的4~12位的值作為索引查找TAG_ SRAM,得到TAG_SRAM對應(yīng)的表項,將該表項返回給ICache模塊,后者據(jù)此判斷ICache是否命中。指令Cache的基本結(jié)構(gòu)圖如圖1所示。

      圖1 指令Cache的基本結(jié)構(gòu)圖

      1.3 指令Cache的實現(xiàn)

      將指令Cache結(jié)構(gòu)和Cache控制器進行整合后,采用verilog編程來實現(xiàn)指令Cache。ICache控制器的主體是一個狀態(tài)機,有三個狀態(tài):IDLE、IC_FETCH和IC_MISS。處理器復(fù)位的時候處于IDLE狀態(tài),當需要取指時會進入IC_FETCH狀態(tài),在此狀態(tài)下又分以下三種情況:①當Cache命中時,則直接從Cache取得指令返回給處理器②如果Cache未命中,則從內(nèi)存中讀取指令,且將指令讀入Cache中③如果指令所在的內(nèi)存塊被禁止,則同樣從相應(yīng)的內(nèi)存塊中讀取指令,并回到IDLE狀態(tài)。

      而ICache的存儲體TAG_SRAM和ICache_SRAM直接用Memory Compiler生成。

      2 指令Cache的仿真與驗證

      指令Cache的仿真在ModelSim中進行,例化程序的機器碼由CCS運行產(chǎn)生,再將機器碼導(dǎo)入存儲器中。在系統(tǒng)上電復(fù)位的時候,指令Cache未被使能,ICache_SRAM中還沒有數(shù)據(jù),所以在初始化Cache之前,CPU取指是需要從內(nèi)存中獲取,該指令在流水線執(zhí)行階段用了多個時鐘周期,仿真結(jié)果如圖2.當Cache初始化完成之后,并且指令Cache被使能,此時CPU取指則可從Cache中直接獲取,此時在流水線執(zhí)行階段只占用一個時鐘周期。仿真結(jié)果如圖3所示。

      猜你喜歡
      表項存儲器內(nèi)存
      一種改進的TCAM路由表項管理算法及實現(xiàn)
      靜態(tài)隨機存儲器在軌自檢算法
      基于ARMA模型預(yù)測的交換機流表更新算法
      “春夏秋冬”的內(nèi)存
      當代陜西(2019年13期)2019-08-20 03:54:22
      SDN數(shù)據(jù)中心網(wǎng)絡(luò)基于流表項轉(zhuǎn)換的流表調(diào)度優(yōu)化
      存儲器——安格爾(墨西哥)▲
      基于Nand Flash的高速存儲器結(jié)構(gòu)設(shè)計
      基于內(nèi)存的地理信息訪問技術(shù)
      交換機的FDB地址
      上網(wǎng)本為什么只有1GB?
      芦溪县| 龙陵县| 亚东县| 正定县| 临城县| 唐海县| 新竹市| 库车县| 巨野县| 郧西县| 泗水县| 右玉县| 石泉县| 上高县| 灵台县| 从化市| 陇川县| 哈密市| 抚远县| 康定县| 大同县| 牡丹江市| 吴忠市| 安溪县| 社会| 息烽县| 海原县| 延川县| 石河子市| 嘉善县| 葫芦岛市| 浙江省| 梁山县| 如东县| 休宁县| 当阳市| 鹤岗市| 永仁县| 多伦县| 新沂市| 陈巴尔虎旗|