使用虚拟化硬件功能加速虚拟化环境,硬件虚拟化

随着时间的推移,该行业已转向虚拟化功能和软件定义网络 (SDN),以便在数据中心和网络中的各种硬件平台上实现灵活部署。软件现在必须能够跨多个软件和硬件环境进行转移,以既具有成本效益又提供所需的灵活性以满足一系列不断变化的性能需求。

Open vSwitch (OVS) 是一个高级功能的例子,它曾经是硬件,但通过虚拟化交换功能带来了部署的灵活性。在此过程中,一些更适合硬件的功能(如数据包解析和分类)已成为瓶颈。寻找使用硬件加速这些虚拟功能同时保持部署灵活性的方法可以大大提高吞吐量并减少延迟。

带有 FPGA 或专用芯片的 SmartNIC 正在成为一种硬件和软件混合的解决方案。为了与软件功能一起发挥作用,关键的硬件功能必须虚拟化。

目前在使用 FPGA 加速虚拟环境时存在几个挑战,主要归因于存储容量、内存的聚合随机访问性能和内存访问延迟:

第一个挑战在于难以支持需要大量内存并且需要以真正随机访问模式访问的系统。即使现在的 FPGA 支持更大的芯片资源,甚至那些支持高带宽内存 (HBM) 的 FPGA,问题也变成了需要多少这些资源来支持高速随机访问要求。甚至还有第三种常见情况,即使用片外 QDR SRAM 来增加片上资源,它使用许多 I/O 资源来实现相对较低的密度。问题是,如何仅使用一个设备替换多个具有相同或更多内存的 QDR 设备?

第二个挑战可以概括为投资利用率或可移植性。许多需要数据包分类或 DPI 等功能的 最终用户客户在软件方面投入了大量的开发工作。如果这些客户需要中期性能提升或扩大产品供应范围,除了可能重新设计相关硬件外,还需要大量的软件返工。

虚拟加速器引擎方法

虚拟加速器引擎 (VAE) 方法允许用户设计 API 和 RTL 模块接口,将软件和系统设计的其余部分与底层实现隔离开来。这可以升级以支持性能提升,同时节省软件开发和调试的工作量。此外,虚拟加速器方法在 OVS 等分层解决方案中表现良好,这些解决方案具有“回退”到较慢路径的快速路径,所有这些都使用相同的编程模型来管理表。

目前,有多种方法可以加速基于 FPGA 的设计。当客户特别基于 FPGA 设计系统时,有两种方法可以解决最常见的瓶颈挑战。

该策略一直是定义一个通用 API 函数接口,该接口由一系列具有可扩展性能的硬件环境支持。由于 API 有不同的性能规格可供选择,因此不必知道硬件是什么。因此,从本质上讲,它本质上是一种虚拟硬件解决方案。

在这里,硬件不会驱动软件决策。定义了软件性能,选择了硬件环境。因此:软件定义,硬件加速。

由于软件系统设计是在 API 级别使用未选择的硬件环境执行的,因此这些解决方案称为虚拟加速器引擎。这允许系统在一系列硬件平台选项上执行这个软件定义的功能,每个选项都可以提供不同的性能点。

虚拟加速器引擎的主要优势在于需要通过使用通用 API 来保护软件投资的应用程序,以便在许多不同的硬件环境中实现可传输性或性能扩展。通过设计通用 API,系统设计人员可以将其无缝移植到一系列性能平台上。

可能的 VAE 平台

下图描述了 VAE 的可扩展硬件环境,该环境将执行通用 API 和模块接口。通过从低端、更具成本效益的硬件环境迁移到性能驱动、硬件定义的系统,一个常见的应用程序可以体验高达 400 倍的性能提升。每个的基本性能取决于底层内存在总的聚合随机读取和写入方面的能力。

这种灵活性允许系统设计人员选择实施适当的 VAE 平台来实现所需的系统性能。

许多市场正在转向软件可移植的世界。虽然这在云计算中很常见,但在较低级别的系统功能中并不常见。

虚拟加速器引擎:软件 + 固件 + 硬件

虚拟加速器引擎被定义为在系统功能级别提供缩放加速。通用 API 与硬件无关。它可以在未连接到专用 IC 的 CPU 或 FPGA 或连接到加速器 IC 的 FPGA 上运行,例如 MoSys 加速器 IC 系列,包括带宽引擎或具有内存计算能力的可编程超高速引擎。

虚拟加速器引擎旨在支持诸如“数据包分类”之类的功能平台。它是“虚拟的”,因为它是一种抽象功能,可以是独立软件、FPGA RTL 或基于嵌入式固件的。

使用 MoSys 的通用软件接口 (API) 和跨多个硬件环境的 RTL 模块接口,系统设计人员可以重用内部开发的软件代码来调整所需的性能。此外,所有基于 FPGA 的 VAE 都使用允许硬件可移植性的通用 RTL。具有通用 API 的 VAE 可以在 CPU 或通用 RTL 模块接口上运行,其中 FGPA 未连接到 MoSys IC 或 FPGA 连接到 MoSys 加速器引擎 IC。

软件定义系统的时代

随着软件可移植性的发展,不仅在云中而且在独立系统中,设计人员需要快速进入具有不同性能/价格点的新系统设计。这就要求系统设计人员将应用程序放入具有不同性能级别的硬件环境中,从而针对每个平台进行设计。

VAE 允许工程师在系统/应用程序级别进行思考,而无需担心“我的硬件做什么?” 借助“功能平台”,这些工程师可以先开发软件定义的系统,然后再从一系列性能环境中选择硬件。

审核编辑:郭婷

相关推荐

最新

相关文章