L4緩存,有望走向主流?
根據維基百科,高速緩存(英語:cache)簡稱緩存,原始意義是指訪問速度比一般隨機存取存儲器(RAM)快的一種RAM,通常它不像系統主存那樣使用DRAM技術,而使用昂貴但較快速的SRAM技術。
當CPU處理數據時,它會先到Cache中去尋找,如果數據因之前的操作已經讀取而被暫存其中,就不需要再從隨機存取存儲器(Main memory)中讀取數據——由於CPU的運行速度一般比主內存的讀取速度快,主存儲器週期(訪問主存儲器所需要的時間)為數個時鐘週期。因此若要訪問主內存的話,就必須等待數個CPU週期從而造成浪費。
早在PC-AT/XT和80286時代,並沒有Cache,CPU和內存都很慢,CPU直接訪問內存。但到了80386的芯片組增加了對可選的Cache的支持,高級主板帶有6 4K B,甚至高端的128KB Write-Through Cache。
到了80486 CPU裡面,則加入了8KB的L1 Unified Cache,當時也叫做內部Cache,不分代碼和數據,都存在一起;芯片組中的Cache,變成了L2,也被叫做外部Cache,從128KB到256KB不等;增加了Write-back的Cache屬性。Pentium CPU的L1 Cache分為Code和data,各自8KB;L2還被放在主板上。Pentium Pro的L2被放入到CPU的Package上。Pentium 3開始,L2 Cache被放入了CPU的Die中。從Intel Core CPU開始,L2 Cache為多核共享。
CPU的緩存曾經是用在超級計算機上的一種高級技術,不過現今電腦上使用的的AMD或Intel微處理器都在芯片內部集成了大小不等的數據緩存和指令緩存,通稱為L1緩存(L1 Cache即Level 1 On-die Cache,第一級片上高速緩衝存儲器);而比L1更大容量的L2緩存曾經被放在CPU外部(主板或者CPU接口卡上),但是現在已經成為CPU內部的標準組件;更昂貴的CPU會配備比L2緩存還要大的L3緩存(level 3 On-die Cache第三級高速緩衝存儲器)。
但直到現在,主流芯片還是止步於L3。
緩存的演進
據Quora博主,高級架構師Jerason Banes所說,之所以L4沒被採用,這與CPU架構的發展有著莫大的關係。
他表示,如果我們如果將時鐘回滾到6502 CPU,您會發現這是一個非常簡單的設計,在實際使用中也很精確,這主要是因為6502 使用了馮·諾依曼架構。這是一個非常簡單的結構,內存、CPU 和I/O 都根據一個主時鐘以鎖步方式發生。
這意味著如果CPU 以1.4MHz 運行,則內存必須以1.4MHz 運行,但這這很快成為一個問題。
他表示,隨著CPU 開始加速到10 MHz,能夠跟上的RAM 變得非常昂貴。而事實上,從RAM 到CPU 的物理距離幾乎不可能跟上CPU。此外,RAM 容量的增加(兆字節大小)意味著需要使用更複雜的控制電路來尋址內存位置。這意味著當您非順序地讀取內存時,內存會變得具有不可預測的設置時間。
對此,行業提出的解決方案是保留少量CPU 快速內存,這就是L1 緩存。現在,L1 + CPU 的行為就像舊的6502 CPU 一樣,但它可以調用RAM,就像它是一個超高速硬盤驅動器一樣,可以獲取當前不在L1 中的任何RAM 塊。就像硬盤驅動器一樣,CPU 只會等待必要的數據被提取到L1 緩存中。
這種方法之所以奏效,是因為程序的關鍵部分往往非常小。足夠小到CPU 在需要返回主內存之前可以花費大量時間運行程序。但美中不足的是——數據與代碼。因為一個程序可能會處理大量數據。這會導致L1 緩存的使用不佳,並導致緩存中出現大量“misses”。所以CPU 會有效地減慢主內存的速度,這是可以接受的,除了CPU 比這更慢的事實。
問題是CPU 正在運行的代碼很容易落入“最近最少使用”的桶中,並被淘汰出L1 以支持正在處理的數據。一旦CPU 返回到該代碼塊,它就必須停止並從主內存中重新獲取代碼。這是非常低效的。
為了解決這個問題,CPU 轉向哈佛架構. (以早期的Harvard-1 計算機命名.) 在哈佛架構中,代碼與數據保存在不同的內存中。這具有簡化數據路徑的優勢,因為可執行代碼來自一組路徑,而數據來自另一組路徑。更重要的是,通過將L1 緩存分成兩部分(代碼與數據),數據永遠不會意外驅逐正在運行的代碼。
於是我們將64KB L1 緩存拆分為32KB 代碼和32KB 數據。
緩存的其餘部分用於嘗試處理越來越快的CPU。CPU 時鐘越快,電能在時鐘週期之間的時間片內傳輸的距離就越短。由於這是一個無法克服的物理問題,CPU 設計人員開始從主內存“暫存”他們需要的數據。L2 的速度通常是CPU 的一半,但尺寸更大,因此它可以在CPU 本身繁忙時按順序流式傳輸接下來的幾個塊。當CPU 請求下一個數據時,它幾乎不需要等待那麼長時間,這就是我們獲得256KB L2 緩存的方式。
但是L3呢?那個是從哪裡來的?
最後一塊拼圖來自多核處理器。每個內核都想繼續工作,但如果每次需要從主內存中獲取更多數據時它們都必須落後於對方,那麼它們就做不到。因此,L3 緩存在每個內核上的不同L2 緩存之間充當緩衝區。它將依次嘗試為所有主內存調用提供服務,每次都會多拉一點,以增加在L2 緩存請求時它已經擁有數據的可能性。這就是為什麼L3 的數量往往會隨著核心數量的增加而增加。內核越多,它們就越有可能進入主內存的“戰鬥”。
資料顯示,L3 緩存在Nehalem(第一代酷睿i7 系列)中成為主流,這是第一個單片四核CPU 芯片,這意味著所有4 個內核都在同一塊矽片上。相比之下,它的前身Core 2 Quad 由同一封裝上的兩個獨立Core 2 Duo 芯片組成。

