BittWare合作伙伴IP

NVMe桥接平台

NVMe拦截AXI-流沙盒IP

配备 NVMe IP 块的 IA-840F
Intelliprop 徽标

计算存储设备(CSD)允许存储终端提供计算存储功能(CSF),以卸载主机处理并减少数据移动。eBPF处理、加密、压缩、文件系统管理和RAID等功能非常适合IntelliProp的NVMe桥接平台(NBP)IP核。

IntelliProp IPC-NV171B-BR NVMe桥接平台(NBP)利用IntelliProp NVMe主机加速器核心和IntelliProp NVMe目标核心来创建一个NVMe协议桥。该桥的架构是这样的:命令提交、完成通知和数据传输可以不受干扰地通过,或者被拦截以进行分析或修改。该架构与一个具有AXI流协议的 "沙盒 "区域相连接,因此IntelliProp的客户可以在桥上实现他们自己的定制RTL和/或固件。

主要特点

带有AXI-流接口的可定制的沙盒

高达6200MB/s的PCIe Gen4x4

PCIe交换机支持多个SSD

视频

观看我们对首席执行官Hiren Patel的采访

 

马库斯-韦德尔,BittWare

欢迎观看我们的视频,关注FPGA加速存储,重点是IntelliProp的一个框架,称为NVMe桥接平台。

今天和我在一起的是IntelliProp的CEO Hiren Patel。谢谢你加入我!

IntelliProp首席执行官Hiren Patel

谢谢你,马库斯--很高兴来到这里。

马库斯

让我们从简单的构建块开始。所以我们已经有了SSD存储--非常快的存储--但是我们不是把它插入,例如,主机PCIe总线,而是把FPGA放在中间。因此,第一个问题是你为什么要这样做?

熙仁

可能有几个原因,但是在SSD前面的FPGA允许数据捕获--数据采集系统的建立,可以直接将数据存储到SSD上,然后稍后通过PCIe从主机上读回。
,但是同样,你可以预先加载数据采集。
我们有能力将某些加速器功能直接卸载到FPGA中,然后FPGA可以从SSD中检索数据,进行处理,将其推回,或推回给主机。所以这可能是目前最大的两个原因。

马库斯

对于数据获取或数据捕获,使用FPGA有什么独特之处?因为......外面还有其他的数据采集方法......那么,使用FPGA并使用这个桥接框架有什么独特之处?

熙仁

是的,又是个好问题。在FPGA中,考虑到FPGA就像一块空白画布,对吗?因此,在FPGA中,我们有很多的互连。我们有很多连接点,你可以开始把其他类型的数据采集、温度传感器等放在那里--你可以开始采取这些数据并把它扔到SSD上。这是主要的标准之一。

另一个标准是你已经在FPGA中内置了强大的处理能力,你已经有了ARM内核,如今你可以放下多个处理器。你可以在数据到达SSD之前对其进行各种处理。

特别是一个桥--为什么要使用桥?桥主要是允许数据通过,所以它可以允许写通过,可以允许读通过。但它也可以拦截某些命令。它可以根据需要拦截数据,所以主机可以直接向FPGA发出命令,然后让FPGA从SSD中获取更多的数据,做它需要做的事情,如搜索,或某种加速功能,然后将数据推回。因此,FPGA有很多用途。

我想说的另一件事是,有了FPGA,因为它是如此的可定制,你实际上可以采取单一的FPGA并在多个产品中构建它。你可以把FPGA作为一个空白产品放在SSD前面,然后你可以攻击不同的算法或不同的加速。

一种算法可以是压缩,另一种算法可以是解压缩,可以是加密。你也可以做搜索之类的事情。这些都是针对你的具体需求的加速器功能,而不是一刀切的。

马库斯

那么,Hiren,你现在用框架的桥接组件引入了这个概念,你让主机CPU能够看到SSD--即使它们直接连接到FPGA,而不是主机PCIe总线。现在,这有好处,但这是否需要用户运行特殊的API,或者他们必须修改他们的软件,以便所有这些都能工作?

