萬志濤
(諾基亞西門子中國研究院 北京100015)
在移動網絡用戶數量不斷增加的同時,應用數量也在迅速增長,加之用戶對使用體驗和網絡質量的要求越來越高。從模擬網到數字網,從2G到3G再向LTE的演進過程也順應這種需求增長的趨勢。歸根結底,計算能力的相應提升是基礎性的。在現有的移動通信網絡中,從無線接入網的設備到IP核心網大都采用相對比較封閉的硬件架構,采購成本和維護成本都比較高。更高的運算能力需求如果能夠通過相對比較廉價的硬件設備來提供,對于運營商降低成本是非常有幫助的。
隨著微電子技術的發展,通用處理器的功耗逐漸降低,能效比上更接近專用硬件,而開發成本則大大降低。云計算技術的應用使得計算能力的提供和使用不再受地理位置的限制,又進一步促進了價廉通用的硬件平臺取代價格較昂貴的專用硬件平臺。同時也可能解決基站機房空間受限導致的供電、散熱等問題。在這樣的背景下,本文給出了通過結合多核處理器和云計算技術,通過架構規劃,對代碼進行平行優化,設計了時延檢測的支撐協議和錯誤恢復等機制,實現了高性能、低時延的面向時延敏感服務的云計算平臺。
對移動通信網來說,現有硬件設備的升級和性能提升,成本和工作量最大的在無線接入設備,其主體即現有移動通信網中的基站。從升級現有設備的場地問題考慮:首先是站址比較復雜,獨立的鐵塔,運營商自有建筑物和租用第三方建筑物頂部等;其次是空間受限但基于可靠性的要求,空調設備和備用電源等輔助設備必不可少。隨著更高的應用需求的出現,升級這些設備空間、散熱、電源都面臨挑戰,比如在大型的場館中。從硬件成本的角度考慮,移動通信網絡中現有很多設備都是封閉架構,硬件的升級涉及芯片重新選型、硬件重新設計、軟件的移植和重新設計等多個方面?,F階段很多這樣的設備正在逐漸向基于ATCA和microTCA[1]等開放架構發展,以降低硬件的采購升級、升級成本。但仍然沿用專用處理器的解決方案,相對于新出現的通用多核處理器硬件平臺,綜合成本仍然有壓縮的空間。
云計算是一種基于互聯網的計算方式,通過這種方式,共享的軟硬件資源和信息可以按需提供給其他設備。云運算概念的基本思想可以追溯到1961年約翰·麥卡錫(John McCarthy)提出的計算機分時共享技術。限于當時條件,這個設想缺乏必要的技術支撐。作為繼19世紀80年代大型計算機到客戶端-服務器的大轉變之后的又一種巨變,云計算增加了新的內涵。用戶不再需要了解“云”中基礎設施的細節,不必具有相應的專業知識,也無需直接進行控制。云計算描述了一種基于互聯網新IT服務增加、使用和交付模式,通常涉及通過互聯網來提供動態易擴展而且經常是虛擬化的資源[2]。目前,大部分的云計算基礎構架是由通過數據中心傳送的可信賴的服務和建立在服務器上的不同層次的虛擬化技術組成的。人們可以在任何提供網絡基礎設施的地方使用這些服務。“云”通常表現為對所有用戶的計算需求的單一訪問點[3]。
現有商業化的云計算平臺一般都具有面向較為復雜事務性應用的特點。比如Amazon的EC2、Google的App Engine、IBM的Blue Cloud、微軟的Azure等。舉例來說,一個用戶的一次網上繳費可能包括設計用戶鑒權認證、查詢消費列出清單、電子支付等多個步驟。每個步驟都需要多個數據庫查詢、修改或更新操作。因為大都涉及同最終用戶的交互,對時延不太敏感,秒級或10 s級都可以容忍。
一般來說,一個芯片上集成2個以上“核”(處理單元)的處理器被稱為“多核”(multi-core)處理器,也有將一個芯片上集成2個以上、8個以下同構核的處理器稱為“多核”處理器,而將多于8個核(可能異構)的處理器稱為“眾核”(many-core)處理器[4],本文采用前一種說法。依據核的類型可以將多核處理器劃分為同構和異構兩種形態。同構多核處理器是指處理器芯片上集成的所有核的結構是完全相同的,各個核心的地位也是等同的。異構多核處理器在一個芯片上集成了多種功能不同的核。如從控制結構角度將核劃分為負責管理調度的主核和負責計算的從核。從計算能力的側重角度將核劃分為通用核、DSP核等。另外,也可以根據指令集類型、核間互聯方式、高速緩存的共享方式等進行分類。目前,主流的多核處理器大都是將內存控制器、總線控制器、網絡接口等集成到一個SoC(system on chip)上。SoC能降低成本、減少功耗并簡化硬件設計。尤其是通用指令集多核處理器可以更好地提供COTS(commercial off-the-shelf)的板卡,在硬件成本、開發成本、產品供應保障、代碼可移植性和平滑升級能力等方面優勢明顯。本文所涉及的多核處理器是同構通用指令集多核處理器,這種處理器結構一致,代碼實現和移植便利,擴展性好?,F在的主流處理器生產商大都已轉向多核處理器的生產和研發。其中涵蓋了 Power、SPRARC、x86、MIPS、ARM 等架構。MIPS指令集的Tilera、Cavium、Netlogic等生產商已經推出商業應用的多核處理器。其中Tilera已經推出同構64核的Tile64和Tilepro64處理器[5],并針對浮點運算進行了優化設計,適合作為密集運算平臺。另外,片上集成了XAUI、XGMII、PCIE 等接口,簡化了硬件設計,并有助于減少輸入/輸出的時延和抖動。相對于Power、SPARC、x86架構的處理器,MIPS架構處理器主頻低、功耗低,但計算密度高。
綜上所述,本文所要解決的問題是通過綜合成本較低的通用多核處理器取代現有移動網絡中的成本較高的專用硬件。通過云計算技術實現移動無線網絡中的接入網計算能力的重新分布,以解決基站空間受限的問題,并同時提供能滿足高速增長的計算需求擴展能力。
在目前眾多的MIPS指令集同構多核處理器中,浮點和定點運算能力比較平衡的一個多核處理器就是Tilera的Tilepro 64多核處理器。Cavium[6]和Netlogic[7]現有的處理器中浮點運算的能力都比較低。Tilera在MIPS架構內增強了對浮點運算的支持。圖1顯示了該多核處理器的結構,每個核都具備相同的結構并通過網狀的5路高速總線聯接起來[5];片上集成了包括 GMII、XGMII、XAUI等在內的MAC和PHY;同時核內還提供了對包頭進行預處理的輔助硬件以及內存控制器和PCI-e總線控制器[5],是一個接口比較完善的SoC,外圍電路設計相對簡單、外圍器件較少。
Tilera多核處理器的主頻同其他大部分MIPS指令集的處理器類似都比較低,目前Tilepro64的最高主頻為866 MHz[5]。相對于x86等指令集的通用處理器來說,除了主頻低,限于芯片尺寸、晶體管數、功耗等因素(也是市場定位問題)片內高速緩存也相對小很多。實驗數據顯示對狀態復雜的事務性任務的處理表現不理想,但對于高速網絡數據處理能效比和空間占用都比較理想。
軟件架構中最關鍵的部分包括數據的高效快速接收、處理和發送。系統的可用性、可靠性還需要包括時延敏感節點的發現、任務指派、負載平衡、錯誤恢復等機制共同保證。
操作系統選用經過優化的ZOL(zero overhead linux)[5]。系統進程調度和用戶、核心兩態轉換的開銷較少,系統調度性能得到了提升,有利于時延的保證。
考慮到主頻低對處理速度的影響,將處理并行化可以減小系統時延。對于復雜但是相對局部的計算來說,比如說矩陣的運算,可以從高度并行化并減少重復計算入手。
其他關鍵的問題還包括“云”中時延敏感節點的發現,分布式的注冊服務和任務指派、負載平衡以及比較關鍵的時延保證機制。在保證系統時延的基礎上,對于因網絡異常導致的偶發丟包、錯包,可靠性約束要求應有高速的恢復機制。運算節點的故障應盡快發現和隔離。
相對于現有商業化的云計算應用事務性特點來說,移動網絡中的一些關鍵處理對時延更為敏感,比如說對于無線接入網,數據平面的處理時延要小于5 ms[8],而空中接口的幀處理時延要小于1 ms[9]。同時,數據處理的局部性特征更為明顯,對大量的數據處理都是對數據直接進行運算并得出計算結果而不是通過查詢其他記錄數量很大的數據庫完成的,比如快速傅立葉變換(FFT)。如果可以將要處理的數據放在一個或數個數據分組內,由某個特定的計算單元完成計算并返回結果,則對于使用運算能力的設備來說,處理時延則可以縮減至運算加網絡往返時延。為減少時延的抖動,最好能將一次需要處理的數據放在一個分組內傳送。在分組內還應該指出需要進行的處理類型并提供必要的同被處理數據結構相關的信息。

