首页
/
每日頭條
/
圖文
/
緩存如何選擇
緩存如何選擇
更新时间:2024-10-13 21:19:02

緩存如何選擇(一文看懂緩存)1

來源:内容由半導體行業觀察(ID:icbank)編譯自「techspot」,作者:尼克·埃文森(Nick Evanson),謝謝。

從廉價筆記本電腦到價值一百萬美元的服務器,任何一台計算機中CPU都有一個叫做“緩存”的東西。當然緩存的級别往往有所不同。

緩存很重要,不然也不會無處不在。但是緩存到底有什麼作用,為什麼是不同級别的呢?

而且12路路組相連到底意味着什麼?

緩存如何選擇(一文看懂緩存)2

緩存到底是什麼?

TL和DR很小,但卻非常快并位于CPU的邏輯單元旁邊。當然,我們需要了解更多有關緩存的信息。

讓我們從一個虛構的,神奇的存儲系統開始說起。這個存儲系統速度極快,可以一次處理無限的數據,并始終保持數據安全。對它來說甚至不存在任何需要遠程操作的東西,但是如果的确存在,處理器的設計将更加簡單。CPU僅需要具有用于加法,乘法等的邏輯單元,以及用于處理數據傳輸的系統。這是因為我們的理論存儲系統可以立即發送和接收所需的所有編号;沒有一個邏輯單元會等待數據處理。

但是,衆所周知,實際上不存在任何上述魔術般的存儲技術。反之,我們擁有硬盤驅動器或固态驅動器,即使其中最好的驅動器也無法遠程處理典型CPU所需的所有數據傳輸。原因在于,現代CPU的運行速度非常快-它們僅需一個時鐘周期即可将兩個64位整數值相加,而對于以4 GHz運行的CPU,則僅為0.00000000025秒或四分之一納秒。同時,旋轉硬盤驅動器僅需數千納秒即可在内部磁盤上查找數據,更不用說傳輸數據了,而固态驅動器仍需數十或數百納秒。

顯然,此類驅動器無法内置在處理器中,因此這意味着兩者之間将存在物理隔離。這隻會增加數據移動的時間,使情況變得更糟。因此,我們需要的是另一個數據存儲系統,它位于處理器和主存儲之間。它需要比驅動器更快的速度,能夠同時處理大量數據傳輸,并且離處理器更近一些。

緩存如何選擇(一文看懂緩存)3

如今它已成為現實,叫做RAM。每個計算機系統都有一些用于上述目的的裝置。而幾乎所有這類存儲都是DRAM(動态随機存取存儲器),它能夠比任何驅動器更快地傳輸數據。但是,盡管DRAM速度極快,但它無法存儲盡可能多的數據。

美光公司是DRAM的少數制造商之一,其中一些最大的DDR4存儲器芯片可容納32 Gbit或4 GB數據。最大的硬盤驅動器的容量是此容量的4000倍。因此,盡管我們提高了數據網絡的速度,但仍需要附加系統(硬件和軟件),以便确定應将哪些數據保留在有限數量的DRAM中,以備CPU使用。或者至少可以将DRAM置于芯片封裝中(稱為嵌入式DRAM)。不過,CPU很小,所以您不能在其中塞太多。

絕大多數DRAM位于處理器旁邊(插入主闆)。在計算機系統中,它始終是最接近CPU的組件。然而,這還是不夠快。DRAM仍需要約100納秒的時間才能找到數據,但至少每秒可以傳輸數十億比特。看來我們需要另一級存儲器,才能進入處理器單元和DRAM之間。

緩存如何選擇(一文看懂緩存)4

左級輸入:SRAM(靜态随機存取存儲器)。在DRAM使用微觀電容器以電荷形式存儲數據的情況下,SRAM使用晶體管做同樣的事情,并且它們的工作速度幾乎與處理器中的邏輯單元一樣快(大約比DRAM快10倍)。

當然,SRAM有一個缺點,那就是空間。

基于晶體管的内存比DRAM占用更多的空間:對于相同大小的4 GB DDR4芯片,您将獲得不到100 MB的SRAM。但是,由于它是通過與創建CPU相同的過程制成的,因此SRAM可以直接在處理器内部構建,并盡可能靠近邏輯單元。每增加一個環節,我們就增加了數據移動的速度,從而增加了存儲量。我們可以繼續添加更多的環節,每個環節更快但簡潔。

