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

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

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

Cache工作原理講解 Cache寫入方式原理簡介

ruikundianzi ? 來源:TrustZone ? 2023-10-17 10:37 ? 次閱讀

前言

Cache是位于CPU與主存儲器即DRAM(Dynamic RAM,動態(tài)存儲器)之間的少量超高速靜態(tài)存儲器SRAM(Static RAM),它是為了解決CPU與主存之間速度匹配問題而設(shè)置的,不能由用戶直接尋址訪問。

隨著科技的發(fā)展和生產(chǎn)工藝水平的提高,高性能處理器中Cache的容量將越來越大,而且級數(shù)將越來越多,從而大大提高系統(tǒng)的性能。

1 Cache和Write Buffer一般性介紹

1.1 Cache工作原理

具有Cache的計算機,當CPU需要進行存儲器存取時,首先檢查所需數(shù)據(jù)是否在Cache中。如果存在,則可以直接存取其中的數(shù)據(jù)而不必插入任何等待狀態(tài),這是最佳情況,稱為高速命中;

當CPU所需信息不在Cache中時,則需切換存取主儲器,由于速度較慢,需要插入等待,這種情況稱高速未命中;

在CPU存取主存儲器的時候,按照最優(yōu)化原則將存儲信息同時寫入到Cache中以保證下次可能的高速緩存命中。

因此,同一數(shù)據(jù)可能同時存儲在主存儲器和Cache中。同樣,按照優(yōu)化算法,可以淘汰Cache中一些不常使用的數(shù)據(jù)。

傳統(tǒng)的Socket架構(gòu)通常采用兩級緩沖結(jié)構(gòu),即在CPU中集成了一級緩存(L1Cache),在主板上裝二級緩存(L2 Cache),而SlotⅠ架構(gòu)下的L2 Cache則與CPU做在同一塊電路板上,以內(nèi)核速度或者內(nèi)核速度的一半運行,速度比Socket下的以系統(tǒng)外頻運行的L2 Cache更快,能夠更大限度發(fā)揮高主頻的優(yōu)勢,當然對Cache工藝要求也更高。

?CPU首先在L1 Cache中查找數(shù)據(jù),如找不到,則在L2Cache中尋找。?若數(shù)據(jù)在L2 Cache中,控制器在傳輸數(shù)據(jù)的同時,修改L1Cache;?若數(shù)據(jù)既不在L1 Cache中,又不在L2 Cache中,Cache控制器則從主存中獲取數(shù)據(jù),將數(shù)據(jù)提供給CPU的同時修改兩級Cache。?K6-Ⅲ則比較特殊,64KB L1 Cache,256KB Full Core Speed L2 Cache,原先主板上的緩存實際上就成了L3 Cache。

根據(jù)有關(guān)測試表明:

當512K2MB的三級緩存發(fā)揮作用時,系統(tǒng)性能還可以有2%10%的提高;

Tri-level成為PC系統(tǒng)出現(xiàn)以來提出的解決高速CPU與低速內(nèi)存之間瓶頸最為細致復(fù)雜的方案;而且,今后Cache的發(fā)展方向也是大容。

在主存-Cache存儲體系中,所有的指令和數(shù)據(jù)都存在主存中,Cache只是存放主存中的一部分程序塊和數(shù)據(jù)塊的副本,只是一種以塊為單位的存儲方式。

Cache和主存被分為塊,每塊由多個字節(jié)組成。

由上述的程序局部性原理可知,Cache中的程序塊和數(shù)據(jù)塊會使CPU要訪問的內(nèi)容在大多數(shù)情況下已經(jīng)在Cache中,CPU的讀寫操作主要在CPU和Cache之間進行。

CPU訪問存儲器時,送出訪問單元的地址,由地址總線傳送到Cache控制器中的主存地址寄存器MAR,主存-Cache地址轉(zhuǎn)換機構(gòu)從MA獲取地址并判斷該單元內(nèi)容是否已在Cache中存有副本,如果副本已存在于Cache中,即命中。當命中時,立即把訪問地址變換成它在Cache中的地址,然后訪問Cache。

ef1218c4-6c56-11ee-939d-92fbcf53809c.png

