招聘|求职|工程师职场
直播中

67940

14年用户 113经验值
擅长:可编程逻辑
私信 关注
[求职]

兼职Xilinx FPGA PCIe-DMA和NVMe主机控制器开发

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.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设备:
n  Base Class Code:01h(mass storage),Sub Class Code:08h(Non-volatile),ProgrammingInterface: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 Host Controller IP直接连接到PCIe SSD
Ø  易于集成的同步、可综合Verilog设计
Ø  通过完全验证的NVMe Host Controller IP
2     概述
NVMe Host Controller IP作为一个对PCIe SSD的高性能存储控制器,不但提供对PCIe SSD的配置管理功能,而且提供对PCIe SSD的IO(Page)读写以及DMA读写功能。
NVMe Host Controller IP具备PCIe SSD Management,实现对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 HostController IP内置的PCIe DeviceEnumerate & 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.JPG
                              
图 2 NVMe Host Controller IP结构框图
3  产品规格3.1 性能
PCIe配置参数:Max Payload Size=256-byte,Max Read Request Size=512-byte
1.    PCIe Gen3 SSD,Seq=128KB,1个DMA通道:
a)      DMA写入速度可达3300MB/s
b)      DMA读取速度可达3500MB/s
2.    PCIe Gen2 SSD,Seq=128KB,1个DMA通道:
a)      DMA写入速度可达1700MB/s
b)      DMA读取速度可达1800MB/s
3.2           资源
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=128K,Queue Depth=4,2-DMA
  
  
  
LUTs
  
  
FFs
  
  
BRAMs
  
  
PCIe
  
  
总资源
  
  
24626
  
  
33305
  
  
155
  
  
1
  
  
NVMe Host Controller
  
  
19144
  
  
25339
  
  
138
  
  
0
  
  
PCIe Bridge
  
  
5487
  
  
7966
  
  
17
  
  
1
  
表3.3 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.4 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
  
表3.5 PCIe Gen3 SSD,Seq=4K,Queue Depth=8,4-DMA
  
  
  
LUTs
  
  
FFs
  
  
BRAMs
  
  
PCIe
  
  
总资源
  
  
38686
  
  
38812
  
  
67
  
  
1
  
  
NVMe Host Controller
  
  
33188
  
  
30833
  
  
50
  
  
0
  
  
PCIe Bridge
  
  
5503
  
  
7979
  
  
17
  
  
1
  
2.   ZU7EV
表3.6 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.7 PCIe Gen3 SSD,Seq=128K,Queue Depth=4,2-DMA
  
  
  
LUTs
  
  
FFs
  
  
BRAMs
  
  
URAM
  
  
PCIe
  
  
总资源
  
  
29958
  
  
42446
  
  
44
  
  
16
  
  
1
  
  
NVMe Host Controller
  
  
18640
  
  
25352
  
  
10
  
  
16
  
  
0
  
  
PCIe Bridge
  
  
11320
  
  
17094
  
  
34
  
  
0
  
  
1
  
表3.8 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.9 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
  
表3.10 PCIe Gen3 SSD,Seq=4K,Queue Depth=16,4-DMA
  
  
  
LUTs
  
  
FFs
  
  
BRAMs
  
  
URAM
  
  
PCIe
  
  
总资源
  
  
46962
  
  
52253
  
  
52
  
  
8
  
  
1
  
  
NVMe Host Controller
  
  
35645
  
  
35160
  
  
18
  
  
4
  
  
0
  
  
PCIe Bridge
  
  
11319
  
  
17093
  
  
34
  
  
0
  
  
1
  
4   交付清单
可交付资料:
1. 详细的用户手册
2. 设计文件:源代码或网表
3. 时序约束
4. 测试或Demo工程
5. 技术支持:邮件,电话,现场,培训服务
6. Email:neteasy163z@163.com
Multi-ChannelPCIe QDMA&RDMA IP
1    介绍
基于PCI Express Integrated Block,Multi-Channel PCIe QDMA Subsystem实现了使用DMA地址队列的独立多通道、高性能Continous或Scather Gather DMA,提供FIFO/AXI4-Stream用户接口。
基于PCI Express Integrated Block,Multi-Channel PCIe RDMA Subsystem实现了使用DMA Ring缓冲的独立多通道、高性能/超低延时/超低抖动Continous Ring DMA,提供FIFO/AXI4-Stream用户接口。
1.1     特性
Ø  支持Ultrascale+,Ultrascale,7 Series的PCI Express Integrated Block
Ø  支持64,128,256,512-bit数据路径
Ø  64-bit源地址,目的地址,和描述符地址
Ø  多达8个独立的host-to-card(H2C/Read)数据通道或H2C DMA
Ø  多达8个独立的card-to-host(C2H/Write)数据通道或C2H DMA
Ø  AXI4-Stream/FIFO用户接口(每个通道都有自己的AXI4-Stream/FIFO接口)
Ø  每个DMA引擎支持DMA地址队列,队列深度可达32
Ø  每个DMA引擎支持DMA Ring缓冲,Ring缓冲深度和个数可配置
Ø  RDMA的超低延时和超低抖动性
Ø  H2C DMA支持视频显示定时时序输入控制
Ø  AXI4-Lite Master接口允许PCIe通信绕过DMA引擎
Ø  Scather Gather描述符列表支持无限列表大小
Ø  每个描述符的最大传输长度为4GB
Ø  MSI中断
Ø  连续描述符的块获取
Ø  中断或查询模式
1.2     应用
本内核体系结构支持广泛的计算和通信目标程序应用,强调性能、成本、可扩展性、功能可扩展性和关键任务可靠性。典型应用包括:
● 数据通信网络
● 电信网络
● 宽带有线和无线应用
● 网络接口卡
● 用于各种应用程序的服务器add-in card
典型应用如下图所示:
Multi-Channel-PCIe-QDMA-RDMA-Subsystem.JPG
                              
