存儲計算硬件

存儲計算硬件

隨着雲存儲與物聯網、消費電子、航空航天、地球資源信息、科學計算、醫學影像與生命科學、軍事裝備等電子信息重要應用領域的發展,當今社會處於一個信息爆炸的大數據時代,對超高速、高帶寬、大容量、高密度、低功耗和低成本的超高性能計算呈爆發式增長。傳統的計算機採用馮·諾依曼架構,架構中計算和存儲功能是分離的,分別由中央處理器(CPU)和存儲器完成。隨着微電子技術的高速發展,CPU和存儲器的性能,如速度和容量,飛速提升,但由於傳輸數據和指令的總線速度的提升十分有限,CPU和存儲器之間頻繁的數據傳輸造成了信息處理的瓶頸,稱爲存儲牆。

早在“存儲牆”暴露之初,計算機研究者已經開始尋找解決或弱化
“存儲牆”問題的方法。工業界沿用至今的方法就是衆所周知的“存儲層級結構 (Memory hierarchy)”。其核心思想是通過在處理器與動態存儲單元之間插入一系列高速緩衝存儲器(cache)來緩衝兩者 之間的速度失配。。 存儲層級結構雖然在一定程度上降低了計算的平均延遲,但是它並沒有從根 本上消除“存儲牆”問題。

目前有很多學者和機構開始研究計算型存儲/存算一體(process in memory),其核心思 想是將計算(處理)功能和存儲功能集成在同一塊芯片中,所有的計算全部在存儲內部實現,無需數據的讀出和寫入。

面對日益嚴重的存儲牆問題、訪存功耗問題以及人工智能應用帶來的驅動,計算型存儲/存內計算/存算一體提供了一種有前途的方法。從目前的實現方式看,計算型存儲/存內計算/存算一體分成了兩個路線:基於成熟的易失性存儲和不成熟的非易失性存儲。無論是哪種路線,都存在一定的挑戰:

1)基於成熟的易失性存儲:這種方式下的計算型存儲/存內計算/存算一體需要融合處理器工藝和存儲器工藝。但由於目前處理器與存儲器的製造工藝不同,若要在處理器上實現存儲器的功能,則可能會降低存儲器的存儲密度;若要在存儲器上實現處理器的功能,則可能會影響處理器的運行速度。很難在性能和容量上有一個很好的折衷。

2)基於不成熟的非易失性存儲:非易失性存儲對存儲和計算的天然融合特定是構建計算型存儲/存內計算/存算一體的最佳器件。但是,由於目前廠商和工藝均未成熟。經濟上,除了對用於生產這些新技術的現有存儲器製造設施的更多投資之外,只要他們仍然可以使用DRAM或Flash就很難讓用戶轉到新技術上。

概述

現代電子設備朝着智能化、輕量化、便攜化快速發展,但是智能大數據處理挑戰與馮諾依曼計算架構瓶頸成爲當前電子信息領域的關鍵矛盾之一;同時,器件尺寸微縮(摩爾定律失效)帶來的功耗與可靠性問題進一步加劇了該矛盾的快速惡化。近年來以數據爲中心的新型計算架構,例如存算一體芯片技術,受到人們的廣泛關注,尤其在端側智能場景。但是,基於端側設備在資源、時延、成本、功耗等諸多因素的考慮,業界對存算一體芯片提出了苛刻的要求。因此,存算一體介質與計算範式尤爲重要。同時,器件-芯片-算法-應用跨層協同對存算一體芯片的產業化應用與生態構建非常關鍵。本文對端側智能存算一體芯片的需求、現狀、主流方向、應用前景與挑戰等做一個簡單的概述。我們有理由相信,在高能效低成本智能存算一體芯片的硬件支撐下,隨着5G通信與物聯網(IoT)技術的成熟,智能萬物互聯(AIoT)時代即將來臨。

