首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

全新SDNet软件定义规范环境—— 实现业界首款“软”定义网络解决方案

全新SDNet软件定义规范环境—— 实现业界首款“软”定义网络解决方案

前言
作为多年研发与大量投资所取得的一项硕果,赛灵思推出了针对网络的全新 SDNet 软件规范环 境 (Software Defined Specification Environment for Networking)。通过将高层次用户自定义规范编译到高度优化的 ALL Programmable FPGA 和 SoC 上,SDNet简化了高性能包处理系统的创建。具体来说就是,SDNet 结合使用赛灵思 All Programmable 器件,打造出了“软”定义网络这样的交叉技术。软定义网络 (Softly Defined Network) 不仅支持软件定义网络 (Software Defined Networking,SDN) 的对象,而且还支持带内容智能的软定义数 据层硬件,从而实现“改变游戏规则”的突破性功能。
这篇技术文档主要面向网络系统架构师和工程技术经理,用以帮助他们理解 SDNet 广泛的功能 特性,从而确定如何应用 SDNet 解决种种技术难题,并最终构建同时具备 All Programmable 和 Smarter 特性的软定义网络。在阅读本文档时,读者还可以参考涵盖 SDNet 具体特性的附属文 档,以便更深入地理解所感兴趣的内容。
对软定义网络的需求
为满足不断变化的最终用户需求,网络系统厂商感知到他们必须将系统开发周期从几年缩短到几 个月,同时还必须支持包括 SDN 在内的新型网络拓扑结构。这是因为标准正在快速演变 ;不断 出现新的连接方式 ;新的服务层出不穷 —— 这些服务必须以统一的形式灵活提供,可以在具有 不同吞吐量、接口选项和尺寸的多个线卡之间扩展。同时,电信运营商正着重从 SDN 和 NFV 等 新型网络架构方面入手,以简化配置与管理并减少资本支出。最理想的解决方案是真正可编程、 可扩展的线卡(从入口到出口)。这类线卡具备所要部署的新功能,通过软件进行控制,并具有自定义的硬件结构。
极速增长的开发成本、更长的开发周期,以及本身缺失灵活性,这些因素都会阻碍设备提供商向 下一代 ASIC 的迁移。即使成功的 ASIC 项目积累了更多适用于未来的资源,但同时也大幅增加了 成本、尺寸、功耗以及开销。总的来说,很少有系统厂商尝试过将内部数据层 ASIC 扩展到 50 至 100 Gb/s 数据速率以上。同时,新应用和数据速率的不同要求会以相同方式影响 ASSP 厂商,从 而造成商用芯片交付上的缺口。简言之,固定芯片解决方案业务正在快速蒸发。
就在 ASIC 和 ASSP 厂商纠缠于网络领域的种种难题之时,IT 行业已在开疆拓土。IT 架构师需要急 切关注的趋势是,硬件正朝着由软件控制的动态虚拟服务方向发展,同时线卡(包含固定功能 ASIC 和更灵活的商用 NPU)的价值也受到了质疑。但是,对于只采用简单的交换硬件并将更高 级功能留给软件处理的解决方案来说,除非在非常有限的环境中,否则这类解决方案无法满足所需的性能要求。
All Programmable FPGA 和 SoC 可满足市场对于高灵活性硬件(通过软件进行编程)的需求,但它 们在这方面的潜力也不能被过分夸大。事实上,线卡的几乎每个功能(从入口到出口)都可利用 可编程技术通过现有的 All Programmable 器件来实现,同时支持新一代网络平台所必需的线速率和包处理速率。
赛灵思将下一代可编程网络平台命名为“软定义网络”设备,以突出其软件和硬件全面可编程 (All Programmable) 的特性,以及实现 SDN 及其它网络功能的能力。