图 1 Multi-Channel PCIe QDMA&RDMA Subsystem典型应用:8通道视频采集和视频显示
2   概述
Multi-ChannelPCIe QDMA&RDMA Subsystem作为一个高性能DMA数据搬移器,内核通过AXI4-Stream/FIFO接口直接连接RTL逻辑。使用提供的字符驱动程序,AXI4-Stream/FIFO接口可用于PCIe地址空间和AXI地址空间之间的高性能数据搬移。除了基本的DMA功能,DMA支持多达8个独立的upstream和downstream通道,每个通道支持深度为32的DMA地址队列,以及深度和个数可配置的DMA Ring缓冲,另外还允许PCIe通信绕过DMA引擎。
multi-channel-pcie-qdma-subsystem.PNG
图 2 Multi-Channel PCIe QDMA&RDMA Subsystem概述
2.1     特性概要
基于描述符提供的信息:源地址,目的地址和传输数据长度,Multi-Channel PCIe QDMA&RDMA Subsystem实现Host存储器和PCIe DMA子系统之间的数据搬移。这些DMA可以同时是Host to Card(H2C)和Card to Host(C2H)传输。每个DMA通道对应各自的AX4-Stream/FIFO接口,DMA从Host存储器获取并解析描述符链表,基于描述符链表信息完成自己通道的数据传输,然后使用MSI中断发出描述符完成或错误的信令。内核也提供多达16个输出到Host的用户中断信号。
主机可以通过以下2个接口访问用户逻辑:
Ø  AXI4-Lite Master配置接口:这个接口是一个固定的32-bit端口,用于对性能要求不高的用户配置和状态寄存器的访问
Ø  User Register:这个接口是多个32-bit向量信号和1-bit信号,这些信号来自对应DMA通道数据搬移过程中产生的控制或状态信号
3   产品规格
结合Integrated Block for PCI Express IP,Multi-Channel PCIe QDMA&RDMA Subsystem为PCIe提供了一个高性能的DMA解决方案。
3.1           性能
Endpoint配置参数:
1.    Max PayloadSize=256-byte
2.    Max ReadRequest Size=512-byte
3.    DMA TransferLength = 4MB
C2H& H2C DMA性能:
1.    PCIe3.0 x16,C2H DMA和H2C DMA速度大于13.5GB/s
2.    PCIe3.0 x8,C2H DMA和H2C DMA速度大于7GB/s
3.    PCIe2.0 x8,C2H DMA和H2C DMA速度大于3.6GB/s
4.    PCIe2.0 x4,C2H DMA和H2C DMA速度大于1.7GB/s
3.2           资源
表1 PCIe 3.0 x16 DMA Subsystem资源(8通道)
  
  
  
LUTs
  
  
FFs
  
  
BRAMs
  
  
PCIe
  
  
资源
  
  
44272
  
  
99014
  
  
165.5
  
  
1
  
表2 PCIe 3.0 x8 DMA Subsystem资源(8通道)
  
  
  
LUTs
  
  
FFs
  
  
BRAMs
  
  
PCIe
  
  
资源
  
  
26356
  
  
51523
  
  
93
  
  
1
  
表3 PCIe 2.0 x8 DMA Subsystem资源(8通道)
  
  
  
LUTs
  
  
FFs
  
  
BRAMs
  
  
PCIe
  
  
资源
  
  
26614
  
  
33766
  
  
70
  
  
1
  
表4 PCIe 2.0 x4 DMA Subsystem资源(8通道)
  
  
  
LUTs
  
  
FFs
  
  
BRAMs
  
  
PCIe
  
  
资源
  
  
20466
  
  
29623
  
  
106
  
  
1
  
表5 PCIe 3.0 x16 DMA Subsystem资源(1通道)
  
  
  
LUTs
  
  
FFs
  
  
BRAMs
  
  
PCIe
  
  
资源
  
  
22353
  
  
55492
  
  
37
  
  
1
  
表6 PCIe 3.0 x8 DMA Subsystem资源(1通道)
  
  
  
LUTs
  
  
FFs
  
  
BRAMs
  
  
PCIe
  
  
资源
  
  
8113
  
  
21656
  
  
17
  
  
1
  
表7 PCIe 2.0 x8 DMA Subsystem资源(1通道)
  
  
  
LUTs
  
  
FFs
  
  
BRAMs
  
  
PCIe
  
  
资源
  
  
11074
  
  
16221
  
  
10
  
  
1
  
表8 PCIe 2.0 x4 DMA Subsystem资源(1通道)
  
  
  
LUTs
  
  
FFs
  
  
BRAMs
  
  
PCIe
  
  
资源
  
  
6270
  
  
8588
  
  
29
  
  
1
  
3.3           驱动程序
(1) Windows WDF (Queue or Non-Queue,Ring)
(2) Linux (Queue or Non-Queue,Ring)
(3) V4L2
4    交付清单
可交付资料:
1. 详细的用户手册
2. 设计文件:源代码或网表
3. 时序约束
4. 测试或Demo工程
5. 技术支持:邮件,电话,现场,培训服务
6. Email:neteasy163z@163.com


更多回帖

发帖
×
20
完善资料,
赚取积分