

【摘要】 ? ?數據傳輸在異構系統構架中是一個瓶頸問題,類似在計算機系統中的內存墻問題,此類問題的產生是因為,多年來計算機內部存儲技術(主要是指內存)一直跟不上處理器技術在延遲和功耗方面的進步,此類問題也被稱為“內存墻”(Memorywall)問題,體現近內存計算思想的計算機系統的第一次出現可以追溯到20世紀90年代初,用于數據處理的原型機則由 Kozyrakis 等人提出,當時被稱之為矢量 IRAM(VIRAM、)。研究人員開發了一個開發板上嵌入式DRAM(eDRAM)的矢量處理器,用來處理多媒體應用中的數據并行性計算的部分。雖然取得了一定的成果,但這些近內存系統并沒有真正滲透到市場,成果仍然有限。其中一個主要原因是技術限制,主要是因為由于計算處理技術和內存技術流程的差異,以及它們能夠在矢量處理器集成的芯片上內存大小的限制。
【關鍵詞】 ? ?數據傳輸 ? ?程序 ? ?計算機加速器
經過近20年的發展,近內存計算系統的研究正在多個技術及社會需求背景下重新引起學界、廠商的關注。這種關注主要歸因于以下三個原因。
1.新的內存封裝技術的進步,包含3D和2.5D等內存堆疊技術的進步,將一系列邏輯和內存混合在同一包中,帶來了了全新的計算機存儲介質。
自2011年以來,NVM技術一直非常活躍,其中NVMe協議從目前在單獨的協議規范中,出現了三個角度的演變。除了原有的基本NVMe規范之外,NVMe管理接口規范(NVMe-MI),該規范介紹了如何管理通信和設備(設備發現、監視等)和NVMe通過結構規范(NVMe-oF),該規范實現了通過網絡驅動與非易失性存儲通信。隨著時間的推移,隨著更多不同行業的用戶開始采用NVMe,新用戶將描述他們對新功能的需求,并引入規范的新思路。NVMe協議的采用仍在增長,并且正在產生創新。硬件和軟件公司正在通過引入新的封裝外形、創造的新產品和電器結構等來尋找新的方法來進入傳統的內存構架及近內存計算。可以預見NVMe生態系統的重點是為用戶提供擴展到數據中心或超大規模基礎結構中去。
2.將計算遷移到臨近到數據存儲的位置,可以繞過內存包引腳計數限制,從而避免數據移動導致的性能和能量瓶頸。
傳統的馮諾依曼體系結構數據流向存在的問題是過分的以計算為中心導致的。性能、能耗,等問題一直困擾著這種二元結構,因此新的方法將計算過程遷移到臨近到數據存儲的位置,也就是說在盡量靠近數據的地方來處理數據或者盡量減少數據的訪問來完成計算,從而繞過內存包引腳計數限制,將處理推送到數據中間去或者推送到存儲中間去,從而提升性能降低能耗。
3.隨著云計算、大數據、物聯網、移動互聯及區塊鏈在經濟活動、社會活動等領域中的應用,現代數據密集型應用的出現,需要更新的計算架構。
研究提出了各種近內存計算體系的設計,并證明了這些設計在提高許多應用場景中的性能提升。在這些研究中,NMC已表現出諸如存內計算(PIM,Processing-in-Memory,也被稱為in-memory computing)、近數據處理(NDP,Near data processing)、近內存處理(NMP,Near memory processing)等概念。上述這些概念和計算思路都是為了平衡處理器和存儲之間實際上發展的是不平衡的現狀,其核心原則是將計算機處理數據的過程更接近內存。這些技術研究進一步打破了內存的物理約束及日益限制了通用處理器性能改進的潛力。這一趨勢在登納德縮放和摩爾定律的當前放緩中已經很明顯。
使用特定的應用計算加速器來發展越來越具有廣泛的前景,以及更好的每瓦性能。與為應用程序加速而建立的GPU相比,FPGA平臺可用的內存帶寬發展迅猛,例如,Al在他們的調查論文中描述了未來利用FPGA加速內存數據庫的方法。
典型的加速器近內存計算體系結構中,CPU、FPGA或ASIC用作與內存本身分開的處理單元。主流采用近內存計算的一個特別挑戰是從加速器對主機進程的虛擬內存進行高效的緩存一致訪問。新興的互連標準,如CAPI/OpenCAPI 和CXL通過提供緩存一致性,促進CPU和計算內存之間的數據交換。
1.以傳統的GPU(圖形處理單元)作為加速單元的近內存計算研究方面,以Cho等人提出了一種集成 GPU 的新 SSD 架構XSD,XSD基于 MapReduce 框架提供的 API 集,允許用戶在應用程序中調動并行運算,并利用嵌入式 GPU 提供的并行運算算力。同時,為了更好的性能和利用率,該框架也優化運算策略,以克服 SSD 架構中的缺點的影響。
Hsieh等人提出了通過透明的CPU運算卸載和對應GPU運算映射的一種近內存構架,首先它根據自動標識代碼卸載CPU運算到邏輯層的GPU。其次,通過軟硬協作機制,實現預測卸載代碼將訪問的內存保留在內存堆棧中,以最大限度地減少運算帶寬消耗,從而實現近內存計算。
2.通過CPU優化/運算構架等實現對數據流控制也是近內存計算的方向之一,在此方面學術上研究非常活躍。其中以Kang等人提出了通過隔離不同的近內存計算設備內的數據流來保證低能耗、高并行性、低主機內存占用率和更好的近內存計算性能。Seshadri等人]提出的允許程序員增強和擴展 SSD 的Willow構架,在其上運行的 SSD 應用程序為應用程序提供對 SSD 內容的低延遲、高帶寬訪問,同時減少 IO 處理在主機處理器上設置的負載。
3.在特定于應用程序的加速器(Application specific accelerator 簡稱ACC)來實現近內存計算方面,Ahn等人使用支持計算的內存命令實現簡單的內存計算,并使用專用指令來調用內存中計算(圖3)。這些操作與現有編程模型、緩存一致性協議和虛擬內存機制進行互操作,無需修改。同時,該研究還引入了一個簡單的硬件結構,用于監視啟用 PIM 的指令在運行時訪問的數據位置,以便當指令判斷當可以從在較大緩存中受益時,在主機處理器(而不是在內存中)自適應地執行指令。Gu等人提出了Biscuit,一個新的近數據處理框架,專為現代固態驅動器。t 允許程序員編寫數據密集型應用程序,以分布式但無縫的方式在主機系統和存儲系統上運行。為了提供高級編程模型,Biscuit運算構架,該構架以數據流的概念為構建,數據處理任務通過類型端口和數據排序端口進行通信。Biscuit實際部署在后端,因此不區分在主機系統和存儲系統上運行的任務,因此具有通用性等理想特征。
4.以FPGA為加速單元的近內存計算研究,Jun等人提出了基于部署在FPGA上的持久性內存實現近內存計算的模型,Istv ?an等人提出了Caribou,一種基于TCP/IP的近內存計算架構。
參考文獻
[1] J. Ahn, S. Hong, S. Yoo, O. Mutlu, and K. Choi, “A Scalable Processing-in-Memory Accelerator for Parallel Graph Processing,” in 2015 ACM/IEEE 42nd Annual International Symposium on Computer Architecture (ISCA), June 2015, pp. 105–117.
[2] P. C. Santos, G. F. Oliveira, D. G. Tom?e, M. A. Alves, E. C. Almeida, and L. Carro, “Operand Size Reconfiguration for Big Data Processing in Memory,” in Proceedings of the Conference on Design, Automation & Test in Europe. European Design and Automation Association, 2017, pp. 710–715.
趙曉菲(1987.10-),女,漢族,河北衡水人,研究生,高職教師,研究方向:內存計算