在無線接入網的演化過程中,如圖2所示,3G網絡的基站部分的硬件可以分為射頻拉遠模塊 (remote radio unit,RRU)和基帶處理模塊(base band unit,BBU)在一定程度上緩解了布網時設備可用空間的問題,但基帶處理模塊依舊是由專用硬件完成。只是基帶信號的傳輸通過光纖得到了延伸。本文針對的應用場景就是將基帶信號處理交給由多核處理器構成的可以保證時延的分布式、網絡化的計算平臺實現,也就是時延敏感的云計算平臺。新的應用框架如圖3所示,BBU只是邏輯上的計算節點,物理實體則由云計算平臺構成。
(1)作為服務的計算
計算是最基本的功能需求。因為針對具體的應用,在本文所述的實現當中,直接對基帶處理進行優化作為最根本的運算能力,具體的優化方法在§3.3中給出。對于其他類型的運算,可以通過類似的方法進行優化并作為服務提供。服務請求則通過數據包來完成,為減少時延采用UDP的分組進行發送。為了未來注冊新的服務方便起見,增加了一個16位的類型字段。

(2)計算節點的發現
對于云計算來說,提供服務的計算機的位置對用戶來說是透明的,任務也是透明分配的?,F有的云計算結構中一般是通過虛擬機提供可以動態調整但又在某較長時間內由相對穩定節點提供的服務[10]。在本時延敏感的云計算系統中,因為作為統一的計算服務,系統的負載可以同時分布在任何一個節點??梢圆捎梅植际缴⒘斜恚―HT)等發現機制。在網絡規模不太大的情況下,比如一個運營商在一個城市范圍內的基帶信號處理的私有,可以通過多個注冊服務器以動態表更新的方式發布給每一個服務需求者,并動態調整優先級以平衡負載。
(3)負載平衡
負載均衡主要通過任務的散列(Hash)比較均衡地分布負載,將提供服務主機的索引分級管理。按照發送請求的序列號作散列可以保證比較均勻地向不同服務主機發送負載,必要時還可以根據索引值加權來調整服務主機的優先權。
(4)錯誤恢復
數據在規定的時延未獲得返回處理結果時即需要錯誤恢復,需要重新發起請求。每一個發起的請求由序列號和時間戳(由硬件生成,自硬件啟動后的tick數)標識。鏈接在一個100個隊列構成的環上,相鄰兩個隊列表示的時間間隔是10 μs。正常結束的標識將從隊列中移除。超過時間閾值仍未返回的將被重新發送到其他服務主機。主機的可用性可以通過周期性的信息往返(keep alive)由注冊服務器監控并動態更新。
(1)并行化
在多核處理器平臺上提高代碼的并行性,對于發揮多核處理器的性能至關重要。阿姆達爾定律(Amdahl’s Law)[11]給出了并行系統性能的提升的計算公式:

