[原创] Xilinx FPGA NVMe主机控制器IP, 高性能版本

adrifter   2024-1-31 17:34 楼主

NVMe Host Controller IP

  1. 介绍

NVMe Host Controller IP可以连接高速存储PCIe SSD,无需CPU和外部存储器,自动加速处理所有的NVMe协议命令,具备独立的数据写入AXI4-Stream/FIFO接口和数据读取AXI4-Stream/FIFO接口,非常适合于超高容量和超高性能的应用。此外,NVMe Host Controller IP支持RAID存储,从而可实现更高存储性能和存储容量。

无需CPU,NVMe Host Controller IP自动执行对PCIe SSD的PCIe设备枚举和配置、NVMe控制器识别和初始化、NVMe队列设置和初始化,实现必须以及可选的NVMe Admin Command Set和NVM Command Set,实现对PCIe SSD的复位/断电管理、IO(Page)读写、DMA读写和数据擦除功能,提供用户一个简单高效的接口实现高性能存储解决方案。

NVMe Host Controller IP DMA读写的顺序传输长度可以配置,最小是4K-Byte,最大是512K-Byte。顺序传输长度配置为4K-Byte,NVMe Host Controller IP所消耗的BRAM最少,但是可以达到CrystalDiskMark测试软件RND4K Q32T16测试模式下的读写性能。顺序传输长度配置为128K-Byte,NVMe Host Controller IP所消耗的BRAM比较多,可以达到CrystalDiskMark测试软件SEQ128K Q32T1测试模式下的读写性能。

针对多路数据通道访问PCIe SSD,使用NVMe的多队列特性,NVMe Host Controller IP支持灵活配置DMA读写的通道个数,按照NVMe队列优先级仲裁机制,实现多个DMA通道对同一块PCIe SSD的高效访问,从而达到多路数据通道访问的并行需求和QoS要求。

    1. 特性
  • 支持Ultrascale+,Ultrascale,7 Series FPGA
  • 支持PCIe Gen4,PCIe Gen3,PCIe Gen2 SSD
  • 无需CPU和外部存储器
  • 自动实现对PCIe SSD的PCIe设备枚举、NVMe控制器识别和NVMe队列设置
  • 支持对PCIe SSD的NVM Subsystem Reset、Controller Reset和Shutdown
  • 支持NVMe Admin Command Set:Identify、SMART、Create/Delete IO Submission/Completion Queue、Set Feature
  • 支持NVMe NVM Command Set:Write、Read、Flush、Dataset Management
  • 提供1个Admin命令接口,实现对PCIe SSD的复位/断电管理功能
  • 提供1个IO命令接口,实现对PCIe SSD的IO(Page)读写、Cache Flush和逻辑数据块擦除功能;提供1个IO-AXI4-MM接口读写IO(page)数据
  • 提供1个DMA命令接口,实现对PCIe SSD的DMA读写功能;提供1个DMA-AXI4-Stream-In/Out或DMA-FIFO-In/Out接口实现DMA数据的输入和输出
  • DMA读写的顺序传输长度可以配置,4K-Byte~512K-Byte;不同的顺序传输长度对应不同的DMA读写性能,同时也消耗不一样的BRAM资源
  • 针对多通道DMA需求,可以配置4个DMA命令接口和4个DMA-AXI4-Stream-In/Out或DMA-FIFO-In/Out接口
  • NVMe队列的个数(配置DMA通道的个数)和深度可配置,平衡对PCIe SSD的DMA性能和消耗的逻辑资源
  • 支持NVMe Admin和IO命令的超时和错误处理恢复机制,提供详尽的访问错误状态输出
  • 支持的NVMe设备:
    1. Base Class Code:01h(mass storage),Sub Class Code:08h(Non-volatile),Programming Interface:02h(NVMHCI)
    2. MPSMIN(Memory Page Size Minimum):0(4K-byte)
    3. MDTS(Maximum Data Transfer Size):大于等于顺序传输长度或0(无限制)
    4. LBA Unit:512-byte,1024-byte,2048-byte或4096-byte
  • 一个NVMe Host Controller IP直接连接到PCIe SSD
  • 易于集成的同步、可综合Verilog设计
  • 通过完全验证的NVMe Host Controller IP
  1. 概述

NVMe Host Controller IP作为一个对PCIe SSD的高性能存储控制器,不但提供对PCIe SSD的配置管理功能,而且提供对PCIe SSD的IO(Page)读写以及DMA读写功能。

NVMe Host Controller IP具备PCIe SSD Manegement,实现对PCIe SSD的复位/断电管理功能。

NVMe Host Controller IP具备ASQ/ACQ引擎,实现NVMe Admin Command Set:Identify、SMART、Create/Delete IO Submission/Completion Queue、Set Feature。

