zynq 级联多个ssd方案设计(ECAM BUG修改)

本文讲解采用zynq7045芯片如何实现200T容量高速存储方案设计,对于大容量高速存储卡,首先会想到采用pcie switch级联方式,因为单张ssd的容量是有限制的(目前常见的m.2接口容量为4TB,U.2接口容量为16TB),pcie switch目前主流型号是pex8748,刚好这个型号有对应的国产8748,国微8748现在用得很成熟了,虽然该芯片有一些bug,但作者都已经打上了patch完美解决了该问题。

本次设计方案框图如下所示,8748一共有48个lane,最大port数量为12,zynq下面通过pcie 2.0 x8连接1级switch,1级switch在通过5路gen3 x8连接5个二级pcie switch,二级switch下面通过pcie 3.0 x4连接10张gen3 x4 ssd,这样一共可以支持5 *10 = 50张ssd。

对于zynq芯片中pcie硬核选择有两种。

方案一采用axi-bridge硬核,该硬核最大支持pcie 2.0 x4,mps=256,这种方式速度会受到硬件的限制,但实现更加简单。

方案二采用pcie Series硬核,该硬核最大支持pcie 2.0 x8,mps=256或者512(根据芯片等级有区别),如果是gen1 mps=1024,一般的ssd mps=128,256,512.该ip速度会很快,但是实现难度会更大。

这两个ip都是可以作为host bridge使用,具体选用哪一个结合技术实力和方案需求综合评估。

这种方案会面临的两个问题

  1. ECAM 窗口很小,导致不能访问所有设备的配置空间,作者已经解决该问题。(zynq默认采用的是mem方案访问配置空间,也可以采用config tlp方式访问配置空间)

  2. 多张ssd同时访问会出现竞争和超时问题,这个需要对nvme协议做出修订

fpga设计框图

在zynq级联方案中,作者已经实现标准ext4文件系统,用户可以独立读写每一张ssd,也可以将多张ssd组成raid0方式读写,在使用gen2 x4这个ip上,标准ext4文件系统速度可以做到1.2GB/s(这里的速度很保守,作者是按照国产ssd的最低速度和稳态速度写的),用户可以将ssd对应的存储卡拔插后插入到windows电脑上,windows可以识别到标准的ssd,并且会自动挂在成标准的windows盘符。

级联ssd上电枚举打印如下:

相关推荐
HeroKern1 年前
ZYNQ NVME高速存储之EXT4文件系统
fpga开发·高速存储·ext4存储·zynq高速存储·pcie switch 存储·nvme 高速存储