在這里插入圖片描述

?存儲體由若跟個存儲單元組成,存儲單元由多個存儲元件組成

?存儲體----存儲單元(存儲一串二進制串)----存儲元件(存儲一個0/1)

?存儲單元:存放一串二進制代碼。

?存儲字:存儲單元中的二進制代碼

?存儲字長:存儲單元中二進制代碼位數(shù)。

?存儲單元按照地址進行尋址

?MAR:存儲器地址寄存器,反應(yīng)存儲單元個數(shù)。保存了存儲體的地址(存儲單元的編號),反應(yīng)了存儲單元的個數(shù)。所以MAR的位數(shù)和存儲單元的個數(shù)有關(guān)。

?MDR:存儲器數(shù)據(jù)寄存器,反應(yīng)存儲字長(存儲單元長度)。保存了要送入CPU中的數(shù)據(jù)或要保存到存儲體中的數(shù)據(jù)或者剛剛從存儲體中取出來來的數(shù)據(jù)。這個寄存器的長度和存儲單元的長度相同。

如果CPU要訪問的內(nèi)容不在Cache中,即不命中,則CPU轉(zhuǎn)去直接訪問主存,并將包含此存儲單元的整個數(shù)據(jù)塊(包括該塊數(shù)據(jù)的地址信息)傳到Cache中,使得以后的若干次對內(nèi)存的訪問可轉(zhuǎn)化為對Cache的訪問。

若Cache存儲器已滿,則需在替換控制部件的控制下,根據(jù)某種替換算法/策略,用此塊信息替換掉Cache中原來的某塊信息。

之前記得當時面試的時候讓我用golang手寫緩存管理算法,哈哈哈。

所以,要想提高系統(tǒng)效率,必須提高Cache命中率,而Cache命中率的提高則取決于Cache的映像方式和Cache刷新算法等一系列因素,同時Cache中內(nèi)容應(yīng)與主存中的部分保持一致,也就是說,如果主存中的內(nèi)容在調(diào)入Cache之后發(fā)生了變化,那么它在Cache中的映像也應(yīng)該隨之發(fā)生相應(yīng)改變,反之,當CPU修改了Cache中的內(nèi)容后,主存中的相應(yīng)內(nèi)容也應(yīng)作修改。

1.2 地址映像方式

所謂地址映像方式是指如何確定Cache中的內(nèi)容是主存中的哪一部分的副本,即必須應(yīng)用某種函數(shù)把主存地址映像到Cache中定位。

信息按某種方式裝入Cache中后,執(zhí)行程序時,應(yīng)將主存地址變換為Cache地址,這個變換過程叫作地址變換。

地址映像方式通常采用直接映像、全相聯(lián)映像、組相聯(lián)映像三種:

1-直接映像

每個主存地址映像到Cache中的一個指定地址的方式,稱為直接映像方式。在直接映像方式下,主存中存儲單元的數(shù)據(jù)只可調(diào)入Cache中的一個位置,如果主存中另一個存儲單元的數(shù)據(jù)也要調(diào)入該位置則將發(fā)生沖突。

地址映像的方法一般是將主存空間按Cache的尺寸分區(qū),每區(qū)內(nèi)相同的塊號映像到Cache中相同的塊位置。一般地,Cache被分為2N塊,主存被分為大小為2MB的塊,主存與Cache中塊的對應(yīng)關(guān)系可用如下映像函數(shù)表示:j = i mod 2N。式中,j是Cache中的塊號;i是主存中的塊號。

直接映像是一種最簡單的地址映像方式,它的地址變換速度快,而且不涉及其他兩種映像方式中的替換策略問題。但是這種方式的塊沖突概率較高,當程序往返訪問兩個相互沖突的塊中的數(shù)據(jù)時,Cache的命中率將急劇下降,因為這時即使Cache中有其他空閑塊,也因為固定的地址映像關(guān)系而無法應(yīng)用。

2-全相聯(lián)映像

主存中的每一個字塊可映像到Cache任何一個字塊位置上,這種方式稱為全相聯(lián)映像。這種方式只有當Cache中的塊全部裝滿后才會出現(xiàn)塊沖突,所以塊沖突的概率低,可達到很高的Cache命中率,但它實現(xiàn)很復(fù)雜。

