1 / 63

新型多核网络处理器

新型多核网络处理器. 主要参考文献. Advanced Processor with System on a Chip Interconnect Technology. http://www.patentstorm.us 思科 QuantumFlow 处理器及其战略研究。 http://www.tektalk.cn 。. 研发背景 . 今天的网络要求越来越高的带宽和越来越复杂的数据包处理: 链路带宽迅速提高(增长速度高于 CPU 性能的提升速度) 新的业务大量涌现(音 / 视频通信、 P2P 业务等),要求网络设备具备快速的业务升级能力。

levi
Download Presentation

新型多核网络处理器

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 新型多核网络处理器

  2. 主要参考文献 • Advanced Processor with System on a Chip Interconnect Technology. http://www.patentstorm.us • 思科QuantumFlow处理器及其战略研究。http://www.tektalk.cn。

  3. 研发背景 • 今天的网络要求越来越高的带宽和越来越复杂的数据包处理: • 链路带宽迅速提高(增长速度高于CPU性能的提升速度) • 新的业务大量涌现(音/视频通信、P2P业务等),要求网络设备具备快速的业务升级能力。 • 业务流量持续增长(每12个月翻一番) • 包处理越来越复杂: • 安全:IPSec/VPN,SSL,防火墙 • 应用认知(application awareness) • 流量工程(Traffic Engineering):QoS/SLA等。 • 深度数据包检查(Deep Packet Inspection,DPI)

  4. 现状 • 目前的网络设备大多采用通用处理器+ASIC的设计模式: • ASIC无法提供业务快速升级所需的灵活性 • 传统网络处理器: • 主要用于加速基本的包处理任务 • 内部资源有限,无法支持DPI这样的复杂处理 • 采用低级语言,缺乏相应的支持软件

  5. 新型NP与传统NP的不同 • 传统NP只处理数据面任务,新型NP可应用于控制面、数据面、管理面处理。 • 传统NP主要卸载网络层和传输层功能,而新型NP可以卸载第四层以上的处理(如DPI、加/解密、压缩/解压缩等),这主要通过集成各种特殊的硬件加速器来实现。 • 传统NP一般采用微码编程,新型NP支持标准嵌入式操作系统和高级语言(C/C++)编程。

  6. 主要的多核NP半导体厂商 • Cavirm(MIPS架构) • Broadcom(MIPS架构) • RMI(MIPS架构) • Cisco • Freescale(PowerPC架构) • Tilera • ……

  7. 1. Cavium OCTEON处理器 • 面向网络、无线、控制和存储等应用,提供高度集成和低成本的64位计算解决方案,广泛用于各种网络设备。 • 一种片上系统(SoC),集成了: • 1~2个定制的cnMIPS64 CPU core:专门针对网络服务而设计,功耗很小。 • 各种硬件加速器(应用,安全):针对下一代IP网络各种需求的L3-L7数据、内容和安全服务硬件加速选项,分担MIPS core的很多任务。 • 丰富的可配置网络接口:以太网、PCI/PCI-X、VoIP、USB 2.0等。

  8. OCTEON CN31XX的内部结构

  9. CN31XX的组成 • cnMIPS64 core: • 带有片上存储管理单元MMU(负责虚拟地址和物理地址之间的映射) • 增强的MIPS64 Release 2整数指令集 • 双发射、5级流水线的超标量体系结构 • 32KB指令缓存和8KB L1数据缓存 • 一致存储子系统: • 256KB L2 cache • 64/72-bit DDR2 内存控制器 • (可选的)低延迟16-bit DDR2-667,用于基于内容的处理和保存元数据

  10. CN31XX的组成(续) • 集成的应用加速协处理器: • 数据包I/O处理引擎:针对L2-L4的包处理和缓冲区管理引擎。 • TCP加速:包括全面的检查、标签产生、校验和、定时器和缓冲区管理。 • 队列/调度和服务质量硬件:对于输入包实现基于Diffserv、QoS/ToS、输入端口的队列/调度;对于输出包实现基于固定优先级或加权公平队列(WFQ)的队列/调度。 • 安全硬件完全分担:针对IPSec、SSL、SRTP、WLAN 802.11i安全协议处理,支持所有的标准算法。 • 压缩/解压缩硬件加速:实现GZIP、PKZIP和各种协议。 • 模式匹配硬件加速引擎(8个):深度数据包检查。 • 不同的处理器版本(通信处理器、安全通信处理器、网络服务处理器)包含不同的硬件加速选项。

  11. CN31XX的组成(续) • 集成的高性能网络接口: • 最多3个可配置的以太网接口:3个10/100/1000 Ethernet MAC RGMII,或者1个RGMII+1个GMII。 • 32位PCI/PCI-X 主设备或从设备。 • 支持无缝VoIP的TDM/PCM接口。 • 480Mbps USB2.0 主设备

  12. 性能 • 每秒最多执行10亿条(CN3110)或20亿条(CN3120)指令。 • 500Mbps~2Gbps的应用性能: • 最高2Gbps 64B IP转发 • 最高2Gbps TCP、IPSec、SSL、压缩/解压缩 • 最高1Gbps正规表达式匹配 • 工业标准的编程模型,不需要任何专用工具或微代码

  13. 2. Broadcom BCM1480

  14. 3. RMI XLR处理器 • 采用SoC技术,将网络连接、负载平衡、安全、XML等功能集成在一个芯片上。 • 基于Mips64架构。 • 支持Linux SMP和VxWorks等常见的操作系统,允许利用工业标准的开发工具和环境进行软件设计,没有代码空间的限制。 • 可用于任何需要网络加速的场合,目标市场包括多业务交换机,路由器,防火墙/VPN/IDS/内容认知网络、网络服务、虚拟存储和负载平衡等网络应用。

  15. XLR732的内部结构

  16. XLR处理器的设计特色 • 多核多线程:包含多个Mips64核心,每个核心拥有4个线程,每个线程拥有完全独立的寄存器组,在线程调度时不需要进行上下文切换。 • 高速内部网络:采用专利技术构成的内部网络连接各个核、网络接口、DMA和安全引擎,允许以上各部件之间独立并行地传递数据。 • 硬件加速器:数据包处理,安全处理。 • 丰富的接口:以太网、Hyper Transport、内存、PCI-X、DMA、串口等。

  17. XLR处理器内部结构

  18. 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和通信端口通信。

  19. 3.1 处理器核 • 每个处理器核采用4路多线程单发射10级流水线结构,为线程级并行而优化。(指令级并行对于访存密集型应用而言意义不大,而数据包处理具有自然的线程级并行。 ) • 不同的核可以执行不同的程序,甚至运行不同的操作系统。 • 一个核中的不同线程可以执行不同的程序,甚至运行不同的操作系统。 • 处理器核之间通过消息网络进行通信。

  20. 线程调度--Eager round-robin

  21. 线程调度—Multithreaded fixed-cycle scheduling

  22. 线程调度--Multithreaded fixed-cycle scheduling with eager round-robin

  23. 可编程中断控制器PIC • 可编程中断控制器(PIC)从中断源接受中断请求后,可以将中断指派给任何一个核/线程去处理。 • CPU mask是一个32比特的数,用于指示哪些核/线程不处理该中断。 • 如有多个未屏蔽的核或线程,采用round-robin方式进行任务分配。 • XLR还允许一个线程中断另一个线程。

  24. 3.2 L2 Cache • 统一的(指令与数据)片上L2 Cache,2MB容量,32B cache line。 • 包含与处理器核数量一样多的bank。 • 每个时钟周期最多可以同时接收8路访问。 • 可以不包括L1 cache中的内容,从而有效地提高整个内存系统的容量。 • 可被处理器核直接访问。

  25. 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等域,包在环上传递直至被接收节点收到。

  26. 数据交换互连环示意图

  27. 环单元结构

  28. 包在环上的传递过程

  29. 3.4 消息传递网络

  30. FMN环单元结构

  31. 消息的数据结构

  32. 基于信用的流量控制 • 对于一个特定的接收者,分配给所有发送者的信用总数不能超过接收队列(RCV Queue)的入口总数(如256)。 • 软件可以控制信用的分配。比如,启动时每个发送者可以被分配一个缺省的信用数,然后软件再可以为每个发送者分配信用。 • 当一个代理要发送一个消息给某个接收者时,它必须具有向该目标发送消息的信用。当发送一个消息后,其相应的信用要减1。当信用为0时,必须停止向该目标发送消息。 • 目标取得消息后,向发送者发送一个响应信号,发送者的信用加1。

  33. 3.5 本地节点上的分组流

  34. Packet Distribution Engine(PDE) • PDE包括一个XGMII/SPI-4.2接口和4个RGMII接口。 • PDE利用FMN,将数据包负载均衡地、快速地分发到软件指定的线程。 • 事实上,数据包并没有真正地在FMN上传递。网络接口将数据包写入内存,PDE将一个包描述符插入到消息中发达给软件指定的接收者。

  35. PDE分配数据包举例之一 在这个例子中,软件选择thread 4~thread7处理接收的数据包,并且PDE均匀地将数据包分配到4个线程上。

  36. PDE分配数据包举例之二 基于信用的round-robin

  37. Packet Ordering Device(POD) • 许多应用要求维持包序,维持包序的方法: • 用软件实现,达不到线速处理速度。 • 将属于同一个流的包发送到同一个线程,要求包分类,影响性能,且不利于负载均衡。 • XLR使用硬件加速部件POD,在发送到输出网络接口前排序数据包。

  38. POD(续) • 每个数据包都被输入接口分配一个序号,该序号连同其它包信息一起由PDE发送给工作线程。线程处理完数据包后,将包描述符和原始序号交给POD。 • POD根据序号建立一个队列,对每一个收到的数据包在队列中排序,并按顺序发送到输出端口。

  39. POD的工作机制

  40. POD(续) • 队头阻塞问题: • 较早的一个数据包一直没有到达POD:用定时器解决 • 在超时前队列满:丢弃队头的包,以便接收新的包 • 损坏的包或控制包:软件知道这些包不会到达POD,可以在POD中插入一个”哑“包描述符来消除暂时的队头阻塞问题。 • 芯片上可以有5个可编程的POD,可以指定哪个POD对应哪个接口,也可以配置成绕过POD。

  41. XLR的最大特色 • 高速内部网络是XLR处理器的最大特色: • 对于1.5GHz的XLR,FMN的带宽达到96GBps,DSI的带宽达到3.84TBps。 • 允许各个核、核与接口(网络接口、安全引擎、DMA)之间在同一时间各自并行地传递数据,避免了通常的总线所需要的仲裁阶段。

  42. 4. 思科QuantumFlow网络处理器 • QuantumFlow(QFP)是思科在广域接入和智能化边缘设备解决方案中的重要技术支持,定位在边缘路由器和企业路由器。 • 芯片主要解决基于状态的服务(stateful service)和转发合一(如音/视频、防火墙、深度包检查等) • 芯片内部包含40个处理器核,每个处理器核有4个硬件线程,可以同时做160个数据处理,计算能力超强。

  43. 芯片的一般情况 • 处理器核:最多40个核,每个核4个线程 • 主频:最高1.2GHz • 晶体管数量:8亿 • 内存:两个片上DDR2控制器,最高1GB RLDRAM • 片上包内存:存储包头和载荷,以便进行快速的DPI • CAM:外挂TAM,最高40MB • 片内高速互联:Crossbar Switch • 片外互联:ESI • 网络接口:4个10Gbps SPI4.2 • 功耗:80瓦

  44. QFP体系结构

  45. QFP结构-处理器观点 • 指令集:购买了Tensilica的Xtensa的ISA,32位 • 流水线:3发射5级流水线 • 4个线程共享一个L1指令缓存 • 每个线程有自己的L1数据缓存 • 40个核共享一个L2指令缓存 • 所有节点通过crossbar交换机构成一个2维mesh全联通图

  46. QFP体系结构—互联观点

  47. QFP体系结构—报文观点 • 从报文的观点来看,QFP是一个L2-L7的数据处理与转发引擎。 • 在ASR1000系列中,QFP用于集中式的数据控制和处理。从线卡和控制平面卡来的所有数据都进入QFP,处理后再转发给某个线卡或控制平面卡。 • QFP的逻辑分为两大部分: • Processor engine:主要是40个CPU核 • Traffic Manager:由一些数据缓存、队列和相应的调度算法逻辑组成。

  48. 包处理流程 • 数据包通过一个SPI-4.2通道进入,包分发器将一个完整的帧传送到片上包内存中,进行一些基本的包处理和分析,然后将这个包分配给一个线程去处理。 • 该线程负责数据包的全部处理(输入、转发、输出),将数据包送到流量管理器的某个队列。 • 流量管理器调度数据包,将数据包发往另一个线卡、控制平面、备用ESP卡或片上包内存(如果需要再处理一遍),若需加密则启动外挂的加密部件。 • 流量管理器支持128K队列、三级报文队列调度和多种队列调度算法。

  49. QFP体系结构--软件观点 • ASR1000运行的操作系统称为IOS-XE,这是一个基于Linux的IOS操作系统。 • IOS-XE的基本特点是: • 在控制平面卡上,支持单卡上两个IOS运行,从而支持单控制平面卡的高可用性,这是很重要的一个亮点。 • 在数据处理卡ESP上,主控CPU(PowerPC)运行一个Linux内核和相应的管理进程,与控制平面卡的IOS和相应的进程通过标准的IPC进行通信,使控制平面和数据平面同步工作。主控CPU还控制QFP,负责安装、启动和运行QFP的软件。QFP则相当于一个专门处理数据包的协处理器。 • 在线卡SIP上,也通过一个主控CPU运行一个Linux内核和相应的管理进程,与控制平面卡的IOS和相应的进程通过标准的IPC进行通信,使控制平面和线卡同步工作。

  50. ESP和QFP的软件结构图

More Related