基站調制解調器——為什么要現在選擇多核?
3G 無線技術可支持諸如視頻流等各種高帶寬應用,從而能夠大幅提高收發器基站 (BTS) 的工作負載。事實上,流經基站的數據業務量的日益提高已經促使無線運營商不得不蜂擁開始回程擴容。獨立分析公司 Heavy Reading 于 2006 年3 月發布的一份報告指出,“運營商一般根據每個蜂窩站點 2 條 T-1/E1 回程電路制訂最初的 HSDPA/EV-DO 部署計劃;但隨著容量擴展,他們開始意識到需要多達 10 條此類電路?!?
由于回程容量與用戶需求在同時增長,無線運營商及其基礎局端供應商也在想方設法確?;颈旧聿怀霈F瓶頸。為避免此類問題,移動行業正在迅速向采用多核基帶處理器的基站調制解調器過渡。在無線基站領域之外,多核處理器用過去幾年時間就證明了自身在性能平衡與功率效率方面的價值,這一點可以說明為什么僅德州儀器 (TI) 一家公司的處理器出貨量就超過了 10 億。現在人們不再對無線基站系統設計人員開始采用它們而感到驚訝。
多核設計的一大關鍵優勢就是效率。多核設計可將任務分配至多個內核,而不是為承擔附加工作負荷而單純提高單個處理器內核的頻率。例如,如果系統需要數字信號處理器 (DSP) 提供 3GHz 性能,多核設計可以在單個 DSP 封裝中采用三個頻率為 1GHz 的內核。
相比而言,如果為了滿足新型 BTS 的嚴苛要求而提高單核 DSP 的速度,則所需功率和產生的熱量會達到讓人無法承受的水平,而多核設計可以在無損性能的情況下避免這些缺陷。
此外,芯片制造商還可以通過開發高級的低功耗技術來進一步提高多核 DPS 的功率效率。TI 的 Smart Reflex 技術就是一個很好的范例,其可以在保持規定器件性能的同時降低靜態與動態功耗。Smart Reflex 技術可根據制造工藝考慮到器件專用的硅芯片特征以及熱參數等因素。這樣不僅可以有效降低 DSP 的功耗,同時還能保持性能目標 —— TI 的 TCI6488 基帶處理器(采用 Smart Reflex 技術的DSP 之一)目前達到 1GHz。
多核的另一種優勢是能夠集成片上加速器來提高自身性能,進而消除對附加 FPGA 或微處理器的需求,同時還能降低組件數與材料清單 (BOM) 成本。這種競爭優勢也是多核設計能夠吸引系統設計人員及其基礎局端客戶的原因所在。
新要求
對于大多數無線運營商而言,由于電子郵件、Web 瀏覽、音樂下載等數據應用的廣泛普及,他們都面臨著數據流量快速增長的挑戰。此外,遙測、遠程信息處理技術以及其它機器對機器 (M2M) 等應用的更廣泛應用也是數據流量不斷增長的原因。所有這些因素共同造成了每個 BTS 或基站需要承擔更多的負載,在城市區域尤其如此。
隨著運營商部署長期演進 (LTE) 等 4G 技術,其工作負載還會進一步提高 —— 預計要支持超過 300Mbps 的峰值下載速度和超過 80Mbps 的峰值上傳速度。
另外,3G 調制解調器標準要求支持每個用戶的特定數據速率與服務質量 (QoS) 要求。這種功能性會帶來各方面的 I/O、MIPS 與內存需求。因此,在準備對現有片上系統 (SoC)(如 TCI6488 等)進行編程或者開發一種新的片上系統(SoC)以支持當今多用戶 BTS 調制解調器時,軟件與系統設計人員會面臨多種挑戰并需要周全考慮設計事項。
從說明簡單調制解調器數據流程的圖 1 可以了解這些 SoC 執行的任務。四種方框分別表示濾波器、解調、正向糾錯與拆包任務。此外,圖中還顯示了一個時延要求較低的控制通道和一個時延要求更寬松的數據通道。
圖1:基本 BTS 調制解調器模型。
典型嵌入式系統軟件的設計包括對軟件組件或任務的開發,這些軟件組件或任務運行于實時操作系統 (RTOS) 上,而且為實現預期功能相互之間需要實時互動。設計人員一開始就必須決定每項任務是與用戶還是與功能相關。如果與用戶相關,則可能會執行多個功能,但僅限于該用戶。如果與某個功能相關,則會對所有用戶執行該功能。這種基本決策具有多方面影響:產生中斷的方式、任務切換頻率、軟件與所有外設的互動方式以及 SoC 的硬件加速等。
根據用戶分配任務
圖 2 說明,當根據用戶分配任務的系統中存在兩個用戶時將如何安排任務。利用標簽結尾的編號區分每個用戶,而每個標簽標明是長時延(慢)還是短時延(快)通道。
圖2:根據用戶進行的任務分配。
SoC 的內核不知道同時存在多少個用戶,因此它必須:
? 在復位時預定義所需的最大任務數;或者
? 隨著用戶在系統的出現而動態生成任務并在用戶退出系統時刪除任務。
每種技術各有優劣。例如,對于預定義任務,即使它們未被使用,內核也必須知道所需任務的最大數量并且維護這些任務的數據結構。如果內核對每個任務的最差情況也維持完整的數據結構(包括數據存儲需求),則所帶來的挑戰是必須提供可支持所有用戶按最高數據速率運行時的足夠內存。
一種解決方案是定義高速率和中等速率等多個任務級別,并且定義每個等級的具體數量。然后內核可根據所需的用戶速率選擇任務類型。問題是用戶速率可能會改變,從而迫使內核將所有狀態信息從一種結構轉移至另一種結構。
因此,雖然可以針對所有任務預定義某些結構,但其他結構必須與任務動態關聯。在此情況下,內存管理必須盡可能簡單,而且還得避免內存碎片。
在用戶出現時可以動態生成任務及其方式,然后在用戶退出時刪除。這種方法很明確,但是缺點是在內存中創建和刪除結構時會產生開銷并且造成相關內存管理問題。
在根據用戶分配任務時,任務數隨著用戶數的增加會成倍增長。在WCDMA 基站中,一顆芯片支持的 32~64 個用戶中的每一個都會需要數百個任務,這是巨大的工作負載。隨著任務數量的增加,每秒的任務切換次數也會相應增加。因此中斷程序和內核會耗費更多時間,而用于有效工作的時間會更少。TI 相信,如果存在數十個用戶,那么基于用戶的任務組織工作會導致系統無法管理。
根據功能分配任務
圖 3 所示系統存在 7 項針對2 名用戶按顏色劃分的任務,其按功能分配。
圖3:根據功能進行的任務分配。
在這種設計中,內核無需知道系統中存在多少用戶。相反,它只需知道必須執行多少個唯一功能。隨著用戶數量增加,完成一項任務的時間也會隨之增加。
如果在數據可用時立即調用某項任務,則會為每個用戶調用每項任務,而且任務切換次數隨用戶數量增加而增加,這種情況會造成大量的任務切換次數。更好的方法是為每項任務分配一個鏈接列表。當任務完成時,將在該用戶中執行作為該任務(與下項功能相關聯)鏈接列表項目的系統。
這種方法不會隨著用戶在鏈接列表中的累加而產生中斷。在每項任務被激活時,它會完成其鏈接列表或者運行至鏈接列表被搶占為止。其中一種選擇是僅允許鏈接列表用戶處理之間的搶占,這樣用戶功能就永遠不會中斷。這種選擇可以在存儲需求最低狀態下實現搶占,因為所有需要的狀態已經保存到相關列表中了。
其中一個關鍵的考慮事項是激活任務的頻率:
? 簡單的周期性中斷:通過將任務分組到少量優先級隊列可以進一步簡化此類中斷。在 WCDMA 中,只需兩個隊列即可獲得良好的性能。其中存在單個周期中斷,內核在切換到低優先級隊列之前先清空高優先級隊列。高優先級任務允許搶占時間更長的低優先級任務,而不需要隨用戶數增加的數據驅動中斷。需要計算中斷周期,以確保能夠在最后期限之前以足夠快的速度完成高優先級任務的最差情況負載。
? 多個周期中斷:其能夠迅速完成高優先級隊列,同時在完成較低優先級隊列之前保留盡可能多的時間。因此,只要不全部完成高優先級隊列,就不會遺留低優先級隊列中的任務。
? 隊列達到特定大小時的中斷:這是希望將中斷次數最小化時執行隊列的最有效方式,但是它會使任務的延遲取決于到達任務的數量。因此它不太適用于嚴格的實時系統。
? 隊列頭 (head of queue) 達到特定時限時的中斷:可以實現一定時間內一定水平的服務保證,同時將中斷次數最小化。為了實現上述目的可以為每個隊列 頭設置一個定時器,然后在定時器達到指定值時產生中斷。如果需要處理隊列頭,則必須采取某種方法將定時器重新設置到下一個隊列項目的等待時間長度。其適用于需要跟蹤隊列中各項任務所耗時間的復雜系統。
為了將任務數量和任務搶占開銷保持在可控水平,它們不可根據用戶數量而定。相反,任務應當與功能而不是與用戶關聯。由于目前的 BTS 為了實時滿足客戶需求而必須承擔更多數據流量,因此這種設計越來越重要。
多核考慮
當今的 SoC 一般是多核 CPU ,采用獨立的 IP 塊,為了實現一個完整的調制解調器功能必須實現互操作和同步化。這種架構需要某種方式將優先級隊列系統(圖 4)映射至多 CPU 環境。
圖4:基于功能的任務優先級隊列。紅色箭頭表示處理順序的依存性。
最簡單的選項是將用戶分配到相關 CPU,使每個 CPU 都保持其自己的隊列。但是這樣會有兩個缺點:第一,所有用戶有可能共享某些功能(如過濾與解調)。第二,某些功能可能需要共享協處理器或外設,造成它們不具有完全獨立性。這樣會造成一系列優先級隊列之間的交互復雜化,從而難以保證實時性能。由于必須要支持多個 CPU 的存取,協處理器和外設也將變得更為復雜,因此必須決定 CPU 的哪項任務優先。所有這些都會增加軟、硬件驅動程序的復雜性,使最終系統的測試更加困難、更加耗時。
為避免這些缺點,TI 采取了不同的方案:為單個 CPU 分配功能任務,從而使每個 CPU 都負責唯一一組功能。一般只加速特定類型功能的每一個協處理器都與單個 CPU 關聯。這種方法可以顯著簡化協處理器所執行任務的排序。在許多情況下,外設也會與單個 CPU 通信,從而減少對不缺乏數據的任務進行檢驗所需的測試。
TI 的設計采用全系統同步排列 CPU 的幀、時隙 (slot) 與符號邊界。這種通信采用由一項任務產生、發送到另一個任務的數據塊來實現,一般由 L2 存儲器之間的 DMA 執行。(每個 CPU 都具有其自己的 L2 存儲器,因為共享存儲器需要在速度等方面做出權衡折中。)
由于 TI DSP 可用于眾多功能,因此 TCI6488 SoC具有高度的對稱性。例如,所有 CPU 都可以訪問接收機加速協處理器 (RAC)。這種設計允許在所有 CPU 上運行相同的功能并且允許所有 CPU 訪問所有協處理器和外設資源。不過,TI 建議系統設計人員讓一個 CPU 與 RAC 交互,以簡化器件的操作。
通過實現 CPU的資源負載平衡,根據每項任務所采用的代碼,一個 CPU 可能會先于其他 CPU 達到最高容量。解決方案是進行重新分組,但這需要軟件架構改頭換面 —— 這是在完成 CPU 測試時設計人員更愿意避免的情況。TI 相信,軟件無線電方法與工具的進步會讓軟件分配變得更為輕松。
TI 采用代碼周期估算、電子表格以及事務處理級模型來開發用于 WCDMA TCI6488 SoC 的建議軟件分組。TI 相信,這種分組可以提供近乎完美的解決方案,同時仍然保留以下簡單性:用一個 CPU 控制 RAC、一個 CPU 控制 TCP 和 VCP,以及用一個 CPU 執行 Tx 芯片頻率加速和與天線陣列接口的輸出通信。
對于其他標準(如不采用 RAC而是基于 OFDM 的標準),更易于開發對稱軟件架構。不過,即使在這些情況下仍然更便于分配此問題,這可以讓一個 CPU 執行 FFT/IFFT 和部分調制/解調任務,而將相關結果發送至另一個 CPU 以便進行符號率處理。若用于天線數據,這種方法可以簡化天線接口 或串行 RapidIO 與負責前端處理的 CPU 之間的通信。另外,其還可以簡化后端符號率處理及其與以太網或串行 RapidIO 的通信。
事實上,可共同為所有用戶執行 OFDMA 調制,此項任務無法被完全分配到不同的 CPU。因此,TI 任務軟件架構的簡單性以及眾多調制解調器算法的特性決定了系統設計人員應當以不對稱的方式將任務分配到 CPU。
實現多個 SoC 的資源平衡
另一個問題是每個 SoC 是否應當具有不同的任務,例如,一個 SoC 只執行符號率解碼,而另一個執行碼執行芯片級調制。其缺點是所有片上協處理器都得不到有效利用。
例如,只執行符號率處理的 TCI6488 器件就需要更強大、高功率并且占用大量空間的 Turbo 與 Viterbi解碼器。但是此類解碼器對于只執行碼片級關聯的另一個 SoC 毫無用處,因此 需要功率高得多的接收加速器。所以,除非為每個主板功能提供不同的 SoC,否則協處理器就必須考慮到每項功能的最差情況。為每一類功能都開發不同的 SoC 是一種成本浪費。
將 SoC 專用于某一類特定功能也不利于實現可擴展的系統。顯然,如果我們希望提高主板的通道密度并讓每個 SoC 執行一整套相同的功能,則只需在主板中增加更多 SoC。TCI6488 旨在以最少的附加硬件達到上述目的。天線接口和串行 RapidIO 都可采用菊花鏈連接方式,而以太網和 RapidIO則可連接到交換機。
但是,如果不同 SoC 提供不同的功能,實現系統的可擴展性就需要將用戶數量提高一倍。如果所需用戶數量提高 15%,則讓執行符號率的 SoC 功能提高 15% 的方式是再增加一個 SoC,而其利用率只有 15%。其他 SoC 的情況同樣如此,因此會造成擴展后解決方案效率極低。
對于采用多核、協處理器加速 SoC 的系統設計,具有最高板級可擴展性、實現最簡單、最易于測試的軟件的系統架構需要 SoC 中的每個 CPU 都執行一組唯一的任務,但是系統中的每個 SoC 都執行與其它 SoC 相同的一組任務。TI 針對 WCDMA/HSPA 網絡中這種情況而推出了 TCI6488,其強調以相同方式有效支持其它調制解調器標準的靈活性。
結果是多核處理器總算及時到來,而此時無線運營商及其基礎局端供應商在奮力滿足 HSPA+、LTE 以及移動 WiMAX 等 3G 與 4G 技術的苛刻的新需求。通過巧妙平衡功耗與性能,多核處理器為系統設計人員滿足今后 10 年的移動網絡需求帶來了亟需的工具。
評論