图 1 显示了网络设备(交换机、路由器或装置)的演变过程。第一步显示了向软件定义网络发展 的普遍趋势,采用的是开放、灵活的软件控制以及封闭、固定和简单的硬件资源 ;第二步显示了 赛灵思进一步向软定义网络的演进,采用开放、灵活、复杂的硬件数据层来应对现代差异化的内 容导向型网络的性能与安全挑战。软件定义网络有限的南向 API (Southbound API) 变得更加丰富: 支持对高速数据层彻底进行重新编程,并可从数据路径取回已编程的流量分析。软件定义数据层 硬件的附加优势相当完备,包括 :支持各种线速协议 ;高度灵活、更出色的服务质量 (QoS) ;流 程与会话感知能力,此外还能实现网络虚拟化、网络功能虚拟化 (NFV),以及用户定义的定制化功能。
赛灵思革命性的 SDNet 规范环境满足向软定义网络演进的需求,支持在赛灵思 All Programmable
器件上对包处理功能进行快速原型设计、开发与部署。高级功能描述语言可以自动将包处理要求 映射到最佳可编程硬件实现中,它的推出是真正的行业变革和颠覆性技术。
SDNet 规范环境简介
SDNet 环境的基础是使用可由集成开发工具集进行处理的高级网络规范。SDNet 环境环境允许用 户以自然的方式描述所需求的包处理功能,无需说明任何实现细节。描述内容随后在赛灵思 All Programmable 器件上自动转换为能够以最佳成本、功耗和性能实现线速处理的最佳硬件实现方案。这样便实现了软定义网络。
SDNet 设计环境的主要组成部分包括 :
○        生成针对特定功能(例如语法分析、编辑)的定制硬件组件
○        生成满足用户要求的定制包数据层硬件子系统
○        生成用于 SDNet 硬件架构的定制固件
○        生成认证和验证测试平台
由        SDNet 环境生成的包处理架构可支持无中断升级 :可在数据包之间对数据层功能进行变更,而 且绝不会中断线路速率服务。这种即时变更可通过定制固件升级来实现 ;其中定制固件升级也由 用户所做的 SDNet 描述变更生成。
SDNet 设计环境还集成了包括针对网络的 SmartCORETM,以及面向连接功能、外部存储器控制和 嵌入式处理器的 LogiCORETM 等在内的赛灵思其它优化技术。将 SDNet 作为网络定制组件嵌入到 业界领先的赛灵思 Vivado® 设计环境中,便可实现 SDNet 技术。
SDNet 是开放式环境,允许集成用户提供的组件 :
○        紧密的硬件集成 :将用户引擎导入到 SDNet
○        外部硬件集成 :用户 IP 模块连接到完整的 SDNet 硬件模块
○        软件集成 :用 SDNet 管理 API 接口连接用户软件

创新型 SDNet 的重要功能与优势包括 :


通过 SDNet 实现下一代线卡和软定义网络
图 2 举例说明 SDNet 在典型线卡上可实现的功能。


如图 2 所示,除了光学器件和外部存储器外,支持新一代服务的线卡完全可以由 All Programmable 器件实现。SDNet 软件规范环境确实让 All Programmable 线卡成为可能并且极具实 用性。在上面的方框图中,包含包处理和可编程流量管理器的定制数据层可通过 SDNet 规范环境 指定。此外,MAC、PCS、FEC 和光纤接口等核心组件也可由赛灵思庞大的 SmartCORE 网络库提 供 ;其它基本的接口核心组件(包括外部存储器接口)也可从赛灵思的 LogiCORE IP 库中获取。
SDNet 规范环境具有一种非常独特的功能,那就是能够生成数据路径处理功能,支持无中断即 时升级。这样,通过标准 SDNet API 并利用软件控制器即可升级不同线卡组件,使其具备最新 的特性与功能。升级软件可在嵌入式软处理器或外部处理器上运行。当采用赛灵思 Zynq® All Programmable SoC 器件时,该软件可运行于该器件的嵌入式 ARM® 处理器上。因此,SDNet 另辟 蹊径,提供了软定义网络 :在软件控制下的全面硬件可编程功能。
图 3 给出了 SDNet 在网络中的不同部署方案。