熙仁

不,不是开箱即用。开箱后,只有外壳中的桥接平台,你可以把我们插在一台主机和一个固态硬盘之间。不,什么都不需要改变。
现在,再次重申,当你开始进入加速功能或数据捕获时,你可能需要额外的,你知道,要么是驱动程序,要么你可以通过供应商的具体情况来做一切。有一些 CLI 允许你直接向网桥发送供应商的特定命令,网桥可以拦截这些命令,然后根据需要处理数据。

马库斯

现在我们来谈谈具体的BittWare硬件和性能。我认为需要注意的是,市场上真的没有那么多的FPGA卡可以像我们的BittWare IA-840f那样直接将SSD连接到FPGA上,你可以在这里看到。我们还拥有英特尔最新的芯片和Agilex FPGA在此卡上的优势。那么,这些东西能带来哪些好处和指标呢?

熙仁

是的,当然。很明显,这些较新的FPGA正在向PCIe的越来越快的基因速率推进。今天,我相信Agilex的板子可以达到第4代,第5代也即将到来。而且我认为这些板子--这本身就是一个巨大的成就。

然后,再一次,通过桥接器,你得到了4代x16走向PC,然后在背面,你有能力聚集多个SSD。只要使用四块四代固态硬盘就可以帮助饱和一些。


所以我们可以在后面放四个驱动器,八个驱动器,我们可以有很多。但基本上所有的流量都会通过FPGA--允许我们在上面做计算存储或数据采集。

马库斯

这些带宽数字是什么?假设你有四个驱动器连接到FPGA,或者甚至FPGA连接到有八个驱动器的PCIe交换机,那么在Gen4 PCIe级别上有哪些性能数据可以期待?

熙仁

因此,在第四代的水平上,我怀疑它--只是在一个单一的驱动器上,我怀疑我们可能应该接近每秒6000兆字节。在第三代的速度下,我们已经能够展示我们的网桥以每秒3000多接近3500兆字节的速度运行。我希望在第四代的时候,这个速度会翻倍。

马库斯

另外,人们在部署FPGA时经常遇到的问题是,他们能在FPGA中容纳多少自己的IP和桥接IP?换句话说,你要给别人留多少空间?所以你能不能简单地谈谈这个问题...

熙仁

是的,听起来不错。在这个特定的板子上,我想那里有一个AGF027零件。我想说的是,这个部件可能有大约90万个ALE/ALMs。我们在桥上使用了大约10万个。那是针对单个驱动器连接的。如果你有多个驱动器连接,你将会增加大约4000个ALM来扩展它。

所以,是的,不是太糟糕。不过,还是只有10%左右。所以客户仍然有大量的逻辑可以用来增加他们的加速功能。

马库斯

Hiren你提到你可以把一个硬盘或多个硬盘直接连接到卡上。现在,如果你想连接更多的驱动器,而卡在物理上可以连接比如说八个驱动器--这到底是怎么做到的?

熙仁

我认为,即使是一张卡,你也可以连接多个驱动器,然后你也可以将其扩展到一个背板,该背板可能有一个PCIe交换机,然后可以让你获得额外的驱动器。因此,八个驱动器可以连接到一个PCIe交换机,PCIe交换机再连接到BittWare卡。所以我认为这是一个可能的解决方案或拓扑结构,在这里是可以的。

马库斯

让我们回到我们谈到的第二组用例,即FPGA是一个内联加速器。这是计算存储加速的大背景的一部分,它在CPU卸载方面变得非常流行。你能跟我说说计算存储的内联加速器的一些使用情况吗?

熙仁

是的,当然。因此,我们今天有很多客户都在做静态数据加密。因此,我们的FPGA位于固态硬盘或多个固态硬盘前面,客户使用我们称之为沙盒区或客户加速区作为静态数据加密。但客户也可以做搜索引擎,搜索卸载,压缩eBPF也是另一个增长的领域。

