ORihard KCU116E: 经济实惠的 100Gbps 网络和存储 FPGA 开发平台

 

ORihard KCU116E: 经济实惠的 100Gbps 网络和存储 FPGA 开发平台

Kintex UltraScale+ 系列被认为是 Xilinx 基于 TSMC 16 nm FinFET 技术构建的、具有“价格/性能/瓦特”平衡比的 FPGA 器件。结合皆为新的 UltraRAM 和互连优化技术 (SmartConnect),该器件为需要通过高端功能收发器实现 100 Gbps 连接内核的应用提供了最经济实惠的解决方案。这个系列专门为网络和存储应用而设计,如网络包处理和无线 MIMO 技术、100 Gbps 有线网络、工业和数据中心网络加速以及 NVMe SSD(固态硬盘)存储加速。本文通过使用 Design Gateway 的 TOE100G-IP 内核和 NVMeG4-IP 内核,在 Xilinx 的 KCU116E 评估套件上演示了 TCP 卸载引擎网络和 NVMe SSD 实现的100Gbps 解决方案。其中,TOE100G-IP 内核用于在 100 GbE 接口上进行 12GB/s TCP 传输的 CPU 解决方案,而 NVMeG4-IP 内核则能够实现每个 SSD 约 4GB/s 的难以置信的快速传输性能。

Kintex UltraScale+ KCU116E 评估套件简介

KCU116E 非常适用于评估 Kintex UltraScale+ 的关键功能,尤其是 28 Gbps 收发器性能。该套件非常适用于基于 XCKU5P-2FFVB676E FPGA 器件的快速原型开发。

板上包括一个板载的 1GB 64 位 DDR4-2666、以及用于多达 2 个 M.2 NVMe SSD 接口的 PCIe Gen4 x8 通道。16 x 28 Gbps GTY 收发器可用于组成 PCIe Gen4 X8和 2个100 GbE 接口,并提供各种外设接口和 FPGA 逻辑以方便用户进行定制设计。

图 1:KCU116E 评估套件。

通过搭配 Design Gateway 的 IP Cores,KCU116E 能提供开发最先进的 100Gbps 网络和存储解决方案所需的一切,而且不需要 MPSoC 支持。

实现 100Gbps 网络和存储解决方案

图 2:KCU116E 的 100Gbps 网络和存储解决方案。(图片来源:Design Gateway)

尽管 Kintex UltraScale+ 器件不像 Zynq UltraScale+ 那样采用了 MPSoC 技术,但通过利用 Design Gateway 的 IP Cores 解决方案,可以实现网络和 NVMe 存储协议处理,无需处理器和操作系统。

1. TOE100G-IP:100GbE 全 TCP 协议栈 IP Core,无需 CPU

2. NVMeG4-IP:独立的 NVMe 主机控制器,内置 PCIe Gen4 IP 软核

TOE100G-IP 和 NVMeG4-IP 都可以在不需要 CPU/OS/驱动的情况下运行。对于使用这两种 IP 的控制和数据路径的用户逻辑,可以由 Microblaze 的纯硬件逻辑或裸机操作系统来实现,以使高层应用和算法的开发更快、更容易,而无需担心复杂的网络和 NVMe 协议。这为先进的系统级解决方案创造了新的机会,如传感器数据采集、板载计算和基于 AI 的边缘计算设备。

Design Gateway 的 TOE100G-IP 用于 UltraScale+设备

图 3:TOE100G-IP 系统。(图片来源:Design Gateway)

TOE100G IP 内核执行 TCP/IP 协议栈(在硬线逻辑中),与 Xilinx 的 100Gb 以太网子系统模块连接,用于下层硬件。TOE100G IP 的用户接口包括一个用于控制信号的寄存器接口、一个用于数据信号的 FIFO 接口。TOE100G IP 旨在与 100Gb 以太网子系统连接,后者使用 512 位 AXI4-ST 连接至用户接口。Xilinx 提供的以太网子系统包括 EMAC、PCS 和 PMA 功能。100Gb 以太网子系统的用户接口时钟频率等于 322.265625 MHz。

TOE100G-IP 的特点

·  完整的 TCP/IP 堆栈实施

·  一个 TOE100G IP 支持一个会话(可通过使用多个 TOE100G IP 实现多重会话)

·  同时支持服务器和客户端模式(被动/主动打开和关闭)

·  支持 Jumbo 框架

·  通过标准 FIFO 接口提供简单的数据接口

·  通过单端口 RAM 接口进行简单的接口控制

XCKU5P-2FFVB676E FPGA 器件上的 FPGA 资源使用情况如下表 1 所示。

表 1:Kintex Ultrascale+ 器件的使用统计示例

有关 TOE100G-IP 的更多详情,请参阅其规格书。可从 Design Gateway 网站下载规格书。

Design Gateway 的 GTY 收发器的 NVMe PCIe Gen4 主机控制器

Kintex UltraScale+ 有一个 GTY 收发器,能够支持 PCIe Gen4 接口,但不含 PCIe Gen4 集成块和 ARM 处理器。

