DPU600是DapuStor(大普微)在業內首創的智能存儲SoC,基于最新的12nm FinFET工藝,可作為SSD主控提供業界領先的性能,還集成了可計算存儲平臺,用于ASIC加速的機器學習架構等。
上期講到得益于DPU600內置的應用處理器平臺,可以將DPU600作為存算一體化固態硬盤(PIS-SSD),并討論了相關架構和實現技術。本期小編將進一步討論計算存儲的功能,這是小編又付出N個雞腿后,從研發小伙伴們手里“炸”出來的干貨。
同樣地,小編需要先重復一下背景:
在大數據應用的背景下,海量的數據傳輸占用了各類總線、網絡帶寬,與此同時,固態硬盤(SSD)本身含有的CPU的算力也越來越強。為了減少大數據量的傳輸,從而衍生出各類對存儲計算一體化(PIS-Processing In Storage)的需求,即在數據端固態硬盤內進行計算處理,也經常稱之為“近存儲計算”,僅傳輸結果和部分數據,從而減少海量數據傳輸,減輕總線和網絡負載(Offloading)。
讀者或許想說:這些上次說過了?
小編……,打Patch:雖然DPU600內置了PIS模塊,但是需求永遠是在變化和前進的(研發小伙伴最頭痛的需求的快速變化),那么DPU600 如何應對?特別是特定計算要求的情況下,如何快速而靈活地滿足需求?
首先說說現有的技術,如圖1,是一種計算靠近存儲的最通用方法:專用加速卡(計算模塊)和存儲都放置在PCIe總線,Host控制數據流在PCIe總線流動。顯然,此種方式對IO(PCIe,RAM)的占用是非常的高。
圖1
有瓶頸就有新的方案產生,業界有團隊開始研發新的方案,如圖2,即P2P Connection方案(此P2P不是坑各位錢的網絡金融,類似各位下載用過的P2P,Peer2Peer),通過PCIe Bus,加速卡和存儲器之間直接傳輸數據,以此Off Loading CPU和RAM的負載。
圖2
說到這里,大家想到了DPU600肯定有什么東東,可以在此類應用需求上發揮作用?沒錯,DapuStor正在探索在DPU600上實現一種存儲計算一體的固態硬盤(SSD)。
圖3
先看一下,我們的設計基于如圖3,相對于圖1,2,其思路是:將所有運算放置在固態硬盤(SSD),其中為了彌補控制器本身計算能力擴展性有限的弱點,引入了加速器設計,并集成到一個PCB內。這樣,可以進一步減輕負載(Offloading)到存儲器(固態硬盤)內,相對于P2P方案,將計算加速器放置在SSD內(主機視角),從而不走主機上PCIe Bus。
為何如此設計?
1. 由于DPU600具有雙PCIe模塊,可以同時滿足和主機通信(PCIe/NVMe),以及和加速器通信(PCIe/DPU-LINK),即滿足數據的存儲和計算兩種通路需求,一個接口用于數據存儲,另一個接口用于數據計算。其中運用DPU600中專門設計的DPU-LINK技術,減低傳輸延時,提升性能。
2. 由于DapuStor在存儲計算深耕多年,形成了諸多存儲計算的IP,可以應用到加速器(FPGA)里面。根據各自不同特性系統的需求,可以配置不同算法模塊。
如圖4,是我們設計的框架圖:上半部分和普通的固態硬盤基本一致,下半部分是加速器的部分,目前是以FPGA為主體,其中由于計算的需求,可單獨設置DRAM。但對主機而言保持一個接口,當然為了兼容性考慮,也備份了加速器的PCIe接口,便于擴展主機和加速器之間的通信。
圖4
大家可能比較興趣的技術點: DPU600和FPGA的內部設計。受限于小編手里雞腿有限,只能“炸”到基本模塊框架圖,如圖5。上圖是DPU600內部相關模塊構成,下圖是FPGA相關模塊構成。
圖5
小編根據模塊框圖,這里把關鍵模塊進行探討一下:
1. DPU600存儲系統,包括
PCIe Controller/PHY和NVMe Controller,應用于前端模塊(FE)和主機通信協議棧,命令數據收發的硬件處理。
NAND Flash Controller/PHY,應用于后端模塊(BE)閃存數據讀寫和相關閃存命令的硬件處理;
DDR Controller/PHY外連DRAM設備,應用于數據緩存。
CPU系統,包含MMU,CCI等典型應用處理器的功能模塊,用于運行固件和Linux 操作系統;
其中和計算相關模塊:
LSTM,是基于神經網絡算法的計算模塊,可以用于預測IO趨勢,優化SSD性能。
DPU-LINK,是基于PCIe特性的硬件Buffer傳輸管理模塊,用于優化PCIe數據傳輸管理,減少數據傳輸延時。
2.FPGA加速器計算系統,包括:
ADA(數據分析處理),用硬件實現數據的預分析和處理,包括但不限于:
ASCII數據轉換(dconv)功能
正則匹配字符串查找(grep)功能
預排序處理(sort)功能
LSTM,是基于神經網絡算法的計算模塊,是DPU600內LSTM的強化版本。
PU, 是數據計算處理專用單元,優化數據處理進程。
其他通用計算模塊,包括但不限于:
壓縮(Compresssion)和解壓(Decompression),
另外引入客戶IP接口,相關處理包括但不限于數據搜索(Search),數據比較(Compare),數據標簽(Tag),數據索引(Index)。
小編在這里Copy過來:一種計算應用場景,在DPU600+Accelerator的加持下,下面所述的計算需求更容易Offloading到計算存儲系統內。
SQL Query一種典型的數據庫應用,傳統的所有步驟步驟均是在主機計算完成。在引入存算一體化存儲器之后,可以把大部分查詢計算移入到存取器內(加速器內),如圖6,可以大大減少IO傳輸,是一種典型的 “近存儲計算”應用。
原文標題:SSD主控芯片, 除了做SSD還能干點啥?- III
文章出處:【微信公眾號:大普微】歡迎添加關注!文章轉載請注明出處。
責任編輯:haq
-
芯片
+關注
關注
454文章
50456瀏覽量
421948 -
SSD
+關注
關注
20文章
2851瀏覽量
117243
發布評論請先 登錄
相關推薦
評論