儲存裡的資料處理 | 半導體行業觀察
來源:本文由 公眾號 半導體行業觀察(ID:icbank)翻譯自「Semiconductor Engineering」,謝謝。
在儲存器中直接新增資料處理功能正在引起人們的重視,尤其是那些資料量巨大、在各類儲存器和處理器之間來回傳輸資料需要耗費太多的能量和時間的應用。
在過去的十年中,將處理器新增到儲存器的想法斷斷續續出現在人們的腦海中,人們將其作為未來可能的發展方向,但這被認為是一種昂貴且未經測試的器件微縮替代方案,從而遭到了摒棄。如今,由於熱效應、各種型別的噪音,以及飛漲的設計和製造成本,微縮的效益減少了,所有的選擇都擺上了桌面。尤其是汽車中的計算機視覺應用,因為此時鐳射雷達和攝像感測器將產生視訊流;還有人工智慧/機器學習/深度學習領域,因為此時需要快速處理大量資料。
AMD公司客戶產品首席架構師Dan Bouvier表示:“如果你能在儲存資料的地方處理資料,效率就會高得多。如果你必須要跨越鏈路,就會消耗大量功率,尤其會佔用大量I/O。這會讓PHY無法微縮。而且此處的封裝技術太昂貴,無法進入更精細的接點間隔(bump pitches)。而你當然希望儘可能緊密地壓縮。如果你使用的是異構處理器,那麼本地電源管理就容易很多。 ”
這在資料中心中非常現實,就像在自動駕駛汽車和其他邊緣裝置中一樣,而且這遠非驚人的新發現。AI/ML/DL和視訊流都不是新技術。但隨著它們開始跨越多個市場,涉及功率和延遲的獨特挑戰正在出現。簡而言之,需要處理的資料量預計將超過微縮所帶來的效能和功耗方面的效益,而解決這一問題的唯一方法是通過架構改進和軟硬體協同設計。
Babblelabs公司執行長Chris Rowen表示:“自從計算機出現以來,平衡記憶體頻寬和計算頻寬一直是計算機系統架構中的核心問題。甚至在50年前,人們就說,‘我需要以一種通用的方式逐個位元組進行運算。’”
這些年來,這個方程式並沒有顯著改變,改變的是更高效地實現這一點的方法。例如:
- 將多次運算組合到一個週期中;
- 通過快取或降低計算精度,改變資料在處理器和儲存器之間移動的頻率;
- 縮短處理器和儲存器之間的距離,同時確保有足夠的頻寬。
上述三個領域的工作都在進行中,並且都大有希望。但是減小處理器和儲存器之間的距離在許多方面都提出了有趣的挑戰。
Rambus公司首席科學家Craig Hampel表示:“從技術的角度看,減小距離當然是可行的。而且它適合在神經網路訓練中增加權重的需要,因為你無法承受延遲。問題出在經濟上。如果你看看DRAM,就會發現位元是按照一種非常規則的方式組合的,因此它具有成本效益。3D的目標是縮小這些距離,2.5D肯定也有幫助。但這兩種方法都使熱問題更難以解決,而且更難以測試。 ”
由美光和三星開發的Hybrid Memory Cube提供了一個案例,通過在3D配置中將儲存器堆疊在邏輯器件上,並使用矽通孔(TSV)連線不同層,從而實現距離的減小和資料吞吐量的提升。
Kandou Bus公司執行長Amin Shokrollahi表示:“人們對直接訪問儲存器非常感興趣。問題是,你必須能夠構建它,這樣你才能進行正常的程式設計。軟體和硬體同樣重要。”
這是一個經濟上特別惱人的領域。Shokrollahi說:“Hybrid Memory Cube沒有成功的原因之一是沒有第二個來源。HBM(高頻寬記憶體)更為簡單,但它提供了對所有儲存器的訪問,而且它是多源的。HBM封裝還可以支援更多的層,而且你可以非常輕鬆地冷卻它。因為如果你將處理器封裝在儲存器中,它會變得非常熱。”
一種可能的解決方案是限制處理器和儲存器的大小。在上月舉行的Hot Chips 30會議上,總部位於得克薩斯州奧斯汀的初創公司Mythic介紹了一種新的矩陣乘法儲存器架構,旨在用於AI /機器學習市場。Mythic的方法是在flash儲存器中進行模擬計算以提高效能。
Mythic公司的首席技術官Dave Fick表示:“我們將使用flash陣列中的flash電晶體來表示權重矩陣。我們採用這種flash陣列,然後將其打包成小塊。我們有基於小塊的架構,其中每個小塊都有一個這樣的儲存器陣列,還有其他支援重新配置和中間資料儲存的邏輯。SRAM提供中間資料儲存,因此在中間階段我們將資料儲存在SRAM中。我們有RISC-V處理器,用於在小塊內提供控制。我們有路由器,實現與相鄰的小塊通訊。然後有SIMD(單指令,多資料)單元,它提供的運算不是矩陣乘法。”
這裡的侷限是專業化,因為flash電晶體不能快速程式設計。Fick說:“你需要擁有一套固定的應用,但這對於邊緣系統來說非常典型。我們可以通過將不同的區域對映到不同的應用來支援多個應用,因此我們可以一次支援多個應用。”

