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

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

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

Cache工作原理是什么

麥辣雞腿堡 ? 來(lái)源:TrustZone ? 作者:TrustZone ? 2023-10-31 11:34 ? 次閱讀

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

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

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

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

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

?CPU首先在L1 Cache中查找數(shù)據(jù),如找不到,則在L2Cache中尋找。

?若數(shù)據(jù)在L2 Cache中,控制器在傳輸數(shù)據(jù)的同時(shí),修改L1Cache;

?若數(shù)據(jù)既不在L1 Cache中,又不在L2 Cache中,Cache控制器則從主存中獲取數(shù)據(jù),將數(shù)據(jù)提供給CPU的同時(shí)修改兩級(jí)Cache。

?K6-Ⅲ則比較特殊,64KB L1 Cache,256KB Full Core Speed L2 Cache,原先主板上的緩存實(shí)際上就成了L3 Cache。

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

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

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

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

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

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

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

圖片

?存儲(chǔ)體由若跟個(gè)存儲(chǔ)單元組成,存儲(chǔ)單元由多個(gè)存儲(chǔ)元件組成

?存儲(chǔ)體----存儲(chǔ)單元(存儲(chǔ)一串二進(jìn)制串)----存儲(chǔ)元件(存儲(chǔ)一個(gè)0/1)

?存儲(chǔ)單元:存放一串二進(jìn)制代碼。

?存儲(chǔ)字:存儲(chǔ)單元中的二進(jìn)制代碼

?存儲(chǔ)字長(zhǎng):存儲(chǔ)單元中二進(jìn)制代碼位數(shù)。

?存儲(chǔ)單元按照地址進(jìn)行尋址

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

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

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

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

之前記得當(dāng)時(shí)面試的時(shí)候讓我用golang手寫(xiě)緩存管理算法,哈哈哈。

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

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

    關(guān)注

    38

    文章

    7492

    瀏覽量

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

    關(guān)注

    68

    文章

    10863

    瀏覽量

    211800
  • 計(jì)算機(jī)
    +關(guān)注

    關(guān)注

    19

    文章

    7494

    瀏覽量

    87981
  • Cache
    +關(guān)注

    關(guān)注

    0

    文章

    129

    瀏覽量

    28346
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    感光太陽(yáng)能燈工作原理。#工作原理大揭秘

    太陽(yáng)工作原理DIY
    jf_24750660
    發(fā)布于 :2022年11月07日 22:26:04

    cache 問(wèn)題

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

    機(jī)械硬盤(pán)的工作原理是什么

    機(jī)械硬盤(pán)的工作原理是什么,硬盤(pán)的外部物理結(jié)構(gòu)一般硬盤(pán)正面貼有產(chǎn)品標(biāo)簽,主要包括廠家信息和產(chǎn)品信息,如商標(biāo)、型號(hào)、序列號(hào)、生產(chǎn)日期、容量、參數(shù)和主從設(shè)置方法等。這些信息是正確使用硬盤(pán)的基本依據(jù),下面將
    發(fā)表于 07-12 08:26

    高速緩存(cache)的工作原理是什么?高速緩存可分為哪幾類

    存儲(chǔ)器系統(tǒng)的層次架構(gòu)是如何構(gòu)成的?高速緩存(cache)的工作原理是什么?高速緩存可分為哪幾類?
    發(fā)表于 12-23 06:18

    Cache工作原理

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

    什么是Cache

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

    高速緩沖存儲(chǔ)器Cache的原理、設(shè)計(jì)及實(shí)現(xiàn)

    。  本文簡(jiǎn)介了Cache的概念、原理、結(jié)構(gòu)設(shè)計(jì)以及在PC及CPU中的實(shí)現(xiàn)。   Cache工作原理   Cache工作原理是基于程序訪
    發(fā)表于 04-02 14:38 ?2419次閱讀

    Cache的基本概念與工作原理

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

    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ā)出的尋址信息都是針對(duì)
    發(fā)表于 06-03 14:24 ?1.2w次閱讀
    <b class='flag-5'>cache</b>結(jié)構(gòu)與<b class='flag-5'>工作原理</b>

    什么是 Cache? Cache讀寫(xiě)原理

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

    深入理解Cache工作原理

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

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

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

    Cache工作原理講解 Cache寫(xiě)入方式原理簡(jiǎn)介

    Cache是位于CPU與主存儲(chǔ)器即DRAM(Dynamic RAM,動(dòng)態(tài)存儲(chǔ)器)之間的少量超高速靜態(tài)存儲(chǔ)器SRAM(Static RAM),它是為了解決CPU與主存之間速度匹配問(wèn)題而設(shè)置的,不能由用戶直接尋址訪問(wèn)。
    的頭像 發(fā)表于 10-17 10:37 ?934次閱讀
    <b class='flag-5'>Cache</b><b class='flag-5'>工作原理</b>講解 <b class='flag-5'>Cache</b>寫(xiě)入方式原理簡(jiǎn)介

    Cache分類與替換算法

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

    高速緩沖存儲(chǔ)器的基本組成和工作原理

    高速緩沖存儲(chǔ)器(Cache)的工作原理,是基于計(jì)算機(jī)程序和數(shù)據(jù)訪問(wèn)的局部性原理,即程序在執(zhí)行過(guò)程中,對(duì)數(shù)據(jù)的訪問(wèn)往往呈現(xiàn)出時(shí)間和空間的局部性。具體來(lái)說(shuō),就是程序在某一時(shí)間段內(nèi),會(huì)集中訪問(wèn)某一小塊內(nèi)存
    的頭像 發(fā)表于 09-10 14:14 ?581次閱讀