因此,我們對高速緩存下了一個更為專業的定義:它是全部位于處理器内部的多個SRAM塊,通過以超快的速度發送和存儲數據來确保邏輯單元保持盡可能繁忙。

對這個定義滿意嗎?很好-因為從現在開始它将變得更加複雜!

高速緩存:多層停車場

如上所述,需要緩存是因為沒有一種神奇的存儲系統可以滿足處理器中邏輯單元的數據需求。現代的CPU和圖形處理器包含許多SRAM塊,這些SRAM塊在内部組織成一個層次結構,即一系列高速緩存,其順序如下:

緩存如何選擇(一文看懂緩存)5

在上圖中,CPU由黑色虛線矩形表示。ALU(算術邏輯單元)在最左邊;這些是為處理器提供動力,處理芯片運算能力的結構。從專業角度來講,它不是緩存,而最接近ALU的内存級别是寄存器(它們組合在一起成為一個寄存器文件)。

其中的每一個都擁有一個數字,例如64位整數。該值本身可能是有關某物的一條數據,一條特定指令的代碼或某些其他數據的内存地址。

台式機CPU中的寄存器文件非常小-例如,在Intel的Core i9-9900K中,每個内核中有兩個存儲區,而一個整數存儲區僅包含180個64位寄存器。另一個寄存器文件,用于向量(數字的小數組),具有168個256位條目。因此,每個内核的總寄存器文件略低于7 kB。相比之下,Nvidia GeForce RTX 2080 Ti的流式多處理器(GPU等效于CPU内核)中的寄存器文件大小為256 kB。

寄存器是SRAM,就像高速緩存一樣,但是它們和它們所服務的ALU一樣快,可以在一個時鐘周期内輸入和輸出數據。但是它們的設計并不是要容納太多數據(僅存儲其中的一部分),這就是為什麼附近總是存在一些更大的内存塊的原因:這是1級緩存。

緩存如何選擇(一文看懂緩存)6

上圖是英特爾Skylake台式機處理器設計的單核的放大照片。

可以在最左側看到ALU和寄存器文件(以綠色突出顯示)。圖片的頂部中間是白色的1級數據緩存。它容納的信息并不多,僅為32 kB,但是與寄存器一樣,它非常靠近邏輯單元,并以與它們相同的速度運行。

另一個白色矩形表示1級指令高速緩存,大小也為32 kB。顧名思義,該命令存儲了各種命令,這些命令可以分解成較小的所謂的微操作(通常标記為μop),以供ALU執行。它們也有一個緩存,您可以将其歸類為0級,因為它比L1緩存小(僅進行1,500次操作)并且更近。

您可能想知道為什麼這些SRAM塊這麼小?為什麼它們不是一兆字節大小?數據和指令高速緩存一起占用的芯片空間幾乎與主要邏輯單元占用的空間相同,因此使其增大将增加芯片的整體尺寸。

緩存如何選擇(一文看懂緩存)7

但是它們僅保留幾kB的主要原因是,随着内存容量的增大,查找和檢索數據所需的時間也會增加。L1高速緩存必須達到真正意義上的快,因此必須在大小和速度之間達成折衷-最多需要大約5個時鐘周期(較長的浮點值)才能從該高速緩存中獲取數據,以備使用。

但是,如果這是處理器内部唯一的緩存,則其性能将突然崩潰。這就是為什麼它們都在内核中内置了另一級内存的原因:二級緩存。這是一個通用的存儲塊,保存着指令和數據。

它總是比級别1大很多:AMD Zen 2處理器的最大容量為512 kB,因此可以保持較低級别的緩存的良好供應。但是,這種額外的大小需要付出一定的代價,而與1級相比,從此緩存中查找和傳輸數據大約要花費兩倍的時間。

追溯到最初的Intel Pentium時代,Level 2高速緩存是一個單獨的芯片,其位于小型插入式電路闆上(例如RAM DIMM)或内置在主闆中。最終它像奔騰III和AMD K6-III處理器一樣,一直運用于CPU封裝本身,直到最終被集成到CPU裸片中。

緩存如何選擇(一文看懂緩存)8

由于多核芯片的興起,這項發展很快之後又有了另一個級别的緩存,以支持其他較低的級别。

