下一代数据包处理技术架构选择

图3:数据流架构(图3)拥有包含数百个PISC处理器内核的单个流水线,以及嵌入式引擎接入点。
PISC是专为数据包处理设计的处理器核。流水线可以包含数百个(超过400)PISC。EAP是用于分类任务的专用I/O单元。EAP统一访问存储在嵌入式或外部存储器(TCAM、SRAM、DRAM)中的存储表,并包含用于计量、计数、散列、格式化、流量管理以及表搜索的资源引擎。
执行语境是程序员可用的数据包内的具体数据。它包括数据包最初的256个字节、通用寄存器、设备寄存器和状态标志。一个执行语境唯一地对应一个数据包并使该数据包在流水线内传送。
数据包在流水线中传送就像在一个固定长度的先入先出(FIFO)设备中行进一样。在每个时钟周期,流水线内的所有数据包都前移一级以便在下一个处理器或EAP内执行。
指令总是在一个时钟周期内执行完。每条指令都能以超长指令字(VLIW)方式并行执行多达5个操作。然后,数据包继续前进到下一个PISC或EAP。
数据平面程序经编译后存储在位于处理器核内的指令存储器,从而无需在程序执行期间从共享存储器内将指令发送到处理器内核。另外,此举还显著提升了性能,降低了功耗。
编程模式反映出众所周知的顺序单处理器模式,其中,程序员可以编写顺序执行的模块以避免多个并行编程(即存储器连贯性、一致性和同步)的麻烦。当软件被编译后,程序代码会自动映射到由处理器内核构成的单一流水线。一个VLIW指令占用流水线中的一个处理器核。
这种架构和编程模式的一个显著好处是,它强制执行线速运作。每种数据包都有经确保数量的操作和分类资源。
降低复杂度,提高性能
多核架构无法保证某一水平的性能,而数据流架构是完全确定性的(表2)。通过降低复杂度并面向2-4层包处理充分优化架构,数据流架构的设计可扩展到数百个处理器核,从而能以强大的线速保证支持100Gbps的速率和每秒1.5亿个数据包的操作。

虽然原始处理器的性能非常重要,但在数据流架构中,程序员将处理器性能发挥到极致的能力是衡量架构实际效用的另一关键因素。从原子操作到表存储的一系列公共存储器操作允许高效编码和代码复用,这些操作独立于存储器类型(片上或外部存储器)和贯穿整个流水线的通用处理器核。
在多核架构中,每一级都需要处理能力的冗余配置,在实践中,这对于总是感到处理资源短缺的程序员来说是个重大挑战。因此,为恢复丢失的时钟周期,数据平面程序员会陷入“测试-性能优化-再测试-再性能优化”这样一个无尽的循环中。
针对数据包处理比较数据流与多核架构,两款架构在效率上的差异显而易见。下面让我们借助两款当今最先进的处理器来比较2-4层包处理的各项指标。
第一款处理器是Xelerated基于数据流架构的HX 330 NPU。它工作在300MHz,拥有448个处理器核,每个内核可同时进行5项操作。每两个时钟周期就有一个新数据包可以进入流水线。
这相当于每秒可处理1.5亿个数据包,也就是说即使是最小的64字节以太网数据包,也需要确保能提供100Gbps的线速操作支持。每个数据包可确保5×448 =2240个操作。
当然,2240个操作是理论上的数值。真实的数据平面应用并不会用到全部的潜能。经优化的数据平面代码大约用到50%的资源,这允许很高的服务密度。
第二款处理器是市场上性能最高的多核处理器之一。它拥有64个处理器核、工作在700 MHz。将该处理器用于100Gbps的数据包处理应用时,需要每四个时钟周期调度一个新的数据包。平均而言,每个数据包理论上将获得256个时钟周期的处理能力。
同步挑战以及管理共享数据所耗费的性能会将整体性能降低到利用率最多为50%。这相当于每个数据包128个操作,或者HX NPU的13%处理资源。此外,这些操作的性能得不到保证。
如果再考虑功耗因素,则两者的差异更为显著。基于数据流架构的NPU,其每瓦性能(在线速下)是多核处理器架构NPU的15至20倍。
不同需求,不同架构
对于2-4层数据包处理来说,数据流架构具有明显优势。但其它比较却会产生不同结果。因此,起初看起来具有竞争力的方法实际上也许要大打折扣。
对面向服务的应用来说,由于多核架构能很好地协调共同工作,因此它们能够有效地扩展。在一个分离的架构中,系统供应商可以利用基于数据流的处理器执行2-4层处理并通过运行多核处理器完成内容识别、加密和完成服务等操作。
本文小结
有关架构的争论在不断循环往复。十年前,在10Gbps以上领域业内有30多家NPU供应商。这些公司的研发大多基于多核架构。
而今天,我们知道这种架构在进行2-4层数据包处理时,无法与专用数据流架构媲美。数据流架构的能效要比多核架构高出15至20倍,且严格保证线速。
当就网络处理对架构进行比较时,不要被其所支持的接口带宽所误导,因为如果不考虑服务密度,则这一指标没有意义。当服务提供商评估网络平台时,真正有价值的是在线速操作下同时支持的服务数量。系统供应商需要在研发阶段的早期就密切关注服务密度。
虽然在2-4层处理的服务密度上达不到要求,但新一代多核处理器仍可满足巨大且不断增长的网络市场的需求。这是对基于网络的服务和安全处理应用的大力推动,它为现代多核处理器和数据流架构的结合创造了新的机会(表3)。

超级电容器相关文章:超级电容器原理
评论