製造挑戰
還有其他問題需要解決。減小訊號在儲存器和邏輯器件之間傳輸的距離會帶來熱量和成本方面的挑戰。但是直接在儲存器中構建處理功能中會增加整合和相容性問題。
OneSpin Solutions總裁兼執行長Raik Brinkmann表示:“最大的問題是,儲存工藝和邏輯工藝無法結合在一起,因此你無法合理地將這些器件組裝在一起。這引發了製造方面的另一波創新浪潮。例如,對於單片3D架構,邏輯層和儲存層之間有非常細的連線連線著兩層矽片。儲存器中的計算基本就是這個樣子。”
在這一點上,沒有人確切知道這種方法在製造中會產生怎樣的收益。
Arm公司研究員Rob Aitken表示:“這增加了一系列全新的挑戰。這種工藝中,有趣的架構創新之一就是像斯坦福大學那樣使用基於畫素的工藝系統。在這樣的系統中,畫素彼此相對獨立並且存在於2D表面中。問題是,當你把兩個晶圓放在一起時,收率可能不同於單一晶圓的情形。例如,‘這個晶圓的收率是75%,那個晶圓的收率是75%,當我把它們放在一起時,收率是30%。’實際上,你必須建立一個系統,讓三維堆疊中隱含的冗餘與你一起工作,而不是與你作對。但即使你不使用單片3D,你只是想在儲存器中或者儲存器附近進行計算,那也會涉及到資料移動問題。如果你的系統需要移動資料,那麼處理器的精妙程度和速度並不重要,因為這不是限制因素。”
設計挑戰
這在設計方面引發了一系列其他挑戰。
eSilicon公司營銷副總裁Mike Gianfagna表示:“這不僅僅是如何在設計中新增更多的東西,部分原因還在於你如何改變晶片設計的傳統方法。近儲存器佇列需要複雜的並行設計。”
這還需要深入瞭解如何在設計中使用各種型別的儲存器。AMD公司的Bouvier表示:“一個重要的死對頭是虛擬記憶體子系統,這是用反常的方式移動資料,相當於二次轉化。 ”
但Bouvier指出,對於不同型別的晶片如何利用DRAM有不同的衡量標準。Bouvier表示,對於discrete GPU,DRAM的執行效率在90%左右。對於APU或CPU,它的執行效率在80%到85%之間。
對於AI/ML/DL應用,這在推理方面尤為重要。
Babblelabs公司的Rowen表示:“英偉達之所以如此強大,並不僅僅是因為它們有並行架構,而是因為它們有大量的記憶體。推理過程的一個顯著不同之處在於,每個位元組的記憶體通常有數百次運算。所以這個問題的不同之處在於你通常不用關心記憶體,至少對於推理而言是如此。你可以丟擲大量與問題密切相關的計算,而不會出現記憶體瓶頸。導致諸多創新的原因之一是,人們推出了非常密集的計算架構和粗粒度陣列,得到的反應是‘這很好,但沒有具有這些特徵的問題。’他們中的大多數都失敗了,因為他們沒有足夠的記憶體頻寬。但現在,我們遇到的問題確實存在頻寬不成問題的特徵。”
這使得在記憶體中或非常接近記憶體的地方新增記憶體更加引人注目。儘管這還不是一個確定的賭注,但除非經過嚴肅的討論,否則它不會被拋棄。