色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

Cache的基本概念與工作原理

RTThread物聯網操作系統 ? 來源:fqj ? 2019-05-07 15:24 ? 次閱讀

1.背景知識

隨著 CPU 技術的飛速發展,常用的處理器飛奔在越來越高的頻率之上,雖然處理器的速度越來越快,但是與之相匹配的存儲器的速度卻沒有獲得相應的提升,這大大限制了 CPU 的處理性能。而我們本系列文檔所介紹的主角 Cache 技術就是用來解決這個難題的。

ARM 發布 Cortex-M7 架構之后,微控制器領域也出現了頻率高達數百兆的芯片,如 ST 的 STM32F7 系列和 NXP 的 i.MX RT 系列芯片,這些芯片內的處理器都自帶 cache,在合理配置下可以表現出十分強悍的數據處理性能。那么什么是 cache?如何利用這一新特性編寫高性能的程序?又有什么要注意的地方嗎?你可能會有上述這些疑問,別擔心,本系列文章將會為你一一解答。

本系列文章分為三篇,第一篇為 《cache 的基本概念與工作原理》,講解 cache 相關的基礎知識。第二篇為《STM32F7 Cache 介紹與實戰》,講解如何在 STM32F7 系列芯片上使用 cache,并編寫程序進行性能測試。第三篇為《Cache 的一致性問題與使用技巧》,將會介紹 cache 的數據一致性問題和使用 cache 過程中的一些技巧。下面我們從 cache 的基礎知識開始,了解這一強大的特性吧。

2. 計算機的層次結構存儲系統

想要理解 cache 的工作原理,就必須要了解計算機系統中數據的存儲方式。

在計算機中程序執行時所有的指令和數據都是從存儲器中取出來執行的。存儲器是計算機系統中的重要組成部分,相當于計算機的倉庫,用來存放各類程序及其處理的數據。因此存儲器的容量和性能應當隨著處理器的速度和性能的提高而通過提高,以保持系統性能的平衡。

然而在過去的 20 多年中,隨著時間的推移,處理器和存儲器在性能發展上的差異越來越大,存儲器在容量尤其是訪問延時方面的性能增長越來越跟不上處理器性能發展的需要。為了縮小存儲器和處理器兩者之間在性能方面的差距,通常在計算機內部采用層次化的存儲器體系結構。

Cache的基本概念與工作原理

從上圖可以看到,速度越快則容量越小、越靠近 CPU。CPU 可以直接訪問內部存儲器。而外部存儲器的信息則要先取到主存,然后才能被 CPU 訪問。CPU 執行指令時,需要的操作數大部分來自寄存器,當需要對存儲器進行讀寫操作時,先訪問 cache ,如果不在 cache 中,則訪問主存,如果不在主存中,則訪問硬盤。此時,操作數從硬盤中讀出送到主存,然后從主存送到 cache。

數據使用時,一般只在相鄰兩層之間復制傳送,而且總是從慢速存儲器復制到快速存儲器。傳送的單位是一個定長塊,因此需要確定定長塊的大小,并且在相鄰兩層間建立塊之間的映射關系。

在我們接觸的嵌入式系統中,具體的存取時間和存儲容量的大小可能和上圖不符,但是不同層級之間的量級對比還是一致的。

3. 為什么需要 Cache?

由于 CPU 和主存所使用的半導體器件工藝不同,兩者速度上的差異導致快速的 CPU 等待慢速的存儲器,為此需要想辦法提高 CPU 訪問主存的速度。除了提高 DRAM 芯片本身的速度和采用并行結構技術以外,加快 CPU 訪存速度的主要方式之一是在 CPU 和主存之間增加高速緩沖器,也就是我們主角 Cache。

Cache的基本概念與工作原理

Cache 位于 CPU 和內存之間,可以節省 CPU 從外部存儲器讀取指令和數據的時間。

4. 基本概念

程序訪問的局部性

對大量典型程序運行情況分析的結果表明,在較短的時間間隔內,程序產生的地址往往集中在存儲空間的一個很小范圍,這種現象稱為程序訪問的局部性。這種局部性可細分為時間局部性和空間局部性。時間局部性是指被訪問的某個存儲單元在一個較短的時間間隔很可能又被訪問。空間的局部性是指訪問的某個存儲單元的臨近單元在一個較短的時間間隔內很可能也被訪問。

Instruction Cache

指令 cache 只被用于緩存指令,從外部存儲器讀取指令需要很長時間,如果外部存儲器是 flash,那么 CPU 可能需要 50-100ns 才能獲得指令。

Data Cache

數據 cache 只被用于緩存數據,和指令 cache 類似,CPU 要花費很長時間才能從外部的 SRAM 或者 SDRAM 取回數據。

5. 工作原理

cache 是一種小容量高速緩沖存儲器,由快速的 SRAM 組成,直接制作在 CPU 芯片內,速度較快,幾乎與 CPU 處于同一個量級。在 CPU 和主存之間設置 cache,總是把主存中被頻繁訪問的活躍程序塊和數據塊復制到 cache 中。由于程序訪問的局部性,大多數情況下,CPU 可以直接從 cache 中直接取得指令和數據,而不必訪問慢速的主存。

