三上亚洲一区二区,亚洲国产成人高清精品,三级资源在线,久久九九久精品国产免费直播

CPU中的L1,L2和L3緩存之間的區別:緩存是如何工作的?

VR/AR
2020
08/28
21:26
新浪VR
分享
評論

來源:新浪VR

每個現代處理器都具有少量的高速緩存。在過去的幾十年中,緩存體系結構變得越來越復雜:CPU緩存級別已增加到三個級別:L1,L2和L3,每個塊的大小都已增加,并且緩存關聯性也發生了一些變化。

但是,在我們深入研究細節之前,讓我問您,高速緩存到底是什么,為什么需要它?此外,現代處理器由L1,L2和L3緩存組成。這些緩存級別之間有什么區別?

高速緩存內存與系統內存:SRAM與DRAM

高速緩存基于更快(且更昂貴)的靜態RAM,而系統內存則利用了較慢的DRAM(動態RAM)。兩者之間的主要區別在于,前者由CMOS技術和晶體管制成(每個模塊六個),而后者則使用電容器和晶體管。

DRAM需要不斷刷新(由于漏電),以將數據保留更長的時間。因此,它消耗的功率明顯更多,并且速度也較慢。SRAM不必刷新,效率更高。但是,較高的價格阻礙了主流技術的采用,從而限制了其在處理器緩存中的使用。

緩存在處理器中的重要性?

現代處理器比其80年代和90年代初的原始祖先要光明幾年。如今,高端消費類芯片的運行頻率超過4GHz,而大多數DDR4內存模塊的額定頻率都低于1800MHz。結果,系統內存太慢而無法直接與CPU一起使用而又不會嚴重降低它們的速度。這是高速緩存存儲器的來源。它充當兩者之間的中介,存儲小塊重復使用的數據,或者在某些情況下,存儲那些文件的存儲器地址。

L1,L2和L3緩存:有什么區別?

在現代處理器中,按大小增加和速度遞減的順序,高速緩存存儲器分為三個部分:L1,L2和L3高速緩存。L3高速緩存是最大也是最慢的(第三代Ryzen CPU具有高達64MB的大型L3高速緩存)高速緩存級別。L2和L1比L3小得多,并且速度更快,并且每個內核都分開。較早的處理器不包括三級L3高速緩存,并且系統內存直接與L2高速緩存交互:

L1緩存進一步分為兩部分:L1數據緩存和L1指令緩存。后者包含需要由CPU執行的指令,而前者用于保存將被寫回到主存儲器的數據。

L1高速緩存不僅充當指令高速緩存,而且還保留預解碼數據和分支信息。此外,雖然L1數據高速緩存通常充當輸出高速緩存,但L1指令高速緩存的行為類似于輸入高速緩存。當進行循環時這很有用,因為所需的指令就在獲取單元旁邊。

現代CPU最多可為旗艦處理器提供512KB的L1高速緩存(每個內核64KB),而服務器部件的功能幾乎是后者的兩倍。

L2緩存比L1大得多,但同時也慢一些。旗艦級CPU的大小為4-8MB(每個內核512KB)。每個內核都有自己的L1和L2緩存,而最后一級L3緩存在裸片上的所有內核之間共享。

L3緩存是最低級別的緩存。從10MB到64MB不等。服務器芯片具有多達256MB的三級緩存。此外,與競爭對手的英特爾芯片相比,AMD的Ryzen CPU具有更大的緩存大小。這是因為MCM設計與Intel方面的Monolithic比較。

當CPU需要數據時,它首先搜索關聯內核的L1緩存。如果找不到,則接下來搜索L2和L3緩存。如果找到了必要的數據,則稱為緩存命中。另一方面,如果緩存中不存在數據,則CPU必須請求將其從主內存或存儲設備加載到緩存中。這需要時間,并且會對性能產生不利影響。這稱為緩存未命中

通常,當高速緩存大小增加時,高速緩存命中率會提高。在游戲和其他對延遲敏感的工作負載中尤其如此。

看一下內存映射

有了關于高速緩存的基本說明,讓我們討論一下系統內存如何與高速緩存進行通信。這稱為緩存或內存映射。高速緩沖存儲器分為塊或組。這些塊又分為n個64字節行。系統存儲器被劃分為與高速緩存相同數量的塊(組),然后將兩者鏈接在一起。

如果您有1GB的系統RAM,則緩存將分為8192行,然后分成多個塊。這稱為n路關聯緩存。使用2路關聯高速緩存時,每個塊每個包含2行,4路每個包含4行,8路包含8行,16路包含16行。如果總RAM大小為1GB,則內存中的每個塊的大小均為512 KB。

如果您具有512 KB 4路關聯的高速緩存,則RAM將被分為2,048個塊(1GB為8192/4個)并鏈接到相同數量的4行高速緩存塊。

以與16路關聯緩存相同的方式,將緩存分為512個塊,這些塊鏈接到內存中的512個(2048 KB)塊,每個緩存塊包含16行。當緩存中的數據塊用完時,緩存控制器將用所需的數據重新加載一組新的塊,以繼續執行處理器。

