0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Xilinx FPGA NVMe控制器,NVMe Host Controller IP

axpro 来源:axpro 作者:axpro 2024-02-18 11:27 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

NVMe Host Controller IP

介绍

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要求。

特性

支持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设备:

Base Class Code:01h(mass storage),Sub Class Code:08h(Non-volatile),Programming Interface:02h(NVMHCI)

MPSMIN(Memory Page Size Minimum):0(4K-byte)

MDTS(Maximum Data Transfer Size):大于等于顺序传输长度或0(无限制)

LBA Unit:512-byte,1024-byte,2048-byte或4096-byte

一个NVMe Host Controller IP直接连接到PCIe SSD

易于集成的同步、可综合Verilog设计

通过完全验证的NVMe Host Controller IP

概述

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的读写、擦除、复位操作。

wKgaomWY6TSAQxCQAAK-9HMXcTI586.png

图 2 NVMe Host Controller IP结构框图

产品规格

性能

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

PCIe Gen3 SSD,Seq=128KB,1个DMA通道:

DMA写入速度可达3300MB/s

DMA读取速度可达3500MB/s

PCIe Gen2 SSD,Seq=128KB,1个DMA通道:

DMA写入速度可达1700MB/s

DMA读取速度可达1800MB/s

资源

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

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

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 控制器
    +关注

    关注

    114

    文章

    17638

    浏览量

    190165
  • SSD
    SSD
    +关注

    关注

    21

    文章

    3061

    浏览量

    121749
  • PCIe
    +关注

    关注

    16

    文章

    1420

    浏览量

    87527
  • dma
    dma
    +关注

    关注

    3

    文章

    577

    浏览量

    105319
  • nvme
    +关注

    关注

    0

    文章

    286

    浏览量

    23711
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Xilinx高性能NVMe Host控制器IP+PCIe 3.0软核控制器IP,纯逻辑实现,AXI4和AXI4-Stream DMA接口,支持PCIe 3.0和4.0

    Host Controller IP作为一个对PCIe SSD的高性能存储控制器,不但提供对PCIe SSD的配置管理功能,而且提供对PCIe SSD的IO(Page)读写以及DMA
    发表于 11-14 22:40

    NVMe高速传输之摆脱XDMA设计44:工程设计考量?

    连接到pci_exp引脚。 mig_7series 模块为 Xilinx 提供的 DDR 接口控制器, 该模块将 AXI 总线信号转换为 DDR 接口信号实现对 PL 端 DDR 存储数据的写入和读取
    发表于 11-12 09:52

    NVMe高速传输之摆脱XDMA设计30: NVMe 设备模型设计

    设备则需要开启至少 8KB 的 BAR0 空间, BAR0 地址空间中存放 NVMe 设备寄存组, 其中包含了初始化过程中需要使用的控制器功能寄存
    发表于 09-29 09:31

    NVMe高速传输之摆脱XDMA设计18:UVM验证平台

    十分复杂,需要使用成熟的验证知识产权(Verification IP,VIP)保证仿真的准确性和效率,这一类的 VIP 通常十分昂贵并且复杂;另一方面,PCIE 集成块是 Xilinx 提供的过了充分
    发表于 07-31 16:39

    NVMe高速传输之摆脱XDMA设计之十:NVMe初始化状态机设计

    DISABLE_CC状态。 RD_CAP:读控制器功能寄存状态。该状态下读取NVMe设备的控制器功能寄存,获取其中的Memory Pag
    发表于 07-05 22:03

    NVMe IP高速传输却不依赖便利的XDMA设计之三:系统架构

    NVMe 固态硬盘, 并提供 AXI4-Lite 接口用于系统控制, 以及 AXI4 接口用于数据传输。 在该IP内部, 根据功能划分为系统控制模块、 初始化模块、
    发表于 06-29 17:42

    NVMe协议研究扫盲

    电子科技大学的王琳琳基于Zynq完成了NVMe SSD的读写控制,通过在的PS端运行Linux系统,在PL端通过PCIe硬核IP连接NVMe SSD,实现了135 MB/s的写入速度和
    发表于 06-02 23:28

    NVMe协议简介2

    NVMe指令提交与完成机制 NVMe指令提交与完成机制是NVMe协议的核心,该机制制定了NVMe指令的交互流程和处理步骤。在基于PCIe的NVMe
    发表于 05-15 23:15

    NVMe协议简要分析

    控制器更新。NVMe的队列结构如图1所示。 []()图1 队列示意图 NVMe队列的深度是固定的,通过Tail和Head来分别指向队列的首尾位置,队列实际可用的大小是队列大小减1,当Head条目指针等于
    发表于 05-15 00:34

    NVMe控制器IP设计之接口转换

    这是NVMe控制器IP设计系列博客之一,其他的见本博客或csdn搜用户名:tiantianuser。相关视频见B站用户名:专注与守望。 接口转换模块负责完成AXI4接口与控制器内部的自
    发表于 05-10 14:33

    NVME控制器之队列管理模块

    队列管理模块是整个NVMe Host控制器的核心模块,该模块实现了提交队列与完成队列的管理,多队列请求的仲裁判决等功能。队列管理模块中含有数据选择单元、SQ、CQ、和仲裁等模块。其中
    发表于 05-03 20:19

    NVME控制器之队列管理模块

    队列管理模块是整个NVMe Host控制器的核心模块,该模块实现了提交队列与完成队列的管理,多队列请求的仲裁判决等功能。队列管理模块中含有数据选择单元、SQ、CQ、和仲裁等模块。
    的头像 发表于 05-03 15:32 420次阅读
    <b class='flag-5'>NVME</b><b class='flag-5'>控制器</b>之队列管理模块

    NVMe控制器设计1

    NVMe 控制模块负责实现用户请求事务与 NVMe 事务的转换、 NVMe 命令提交 与完成机制、 PRP 寻址机制。这里简介其组成,后续分享其他模块设计。
    的头像 发表于 04-24 09:51 601次阅读
    <b class='flag-5'>NVMe</b><b class='flag-5'>控制器</b>设计1

    NVME控制器设计1

    的相关寄存来发送 DMA 或队列管理请求, NVMe控制模块在得到任务信息后生成对应的 NVMe 命令, 并通过指令提交与完成机制实现与 NVMe
    发表于 04-24 09:45

    ALINX NVME SPCle IP 特性详解

    NVMe SPCle IP 正是为这样的场景量身定制。通过结合 PCIe 软核 IPNVMe 主机控制器,让开发人员 在无硬核的情
    的头像 发表于 02-20 15:35 780次阅读
    ALINX <b class='flag-5'>NVME</b> SPCle <b class='flag-5'>IP</b> 特性详解