[工作计划]第十四章Intel网络处理器概述.doc
《[工作计划]第十四章Intel网络处理器概述.doc》由会员分享,可在线阅读,更多相关《[工作计划]第十四章Intel网络处理器概述.doc(53页珍藏版)》请在三一办公上搜索。
1、第十四章 Intel网络处理器概述前面我们讨论了网络处理器的一般问题,从本章开始我们将深入讨论一个特定的网络处理器-Intel网络处理器,以便对前面介绍的一般概念提供一个具体的说明。(1)IXA术语IXA(Internet eXchange Architecture)泛指Intel网络处理器体系结构以及相关的支持芯片。尽管IXA主要集中在网络处理器硬件,它也包括软件体系结构,因为如果不预想使用硬件的软件,可编程硬件是无法定义的。IXA包括控制面(慢路径)和数据面(快路径)处理,定义了硬件抽象、应用编程接口和互连机制,但是没有给出细节,IXA只是给出了概念组织。IXA中有如下三个重要组成部分:l
2、 微引擎(Microengine,ME):微引擎是Intel网络处理器的核心部件,也是Intel处理器取得线速处理性能的关键,在其它功能单元的支持下执行快路径上的包处理。l XScale Core:XScale核是Intel网络处理器的高层控制和管理单元,是与Strong ARM兼容的一种微处理器,负责控制面的处理任务以及异常数据包的处理,上面运行VxWorks、嵌入式Linux等实时操作系统。l IXA可移植框架(IXA Portability Framework):为基于Intel网络处理器的软件开发提供应用编程接口和硬件抽象,使得运行在XScale核和微引擎上的软件具有良好的可移植性和可
3、重用性。开发者对新一代网络处理器的要求包括四个方面:灵活性,高性能,可扩展性和可移植性。IXA能够满足这四个方面的要求。l 灵活性:在IXA架构的网络处理器中,微引擎完全可编程,在低层硬件设备的支持下可实现许多复杂的网络处理功能,具有较好的功能灵活性。l 高性能:IXA架构的网络处理器使用多个可并行操作的微引擎,通过增加微引擎的数目、提高微引擎和XScale核的时钟频率、采用新技术减小存储器访问延时以及增加专用硬件功能单元,可使网络处理器线速处理高达OC-192的网络数据,具备了网络宽带化所要求的高性能。l 可扩展性:通过增加微引擎的数目以及提高微引擎和XScale核的时钟频率,可使网络处理器
4、达到OC-192的高端处理速率,具有良好的可扩展性。l 可移植性:IXA可移植框架提供了应用编程接口和硬件抽象,使得基于该框架开发的软件与底层硬件实现松耦合,具有良好的可移植性和重用性。(2)IXP术语IXP(Internet eXchange Processor)指实现了IXA架构的网络处理器芯片。尽管每一种IXP设计必须遵循IXA架构,但是不同的IXP可以定义自己的细节,比如片上功能单元的数量和种类、处理器的并行程度、存储器的大小以及内部数据带宽等。IXP网络处理器典型地包括一个XScale核、多个微引擎、存储器、若干硬件功能单元、与各种外部连接的接口、内部总线等。Intel提供了多种IX
5、P网络处理器芯片,目前已是第二代产品。第一代产品与第二代产品的区别包括并行程度(即片上处理器的数量)、物理接口、芯片封装、功率消耗、硬件功能特性(如用于加密的硬件加速器)等方面的差异。图14-1列出了三款第二代IXP网络处理器。IXP2400主要面向OC-12到OC-48/2.5Gbps的网络接入和边缘网应用,有8个微引擎,每秒可完成超过50亿次的操作,可应用于WAN多服务交换、DSLAM、基站控制器和网关、47层交换、VoIP网关、多服务接入平台、高端路由器和VPN等。IXP2800主要面向OC-48么OC-192/10Gbps的边缘网和核心网应用,有16个微引擎,每秒可完成超过250亿次的
6、操作,可应用于骨干网的路由与交换、无线设备、IPSec和VPN、10Gbps的企业交换和路由等。IXP2850在IXP2800的基础上增加了加密单元,可达到10Gbit/s的加/解密速度,可用于IPSec、VPN、QoS Router等场合。通常用IXP2xxx泛指其中的任何一款网络处理器芯片。图14-1 Intel 第二代IXP网络处理器(3)IXP2xxx的主要部件一个IXP网络处理器是一块独立的芯片,它包含了一组复杂的可编程及不可编程的处理器和功能单元。以下是IXP2xxx芯片中的主要部件:l 一个嵌入式RISC处理器l 8到16个可编程包处理器l 多条独立的片上总线:提供芯片内部各功能
7、单元之间的高速通道,包括多组单向高速数据总线和命令总线;l 处理器同步机制l 共享和不共享的片上存储器:每个微引擎内部有专用的本地存储器,芯片内部还有共享的Scratchpad存储器;l 一个低速串行接口:连接到XScale核,主要用于控制和管理;l 多个外部存储器接口:连接外部SRAM、DRAM及ROM(或Flash ROM)等;l 多个外部I/O总线接口:PCI总线接口及MSF接口;l 计算哈希和加密的协处理器l 其它功能单元(4)外部连接图14-2给出了IXP2xxx支持的主要外部连接。IXP2xxx有四类外部连接:一个串行接口,三个外部I/O总线接口,两个外部存储总线接口,一个低速设备
8、接口。图14-3列出了IXP2400主要连接的速度。每个IXP2xxx芯片包含一个通用异步收发器(UART)硬件,提供到传统串行线路的接口,串行线连接到嵌入式RISC处理器。由于串口主要用于控制和管理功能,因此它并不像其它I/O接口那样运行在高速度。所以,尽管程序员可以选择通过它传输数据,串口并不适合用于快路径。IXP2xxx芯片中的PCI(Peripheral Component Interconnect)总线提供两个主要功能。第一,允许一个IXP2xxx连接到I/O设备(如磁盘);第二,允许设计者使用传统的CPU作为通用控制处理器。由于PCI技术非常流行,许多I/O设备遵循这个标准。尽管P
9、CI技术非常流行,但是其整体的吞吐量限制在大约2.2Gbps。为处理更高的数据速率,IXP2xxx使用了一个媒体或交换结构(Media or Switch Fabric Interface,MSF)接口。MSF是IXP2xxx与外部物理层设备(PHY)及交换结构的接口单元,是数据出入IXP2xxx的窗口。MSF通过Utopia、SPI协议与PHY接口,通过CSIX与交换结构接口。Utopia、SPI和CSIX都是标准化协议,Utopia用于接收ATM格式的包,SPI用于接收POS格式的包,CSIX是IXP2xxx与交换结构进行数据接收/发送时使用的接口协议,其数据包格式为Cframe。通过这些
10、标准协议MSF能够方便地与其它厂家的产品进行接口。图14-2 IXP2xxx的主要外部连接图14-3 IXP2400外部连接的速度MSF接口有两个主要目的。第一,它构成了IXP2xxx与高速网络接口之间的快路径;第二,MSF接口提供了一种通信机制,允许两个或多个IXP2xxx芯片互连。第二个目的非常重要,因为可以将两个芯片连接起来处理较高的吞吐量。MSF接口的关键特性是可配置,可配置性使得MSF接口的灵活性足以连接几乎任何物理硬件。像图14-2指示的那样,MSF接口有两个外部连接:一个用于输入,另一个用于输出。这两个外部连接使用不同的管脚,并且可以被独立配置,因此可以配置输入和输出使用不同的接
11、口标准。比如配置输入使用SPI协议,而输出使用CSIX协议。DRAM总线的任务只有一个,提供对外部DRAM的访问。IXP2400使用一条总线访问DRAM,而IXP28x0使用多条总线来获得较高的吞吐量。在IXP中,DRAM提供低成本、高带宽的存储,主要用于存储块数据(如完整的包或帧)。除了64位数据线,DRAM总线还包括传输地址、控制存/取操作、以及传输时钟信号的线路。存储器使用时钟信号来使取或存操作与处理器时钟同步。访问SRAM的接口与访问DRAM的接口是完全分开的。尽管图14-2中只画出一条SRAM总线,事实上,IXP2xxx使用多条SRAM总线以获得较高的吞吐量。SRAM总线除了提供对外
12、部SRAM的访问以外,与协处理器的交互也是通过SRAM总线进行的。除了存储器总线,IXP2xxx还有一个慢端口(Slowport)连接。与存储器总线不同,慢端口连接是共享的,连接提供了对若干个外部硬件单元的访问。比如,在启动过程中慢端口总线提供对ROM或FlashROM的访问。正像名字指示的一样,慢端口总线不是为高速数据传输而设计的。(5)内部组件IXP2xxx的内部结构很复杂,因为芯片包含了总线、存储器、处理器、接口和其它功能单元。下面列出了主要的功能单元。数量组件目的1嵌入式RISC处理器控制、高层协议和例外8/16包处理引擎I/O、基本包处理和包转发1+SRAM访问单元协调对外部SRAM
13、总线的访问1+DRAM访问单元协调对外部DRAM总线的访问1MSF访问单元协调对外部I/O设备的访问1PCI总线访问单元协调对外部PCI总线的访问1SHaC单元存储中间结果、计算哈希值等1加密单元加解密操作1系统底盘(chassis)提供内部控制和数据传输的通道嵌入式RISC处理器负责执行网络处理器中的控制面处理任务,如进行芯片初始化配置、芯片控制/管理、运行路由协议、更新路由表等,另外还负责对异常数据包的处理。包处理引擎是IXP的核心部件,能够访问IXP中的所有共享资源,负责绝大部分的包处理任务,是IXP取得线速处理性能的关键。IXP2400中包含8个32位包处理引擎,IXP28x0包含16
14、个32位包处理引擎。SRAM访问单元用于和外部SRAM接口,控制和管理IXP中其它功能单元对外部SRAM的访问。SRAM访问单元还可用于和符合相应接口规范的协处理器接口,执行特定的包处理操作。IXP2400中有两个SRAM访问单元,IXP28x0中有四个SRAM访问单元。不同的SRAM访问单元相互独立,可并行工作。DRAM访问单元用于和外部DRAM接口,控制和管理IXP中其它功能单元对DRAM的访问。IXP2400有一个DRAM访问单元,而IXP28x0有三个DRAM访问单元。PCI总线访问单元用于和主控CPU、其它IXP网络处理器以及PCI以太网卡等符合PCI规范的设备接口。SHaC单元其实
15、包括了三个部分:用于存放中间结果的片上Scratchpad存储器,支持48比特、64比特及128比特哈希运算的哈希单元,以及用于对IXP中的控制和状态寄存器进行访问操作的单元(称为CAP)。加密单元是IXP2850特有的,负责进行加解密操作。系统底盘是IXP中各功能单元之间的内部高速通道,由多组单向高速数据总线、命令总线以及相应的总线仲裁单元组成。正是由于系统底盘的分立式多总线结构和高带宽的数据总线,使得IXP的并行处理优势得以充分发挥,取得较高的性能指标。图14-4是IXP2xxx的高层结构视图,给出了内部组件和外部单元之间的连接。图14-4 Intel IXP2xxx的概念组织图14-5
16、IXP2400硬件结构框图图14-5是IXP2400的内部硬件结构图。总体上来看,IXP采用了多主控+系统底盘+多目标的硬件体系结构。多主控是指IXP的多个主控单元,包括XScale核、微引擎、PCI控制单元等硬件功能单元。多目标是指IXP中的多个从属单元,包括存储访问单元、MSF、SHaC等。主控单元发起和控制对多个目标的操作,目标执行主控单元规定的操作,而底盘提供了主控单元与目标之间的数据传输通道和命令传输通道。具体而言,IXP的硬件体系结构具有如下主要特征:1)采用分立的内部总线结构,将不同存储单元的数据总线、数据读/写总线分开,可以同时对不同存储单元进行读/写操作,大大提高了IXP的并
17、行处理能力。2)引入命令总线仲裁器对各主控单元发出的命令进行排队判优,保证了指令的优先级,避免了指令的冲突和拥塞。3)采用分布式的硬件结构,即多主控+多目标结构。不同的硬件功能单元在高速内部总线的支持下各司其职,负责专门的数据处理操作,大大增强了IXP的并行处理能力。4)采用多微引擎并行的硬件结构,所有微引擎可同时工作,大大增强了IXP的并行处理能力。IXP2400进一步将8个微引擎分为2组(Cluster0和Cluster1),并使用独立的SRAM数据总线,有效地缓解了总线冲突,进一步增强了IXP2400的并行处理能力。(6)IXP2xxx处理器体系IXP2xxx使用一个五层的处理器体系,其
18、中三层在芯片中,另外两层由外部硬件提供。以下是处理器类型及每种处理器的特性。处理器类型是否在芯片上?是否可编程?通用处理器否是嵌处式RISC处理器是是I/O处理器是是协处理器是否物理接口否否位于最高层的通用处理器(GPP)不是IXP2xxx芯片的一部分。在许多系统中,需要一个外部通用处理器执行整体控制和管理功能。GPP不是快路径的一部分。比如,考虑一个在每个接口都使用一个网络处理器的系统。在这种情况下,网络处理器不需要涉及全局路由决策,路由决策可被分配给一个与所有网络处理器有交互作用的通用处理器。通用处理器收集路由信息,选择最佳路由,并通知每个网络处理器。Intel用术语核心处理器指代嵌入式R
19、ISC处理器。IXP2xxx上的RISC处理器是与ARM结构兼容的一种处理器,称为XScale。运行在常规操作系统(如Linux)上的XScale核作为一个控制点管理微引擎并提供一个可以下载程序和配置芯片的接口。另外,XScale处理高层协议以及例外的包。因此,嵌入式处理器不是用于执行常规的快路径处理。Intel使用术语微引擎(microengine)指代包处理器。IXP2xxx包含多个微引擎(IXP2400包含8个,IXP28x0包含16个)。与嵌入式RISC处理器不同,微引擎是一种只提供少量基本指令的低级设备,微引擎构成了快路径处理的基础,主要用来处理I/O设备与存储器之间的低层数据传输以
20、及基本包处理任务。与嵌入式处理器不同,微引擎不运行操作系统。IXP2xxx包含几种协处理器和功能单元,其中一些构成了快路径的一部分。比如,芯片包含一个哈希单元,可用来高速计算一个48比特、64比特或128比特的自适应多项式哈希函数。IXP2xxx还包含4个与实时时钟一起工作的定时器。IXP2850还包含了对几种加密算法(如三重DES、AES)、检查和累加以及安全哈希函数的硬件支持。物理接口硬件不是IXP2xxx的一部分,因此需要另外的芯片来实现第一层和第二层的处理。Intel提供处理POS-PHY以及传统以太网组帧的接口芯片。由于MSF接口是可配置的,IXP2xxx上的每个高速物理接口可以遵循
21、任何一种众所周知的标准(如SPI-3、SPI-4.2或Utopia)。Utopia是IXP2xxx接收/发送ATM格式的数据包时采用的接口协议,IXP2400支持Utopia L1/L2/L3三个速率等级,速率分别为OC-3、OC-12和OC-48。POS-PHY是IXP2xxx接收/发送POS(Packet Over SONET)格式的数据包时采用的接口协议。POS-PHY L3和POS-PHY L4规范分别被Optical Internetworking Forum批准为SPI-3和SPI-4.2,速率分别为OC-48和OC-192。POS是利用点对点协议(PPP)实现IP包到SONET帧
22、有效载荷映射的系列协议,标准的POS映射为IP/PPP/HDLC/SONET。IP包被封装到PPP分组中,PPP提供了多种协议封装、错误控制和链路初始化等功能。然后,PPP分组利用HDLC协议成帧,以提供分组分界和错误控制。(7)IXP2xxx的存储器IXP2xxx使用多种存储器。下面列出了各种存储器的大小和用途。存储器类型最大容量是否在芯片上?典型用途GP Registers256(2 banks)是中间运算Inst. Cache32Kbytes是最近使用过的指令Data Cache32Kbytes是最近使用过的数据Mini Cache2Kbytes是重用过一次的数据Write buffer
23、未规定是写缓冲区Local memory2560bytes/微引擎是本地缓存Scratchpad16Kbytes是进程间通信和同步Inst. Store4Kbytes/微引擎是存放微引擎指令FlashROM未规定否用于启动SRAM64Mbytes否存放表或包头DRAM2Gbytes否存储包程序员需要关注存储器体系中的某些存储器,其余的可以忽略。比如,尽管cache提供了性能改进,但是大多数cache对于程序员是透明的(即程序员不需要分配cache中的空间)。程序员主要关注四种存储器:SRAM、DRAM、本地存储器和Scratchpad,程序员必须明确决定如何使用它们。也就是说,对于每一个数据项
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 工作计划 第十四 Intel 网络 处理器 概述
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-4531649.html