為了方便 cache 和主存間交換信息,cache 和主存空間都被劃分為相等的區域。例如將主存中一個 512 個字節的區域稱作一個塊(block),cache 中存放一個主存塊的區域稱作行(line)。

cache 的行有效位

系統啟動時,每個 cache 行都為空,其中的信息無效,只有 cache 行中裝入了主存塊之后才有效。為了說明 cache 行中的信息是否有效,某一個行都有一個有效位。通過將一行的有效位清零來淘汰這一行中所存儲的主存快的操作稱為沖刷,也就是我們常說的刷 cache。

CPU 在 cache 中的訪問過程

在 CPU 執行程序過程中,需要從主存取指令或寫數據時,先檢查 cache 中有沒有要訪問的信息,若有,就直接在 cache 中讀寫,而不用訪問主存儲器。若沒有,再從主存中把當前訪問信息所在的一個一個主存塊復制到 cache 中。因此,cache 中的內容是主存中部分內容的副本。下圖展示了帶 cache 的 CPU 執行一次訪存操作的過程。

Cache的基本概念與工作原理

cache 與主存的平均訪問時間

如上圖所示的訪存過程中,需要判斷所訪問的信息是否在 cache 中。若 CPU 訪問單元的主存塊在 cache 中,則稱cache 命中(hit),命中的概率稱為命中率 p(hit rate)。若不在 cache 中,則為不命中(miss),其概率為缺失率(miss rate)。命中時,CPU 在 cache 中直接存取信息,所用的時間開銷就是cache 的訪問時間 Tc,稱為命中時間。缺失時,需要從主存讀取一個主存塊送 cache,并同時將所需信息送 CPU,因此所用時間為主存訪問時間 Tm,和cache 訪問時間 Tc之和。通常把從主存讀入一個主存塊到 cache 的時間Tm 稱為缺頁損失。

CPU 在 cache 和主存層次的平均訪問時間為:

Ta = p * Tc + (1 - p) * (Tm + Tc) = Tc + (1 - p) * Tm

由于程序訪問的局部性特點,cache 的命中率可以達到很高,接近于 1。因此,雖然缺頁損失所耗費的時間遠遠大于命中時間,但最終的平均訪問時間仍可接近 cache 的訪問時間。

cache 的映射方式

cache 行中的信息取自主存中的某個塊。將主存塊復制到 cache 行時,主存塊和 cache 行之間必須遵循一定的映射規則。這樣 CPU 在要訪問某個主存單元時,可以依據映射規則到 cache 對應的行中查找要訪問的信息,而不用在整個 cache 中查找。

根據不同的映射規則,主存塊和 cache 行之間有以下三種映射方式。

目前我們常見的 CPU 一般都采用的組相連的映射方式,組相連的映射方式將前兩種映射方式取長補短,獲得了優異的性能和較低的硬件實現難度。在這里不再展開仔細描述,感興趣的小伙伴可以通過搜索閱讀相關內容來了解其中的細節。

直接映射(direct):每個主存塊映射到 cache 的固定行中。

全相連映射(full associate):每個主存塊映射到 cache 的任意行中。

組相連映射(set associate):每個主存塊映射到 cache 的固定組的任意行中。

值得注意的是,cache 對程序員在編寫高級或低級語言程序時是透明的,因此程序員無需了解 cache 是否存在或者如何設置,感覺不到 cache 的存在。但是對 cahche 的深入了解有助于編寫出高效的程序!

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

    關注

    68

    文章

    10855

    瀏覽量

    211594
  • Cache
    +關注

    關注

    0

    文章

    129

    瀏覽量

    28332

原文標題:Cache 的基本概念與工作原理

