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