當訪問一個塊中的數(shù)據(jù)時,塊地址要與Cache塊表中的所有地址標記進行比較已確定是否命中。在數(shù)據(jù)塊調(diào)入時存在著一個比較復(fù)雜的替換問題,即決定將數(shù)據(jù)塊調(diào)入Cache中什么位置,將Cache中哪一塊數(shù)據(jù)調(diào)出主存。為了達到較高的速度,全部比較和替換都要用硬件實現(xiàn)。

3-組相聯(lián)映像

組相聯(lián)映像方式是直接映像和全相聯(lián)映像的一種折中方案。這種方法將存儲空間分為若干組,各組之間是直接映像,而組內(nèi)各塊之間則是全相聯(lián)映像。

它是上述兩種映像方式的一般形式,如果組的大小為1,即Cache空間分為2N組,就變?yōu)橹苯佑诚?如果組的大小為Cache整個的尺寸,就變?yōu)槿嗦?lián)映像。組相聯(lián)方式在判斷塊命中及替換算法上都要比全相聯(lián)方式簡單,塊沖突的概率比直接映像低,其命中率也介于直接映像和全相聯(lián)映像方式之間。

1.3 Cache寫入方式原理簡介

提高高速緩存命中率的最好方法是盡量使Cache存放CPU最近一直在使用的指令與數(shù)據(jù),當Cache裝滿后,可將相對長期不用的數(shù)據(jù)刪除,提高Cache的使用效率。

為保持Cache中數(shù)據(jù)與主存儲器中數(shù)據(jù)的一致性,避免CPU在讀寫過程中將Cache中的新數(shù)據(jù)遺失,造成錯誤地讀數(shù)據(jù),確保Cache中更新過程的數(shù)據(jù)不會因覆蓋而消失,必須將Cache中的數(shù)據(jù)更新及時準確地反映到主存儲器中,這是一個Cache寫入過程,Cache寫入的方式通常采用直寫式、緩沖直寫式與回寫式三種,下面比較介紹這三種Cache寫入方式。

1- 直寫式(Write Through)系統(tǒng)

CPU對Cache寫入時,將數(shù)據(jù)同時寫入到主存儲器中,這樣可保證Cache中的內(nèi)容與主存儲器的內(nèi)容完全一致。這種方式比較直觀,而且簡單、可靠,但由于每次對Cache更新時都要對主存儲器進行寫操作,而這必須通過系統(tǒng)總線來完成,因此總線工作頻繁,系統(tǒng)運行速度就會受到影響。

2-緩沖直寫式(Post Wirte)系統(tǒng)

為解決直寫式系統(tǒng)對總線速度的影響問題,在主存儲器的數(shù)據(jù)寫入時增加緩沖器區(qū)。當要寫入主存儲器的數(shù)據(jù)被緩沖器鎖存后,CPU便可執(zhí)行下一個周期的操作,不必等待數(shù)據(jù)寫入主存儲器。這相對于給主存儲器增加了一個單向單次高速緩存。

比如,在寫入周期之后可以緊接著一個數(shù)據(jù)已存在于Cache中的讀取周期,這樣就可避免直寫式系統(tǒng)造成的操作延時,但這個緩沖器只能存儲一次寫入的數(shù)據(jù),當連續(xù)兩次寫操作發(fā)生時,CPU仍需等待。

3-回寫式(Write Back)系統(tǒng)

前面兩種寫入方式系統(tǒng),都是在寫Cache的同時對主存儲器進行寫操作。實際上這不僅是對總線帶寬的占用,浪費了寶貴的執(zhí)行時間,而且在有些情況下是不必要的,可以通過增加額外的標準來判斷是否有必要更新數(shù)據(jù)?;貙懯较到y(tǒng)就是通過在Cache中的每一數(shù)據(jù)塊的標志字段中加入一更新位,解決主存儲器不必要的寫操作。