N向關聯緩存是最常用的映射方法。還有另外兩種方法,稱為直接映射和完全關聯的映射。在前者中,高速緩存行與內存之間存在硬鏈接,而在后者的情況下,高速緩存可以包含任何內存地址。基本上,每一行都可以訪問任何主內存塊。此方法具有最高的命中率。但是,它的實施成本很高,因此,芯片制造商通常會避免使用它。

哪種映射是最好的?

直接映射是最容易實現的配置,但同時效率最低。例如,如果CPU要求給定的內存地址(在這種情況下為1,000),則控制器將從內存中加載64字節的行并將其存儲在高速緩存中(1,000至1,063)。將來,如果CPU需要來自相同地址或此地址之后的地址(1,000到1,063)的數據,它們將已經在高速緩存中。

當CPU在映射到同一高速緩存行的存儲塊中需要一個接一個的下一個地址時,這將成為一個問題。例如,如果CPU首先請求地址1,000,然后再請求地址2,000,則將發生高速緩存未命中,因為這兩個地址位于同一內存塊中(128 KB是塊大小)。另一方面,映射到它的緩存行是從地址1,000到1,063開始的行。因此,緩存控制器將在第一條緩存行中將地址從2000的行加載到2063,從而淘汰了較舊的數據。這就是為什么直接映射高速緩存是效率最低的高速緩存映射技術并已被廣泛放棄的原因。

完全關聯映射在某種程度上與直接映射相反。內存高速緩存的行與RAM內存位置之間沒有硬鏈接。緩存控制器可以存儲任何地址。上面的問題不會發生。此高速緩存映射技術是最有效的,命中率最高。但是,正如已經說明的那樣,它是實現起來最困難,最昂貴的。

結果,使用了在完全關聯映射和直接映射之間混合的集合關聯映射。在這里,每個內存塊都鏈接到一組線(取決于SA映射的類型),并且每一行都可以保存來自映射內存塊中任何地址的數據。在4路集關聯緩存中,內存緩存中的每個集最多可容納來自同一內存塊的四行。通過16路配置,該數字將增加到16。

當映射集上的插槽全部用完時,控制器將逐出其中一個插槽的內容,并從同一映射存儲塊中加載另一組數據。例如,將組關聯內存緩存的方式從4路增加到8路,每組就有更多的緩存插槽可用。但是,如果不增加緩存量,則每個鏈接的內存塊的內存大小都會增加。基本上,在不增加整體高速緩存大小的情況下增加集合高速緩存集上可用插槽的數量意味著該集合將鏈接到更大的內存塊,由于刷新次數增加,有效地降低了效率。

另一方面,增加緩存大小意味著每個集合中會有更多行(假設集合大小也增加了)。這意味著每個存儲塊有更多數量的鏈接高速緩存行。通常,這會增加命中率,但是可以提高整體數字的限制是有限的。

THE END
廣告、內容合作請點擊這里 尋求合作
VR
免責聲明:本文系轉載,版權歸原作者所有;旨在傳遞信息,不代表砍柴網的觀點和立場。

相關熱點

NVIDIA正式宣布了GeForce MX450,它將取代最近發布的MX350,用于預算游戲筆記本電腦。它將帶有GDDR6內存和PCIe 4.0支持。具有諷刺意味的是,這是NVIDIA首款支持PCIe 4標準的GPU,也是首款包含高端GDDR6內...
VR
外媒消息,蘋果收購了虛擬現實公司Spaces,該公司不僅提供虛擬現實體驗,而且在流感大流行之后,還提供一種將虛擬化身帶入Zoom會議的方式。
VR
外媒消息,蘋果收購了虛擬現實公司Spaces,該公司不僅提供虛擬現實體驗,而且在流感大流行之后,還提供一種將虛擬化身帶入Zoom會議的方式。
VR
在最近一次向法院提交動議時,游戲業巨頭Epic認為Apple對《堡壘之夜》的行為和該官司的影響會讓整個游戲開發生態處在極度危險當中。
VR
一提起The Initiative工作室,很多人都感覺陌生。可它作為微軟第一方工作室,早在2018年E3大展就成立了,不過這兩年始終沒有任何作品問世。
VR

相關推薦

1
3
主站蜘蛛池模板: 安仁县| 绥江县| 婺源县| 沁源县| 阳西县| 清苑县| 衡南县| 漯河市| 普格县| 双柏县| 南部县| 方山县| 印江| 农安县| 八宿县| 武城县| 志丹县| 鄂托克前旗| 静海县| 呼玛县| 根河市| 龙胜| 建瓯市| 威宁| 桑植县| 阳新县| 广西| 桃江县| 顺平县| 开原市| 平武县| 绥德县| 桦甸市| 高雄市| 柳林县| 北海市| 汤阴县| 凤台县| 夏津县| 新邵县| 政和县|