Design Gateway 通过开发 NVMeG4-IP 内核解决了这个问题,该内核能够作为独立 NVMe 主机控制器运行并在单个内核中内置 PCIe 软 IP 和 PCIe 桥接逻辑。NVMe PCIe Gen4 固态硬盘访问的启用简化了用户界面,使标准功能设计易于使用,而不需要掌握 NVMe 协议的知识。

图 4:NVMeG4-IP 框图。(图片来源:Design Gateway)

NVMeG4-IP 的特点

·  能够实现应用层、事务层、数据链路层和物理层的某些部分在没有 CPU 或外部 DDR 存储器的情况下访问 NVMe SSD

·  使用配置为 4 通道 PCIe Gen4(256 位总线接口)的 Xilinx PCIe PHY IP 进行操作

·  包含 256 KB RAM 数据缓冲区

·  支持六条命令,即识别、关断、写入、读取、SMART 和刷新(可选择支持其他命令)

·  用户时钟频率必须大于或等于 PCIe 时钟(Gen4 为 250 MHz)

XCKU5P-2FFVB676E FPGA 器件上的 FPGA 资源使用情况如下表 2 所示。

表 2:Kintex Ultrascale+ 器件的实施统计举例

有关 NVMeG4-IP 的更多详情,请参阅其规格书。可从 Design Gateway 网站下载规格书。

在 KCU116E 上实施 TOE100G-IP 的举例和性能结果

图 5 所示为基于 KCU116E 的参考设计,以展示 TOE100G-IP 的应用情况。该演示系统包括裸机操作系统 Microblaze 系统、用户逻辑和 Xilinx 的 100Gb 以太网子系统。

图 5:TOE100G-IP 演示系统框图。(图片来源:Design Gateway)

该演示系统专们用于评估 TOE100G-IP 在客户端和服务器模式下的操作。使用测试逻辑功能,可在测试模式下发送和接收数据,以便在用户界面侧获得尽可能高的数据速度。对于使用 KCU116E 的 100GbE 接口,需要四个 SFP+ 收发器 (25GBASE-R) 和光纤电缆,如图 6 所示。

图 6:在 KCU116 上安装的 TOE100G-IP 演示环境。(图片来源:Design Gateway)

图 7 显示了 100G 与其他 (1G/10G/25G/40G) 比较时的示例测试结果。

图 7:TOE100G-IP 与 KCU116E 上的 1G/10G/25G/40G 性能比较。(图片来源:Design Gateway)

测试结果表明,TOE100G-IP 能够实现大约 12GB/s 的 TCP 传输速度。

在 KCU116E 上的 NVMeG4-IP 实施和性能结果示例

图 8 所示为基于 KCU116E 的参考设计,以展示 1CH NVMeG4-IP 的实施情况。如果用户定制设计的 FPGA 资源可用的话,可以实施 NVMeG4-IP 的多个实例以实现更高的存储性能。

关于 NVMeG4-IP 参考设计的更多详情,请参考 Design Gateway 网站上提供的 NVMeG4-IP 参考设计文件

图 8:NVMeG4-IP 参考设计概览。(图片来源:Design Gateway)

该演示系统旨在通过 KCU116E 上的 NVMe SSD 写入/验证数据。用户可通过串行控制台控制测试操作。为了使 NVMe SSD 与 KCU116E 连接,需要一块 AB18-PCIeX16 适配器板,如图 9 所示。

图 9:在 KCU116E 上安装的 NVMeG4-IP 演示环境。(图片来源:Design Gateway)

使用 512 GB Samsung 970 Pro 时,在 ZCU116 上运行演示系统的示例测试结果如图 10 所示。

图 10:使用 Samsung 970 PRO S 时,ZCU116 上 NVMe SSD 的读/写性能。(图片来源:Design Gateway)

结语

TOE100G-IP 和 NVMeG4-IP 内核都提供了在 KCU116E 板上使用 100Gbps 连接功能的解决方案,可实现网络和 NVMe 存储应用。一个 TOE100G-IP 能够在 100GbE 上进行大约 12GB TCP 传输。NVMeG4-IP 可以通过 NVMe PCIe Gen4 提供卓越的高性能存储,每块 SSD 的速度约为 4GB/s。NVMeG4-IP 的多个实例可用于组成 RAID0 控制器,并可提高存储性能,以匹配 100GbE 的传输速度。

利用 KCU116E 评估套件和 Design Gateway 的网络与存储 IP 解决方案,就有可能以最少的 FPGA 资源实现最高性能的目标,从而获得基于 Xilinx Kintex UltraScale+ 器件的、经济实惠的解决方案或产品。

VX:  orihard2014

 