為何止步於L4?
在這部分開始之前,我們必須申明,雖然L4目前沒有被主流採用,但IBM早在2000年代就在其自己的某些X86芯片組中添加了L4緩存,並在2010年在System z11大型機的NUMA互連芯片組中添加了L4緩存。
據了解,IBM的z11處理器具有四個內核,每個內核具有64 KB的L1指令和128 KB的L1數據高速緩存,以及每個內核1.5 MB的L2高速緩存和在這四個內核之間的24 MB共享L3高速緩存。z10的NUMA芯片組具有兩排96 MB的L4緩存,總計192 MB。
在談到為什麼沒有用到L4緩存的時候,知乎用戶tjunangang在一個問答下面回應直言——緩存太佔地方,而且投入和回報不成正比,不划算。他表示,如下圖所示,三級緩存差不多佔據了兩個核心的面積,如果加上四級呢?五級呢?要知道緩存容量都是急速遞增的,如果有四級緩存,單獨的緩存面積就比整個現有的CPU大。

在tjunangang看來,如果繼續引入L4緩存,可能引致下述問題:
1.同樣的晶圓,原本能生產32塊CPU,加上四級緩存可能10塊都生產不了,價格暴漲沒人買賬。
2.核心面積大,功耗大,發熱量大,對散熱設備要求高,與未來發展趨勢對著幹..而且核心面積大,良品率低,比較悲劇的是容易碎(我按碎過好多塊)
3.堆緩存這種方式,明顯是土豪作風,要知道intel早期處理器連L3 Cache都沒有。而且關鍵的問題是,你單純的堆緩存,早晚有一天會混不下去,和之前攀主頻的競賽類似,還不如想辦法去提升架構。
4.對於整體性能的作用,L1 cache最大,L2次之, L3甚至不到L1 cache的十分之一。若是不計成本的話,加到L4還有情可原,加到L5其實已經和系統內存差不多了。
知名博主“老狼”則表示,目前已經有L4了,它有兩種形式,分別是eDRAM和Optane DIMM。例如在英特爾的Iris系列中,就有一塊高速DRAM被放入Package中(eDRAM),它平時可以充當顯存,也可以被設定為L4緩存。
曾經任職於Cray Research,Sun Microsystems,Oracle,Broadcom,Cavium和Marvell的芯片架構師Rabin Sugumar在接受nextplatform採訪的時候表示,並沒有人規定L4緩存必須由嵌入式DRAM(就像IBM對其芯片所做的那樣)或更昂貴的SRAM構成。
根據他的觀點,就目前而言,我們的L3已經很大。因此關於L4緩存,Rabin Sugumar也認為也許是eDRAM,甚至是HBM或DRAM。在這種情況下,一個看起來很有趣的是——L4高速緩存實現是將HBM用作高速緩存,而不是延遲高速緩存,而不是帶寬高速緩存。
“這樣做的想法是,由於HBM容量有限且帶寬較高,因此我們可以獲得一些性能提升,並且在帶寬受限的使用案例中我們確實看到了顯著的收益。緩存未命中數。但是,就性能和成本而言,需要做的數學就是添加另一個緩存層是否值得。”Rabin Sugumar說。
有那麼多人發佈如此多觀點,在筆者看來,Intel才是其中的關鍵因素。在日前,他們帶來了一個新的分享?
即將走向主流?
據外媒tomshardware報導,英特爾即將推出代號為Meteor Lake 的處理器,將配備L4 緩存的非官方信息已經流傳了一段時間。而現在, VideoCardz 發現的一項新英特爾專利表明,英特爾已經準備好代號為Adamantine L4 的高速緩存塊,這將可用於某些CPU。
“該IC 可以在某些應用中與AMD 的3D V-Cache 競爭,但該小芯片不會僅用作性能助推器。”VideoCardz表示。

該專利表明,英特爾的Adamantine(或ADM)緩存不僅可以改善CPU 和內存之間的通信,還可以改善CPU 和安全控制器之間的通信。例如,L4 可用於改進引導優化,甚至在重置時保留緩存中的數據以縮短加載時間。
報導表示,雖然專利本身沒有提到Meteor Lake,但隨附的圖像清楚地展示了一個處理器,該處理器具有利用Intel 4工藝生產的兩個高性能的Redwood Cove 和八個節能的Crestmont,此外還包括一個基於英特爾Gen 12.7 的圖形小芯片,還有一個包含兩個以上Crestmont 內核的SoC 塊,以及一個使用英特爾Foveros 3D 技術互連的I/O 小芯片。該描述對應於英特爾的Meteor Lake 處理器。
同時,Adamantine L4 緩存可用於Meteor Lake 以外的廣泛應用。

英特爾在介紹該專利的時候表示,下一代客戶端SoC 架構可能會引入大型封裝緩存,這將允許新的用途。
他們認為,L4(例如,“Adamantine”或“ADM”)高速緩存的訪問時間可能比DRAM 訪問時間短得多,後者用於改進主機CPU 和安全控制器通信。實施例有助於保護啟動優化方面的創新。重置時具有更高預初始化內存的高端芯片增加了價值,可能會增加收入。在重置時讓內存可用還有助於消除傳統BIOS 假設,並為現代設備用例(如汽車IVI、家用和工業機器人等)提供支持,這就推動產品走向新的細分市場。
也就就說,L4緩存要來了?
來源:半導體行業觀察