所以这些是客户可以做的一些事情。如果我们以压缩或解压为例,你可以用我们的桥接器做的一件事--你实际上可以让服务器或主机通过桥接器将压缩的数据不加改动地发送到SSD上。

但是当数据被检索到时,你可以在FPGA中内置一个解压硬件引擎。该解压引擎可以在数据被送回服务器主机之前对其进行解压,我想这也是我们看到的一个用例。

像我说的其他用例是eBPF,然后我知道Intelliprop正在进行一些这方面的参考设计,所以如果有的话,你知道这也是我们看到的另一个用例:eBPF虚拟机。

马库斯

你之前提到的一个用例,但我想听到更多的信息,就是让主机发出搜索命令,然后将搜索本身卸载到FPGA和直接连接的SSD上。那么,这个工作是如何进行的,你是如何卸载搜索的,因为这比卸载压缩要复杂一些?

熙仁

是的,这是个好问题。我们在11月在圣路易斯举行的SuperCompute '21上展示的一件事是,我们展示了我们的内联桥,实际上是在卸载搜索引擎。所以我们让CPU在SSD上预装了一堆数据。我们让服务器向桥接器中间发送一个供应商的特定命令,我们的RTL代码看到了供应商的特定命令,得到了LBA的范围或地址空间,以进行特定的模式搜索,我们也从服务器上收到了模式。一旦我们收到了模式和要搜索的LBA范围,我们就去读取我们应该读取的整个驱动器部分,寻找那个特定的32位模式,找到它的所有实例--它们出现在哪个LBA上--我们把它打包,然后把完成的数据发回给服务器主机。
通常,如果没有我们的加速器,服务器会把所有的数据读到它的系统内存,进行搜索,然后把数据扔掉。而没有所有的数据移动,它只需向我们发出一个命令,我们只需发回一个响应,说 "这是我们找到的所有位置"。老实说,FPGA能够做到这一点,而且速度快得多,我们也有图表显示这一点。

是的,所以现在我们正在看那个演示的一些内容。上线显示CPU负载大约为90%,同时它正在进行直接搜索,但在这之间,FPGA卸载版本当然要快很多倍,它正在卸载CPU...我们在这里使用的是哪种FPGA?
所以,是的,视频中的演示是在Intel Stratix 10 DX上完成的。

有人如何认识到他们何时需要使用这个特定的框架IP与桥梁?有人如何识别他们何时需要特别的桥接组件?
是的,这是个好问题。同样,这是一个直通式桥接。我们所做的是消除了所有NVMe的复杂性--我们创建了一个AXI流接口,客户可以把他们的逻辑放进去。因此,客户擅长做加速功能--他们是这方面的专家--他们可能不是NVMe方面的专家,而这正是该框架真正发挥作用的地方。我们通过AXI流将数据和命令以及所有这些作为控制和数据信息呈现在中间,然后让客户决定他们想用这些逻辑做什么。
,然后在另一边,我们也有一个控制和数据平面--AXI流,继续将数据转移到SSD上。
,它在两个方向都工作,所以在易用性方面,这是我们真正的优势所在。作为客户--他们的专长是加速功能--他们可以把它放到沙盒里,然后我们就可以
,这样可以大大缩短上市时间。在BittWare董事会的帮助下,我们实际上进一步缩短了这个时间。因为现在他们已经有了可以实际插入沙盒桥接器的芯片--NVMe桥接器平台,然后现在他们已经有了一个平台,可以继续建立他们的加速功能。

马库斯

Okay so building on that—and this is my last question—for viewers out there thinking about building this NVMe Bridge IP themselves versus using IntelliProp…how long did it actually take IntelliProp to make this and how easy is it now that you have it to build applications out using it?

熙仁

是的,所以听起来不错。所以,这又是一个框架,我们已经有点,我只是说我们已经有点推断出或隐藏了你必须与NVMe互动的事实。你不必对NVMe有任何了解。你只需要知道你得到的是什么地址和控制信息。