自第四次信息革命以來,現代電子設備朝着智能化、輕量化、便攜化快速發展。尤其近年來,隨着以深度學習神經網絡爲代表的人工智能算法的深入研究與普及,智能電子設備與相關應用場景已隨處可見,例如人臉識別、語音識別、智能家居、安防監控、無人駕駛等。同時,隨着5G通信與物聯網(IoT)技術的成熟,可以預見,智能萬物互聯(AIoT)時代即將來臨。如圖1所示,在未來AIoT場景中,設備將主要分爲三類:雲端、邊緣端與終端[1],其中邊緣終端設備將呈現爆發式增長。衆所周知,人工智能的三大要素是算力、數據與算法。互聯網與5G通信的應用普及解決了大數據問題,深度學習神經網絡的快速發展解決了算法問題,英偉達GPU/谷歌TPU等高性能硬件的大規模產業化解決了雲端算力問題。但是,資源受限的邊緣終端設備的算力問題目前仍然是缺失的一環,且因其對時延、功耗、成本、安全性等特殊要求(尤其考慮細分場景的特殊需求),將成爲AIoT大規模產業化應用的核心關鍵。因此,在通往AIoT的道路上,需要解決的核心挑戰是高能效、低成本、長待機的端側智能芯片。

在這裏插入圖片描述

圖1、未來AIoT場景示意圖,包括三層:運算數據中心,邊緣端與終端[1]

馮諾依曼計算架構瓶頸與大數據智能處理挑戰

隨着大數據、物聯網、人工智能等應用的快速興起,數據以爆發式的速度快速增長。相關研究報告指出,全世界每天產生的數據量約爲字節,且該體量仍然以每40個月翻倍的速度在持續增長[2]。海量數據的高效存儲、遷移與處理成爲當前電子信息領域的重大挑戰之一。但是,受限於經典的馮諾依曼計算架構[3,4],數據存儲與處理是分離的,存儲器與處理器之間通過數據總線進行數據傳輸, 如圖2(a)所示。在面向大數據分析等應用場景中,這種計算架構已成爲高性能低功耗計算系統的主要瓶頸之一。一方面,數據總線的有限帶寬嚴重製約了處理器的性能與效率,同時,存儲器與處理器之間存在嚴重性能不匹配問題,如圖2(b)所示。不管處理器運行的再快、性能再好,數據依然存儲在存儲器裏,每次執行運算時,需要把數據從存儲器經過數據總線搬移到處理器當中,數據處理完之後再搬回到存儲器當中。這就好比一個沙漏,沙漏兩端分別代表存儲器和處理器,沙子代表數據,連接沙漏兩端的狹窄通道代表數據總線。因此存儲器帶寬在很大程度上限制了處理器的性能發揮,這稱爲存儲牆挑戰。與此同時,摩爾定律正逐漸失效,依靠器件尺寸微縮來繼續提高芯片性能的技術路徑在功耗與可靠性方面都面臨巨大挑戰。因此,傳統馮諾依曼計算架構難以滿足智能大數據應用場景快、準、智的響應需求。另一方面,數據在存儲器與處理器之間的頻繁遷移帶來嚴重的傳輸功耗問題,稱爲功耗牆挑戰。英偉達的研究報告指出,數據遷移所需的功耗甚至遠大於實際數據處理的功耗。例如,相關研究報告指出,在22納米工藝節點下,一比特浮點運算所需要的數據傳輸功耗是數據處理功耗的約200倍[5]。在電子信息領域,存儲牆與功耗牆問題並稱爲馮諾依曼計算架構瓶頸。因此,智能大數據處理的挑戰實質是由硬件設施的處理能力與所處理問題的數據規模之間的矛盾引起的。構建高效的硬件設施與計算架構,尤其是在資源受限的AIoT邊緣終端設備,來應對智能大數據應用背景下的馮諾依曼計算架構瓶頸具有重要的科學意義與應用前景。

在這裏插入圖片描述

圖2 (a)馮諾依曼計算架構示意圖;(b)存儲器與處理器之間的性能鴻溝