SDNet 描述
计算机科学的演变方向是提高抽象化程度,目的在于从人的角度如何实现,而非从机器的角度。 两个著名例子分别是 SQL 描述和 HTML 描述。前者可用自然方式表达数据库查询过程,无需了解 任何底层数据库的具体实现方式 ;而在 HTML 描述中,网页则以文本标记形式显示,无需详细了解网页在特定设备上的显示方式。这类描述用针对特定应用领域的专用语言编写而成。这使得它们成为了不受限制的自然语言与标准计算机编程语言之间可行的折中方案。
在包处理中,特定协议一般要求用英语描述来表达,例如因特网请求注解 (RFC) 或 ISO 标准文 档。但这些内容必须经手动转换成低层次的具体实现描述,以指出包处理任务应如何由通用处理 器、专用网络处理器或专用 ASIC 硬件来执行。
由于包处理含有相对少量的特征函数,因此适合采用特定领域专用语言,以便让网络专家通过自 然的方式描述所需的包处理任务,而 SDNet 语言正好可以满足这一要求。此外,SDNet 可提供最 佳编译器,用于将此类规范转换或映射到高效的实现方案中,从而为用户带来高生产力优势,使 用户可以采用正确的基本 FPGA 技术实现灵活的最佳硬件实现方案。
SDNet 可帮助用户描述各类包处理引擎(包括语法分析、编辑、搜索和 QoS 策略引擎)应具备的行为。其还可支持用户根据通过包数据流相互连接的简单子引擎进行引擎分层描述。这些子引擎 包含用户提供的引擎。SDNet 描述不包含实现细节,使用户无需重新编程即可扩展设计的性能、 功率和资源。此外,SDNet 不局限于任何特定的网络协议。
图 4 给出了数据包语法分析功能的部分内容,该部分用于遍历以太网数据包报头,图 5 中则给出 了相应的 SDNet 描述。一般遍历流程为 :位于数据包内的特定位偏移 —— 特定段类型(可能为 数据包报头、尾部或其它部分);执行操作 ;然后移到下一段或完成后结束。该实例说明了如何 提取所需的以太网数据包报头字段并将其放入 12 元组中。随后该 12 元组可用于通过连接的搜索引擎进行分类。
一个完整的数据包分析器包含很多相似的类,每个类都针对不同的协议头类型。每个类都包含 头格式声明,以及遍历到下个报头 (header of interest) 的规则定义方法 :其类型和数据包内的偏 移位置。数据包编辑采用相似的数据包报头和尾部遍历方法,还可能包含报头和尾部的插入或删除。





用户可将不同组件子引擎与包数据流宏架构实现互联,从而构成引擎。所示互联模式可遵循任何 定向非循环图。图 7 给出的简单实例就展示了由 3 个组件子引擎而构成引擎的情况,它采用的 是图 6 所示的相应 SDNet 描述。但 SDNet 描述只展示引擎之间的数据流,并未给出具体实现细 节。此外,SDNet 描述片段还包括用户提供的引擎描述,其仅由输入输出接口描述特性。这里, 在包分类结果驱动包编辑之前,用户引擎可在主要的数据包流上执行一些定制转换。在本例中,编辑器有一个数据包流输入和两个额外的数据元组流输入。
构成方法对于 SDNet 分布式搜索引擎方法而言非常重要。SDNet 包括三种类型的搜索引擎 :
○        内容可寻址存储器(精确匹配)
○        最长前缀匹配引擎
○        三重内容可寻址存储器(通配符匹配)

在        SDNet 中,用户可指定搜索引擎的规模,包括密钥和结果宽度和查找表深度。随后这些引擎可 根据应用要求集成在整体系统数据流架构中,这样整体搜索功能就针对特定应用进行了优化。
采用代表性应用定制搜索引擎系列的实例包括 :
○        针对以太网目的地址查找的精确匹配 CAM :64K 输入、48 位宽
○        针对以太网源地址学习的精确匹配 CAM :4K 输入、48 位宽
○        针对 IPv4 目的地址查找的最长前缀匹配 :64K 输入、32 位宽
○        针对 IPv6 目的地址查找的最长前缀匹配 :8K 输入、128 位宽
○        针对 ACL 查找的三重 CAM :4K 输入、112 位宽

