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