爲了打破馮諾依曼計算架構瓶頸,降低數據搬移帶來的開銷,一種最直接的做法是增加數據總線帶寬或者時鐘頻率,但必將帶來更大的功耗與硬件成本開銷,且其擴展性也嚴重受限。目前業界採用的主流方案是通過高速接口、光互聯、3D堆疊、增加片上緩存等方式來實現高速高帶寬數據通信,同時使存儲器儘量靠近處理器,減小數據傳輸的距離。光互聯技術還處於研發中試階段,而3D堆疊技術與增加片上緩存等方法已經廣泛用於實際產品當中。國內外很多高效與企業都在研發與應用這種技術,如谷歌、英特爾、AMD、英偉達、寒武紀科技等。例如,利用3D堆疊技術,在處理器芯片上集成大容量內存,可以把數據帶寬從幾十GB/s提升到幾百GB/s;基於3D堆疊DRAM技術,IBM於2015年發佈了一款面向百億億次超級計算系統[6];國內百度崑崙與英國Graphcore公司在芯片產品上集成了200MB-400MB的片上緩存,來提高性能。值得注意的是,上述方案不可避免地會帶來功耗與成本開銷,難以應用於邊緣終端能耗與成本均受限的AIoT設備,且其並沒有改變數據存儲與數據處理分離的問題,因此只能在一定程度上緩解,但是並不能從根本上解決馮諾依曼計算架構瓶頸。

存算一體基本原理與國內外發展現狀

存算一體芯片技術,旨在把傳統以計算爲中心的架構轉變爲以數據爲中心的架構,其直接利用存儲器進行數據處理,從而把數據存儲與計算融合在同一個芯片當中,可以徹底消除馮諾依曼計算架構瓶頸,特別適用於深度學習神經網絡這種大數據量大規模並行的應用場景。需要說明的是,目前在學術界和產業界有不少類似的英文概念,例如Computing-in-Memory、In-Memory-Computing、Logic-in-Memory、In-Memory-Processing、Processing-in-Memory等,而且不同研究領域(器件、電路、體系架構、數據庫軟件等)的稱呼也不統一,相應的中文翻譯也不盡相同,例如內存處理、存內處理、內存計算、存算融合、存內計算、存算一體等。此外,在廣義上,近存計算也被歸納爲存算一體的技術路徑之一。

存算一體的基本概念最早可以追溯到上個世紀七十年代,斯坦福研究所的Kautz等人最早於1969年就提出了存算一體計算機的概念[7,8]。後續相當多的研究工作在芯片電路、計算架構、操作系統、系統應用等層面展開。例如,加州大學伯克利分校的Patterson等人成功把處理器集成在DRAM內存芯片當中,實現一種智能存算一體計算架構[9]。但是受限於芯片設計複雜度與製造成本問題,以及缺少殺手級大數據應用進行驅動,早期的存算一體僅僅停留在研究階段,並未得到實際應用。近年來,隨着數據量不斷增大以及內存芯片技術的提高,存算一體的概念重新得到人們的關注,並開始應用於商業級DRAM主存當中。尤其在2015年左右,隨着物聯網、人工智能等大數據應用的興起,技術得到國內外學術界與產業界的廣泛研究與應用。在2017年微處理器頂級年會(Micro 2017)上,包括英偉達、英特爾、微軟、三星、蘇黎世聯邦理工學院與加州大學聖塔芭芭拉分校等都推出了他們的存算一體系統原型[10-12]。

