NVMe AXI4 Host Controller IP
1 介绍
NVMe AXI4 Host Controller IP可以连接高速存储PCIe SSD,无需CPU,自动加速处理所有的NVMe协议命令,具备独立的数据写入和读取AXI4接口,不但适用高性能、顺序访问的应用,也适用于随机访问的应用,同时结合外部存储器(比如DDR),使得Host端的数据访问管理更加灵活。
无需CPU,NVMe Host Controller IP自动执行对PCIe SSD的PCIe设备枚举和配置、NVMe控制器识别和初始化、NVMe队列设置和初始化,实现必须以及可选的NVMe Admin Command Set和NVM Command Set,实现对PCIe SSD的复位/断电/SMART/Error Information/Device Self-test管理、IO(Page)读写、DMA读写和数据擦除功能,提供用户一个简单高效的接口实现高性能存储解决方案。
NVMe AXI4 Host Controller IP读写的顺序传输长度是RTL运行时动态可配置的,最小是4K-Byte,最大是512K-Byte。每次读写访问,用户可以指定本次传输的顺序传输长度(4K~512K Byte),不同的顺序传输长度对应不同的DMA读写性能。
针对多路数据通道访问PCIe SSD,使用NVMe的多队列特性,NVMe AXI4 Host Controller IP支持灵活配置DMA读写的通道个数,按照NVMe队列优先级仲裁(循环仲裁或加权循环仲裁)机制,实现多个DMA通道对同一块PCIe SSD的高效访问,从而达到多路数据通道访问的并行需求和QoS要求。
1.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、Error Information、Device Self-test、Create/Delete IO Submission/Completion Queue、Set Features – Volatile Write Cache/Arbitration
- 支持NVMe NVM Command Set:Write、Read、Flush、Dataset Management
- 提供1个Admin命令接口,实现对PCIe SSD的复位/断电/SMART/Error Information/Device Self-test管理功能
- 提供1个IO命令接口,实现对PCIe SSD的IO(Page)读写、Cache Flush和逻辑数据块擦除功能;提供1个IO-AXI4-MM接口读写IO(page)数据
- 提供1个DMA命令接口,实现对PCIe SSD的DMA读写功能
n 提供1个DMA-AXI4接口实现DMA数据的输入和输出
- DMA读写的顺序传输长度可以动态配置,4K-Byte~512K-Byte;不同的顺序传输长度对应不同的DMA读写性能
- 针对多通道DMA需求,可以配置4个DMA命令接口,1个DMA-AXI4接口
- NVMe队列的个数(配置DMA通道的个数)和深度可配置,平衡对PCIe SSD的DMA性能和消耗的逻辑资源
- 支持循环仲裁(Round Robin Arbitration)和加权循环仲裁(Weighted Round Robin Arbitration)
- 支持NVMe Admin和IO命令的超时和错误处理恢复机制,提供详尽以及扩展的访问错误状态输出
- 支持的NVMe设备:
n Base Class Code:01h(mass storage),Sub Class Code:08h(Non-volatile),Programming Interface:02h(NVMHCI)
n MPSMIN(Memory Page Size Minimum):0(4K-byte)
n MDTS(Maximum Data Transfer Size):大于等于顺序传输长度或0(无限制)
n LBA Unit:512-byte,1024-byte,2048-byte或4096-byte
- 一个NVMe AXI4 Host Controller IP直接连接到PCIe SSD
- 易于集成的同步、可综合Verilog设计
- 通过完全验证的NVMe AXI4 Host Controller IP
2 概述
NVMe AXI4 Host Controller IP作为一个对PCIe SSD的高性能存储控制器,不但提供对PCIe SSD的配置管理功能,而且提供对PCIe SSD的IO(Page)读写以及DMA读写功能。
NVMe AXI4 Host Controller IP具备PCIe SSD Management,实现对PCIe SSD的复位/断电/SMART/Error Information/Device Self-test管理功能。
NVMe AXI4 Host Controller IP具备ASQ/ACQ引擎,实现NVMe Admin Command Set:Identify、SMART、Error Information、Device Self-test、Create/Delete IO Submission/Completion Queue、Set Features – Volatile Write Cache/Arbitration。
NVMe AXI4 Host Controller IP具备IO(Page) Wr/Rd引擎和SQ1/CQ1引擎,实现对PCIe SSD的IO(Page)读写、Cache Flush和逻辑数据块擦除功能。
NVMe AXI4 Host Controller IP具备DMA Wr/Rd引擎和SQn/CQn引擎,实现对PCIe SSD的DMA读写功能。
上电后,NVMe AXI4 Host Controller IP内置的PCIe Device Enumerate & Configuration自动实现对PCIe SSD的PCIe设备枚举和配置;然后内置的NVMe Controller Identify & Initialization自动实现对PCIe SSD的NVMe控制器识别和初始化;最后内置的Queue Setup & Initialization自动实现对PCIe SSD的NVMe队列设置和初始化。至此,NVMe AXI4 Host Controller IP完成对PCIe SSD的所有配置和初始化工作,可以开始提供对PCIe SSD的读写、擦除、复位、断电、SMART、Device Self-test操作。
图 2 NVMe AXI4 Host Controller IP结构框图
3 产品规格
3.1 性能
PCIe配置参数:Max Payload Size=256-byte,Max Read Request Size=512-byte
- PCIe Gen3 SSD(三星990 Pro 4TB),Seq=512KB,1个DMA通道:
a) DMA写入速度3380MB/s
b) DMA读取速度3550MB/s
- PCIe Gen3 SSD(三星970EVO Plus 1TB),Seq=512KB,1个DMA通道:
a) DMA写入速度3320MB/s
b) DMA读取速度3480MB/s
- PCIe Gen3 SSD(Intel D5-P5530 3.84TB),Seq=512KB,1个DMA通道:
a) DMA写入速度3350MB/s
b) DMA读取速度3440MB/s
- PCIe Gen3 SSD(三星980 Pro 1TB),Seq=512KB,1个DMA通道:
a) DMA写入速度2950MB/s
b) DMA读取速度3430MB/s
3.2 资源
- KU040
表3.1 PCIe Gen3 SSD,Seq=512K,Queue Depth=8,1-DMA
|
LUTs |
FFs |
BRAMs |
PCIe |
总资源 |
16016 |
21927 |
21 |
1 |
NVMe Host Controller |
10518 |
13878 |
4 |
0 |
PCIe Bridge |
5499 |
8049 |
17 |
1 |
表3.2 PCIe Gen3 SSD,Seq=512K,Queue Depth=8,2-DMA
|
LUTs |
FFs |
BRAMs |
PCIe |
总资源 |
20546 |
26994 |
25 |
1 |
NVMe Host Controller |
15043 |
18949 |
8 |
0 |
PCIe Bridge |
5499 |
8049 |
17 |
1 |
表3.3 PCIe Gen3 SSD,Seq=512K,Queue Depth=8,4-DMA
|
LUTs |
FFs |
BRAMs |
PCIe |
总资源 |
29686 |
36972 |
33 |
1 |
NVMe Host Controller |
24188 |
28933 |
16 |
0 |
PCIe Bridge |
5499 |
8049 |
17 |
1 |
- ZU7EV
表3.4 PCIe Gen3 SSD,Seq=512K,Queue Depth=8,1-DMA
|
LUTs |
FFs |
BRAMs |
PCIe |
总资源 |
21920 |
31099 |
38 |
1 |
NVMe Host Controller |
10558 |
13962 |
4 |
0 |
PCIe Bridge |
11363 |
17137 |
34 |
1 |
表3.5 PCIe Gen3 SSD,Seq=512K,Queue Depth=8,2-DMA
|
LUTs |
FFs |
BRAMs |
PCIe |
总资源 |
26448 |
36126 |
42 |
1 |
NVMe Host Controller |
15083 |
19029 |
8 |
0 |
PCIe Bridge |
11363 |
17137 |
34 |
1 |
表3.6 PCIe Gen3 SSD,Seq=512K,Queue Depth=8,4-DMA
|
LUTs |
FFs |
BRAMs |
PCIe |
总资源 |
35462 |
46253 |
50 |
1 |
NVMe Host Controller |
24045 |
29160 |
16 |
0 |
PCIe Bridge |
11363 |
17137 |
34 |
1 |
4 交付清单
可交付资料:
1. 详细的用户手册
2. 设计文件:源代码或网表
3. 时序约束
4. 测试或Demo工程
5. 技术支持:邮件,电话,现场,培训服务
6. Email:[email protected]
标签:DMA,PCIe,NVMe,Host,Xilinx,Controller,AXI4,SSD From: https://www.cnblogs.com/zhang-fpgachipip/p/18308514