萬志濤
(諾基亞西門子中國研究院 北京 100015)
信令是指為使通信網(wǎng)中各種設(shè)備協(xié)調(diào)運(yùn)作,在設(shè)備之間傳遞的有關(guān)控制信息。它用來說明各自的運(yùn)行情況,提出對(duì)相關(guān)設(shè)備的接續(xù)要求[1]。通信核心網(wǎng)絡(luò)對(duì)于處理能力和可靠性的要求都比較高。在目前的核心網(wǎng)絡(luò)設(shè)備中,信令的處理多由高性能通用處理器負(fù)責(zé),包括X86、Sparc、Power等。隨著能源消耗和空間占用的成本逐漸升高,像X86、Sparc等功耗較高、發(fā)熱量較大的CPU的缺點(diǎn)逐漸顯現(xiàn)出來,散熱問題導(dǎo)致了能源消耗和空間占用。雖然有些處理器推出了低功耗版本,但整體上能效比仍舊比較低,比如 Cisco的 SAMI(service and application module for IP)有6個(gè)PowerPC的CPU[2]。
從CPU的指令集角度考察,以應(yīng)用比較廣泛的X86處理器為例,MMX、3DNow!、SSE、SSE2/3/4、SSE5(AMD 提出并最終放棄)、AVX等指令集,對(duì)桌面應(yīng)用性能提升作用比較大,但對(duì)大部分的信令處理來說意義不大。高端處理器提供更大的二級(jí)和三級(jí)片內(nèi)高速緩存(cache),比如說Intel Itanium 9040有多達(dá)18 MB的二級(jí)高速緩存。這些高速緩存在芯片面積中的比例比較大。而大尺寸的高速緩存對(duì)訪問頻率低的內(nèi)容來說性能起的作用有限。以RMI732芯片為例,在實(shí)現(xiàn)高速DPI包處理時(shí)[3],屏蔽其二級(jí)緩存后處理能力沒有下降。在這些應(yīng)用場(chǎng)景,占用不小芯片面積的高速緩存、指令集、浮點(diǎn)運(yùn)算單元(FPU)也未起到足夠的作用。
MIPS指令集的處理器在網(wǎng)絡(luò)報(bào)文處理方面有比較好的性能表現(xiàn)和實(shí)際應(yīng)用。隨著越來越多的商業(yè)化MIPS指令集的多核處理器出現(xiàn),能效比有了大幅度的提升,帶來了降低能耗、節(jié)省空間的可能性。一般來說一個(gè)芯片上集成兩個(gè)以上 “核”(處理單元)的處理器被稱為 “多核(multi-core)”處理器[4]。也有將一個(gè)芯片上集成2個(gè)以上、8個(gè)以下同構(gòu)核的處理器稱為“多核”處理器,而將多于8個(gè)核(可能異構(gòu))的處理器稱之為“眾核”(many-core)處理器[5]。本文采用前一種說法。
關(guān)于MIPS指令集處理器的應(yīng)用,Dominic在參考文獻(xiàn)[6]中說,2006年SGI的破產(chǎn)導(dǎo)致MIPS處理器徹底告別服務(wù)器市場(chǎng),MIPS今后的市場(chǎng)將“僅”限于消費(fèi)類電子和嵌入式。中科院計(jì)算所則提出將使用基于MIPS指令集的處理器構(gòu)建 Peta-flops(1015)甚至更高性能的HPC[7]。總的來說,MIPS指令集的處理器可以實(shí)現(xiàn)較低功耗和較高計(jì)算能力。實(shí)際上 RMI(已被 Netlogic收購)、Cavium、Tilera等公司提供的多核處理器已經(jīng)得到了比較廣泛的應(yīng)用。
在目前MIPS多核處理器大多作為新一代的NP(network processor)應(yīng)用在高速的數(shù)據(jù)包處理。通常采用比較少的核(一個(gè)或者兩個(gè))完成系統(tǒng)初始化、控制和輔助性的工作,比如說簡單高效地進(jìn)行設(shè)置和查詢的命令行接口(command line interface,CLI)。
同網(wǎng)絡(luò)數(shù)據(jù)處理相比,通信核心網(wǎng)絡(luò)中的信令處理具備比較典型特征。首先,它同高速網(wǎng)絡(luò)報(bào)文處理有相似之處,信令系統(tǒng)由諸多協(xié)議構(gòu)成,在傳遞方式上同用戶報(bào)文相似。但是它又不同于高速的網(wǎng)絡(luò)報(bào)文處理,信令系統(tǒng)要維護(hù)的狀態(tài)比較多,表項(xiàng)較大,同其他設(shè)備的交互也相對(duì)復(fù)雜??偟膩碚f,對(duì)CPU的運(yùn)算能力,尤其是浮點(diǎn)運(yùn)算能力要求比桌面應(yīng)用和事務(wù)性的應(yīng)用低得多,但是比高速網(wǎng)絡(luò)報(bào)文處理要高。從§1中可以看出,MIPS指令集的多核處理器是具備比較高的運(yùn)算能力的。同X86指令集的處理器相比,目前市場(chǎng)上主流的MIPS多核處理器有以下幾個(gè)特點(diǎn):
·精簡指令集;
· 核數(shù)比較多(主流商業(yè)化產(chǎn)品已經(jīng)達(dá)到64核);
·主頻相對(duì)較低 (通常產(chǎn)品從數(shù)百M(fèi)Hz到1 GHz左右);
·Cache相對(duì)較?。?/p>
· 功耗比較低 (Tilepro64核在主頻700 MHz功耗在19~23 W);
· 浮點(diǎn)運(yùn)算能力一般比較弱(有些沒有FPU);
· SoC 設(shè)計(jì),集成高速網(wǎng)絡(luò)接口(XAUI、XGMII、GMII、RGMII)、內(nèi)存控制器等。
在整體硬件成本和功耗上,MIPS多核處理器是有優(yōu)勢(shì)的。能否滿足信令處理的需求正是本文試圖考察的。在多核處理器上實(shí)現(xiàn)信令的處理,能否將信令處理流程適應(yīng)多核處理器的架構(gòu)非常重要,難于并行實(shí)現(xiàn)的應(yīng)用移植到多核平臺(tái)上也不能很好地提升系統(tǒng)性能。在多核處理器平臺(tái)上提高代碼的并行性,對(duì)利用多核處理器的能力非常重要。阿姆達(dá)爾定律(Amdahl’s law)[8]給出了并行系統(tǒng)性能提升的計(jì)算公式:
其中,S表示系統(tǒng)性能的提升倍數(shù)。Fp表示可以并行化的工作所占比例,Sp表示并行性數(shù)??梢越频卣J(rèn)為Sp就是多核處理器核數(shù)。對(duì)于程序的并行化即提高Fp使S能得到最大程度的提升。信令處理本身是流程性的,也就是說很大部分是串行的。但是,很多并發(fā)的信令可以相對(duì)獨(dú)立地分配和調(diào)度到不同的核上,可以比較充分地利用多核處理器的處理能力。
一般對(duì)CPU性能的評(píng)估通常會(huì)采用SPEC(the standard performance evaluation corporation)提供的測(cè)試代碼,但是SPEC的出發(fā)點(diǎn)是要消除I/O性能對(duì)CPU測(cè)試結(jié)果的影響,也就是比較孤立地考察CPU的整型和浮點(diǎn)型運(yùn)算能力。在實(shí)際應(yīng)用中,I/O能力對(duì)CPU運(yùn)算能力是否能夠很好地發(fā)揮至關(guān)重要,一個(gè)好的系統(tǒng)必須有比較均衡的運(yùn)算和I/O能力。目前EEMBC(embedded microprocessor benchmark consortium)進(jìn)行的關(guān)于多核處理器評(píng)估只有一個(gè)公布的MIPS3核處理器結(jié)果,評(píng)估程序尚未被普遍接受。對(duì)于網(wǎng)絡(luò)應(yīng)用則僅對(duì)IP、TCP等性能進(jìn)行評(píng)估。應(yīng)該說,適用于相對(duì)復(fù)雜信令系統(tǒng)的評(píng)估標(biāo)準(zhǔn)還未建立。本文中的性能評(píng)估同時(shí)還考慮到CPU的I/O能力。一般認(rèn)為多處理器(multi-processor)同多核的區(qū)分除了是否集成在一個(gè)芯片上,還在于Cache和MMU是否為多個(gè)處理單元所共享[4]。為了更好地考察多核在內(nèi)存訪問時(shí)的性能,采用大量的內(nèi)存讀寫模擬運(yùn)算和訪存開銷。對(duì)于MIPS多核處理器在信令處理的應(yīng)用考察,本文基于以下幾個(gè)前提:
·信令由IP協(xié)議承載;
·比較對(duì)象是應(yīng)用較廣泛的Intel X86處理器;
·考慮較復(fù)雜信令處理代碼的移植性和評(píng)價(jià)的相對(duì)公平性,都采用Linux操作系統(tǒng)平臺(tái),Tilera提供的Zero Overhead Linux (ZOL),Intel平臺(tái)采用運(yùn)營級(jí)的MontaVista Linux;
·為信令處理建模,將信令處理分為數(shù)據(jù)包的收發(fā)和
以不同大?。╯ize)和跳躍幅度(jump)對(duì)內(nèi)容進(jìn)行訪問、計(jì)算、回寫。
Tilera測(cè)試平臺(tái)是如圖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)。
對(duì)照的測(cè)試X86平臺(tái)為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。
對(duì)于性能的測(cè)試主要采用 512 byte、1 KB、4 KB、8 KB、16 KB、32 KB、64 KB、1 MB、2 MB 的數(shù)據(jù)塊作為輸入的數(shù)據(jù)進(jìn)行比對(duì),進(jìn)行讀入、運(yùn)算、回寫數(shù)據(jù)的操作。以期發(fā)現(xiàn)基于輸入數(shù)據(jù)尺寸的適合工作范圍。然后通過不同的讀寫比率衡量實(shí)際運(yùn)行中讀寫比率對(duì)性能的影響,并對(duì)整體性能進(jìn)行比較。測(cè)試采用的方法是,對(duì)于給定的內(nèi)存區(qū)域,每次的讀寫單位都是16 byte,隨機(jī)向后跳躍[0..8]byte,寫入比率為20%,重復(fù)8 096次,平均訪問范圍為32 KB,對(duì)于小于32 KB的數(shù)據(jù)塊,從起始位置循環(huán)訪問該數(shù)據(jù)塊。統(tǒng)計(jì)每秒鐘可以完成的上述處理次數(shù)。實(shí)現(xiàn)SMP Linux通用的信息交換機(jī)制,除了在使用同硬件相關(guān)必須做調(diào)整的函數(shù)外,如高精度時(shí)鐘函數(shù),一般不作特別修改以保證代碼的可移植性。Tilera平臺(tái)和X86平臺(tái)所使用的代碼基本相同。
圖3顯示了Tilepro64平臺(tái)和E6750平臺(tái)對(duì)于不同的數(shù)據(jù)包尺寸吞吐量的變化。從中可以看出。在2 KB到32 KB的數(shù)據(jù)尺寸上,Tilepro64有比較好的表現(xiàn),數(shù)據(jù)包數(shù)據(jù)尺寸進(jìn)一步增大時(shí),吞吐量較快下降。數(shù)據(jù)包尺寸對(duì)E6750的性能影響不大。初步分析圖中所示結(jié)果同高速緩存的大小有影響,E6750處理器緩存尺寸大,有利于提高對(duì)較大數(shù)據(jù)塊頻繁讀寫的性能。另外,隨著包尺寸增加,隨著內(nèi)存帶寬消耗的逐漸增加,也導(dǎo)致對(duì)大尺寸數(shù)據(jù)處理能力的下降。不同輸入數(shù)據(jù)尺寸對(duì)CPU吞吐量的影響如圖3所示。整體的性能對(duì)比顯示,Tilepro64處理器有著較高的能效比。
圖1 Tilera Tilepro64多核處理器結(jié)構(gòu)
圖2 一種Tilepro64板卡結(jié)構(gòu)示意
圖3 不同輸入數(shù)據(jù)尺寸對(duì)CPU吞吐量的影響
圖4 歸一化的GGSN中GTP信令處理能力比較
在通信核心網(wǎng)絡(luò)中,GTP是SGSN和GGSN設(shè)備上重要的信令[9],采用UDP在兩者之間傳遞控制信息和用戶數(shù)據(jù)。GTP定義了上百種消息類型,主要有兩種格式TV(type,value)和 TLV(type,length,value)。通過移植代碼在Tilepro64平臺(tái)上實(shí)現(xiàn)GGSN的會(huì)話管理和GTP協(xié)議,同E6750平臺(tái)的性能進(jìn)行比較,得到如圖4所示的結(jié)果。
同圖2中所述測(cè)試結(jié)果進(jìn)行對(duì)比可以得出,同通過內(nèi)存讀寫操作所得出的結(jié)果比較接近。可以看出更新、刪除、激活等操作請(qǐng)求包處理所需的數(shù)據(jù)操作數(shù)約10次,但構(gòu)造回包所消耗的內(nèi)存讀寫次數(shù)比較多,涉及不同可選數(shù)據(jù)項(xiàng)的準(zhǔn)備、計(jì)算、格式調(diào)整、回填等。另外,對(duì)于定時(shí)器等操作也消耗相應(yīng)的計(jì)算資源。總的來說,§3中提出的性能評(píng)估方法有比較好的參考價(jià)值。
本文通過對(duì)Tilepro64和E6750處理器處理給定長度的數(shù)據(jù)包的讀寫的情況來評(píng)估兩種系統(tǒng)對(duì)于信令的處理能力,并取得了相應(yīng)的測(cè)試數(shù)據(jù)。通過在相同平臺(tái)上實(shí)現(xiàn)GTP信令并測(cè)試其性能,證明Tilepro64處理器能夠比較客觀地反映CPU在信令處理方面的能力。對(duì)信令系統(tǒng)評(píng)估的效度以及信度有待進(jìn)一步考察??紤]不同信令的結(jié)構(gòu)、交互、運(yùn)算量方面的特點(diǎn)有所差異,調(diào)整相關(guān)參數(shù),比如說訪問數(shù)據(jù)的頻率和跳躍范圍,將得到有參考意義的其他結(jié)果。下一步的工作將是設(shè)計(jì)一個(gè)模型以及相應(yīng)的特征分析(profiling)工具。以便對(duì)不同的應(yīng)用給出比較具體的有參考價(jià)值的性能數(shù)據(jù),對(duì)選型和設(shè)計(jì)進(jìn)行有益的指導(dǎo)。同時(shí)可以看出,MIPS指令集多核處理器Tilepro64在信令處理方面同傳統(tǒng)的高性能處理器相比在功耗和處理能力方面都具備一定優(yōu)勢(shì),吞吐量是E6750的4倍左右,功耗不到E6750的一半。目前MIPS多核處理器受主頻較低的制約,但隨著更高主頻MIPS指令集的不斷推出(RMI采用 40 nm 技術(shù),主頻可達(dá) 2 GHz[10]),MIPS指令集的多核處理器能力將得到進(jìn)一步提升。
1 桂海源.現(xiàn)代交換原理.北京:人民郵電出版社,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 萬志濤,章恒,張若淵.基于多核處理器的深度包檢測(cè)的實(shí)現(xiàn)和性能評(píng)估.中國通信學(xué)會(huì)信息通信委員會(huì)2009年年會(huì),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 李國杰.超級(jí)計(jì)算機(jī)發(fā)展前景.http://www.ict.ac.cn/liguojie wenxuan/pdf/34超級(jí)計(jì)算機(jī)發(fā)展前景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