ZYNQ+NVMe 小型化全国产存储方案

  • 1、背景说明
  • 2、设计方案
    • 2.1 FPGA设计方案
      • 2.1.1 NVMe控制器
      • 2.1.2 PCIE控制器
    • 2.2 软件设计方案
      • 2.2.1 NVMe磁盘驱动设计
      • 2.2.2 NVMe EXT4文件系统管理
  • 3、测试结果
    • 3.1 硬件测试平台说明
    • 3.2 裸机测试,PCIE Gen2
    • 3.3 裸机测试,PCIE Gen3
    • 3.4 带文件系统测试,PCIE Gen2
  • 4、总结

1、背景说明

针对小型化的存储场景,使用单片ZYNQ7045/7100(复旦微FMQL45T900/FMQL100TAI)FPGA,实现数据接口、存储、文件系统管理、导入导出等功能。
实现规格:
1) 2盘组成RAID阵列,双盘4TB容量
2)EXT4标准文件系统
3)EXT4文件系统下2GB/s的写、读速度;自定义文件系统4GB/s的写、读速度。
4)万兆网网盘导出、千兆网盘导出、FTP导出

2、设计方案

2.1 FPGA设计方案

2.1.1 NVMe控制器

FPGA实现NVMe控制器,配合PCIe(软核/硬核),实现对NVMe电子盘的驱动控制功能。

PCIe实现2.0/3.0等不同的速率规格,可以针对不同的速率要求情况。
NVME控制器主要由PCIE接口适配器、AXI交换桥、PRP计算模块以及命令/文件系统通道模块构成。
PCIE接口适配器通过逻辑实现AXI的Master接口以及Slave接口到PCIE的接口转换。由AXI的Master接口实现盘主动读写内存的功能,由AXI的Slave接口实现PS对盘的SQ/CQ队列的读写。
PRP计算模块实现解析盘请求的PRP2地址,计算、传送内存页地址给盘,从而实现大于4KB的读写请求的内存地址传送功能。
命令通过通过解析PS传送过来的SQ指令,填充RPR1、PRP2地址,使数据通道始终指向PL DDR,以及文件系统数据始终指向PS DDR,文件系统通道由盘主动读写PS DDR实现。
数据通道通过盘解析SQ指令,通过AXI桥,主动访问PL DDR实现。

2.1.2 PCIE控制器


PCIE控制器主要完成PCIE协议传输层以及数据链路层协议。组TLP包发送给PHY控制器;对PHY层数据解析成TLP、LCRC、Sequence number等字段;实现ACK/NCK协议保证报文的可靠性;流控制管理,根据链路层报文更新credit值。

PHY控制器主要实现PMA/PCS层协议,实现高速串行总线的串并转换以及8B/10B编码等功能。接口适配功能将TL层自定义接口转换成标准的AXI Stream总线接口。

PCIE控制器可使用软核实现,也可以使用器件内的硬核。

2.2 软件设计方案

SOC处理器PL和PS协同工作,共同完成数据高速实时记录、传输、存储、加卸载和文件管理等功能。 SOC内部采用异构的架构,PL完成带宽要求高、实时性要求高的底层协议转换处理,如以太网UDP协议处理、NVMe协议处理等,PS完成数据量比较小的处理,如文件系统管理、以太网L3以上的相关处理等。同时,PS还负责单板管理、版本在线升级、温度、电源电压等健康检测。

FPGA内部实现接口处理,包解析处理,对于要记录和加载的数据,经过包解析后会送到核心交换模块,进行存储接口的调配以及和PS的文件系统管理的交互。
软件驱动方案如下:

2.2.1 NVMe磁盘驱动设计

Linux应用层接受相关读写NVMe磁盘指令,通过PCIe硬核驱动将控制命令队列发送给自定义NVMe磁盘驱动,自定义驱动程序根据数据类型不同,然后将队列存放于PS端的DDR中,并通过门铃告知NVMe磁盘。磁盘接收到门铃通知后,去相应地址读取指令并解码,然后执行相关读写流程。

2.2.2 NVMe EXT4文件系统管理

Linux系统应用层接受读写磁盘命令。触发系统调用函数,进程由用户态转换到内核态,文件系统通过目录项检索缓存,如果没有则创建文件。通过虚拟文件系统接口调用具体文件系统读写函数,此处为ext4文件系统。

经过文件系统的管理,创建磁盘管理的IO请求,此处IO请求分为,文件系统管理IO请求与原始数据读写请求。将修改后的IO请求发送给磁盘驱动,磁盘解码命令,并执行相关IO请求。

Linux ext4文件系统读写控制流程如下:

3、测试结果

3.1 硬件测试平台说明

使用XILINX的ZYNQ7100作为测试核心板,如下图所示:

核心板背面为连接器

核心板的尺寸为 70mm x 80mm

底板上放两块NVMe的电子盘,核心板插在底板上进行测试。


整体硬件测试平台如下图:

3.2 裸机测试,PCIE Gen2

每个盘写入1.2GB/s, Raid0可达到2.4GB/s

每个盘读出1.4GB/s, Raid0可达到2.8GB/s

3.3 裸机测试,PCIE Gen3

每个盘写入2.1GB/s, Raid0可达到4.2GB/s

每个盘读出1.7GB/s, Raid0可达到3.4GB/s

3.4 带文件系统测试,PCIE Gen2

可以看到,在系统下有两个Xilinx的PCIe设备。
2块1TB的盘组成RAID0阵列,文件系统为ext4。

写入1GB的数据,可以看到速度为2GB/s

4、总结