上圖是Intel Kaby Lake芯片,其左中間有4個内核(集成GPU占據了右側一半的裸片)。每個内核都有其自己的“專用”組1級和2級緩存(白色和黃色高亮顯示),但它們也帶有第三組SRAM塊。

3級高速緩存即使直接圍繞一個内核也可以與其他内核完全共享-每個都可以自由訪問另一個L3高速緩存的内容。它 内存更大(在2到32 MB之間),但也慢得多,平均超過30個周期(尤其是在内核需要使用相距一定距離的緩存塊中的數據時)。

緩存如何選擇(一文看懂緩存)9

在下面,我們可以看到AMD Zen 2架構中的單核:白色的32 kB 1級數據和指令緩存,黃色的512 KB 2級緩存和紅色的4 MB巨大塊L3緩存。

不隻是一個數字

高速緩存兩個環節:其一是來提高性能通過加速向邏輯單元的數據傳輸,其二是保留常用指令和數據的副本。緩存中存儲的信息分為兩部分:數據本身以及它最初位于系統内存/存儲中的位置。此地址稱為緩存标簽。

當CPU運行要從内存讀取數據或向内存寫入數據的操作時,它首先檢查1級緩存中的變量。如果存在所需的數據(緩存命中),則幾乎可以立即訪問該數據。當所需标簽不在最低緩存級别中時,即緩存未命中。

因此,在L1高速緩存中會有一個新标簽,其餘的處理器體系結構将接管,盡數浏覽其他高速緩存級别(如有必要,一直返回主存儲驅動器)以查找該标簽的數據。但是要在L1緩存中為該新标簽騰出空間,必須将其他内容始終引導到L2中。

這導緻了幾乎恒定的數據改組,所有這些都隻需要幾個時鐘周期即可實現。實現此目的的唯一方法是在SRAM周圍構建一個複雜的結構,以處理數據管理。換句話說,如果一個CPU内核僅由一個ALU組成,則L1緩存會簡單得多,但是由于ALU有數十個(其中許多将處理兩個指令線程),因此緩存需要多個連接來保持一切都在進行中。

緩存如何選擇(一文看懂緩存)10

您可以使用免費程序(例如CPU-Z)來檢查為自己的計算機供電的處理器的緩存信息。但是所有這些信息意味着什麼?一個重要的元素是關聯的标簽集。這與規則有關,這些規則取決于由系統内存中的數據塊複制到緩存的方式。

上面的緩存信息适用于Intel Core i7-9700K。它的1級高速緩存每個都分成64個小塊,稱為集合,并且每個小塊進一步劃分為高速緩存行(大小為64字節)。集相關意味着将來自系統内存的數據塊映射到一個特定集合中的高速緩存行上,而不是自由地在任何地方進行映射。

8向告訴我們,一個塊可以與一組中的8條緩存行關聯。關聯性級别越高(即“方式”越多),則當CPU搜尋數據時,命中高速緩存的機會就越大,并且減少由高速緩存未命中引起的損失。缺點是它增加了複雜性,增加了功耗,還可能降低性能,因為有更多的緩存行要處理一個數據塊。

緩存如何選擇(一文看懂緩存)11

高速緩存複雜性的另一方面在于如何在各個級别上保留數據。規則是在包含策略中設置的。例如,英特爾酷睿處理器具有完全包含的L1 L3緩存。例如,這意味着第1級中的相同數據也可以在第3級中。這似乎在浪費寶貴的緩存空間,但是好處是,如果處理器在搜索低級标簽時出錯,數據就會丢失,而不需要遍曆更高的級别來找到它。

在同一處理器中,L2緩存是非包含性的:存儲在其中的任何數據都不會複制到任何其他級别。這樣可以節省空間,但确實會導緻芯片的存儲系統必須搜索L3以找到丢失的标簽(實際上總會比這個更大一些)。受害者緩存與此類似,但是它們習慣于存儲從較低級别推出的信息-例如,AMD的Zen 2處理器使用L3受害者緩存,該緩存僅存儲來自L2的數據。

還有其他用于緩存的策略,例如何時将數據寫入緩存和主系統内存。這些稱為寫策略,當今大多數CPU使用回寫式緩存。這意味着,當将數據寫入高速緩存級别時,在使用其副本更新系統内存之前會有一個延遲。在大多數情況下,隻要數據保留在高速緩存中,此暫停就會一直運行。隻有将其引導後,RAM才會獲取信息。

