0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Cache內(nèi)容鎖定是什么

麥辣雞腿堡 ? 來源:TrustZone ? 作者:TrustZone ? 2023-10-31 11:31 ? 次閱讀

“鎖定”在cache中的塊在常規(guī)的cache替換操作中不會被替換,但當(dāng)通過C7控制cache中特定的塊時(shí),比如使某特定的塊無效時(shí),這些被“鎖定”在cache中的塊也將受到相應(yīng)的影響。

用LINELEN表示cache的塊大小,用ASSOCIATIVITY表示每個(gè)cache組中的塊數(shù),用NSETS表示cache中的組數(shù)。

cache的“鎖定”是以鎖定塊(lockdown block)為單位進(jìn)行的。每個(gè)鎖定塊中包括cache中每個(gè)組中各一個(gè)塊,這樣cache中最多可有ASSOCIATIVITY個(gè)鎖定塊,編號為0~ASSOCIATIVITY-1。

其中編號為0的鎖定塊中包含cache組0中的0號塊、組1中的0號塊,一直到ASSOCIATIVITY-1中的0號塊。

“N鎖定塊被鎖定”是指編號為0~N-1的鎖定塊被鎖定在cache中,

編號為N~ASSOCIATIVITY-1的鎖定塊可用于正常的cache替換操作。

實(shí)現(xiàn)N鎖定塊被鎖定的操作步驟說明如下:

?1)確保在整個(gè)鎖定過程中不會發(fā)生異常中斷,否則必須保證與該異常中斷相關(guān)的代碼和數(shù)據(jù)位于非緩沖(uncachable)的存儲區(qū)域。

?2)如果鎖定的是指令cache或者統(tǒng)一的cache,必須保證鎖定過程所執(zhí)行的代碼位于非緩沖的存儲區(qū)域。

?3)如果鎖定的是數(shù)據(jù)cache或者統(tǒng)一的cache,必須保證鎖定過程所涉及的數(shù)據(jù)位于非緩沖的存儲區(qū)域。

?4)確保將要被鎖定的代碼和數(shù)據(jù)位于緩沖(cachable)的存儲區(qū)域。

?5)確保將要被鎖定的代碼和數(shù)據(jù)尚未在cache中,可以通過使無效相應(yīng)cache中的塊達(dá)到這一目的。

?6)對于I=0到N-1,重復(fù)執(zhí)行下面的操作:

?a)Index=I寫入CP15的C9寄存器,當(dāng)使用B格式的鎖定寄存器時(shí),令L=1;

?b)在鎖定塊I中的各cache塊內(nèi)容從主存中預(yù)取到cache中,對于數(shù)據(jù)cache和統(tǒng)一cache可以使用LDR指令讀取一個(gè)位于該塊中的數(shù)據(jù),將塊預(yù)取到cache中;對于指令cache,通過操作CP15的C7寄存器,將相應(yīng)的塊預(yù)取到指令cache中。

?7)將index=N寫入CP15的C9寄存器,當(dāng)使用B格式的鎖定寄存器時(shí),令L=0。解除N鎖定塊被鎖定只須執(zhí)行以下操作:將index=0寫入CP15的C9寄存器,當(dāng)使用B格式的鎖定寄存器時(shí),令L=0。

Cache和Writer Buffer編程接口

ARM處理器中的Cache和Write Buffer操作是通過寫CP15的C7寄存器來實(shí)現(xiàn)的。訪問CP15的C7寄存器的指令格式如下所示:

mcr p15, 0, , , crm,

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 數(shù)據(jù)
    +關(guān)注

    關(guān)注

    8

    文章

    7030

    瀏覽量

    89038
  • 指令
    +關(guān)注

    關(guān)注

    1

    文章

    607

    瀏覽量

    35714
  • Cache
    +關(guān)注

    關(guān)注

    0

    文章

    129

    瀏覽量

    28346
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4788

    瀏覽量

    68616