其中S表示系統性能的提升倍數。Fp表示可以并行化的工作所占比例,Sp表示并行性能提高的倍數。在多核處理器核數確定的情況下,Sp相應也是確定的。對于程序的并行化,應提高Fp使S能得到最大程度的提升。
對于數據塊的密集運算,比如矩陣運算的并行化中采用的主要方法是將循環運算壓縮到較小的范圍并分配到不同的核上。如圖4所示將大矩陣的乘法按照目標矩陣值進行并行化。如 Pd0,0、Pd1,0、Pd0,1、Pd1,1的計算可以分到 4 個不同的核上并行完成,同時還進行了相應的優化,可以利用中間結果減少重復計算。根據矩陣規模在實際當中可以取得數十倍的加速比。

(2)處理器架構相關的Cache優化
對于局部性有所擴張的運算,由于多核處理器每個核的高速緩存比較小,故采用了一種動態核分組的方法提高高速緩存的命中率,以提高系統的整體性能、減少時延。在Tilera的架構中,每一個核的L2 Cache可以作為其他核的L3 Cache[12]。而所有核間通信都需要通過Mesh網絡,每一跳需要1個時鐘周期,而每個核上的交換節點都是一個先進先出隊列(FIFO)[13,14],在高數據吞吐量時,核間的位置關系可能影響性能。核間通信的位置關系如圖5所示,數據分布在灰色核中的數據進行核間通信的時延同黑色核中核間通信的時延是不同的。通過綁定進程和核(core affinity),可以改善這種情況下系統的性能。
以64核處理器中選取36核為例,基本上的分組方法包括36組(也就是不分組)、9組(每組4核)、6組(每組6核)、4組(每組 9核)、2組(每組 18核)、1組(36核),如圖 6所示。
從圖7的結果可以看出,核的分組影響Cache的行為,進而影響整個系統的性能。適當調整核的分組可以簡單但是顯著提高系統性能。


