微波EDA网,见证研发工程师的成长!
首页 > 通信和网络 > 通信网络技术文库 > Xilinx FPGA 助力高性能 SDN

Xilinx FPGA 助力高性能 SDN

时间:09-07 来源:互联网 点击:
利用 FPGA 的灵活性和可编程性,Corsa Technology 在不到六个月的时间内设计并销售了其首款软件定义网络交换机。

作者:Yatish Kumar
首席技术官
Corsa Technology
yatish@corsa.com

一些人可能认为,就具体效果而言,软件定义网络 (SDN) 受到了人们过多的关注。在 SDN 的早期,部署的出现源自于领先研究机构与快速定制其现有非 SDN 固件的硬件公司的共同不懈努力。尽管这些工作验证了 SDN 的理论,但概念证明阶段的 SDN 与专门针对全球精心策划架构的生产网络实施的 SDN 之间仍有很大差别。

在 Corsa Technology,我们与网络架构师和运营商一起制定了 SDN 的愿景。他们一遍又一遍地告诉我们,正确实施的 SDN 意味着您的网络架构将实时改变和适应流量模式和用户需求。这一灵活性以传统成本的一小部分实现了性能的大幅提升。

以这一理念作为指导原则,Corsa 将 SDN 定义为简单设计模式。很多其他公司也认同这一基本概念:将软件与硬件分离,通过开放接口进行通信,给予软件所有控制权(大脑)并让硬件(体力)尽可能地高性能。但是在 Corsa,我们从性能硬件的角度进一步认真研究了网络新世界秩序需要(图 1)。

我们提出的硬件定义与网络架构师的SDN愿景不谋而合。我们将其称之为“精益硬件”:规模适合部署,具有超高性能,并且灵活性和可扩展性极高,即便是最大网络流量,也能轻松应对。如果仅需要约 10% 的功能,为何要购买庞大且昂贵的大型机器?相反,如果硬件的灵活性和可编程性足够,则您可以对其进行调整和修改以满足特定网络需求。无论是在 WAN 边缘还是园区边缘,同一精益硬件可以在您的网络中肩负着各种元件的作用。

正确实施的 SDN 使您可以摆脱本地、苛刻、固定式、复杂、专有硬件和软件的束缚。简单设计模式中 Corsa 的性能 SDN 可帮助您通过灵活、高性能、可扩展硬件平台实现软件定义网络。

重重压力下的硬件设计  

这种灵活的 SDN 网络概念对于网络硬件设计必须如何变化有着直接影响。得益于新的创新,SDN 网络架构可能快速变化,因此 SDN 硬件解决方案的上市时间比以往变得更为重要。

硬件平台是系统设计、板级别设计、机械设计与 SoC 选择或设计的组合体。通常,在 SDN 等新兴市场中,SoC 无法以商用芯片的方式提供,并且硬件解决方案需要采取 ASIC、NPU 或 FPGA 途径得以实现。对于 SDN,鉴于其网络变化的节奏,我们很难做出决策。

使用定制 ASIC,通常需要三年时间才能完成网络硬件的设计、构建与实现工作:六个月的时间进行硬件选型和架构;一年时间进行 ASIC 设计;四个月时间进行开发板设计和制造;十二个月时间进行软件集成和测试。如果所有流程一次性通过,便可实现上述结果。

对于 Corsa,这种时间优先的原型设计方式不可接受。

另一方面,网络处理单元 (NPU) 是一种专为网络应用而设计的可编程商用芯片。尽管它们的确具备高灵活性并且可以重新编程,但它们的带宽有限,这对于大规模交换功能是一大障碍。它们还提供了复杂的专有编程模型,很难更改。由于 SDN 需要全面的灵活性、高性能和大规模,我们同样排除了 NPU。

为通过适当的解决方案满足 SDN 上市时间需求,Corsa 选择了 FPGA,并且利用赛灵思 Virtex®-7 器件的灵活性,用六个月时间开发了一种解决方案。

利用 FPGA 进行设计,我们可以并行进行以下工作(请参见图 2):
• 系统架构(四个月)
• RTL 代码编写(六个月)
• 软件设计(六个月)
• PCB 设计和制造 (四个月)

一个重要的事实是,我们可以在 FPGA 平台上即时修改 RTL,同时各种设计活动继续进行并针对性能和规模进行优化。

增量设计的优势
  
我们采用基于一系列 FPGA 的 Slice 来开发我们的系统架构。这种方法能够开发出具有最小可行特性的单个 Slice,同时为全特性集留下预算容量。不需要像通过基于 ASIC 或 NPU 的方法那样预先全面设计整个架构,然后再迁移到 RTL 中。因此,我们可以与系统并行开发工作码,并能够更加快速地交付给领先客户。

并非每一个用例或应用都需要所有功能。通过利用 FPGA 的硬件级可编程性,我们可以创造更小的 RTL 实现,这些实现与特定用例所需要的功能集和性能相匹配。在设计期间甚至是在现在,可以取代 10G 和 100G MAC,将资源从交换架构转移到分类引擎,以及添加或移除用于特定协议的硬件加速功能。相比 ASIC 或 NPU ,这一灵活性有助于减少门数,进而缩减物理封装尺寸。它还使我们可以回应那些一旦客户参与就会必然出现的无法预见用例。序列设计通常会导致出现先有鸡还是先有蛋的定义难题,即:完全指定 ASIC 或 NPU 要求,但是在产品到达实验室之前,没有详细的客户参与。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top