收藏 人收藏

    評論

    相關(guān)推薦

    6678中CACHE的空間使用問題

    參與運(yùn)算操作時(shí)會發(fā)生cache存儲空間的使用沖突么? 2、memset(void *buffer, int value, int count),對buffer起作用的是它cache中的內(nèi)容還是其所在的真正內(nèi)存中的
    發(fā)表于 06-21 13:28

    看完cache后的疑惑

    我最近看6437的cache。話說如果不使能所有cache.那dspcpu也是可以訪問ddr2的是吧。那這個(gè)路徑是怎么樣的呢。在手冊上的Block Diagram等都沒看到。都講的是ddr2到l2,l1到cpu這么個(gè)cache
    發(fā)表于 08-02 07:15

    剛學(xué)FREERTOS,任務(wù)鎖定是哪個(gè)函數(shù)?

    剛學(xué)FREERTOS,任務(wù)鎖定是哪個(gè)函數(shù)?UC里是OSSchedLock();
    發(fā)表于 06-15 04:35

    QPLL沒有鎖定是為什么?

    嗨,大家好,我有一個(gè)拒絕鎖定的QPLL。設(shè)計(jì)采用Coregen 14.4生成,目標(biāo)設(shè)備為XC7V2000T Initial ES。 QPLL的參考時(shí)鐘直接來自IBUFDS_GTE2實(shí)例,為100
    發(fā)表于 07-28 08:55

    什么是Cache

    什么是Cache  英文縮寫: Cache 中文譯名: 高速緩存器 分  類: IP與多媒體 解  釋: 信息在本地的臨時(shí)存儲
    發(fā)表于 02-22 17:26 ?1019次閱讀

    高速緩存(Cache),高速緩存(Cache)原理是什么?

    高速緩存(Cache),高速緩存(Cache)原理是什么? 高速緩存Cache是位于CPU和主存儲器之間規(guī)模較小、存取速度快捷的靜態(tài)存儲器。Cache一般由
    發(fā)表于 03-26 10:49 ?6843次閱讀

    Buffer和Cache之間區(qū)別是什么?

    集中的某一塊,所以把這塊內(nèi)容放入cache后,cpu就不用在訪問內(nèi)存了,這就提高了訪問速度。當(dāng)然若cache中沒有cpu所需要的內(nèi)容,還是要訪問內(nèi)存的。
    的頭像 發(fā)表于 04-02 10:35 ?6756次閱讀

    cache結(jié)構(gòu)與工作原理

    更詳細(xì)的講,cache的結(jié)構(gòu)其實(shí)和內(nèi)存的結(jié)構(gòu)類似,也包含地址和內(nèi)容,只是cache內(nèi)容除了存的數(shù)據(jù)(data)之外,還包含存的數(shù)據(jù)的物理內(nèi)存的地址信息(tag),因?yàn)镃PU發(fā)出的尋址
    發(fā)表于 06-03 14:24 ?1.2w次閱讀
    <b class='flag-5'>cache</b>結(jié)構(gòu)與工作原理

    Linux內(nèi)核Page Cache和Buffer Cache兩類緩存的作用及關(guān)系如何

    在我們進(jìn)行數(shù)據(jù)持久化,對文件內(nèi)容進(jìn)行落盤處理時(shí),我們時(shí)常會使用fsync操作,該操作會將文件關(guān)聯(lián)的臟頁(dirty page)數(shù)據(jù)(實(shí)際文件內(nèi)容及元數(shù)據(jù)信息)一同寫回磁盤。這里提到的臟頁(dirty
    的頭像 發(fā)表于 07-02 14:25 ?2766次閱讀
    Linux內(nèi)核Page <b class='flag-5'>Cache</b>和Buffer <b class='flag-5'>Cache</b>兩類緩存的作用及關(guān)系如何

    關(guān)于Cache的其它內(nèi)容

    關(guān)于Cache的其它內(nèi)容 上面我們所描述情況,在訪問cache前,已經(jīng)將虛擬地址轉(zhuǎn)換成了物理地址,其實(shí),不一定,也可是是虛擬地址直接訪問cache,倒底是使用物理地址還是虛擬地址,這就
    的頭像 發(fā)表于 11-21 11:12 ?2383次閱讀

    什么是 Cache? Cache讀寫原理

    由于寫入數(shù)據(jù)和讀取指令分別通過 D-Cache 和 I-Cache,所以需要同步 D-Cache 和 I-Cache,即復(fù)制后需要先將 D-Cach
    發(fā)表于 12-06 09:55 ?2593次閱讀

    CPU Cache偽共享問題

    當(dāng)CPU想要訪問主存中的元素時(shí),會先查看Cache中是否存在,如果存在(稱為Cache Hit),直接從Cache中獲取,如果不存在(稱為Cache Miss),才會從主存中獲取。
    的頭像 發(fā)表于 12-12 09:17 ?675次閱讀

    Cache的原理和地址映射

    cache存儲系統(tǒng)中,把cache和主存儲器都劃分成相同大小的塊。 主存地址由塊號B和塊內(nèi)地址W兩部分組成,cache地址由塊號b和塊內(nèi)地址w組成。 當(dāng)CPU訪問cache時(shí),CPU
    的頭像 發(fā)表于 10-31 11:21 ?1686次閱讀

    Cache分類與替換算法

    根據(jù)不同的分類標(biāo)準(zhǔn)可以按以下3種方法對Cache進(jìn)行分類。 ?1)數(shù)據(jù)cache和指令cache ?● 指令cache:指令預(yù)取時(shí)使用的cache
    的頭像 發(fā)表于 10-31 11:26 ?977次閱讀
    <b class='flag-5'>Cache</b>分類與替換算法

    Cache寫入方式原理簡介

    提高高速緩存命中率的最好方法是盡量使Cache存放CPU最近一直在使用的指令與數(shù)據(jù),當(dāng)Cache裝滿后,可將相對長期不用的數(shù)據(jù)刪除,提高Cache的使用效率。 為保持Cache中數(shù)據(jù)與
    的頭像 發(fā)表于 10-31 11:43 ?1282次閱讀