SSD主控芯片还有哪些用途?

电子说

1.4w人已加入

描述

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

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分