比如,若Cache中的數(shù)據(jù)曾被CPU更新過但還未更新主存儲器,則該更新位被置1。每次CPU將一塊新內(nèi)容寫入Cache時,首先檢查Cache中該數(shù)據(jù)塊的更新位,若更新位為0,則將數(shù)據(jù)直接寫入Cache;反之,若更新位為1,則先將Cache中的該項內(nèi)容寫入到主存儲器中相應(yīng)的位置,再將新數(shù)據(jù)寫回Cache中。

與直寫式系統(tǒng)相比,回寫式系統(tǒng)可省下一些不必要的立即回寫操作,而在許多情況下這是很頻繁出現(xiàn)的。即使一個Cache被更新,若未被新的數(shù)據(jù)所取代,則沒有必要立刻進行主存儲器的寫操作。也就是說,實際寫入主存儲器的次數(shù),可能少于CPU實際所執(zhí)行寫入周期的次數(shù),但回寫式系統(tǒng)的結(jié)構(gòu)較復(fù)雜,Cache也必須用額外的容量來存儲標志。由于回寫系統(tǒng)的高效率,現(xiàn)代的Cache大多采取這種方式進行操作。

1.4 關(guān)于Write-through和Write-back

1-對于磁盤操作來說

write-through的意思是寫操作根本不使用緩存,數(shù)據(jù)總是直接寫入磁盤,關(guān)閉寫緩存,可釋放緩存用于讀操作(緩存被讀寫操作共用)。

write-back的意思是數(shù)據(jù)不直接被寫入磁盤,而是先寫入緩存,再由控制器將緩存內(nèi)未寫入磁盤的數(shù)據(jù)寫入磁盤,從應(yīng)用程序的角度看,比等待完成磁盤寫入操作要快得多,因此可以提高寫性能。

但是write-back(write cache)方式通常在磁盤負荷較輕時速度更快。負荷重時,每當數(shù)據(jù)被寫入緩存后,就要馬上再寫入磁盤以釋放緩存來保存將要寫入的新數(shù)據(jù),這時如果數(shù)據(jù)直接寫入磁盤,控制器會以更快的速度運行。因此,負荷重時,將數(shù)據(jù)先寫入緩存反而會降低吞吐量。

2-對于CPU內(nèi)部的cache緩沖模式來說

Write-Through和Write-Back,前者是按順序來一個寫一個,而后者則是先將資料按一定數(shù)量保存在緩沖區(qū)中,然后將相同位置的數(shù)據(jù)一次性寫出。舉例說明:有一部電梯,如果按先入先出的原則,即write through模式,第一個人去3樓,第二個去2樓,第三個也去3樓,那么這電梯就得先到3樓,然后到2樓,再去3樓。

但如果在write back模式下,電梯先到2樓把第二個人送出去,然后再到3樓把第一個人和第三個人送出去,效率顯然高多了。早期的cache只有write through模式,但現(xiàn)在的cache都使用write back模式了。

3-其他的解釋

?Write-Through:在write的時候,同步更新cache和memory中的數(shù)據(jù)。

?Write-Back:在write的時候更新cache,但是memory中的數(shù)據(jù)不一定同步更新,只有當cache到一定程度才會把cache中的數(shù)據(jù)刷到memory中,或者通過cache指令刷新,不會同步自動刷新。

?cache line的意思是假設(shè)你那條指令只要從memory中讀4個字節(jié),但是一般來說你接下來的指令很有可能要讀這4個字節(jié)后面的數(shù)據(jù),所以一般硬件會多讀一些數(shù)據(jù)進入cache,比如64字節(jié),那么這64字節(jié)就是一個cache line。而如果你這個cache line里的數(shù)據(jù)長時間不被CPU訪問,那么這個cache line可能會被選中換出,這時候就必須把cache里被改過的信息寫回memory了。

1.5 Cache替換策略

Cache和存儲器一樣具有兩種基本操作,即讀操作和寫操作。當CPU發(fā)出讀操作命令時,根據(jù)它產(chǎn)生的主存地址分為兩種情形:一種是需要的數(shù)據(jù)已在Cache中,那么只需要直接訪問Cache,從對應(yīng)單元中讀取信息到數(shù)據(jù)總線即可;

