<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          CPU緩存L1/L2/L3工作原理

          共 2401字,需瀏覽 5分鐘

           ·

          2020-11-27 00:16

          點擊上方藍色“程序猿DD”,選擇“設為星標”

          回復“資源”獲取獨家整理的學習資料!

          作者 |?小麥大叔

          來源 |?公眾號「朱小廝的博客」

          一、前言

          在過去的幾年中,計算機處理器取得了相當大的進步,晶體管的尺寸每年都在變小,而且這種進步達到了摩爾定律迅速變得多余的地步。

          當涉及到處理器時,不僅晶體管和頻率很重要,高速緩存也很重要。

          在討論CPU(Central Processing Units)時,您可能聽說過高速緩存。但是,我們并沒有過多地關注這些數(shù)字,它們也不是這些CPU廣告的主要亮點。

          那么,CPU緩存到底有多重要,它又是如何工作的?

          二、什么是CPU緩存?

          首先,緩存只是一種非常快速的內存類型。您可能知道,計算機內部有多種內存類型。有一個主存儲(如硬盤或SSD),用于存儲大量數(shù)據(jù)(操作系統(tǒng)和所有程序)。

          接下來,我們有隨機存取存儲器,通常稱為RAM。這比主存儲要快得多。

          最后,CPU自身具有更快的存儲單元,我們稱之為緩存。

          計算機的內存具有基于速度的層次結構,而緩存位于該層次結構的頂部,是最快的。它也是最靠近中央處理的地方,它是CPU本身的一部分。

          高速緩存是靜態(tài)RAM(SRAM),而系統(tǒng)RAM是動態(tài)RAM(DRAM)。靜態(tài)RAM是一種可以保存數(shù)據(jù)但是不要用一直刷新的存儲器,與DRAM不同,SRAM更加適合用于高速緩存。

          三、CPU緩存如何工作?

          我們已經(jīng)知道,程序被設計為一組指令,最終由CPU運行。

          當我們運行程序的時候,這些指令必須從主存儲器取指令到CPU。這是內存層次結構起作用的地方。

          數(shù)據(jù)首先被加載到RAM中,然后被發(fā)送到CPU。因為CPU每秒都能夠執(zhí)行大量指令。為了充分利用其功能,CPU需要訪問超高速內存,這是緩存的來源。

          內存控制器執(zhí)行從RAM中獲取數(shù)據(jù)并將其發(fā)送到緩存的工作。根據(jù)系統(tǒng)中使用的CPU,此控制器可以位于主板的北橋芯片組上,也可以位于CPU本身內部。

          然后,高速緩存在CPU內執(zhí)行數(shù)據(jù)的來回傳輸。內存的層次結構也存在于緩存中。

          四、緩存級別:L1,L2和L3

          CPU緩存分為三個主要的級別,即L1,L2和L3。這里的層次結構是根據(jù)緩存速度來劃分的。

          L1(1級)高速緩存是計算機系統(tǒng)中存在的最快的內存。就訪問優(yōu)先級而言,L1緩存具有CPU在完成特定任務時最可能需要的數(shù)據(jù)。

          就其大小而言,L1高速緩存通常最多可達256KB。但是,一些真正功能強大的CPU現(xiàn)在將其占用近1MB。現(xiàn)在,某些服務器芯片組(如Intel的高端Xeon CPU)具有1-2MB的一級緩存。

          L1緩存通常也分為兩種方式,分為指令緩存和數(shù)據(jù)緩存。指令高速緩存處理有關CPU必須執(zhí)行的操作的信息,而數(shù)據(jù)高速緩存則保留要在其上執(zhí)行操作的數(shù)據(jù)。

          L2(2級)緩存比L1緩存慢,但大小更大。它的大小通常在256KB到8MB之間,盡管更新,功能強大的CPU往往會超過此大小。L2高速緩存保存下一步可能由CPU訪問的數(shù)據(jù)。在大多數(shù)現(xiàn)代CPU中,L1和L2高速緩存位于CPU內核本身,每個內核都有自己的高速緩存。

          L3(3級)高速緩存是最大的高速緩存存儲單元,也是最慢的一個。它的范圍從4MB到50MB以上?,F(xiàn)代CPU在CPU裸片上具有用于L3高速緩存的專用空間,并且占用了很大一部分空間。

          五、緩存命中或未命中以及延遲

          數(shù)據(jù)會從RAM依次流到L3高速緩存,然后是L2,最后是L1。

          當處理器正在尋找要執(zhí)行操作的數(shù)據(jù)時,它首先嘗試在L1高速緩存中找到它。如果CPU能夠找到它,則該情況稱為高速緩存命中。然后,它繼續(xù)在L2和L3中找到它。

          如果找不到數(shù)據(jù),它將嘗試從主內存訪問數(shù)據(jù)。這稱為高速緩存未命中。

          現(xiàn)在,眾所周知,高速緩存旨在加快主內存和CPU之間的數(shù)據(jù)傳輸。

          從內存訪問數(shù)據(jù)所需的時間稱為延遲,L1具有最低的延遲,是最快的,并且最接近核心,而L3具有最高的延遲。緩存未命中時,延遲會增加很多。這是因為CPU必須從主存儲器中獲取數(shù)據(jù)。

          隨著計算機變得越來越快和越來越好,我們看到延遲減少了?,F(xiàn)在,我們擁有低延遲的DDR4 RAM,以及具有低訪問時間的超高速SSD作為主要存儲,這兩項都大大降低了整體延遲。

          以前,緩存設計曾經(jīng)使L2和L3緩存位于CPU外部,這對延遲產(chǎn)生了負面影響。

          然而,CPU制造工藝的進步使得在比以前更小的空間中安裝數(shù)十億個晶體管。因此,為緩存留出了更多空間,這使緩存盡可能地靠近核心,從而大大減少了延遲。

          六、緩存的未來

          緩存設計一直在發(fā)展,尤其是隨著內存變得更便宜,更快和更密集。英特爾和AMD在緩存設計方面進行了相當多的試驗,英特爾甚至還在試驗L4緩存。CPU市場正在以前所未有的速度向前發(fā)展。

          這樣,我們必定會看到緩存設計跟上CPU不斷增長的能力。

          緩存設計方面進行了相當多的試驗,英特爾甚至還在試驗L4緩存。CPU市場正在以前所未有的速度向前發(fā)展。

          這樣,我們必定會看到緩存設計跟上CPU不斷增長的能力。

          此外,還有很多工作可以減少現(xiàn)代計算機的瓶頸。減少內存延遲可能是其中最大的一部分。業(yè)界正在為相同的解決方案而努力,并且未來看起來確實充滿希望。

          DD自研的滬牌代拍業(yè)務,點擊直達




          【往期推薦】


          其他職業(yè)越老越值錢,程序員越老越貶值?

          2020-11-24

          小游戲2048最佳算法怎么實現(xiàn)?思路全解析!

          2020-11-23

          收入最高的 24 個開發(fā)人員職位

          2020-11-22

          索賠 100 萬!只是因為一個開源插件?

          2020-11-21

          讀完《Effective Java》后,總結了 50 條開發(fā)技巧

          2020-11-20




          掃一掃,關注我

          一起學習,一起進步

          每周贈書,福利不斷

          深度內容

          推薦加入



          瀏覽 50
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  亚洲黄色视频大全 | 婷婷大香蕉 | 欧美精品 - 91爱爱 | 国产A片免费观看 | 久久高清成人电影 |