尤其是,近年來非易失性存儲器技術,例如閃存(Flash)、憶阻器(阻變存儲器 RRAM)、相變存儲器(PCM)與自旋磁存儲器(MRAM)等[13-17],爲存算一體芯片的高效實施帶來了新的曙光。這些非易失性存儲器的電阻式存儲原理可以提供固有的計算能力,因此可以在同一個物理單元地址同時集成數據存儲與數據處理功能。此外,非易失性可以讓數據直接存儲在片上系統中,實現即時開機/關機,而不需要額外的片外存儲器。惠普實驗室的Williams教授團隊在2010年就提出並驗證利用憶阻器實現簡單布爾邏輯功能[18]。隨後,一大批相關研究工作不斷涌現。2016年,美國加州大學聖塔芭芭拉分校(UCSB)的謝源教授團隊提出利用RRAM構建基於存算一體架構的深度學習神經網絡(簡稱爲PRIME[19]),受到業界的廣泛關注。測試結果表明,相比基於馮諾依曼計算架構的傳統方案,PRIME可以實現功耗降低約20倍、速度提高約50倍[20]。這種方案可以高效地實現向量-矩陣乘法運算,在深度學習神經網絡加速器領域具有巨大的應用前景。國際上杜克大學、普渡大學、斯坦福大學、馬薩諸塞大學、新加坡南洋理工大學、惠普、英特爾、鎂光等都開展了相關研究工作,併發布了相關測試芯片原型[21-24]。我國在這方面的研究也取得了一系列創新成果,如中科院微電子所劉明教授團隊、北京大學黃如教授與康晉鋒教授團隊、清華大學楊華中教授與吳華強教授團隊、中科院上海微系統所宋志棠教授團隊、華中科技大學繆向水教授團隊等等,都發布了相關器件/芯片原型,並通過圖像/語音識別等應用進行了測試驗證[25-27]。PCM具有與RRAM類似的多比特特性,可以基於類似的原理實現向量-矩陣乘法運算。對於MRAM而言,由於其二值存儲物理特性,難以實現基於交叉點陣列的向量-矩陣乘法運算,因此基於MRAM的存算一體通常採用布爾邏輯的計算範式[28-30]。但由於技術/工藝的成熟度等問題,迄今基於相變存儲器、阻變存儲器與自旋存儲器的存算一體芯片尚未實現產業化。與此同時,基於Nor Flash的存算一體芯片技術近期受到產業界的格外關注,自2016年UCSB發佈第一個樣片以來,多家初創企業在進行研發,例如美國的Mythic,
Syntiant,國內的知存科技等,並受到國內外主流半導體企業與資本的產業投資,包括Lam Research、Applied Materials、Intel、Micron、ARM、Bosch、Amazon、Microsoft、Softbank、Walden、中芯國際等等。相比較而言,Nor Flash在技術/工藝成熟度與成本方面在端側AIoT領域具有優勢,三大公司均宣佈在2019年末實現量產。

端側智能應用特徵與存算一體芯片需求

隨着AIoT的快速發展,用戶對時延、帶寬、功耗、隱私/安全性等特殊應用需求,如圖3(a)所示,驅動邊緣端側智能應用場景的爆發。首先,時延是用戶體驗最直觀的感受,而且是某些應用場景的必需要求,例如自動駕駛、實時交互遊戲、AR/VR等。考慮到實時產生的數據量、實際傳輸帶寬以及端側設備的能耗,不可能所有運算都依賴雲端來完成。例如,根據英特爾的估計,每輛自動駕駛汽車每天產生的數據量高達400GB[1];再例如,每個高清安防監控攝像頭每天產生的數據量高達40GB-200GB。如果所有車輛甚至所有攝像頭產生的數據都發送到雲端進行處理,那不僅僅是用戶體驗,即使對傳輸網絡與雲端設備都將是一個災難。而且,通常邊緣數據的半衰期都比較低,如此巨大的數據量,實際上真正有意義的數據可能非常少,所以並沒有意義把全部數據發送到雲端去處理。此外,同類設備產生的大部分數據通常具有極高的相同模式化特徵,藉助邊緣端/終端有限的處理能力,即可以過濾掉大部分無用數據,從而大幅度提高用戶體驗與開銷。增強用戶體驗的另一個參數是待機時間,這對便攜式可穿戴設備尤爲關鍵。例如,智能眼鏡與耳機,至少要保證滿負荷待機時間在一天以上。因此終端設備的功耗/能效是一個極大的挑戰。其次,用戶對隱私/安全性要求越來越高,並不願意把數據送到雲端處理,促使本地處理成爲終端設備的必備能力。例如,隨着語音識別、人臉識別應用的普及,越來越多的人開始關心隱私泄露的問題,即使智能家居已經普及,但很多用戶選擇關閉語音處理功能。最後,在無網環境場景下,邊緣終端處理將成爲必需。相應地,不同於雲端芯片,對於端側智能芯片,其對成本、功耗的要求最高,而對通用性、算力、速度的要求次之,如圖3(b)所示。因此,依靠器件尺寸微縮來繼續提高芯片性能的傳統技術路徑在功耗與成本方面都面臨巨大挑戰;而依賴器件與架構創新的技術路徑越來越受重視。2018年,美國DARPA“電子復興計劃”明確提出不再依賴摩爾定律的等比例微縮道路,旨在尋求超越傳統馮諾依曼計算架構的創新,利用新材料、新器件特性和集成技術,減少數據處理電路中移動數據的需求,研究新的計算拓撲架構用於數據存儲與處理,帶來計算性能的顯著提高。業界普遍認爲,存算一體芯片技術將爲實現此目標提供可行的技術路徑之一。

