精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Cache的原理和地址映射

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

在cache存儲系統中,把cache和主存儲器都劃分成相同大小的塊。

主存地址由塊號B和塊內地址W兩部分組成,cache地址由塊號b和塊內地址w組成。

CPU訪問cache時,CPU送來主存地址,放到主存地址寄存器中,通過地址變換部件把主存地址中的塊號B變換成cache的塊號b,并放到cache地址寄存器中,同時將主存地址中的塊內地址W直接作為cache的塊內地址w裝入cache地址寄存器中,如果變換成功(又叫cache命中),就用得到的cache地址去訪問cache,從cache中取出數據送到CPU中;

如果變換不成功(cache不命中),則產生cache失效信息,并且用主存地址訪問主存儲器,從主存儲器中讀出一個字送往CPU,同時把包含該字在內的一整塊數據都從主存儲器讀出來裝入cache,這時,如果cache已經滿了,則要采用某種cache替換策略把不常用的塊先調出到主存儲中相應的塊中,以便騰出空間來存放新調入的塊。

由于程序具有局部性特點,每次塊失效時都把一塊(由多個字組成)調入到cache中,能夠提高cache的命中率。

Cache地址映射和變換方法

地址的映射和變換是密切相關的,采用什么樣的地址映射方法就必然有與這種映射方法相對應的地址變換方法。

無論采用什么樣的地址映射方式和地址變換方式,都要把主存和cache劃分成同樣大小的存儲單位,每個存儲單位成為“塊”,在進行地址映射和變換時,都是以塊為單位進行的。常用的映射方式和變換方式有以下3種:

?■ 全相聯映射方式 主存中任意一塊可以映射到cache中的任意一塊上。

?■ 直接映射方式 主存中一塊只能映射到cache中的一個特定塊上,假定主存的塊號為B,cache的塊號為b,cache的總塊數為Cb,則它們之間的映射關系可以用下面的公式表示:b = B mode Cb

?■ 組相連映射方式 在這種相聯的地址映射和變換方式中,把主存和cache按同樣大小劃分成組(set),每個組都由相同塊數組成。從主存的組到cache的組之間采用直接映射方式,在主存中的組與cache中的組之間建立好映射關系之后,在兩個對應的組內部采用全相聯的映射方式。

ARM處理器中,主存與cache采用組相聯地址映射和變換方式,如果cache的塊大小為2L,則同一塊中各地址的bit[31:L]是相同的。

如果cache中組的大小(每組中包含的塊數)為2S, 則虛擬地址的bit[L+S-1:L]用于選擇cache中的某個組, 而虛擬地址中其他位[31:L+S]包含了一些標志。

將cache每組中的塊數稱為組容量(set-associativity),當組容量等于cache中的總塊數時,對應的映射方式為全相聯映射方式;

當組容量等于1時,對應的映射方式為直接映射方式;

當組容量為其他值時,稱為組相聯映射方式。

在組相聯映射方式中,cache的大小CACHE_SIZE(字節數)可以通過下面的公式來計算:

CACHE_SIZE = LINELEN*ASSOCIATIVITY*NSETS

其中,

?LINELEN為cache塊(line)大小;

?ASSOCIATIVITY為組容量;

?NSETS為cache的組數。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 處理器
    +關注

    關注

    68

    文章

    19161

    瀏覽量

    229122
  • ARM
    ARM
    +關注

    關注

    134

    文章

    9046

    瀏覽量

    366815
  • 存儲器
    +關注

    關注

    38

    文章

    7452

    瀏覽量

    163605
  • Cache
    +關注

    關注

    0

    文章

    129

    瀏覽量

    28298