这座桥本身可能花了我们IntelliProp公司大约一年半的时间来开发并获得正确的性能,以达到我们想要的性能。最终,我们为我们的客户节省了时间。

举个例子,回到我们做的SuperCompute '21演示,我们在一个月内就完成了。如果没有桥接器,我们会花更多的时间。仅仅拥有桥接器,了解控制信息--我们所获得的数据信息,我们就花了一个月的时间来真正实现加速搜索功能和发送数据的能力。

因此,这又是一个框架,它都是预先建好的,它被冲出来了。你只需要专注于你的加速。

马库斯

好的,很好。谢谢你今天与我交谈,希伦,关于这一切,我很感激。

熙仁

谢谢你。

马库斯

这就是NVMe桥接平台,一个来自IntelliProp的框架,可用于BittWare FPGA卡。具体来说,我们今天看的是IA-840F与直接连接的SSD。要了解更多信息,请访问BittWare网站,感谢您的观看。

特点

  • 完全符合NVM Express 1.4c行业规范
  • 用PCIe硬块自动初始化
  • 支持多个SSD的PCIe交换机
  • 自动提交和完成命令
  • 可扩展的I/O队列深度
  • 前端和后端接口解耦,允许灵活的用户逻辑和应用
  • 灵活的数据缓冲区类型和大小
  • AXI流驱动的命令和数据路径
  • 数据流包括内联的命令参数
  • 支持从512字节到4kB的块大小
  • 应用层接口允许处理器承担控制或修改行政命令
  • Verilog和VHDL包装器

NVMe桥接平台I/O吞吐量

NVMe 桥接平台随机 I/O 示例吞吐量

NVMe桥接平台IP核心事实

提供与核心

  • 文档:全面的用户文档
  • 设计文件格式加密的Verilog
  • 约束文件:每个FPGA提供的
  • 验证:ModelSim验证模型
  • 实例化模板:Verilog (可使用VHDL包装器)
  • 参考设计和应用说明: 合成以及放置和路由脚本
  • 附加项目:参考设计 

使用的仿真工具:
QuestaSim (联系IntelliProp以了解支持的最新版本)

支持:
从交付日期起的6个月内,将为完全授权的内核提供电话和电子邮件支持。

注:
其他模拟器也可提供。请联系IntelliProp公司了解更多信息。

方框图、数据表和产品细节

应用

NBP IP可用于计算存储设备(CSD)或计算存储阵列(CSA),采用PCIe Gen4到主机,并通过交换机或单独的PCIe连接使用多个PCIe Gen4 SSD。

功能描述

IntelliProp NBP,IPC-NV171B-BR,通过IntelliProp NVMe目标核心接收和解析命令,并将其转发到IntelliProp NVMe主机加速器核心,以交付给NVMe SSD终端,从而实现了协议桥接。这两个核心之间可定制的桥接逻辑促进了命令管理,包括转发和跟踪未完成的命令,并适当地路由数据访问,而使用 "沙盒 "区域提供了对缓冲数据的可见性和灵活性,因为它在主机和目标之间传输。

桥接逻辑中的寄存器为固件提供了一种机制,以控制数据移动,手动发布个别命令,并控制桥接功能的状态和行为。处理器或其他管理代理预计将接收并正确完成来自NVMe目标核心的管理命令,而I/O命令则由桥接逻辑自主地执行。因此,NBP在主机和端点SSD之间提供了透明度,同时为设计者提供了命令和数据操作的灵活性。

空标题

空头i

区块描述

NVMe目标核心

NVMe目标核心是标准发布的IntelliProp核心(IPC-NV163A-DT),并定义了与PCIe核心一起工作的硬件,以实现兼容的NVMe设备接口。NVMe目标核心通过PCIe接口从系统主机检索命令提交条目,并将该条目放入许多命令FIFO中的一个。有两个数据axi流(全双工),一个命令上下文流和一个完成上下文流。收到命令完成后,NVMe目标核心会自动填充内部字段,并将完成情况发布到主机系统。