在這裏插入圖片描述

圖3、(a)邊緣端側智能應用場景的需求特徵;Adapted from Gartner, 2019;(b)雲端與端側智能芯片不同的性能需求

存算一體芯片主流研究方向

根據存儲器介質的不同,目前存算一體芯片的主流研發集中在傳統易失性存儲器,如SRAM、DRAM,以及非易失性存儲器,如RRAM,PCM,MRAM與閃存等,其中比較成熟的是以SRAM和MRAM爲代表的通用近存計算架構。值得注意的是,本章將主要討論基於存算一體芯片的深度學習神經網絡加速器實現。在此類應用中,95%以上的運算爲向量矩陣乘法(MAC),因此存算一體主要用來加速這部分運算。

(1) 通用近存計算架構

如圖4所示,這種方案通常採用同構衆核的架構,每個存儲計算核(MPU)包含計算引擎(Processing Engine, PE)、緩存(Cache)、控制(CTRL)與輸入輸出(Inout/Output, I/O)等,這裏緩存可以是SRAM、MRAM或類似的高速隨機存儲器。各個MPU之間通過片上網絡(Network-on-Chip, NoC)進行連接。每個MPU訪問各自的緩存,可以實現高性能並行運算。典型案例包括英國Graphcore公司,其測試芯片集成了200-400MB的SRAM緩存以及美國Gyrfalcon
Technology公司,其測試芯片集成了40MB 嵌入式MRAM緩存。

(2) SRAM存算一體

由於SRAM是二值存儲器,二值MAC運算等效於XNOR累加運算,可以用於二值神經網絡運算。如圖4(a)和圖4(b)爲兩種典型設計方案,其核心思想網絡權重存儲於SRAM單元中,激勵信號從額外字線給入,最終利用外圍電路實現XNOR累加運算,結果通過計算器或模擬電流輸出,具體實現可以參考[31,32]。這種方案的主要難點是實現大陣列運算的同時保證運算精度。
在這裏插入圖片描述
圖4、SRAM存算一體單元設計;(a)12管設計[31];(b)8管設計[32](3) DRAM存算一體

基於DRAM的存算一體設計主要利用DRAM單元之間的電荷共享機制[33,34]。如圖5所示爲一種典型實現方案[33],當多行單元同時被選通時,不同單元之間因爲存儲數據的不同會產生電荷交換共享,從而實現邏輯運算。這種方案的問題之一是計算操作對數據是破壞性的,即每次執行運算時,DRAM存儲單元存儲的數據會破壞,需要每次運算後進行刷新,帶來較大的功耗問題;另一個難點是實現大陣列運算的同時保證運算精度。
在這裏插入圖片描述
圖5、基於DRAM的典型存算一體設計原理[33]

(4)RRAM/PCM/Flash多值存算一體

