虛擬機(jī)和隨機(jī)調(diào)度技術(shù)簡化無線設(shè)計(jì)

相關(guān)專題: 無線


Mike Woodward,RadioScape 有限公司



  一種新的無線設(shè)計(jì)方法使設(shè)計(jì)師們能將多種基于分組的標(biāo)準(zhǔn)融合到資源受限的手機(jī)硬件中。


  系統(tǒng)設(shè)計(jì)人員有時(shí)將用戶設(shè)備手機(jī)的傳統(tǒng)棧開發(fā)方法稱為“基于豎井”的開發(fā)方法,因?yàn)檫@種開發(fā)方法在軟件和硬件之間是極端縱向集成的,而且缺乏與其它棧的橫向集成(圖 1)。在實(shí)現(xiàn)多種基于分組的標(biāo)準(zhǔn)時(shí),這種豎井方法就不適用了,因?yàn)樗僭O(shè)協(xié)議棧開發(fā)人員“擁有”基本的硬件資源,因而能夠做出有關(guān)資源的假定,例如臨時(shí)的和永久的緩存器分配。這些可用性假設(shè)在多模式環(huán)境中是毫無意義的,因?yàn)樵诨緯r(shí)序上相互可能“沖突”的棧都會競相獲得各種資源,例如存儲器。


  豎井方法假設(shè)你可以在設(shè)計(jì)時(shí)配置最壞情況下的系統(tǒng)裝入,從而使你可以在系統(tǒng)設(shè)計(jì)期間,而不是在運(yùn)行時(shí)分配資源。但是,這種方法基本上不適用于多通道的基于分組的系統(tǒng),因?yàn)槠浞逯蒂Y源裝入與平均資源裝入相差很大。另外,豎井方法還假設(shè)一個(gè)設(shè)計(jì)小組對系統(tǒng)進(jìn)行編碼,并在開發(fā)期間,標(biāo)準(zhǔn)不會發(fā)生重大變化。對于現(xiàn)代通信系統(tǒng)來說,兩種假設(shè)都可能是錯(cuò)誤的。


  基于豎井方式的開發(fā)常常會使各種功能實(shí)現(xiàn)方法的資源使用率、調(diào)用格式以及行為等假設(shè)泄漏到設(shè)計(jì)的其它部分中,導(dǎo)致許多不良的設(shè)計(jì)習(xí)慣打著效率的旗號而付諸實(shí)現(xiàn)。例如,由于知道各種功能要花多少時(shí)間(以周期計(jì))來執(zhí)行,又知道每種功能函數(shù)需要多大的臨時(shí)存儲器,系統(tǒng)設(shè)計(jì)人員就會常常編寫出靜態(tài)的臨時(shí)存儲器調(diào)度程序,從而使得時(shí)間上不重疊的多個(gè)例行程序使用一個(gè)公共緩存器,由此避免代價(jià)可能很高的對 malloc()和 free()的不確定調(diào)用。但是,這樣的設(shè)計(jì)往往是脆弱的。如果你要重新實(shí)現(xiàn)任何引擎,造成資源分布特性、時(shí)序兩者之一或同時(shí)變更;如果基本硬件也要改變;更糟的是,如果某個(gè)棧與另一個(gè)棧一起共享基本資源(多模式問題),則從零開始的重新設(shè)計(jì)就不可避免了。





  圖 1 傳統(tǒng)豎井方式開發(fā)采用縱向?qū)崿F(xiàn)方法,缺乏與其它棧的橫向集成。


  替代方法


  與任何極為復(fù)雜的設(shè)計(jì)問題一樣,這一問題的最佳解決方法是將問題劃分為可以自主處理的不太復(fù)雜的塊。這種替代方法的基本概念模型在本文中稱為虛擬機(jī)方法,它假設(shè)一個(gè)通信棧的第一層被分解為執(zhí)行件、虛擬機(jī)(運(yùn)行期內(nèi)核)和引擎(圖 2)。





  圖 2 一種替代的開發(fā)方法將第一層軟件體系結(jié)構(gòu)建立在虛擬機(jī)的基礎(chǔ)上。


  對運(yùn)行中的第一層軟件的分析表明:該軟件把 80~90% 的執(zhí)行時(shí)間用于與無線設(shè)備相關(guān)的計(jì)算密集的信號處理變換。這些資源消耗大的功能包括傅里葉變換、矢量乘法、FIR 濾波器和采樣抽取器。實(shí)際上,這些變換在不同的無線設(shè)備中表現(xiàn)出高度的共通性。這些資源消耗大、基本與應(yīng)用系統(tǒng)無關(guān)的元件,要么用專用硬件來實(shí)現(xiàn),要么用平臺高度優(yōu)化的軟件來實(shí)現(xiàn)。推薦的體系結(jié)構(gòu)用一種特殊的方式處理資源消耗大的功能,即生成“引擎”。具體地說,這種體系結(jié)構(gòu)要參照與其行為上等效的產(chǎn)品,對一些引擎進(jìn)行性能試驗(yàn),剖析其性能,實(shí)現(xiàn)獨(dú)特形式的資源仿真。


  剩余的 10% 處理資源(即執(zhí)行元件)本質(zhì)上是一種起控制作用的狀態(tài)機(jī),可按專門的無線標(biāo)準(zhǔn)要求進(jìn)行變換。執(zhí)行程序通常是極其復(fù)雜的,但其所需的處理資源卻較少。這些資源消耗小的、基本上專用的元件很少包含天生就接合到基本硬件襯底上的資源。實(shí)際上,無論它們用硬件還是用軟件來實(shí)現(xiàn)引擎,它們都可以移植到使用相同虛擬機(jī)運(yùn)行期內(nèi)核的任何其它設(shè)計(jì)中。執(zhí)行功能的實(shí)例在第三代設(shè)計(jì)中有:一個(gè)數(shù)據(jù)平面的總數(shù)據(jù)流表達(dá)式、采集與跟蹤邏輯以及各平面的通道生成和刪除。


  替代方法建立在一個(gè)以瘦虛擬機(jī)運(yùn)行期內(nèi)核為核心的體系結(jié)構(gòu)上。這種體系結(jié)構(gòu)能將執(zhí)行元件與高 MIPS 引擎分開。在其最簡化的級別上,它為半導(dǎo)體硬件和 RTOS 提供了使用可移植基帶軟件的抽象層。這種功能并不取代 RTOS;系統(tǒng)仍然使用引擎位于處理器(通常是一個(gè) DSP)中的 RTOS 服務(wù)。虛擬機(jī)運(yùn)行期元件需要識別公共的線程、中斷、內(nèi)存和資源管理模型,然后設(shè)計(jì)師將這些模型映射到可用的原語中,以通過運(yùn)行期實(shí)現(xiàn)方法生成任何第三方 RTOS。虛擬機(jī)還包括復(fù)雜的資源管理功能,這些功能對于解決第一層無線開發(fā)的瓶頸是至關(guān)重要的(圖 3)。





  圖 3 虛擬機(jī)運(yùn)行期具有資源管理和調(diào)度功能,可將執(zhí)行元件與引擎分離開來。


  從資源調(diào)度的角度看,如果高層代碼要直接調(diào)用引擎的話,則所有這些努力都將是徒勞的。直接調(diào)用或多或少會影響基本的執(zhí)行順序和線程模型,而這對于高效的實(shí)現(xiàn)方法來說又非常關(guān)鍵。更糟的是,調(diào)用者要負(fù)責(zé)為基本引擎建立適當(dāng)?shù)拇鎯ζ,這實(shí)際上導(dǎo)致顯式的資源調(diào)度。在本文所述方法中,只有一個(gè)中間件服務(wù)(即虛擬機(jī)運(yùn)行期內(nèi)核)可以調(diào)用一個(gè)引擎。具體來說,該運(yùn)行期內(nèi)核包括一個(gè)調(diào)度程序,從效果來說,這一調(diào)度程序是一個(gè)跨越所有執(zhí)行過程和邏輯線程的范例。它使用一種插入式的調(diào)度策略來決定把這些任務(wù)中的哪一個(gè)提交給基本的 RTOS 去執(zhí)行,決定它將使用多少 RTOS 線程,并決定采用哪種優(yōu)先級和邏輯時(shí)間步長。


  仿真是關(guān)鍵


  盡管你必須保證你的系統(tǒng)是正確的,但對資源管理做出適當(dāng)判斷也是同樣必要的。當(dāng)然,最壞情況分析是不恰當(dāng)?shù),在多模式設(shè)計(jì)時(shí)會給出過于悲觀的結(jié)果,因而造成浪費(fèi)。但是,利用性能仿真可以揭示出各種棧在時(shí)間上互相“沖突”的相關(guān)性。當(dāng)執(zhí)行元件調(diào)用引擎時(shí),虛擬機(jī)資源仿真并不運(yùn)行引擎本身,而是相當(dāng)簡單地更新一張“資源使用記錄表”。在周期精確的仿真期間,或者在實(shí)際硬件執(zhí)行期間,你都能通過一個(gè)性能剖析過程單獨(dú)采集到各個(gè)引擎的資源使用信息。這一剖析包含了一個(gè)相應(yīng)獨(dú)立變量(例如矢量大小或位寬度)在某一范圍的數(shù)值對各種類型資源(內(nèi)存、周期、總線帶寬等)的使用記錄。它可以隨機(jī)地表達(dá)出引擎資源的概況,例如,某個(gè)任務(wù)需要的周期數(shù)并不簡單地是其輸入范圍的確定函數(shù)。(例如,一個(gè)渦輪式編碼器處理較不完整的輸入矢量就要花更多的周期。)一個(gè)參量表保存著每個(gè)引擎的資源成本,它是引擎元件化描述的一部分。仿真程序執(zhí)行“真實(shí)的”執(zhí)行代碼,但卻用引擎的執(zhí)行代替對引擎的資源使用率的粗略估算。


  因?yàn)橘Y源仿真比周期精確仿真快得多,所以允許你將大量信息通過一個(gè)候選系統(tǒng)設(shè)計(jì),并檢查兩個(gè)棧之間交互作用的許多情況。這一優(yōu)點(diǎn)對復(fù)雜多模式系統(tǒng)和基于分組的系統(tǒng)的設(shè)計(jì)師有很大幫助。資源仿真可在一系列運(yùn)行條件下對系統(tǒng)行為作出有代表性的評估。一旦你計(jì)算出這種數(shù)據(jù),你就可以利用它做出兩種設(shè)計(jì)時(shí)間的決定,一種是跨硬件基礎(chǔ)的軟件分割;另一種則是作為運(yùn)行期預(yù)測(隨機(jī))調(diào)度程序的一個(gè)輸入。


  多模系統(tǒng)


  多模系統(tǒng)包括許多你必須通過單一物理線程進(jìn)行調(diào)度的獨(dú)立執(zhí)行元件。設(shè)計(jì)師可以假定:雖然引擎資源概況和引擎調(diào)用序列映射是可以實(shí)現(xiàn)的,或者無論如何是可以推導(dǎo)出來的,但明確的截止期信息卻是難以得到的。于是你的問題就變成:為一個(gè)已指定裝入的系統(tǒng)導(dǎo)出一個(gè)有效的串行調(diào)度計(jì)劃,你可以把它表述為一組系統(tǒng)參數(shù),例如有源通道數(shù)或最大吞吐比特率。每種資源都有一個(gè) 100% 的限制,這就約束了任何此類調(diào)度計(jì)劃在上邊界的效率。(例如,任何用到 120% 可用存儲器的調(diào)度計(jì)劃在某一點(diǎn)是無效的,或者至少需要進(jìn)一步的工作來闡明其互斥等待行為。)但是,低于這一點(diǎn),某些加權(quán)會決定“適合度”。例如,設(shè)計(jì)師可能認(rèn)為存儲器分配保持在 50% 以下的串行調(diào)度計(jì)劃是可取的,因此可對整體度量進(jìn)行適當(dāng)加權(quán)。


  與簡單的調(diào)度策略(如先到先服務(wù)的策略)相比,多模式問題的解決方案需要進(jìn)行更復(fù)雜的處理。具體地說,一種更復(fù)雜的調(diào)度策略是必不可少的。當(dāng)前的策略既不在很大程度上使用已知引擎資源成本,也不試圖進(jìn)行預(yù)測。此外,由于處理具有事件驅(qū)動的性質(zhì),在一個(gè)實(shí)時(shí)系統(tǒng)中使用截止期常常是不現(xiàn)實(shí)的,特別是在引擎級使用。一種更復(fù)雜的資源分配策略是必要的,你必須將其當(dāng)作調(diào)度程序的一個(gè)組成部分。


  隨機(jī)調(diào)度


  設(shè)計(jì)師可以對在資源仿真時(shí)收集的數(shù)據(jù)進(jìn)行處理,以構(gòu)建一個(gè)引擎請求概率矩陣。該矩陣基于執(zhí)行元件通過虛擬機(jī)運(yùn)行期內(nèi)核對引擎的調(diào)用(圖 4)。導(dǎo)出的矩陣是稀疏的,具有許多次“0”轉(zhuǎn)換和很多次“1”轉(zhuǎn)換。但是,一個(gè)有分支的典型棧會產(chǎn)生一些介于 0 和 1 之間的概率,這是首次將隨機(jī)行為引入到系統(tǒng)中。





  圖4 你可以根據(jù)仿真數(shù)據(jù)推導(dǎo)出一個(gè)引擎狀態(tài)轉(zhuǎn)換概率矩陣的概念模型。


  在任意給定的時(shí)刻,控制執(zhí)行元件中的各種邏輯線程僅向運(yùn)行期調(diào)度程序提出考慮執(zhí)行的下一個(gè)決定引擎的請求。調(diào)度程序可以使用前述的轉(zhuǎn)換矩陣,以及通過引擎資源使用概況而獲得的引擎執(zhí)行成本,獲得一些供評估使用的可能性前瞻情況。


  但是,即使 “無窮盡地”看到未來狀況是可能的,那也會在探討的狀態(tài)空間內(nèi)造成各種組合的劇增。考慮一個(gè)一致的“固定”跳距數(shù)也是不可取的,因?yàn)橛行┱{(diào)度程序可能比其它調(diào)度程序更有前途。這里的問題與下棋軟件所面臨的問題一樣:即必須考慮各種走法可能的未來結(jié)果。它并不考慮所有的結(jié)果(例如,即使有兩步預(yù)測的限制),而是采用一套啟發(fā)式的方法來決定進(jìn)一步發(fā)展哪一種方案。隨機(jī)調(diào)度策略面臨著同樣的難題。


  有了生成方案的啟發(fā)式方法,下一個(gè)所需做的步驟就是提供一套計(jì)劃度量標(biāo)準(zhǔn)。你可以利用這些度量標(biāo)準(zhǔn)來分析由啟發(fā)式生成方法產(chǎn)生的每個(gè)候選方案的價(jià)值,最終用 一個(gè)標(biāo)量“品質(zhì)因數(shù)”值來表示每個(gè)方案。


  這些計(jì)劃量度標(biāo)準(zhǔn)的整個(gè)域通?缭较铝小澳繕(biāo)”度量中的某些或大多數(shù)度量。這些根據(jù)每個(gè)時(shí)間片和每個(gè)組評估的度量是:總的存儲器使用率、總的組使用率、發(fā)現(xiàn)時(shí)與截止時(shí)間接近程度和電源使用率等。


  你也可以使用很多其它啟發(fā)式度量方法。再回來看一看用象棋軟件作類比的情況,目標(biāo)度量就類似于基于各部分的價(jià)值去評估最終位置的價(jià)值,而啟發(fā)式就類似于一個(gè)規(guī)則,如“放在開放對角線上的象的價(jià)值高于只控制較少自由方格的象”。


  系統(tǒng)設(shè)計(jì)師可以設(shè)置傳遞函數(shù)曲率——實(shí)際上是決定系統(tǒng)對資源短缺作出響應(yīng)是早還晚。此外,系統(tǒng)設(shè)計(jì)師還可以確定給每個(gè)計(jì)劃度量賦予的加權(quán),其總和即為最終的一個(gè)標(biāo)量值。


  這種虛擬機(jī)范例所使用的方法(隨機(jī)調(diào)度)是多模式問題的一種解決方案。它使用了一些在仿真運(yùn)行期間構(gòu)建的預(yù)測引擎請求轉(zhuǎn)換可能性的表,還用到各引擎資源的使用狀況,使運(yùn)行時(shí)的調(diào)度策略能在時(shí)間上有前瞻性,并且能動態(tài)地平衡多個(gè)并行棧的需求。


  很顯然,至關(guān)重要的是:隨機(jī)調(diào)度帶來的好處要超過其實(shí)現(xiàn)時(shí)在周期和存儲器方面的成本。你可以采用很多專有技術(shù)來使每個(gè)時(shí)間片的重新計(jì)算需求降至最低程度。只要在運(yùn)行期內(nèi)核中利用安裝合適的插件式調(diào)度策略資源仿真程序來進(jìn)一步檢查系統(tǒng)性能,你就能確定各種推想實(shí)現(xiàn)方法的效率。


  隨機(jī)調(diào)度策略具有優(yōu)于通用方法(例如“最早截止期優(yōu)先”)的效率,因?yàn)樗鼈兙哂锌捎玫念~外信息,而且比靜態(tài)RMA(速率單調(diào)性分析)技術(shù)更適合于通信系統(tǒng)。


  資源互斥等待


  互斥等待出現(xiàn)在必要的系統(tǒng)處理沒有及時(shí)發(fā)生時(shí),之所以會出現(xiàn)互斥等待,乃是因?yàn)闆]有適當(dāng)?shù)馁Y源可用來調(diào)度這種處理。在很多情況下,一種“更聰明的”調(diào)度策略可以產(chǎn)生好得多的性能,但是,隨著負(fù)載增加,最終會到達(dá)即使最復(fù)雜的策略也無法應(yīng)付的程度。這時(shí),系統(tǒng)必須能系統(tǒng)地舍棄某些請求。實(shí)際上,這種舍棄可能就是預(yù)想到的并被公眾所接受的系統(tǒng)行為的一部分——這是為在突發(fā)環(huán)境中存在而必須付出的代價(jià)。重要的事情是,調(diào)度程序要采取行動,使系統(tǒng)性能逐步降低,而不是引發(fā)災(zāi)難性的故障。


  虛擬機(jī)方法下的隨機(jī)調(diào)度成功地為很多類型的多模式方案(豎井方式對其無效)生成了有效的串行調(diào)度計(jì)劃。此外,它具有比“簡單 RTOS”調(diào)度方法有更好的性能。具體說,隨機(jī)調(diào)度可通過使用常規(guī)方法無法得到的額外信息,在運(yùn)行期對多個(gè)競爭棧之間的突發(fā)需求進(jìn)行平衡,從而具有顯著的優(yōu)勢。資源分布特征引擎(資源消耗大的基本變換)的虛擬機(jī)范例是這種努力的核心,一方面是因?yàn)樗蛘{(diào)度程序提供有關(guān)最重要資源消耗者的額外推斷信息,另一方面,如果要高效地執(zhí)行多模式系統(tǒng)的大型蒙特卡羅通信流量仿真,就必須采用這一方法。


  虛擬機(jī)資源仿真程序是必不可少的,因?yàn)樗鼮槊總(gè)執(zhí)行元件提供引擎請求轉(zhuǎn)移概率矩陣。靜態(tài)調(diào)度計(jì)劃不適合用于突發(fā)和多模系統(tǒng),因?yàn)樗鼈兊姆逯蒂Y源使用率與平均資源使用率往往相差很大,而設(shè)計(jì)時(shí)的靜態(tài)調(diào)度計(jì)劃往往關(guān)注于最壞情況下的分析,導(dǎo)致設(shè)計(jì)低效或者不切實(shí)際。只要將執(zhí)行元件與其希望調(diào)用的引擎分離,虛擬機(jī)的運(yùn)行期調(diào)度程序就成為防止開發(fā)人員落入“豎井模式”陷阱,并且使他們實(shí)現(xiàn)資源共享的必要步驟。不只是周期,所有的重要資源都需要調(diào)度。因此,你也必須調(diào)度存儲器。存儲器調(diào)度程序可以使最終系統(tǒng)具有接近豎井模式技術(shù)的效率,即在設(shè)計(jì)時(shí)就確定所有或大部分的緩存器,并仍然考慮到突發(fā)性與多模式多供應(yīng)商實(shí)現(xiàn)方法的沖突。


  這種替代有問題的豎井式開發(fā)的方法,是一種基于使用虛擬機(jī)運(yùn)行期內(nèi)核的設(shè)計(jì)方法與工具包。它消除了執(zhí)行軟件對基本半導(dǎo)體硬件的依賴性,與此同時(shí)還有利于基本引擎的實(shí)現(xiàn)。創(chuàng)新的仿真和優(yōu)化技術(shù)使最終產(chǎn)品的性能和成本效率得到最大限度的提高。這種體系結(jié)構(gòu)允許獨(dú)立的無線執(zhí)行元件利用虛擬機(jī)內(nèi)核來安全地共享基本的高 MIPS 引擎。只要?jiǎng)?chuàng)造多標(biāo)準(zhǔn)選購件,為未來的復(fù)雜用戶設(shè)備提供必要的靈活性和成本效率,該方法就具有明顯的優(yōu)勢。


  