收藏 人收藏

    評論

    相關推薦

    Linux內核地址映射模型與Linux內核高端內存詳解

    的數據可能不在內存中。 Linux內核地址映射模型 x86 CPU采用了段頁式地址映射模型。進程代碼中的地址為邏輯
    發表于 05-08 10:33 ?3442次閱讀
    Linux內核<b class='flag-5'>地址</b><b class='flag-5'>映射</b>模型與Linux內核高端內存詳解

    關于ARM地址映射的理解

    對于剛剛學習ARM嵌入式的人來說,遇到的第一個難點我覺得就是地址映射的原理,往往會被一些概念弄得稀里糊涂(比如像我這種智商不高的)。所以就靜下心自己好好研讀了以下杜春雷《ARM體系結構與編程》有關
    發表于 12-08 09:37

    關于cache百科里的一段敘述有疑惑

    Cache與主存之間可采取多種地址映射方式,直接映射方式是其中的一種。在這種映射方式下,主存中的每一頁只能復制到某一固定的
    發表于 02-16 13:44

    AM335x SDK關于cache的命中率,請問有能改善cache命中率的有效方法嗎?請問怎么才能控制RAM映射cache

    嗎?有的話麻煩您詳細講解以下。■三:RAM映射cache的問題 請問怎么才能控制,操作RAM和cache映射關系呢?以上問題,麻煩您講解一下。
    發表于 06-21 04:06

    通過內存地址映射能否禁用MSMC上的cache

    請教: ??????? 在程序設計時,有時涉及MSMC內存上的頻繁交互時,cache一致性維護相當令人頭疼。C6678不允許禁止MSMC上的cache,但是我們了解到TI提供了機制將某一段地址
    發表于 06-21 06:25

    地址映射問題

    ............................. 在ccs調試中 顯示update()地址是 0x80005000,那 怎么看update(point)在該位置的,內存映射呢? 地址 0x80005000應該是定義該函
    發表于 06-13 11:35

    Cache的原理是什么?Cache地址的過程是怎樣的

    存儲器的層次結構是怎樣的?由哪些部分組成的?有何特點?Cache的原理是什么?Cache地址的過程是怎樣的?
    發表于 12-23 09:35

    為什么需要cachecache是如何影響code的呢

    bits。如下圖所示:直接映射緩存的優缺點直接映射緩存在硬件設計上會更加簡單,因此成本上也會較低。根據直接映射緩存的工作方式,我們可以畫出主存地址0x00-0x88
    發表于 04-21 11:10

    cache有哪些缺點?實現cache的組織方式有哪幾種

    最簡單的是直接映射cache。在直接映射cache中,主存中的每個位置都只能映射到某個特定的cache
    發表于 06-15 16:16

    ARM處理器使用虛擬地址來提供cache index和cache tag

    up,而無需進行虛擬地址到物理地址的轉換。VIVT缺點缺點是當修改系統中虛擬地址到物理地址映射時必須要clean和invalidate
    發表于 06-20 15:22

    ARM啟動代碼及地址映射

    ARM啟動代碼及地址映射
    發表于 02-11 11:00 ?104次下載
    ARM啟動代碼及<b class='flag-5'>地址</b><b class='flag-5'>映射</b>

    cache結構與工作原理

    更詳細的講,cache的結構其實和內存的結構類似,也包含地址和內容,只是cache的內容除了存的數據(data)之外,還包含存的數據的物理內存的地址信息(tag),因為CPU發出的尋址
    發表于 06-03 14:24 ?1.2w次閱讀
    <b class='flag-5'>cache</b>結構與工作原理

    從三個方面闡述Cache

    關于cache,大概可以從三個方面進行闡述:內存到cache映射方式,cache的寫策略,cache的替換策略。
    的頭像 發表于 11-21 11:09 ?2508次閱讀

    關于Cache的其它內容

    關于Cache的其它內容 上面我們所描述情況,在訪問cache前,已經將虛擬地址轉換成了物理地址,其實,不一定,也可是是虛擬地址直接訪問
    的頭像 發表于 11-21 11:12 ?2347次閱讀

    STM32/CPU地址映射的概念

    很多人對總線和地址映射的概念都是一頭霧水,但是我們如果知道為何需要總線和地址映射,他們是在什么背景下被衍化出來的,自然而然對此概念就清清楚楚了。
    的頭像 發表于 07-24 11:14 ?1014次閱讀
    STM32/CPU<b class='flag-5'>地址</b><b class='flag-5'>映射</b>的概念