NVMe命令加速器

自动化的内部状态机与NVMe目标核心互动,以获取提交队列条目和发布完成队列条目。数据和命令通过4个AXI流接口呈现给用户逻辑。在收到来自NVMe目标核心的IO命令后,NVMe命令加速器通过AXI流转发该命令,然后与PCIe端点核心互动,在用户系统和NVMe主机之间移动数据。集成的寄存器允许用户控制系统配置和核心状态。

NVMe命令翻译器

通过4个AXI流接口与NVMe命令加速器协商NVMe命令、数据和完成情况。有两个数据AXI流(全双工),一个命令上下文流和一个完成情况流。收到命令后,该块分配缓冲空间,以适应来自NVMe SSD的数据传输,然后将命令转发给NVMe主机加速器,以便发布给SSD。当数据和NVMe完成从SSD返回时,该块将完成返回给NVMe命令加速器并取消分配缓冲空间。集成的寄存器允许用户控制系统配置和核心状态。

沙盒

NBP中的用户逻辑空间允许用户在NVMe命令加速器和命令转换器之间灵活插入自定义逻辑。这种逻辑必须符合标准化的AXI流接口,以传输命令、完成和数据。命令和完成可以直接通过,也可以在运行时修改(和内部跟踪)。数据包含命令参数的内联,因此可以与相应的命令上下文相分离。在不限制数据排序或延迟的情况下,用户逻辑可以根据应用采取各种形式。

NVMe主机加速器核心

NVMe主机加速器核心是标准发布的IntelliProp核心(IPC-NV164A-HI),它实现了在命令队列中建立命令的硬件,并通过PCIe根复杂核心接口通知NVMe SSD的可用命令。NVMe主机加速器核心有一个硬接线接口来设置命令和检索完成情况。AXI从机和NVMe主机加速器核心的寄存器也可用来让微处理器设置命令提交和检索完成情况。

空标题

空标题

详细功能列表

总的来说

  • 完整的现成解决方案;开箱即用
  • 直接或通过附带的PCIe交换机支持多个NVMe SSD(或HDD)。
  • PCIe Gen4到主机,以及通过交换机或单独的PCIe连接的多个PCIe Gen4 SSD
  • 带有控制和数据的AXI流接口的沙盒
  • 系统附加的处理器,在计算功能上有更多的灵活性

沙盒专用

  • 四个AXI流接口提供命令、完成和数据(全双工包括边带元数据)。
  • 处理器连接,增加灵活性
  • 实施选项包括用于加速的RTL或FW

FPGA/硬件专用

  • 预先连接的PCIe Gen4硬块
  • 6200 MB/s的最大吞吐量(Gen4x4接口)。
  • 与Intel Quartus 21.3 Pro工具集成
    合成脚本和时序约束

空标题

空标题8

支持的FPGA器件

器材速度ALUTsFFsM20k
Altera Agilex F 系列-23167422136190
Altera Stratix 10 DX-13158920038190

可交付的成果

该核心包括成功实施所需的一切:

  • 用于IP核定义的加密的可综合的RTL代码
  • 加密的ModelSim/QuestaSim仿真模型
  • 全面的用户文件
  • 参考设计
    • 简单的参考项目实例,包括:
      • NVMe主机加速器IP核心实例
      • NVMe目标IP核心实例
      • NVMe命令加速器
      • NVMe命令翻译器
      • 沙盒区块实例
      • 处理器
      • 记忆
    • 合成和放置与路由脚本
    • 参考核心控制固件

条款和条件

修改:IntelliProp的IP核一般不允许进行修改。任何要求的修改都必须提交给IntelliProp公司,以确定整合这些修改的合理性。

支持:从交付日期起6个月内,将为完全授权的内核提供电话和电子邮件支持。

对价格或更多信息感兴趣?

我们的技术销售团队随时准备提供可用性和配置信息,或回答您的技术问题。