NVMe Host Controller IP具备IO(Page) Wr/Rd引擎和SQ1/CQ1引擎,实现对PCIe SSD的IO(Page)读写、Cache Flush和逻辑数据块擦除功能。

NVMe Host Controller IP具备DMA Wr/Rd引擎和SQn/CQn引擎,实现对PCIe SSD的DMA读写功能。

上电后,NVMe Host Controller IP内置的PCIe Device Enumerate & Configuration自动实现对PCIe SSD的PCIe设备枚举和配置;然后内置的NVMe Controller Identify & Initialization自动实现对PCIe SSD的NVMe控制器识别和初始化;最后内置的Queue Setup & Initialization自动实现对PCIe SSD的NVMe队列设置和初始化。上电后至此,NVMe Host Controller IP完成对PCIe SSD的所有配置和初始化工作,可以开始提供对PCIe SSD的读写、擦除、复位操作。

nvme-host-controller-ip-diagram.png

图 2 NVMe Host Controller IP结构框图

  1. 产品规格
    1. 性能

PCIe配置参数:Max Payload Size=256-byte,Max Read Request Size=512-byte

  1. PCIe Gen3 SSD,Seq=128KB,1个DMA通道:
    1. DMA写入速度可达3300MB/s
    2. DMA读取速度可达3500MB/s
  2. PCIe Gen2 SSD,Seq=128KB,1个DMA通道:
    1. DMA写入速度可达1700MB/s
    2. DMA读取速度可达1800MB/s
    1. 资源
  1. KU040

表3.1 PCIe Gen3 SSD,Seq=128K,Queue Depth=4,1-DMA

 

LUTs

FFs

BRAMs

PCIe

总资源

17251

25429

87

1

NVMe Host Controller

12780

17477

70

0

PCIe Bridge

5473

7952

17

1

 

表3.2 PCIe Gen3 SSD,Seq=4K,Queue Depth=8,1-DMA

 

LUTs

FFs

BRAMs

PCIe

总资源

16600

22812

31

1

NVMe Host Controller

11144

14864

14

0

PCIe Bridge

5461

7948

17

1

 

表3.3 PCIe Gen3 SSD,Seq=4K,Queue Depth=8,2-DMA

 

LUTs

FFs

BRAMs

PCIe

总资源

21068

28135

43

1

NVMe Host Controller

15596

20163

26

0

PCIe Bridge

5475

7962

17

1

 

  1. ZU7EV

表3.4 PCIe Gen3 SSD,Seq=128K,Queue Depth=4,1-DMA

 

LUTs

FFs

BRAMs

URAM

PCIe

总资源

23925

34570

40

8

1

NVMe Host Controller

12621

17486

6

8

0

PCIe Bridge

11311

17085

34

0

1

 

表3.5 PCIe Gen3 SSD,Seq=4K,Queue Depth=16,1-DMA

 

LUTs

FFs

BRAMs

URAM

PCIe

总资源

23128

33037

40

2

1

NVMe Host Controller

11811

15956

6

2

0

PCIe Bridge

11319

17081

34

0

1

 

表3.6 PCIe Gen3 SSD,Seq=4K,Queue Depth=16,2-DMA

 

LUTs

FFs

BRAMs

URAM

PCIe

总资源

28201

39453

44

4

1

NVMe Host Controller

16893

22365

10

4

0

PCIe Bridge

11308

17088

34

0

1

 

  1. 交付清单

可交付资料:

1. 详细的用户手册

2. 设计文件:源代码或网表

3. 时序约束

4. 测试或Demo工程

5. 技术支持:邮件,电话,现场,培训服务

 

 

 

回复评论 (5)

这Xilinx FPGA NVMe主机控制器是咋玩的呢

点赞  2024-2-1 07:32

有兴趣可以联系我,我发一份user guide给你

点赞  2024-2-1 09:42
点赞  2024-6-7 09:26
NVMe A4S Host Controller User Guide.pdf (1.08 MB)
(下载次数: 3, 2024-8-30 12:43 上传)


NVMe A4S Host Controller IP.pdf (249.57 KB)
(下载次数: 3, 2024-8-30 12:43 上传)


 
点赞  2024-8-30 12:43
NVMe AXI4 Host Controller User Guide.pdf (795.17 KB)
(下载次数: 0, 2024-8-31 21:50 上传)


NVMe AXI4 Host Controller IP.pdf (236.03 KB)
(下载次数: 0, 2024-8-31 21:50 上传)

 

NVMe A4S Host Controller User Guide

NVMe AXI4 Host Controller User Guide

点赞  2024-8-31 21:51
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复