高性能NVMe Host Controller IP for FPGA

这篇具有很好参考价值的文章主要介绍了高性能NVMe Host Controller IP for FPGA。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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 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 for FPGA,技术交流,网络,fpga开发,服务器

图 2 NVMe Host Controller IP结构框图

  1. 产品规格
    1. 性能

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

  1. PCIe Gen3 SSD,1个DMA通道:
    1. DMA写入速度可达3300MB/s
    2. DMA读取速度可达3500MB/s
  2. PCIe Gen2 SSD,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

总资源

20968

28075

43

1

NVMe Host Controller

15496

20113

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

总资源

28075

39357

44

4

1

NVMe Host Controller

16774

22286

10

4

0

PCIe Bridge

11301

17071

34

0

1

  1. 交付清单

可交付资料:

1. 详细的用户手册

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

3. 时序约束

4. 测试或Demo工程

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

联系方式:

Email:neteasy163z@163.com文章来源地址https://www.toymoban.com/news/detail-785863.html

到了这里,关于高性能NVMe Host Controller IP for FPGA的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • FPGA实现的PCIe2.0与PCIe1.0 NVMe IP性能测试

    NVMe协议固态硬盘的速度随所使用的PCIe协议不同而不同。NVMe固态硬盘在PCIe Gen2、Gen3、Gen4条件下,理论有效带宽分别为2GB/s、3.938GB/s、7.877GB/s。目前,基于PCIe Gen5的NVMe SSD在2023年已发布,其理论有效带宽为17.754GB/s。 在之前的帖子中,我们介绍了一个在PCIe3.0协议下的基于FPGA

    2024年04月14日
    浏览(50)
  • 《高性能MySQL》——创建高性能的索引(笔记)

    索引(在MySQL中也叫做“键(key)”) 是存储引擎用于快速找到记录的一种数据结构。 索引对于良好的性能非常关键。尤其是当表中的数据量越来越大时,索引对性能的影响愈发重要。 在数据量较小且负载较低时,不恰当的索引对性能的影响可能还不明显,但当数据量逐渐增大时

    2024年02月07日
    浏览(112)
  • 【Linux高性能服务器编程】——高性能服务器框架

      hello !大家好呀! 欢迎大家来到我的Linux高性能服务器编程系列之高性能服务器框架介绍,在这篇文章中, 你将会学习到高效的创建自己的高性能服务器,并且我会给出源码进行剖析,以及手绘UML图来帮助大家来理解,希望能让大家更能了解网络编程技术!!! 希望这篇

    2024年04月25日
    浏览(56)
  • 读高性能MySQL(第4版)笔记09_创建高性能索引(下)

    1.4.4.1. InnoDB的二级索引在叶子节点中保存了记录的主键值,所以如果二级索引能够覆盖查询,则可以避免对主键索引的二次查询 7.1.5.1. 常见的类似错误通常是由于尝试使用rsync备份InnoDB导致的 7.3.3.1. 否则,对于范围查询、索引覆盖扫描等操作来说,速度可能会降低很多 7

    2024年02月08日
    浏览(59)
  • 读高性能MySQL(第4版)笔记08_创建高性能索引(上)

    2.4.2.1. 按照索引列中的数据大小顺序存储的 2.4.3.1. 键前缀查找只适用于根据最左前缀的查找 2.4.4.1. 在查询某些条件的数据时,存储引擎不再需要进行全表扫描 2.4.4.2. 通过比较节点页的值和要查找的值可以找到合适的指针进入下层子节点,这些指针实际上定义了子节点页中

    2024年02月08日
    浏览(47)
  • 《高性能MYSQL》-- 查询性能优化

    查询性能优化 深刻地理解MySQL如何真正地执行查询,并明白高效和低效的原因何在 查询的生命周期(不完整):从客户端到服务器,然后服务器上进行语法解析,生成执行计划,执行,并给客户端返回结果。 一条查询,如果查询得很慢,原因大概率是访问的数据太多 对于低

    2024年03月11日
    浏览(71)
  • 《高性能MySQL》——查询性能优化(笔记)

    将查询看作一个任务,那么它由一系列子任务组成,实际我们所做的就是: 消除一些子任务 减少子任务的执行次数 让子任务运行更快 查询的生命周期大概可分为 = { 客户端 服务器 : 进行解析 , 生成执行计划 执行:包括到存储引擎的调用,以及用后的数据处理 { 排序 分组

    2024年02月13日
    浏览(52)
  • 高性能MySQL实战(三):性能优化

    大家好,我是 方圆 。这篇主要介绍对慢 SQL 优化的一些手段,而在讲解具体的优化措施之前,我想先对 EXPLAIN 进行介绍,它是我们在分析查询时必要的操作,理解了它输出结果的内容更有利于我们优化 SQL。为了方便大家的阅读,在下文中规定类似 key1 的表示二级索引,key_

    2024年02月11日
    浏览(66)
  • 高性能:负载均衡

    目录 什么是负载均衡 负载均衡分类 服务端负载均衡 服务端负载均衡——软硬件分类 服务端负载均衡——OSI模型分类 客户端负载均衡 负载均衡常见算法 七层负载均衡做法 DNS解析 反向代理         将用户请求 分摊(分流)  到不同的服务器上,提高系统整体并发能力及

    2024年02月03日
    浏览(114)
  • 高性能JavaScript

    管理浏览器中的JavaScript代码是个棘手的问题,因为代码执行阻塞了其他浏览器处理过程,注入用户界面回执。每次遇到 script 便签,页面必须停下来等待代码下载(如果是外部的)并执行,然后再继续处理页面其他部分。但是,有几种方法可以减少JavaScript对性能的影响: 1、

    2024年02月11日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包