文章出處:【微信號:RTThread,微信公眾號:RTThread物聯網操作系統】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    電壓比較器工作原理

    本文主要介紹電壓比較器基本概念工作原理及典型工作電路,并介紹一些常用的電壓比較器。
    發表于 08-21 18:56

    關于cachecache_line的一個概念問題

    幫忙給解答一下一個基本概念,cpu在訪問數據時,如果數據不在L1D和L2中,就需要從DDR等外設中取數,文獻中說過,“cache會prefetch讀取cache_line長度的地址,保證連續的地址上
    發表于 06-21 17:31

    操作系統原理基本概念

    操作系統原理基本概念計算機硬件系統組成中央處理器中央處理器是計算機的運算核心(Core)和控制單元( Control Unit) ,主要包括:運算邏輯部件: 一個或多個運算器寄存器部件: 包括通用
    發表于 07-26 07:46

    介紹SRv6獨有的工作原理和相關概念

    1、SRv6基本概念由于SR MPLS已經普及,相信大家已經對Segment Routing的基本概念有足夠的了解。這里重點介紹SRv6獨有的工作原理和相關概念。1.1 SRv6 Se
    發表于 07-28 09:07

    變頻器&逆變器工作原理基本概念

    變頻器&逆變器工作原理基本概念直流產生方波正弦波產生原理正弦波產生之制作脈沖正弦波產生之濾波&平均基本概念逆變器:直流電(DC)轉變為交流電(AC)變頻器:目的是得到特定頻率的交流電
    發表于 11-15 08:25

    Cache工作原理

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

    工業機器人傳感器的測量基本概念工作原理與傳感器應用的資料說明

    本文檔的主要內容詳細介紹的是工業機器人傳感器的測量基本概念工作原理與傳感器應用的資料說明包括了:測量的基本概念,傳感器工作原理,傳感器應用。
    發表于 06-12 08:00 ?12次下載
    工業機器人傳感器的測量<b class='flag-5'>基本概念</b>和<b class='flag-5'>工作原理</b>與傳感器應用的資料說明

    CAN總線的基本概念工作原理、特點以及應用領域

    CAN總線技術是一種廣泛應用于汽車、工業自動化等領域的串行通信協議。它是由德國公司BOSCH開發的,全稱為Controller Area Network(控制器局域網)。本文將對CAN總線的基本概念工作原理、特點以及應用領域進行簡要介紹。
    發表于 09-12 17:04 ?1w次閱讀

    GPIO的基本概念工作原理及關鍵技術

    等的數據采集和控制。本文將介紹GPIO的基本概念工作原理以及一些關鍵技術,幫助讀者更好地理解GPIO的性能和應用。
    的頭像 發表于 09-26 17:21 ?1w次閱讀

    SPI接口的基本概念工作原理

    串行外設接口(Serial Peripheral Interface,SPI)是一種同步串行通信協議,用于在微控制器和其外設之間進行雙向數據傳輸。SPI接口廣泛應用于各種嵌入式系統,如傳感器、顯示器、音頻設備等。本文將介紹SPI接口的基本概念工作原理以及在實際應用中的一
    發表于 09-26 18:23 ?4345次閱讀

    耗盡型MOSFET的基本概念、特點及工作原理

    型MOSFET作為MOSFET的一種重要類型,在電子設計和工程領域中有著其獨特的地位。本文將對耗盡型MOSFET的基本概念、特點以及工作原理進行詳細的探討。
    的頭像 發表于 05-12 17:19 ?2150次閱讀

    斬波器的基本概念工作原理

    各種電子設備對電源的需求。本文將詳細介紹斬波器的基本概念工作原理及其應用,以期為讀者提供全面的了解和認識。
    的頭像 發表于 05-24 16:08 ?3053次閱讀

    RTC實時時鐘的基本概念工作原理

    精確的實時時間,并為電子系統提供精確的時間基準。本文將詳細闡述RTC實時時鐘的基本概念工作原理以及其在現代電子設備中的應用。
    的頭像 發表于 05-27 15:43 ?3646次閱讀

    卷積神經網絡的基本概念工作原理

    工作原理,在處理圖像數據時展現出了卓越的性能。本文將從卷積神經網絡的基本概念、結構組成、工作原理以及實際應用等多個方面進行深入解讀。
    的頭像 發表于 07-02 18:17 ?3655次閱讀

    光電三極管的基本概念工作原理

    光電三極管,又稱為光敏三極管或光控三極管,是一種重要的光電轉換器件,能夠將光信號轉化為電流或電壓信號。這種器件在光電通信、光電測量、光電控制等領域有著廣泛的應用。下面,我們將詳細探討光電三極管的基本概念工作原理以及其在不同領域的應用。
    的頭像 發表于 09-24 11:08 ?1522次閱讀
    主站蜘蛛池模板: 黑人巨茎vide抽搐| 一色屋精品亚洲香蕉网站| 蜜芽在线影片| 久久99热在线观看7| 国产午夜精品理论片在线| 国产高清免费观看| 国产成人精品亚洲线观看| 变态露出野外调教| 爱情岛论坛网亚洲品质| JIZZ幻女大全| seba51久久精品| 被滋润的艳妇疯狂呻吟白洁老七| 99久久99久久久99精品齐| 99精品日韩| ewp系列虐杀在线视频| jizzzz亚洲丰满xxxx| 超碰免费视频caoporn| 俺也去最新地址| 把她带到密室调教性奴| 超碰97 总站 中文字幕| 超碰在线观看| 国产不卡无码高清视频| 国产成人综合高清在线观看| 国产精品1区在线播放| 国产人妻精品久久久久久很牛 | 欧美高清69hd| 青草久久影院| 涩涩电影网| 亚洲成人mv| 亚洲人成网站在线观看90影院| 伊人色啪啪天天综合婷婷| 中文字幕天堂久久精品| YELLOW视频直播在线观看| 第七色男人天堂| 国内精品久久久久影院亚洲| 久久vs国产综合色| 男人把女人桶到高潮嗷嗷叫| 日本特殊精油按摩| 亚洲成A人片在线观看中文不卡| 中文字幕不卡免费高清视频| 99热在线观看精品|