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文章
50430浏览量
421899 -
SSD
+关注
关注
20文章
2851浏览量
117238
发布评论请先 登录
相关推荐
评论