<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 手機與無(wú)線(xiàn)通信 > 設計應用 > 虛擬機和隨機調度技術(shù)簡(jiǎn)化無(wú)線(xiàn)設計

虛擬機和隨機調度技術(shù)簡(jiǎn)化無(wú)線(xiàn)設計

——
作者:Mike Woodward 時(shí)間:2005-09-12 來(lái)源:EDN電子設計技術(shù) 收藏

虛擬機和隨機調度技術(shù)簡(jiǎn)化無(wú)線(xiàn)設計

本文引用地址:http://dyxdggzs.com/article/8481.htm

一種新的無(wú)線(xiàn)設計方法使設計師們能將多種基于分組的標準融合到資源受限的手機硬件中。
  系統設計人員有時(shí)將用戶(hù)設備手機的傳統棧開(kāi)發(fā)方法稱(chēng)為“基于豎井”的開(kāi)發(fā)方法,因為這種開(kāi)發(fā)方法在軟件和硬件之間是極端縱向集成的,而且缺乏與其它棧的橫向集成(圖 1)。在實(shí)現多種基于分組的標準時(shí),這種豎井方法就不適用了,因為它假設協(xié)議棧開(kāi)發(fā)人員“擁有”基本的硬件資源,因而能夠做出有關(guān)資源的假定,例如臨時(shí)的和永久的緩存器分配。這些可用性假設在多模式環(huán)境中是毫無(wú)意義的,因為在基本時(shí)序上相互可能“沖突”的棧都會(huì )競相獲得各種資源,例如存儲器。
  豎井方法假設你可以在設計時(shí)配置最壞情況下的系統裝入,從而使你可以在系統設計期間,而不是在運行時(shí)分配資源。但是,這種方法基本上不適用于多通道的基于分組的系統,因為其峰值資源裝入與平均資源裝入相差很大。另外,豎井方法還假設一個(gè)設計小組對系統進(jìn)行編碼,并在開(kāi)發(fā)期間,標準不會(huì )發(fā)生重大變化。對于現代通信系統來(lái)說(shuō),兩種假設都可能是錯誤的。
  基于豎井方式的開(kāi)發(fā)常常會(huì )使各種功能實(shí)現方法的資源使用率、調用格式以及行為等假設泄漏到設計的其它部分中,導致許多不良的設計習慣打著(zhù)效率的旗號而付諸實(shí)現。例如,由于知道各種功能要花多少時(shí)間(以周期計)來(lái)執行,又知道每種功能函數需要多大的臨時(shí)存儲器,系統設計人員就會(huì )常常編寫(xiě)出靜態(tài)的臨時(shí)存儲器調度程序,從而使得時(shí)間上不重疊的多個(gè)例行程序使用一個(gè)公共緩存器,由此避免代價(jià)可能很高的對 malloc()和 free()的不確定調用。但是,這樣的設計往往是脆弱的。如果你要重新實(shí)現任何引擎,造成資源分布特性、時(shí)序兩者之一或同時(shí)變更;如果基本硬件也要改變;更糟的是,如果某個(gè)棧與另一個(gè)棧一起共享基本資源(多模式問(wèn)題),則從零開(kāi)始的重新設計就不可避免了。


圖 1 傳統豎井方式開(kāi)發(fā)采用縱向實(shí)現方法,缺乏與其它棧的橫向集成。

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


