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