这将在以太网/IP/TCP/UDP 包综合处理中发挥作用。每个搜索引擎都可单独设置规模,并针对精 确的应用要求进行优化,且能够直接耦合于相关包处理引擎中,以避免遭遇瓶颈。


类似的构成方法也可用于服务质量 (QoS),构成互联策略引擎。所需的服务配置包括流程数量和 层级结构等级数量,可由设计人员指定,配合选择精细粒度流量监管、成形、调度、核算或拥塞 管理以及每个流程的算法。在自动生成的组件中,整体 QoS 策略功能可针对特定应用进行优化 并与相关的包处理一起打包,用于流分类和包标记。
图 8 给出了每个流程保持的策略组合实例,其可作为数据包穿过多个 QoS 层级结构等级。选中 策略配置文件(这里是双速率三色标记),然后分配适当的拥塞避免措施(这里是加权随机早 期检测,配合层级结构等级之间的流程控制)。选中外发包的成形配置文件(这里是双漏桶算 法),然后应用调度要求(这里是绝对优先级算法(Strict Priority Plus))。
简而言之,对用户而言,SDNet 语言让描述变得自然、简短、便捷,而定制 FPGA 实现方案则让 包处理变得高效快捷,而且功耗极低。
由用户规范生成的 SDNet 包处理数据层硬件配合存根的生成,可用于由控制层软件访问的各种管 理功能,包括所有包处理功能的无中断升级、一系列流量统计数据和定制图。这样,SDNet 就能提供真正的软定义网络,支持优化的可编程硬件以及配套控制软件,并且全部通过与实现方案无关的高层次描述进行驱动。
SDNet 方法论
图 9 给出了使用 SDNet 的整体设计流程。从 SDNet 描述开始,能得出用于配置赛灵思 All Programmable 器件的比特流。


第一步是用 SDNet 编译器生成所需硬件功能的 RTL 级描述。用户向编译器提供关于性能需求(吞 吐量和时延)和运行时可编程性需求的更多信息,这会影响由编译器生成的优化硬件架构。除了 寄存器传输级(RTL)硬件描述之外,编译器还可生成用于软件控制功能的存根以及调试 / 验证基础架构。
第二步是使用基础的赛灵思 Vivado 设计工具,其具有两大功能。第一大功能是将 SDNet 编译器生成的 RTL 级架构描述转换为优化型赛灵思 FPGA 实现方案;第二大功能是支持子系统与其它SmartCORE和 LogiCORE的集成以构建完整系统,并为选中的赛灵思 All Programmable 器件生成最终优化的比特流。
系统集成功能支持 SDNet 数据层处理功能并入更大型系统的一部分,这个更大型系统包括其他用 户提供的组件,特别是连接 SmartCORE 和 LogiCORE 以访问以太网、Interlaken 连接或外部 DRAM及 TCAM 存储器的组件等。
此外,SDNet 还为各种层级的调试与验证提供基础架构。用于 SDNet 数据层输入的测试包(或者也可以是 SDNet 数据层的输出)可由编译器生成或由用户提供。测试包随后可应用于三个不同层级:
○        SDNet 描述解释
○        由 SDNet 编译器生成的 RTL 级描述仿真
○        采用网络测试设备进行最终实现方案的硬件验证

除了测试包之外,针对搜索引擎查找表的相应内容也可由编译器生成或由用户提供。
SDNet 设计流程的整体效果是将用户包处理要求的高层次描述无缝且自动地映射到定制优化的SmartCORE 之中。
SDNet 的灵活性