圖 2 一種替代的開(kāi)發(fā)方法將第一層軟件體系結構建立在虛擬機的基礎上。

  對運行中的第一層軟件的分析表明:該軟件把 80~90% 的執行時(shí)間用于與無(wú)線(xiàn)設備相關(guān)的計算密集的信號處理變換。這些資源消耗大的功能包括傅里葉變換、矢量乘法、FIR 濾波器和采樣抽取器。實(shí)際上,這些變換在不同的無(wú)線(xiàn)設備中表現出高度的共通性。這些資源消耗大、基本與應用系統無(wú)關(guān)的元件,要么用專(zhuān)用硬件來(lái)實(shí)現,要么用平臺高度優(yōu)化的軟件來(lái)實(shí)現。推薦的體系結構用一種特殊的方式處理資源消耗大的功能,即生成“引擎”。具體地說(shuō),這種體系結構要參照與其行為上等效的產(chǎn)品,對一些引擎進(jìn)行性能試驗,剖析其性能,實(shí)現獨特形式的資源仿真。
  剩余的 10% 處理資源(即執行元件)本質(zhì)上是一種起控制作用的狀態(tài)機,可按專(zhuān)門(mén)的無(wú)線(xiàn)標準要求進(jìn)行變換。執行程序通常是極其復雜的,但其所需的處理資源卻較少。這些資源消耗小的、基本上專(zhuān)用的元件很少包含天生就接合到基本硬件襯底上的資源。實(shí)際上,無(wú)論它們用硬件還是用軟件來(lái)實(shí)現引擎,它們都可以移植到使用相同虛擬機運行期內核的任何其它設計中。執行功能的實(shí)例在第三代設計中有:一個(gè)數據平面的總數據流表達式、采集與跟蹤邏輯以及各平面的通道生成和刪除。
  替代方法建立在一個(gè)以瘦虛擬機運行期內核為核心的體系結構上。這種體系結構能將執行元件與高 MIPS 引擎分開(kāi)。在其最簡(jiǎn)化的級別上,它為半導體硬件和 RTOS 提供了使用可移植基帶軟件的抽象層。這種功能并不取代 RTOS;系統仍然使用引擎位于處理器(通常是一個(gè) DSP)中的 RTOS 服務(wù)。虛擬機運行期元件需要識別公共的線(xiàn)程、中斷、內存和資源管理模型,然后設計師將這些模型映射到可用的原語(yǔ)中,以通過(guò)運行期實(shí)現方法生成任何第三方 RTOS。虛擬機還包括復雜的資源管理功能,這些功能對于解決第一層無(wú)線(xiàn)開(kāi)發(fā)的瓶頸是至關(guān)重要的(圖 3)。


圖 3 虛擬機運行期具有資源管理和調度功能,可將執行元件與引擎分離開(kāi)來(lái)。

  從資源調度的角度看,如果高層代碼要直接調用引擎的話(huà),則所有這些努力都將是徒勞的。直接調用或多或少會(huì )影響基本的執行順序和線(xiàn)程模型,而這對于高效的實(shí)現方法來(lái)說(shuō)又非常關(guān)鍵。更糟的是,調用者要負責為基本引擎建立適當的存儲器,這實(shí)際上導致顯式的資源調度。在本文所述方法中,只有一個(gè)中間件服務(wù)(即虛擬機運行期內核)可以調用一個(gè)引擎。具體來(lái)說(shuō),該運行期內核包括一個(gè)調度程序,從效果來(lái)說(shuō),這一調度程序是一個(gè)跨越所有執行過(guò)程和邏輯線(xiàn)程的范例。它使用一種插入式的調度策略來(lái)決定把這些任務(wù)中的哪一個(gè)提交給基本的 RTOS 去執行,決定它將使用多少 RTOS 線(xiàn)程,并決定采用哪種優(yōu)先級和邏輯時(shí)間步長(cháng)。
  仿真是關(guān)鍵
  盡管你必須保證你的系統是正確的,但對資源管理做出適當判斷也是同樣必要的。當然,最壞情況分析是不恰當的,在多模式設計時(shí)會(huì )給出過(guò)于悲觀(guān)的結果,因而造成浪費。但是,利用性能仿真可以揭示出各種棧在時(shí)間上互相“沖突”的相關(guān)性。當執行元件調用引擎時(shí),虛擬機資源仿真并不運行引擎本身,而是相當簡(jiǎn)單地更新一張“資源使用記錄表”。在周期精確的仿真期間,或者在實(shí)際硬件執行期間,你都能通過(guò)一個(gè)性能剖析過(guò)程單獨采集到各個(gè)引擎的資源使用信息。這一剖析包含了一個(gè)相應獨立變量(例如矢量大小或位寬度)在某一范圍的數值對各種類(lèi)型資源(內存、周期、總線(xiàn)帶寬等)的使用記錄。它可以隨機地表達出引擎資源的概況,例如,某個(gè)任務(wù)需要的周期數并不簡(jiǎn)單地是其輸入范圍的確定函數。(例如,一個(gè)渦輪式編碼器處理較不完整的輸入矢量就要花更多的周期。)一個(gè)參量表保存著(zhù)每個(gè)引擎的資源成本,它是引擎元件化描述的一部分



關(guān)鍵詞: RadioScape 有限公司

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>