网络处理器
编辑网络处理器,是一种可编程的微处理器,针对通信网络中数据包的处理和转发进行了优化。
网络处理器可以通过大规模并行处理和流水线等技术同时独立地处理许多数据包。 使用当前处理器(截至 2013 年),由此产生的线速数据传输速率高达 200 Gbit/s 双工。
应用领域
编辑网络处理器用于接入网络(DSLAM、基站、入侵防御系统/防火墙、深度包检测)和核心网络(交换机、路由器)。 由于它们的可编程性,它们可以被修改,以便在短时间内支持新的服务或协议。 特别是,用于高比特率网络的网络处理器专门处理具有 OSI 网络模型第 2 层(以太网)、第 3 层(IP)和第 4 层(TCP)特征的任务。
数据包处理的主要步骤是(通常按给定的顺序执行):
媒体访问控制媒体访问控制承担以太网成帧或ATM信元分段和重组等功能。报头解析和分类数据包的报头被解析并与已知模式进行比较(模式匹配)。 这允许将数据包分类为不同的协议(例如 VLAN 标记的以太网、IPv4、IPv6)并在过程中进行相应处理。 如有必要,用于网络管理和控制的数据包被路由到外部 CPU 进行进一步处理(控制路径,“慢速路径”)。发送方的地址和相关的接收接口(端口号)直接输入源地址表(坐)。 另一方面,IP 路由表通常通过路由协议(例如 BGP、OSPF)间接更新。 一种常见的搜索方法是最长前缀匹配。报头更新根据协议以适当的方式修改数据包,例如通过交换 MPLS 标签或减少生存时间值。流量管理/队列基于先前的路由决策,流量管理器以遵守配置的服务质量 (QoS) 参数的方式控制流量(流量整形、流量监管;另请参阅:ATM 流量管理)。 根据这些服务质量参数和各个优先级,数据包被分类到不同的输出队列(queues)中。
架构与结构
编辑由于处理数据包所涉及的各个任务相对简单,大多数网络处理器都使用高效的 RISC 处理器,这些处理器的功能再次减少,称为处理器元素。 高速缓存、内存管理单元 (MMU) 和浮点单元 (FPU) 等标准处理器通用的块经常缺失。
由于程序流与单个数据包的可用性密切相关,网络处理器 en 有时未指定为 befe千斤顶驱动的冯诺依曼系统。 相反,使用(奇异的)数据流架构。 根据 Flynn 的分类,它属于 MISD 架构类。
微架构
高速数据处理的目标不仅可以通过快速处理器时钟速率实现,还可以通过并行化和流水线化的基本技术实现。 每个单独的处理器元件可以以不同的方式排列。 三种典型的拓扑结构作为示例给出。
并行处理器流水线结合并行和流水线的一种方法是并行处理器流水线体系结构。 传入的数据包被分配到一个管道,然后整个管道运行。 示例:Cisco Toaster。并行处理器流水线此架构变体类似于由超标量处理器元素组成的纯流水线。 这些也可以是不同的类型。 调度程序将数据包分发给空闲的处理器元件。
功能块
大多数网络处理器都有专门的硬编码功能块来加速特定的计算密集型任务。 这些包括用于散列和 CRC 计算、统计、模式匹配和带宽管理(流量管理)的引擎。 这些块不可编程,但只能在狭窄的范围内进行配置。
外部协处理器也经常用于支持。 例如用于控制平面管理的通用处理器 (GPP)、基于知识的处理器或安全协处理器。
编程
出于性能原因,许多网络处理器使用高效的低级硬件功能。 这反过来又需要使用汇编程序或 C 编程语言进行系统级编程。 因此,程序创建类似于微控制器。 只有少数可用的网络处理器可以使用标准 GNU 工具链在 ANSI C 中进行编程。
分界
编辑网络处理器与通信处理器和可配置 ASSP 不同。
通讯处理器
通信处理器以相对较低的比特率 (1-10 Gbps) 处理数据路径中的数据包。 因此,它们比网络处理器 en 便宜。 例如 Cavium 的 OCTEON 芯片或飞思卡尔的 PowerQUICC 芯片。 通信处理器集成了一个或多个标准(MIPS、ARM 等)处理器内核,可在网络上层(第 4 层到第 7 层)进行数据包处理和控制协议处理。
可配置的 ASSP
在高数据速率领域,ASSP 与网络处理器竞争。 它们只是可配置的,而不是可编程的,因此不那么复杂。 因此,它们通常用于第 2 层(以太网)数据包处理。
内容由匿名用户提供,本内容不代表vibaike.com立场,内容投诉举报请联系vibaike.com客服。如若转载,请注明出处:https://vibaike.com/365102/