一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

Cache的原理和地址映射

麥辣雞腿堡 ? 來源:TrustZone ? 作者:TrustZone ? 2023-10-31 11:21 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

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

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

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

Cache地址映射和變換方法

地址的映射和變換是密切相關(guān)的,采用什么樣的地址映射方法就必然有與這種映射方法相對應(yīng)的地址變換方法。

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

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

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

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

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

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

將cache每組中的塊數(shù)稱為組容量(set-associativity),當(dāng)組容量等于cache中的總塊數(shù)時,對應(yīng)的映射方式為全相聯(lián)映射方式;

當(dāng)組容量等于1時,對應(yīng)的映射方式為直接映射方式;

當(dāng)組容量為其他值時,稱為組相聯(lián)映射方式。

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

CACHE_SIZE = LINELEN*ASSOCIATIVITY*NSETS

其中,

?LINELEN為cache塊(line)大小;

?ASSOCIATIVITY為組容量;

?NSETS為cache的組數(shù)。

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

    關(guān)注

    68

    文章

    19896

    瀏覽量

    235282
  • ARM
    ARM
    +關(guān)注

    關(guān)注

    134

    文章

    9353

    瀏覽量

    377620
  • 存儲器
    +關(guān)注

    關(guān)注

    38

    文章

    7653

    瀏覽量

    167424
  • Cache
    +關(guān)注

    關(guān)注

    0

    文章

    130

    瀏覽量

    29079
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    Linux內(nèi)核地址映射模型與Linux內(nèi)核高端內(nèi)存詳解

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

    關(guān)于ARM地址映射的理解

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

    關(guān)于cache百科里的一段敘述有疑惑

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

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

    嗎?有的話麻煩您詳細(xì)講解以下?!鋈篟AM映射cache的問題 請問怎么才能控制,操作RAM和cache映射關(guān)系呢?以上問題,麻煩您講解一下。
    發(fā)表于 06-21 04:06

    通過內(nèi)存地址映射能否禁用MSMC上的cache

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

    地址映射問題

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

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

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

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

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

    cache有哪些缺點?實現(xiàn)cache的組織方式有哪幾種

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

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

    up,而無需進(jìn)行虛擬地址到物理地址的轉(zhuǎn)換。VIVT缺點缺點是當(dāng)修改系統(tǒng)中虛擬地址到物理地址映射時必須要clean和invalidate
    發(fā)表于 06-20 15:22

    ARM啟動代碼及地址映射

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

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

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

    從三個方面闡述Cache

    關(guān)于cache,大概可以從三個方面進(jìn)行闡述:內(nèi)存到cache映射方式,cache的寫策略,cache的替換策略。
    的頭像 發(fā)表于 11-21 11:09 ?2881次閱讀

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

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

    STM32/CPU地址映射的概念

    很多人對總線和地址映射的概念都是一頭霧水,但是我們?nèi)绻罏楹涡枰偩€和地址映射,他們是在什么背景下被衍化出來的,自然而然對此概念就清清楚楚了。
    的頭像 發(fā)表于 07-24 11:14 ?1517次閱讀
    STM32/CPU<b class='flag-5'>地址</b><b class='flag-5'>映射</b>的概念