SDNet 的核心价值定位在于优化硬件的提供,通过使用赛灵思 All Programmable 器件技术满足精 确线路卡数据层处理的要求。基础的设计流程意味着能现场进行设计升级,无需改变物理硬件, 即可生成新的比特流并对 All Programmable 器件进行重新配置。
不仅 All Programmable 器件能进行重新配置,而且 SDNet 还能支持通过软件控制在线速处理的数 据包之间执行无中断 升级。换言之,用户能迅速创建并升级,从而能用早期设计版本处理一个 数据包,而用较新设计版本处理下一个数据包。图 10 给出了支持这一特性的扩展版设计流程。
主要增加的功能是 SDNet 编译器也可生成固件,其能够配置包处理数据层的许多精细功能。固件操作及其二进制编码完全由编译器针对所生成架构的单个组件进行定制。这就能精细控制处理过 程。尽管这涉及很低层次的固件,但却由 SDNet 自动生成,用户无需操心。
如图 10 所示,编译器在运行之间保持 SDNet 架构记录,这能存储所生成的架构及其固件的详细 信息。当用户用升级的 SDNet 描述作为输入再次运行编译器时,它能决定升级是否仅采用固件升 级(无需生成新的硬件)完成,抑或是否需要重新生成硬件(和固件)。在大多数情况下,中等 规模的升级,如添加或删除线路卡处理的某个协议,都只需通过固件升级就能实现。


固件和架构都由 SDNet 编译器生成,二者之间的这种密切联系意味着用户通过改变固件并放置到 服务中,无需影响数据包流程,即可实现无中断升级。这样,企业在进行重大服务升级时就不会 造成服务中断。这种革命性的发展是通过 SDNet 技术以及其余赛灵思 All Programmable 器件高层次规范相结合所实现的独特特性而实现的。
赛灵思的重要基础技术

赛灵思 All Programmable 器件能实现全套线路卡数据层处理器,使差异化网络协议能以每秒 1 Gb 到每秒数百 Gb 的全线路速率进行处理。而提供如此高功能的 FPGA 是数百个人年设计工作的成 果,涉及各种领域的专业技术,致力于全面解决各种不同的挑战。
在设计能满足新一代包处理技术相关极端需求的可编程器件过程中会面临棘手的系统级问题。Tb 级的数据量必须通过先进的 SerDes 接口连接以数 Gb 的速率和极低的时延进出 FPGA,进而通过 以线速运行的包处理组件扇出到位宽超过 2048 的内部总线,芯片整体时钟歪斜和抖动在纳秒级 以下,同时满足极低的功耗预算要求。
利用 7 系列 All Programmable 逻辑器件以及最新推出的 UltraScaleTM 系列,赛灵思整合了各种不 同的业界领先技术,以应对线速数据路径处理的严苛挑战。28nm Virtex®、Kintex® 和 Artix® 系列 提供多种重要的网络功能,包括支持每秒 28 Gb 的收发器、集成型 PCIe 3.0 控制器、完全商业化的 3D IC 产品以及具有集成 ARM Cortex A9 处理子系统的 All Programmable Zynq SoC。丰富的产品 组合可提供必要的芯片平台,能实现最佳的适用性、性能以及集成度,从而能支持从内核到网络边缘的网络设备集成。
基于 7 系列产品的成功,赛灵思推出了 UltraScale 系列,进一步专注应对新一代网络应用的挑 战。UltraScale 是业界首款也是唯一一款提供 ASIC 级系统级性能、前所未有的集成度与功能的架 构。UltraScale 架构不但可从 20nm 平面工艺向 16nm FinFET 乃至更高技术进行扩展,而且还可实 现了从单芯片向 3D IC 技术的扩展。
通过赛灵思 Vivado 设计套件分析协同优化,UltraScale 架构可提供巨大的路由容量,同时能智能 化解决此前所无法解决的典型瓶颈。这种设计协同效应可将利用率提升 90%,同时不影响性能。为满足下一代差异化网络应用需求,UltraScale 系列提供了丰富的特性和功能,包括如下 :
○        针对多 Tb 级吞吐量和低时延宽总线的海量数据流优化。
○        芯片间带宽的步进功能,支持第二代 3D IC 系统集成和新型 3D IC 宽存储器优化的接口。
○        大量 I/O 和高存储器带宽,包括支持新一代 DDR4 存储器和混合式内存立方 (Hybrid Memory Cube) 技术。
○        类似 ASIC 的多区域时钟功能,提供低功耗时钟网络,极低时钟歪斜和高性能可扩展性。
○        多个硬化的 ASIC 级 100G 以太网、150G Interlaken 和 PCIe IP 核。

