万志涛
(诺基亚西门子中国研究院 北京 100015)
信令是指为使通信网中各种设备协调运作,在设备之间传递的有关控制信息。它用来说明各自的运行情况,提出对相关设备的接续要求[1]。通信核心网络对于处理能力和可靠性的要求都比较高。在目前的核心网络设备中,信令的处理多由高性能通用处理器负责,包括X86、Sparc、Power等。随着能源消耗和空间占用的成本逐渐升高,像X86、Sparc等功耗较高、发热量较大的CPU的缺点逐渐显现出来,散热问题导致了能源消耗和空间占用。虽然有些处理器推出了低功耗版本,但整体上能效比仍旧比较低,比如 Cisco的 SAMI(service and application module for IP)有6个PowerPC的CPU[2]。
从CPU的指令集角度考察,以应用比较广泛的X86处理器为例,MMX、3DNow!、SSE、SSE2/3/4、SSE5(AMD 提出并最终放弃)、AVX等指令集,对桌面应用性能提升作用比较大,但对大部分的信令处理来说意义不大。高端处理器提供更大的二级和三级片内高速缓存(cache),比如说Intel Itanium 9040有多达18 MB的二级高速缓存。这些高速缓存在芯片面积中的比例比较大。而大尺寸的高速缓存对访问频率低的内容来说性能起的作用有限。以RMI732芯片为例,在实现高速DPI包处理时[3],屏蔽其二级缓存后处理能力没有下降。在这些应用场景,占用不小芯片面积的高速缓存、指令集、浮点运算单元(FPU)也未起到足够的作用。
MIPS指令集的处理器在网络报文处理方面有比较好的性能表现和实际应用。随着越来越多的商业化MIPS指令集的多核处理器出现,能效比有了大幅度的提升,带来了降低能耗、节省空间的可能性。一般来说一个芯片上集成两个以上 “核”(处理单元)的处理器被称为 “多核(multi-core)”处理器[4]。也有将一个芯片上集成2个以上、8个以下同构核的处理器称为“多核”处理器,而将多于8个核(可能异构)的处理器称之为“众核”(many-core)处理器[5]。本文采用前一种说法。
关于MIPS指令集处理器的应用,Dominic在参考文献[6]中说,2006年SGI的破产导致MIPS处理器彻底告别服务器市场,MIPS今后的市场将“仅”限于消费类电子和嵌入式。中科院计算所则提出将使用基于MIPS指令集的处理器构建 Peta-flops(1015)甚至更高性能的HPC[7]。总的来说,MIPS指令集的处理器可以实现较低功耗和较高计算能力。实际上 RMI(已被 Netlogic收购)、Cavium、Tilera等公司提供的多核处理器已经得到了比较广泛的应用。
在目前MIPS多核处理器大多作为新一代的NP(network processor)应用在高速的数据包处理。通常采用比较少的核(一个或者两个)完成系统初始化、控制和辅助性的工作,比如说简单高效地进行设置和查询的命令行接口(command line interface,CLI)。
同网络数据处理相比,通信核心网络中的信令处理具备比较典型特征。首先,它同高速网络报文处理有相似之处,信令系统由诸多协议构成,在传递方式上同用户报文相似。但是它又不同于高速的网络报文处理,信令系统要维护的状态比较多,表项较大,同其他设备的交互也相对复杂。总的来说,对CPU的运算能力,尤其是浮点运算能力要求比桌面应用和事务性的应用低得多,但是比高速网络报文处理要高。从§1中可以看出,MIPS指令集的多核处理器是具备比较高的运算能力的。同X86指令集的处理器相比,目前市场上主流的MIPS多核处理器有以下几个特点:
·精简指令集;
· 核数比较多(主流商业化产品已经达到64核);
·主频相对较低 (通常产品从数百MHz到1 GHz左右);
·Cache相对较小;
· 功耗比较低 (Tilepro64核在主频700 MHz功耗在19~23 W);
· 浮点运算能力一般比较弱(有些没有FPU);
· SoC 设计,集成高速网络接口(XAUI、XGMII、GMII、RGMII)、内存控制器等。
在整体硬件成本和功耗上,MIPS多核处理器是有优势的。能否满足信令处理的需求正是本文试图考察的。在多核处理器上实现信令的处理,能否将信令处理流程适应多核处理器的架构非常重要,难于并行实现的应用移植到多核平台上也不能很好地提升系统性能。在多核处理器平台上提高代码的并行性,对利用多核处理器的能力非常重要。阿姆达尔定律(Amdahl’s law)[8]给出了并行系统性能提升的计算公式:
其中,S表示系统性能的提升倍数。Fp表示可以并行化的工作所占比例,Sp表示并行性数。可以近似地认为Sp就是多核处理器核数。对于程序的并行化即提高Fp使S能得到最大程度的提升。信令处理本身是流程性的,也就是说很大部分是串行的。但是,很多并发的信令可以相对独立地分配和调度到不同的核上,可以比较充分地利用多核处理器的处理能力。
一般对CPU性能的评估通常会采用SPEC(the standard performance evaluation corporation)提供的测试代码,但是SPEC的出发点是要消除I/O性能对CPU测试结果的影响,也就是比较孤立地考察CPU的整型和浮点型运算能力。在实际应用中,I/O能力对CPU运算能力是否能够很好地发挥至关重要,一个好的系统必须有比较均衡的运算和I/O能力。目前EEMBC(embedded microprocessor benchmark consortium)进行的关于多核处理器评估只有一个公布的MIPS3核处理器结果,评估程序尚未被普遍接受。对于网络应用则仅对IP、TCP等性能进行评估。应该说,适用于相对复杂信令系统的评估标准还未建立。本文中的性能评估同时还考虑到CPU的I/O能力。一般认为多处理器(multi-processor)同多核的区分除了是否集成在一个芯片上,还在于Cache和MMU是否为多个处理单元所共享[4]。为了更好地考察多核在内存访问时的性能,采用大量的内存读写模拟运算和访存开销。对于MIPS多核处理器在信令处理的应用考察,本文基于以下几个前提:
·信令由IP协议承载;
·比较对象是应用较广泛的Intel X86处理器;
·考虑较复杂信令处理代码的移植性和评价的相对公平性,都采用Linux操作系统平台,Tilera提供的Zero Overhead Linux (ZOL),Intel平台采用运营级的MontaVista Linux;
·为信令处理建模,将信令处理分为数据包的收发和
以不同大小(size)和跳跃幅度(jump)对内容进行访问、计算、回写。
Tilera测试平台是如图1、图2所示的TLB-36400-7-PCIe-XP12G-2.5-GC的PCI-E板卡,配置如下:
·CPU——Tilepro64 64 MIPS core(866 MHz);
·Memory——2.5 GB(2 slots w.1 GB plus 512 MB onboard/DDR2 800 MHz);
·Network——12 GB ports&1 CX4 port;
·OS——Zero Overhead Linux(Tilera)。
对照的测试X86平台为Dell T3400工作站,配置如下:
·CPU——Core 2 E6750(2.66 GB/4 MB L2 cache);
·Memory——4 GB(DDR2/800 MHz);
·OS——MontaVista Linux Carrier Grade Edition。
对于性能的测试主要采用 512 byte、1 KB、4 KB、8 KB、16 KB、32 KB、64 KB、1 MB、2 MB 的数据块作为输入的数据进行比对,进行读入、运算、回写数据的操作。以期发现基于输入数据尺寸的适合工作范围。然后通过不同的读写比率衡量实际运行中读写比率对性能的影响,并对整体性能进行比较。测试采用的方法是,对于给定的内存区域,每次的读写单位都是16 byte,随机向后跳跃[0..8]byte,写入比率为20%,重复8 096次,平均访问范围为32 KB,对于小于32 KB的数据块,从起始位置循环访问该数据块。统计每秒钟可以完成的上述处理次数。实现SMP Linux通用的信息交换机制,除了在使用同硬件相关必须做调整的函数外,如高精度时钟函数,一般不作特别修改以保证代码的可移植性。Tilera平台和X86平台所使用的代码基本相同。
图3显示了Tilepro64平台和E6750平台对于不同的数据包尺寸吞吐量的变化。从中可以看出。在2 KB到32 KB的数据尺寸上,Tilepro64有比较好的表现,数据包数据尺寸进一步增大时,吞吐量较快下降。数据包尺寸对E6750的性能影响不大。初步分析图中所示结果同高速缓存的大小有影响,E6750处理器缓存尺寸大,有利于提高对较大数据块频繁读写的性能。另外,随着包尺寸增加,随着内存带宽消耗的逐渐增加,也导致对大尺寸数据处理能力的下降。不同输入数据尺寸对CPU吞吐量的影响如图3所示。整体的性能对比显示,Tilepro64处理器有着较高的能效比。
图1 Tilera Tilepro64多核处理器结构
图2 一种Tilepro64板卡结构示意
图3 不同输入数据尺寸对CPU吞吐量的影响
图4 归一化的GGSN中GTP信令处理能力比较
在通信核心网络中,GTP是SGSN和GGSN设备上重要的信令[9],采用UDP在两者之间传递控制信息和用户数据。GTP定义了上百种消息类型,主要有两种格式TV(type,value)和 TLV(type,length,value)。通过移植代码在Tilepro64平台上实现GGSN的会话管理和GTP协议,同E6750平台的性能进行比较,得到如图4所示的结果。
同图2中所述测试结果进行对比可以得出,同通过内存读写操作所得出的结果比较接近。可以看出更新、删除、激活等操作请求包处理所需的数据操作数约10次,但构造回包所消耗的内存读写次数比较多,涉及不同可选数据项的准备、计算、格式调整、回填等。另外,对于定时器等操作也消耗相应的计算资源。总的来说,§3中提出的性能评估方法有比较好的参考价值。
本文通过对Tilepro64和E6750处理器处理给定长度的数据包的读写的情况来评估两种系统对于信令的处理能力,并取得了相应的测试数据。通过在相同平台上实现GTP信令并测试其性能,证明Tilepro64处理器能够比较客观地反映CPU在信令处理方面的能力。对信令系统评估的效度以及信度有待进一步考察。考虑不同信令的结构、交互、运算量方面的特点有所差异,调整相关参数,比如说访问数据的频率和跳跃范围,将得到有参考意义的其他结果。下一步的工作将是设计一个模型以及相应的特征分析(profiling)工具。以便对不同的应用给出比较具体的有参考价值的性能数据,对选型和设计进行有益的指导。同时可以看出,MIPS指令集多核处理器Tilepro64在信令处理方面同传统的高性能处理器相比在功耗和处理能力方面都具备一定优势,吞吐量是E6750的4倍左右,功耗不到E6750的一半。目前MIPS多核处理器受主频较低的制约,但随着更高主频MIPS指令集的不断推出(RMI采用 40 nm 技术,主频可达 2 GHz[10]),MIPS指令集的多核处理器能力将得到进一步提升。
1 桂海源.现代交换原理.北京:人民邮电出版社,2002
2 Current analysis:cisco systems SAMI-based CSG2,7613 advanced lab testing&analysis.www.cisco.com/en/US/solutions/collateral/ns341/ns523/ns706/ns603/CA-Iometrix-CiscoCSG2.pdf
3 万志涛,章恒,张若渊.基于多核处理器的深度包检测的实现和性能评估.中国通信学会信息通信委员会2009年年会,2009
4 Understanding parallel hardware:multiprocessors,hyperthreading,dual-core,multicoreand FPGAs.National Instruments White Paper ftp://ftp.ni.com/pub/devzone/pdf/tut_6097.pdf
5 Borkar S,Dubey P,Kahn K, et al.Platform 2015:Intel processor and platform evolution for the next decade.Intel White Paper,2005
6 Dominic Sweetman.See MIPS run (second edition).Morgan Kaufmann Pub,2006
7 李国杰.超级计算机发展前景.http://www.ict.ac.cn/liguojie wenxuan/pdf/34超级计算机发展前景20080918.pdf
8 AmdahlG M.Validity of the single-processor approach to achieving large scale computing capabilities.In:AFIPS Conference Proceedings,Atlantic City,N J,Apr 1967
9 3GPP TS 29.274 V8.1.0.
10 http://www.rmicorp.com/products/xlp.htm