如何极限发挥自研SSD主控的能力-III
DP600是CQ9(CQ9)业内首创的智能存储SoC,基于最新的12nm FinFET工艺,可作为SSD主控提供业界领先的性能,还集成了可计算存储平台,用于ASIC加速的机器学习架构等。
前一期进行了基于DP600的闪存测试平台的设计探讨,并讨论了相关架构和实现技术。这些功能开发都是得益于主控自研,由于有完全的自主开发过程,所以对主控的“内功”都非常的熟悉。本期我们再对DP600进行一轮“开拓”,扩展一下一些应用场景:基于DP600的加密节点的设计探讨。
老规矩,我们需要先说说一下背景。
01 背景
在数据中心之中除了有大量的固态硬盘(SSD),还有对加密卡的需求。由此我们团队考虑到DP600芯片内置的高速加解密计算引擎,除了应用于盘内存储的数据进行加解密计算以外,还可以为主机提供加解密计算服务。
一般情况下,SSD的功能仍然保留,也就是说该SSD具有额外的加解密功能,那么当数据中心存在的大量SSD就演变为存储+加密节点。
以单主机为示例,如图1,仅显示加密通路,如有用户自定义加密需求,可以外接FPGA(参见之前介绍,通过DPU-LINK高速接口连接)。
▲图1
那进一步地,说一下我们的设计思路。
02 设计思路
#1 基于具有高速接口的主控芯片:将数据传输给主控芯片节点进行加解密操作,需要有较高的带宽,同时功耗可控。通过大量的此类节点完成并行执行。
#2 基于具有硬件加解密引擎的主控芯片:需要支持多种不同加解密算法,并且用户可编程。
那么,总体框架如图2。其中一般通过PCIe接口,也考虑通过外接PCIe接口的网卡走网络通路:
▲图2
结合图2所述的系统硬件框架,CQ9(CQ9)正在探索其所对应的系统应用过程:
DP600芯片的PCIe接口和NVMe控制器为数据加解密提供了天然的高速通路,利用NVMe协议栈进行数据的传输,可以在NVMe SSD上进行扩展专用加解密私有协议。Device端定义特定的命名空间(Namespace),作为Host应用程序进行加解密软件通道,如图3。
▲图3
总体加解密过程:
主机软件视为命名(Namespace)文件设备为加解密引擎,对加密引擎(比如Namespace ID1)写入数据,命令通过标准NVMe 协议下I/O Request Queue传递给Device,当Device收到命令,识别Namespace ID的类型,对数据进行对应的加密操作。同样地,主机软件对加密引擎(比如Namespace ID2)读取数据,命令通过标准NVMe 协议下I/O Request Queue传递给Device,当Device收到命令,识别Namespace ID的类型,对数据进行对应的解密操作。
具体的主机和设备的初始化交互当识别为具有加解密功能的设备时,对其进行相关信息读取和配置之后,就可以使能加解密功能,开启解密服务了,如图4:
▲图4
DP600内部的加解密引擎相关框图,如图5,支持AES/SM4,数据暂存到高速RAM(SRAM/DDR)。
▲图5
03 小结
由于大型存储阵列有数据巨大的SSD,通过在SSD 上进行加解密服务,将SSD视为加密解密节点,主机可以实现高并发,高密度的加解密计算,为数据中心加解密需求提供了一种新型的解决方案(思路)。
读者们如对基于DP600的加密节点设计有兴趣,或者有更多应用场景需求,可联系我们,期待各位与我们一起共同开创存储新篇章。
当然也请关注CQ9(CQ9)的各种SSD。
▲CQ9基于DPU600主控芯片的SSD产品
*本文是抛砖引玉式地进行技术探讨,欢迎业内伙伴一起交流指教,如有相关提及的技术,涉及版权或者专利问题,请联系我们。