緩存如何選擇(一文看懂緩存)12

對于處理器設計者而言,選擇高速緩存的數量,類型和策略都是為了平衡對更大處理器能力的需求與增加的複雜性和所需的芯片空間。如果有可能擁有20 MB,1000路完全關聯的1級高速緩存,而芯片又不大的離譜(并消耗相同的功率),那麼我們都将擁有配備這種芯片的計算機!

在過去的十年中,當今CPU中最低的緩存級别并沒有太大變化。但是,級别3緩存的大小仍在繼續增長。十年前,如果您幸運地擁有一台售價999美元的Intel i7-980X,則可以獲得12 MB的内存。如今,您隻需花一半的錢就能得到64 MB。

簡而言之,緩存是不可或缺的,也是尖端技術的體現之一。我們沒有研究過CPU和GPU中的其他緩存類型(例如轉換查找緩沖區或紋理緩存),但是由于它們都遵循我們在此介紹的簡單的級别結構和模式,因此聽起來可能并不複雜。

您是否擁有一台在主闆上具有二級緩存的計算機?子闆中的那些基于插槽的Pentium II和Celeron CPU(例如300a)怎麼樣?您還記得您的第一個共享L3的CPU嗎?請在評價部分留下您的意見。

★ 點擊文末【閱讀原文】,可查看本文原鍊接

*免責聲明:本文由作者原創。文章内容系作者個人觀點,半導體行業觀察轉載僅為了傳達一種不同的觀點,不代表半導體行業觀察對該觀點贊同或支持,如果有任何異議,歡迎聯系半導體行業觀察。

今天是《半導體行業觀察》為您分享的第2415期内容,歡迎關注。

★5nm芯片訂單争奪戰打響

★DRAM競争的新時代

★晶圓代工全面爆發

晶圓|藍牙|5G|EDA|華為|英偉達|封裝|手機芯片

緩存如何選擇(一文看懂緩存)13

緩存如何選擇(一文看懂緩存)14

,
Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
推荐阅读
今日空中課堂課表
今日空中課堂課表
今日空中課堂課表?南都訊記者周正陽停課不停學,隔空不隔愛為切實保障師生身體健康和生命安全,保障一到三年級學生居家學習時間,深圳市教育局和深圳廣電集團少兒頻道聯合推出戰“疫”行動、健康你我的電視專欄節目——《鵬城空中課堂》,該欄目将于3月7日...
2024-10-13
和禦風骁将很搭的回城特效
和禦風骁将很搭的回城特效
這段時間上線了不少新皮膚,像公孫離、牛魔、諸葛亮、呂布等都擁有了新皮。那麼在這四款牛年限定的皮膚中,隻有呂布是賣得最好的,哪怕是諸葛亮的時雨天司都沒有呂布的禦風骁将賣的好,這是為什麼呢?其實不是因為手感不錯,而是因為禦風骁将的這三句台詞。首...
2024-10-13
excel表格密碼忘記了怎麼弄
excel表格密碼忘記了怎麼弄
excel表格密碼忘記了怎麼弄?有人問我:大毛,在你的做表生涯中,記憶最深的是什麼?,下面我們就來說一說關于excel表格密碼忘記了怎麼弄?我們一起去了解并探讨一下這個問題吧!excel表格密碼忘記了怎麼弄有人問我:大毛,在你的做表生涯中,...
2024-10-13
現在當兵最少是幾年
現在當兵最少是幾年
如今當兵要求是越來越高,能夠應征入伍的基本都是大學生,國家針對大學生參軍入伍出台的優撫政策也是越來越多。比如“帶編入伍”、學費補償、保留學籍、免試入讀本科、當兵可以換專業,考研享有專項計劃和加分政策等。現在當兵當幾年最好?每個階段的情況都有...
2024-10-13
北京客流比較大的商超排名
北京客流比較大的商超排名
5月13日早晨,記者探訪了海澱區的超市發雙榆樹店。昨天傍晚購菜市民劇增,該店啟動應急預案,增加人手并緊急調貨,許多熱門菜品供應提升50%以上,晚上延長閉店時間至22點。今天早上所有員工提前半小時到店。店長劉學東告訴記者,超市發有充足的菜品保...
2024-10-13
Copyright 2023-2024 - www.tftnews.com All Rights Reserved