表2 给出 7 系列和 Ultrascale 系列简介。



如欲了解有关 7 系列和 UltraScale 系列的更多信息,敬请访问: china.xilinx.com
赛灵思 SDNet 工具套件建立在基础的 Vivado 设计套件之上,通过设计套件和目标器件之间的分 析协同优化,其能充分发挥底层 All Programmable 架构系列的潜能。因此,针对给定数据层处 理特性集,我们能获得在成本、性能和功耗方面真正优化的解决方案。由于 SDNet 为高层次语 言,且独立于实现方案,因此用户能轻松为适当器件选择适当的功能。
SDNet 也受益于 Vivado IP Integrator (IPI) 的互联互通,其能加速 IP 核集成,从而构建更大型的系 统。IPI 建立在 Vivado 集成设计环境的基础上,是一款具有器件和平台感知的交互环境,可支 持关键 IP 接口的智能自动连接、IP 子系统一键式生成、实时设计规则检查以及接口变更传播功 能,而且具备强大的调试功能。IPI 采用 Vivado 设计工具,可确保设计和 IP 得到正确配置。IPI 使设计可以通过“生成即保证正确”的方式完成。设计团队在接口层面开展协作工作,可快速组 装复杂的系统。IPI 内置的自动化接口、设备驱动程序和地址映射生成功能能进一步加快设计组装速度。
采用 SDNet 构建的子系统可封装成 SmartCore IP 核,然后利用 IP Integrator 将这些生成的 SmartCore 和其它赛灵思 SmartCore 与 LogiCore、第三方联盟提供的 IP 核以及用户自己的 IP 核集 成在一起,创建出更大的系统。该系统可集成运行在嵌入式处理器内核上的软件组件,因此可将 SDNet 的专用功能与其它处理领域的电源工具结合使用。
与其它可选方案对比
图 11 给出了 SDNet 的一些主要特点,并与可提供所需线路速率数据路径处理的其它可选方案的属性进行了对比。


说到底,SDNet 可提供资源优化型实现方案,能避免固定配置技术造成的资源浪费。此外,它还 能实现架构优化型实现方案,包流程架构与具体问题相匹配,而并非固定架构技术。此外,相同 的 SDNet 包处理描述能适用于不同性能缩放的需求。
这种全新的 SDNet 在网络虚拟化和网络功能日益受到重视以及软件定义网络的时代显得越发重 要。它能让硬件提供所需的性能,同时也能灵活处理功能、配置、协议和标准的快速变化。这使 得 SDNet 在新一代技术中变得尤为突出。
总结
SDNet 规范环境是一项突破性创新技术,可帮助网络系统架构师轻松实现包括基于 SDN 和软定 义网络的产品在内的全新创新产品。SDNet 受益于赛灵思 All Programmable 器件时代的到来,该 器件不仅能以极高的线路速率接收和传输数据,同时还能执行必要的线路卡数据层处理功能,充 分满足各级网络需求。SDNet 的突破进展在于其将这种原始的芯片功能通过非常高级的设计方法 提供给更广泛的用户群,该方法能对需求进行描述,而不是应如何实现。这种方法将用于生成新 系统组件的智能编译和用于标准网络功能的优化 SmartCORE 库完美结合在一起。结合执行无中 断现场升级以及提供具有网络智能的软件定义控制层和具有内容智能的软件定义数据层的能力, SDNet 能降低风险,加快产品上市进程,并加强可维护性和可扩展性。简而言之,SDNet 是顺应 向 SDN 发展行业趋势的重要推动者,同时帮助网络系统设计人员和架构师加速提升生产力。


如欲了解有关 SDNet 的更多信息,敬请联系您所在地的销售办事处或访问 china.xilinx.com 。
记录学习中的点点滴滴,让每一天过的更加有意义!
返回列表