摘自《END技術(shù)》
   

微信掃描分享本文到朋友圈
掃碼關(guān)注5G通信官方公眾號,免費(fèi)領(lǐng)取以下5G精品資料
  • 1、回復(fù)“YD5GAI”免費(fèi)領(lǐng)取《中國移動:5G網(wǎng)絡(luò)AI應(yīng)用典型場景技術(shù)解決方案白皮書
  • 2、回復(fù)“5G6G”免費(fèi)領(lǐng)取《5G_6G毫米波測試技術(shù)白皮書-2022_03-21
  • 3、回復(fù)“YD6G”免費(fèi)領(lǐng)取《中國移動:6G至簡無線接入網(wǎng)白皮書
  • 4、回復(fù)“LTBPS”免費(fèi)領(lǐng)取《《中國聯(lián)通5G終端白皮書》
  • 5、回復(fù)“ZGDX”免費(fèi)領(lǐng)取《中國電信5GNTN技術(shù)白皮書
  • 6、回復(fù)“TXSB”免費(fèi)領(lǐng)取《通信設(shè)備安裝工程施工工藝圖解
  • 7、回復(fù)“YDSL”免費(fèi)領(lǐng)取《中國移動算力并網(wǎng)白皮書
  • 8、回復(fù)“5GX3”免費(fèi)領(lǐng)取《R1623501-g605G的系統(tǒng)架構(gòu)1
  • 本周熱點(diǎn)本月熱點(diǎn)

     

      最熱通信招聘

      最新招聘信息