DPU600是DapuStor业内首创的智能存储SoC,基于最新的12nm FinFET工艺,可作为SSD主控提供业界领先的性能,还集成了可计算存储平台,用于ASIC加速的机器学习架构等。同时得益于DPU600内置的应用处理器平台,以及诸多功能接口,用户可以在DPU600上开发更多“隐藏功能”。
小编在这里先说道说道一个背景:
在固态硬盘量产测试和可靠性测试过程中,都是运用测试机柜(SSD Tester)实现批量测试(比如DapuStor 产品之一 MAT,如图1)。
DapuStor图1
其中内在设计方法都是Server+Client(x86)+DUT模式(如图2):Server负责各个测试节点(Client)的控制操作(更新/维护测试脚本,启动停止测试,收集测试结果等), Client负责对DUT(固态硬盘SSD)实际交互(测试操作,如读写,上下电等)。由于都是基于x86系统的测试平台,即x86平台作为测试主机,SSD作为测试品。
这种系统也有一点点“小遗憾”:
1. x86成本略贵,面积较大,功耗高,难以做成更高密度的测试机柜:一般一个x86子系统,由于受限总线速度, 最多做8个槽位,测试机柜放32个x86子系统,即最大可测DUT为256个。
2. 由于x86的PCIe RC是不开放给用户的,对于底层PCIe PHY无法进行编程,从而使测试项相对减少。
图2
大家可能比较疑惑,这个SSD Tester是测试SSD的,和作为SSD主控的DPU600有神马关系?小编这里就祭出DPU600隐藏功能:
第一个大招:DPU600所含PCIe模块是多模的,即不仅具有PCIe RC功能,也有PCIe主机的功能,而且支持多种PCIe/SPI/UART Ethernet网卡。
同时再透露一下:DPU600内部还有诸多硬件加速模块,用于数据比较,Pattern产生等数据处理。
第二个大招:DPU600是可以运行Linux系统,这是前面提到DPU600内置的应用处理器:采用ARM A系列CPU,从而支持运行Linux系统,而且具有多核架构,提供强劲的性能,完全满足作为测试主机(Client)对操作系统(OS)的需求,同时支持Ethernet,以满足和Server通信;
同时再透露一下:DPU600其PCIe相关底层控制器可以完全对外开放,可编程自定义更多测试项,比如PCIe 控制器各层的注错,PCIe 兼容性测试等。
于是整个方案变成了都是Sever+Client(SoC)+DUT模式(如图3),这里的SoC就是用DPU600.
图3
有人肯定想问,小编你说这么多,好处呢?
优点肯定是有滴:
SoC方案系统仅用了所必须的外设器件,从而整个PCB板子非常小,从而成本低(估算大概只有X86的十分之一),面积小,功耗低(SoC相比x86 CPU功耗差距非常大),可以做成高密度的测试机柜:假设一个SoC子系统连接2个槽位,但其面积只有x86 十分之一,测试机柜最少可以放256个Soc子系统,即最大可测DUT为512个。
作为工科男的小编,非常理解技术控的需求点,这里需要必须继续透露一些技术点,满足广大技术控需求:下面主要说说主要设计。
整体系统如图3,Server负责各个测试节点(Client)的控制操作(更新/维护测试脚本,启动停止测试,收集测试结果等), Client负责对DUT(固态硬盘SSD)实际交互(测试操作,如读写,上下电等)。其中Client是基于SoC系统的测试平台,即SoC平台作为测试主机(Host),SSD作为测试品(DUT)。Server和Client之间通过网络连接,Client和DUT之间,通过标准总线(目前主流是PCIe)连接。
图4
1.1 硬件系统设计
如图4,硬件系统设计上,以SoC为中心组成一个系统(类似计算机最小系统),连接不同的硬件模块:通过DDR 接口连接动态随机存储器(DDR,就是内存),用于数据缓存,运行Linux操作系统所需内存等;
通过PCIe总线连接多个SSD,这是大家可能比较兴趣的技术点,小编在这里又要透露一下:有两种连接方式,如图5:第一种直连,可连接数量取决SoC所含PCIe RC模块数量(当前开发中的产品支持为2个),第二种通过Switch扩展,可以连接N个;
通过PCIe/SPI/UART连接与之匹配的网卡,用于和Sever进行网络通信;
图5
大家现在肯定非常想知道DPU600内部结构,那么这里必须画个图6——SoC内部主要结构模块:
PCIe Controller/PHY 是多模的,其中RC模式用于PCIe主机功能,外连SSD设备;如有需要也可以连接PCIe网卡。
DDR Controller/PHY 用于随机存储功能,外连DRAM设备;CPU系统,包含MMU,CCI等典型应用处理器的功能模块,用于运行Linux操作系统;外设模块,如SPI,UART,用于连续SPI/UART设备,如SPI/ UART 网卡等;Specific Data Processor, 用于数据处理的硬件模块,加速数据比较,特定数据Pattern的生产等;NVMe Controller和NAND Flash Controller/PHY,用于SSD 产品;
图6
1.2 软件系统设计
软件系统设计上,以OS(Linux)为核心组成一个系统(类似最小操作系统),如图7。
PCIe Host Module,包含PCIe RC相关驱动,接口和协议栈,用于作为Host的软件处理,如和外部SSD Device进行读写操作等。
Test Tools,作为承接测试用例的主体,根据不同的测试需求进行开发, 包含诸如异常上下电,性能统计,测试数据Pattern的产生,测试数据比较等,在前面提到为了加速数据处理,通过调用((TAL-》MDL-》VDL))底层用户驱动来使用SoC内的硬件加速模块(Specific Data Processor)实现;同时为了对PCIe相关测试可编程,自定义更多测试项,通过调用底层用户驱动(VDL)来使用SoC内的PCIe 控制器配置接口来实现。
Software API,作为和外部Server通信的主体,根据不同的通信需求进行开发,如SSH/UDP/FTP等,承接不同命令包的接收,解析等。
1.3 总体测试过程
如图8,显示出我们基于DPU600的特别之处
图8
至此,利用DPU600开发出SSD Tester的功能介绍完毕,这是DPU600众多功能的一种,更多的功能有待我们继续努力开发!
编辑:jq
-
SSD
+关注
关注
20文章
2851浏览量
117238 -
DPU
+关注
关注
0文章
354浏览量
24132 -
FinFET
+关注
关注
12文章
247浏览量
90149
原文标题:SSD主控芯片,除了做SSD还能干点啥?
文章出处:【微信号:dputech,微信公众号:DapuStor】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论