另一種是需要的數(shù)據(jù)尚未裝入Cache,CPU需要從主存中讀取信息的同時,Cache替換部件把該地址所在的那塊存儲內(nèi)容從主存復(fù)制到Cache中。若Cache中相應(yīng)位置已被字塊占滿,就必須去掉舊的字塊。常見的替換策略有以下兩種:

1-先進先出策略(FIFO)

FIFO(First In First Out)策略總是把最先調(diào)入的Cache字塊替換出去,它不需要隨時記錄各個字塊的使用情況,較容易實現(xiàn)。缺點是經(jīng)常使用的塊,如一個包含循環(huán)程序的塊也可能由于它是最早的塊而被替換掉。

2-最近最少使用策略(LRU)

LRU(Least Recently Used)策略是把當前近期Cache中使用次數(shù)最少的信息塊替換出去,這種替換算法需要隨時記錄Cache中字塊的使用情況。LRU的平均命中率比FIFO高,在組相聯(lián)映像方式中,當分組容量加大時,LRU的命中率也會提高。

1.6 使用Cache的必要性

所謂Cache即高速緩沖存儲器,它位于CPU與主存即DRAM之間,是通常由SRAM構(gòu)成的規(guī)模較小但存取速度很快的存儲器。

目前計算機主要使用的內(nèi)存為DRAM,它具有價格低、容量大等特點,但由于使用電容存儲信息,存取速度難以提高,而CPU每執(zhí)行一條指令都要訪問一次或多次主存,DRAM的讀寫速度遠低于CPU速度,因此為了實現(xiàn)速度上的匹配,只能在CPU指令周期中插入wait狀態(tài),高速CPU處于等待狀態(tài)將大大降低系統(tǒng)的執(zhí)行效率。

由于SRAM采用了與CPU相同的制作工藝,因此與DRAM相比,它的存取速度快,但體積大、功耗大、價格高,不可能也不必要將所有的內(nèi)存都采用SRAM。

因此為了解決速度與成本的矛盾就產(chǎn)生了一種分級處理的方法,即在主存和CPU之間加裝一個容量相對較小的SRAM作為高速緩沖存儲器。

當采用Cache后,在Cache中保存著主存中部分內(nèi)容的副本(稱為存儲器映像),CPU在讀寫數(shù)據(jù)時,首先訪問Cache(由于Cache的速度與CPU相當,所以CPU可以在零等待狀態(tài)下完成指令的執(zhí)行),只有當Cache中無CPU所需的數(shù)據(jù)時(這稱之“未命中”,否則稱為“命中”),CPU才去訪問主存。

而目前大容量Cache能使CPU訪問Cache命中率高達90%~98%,從而大大提高了CPU訪問數(shù)據(jù)的速度,提高了系統(tǒng)的性能。

1.7 使用Cache的可行性

對大量的典型程序的運行情況分析結(jié)果表明,在一個較短的時間內(nèi),由程序產(chǎn)生的地址往往集中在存儲器邏輯地址空間的很小范圍內(nèi)。

在多數(shù)情況下,指令是順序執(zhí)行的,因此指令地址的分布就是連續(xù)的,再加上循環(huán)程序段和子程序段要重復(fù)執(zhí)行多次,因此對這些地址的訪問就自然具有時間上集中分布的趨向。

數(shù)據(jù)的這種集中傾向不如指令明顯,但對數(shù)組的訪問以及工作單元的選擇都可以使存儲器地址相對集中。這種對局部范圍的存儲器地址的頻繁訪問,而對此范圍以外的地址則訪問甚少的現(xiàn)象稱為程序訪問的局部性。

根據(jù)程序的局部性原理,在主存和CPU之間設(shè)置Cache,把正在執(zhí)行的指令地址附近的一部分指令或數(shù)據(jù)從主存裝入Cache中,供CPU在一段時間內(nèi)使用,是完全可行的。

審核編輯:湯梓紅