按照本文方式处理,使用ZYNQ标准的文件系统下可以达到2GB/s的存储带宽。该方案的文件系统采用标准的Linux内核系统,移植性好,成本低,运行也稳定。

通过PCIE核的更换,PCIe核的增加,也能够适应不同的存储带宽核存储容量的需求。

如果有技术实现细节相关的讨论,欢迎来电交流,13882182579。

ZYNQ+NVMe 小型化全国产存储方案相关推荐

  1. 全国产计算数据库性能测试报告

    一.       测试背景 由于众所周知的世界经贸形势,拥有全面自主可控的IT解决方案成为摆在国家面前的一项重要任务.但是,由于目前国产芯片的性能还相对较弱,大多只能应用于OA等边缘业务,要用到关键业 ...

  2. 翼辉+飞腾全国产实时操作系统与全国产主板工控方案在电力产品的应用

    SylixOS(MS-RTOS)电力产品应用简介 一.电网传统装置: 继电保护.测控.稳控.PMU.时间同步.故障录波等装置(输变电) 一般使用AMP方案,少数客户使用SMP方案.2019年11月使用 ...

  3. 迅为3A5000_7A2000开发板龙芯全国产处理器LoongArch架构核心方案

    1.全国产设计方案 从里到外   100% 全国产 从CPU自主指令系统到开发板每一个元器件,做到100%全国产化. 2.产品开发更快捷 PCIE  32路 相比同类嵌入式板卡仅2到4路的PCIE, ...

  4. 国内首款全国产固态硬盘控制芯片发布

    4月22日,国科微与龙芯中科战略合作签约暨国内首款全国产固态硬盘控制芯片发布仪式在北京人民大会堂举行.双方将建立长期稳定的业务合作伙伴关系,携手打造关键信息基础设施国产化生态.作为首个战略合作成果,国 ...

  5. skywalking与pinpoint全链路追踪方案对比

    由于公司目前有200多微服务,微服务之间的调用关系错综复杂,调用关系人工维护基本不可能实现,需要调研一套全链路追踪方案,初步调研之后选取了skywalking和pinpoint进行对比; 选取skyw ...

  6. 焱融全闪存储轻松构建百亿私募量化投研平台

    量化业务背景 量化金融指依托金融大数据.金融科技和智能金融的技术进展,通过数量化方式及计算机程序发出交易指令,以获取稳定收益为目的的金融投资方式,在海外的发展已有几十年的历史,其投资业绩稳定,市场规模 ...

  7. 从“一云多芯”支持,看多元算力的全栈云方案

    摘要:华为云Stack如何在不同CPU架构下,构建信创云平台多元算力的全栈解决方案?本文将为你具体阐释. 本文分享自华为云社区<从"一云多芯"支持,看多元算力的全栈云方案&g ...

  8. 屹立在Gartner领导象限的国产存储

    昨天从朋友圈看到华为进入Gartner魔力象限领导者的消息,随后查阅了Gartner网站,发现消息消息来源是可靠的,首先恭喜国产华为,终于一洗国产存储长久以来的颓废局面,为国产存储也赢得世界的认可和赞 ...

  9. 干货 | 如何评估Kubernetes持久化存储方案

    在2018年的Garnter技术成熟度曲线中,容器存储出现在了技术触发期,已经开始进入大众的视野.我相信,在未来的两年内,容器存储会随着Kubernetes的进一步成熟和商业化,其地位会越来越重要.如 ...

最新文章

  1. 《深入理解Android:Wi-Fi,NFC和GPS》章节连载[节选]--第二章 深入理解Netd
  2. 在asp.net中为Web用户控件添加属性和事件
  3. iOS中UIDynamic物理仿真详解
  4. 涉密计算机格式化维修,涉密计算机中的涉密信息被删除或格式化后,不可复原,可以连接互联网 - 作业在线问答...
  5. 《精通Nginx》——1.2 从源代码安装Nginx
  6. eclipse的jsp第一行代码报错_机器学习之AdaBoost算法及纯python代码手工实现
  7. sed搜索某行在行末追加_示范sed指定某行插入 追加和全局替换
  8. 规则引擎集成接口(九)Java类对象
  9. 使用powershell 执行脚本,windows默认不允许任何脚本运行
  10. 用集合return多个值_Laravel + Nestedset 扩展:嵌套集合模型实现无限级分类
  11. 【VS开发】VS2010 MFC中控件、对话框等背景颜色动态修改的方法
  12. 思考致富 成功法则(二):确定的目的
  13. 计算机网络延展-令牌环网
  14. CUDA 下载不了(只有 42B)的应急解决办法(暂时可用)
  15. 机器学习入门--神经元模型
  16. protobuf3 oneof
  17. 六种不同型号的电灯泡
  18. excel表格中的空白行你还在一个个删除吗?Speedoffice教你一招
  19. 爬虫:动态页面爬取Selenium
  20. WPAN、WLAN、WMAN、WWAN无线通讯技术区别

热门文章

  1. srs10流程图_srs技术文档说明
  2. 04【Verilog实战】SPI协议底层硬件接口设计(附源码RTL/TB)
  3. 微服务入门到入土(07)-分布式搜索ElasticSearch
  4. 电池高压安全注意事项
  5. 洛达1562A空间音频固件(艾创立11月12月+豪锐11月)
  6. 影视剧里程序员使用的双显示屏,在生活中真的需要么?正经科普
  7. 电影《不夜城》的主题曲:金城武、山本未来主演
  8. 无人驾驶-控制-自行车模型
  9. linux转录组分析,完整转录组RNAseq分析流程(tophat2+cufflink+cuffdiff)
  10. ff14 掉线 服务器维护,《FF14》29日更新维护 暂不推出手工补丁