<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          ARM中的CACHE機(jī)制

          作者: 時間:2016-11-09 來源:網(wǎng)絡(luò) 收藏
          ARMcache架構(gòu)由cache存儲器和寫緩沖器(write-buffer)組成,其中寫緩沖器是CACHE按照FIFO原則向主存寫的緩沖處理器。下圖是ARMV5核的CACHE位置

          本文引用地址:http://www.ex-cimer.com/article/201611/317849.htm

          Cache位于MMU前面靠近CPU稱為邏輯CACHE又叫虛擬Cache。CPU可以直接訪問CACHE的數(shù)據(jù),而ARM11(ARMV6)的結(jié)構(gòu)是CACHE在MMU后面CPU訪問CACHE要通過MMU地址轉(zhuǎn)換

          在DM6446的core用的是哈佛結(jié)構(gòu),即把CACHE分為8K的D-CACHE(數(shù)據(jù)CACHE)和16K的I-cache(指令CACHE)

          一個完整的CACHE分為CACHE控制器和CACHE存儲器

          見下圖:

          DavinciDM6446D-cache行應(yīng)為512行,cache存儲器主要分為三個部分:目錄存儲段(driectory-story),狀態(tài)信息段(statusinformation)和數(shù)據(jù)項段(datasection)每一行cache都包括這三部分。Cache用目錄存儲段來存儲主存的地址,數(shù)據(jù)項段存放的是主存的數(shù)據(jù),在cache中用狀態(tài)信息段來記錄狀態(tài)信息,其中v表示有效位,d表示臟位,有效位記錄當(dāng)前cache行是活動的,cache行的數(shù)據(jù)和主存中的數(shù)據(jù)是一致的,處理器可以讀取。臟位則表示cache行的數(shù)據(jù)和主存中的數(shù)據(jù)不一致。

          在讀寫請求到達(dá)存儲器前會被CACHE捕獲,cache存儲器將該請求分成三部分標(biāo)簽,組索引和數(shù)據(jù)索引域,cache通過組索引域確定可能包含地址和數(shù)據(jù)cache的行,cache存儲器檢查匹配的CACHE行的狀態(tài)標(biāo)簽,如果是V表示(cachehit)命中,否則cache失效(cachemiss)在cache失效時從主存吧cache行考到CACHE存儲器

          主存中的部分內(nèi)容存放在cache中的最簡單方式是直接映射,在一個直接映射中,主存的地址唯一對應(yīng)cache行,因為主存容量很大所以主存的很多地址映射到同一個cache行

          見下圖:

          在DM6446中內(nèi)存為128M(bootargs設(shè)為128M)8K的D-CACHE則128×1024/8=16384映射一個cache行。由于cache的速度大大大于低速的主存速度,因此需要寫緩沖器。

          Cache的寫策略分為直寫策略和回寫策略。同時向cache行和相應(yīng)的主存位置寫數(shù)據(jù),同時更新這兩個地方的數(shù)據(jù)的方法稱為直寫策略(writethrough),把數(shù)據(jù)寫入cache行,不寫入主存的或者只有當(dāng)cache被替換時或清理cache行時才寫入主存的策略稱為回寫策略(writeback)。采用回寫策略時,當(dāng)處理器cache命中,只向cache存儲器寫數(shù)據(jù),不寫入主存,主存里的數(shù)據(jù)就和cache里不一致,cache里的數(shù)據(jù)是最新的,主存里的數(shù)據(jù)是早前的。這就用cache存儲器信息狀態(tài)標(biāo)志位了,當(dāng)向cache存儲器里某行寫數(shù)據(jù)時,置相應(yīng)行的信息標(biāo)志臟位為1,那么主控制器下次訪問cache存儲器就知道cache里有主存沒有的數(shù)據(jù)了,把數(shù)據(jù)寫回到主存中去。

          當(dāng)一個cache訪問失效時,cache控制器必須從當(dāng)前有效行中取出一個cache行存儲從主存中取到的信息,被選中替換的cache行稱為丟棄者,如果這個cache行中臟位為1則應(yīng)把該cache行中的數(shù)據(jù)回寫到主存中,而替換策略決定了那個cache行會被替換,在arm926ejs中ARM支持兩種策略:輪轉(zhuǎn)策略和偽隨機(jī)策略。輪轉(zhuǎn)策略就是取當(dāng)前cache行的下一行,偽隨機(jī)策略是控制器隨機(jī)產(chǎn)生一個值。

          當(dāng)cache失效時,ARM采取兩種方式分配cache行,一種是讀操作(read-allocate)還有一種是讀-寫分配策略(read-write-allocate),當(dāng)cache未命中時對于讀操作策略,在對cache存儲器讀操作時才會分配cache行



          關(guān)鍵詞: ARMCACHE機(jī)

          評論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();