(3)其他優化方法
其他優化方法包括采用圖形化的優化工具進行代碼級的優化,發現被密集訪問數據和頻繁執行的指令并進行優化,減少其他系統操作的時間開銷。
(4)平臺測試結果
針對基帶處理的應用,通過優化,可以在銅纜千兆以太網上[15,16]獲得如圖3~7所示的性能指標。時延同處理器負載關系如圖8所示,在CPU負載小于50%的情況下,可以比較穩定地控制在0.2 ms的時延范圍內。完全可以滿足現有系統亞毫秒級的時延需求并能保證錯誤恢復時間。
云計算技術試圖將計算能力作為公用事業(public utility)提供給用戶。分布在不同地址位置的計算實體提供可伸縮、低廉、可靠的計算能力。本文展示了一種可以達到亞秒級時延保證的針對局部數據密集、運算密集型應用云計算平臺。它采用MIPS指令集的多核處理器,運用并行化技術進行運算優化以減少執行時間、提高執行效率。并設計實現了支撐云計算的服務注冊、任務分配、負載平衡、恢復機制。這個平臺的優點是成本低、功耗低、能效比高、易擴展。在針對實際數據的測試中性能穩定,具備取代現有專用硬件在未來移動通信網中廣泛部署的潛力。

本文所描述的云計算平臺可以從多個角度進一步完善,首先是現有的各方面機制的改進和完善;進一步吸收運算并行優化技術(這是非常活躍的研究領域)的新進展、動態平衡負載、時延保證、服務注冊機制的進一步完善。還包括對現有操作系統ZOL(zero overhead linux)在較高負載的情況下表現不理想進行進一步的分析和改進。
1 www.picmag.org
2 Gathering clouds of Xaas,http://www.ibm.com/developer
3 en.wikipedia.org/wiki/Cloud_Computing
4 Borkar S,Dubey P,Kahn K,et al.Platform 2015:Intel processor and platform evolution for the next decade.Intel White Paper,2005
5 www.tilera.com
6 www.caviumnetworks.com
7 www.netlogicmicro.com
8 3GPP,TR25.913.Requirements for evolved UTRA (E-UTRA)and evolved UTRAN (E-UTRAN)
9 http://labs.chinamobile.com/cmri/
10 www.xensource.com
11 AmdahlG M.Validity ofthe single-processorapproach to achieving large scale computing capabilities.In:AFIPS Conference,Atlantic City,NJ,Apr 1967.AFIPS Press,Reston,Va,1967
12 Michael T.The raw processor speci_cation.http://cag.csail.mit.edu/raw/documents/RawSpec99.pdf
13 Albert G S.Raw fabric hardware implementation and characterization.In:Master's Thesis,Department of Electrical Engineering and Computer Science,MIT,June 2006
14 Bell S,Edwards B,Amann J,et al.On-chip interconnection architecture of the tile processor.In:ISSCC 2008
15 Li Wen,Li Yi,Wang Xiaoming.Logic of collision elimination for reducing propagation delays on ethernet and its application simulation.In:8th ZCEMI,Xi'an,China,2007
16 Mainkar V,Trivedi K S.Approximate analysis ofpriority scheduling systems using stochastic reward nets.In:Proc of 13th Int Conf Distributed Computing Systems,Pittsburgh,PA,May 1993