聲明:本文內(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

    文章

    19384

    瀏覽量

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

    關(guān)注

    38

    文章

    7519

    瀏覽量

    164083
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    10889

    瀏覽量

    212396
  • 計算機
    +關(guān)注

    關(guān)注

    19

    文章

    7525

    瀏覽量

    88318
  • Cache
    +關(guān)注

    關(guān)注

    0

    文章

    129

    瀏覽量

    28369

原文標題:參考資料

文章出處:【微信號:IP與SoC設(shè)計,微信公眾號:IP與SoC設(shè)計】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    cache 問題

    cache到 ?ddr里面的數(shù)據(jù)呢?還是數(shù)據(jù)自動cache到L1D里面呢?能不能詳細解釋一下cache工作原理!期待您的答復(fù)!謝謝!
    發(fā)表于 06-21 15:10

    Cache工作原理

    Cache工作原理:Cache工作原理是基于程序訪問的局部性。對大量典型程序運行情況的分析結(jié)果表明,在一個較短的時間間隔內(nèi),由程序產(chǎn)生的地址往往集中在存儲器邏輯地址空
    發(fā)表于 09-19 07:48 ?13次下載

    什么是Cache

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

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

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

    Cache的基本概念與工作原理

    那么什么是 cache?如何利用這一新特性編寫高性能的程序?又有什么要注意的地方嗎?
    的頭像 發(fā)表于 05-07 15:24 ?8831次閱讀
    <b class='flag-5'>Cache</b>的基本概念與<b class='flag-5'>工作原理</b>

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

    更詳細的講,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.2w次閱讀
    <b class='flag-5'>cache</b>結(jié)構(gòu)與<b class='flag-5'>工作原理</b>

    Buffer和Cache的定義

    但是讓我問你,由于 Buffer 只是將寫入磁盤的數(shù)據(jù)的緩存。反過來,它還會緩存從磁盤讀取的數(shù)據(jù)嗎?或者 Cache 是從文件中讀取數(shù)據(jù)的緩存,那么它是否也為寫入文件緩存數(shù)據(jù)呢?
    的頭像 發(fā)表于 05-13 09:53 ?2129次閱讀

    什么是 Cache? Cache讀寫原理

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

    深入理解Cache工作原理

    按照數(shù)據(jù)關(guān)系劃分:Inclusive/exclusive Cache: 下級Cache包含上級的數(shù)據(jù)叫inclusive Cache。不包含叫exclusive Cache。舉個例子,
    的頭像 發(fā)表于 05-30 16:02 ?826次閱讀
    深入理解<b class='flag-5'>Cache</b><b class='flag-5'>工作原理</b>

    深入理解CACHE VIPT與PIPT的工作原理

    在kernel啟動過程中,雖然這里第一次出現(xiàn)CACHE相關(guān)的打印信息,但是,此處并不是kernel第一次操作CACHE
    的頭像 發(fā)表于 06-05 14:56 ?2156次閱讀
    深入理解<b class='flag-5'>CACHE</b> VIPT與PIPT的<b class='flag-5'>工作原理</b>

    Cache的原理和地址映射

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

    Cache分類與替換算法

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

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

    “鎖定”在cache中的塊在常規(guī)的cache替換操作中不會被替換,但當通過C7控制cache中特定的塊時,比如使某特定的塊無效時,這些被“鎖定”在cache中的塊也將受到相應(yīng)的影響。
    的頭像 發(fā)表于 10-31 11:31 ?777次閱讀

    Cache工作原理是什么

    Cache中時,則需切換存取主儲器,由于速度較慢,需要插入等待,這種情況稱高速未命中; 在CPU存取主存儲器的時候,按照最優(yōu)化原則將存儲信息同時寫入Cache中以保證下次可能的高速緩存命中。 因此,同一數(shù)據(jù)可能同時存儲在主存儲
    的頭像 發(fā)表于 10-31 11:34 ?1048次閱讀
    <b class='flag-5'>Cache</b><b class='flag-5'>工作原理</b>是什么

    Cache寫入方式原理簡介

    的一致性,避免CPU在讀寫過程中將Cache中的新數(shù)據(jù)遺失,造成錯誤地讀數(shù)據(jù),確保Cache中更新過程的數(shù)據(jù)不會因覆蓋而消失,必須將Cache中的數(shù)據(jù)更新及時準確地反映到主存儲器中,這是一個C
    的頭像 發(fā)表于 10-31 11:43 ?1322次閱讀