
新型多核网络处理器.doc
14页新型多核网络处理器 新型多核网络处理器 主要参考文献 Advanced Processor with System on a Chip Interconnect Technology. 思科QuantumFlow处理器及其战略研究 研发背景 今天的网络要求越来越高的带宽和越来越复杂的数据包处理: 链路带宽迅速提高〔增长速度高于CPU性能的提升速度〕 新的业务大量涌现〔音/视频通信、P2P业务等〕,要求网络设备具备快速的业务升级能力 业务流量持续增长〔每12个月翻一番〕 包处理越来越复杂: 平安:IPSec/VPN,SSL,防火墙 应用认知〔application awareness〕 流量工程〔Traffic Engineering〕:QoS/SLA等 深度数据包检查〔Deep Packet Inspection,DPI〕 现状 目前的网络设备大多采用通用处理器+ASIC的设计模式: ASIC无法提供业务快速升级所需的灵活性 传统网络处理器: 主要用于加速根本的包处理任务 内部资源有限,无法支持DPI这样的复杂处理 采用低级语言,缺乏相应的支持软件 新型NP与传统NP的不同 传统NP只处理数据面任务,新型NP可应用于控制面、数据面、管理面处理。
传统NP主要卸载网络层和传输层功能,而新型NP可以卸载第四层以上的处理〔如DPI、加/解密、压缩/解压缩等〕,这主要通过集成各种特殊的硬件加速器来实现 传统NP一般采用微码编程,新型NP支持标准嵌入式操作系统和高级语言〔C/C++〕编程 主要的多核NP半导体厂商 Cavirm〔MIPS架构〕 Broadcom〔MIPS架构〕 RMI〔MIPS架构〕 Cisco Freescale〔PowerPC架构〕 Tilera …… 1. Cavium OCTEON处理器 面向网络、无线、控制和存储等应用,提供高度集成和低本钱的64位计算解决方案,广泛用于各种网络设备 一种片上系统〔SoC〕,集成了: 1~2个定制的cnMIPS64 CPU core:专门针对网络效劳而设计,功耗很小 各种硬件加速器〔应用,平安〕:针对下一代IP网络各种需求的L3-L7数据、内容和平安效劳硬件加速选项,分担MIPS core的很多任务 丰富的可配置网络接口:以太网、PCI/PCI-X、VoIP、USB 2.0等 OCTEON CN31XX的内部结构 CN31XX的组成 cnMIPS64 core: 带有片上存储管理单元MMU〔负责虚拟地址和物理地址之间的映射〕 增强的MIPS64 Release 2整数指令集 双发射、5级流水线的超标量体系结构 32KB指令缓存和8KB L1数据缓存 一致存储子系统: 256KB L2 cache 64/72-bit DDR2 内存控制器 〔可选的〕低延迟16-bit DDR2-667,用于基于内容的处理和保存元数据 CN31XX的组成〔续〕 集成的应用加速协处理器: 数据包I/O处理引擎:针对L2-L4的包处理和缓冲区管理引擎。
TCP加速:包括全面的检查、标签产生、校验和、定时器和缓冲区管理 队列/调度和效劳质量硬件:对于输入包实现基于Diffserv、QoS/ToS、输入端口的队列/调度;对于输出包实现基于固定优先级或加权公平队列〔WFQ〕的队列/调度 平安硬件完全分担:针对IPSec、SSL、SRTP、WLAN 802.11i平安协议处理,支持所有的标准算法 压缩/解压缩硬件加速:实现GZIP、PKZIP和各种协议 模式匹配硬件加速引擎〔8个〕:深度数据包检查 不同的处理器版本〔通信处理器、平安通信处理器、网络效劳处理器〕包含不同的硬件加速选项 CN31XX的组成〔续〕 集成的高性能网络接口: 最多3个可配置的以太网接口:3个10/100/1000 Ethernet MAC RGMII,或者1个RGMII+1个GMII 32位PCI/PCI-X 主设备或从设备 支持无缝VoIP的TDM/PCM接口 480Mbps USB2.0 主设备 性能 每秒最多执行10亿条〔CN3110〕或20亿条〔CN3120〕指令 500Mbps~2Gbps的应用性能: 最高2Gbps 64B IP转发 最高2Gbps TCP、IPSec、SSL、压缩/解压缩 最高1Gbps正规表达式匹配 工业标准的编程模型,不需要任何专用工具或微代码 2. Broadcom BCM1480 3. RMI XLR处理器 采用SoC技术,将网络连接、负载平衡、平安、XML等功能集成在一个芯片上。
基于Mips64架构 支持Linux SMP和VxWorks等常见的操作系统,允许利用工业标准的开发工具和环境进行软件设计,没有代码空间的限制 可用于任何需要网络加速的场合,目标市场包括多业务交换机,路由器,防火墙/VPN/IDS/内容认知网络、网络效劳、虚拟存储和负载平衡等网络应用 XLR732的内部结构 XLR处理器的设计特色 多核多线程:包含多个Mips64核心,每个核心拥有4个线程,每个线程拥有完全独立的存放器组,程调度时不需要进行上下文切换 高速内部网络:采用专利技术构成的内部网络连接各个核、网络接口、DMA和平安引擎,允许以上各部件之间独立并行地传递数据 硬件加速器:数据包处理,平安处理 丰富的接口:以太网、Hyper Transport、内存、PCI-X、DMA、串口等 XLR处理器内部结构 XLR的专利设计 自带数据cache和指令cache的处理器核 与各个核的cache相连的data switch interconnect ring〔DSI〕,在各个核之间传递与内存相关的数据 连接到DSI上的共享L2 cache,存放内核可直接访问的数据 与各个核的指令cache及各个通信端口相连的fast messaging ring,在核与通信端口之间提供与存储无关的点对点消息传输。
与消息网络及通信端口相连的interface switch interconnect〔ISI〕,用于在消息网络和通信端口之间传输消息 与DSI和至少一个通信端口相连的内存桥,在DSI和通信端口之间直接通信 与DSI、ISI和至少一个通信端口相连的超级内存桥,与DSI、ISI和通信端口通信 3.1 处理器核 每个处理器核采用4路多线程单发射10级流水线结构,为线程级并行而优化〔指令级并行对于访存密集型应用而言意义不大,而数据包处理具有自然的线程级并行 〕 不同的核可以执行不同的程序,甚至运行不同的操作系统 一个核中的不同线程可以执行不同的程序,甚至运行不同的操作系统 处理器核之间通过消息网络进行通信 线程调度--Eager round-robin 线程调度―Multithreaded fixed-cycle scheduling 线程调度--Multithreaded fixed-cycle scheduling with eager round-robin 可编程中断控制器PIC 3.2 L2 Cache 统一的〔指令与数据〕片上L2 Cache,2MB容量,32B cache line。
包含与处理器核数量一样多的bank 每个时钟周期最多可以同时接收8路访问 可以不包括L1 cache中的内容,从而有效地提高整个内存系统的容量 可被处理器核直接访问 3.3 数据交换〔data switch〕 DSI、内存桥和超级内存I/O桥构成一个用于数据交换的环,其中内存桥连接存储端口与处理器核,超级内存I/O桥连接存储端口、通信端口与处理器核 每个处理器核、内存桥和超级内存I/O桥各自通过一个环单元连接到环上每个处理器核的环单元与该处理器核的指令cache以及 L2 cache中的相应bank连接 实际上有4个环构成了这个环结构:请求环〔RQ〕、数据环〔DT〕、Snoop Ring〔SNP〕和响应环〔RSP〕,每个节点包括了4个环上的环单元 环上的通信是基于包的通信,每个包包含像目的ID、事务ID等域,包在环上传递直至被接收节点收到 数据交换互连环示意图 环单元结构 包在环上的传递过程 3.4 消息传递网络 FMN环单元结构 消息的数据结构 基于信用的流量控制 对于一个特定的接收者,分配给所有发送者的信用总数不能超过接收队列〔RCV Queue〕的入口总数〔如256〕 软件可以控制信用的分配。
比方,启动时每个发送者可以被分配一个缺省的信用数,然后软件再可以为每个发送者分配信用 当一个代理要发送一个消息给某个接收者时,它必须具有向该目标发送消息的信用当发送一个消息后,其相应的信用要减1当信用为0时,必须停止向该目标发送消息 目标取得消息后,向发送者发送一个响应信号,发送者的信用加1 3.5 本地节点上的分组流 Packet Distribution Engine〔PDE〕 PDE包括一个XGMII/SPI-4.2接口和4个RGMII接口 PDE利用FMN,将数据包负载均衡地、快速地分发到软件指定的线程 事实上,数据包并没有真正地在FMN上传递网络接口将数据包写入内存,PDE将一个包描述符插入到消息中兴旺给软件指定的接收者 PDE分配数据包举例之一 在这个例子中,软件选择thread 4~thread7处理接收的数据包,并且PDE均匀地将数据包分配到4个线程上 PDE分配数据包举例之二 基于信用的round-robin Packet Ordering Device〔POD〕 许多应用要求维持包序,维持包序的方法: 用软件实现,达不到线速处理速度。
将属于同一个流的包发送到同一个线程,要求包分类,影响性能,且不利于负载均衡 XLR使用硬件加速部件POD,在发送到输出网络接口前排序数据包 POD〔续〕 每个数据包都被输入接口分配一个序号,该序号连同其它包信息一起由PDE发送给工作线程线程处理完数据包后,将包描述符和原始序号交给POD POD根据序号建立一个队列,对每一个收到的数据包在队列中排序,并按顺序发送到输出端口 POD的工作机制 POD〔续〕 队头阻塞问题: 较早的一个数据包一直没有到达POD:用定时器解决 在超时前队列满:丢弃队头的包,以便接收新的包 损坏的包或控制包:软件知道这些包不会到达POD,可以在POD中插入一个〞哑“包描述符来消除暂时的队头阻塞问题 芯片上可以有5个可编程的POD,可以指定哪个POD对应哪个接口,也可以配置成绕过POD XLR的最大特色 高速内部网络是XLR处理器的最大特色: 对于1.5GHz的XLR,FMN的带宽到达96GBps,DSI的带宽到达3.84TBps 允许各个核、核与接口〔网络接口、平安引擎、DMA〕之间在同一时间各自并行地传递数据,防止了通常的总线所需要的仲裁阶段 4. 思科QuantumFlow网络处理器 QuantumFlow〔QFP〕是思科在广域接入和智能化边缘设备解决方案中的重要技术支持,定位在边缘路由器和企业路由器。
芯片主要解决基于状态的效劳〔stateful service〕和转发合一〔如音/视频、防火墙、深度包检查等〕 芯片内部包含40个处理器核,每个处理器核有4个硬件线程,可以同时做160个数据处理,计算能力超强 芯片的一般情况 处理器核:最多40个核,每个核4个线程 主频:最高1.2GHz 晶体管数量:8亿 内存:两个片上DDR2控制器,最高1GB RLDRAM 片上包内存:存储包头和载荷,以便进行快速的DPI CAM:外挂TAM,最高40MB 片内高速互联:Crossbar Switch 片外互联:ESI 网络接口:4个10Gbps SPI4.2 功耗:80瓦 QFP体系结构 QFP结构-处理器观点 QFP体系结构―互联观点 QFP体系结构―报文观点 。