基於RRAM/PCM/Flah的多值存算一體方案的基本原理是利用存儲單元的多值特性,通過器件本徵的物理電氣行爲(例如基爾霍夫定律與歐姆定律)來實現多值MAC運算[13,21-25],如圖7所示。每個存儲單元可以看作一個可變電導/電阻,用來存儲網絡權重,當在每一行施加電流/電壓(激勵)時,每一列即可得到MAC運算的電壓/電流值。實際芯片中,根據不同存儲介質的物理原理和操作方法的不同,具體實現方式會有差異。由於RRAM/PCM/Flash本身是非易失性存儲器,可以直接存儲網絡權重,因此不需要片外存儲器,減小芯片成本;同時,非易失性可以保證數據掉電不丟失,從而實現即時開機/關機操作,減小靜態功耗,延長待機時間,非常適用於功耗受限的邊緣終端設備。目前,基於RRAM/PCM的存算一體技術在學術界是非常熱的一個研究方向,遺憾的是,因爲RRAM/PCM成熟度等問題,目前尚未產業化,但未來具有非常大的潛力;基於Flash的存算一體技術相對較成熟,受到產業界廣泛關注,預計於2019年末量產。
在這裏插入圖片描述
圖6、基於RRAM/PCM/Flah的MAC運算基本原理[13]

(5)
RRAM/PCM/MRAM二值存算一體

基於RRAM/PCM/MRAM的二值存算一體主要有兩種方案。第一種方案是利用輔助外圍電路,跟上述SRAM存算一體類似,如圖7(a)所示爲一種典型的可重構存算一體實現方案[35],其可以在存儲應用與存算一體應用之間進行切換。由於RRAM/PCM/MRAM非易失性電阻式存儲原理,其具有不同的電路實現方式,具體參考[35-37]。第二種方案是直接利用存儲單元實現布爾邏輯計算[28,38-40],如圖7(b)所示,這種方案直接利用存儲單元的輸入輸出操作進行邏輯運算,根據不同存儲器存儲單元的結構與操作方法不同,可以有不同的實現方式,具體可以參考[28,38-40]

在這裏插入圖片描述

圖7、基於RRAM/PCM/MRAM的存算一體基本原理;(a)利用外圍電路方案[35];(b)利用存儲單元方案[40]

應用前景與挑戰

存算一體芯片技術,尤其是非易失性存算一體芯片技術,因其高算力、低功耗、低成本等優勢,未來在AIoT領域具有非常大的應用前景。存算一體芯片大規模產業化的挑戰主要來自兩方面:(1)技術層面;存算一體芯片涉及器件-芯片-算法-應用等多層次的跨層協同,如圖9所示。例如,細分應用場景的不同性能需求決定了神經網絡算法與芯片的設計,算法依賴神經網絡框架、編譯、驅動、映射等工具與芯片架構的協同,芯片架構又依賴器件、電路與代工廠工藝。這些對存算一體芯片的研發與製備都是相當大的一個挑戰,尤其需要代工廠的支持。特別是基於新型存儲介質的存算一體技術,器件物理原理、行爲特性、集成工藝都不盡相同,需要跨層協同來實現性能(精度、功耗、時延等)與成本的最優。

(2)產業生態層面;作爲一種新興技術,想要得到大規模普及,離不開產業生態的建設,需要得到芯片廠商、軟件工具廠商、應用集成廠商等的大力協同、研發、推廣與應用,實現性能與場景結合與落地,尤其在面對傳統芯片已經佔據目前大部分已有應用場景的前提下,如何突破新市場、吸引新用戶是快速產業化落地的關鍵。英偉達GPU的成功給了我們很好的啓示與借鑑。一方面需要優化工具與服務,方便用戶使用;另一方面需要儘量避免競爭,基於存算一體芯片的優勢,開拓新應用、新場景、新市場,創造傳統芯片無法覆蓋的新型應用市場。
在這裏插入圖片描述
圖8、存算一體器件-芯片-算法-應用跨層協同示意圖

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章