ORihard KCU116E: 经济实惠的 100Gbps 网络和存储 FPGA 开发平台的更多相关文章

  1. Centos6.5搭建RHCS集群-实现GFS+iSCSI网络共享存储

    RHCS集群配置 需要用到的各组件功能:RHCS(Red Hat Cluster Suite):能够提供高可用性.高可靠性.负载均衡.存储共享且经济廉价的集群工具集合.LUCI:是一个基于web的集群 ...

  2. Android之网络数据存储

    一.网络保存数据介绍 可以使用网络来保存数据,在需要的时候从网络上获取数据,进而显示在App中. 用网络保存数据的方法有很多种,对于不同的网络数据采用不同的上传与获取方法. 本文利用LeanCloud ...

  3. SuperMap iClient 7C——网络客户端GIS开发平台 产品新特性

    SuperMap iClient 7C是空间信息和服务的可视化交互开发平台,是SuperMap服务器系列产品的统一客户端.产品基于统一的架构体系,面向Web端和移动端提供了多种类型的SDK开发包,帮助 ...

  4. paip.提高效率---微信 手机app快速开发平台—微网络撬动大市场

    paip.提高效率---微信 手机app快速开发平台-微网络撬动大市场   手机app快速开发平台 尤其适合crm系统,呼叫中心等业务功能...    作者Attilax  艾龙,  EMAIL:14 ...

  5. linux一句话问答(网络无关篇+网络相关篇+程序开发篇+经典图书)

    一句话问答(网络无关篇+网络相关篇+程序开发篇+经典图书) --------------------------目录-网络无关篇-目录-------------------------- 0001 修 ...

  6. Android开发9:网络访问&Web服务开发

    前言 啦啦啦各位小伙伴们好~ 一起进入我们今天的主题.今天我们将和大家学习网络访问和Web服务开发的相关知识,一起学习熟练使用 HttpURLConnection 访问 WebService,熟悉使用 ...

  7. 20155324《网络对抗》Exp1 PC平台逆向破解(5)M

    20155324<网络对抗>Exp1 PC平台逆向破解(5)M 实验目标 本次实践的对象是一个名为~pwn1~的~linux~可执行文件. 该程序正常执行流程是:~main~调用~foo~ ...

  8. 2018-2019-2 20165236郭金涛《网络对抗》Exp1 PC平台逆向破解

    2018-2019-2 20165236郭金涛<网络对抗>Exp1 PC平台逆向破解 一.实验内容 1.掌握NOP, JNE, JE, JMP, CMP汇编指令的机器码(0.5分) 2.掌 ...

  9. 20155208徐子涵 《网络对抗》Exp1 PC平台逆向破解

    20155208徐子涵 <网络对抗>Exp1 PC平台逆向破解 实践目标 本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:main调用foo函数,foo函数 ...

  10. 网络共享存储服务NFS

    网络共享存储服务NFS 作者:Eric 微信:loveoracle11g 环境准备 服务器系统 角色 IP RHEL 7.5 x86-64 NFS服务端 192.168.10.201 RHEL 7.5 ...

随机推荐

  1. 2022-05-10内部群每日三题-清辉PMP

    1.项目经理管理的一个项目不断面临挑战.发起人经常无法做出决定,存在大量预算超支,团队成员不断从项目离职,高级管理层没有提供实际的支持.项目经理应该怎么做? A.与团队一起开会,以确定造成这些问题的原 ...

  2. MapReduce原理——切片代码分析

    (1)程序先找到数据存储的目录 (2)遍历目录对每个文件进行切片 (3)遍历一个文件: 获取文件大小 计算切片大小 默认情况下,切片大小等于blocksize 每次切片时都要判断剩下部分师否大于块的1 ...

  3. 打开Access时电脑出现蓝屏,错误编号0x00000116的问题解决

    Windows7 64位旗舰版,在打开Access 2013,Onenote 2013时均会出现蓝屏,现就出现蓝屏问题解决方法给大家做一个分享. 步骤: 1.右击我的电脑,打开设备管理器 2.按顺序1 ...

  4. mybatis读取blob类型

    mybatis 读取blob数据 mybatis读取blob数据过程: 1.从数据库中读出blob数据类型,用pojo中的byte[]接收. 2.把文件保存成文件(或者变成base64也行). Cus ...

  5. springboot上传图片

    springboot上传图片 新建一个springboot项目: 在java/main/com/ljx 创建一个controller.fileController类 内容如下: package com ...

  6. Flink1.11 解决 No ExecutorFactory found to execute the application

    在使用Flink1.11的时候写了个本地Test 运行的时候发现报错了,具体如下 Exception in thread "main" java.lang.IllegalState ...

  7. (三)用go实现平衡二叉树

    本篇,我们用go简单的实现平衡二叉查找树.具体原理参考大佬博客即可:AVL树(一)之 图文解析 和 C语言的实现 1.节点定义 type AVLNode struct{ data int height ...

  8. Jmeter学习:常用内置函数

    常用函数一:  常用函数二: __counter 功能介绍: 生成一个计数器变量,每次使用的时候+1 __counter(false,gseq)表示所有线程共用,所有线程及迭代共享计数. __coun ...

  9. Delphi 从字符串中提取数字

    function GetNumberFromStr(strIn: string; sFlag: string): string; var i: Integer; tempStr: string; be ...

  10. main(调用一个公共组件)

    app.vue <template> <div> <Student/> <School></School> </div> < ...