采用 Linux 與 DSP/BIOS RTOS 實(shí)施雙 OS 信號(hào)處理技術(shù)
作者:Steve Preissig、David Beal 與 Aurelien Jacquiot
在系統(tǒng)性能與編程簡(jiǎn)易性之間的權(quán)衡折中是通用操作系統(tǒng)與實(shí)時(shí)操作系統(tǒng)之間的主要區(qū)分點(diǎn)之一。
GPOS 傾向于提供較高程度的資源抽象,這不僅可通過(guò)支持軟件模塊性與資源隔離來(lái)提高應(yīng)用的便攜性、簡(jiǎn)化開發(fā)流程,同時(shí)還能增強(qiáng)系統(tǒng)的穩(wěn)健性。這使 GPOS 成為諸如網(wǎng)絡(luò)、用戶界面以及顯示管理等通用系統(tǒng)組件的理想選擇。
然而,該抽象需要以系統(tǒng)資源的精細(xì)粒度控制作為代價(jià),以滿足信號(hào)處理代碼等高強(qiáng)度算法的計(jì)算性能要求。對(duì)于實(shí)現(xiàn)這種高級(jí)別的控制,開發(fā)人員通常需要采用實(shí)時(shí)操作系統(tǒng) (RTOS)。
從嵌入式信號(hào)處理角度上講,我們通常要考慮兩種類型的操作系統(tǒng),即通用操作系統(tǒng) Linux 與實(shí)時(shí)操作系統(tǒng) DSP/BIOS。Linux 可支持更高水平的抽象技術(shù),而 DSP/BIOS 則可提供更精細(xì)的控制。
為了充分發(fā)揮這兩種操作系統(tǒng)的優(yōu)勢(shì),開發(fā)人員可采用系統(tǒng)虛擬機(jī),這就使編程人員可在同一 DSP 處理器上同時(shí)運(yùn)行 Linux 與 DSP/BIOS 系統(tǒng)。
(編者注:與 Java 虛擬機(jī)等特定編程語(yǔ)言使用的進(jìn)程虛擬機(jī)環(huán)境不同,系統(tǒng)虛擬機(jī)對(duì)應(yīng)于實(shí)際硬件,可在相同計(jì)算環(huán)境中與其它類似實(shí)例相隔離的情況下執(zhí)行完整的操作系統(tǒng)。)
然而,我們要提出一個(gè)重要的問(wèn)題:為什么不使用分別運(yùn)行 Linux 與 DSP/BIOS 系統(tǒng)的 CPU+DSP 組合器件呢?畢竟,CPU 在運(yùn)行用戶接口控制代碼等方面具有更高的效率。此外,不同的內(nèi)核可避免虛擬化帶來(lái)的開銷。不過(guò),在同一顆芯片上集成所有功能還是很有吸引力的,原因如下:
其一,當(dāng)今高性能 DSP 比前代 DSP 要強(qiáng)大得多,這樣可減少控制處理周期數(shù)。其二,大多數(shù)高性能 DSP 的通用性能均比前代產(chǎn)品更強(qiáng),從而可實(shí)現(xiàn)更高效的控制代碼處理工作。
如果所有功能都可集成在 DSP 上,那么其優(yōu)勢(shì)將更加出眾。更少的芯片數(shù)量可實(shí)現(xiàn)更低的成本與更小的占用空間。此外,由于不再需要在耗費(fèi)大量電力的處理器間數(shù)據(jù)傳輸,因此還可降低能耗。
進(jìn)度安排
操作系統(tǒng)較常見也是較有利的一個(gè)特性就是能同時(shí)執(zhí)行多個(gè)任務(wù)或多個(gè)線程。操作系統(tǒng)通過(guò)時(shí)間表來(lái)管理內(nèi)核處理,以連續(xù)執(zhí)行相關(guān)任務(wù)。
以往,嵌入式編程人員在使用 Linux 時(shí)會(huì)擔(dān)心實(shí)時(shí)性能較低的問(wèn)題。不過(guò),對(duì) Linux 內(nèi)核的較新增強(qiáng)顯著提高了其對(duì)系統(tǒng)事件的響應(yīng)能力,從而使其可滿足各種企業(yè)與個(gè)人以及嵌入式產(chǎn)品的需求。
Linux 可實(shí)現(xiàn)線程的時(shí)間切片以及優(yōu)先次序時(shí)間安排。時(shí)間切片技術(shù)是指在所有線程之間共享處理工作周期,以確保無(wú)封鎖線程。這種方法通常適用于用戶接口功能,以確保在系統(tǒng)超載、響應(yīng)較慢的情況下也不至于完全丟失用戶功能。
與此形成對(duì)比的是,優(yōu)先次序線程時(shí)間安排技術(shù)則可確保系統(tǒng)中較高優(yōu)先級(jí)線程的執(zhí)行,直至該線程放棄控制為止,這時(shí)下一個(gè)較高優(yōu)先級(jí)的線程即開始執(zhí)行。
Linux 內(nèi)核在每次從內(nèi)核到用戶模式的轉(zhuǎn)換時(shí)都會(huì)對(duì)可用線程的優(yōu)先級(jí)進(jìn)行重新評(píng)估,這就意味著內(nèi)核較新評(píng)估的任何事件(如驅(qū)動(dòng)程序上數(shù)據(jù)的可用性)都能立即觸發(fā)新線程(調(diào)度器的時(shí)延響應(yīng)時(shí)間內(nèi))的轉(zhuǎn)換。由于確定了基于優(yōu)先級(jí)的線程,其通常用于必須滿足實(shí)時(shí)要求的信號(hào)處理應(yīng)用。
在推出 Linux 內(nèi)核 2.6 版本之前,制約實(shí)時(shí)性能的主要因素是 Linux 內(nèi)核會(huì)禁用中斷,且禁用時(shí)間有時(shí)會(huì)長(zhǎng)達(dá)數(shù)百毫秒。
就此而言,我們可以提高內(nèi)核實(shí)施的效率。因?yàn)樵诮弥袛鄷r(shí),代碼的某些部分無(wú)需重新進(jìn)入,而這會(huì)增加中斷響應(yīng)的時(shí)延。
目前的 2.6 版本提供了構(gòu)建選項(xiàng),可在整個(gè)內(nèi)核代碼中以更高的頻率插入中斷再啟用指令。Linux 社區(qū)通常將該特性稱作先占內(nèi)核 (preempt kernel),盡管這會(huì)讓內(nèi)核性能略有下降,但卻能夠顯著提高實(shí)時(shí)性能。對(duì)于眾多系統(tǒng)任務(wù)而言,在先占性 Linux 2.6 內(nèi)核與實(shí)時(shí)線程結(jié)合使用時(shí),將能提供足夠的性能來(lái)滿足實(shí)時(shí)需求。
例如,德州儀器 (TI) 的 DSP/BIOS 以軟件中斷和任務(wù)的形式僅支持優(yōu)先級(jí)調(diào)度。與 Linux 調(diào)度器一樣,軟件中斷和任務(wù)都屬于先占型的。但是,DSP/BIOS 也為應(yīng)用編程人員提供了直接存取硬件中斷的條件,該資源僅適用于 Linux 內(nèi)核模式。
直接存取硬件中斷使應(yīng)用編程人員可在理論上實(shí)現(xiàn)底層硬件所支持的較短時(shí)延響應(yīng)。對(duì)控制環(huán)路等需要絕對(duì)較低時(shí)延的應(yīng)用而言,這種精細(xì)粒度的硬件中斷控制機(jī)制通常是一種非常重要的特性。
受保護(hù)的資源訪問(wèn)
Linux 與大多數(shù)通用操作系統(tǒng)的一個(gè)基本屬性就是用戶空間程序與所用的底層系統(tǒng)資源相分離。僅在工作處于監(jiān)控(如內(nèi)核)模式下時(shí)才允許直接訪問(wèn)存儲(chǔ)器和設(shè)備外設(shè)。
如果用戶程序希望訪問(wèn)系統(tǒng)資源,那么它必須通過(guò)稱作驅(qū)動(dòng)器的內(nèi)核模塊從內(nèi)核發(fā)出請(qǐng)求。該應(yīng)用位于用戶存儲(chǔ)器空間,并將通過(guò)虛擬文件訪問(wèn)驅(qū)動(dòng)程序。然后,虛擬文件將應(yīng)用的請(qǐng)求轉(zhuǎn)至驅(qū)動(dòng)器執(zhí)行的內(nèi)核存儲(chǔ)器空間。
Linux 可提供特性極為豐富的驅(qū)動(dòng)器模型,其中包括標(biāo)準(zhǔn)流媒體外設(shè)、模塊存儲(chǔ)設(shè)備以及文件系統(tǒng),甚至還包括網(wǎng)絡(luò)與基于網(wǎng)絡(luò)的文件系統(tǒng)。
驅(qū)動(dòng)器與用戶空間應(yīng)用的分離可實(shí)現(xiàn)高度的穩(wěn)健性。此外,通用驅(qū)動(dòng)器接口上的抽象水平使其便于將數(shù)據(jù)流傳輸給串行端口、閃存文件系統(tǒng)或網(wǎng)絡(luò)共享文件夾,且僅需對(duì)底層應(yīng)用代碼稍作更改。
然而,實(shí)現(xiàn)這種靈活性需要付出代價(jià)。應(yīng)用與物理資源的嚴(yán)格分離會(huì)加大開銷。如果用戶空間程序要訪問(wèn)設(shè)備外設(shè),則內(nèi)核模式必須進(jìn)行環(huán)境交換才能處理該請(qǐng)求。
由于數(shù)據(jù)是成塊訪問(wèn),而非逐個(gè)樣本 (sample-by-sample) 訪問(wèn),因此通常來(lái)說(shuō)這不會(huì)造成太大的局限性。這樣,內(nèi)核模式下每次塊訪問(wèn)僅需進(jìn)行一次環(huán)境交換即可。
但是,在某些情況下,應(yīng)用代碼需與物理硬件嚴(yán)格匹配。如果使用 DSP 等對(duì)數(shù)據(jù)吞吐量要求較高且不能容忍停頓的高性能處理器時(shí),通常就會(huì)出現(xiàn)此類情況。這時(shí),內(nèi)核空間的物理資源與用戶空間的應(yīng)用相分離的做法就可能會(huì)嚴(yán)重影響系統(tǒng)性能。
應(yīng)用與硬件的匹配
我們不妨使用 TMS320DM643x 處理器架構(gòu)來(lái)研究在執(zhí)行塊視頻處理時(shí)會(huì)遇到的典型情況,該架構(gòu)采用一個(gè) 600 MHz / 4800 MIPS DSP 處理內(nèi)核以及諸如功能豐富的視頻端口子系統(tǒng)等各種多媒體外設(shè)。這種硬件通常用于將輸入視頻流進(jìn)行 H.264 格式壓縮。
為了充分發(fā)揮 DSP 內(nèi)核的處理能力,處理的數(shù)據(jù)應(yīng)從周期操作內(nèi)部存儲(chǔ)器讀取,而不是從速度較慢的外部存儲(chǔ)器讀取。盡管在技術(shù)上可以讓具有足夠快的片上存儲(chǔ)器的處理器存儲(chǔ)一個(gè)或多個(gè)完整的視頻幀,但這種技術(shù)對(duì)大多數(shù)目標(biāo)市場(chǎng)來(lái)說(shuō)成本太高。因此,采用可提供 80 KB 的單周期操作片上數(shù)據(jù)存儲(chǔ)器的處理器取而代之。
80 KB 雖然小,不能存儲(chǔ)完整的視頻幀,但 TI 通過(guò)模擬檢測(cè)認(rèn)為,這樣的存儲(chǔ)量足夠?yàn)?H.264與其它視頻處理算法提供較佳的面積/性能綜合比。
DSP 通過(guò)直接存儲(chǔ)器存取 (DMA) 控制器為該存儲(chǔ)器提供數(shù)據(jù),這種控制器還可用于內(nèi)外部存儲(chǔ)器之間高效傳輸數(shù)據(jù)子塊,而不會(huì)占用處理器內(nèi)核的周期操作(見以下圖 1)。
圖 1. DSP 處理器采用DMA 硬件將外部存儲(chǔ)器中較小的視頻幀子塊傳輸?shù)絻?nèi)部存儲(chǔ)器中,以供 DSP內(nèi)核進(jìn)行處理。
圖1. DSP 處理器采用 DMA 硬件將外部存儲(chǔ)器中較小的視頻幀子塊傳輸?shù)絻?nèi)部存儲(chǔ)器中,以供 DSP內(nèi)核進(jìn)行處理。
從整體系統(tǒng)的角度來(lái)說(shuō),這種方法可提供幾乎相當(dāng)于具有整個(gè)視頻緩沖器的芯片所提供的性能,但成本卻非常低。不過(guò),為了實(shí)現(xiàn)這樣的高性能,就需要應(yīng)用、操作系統(tǒng)以及底層存儲(chǔ)器與 DMA 硬件之間的緊密配合。
首先,應(yīng)用必須能夠區(qū)別快速內(nèi)部存儲(chǔ)器與大容量外部存儲(chǔ)器。其次,應(yīng)用必須能夠執(zhí)行許多時(shí)間精確的小型 DMA 操作。由于訪問(wèn) DMA 時(shí)發(fā)生的所有時(shí)延在 DMA 訪問(wèn)每個(gè)視頻幀時(shí)都會(huì)放大數(shù)百倍乃至數(shù)千倍,因而在 Linux 驅(qū)動(dòng)程序模型內(nèi)高效實(shí)現(xiàn) DMA 操作雖非不可能,但也極為困難。
這種方法的實(shí)際實(shí)施可通過(guò) DSP/BIOS 完成,并提供原生 API 來(lái)實(shí)現(xiàn)應(yīng)用對(duì)內(nèi)外部存儲(chǔ)器的請(qǐng)求,同時(shí)也使應(yīng)用可直接訪問(wèn) DMA 寄存器,不會(huì)產(chǎn)生環(huán)境交換損失。
兩種操作系統(tǒng)的優(yōu)勢(shì)結(jié)合
盡管眾多多媒體應(yīng)用的大部分處理器周期操作都用來(lái)進(jìn)行信號(hào)處理,但能滿足消費(fèi)需求的產(chǎn)品同時(shí)還必須執(zhí)行許多更高級(jí)的功能,如用戶界面、顯示功能、網(wǎng)絡(luò)以及文件處理等。
由于上述特性對(duì)時(shí)間要求不高,因此無(wú)需精確控制 DSP/BIOS。這時(shí),Linux驅(qū)動(dòng)程序模型所提供的資源提取功能就可更好地提高靈活性,縮短開發(fā)時(shí)間,更不用說(shuō)可獲得 Linux 社區(qū)豐富的開源應(yīng)用代碼支持了。
可使 Linux 與 DSP BIOS 操作系統(tǒng)同時(shí)運(yùn)行在同一設(shè)備上的解決方案,就是需要使用虛擬程序 (virtualizer) 為系統(tǒng)開發(fā)或集成人員提供這兩種操作系統(tǒng)的優(yōu)勢(shì)(見圖 2)。
圖 2. Linux 和 DSP/BIOS 同時(shí)運(yùn)行在 DM643x DSP 器件上
虛擬程序作為快速、可預(yù)測(cè)的交換機(jī)可在 Linux 與 DSP/BIOS 操作系統(tǒng)之間實(shí)現(xiàn) DSP 資源。當(dāng)接收到中斷時(shí)對(duì) DSP/BIOS 操作系統(tǒng)環(huán)境做出推測(cè)性交換,從而確保 DSP/BIOS 線程的較佳性能。
如果新到達(dá)的中斷對(duì)應(yīng)于 DSP/BIOS 環(huán)境中已識(shí)別的事件,那么將在已經(jīng)加載且準(zhǔn)備運(yùn)行的 DSP/BIOS 環(huán)境中對(duì)其進(jìn)行處理。
在虛擬程序支持 DSP/BIOS 的同時(shí),應(yīng)用可直接訪問(wèn)所需的系統(tǒng)資源,且不會(huì)影響(掛起)Linux 環(huán)境中保持的用戶與內(nèi)核空間。
一旦應(yīng)用完成 DSP/BIOS 環(huán)境下的高性能信號(hào)處理計(jì)算,虛擬機(jī)就將強(qiáng)制轉(zhuǎn)回到 Linux環(huán)境,以便訪問(wèn)該環(huán)境下的更高級(jí)特性。
在虛擬程序的調(diào)節(jié)下,操作系統(tǒng)之間的交換時(shí)間不到 10 微秒,這使編程人員能達(dá)到實(shí)時(shí)性能要求,相對(duì)于只包含 DSP/BIOS 的原生系統(tǒng)而言,性能上也沒(méi)什么損失。該解決方案對(duì)典型多媒體設(shè)備的處理資源占用
相關(guān)閱讀:
- ...2011/06/24 12:14·采用 5V 電源的 50MHz 熱敏電阻 RMS 至 DC 轉(zhuǎn)換器
- ...2011/06/17 13:41·采用 LDO 后置穩(wěn)壓以實(shí)現(xiàn)低噪聲和低紋波的降壓型穩(wěn)壓器
- ...2011/06/09 14:03·采用 6 個(gè)串聯(lián)的超級(jí)電容器和電壓監(jiān)控器的 12V 電源故障保護(hù)應(yīng)用
- ...2011/05/17 14:02·采用 3V 至 72V 輸入的 6 路輸出 DC/DC μModule 穩(wěn)壓器
- ...·圖文詳解汽車儀表板背后的車規(guī)級(jí)安全設(shè)計(jì)要求
- ...·使用有安全保障的閃存存儲(chǔ)構(gòu)建安全的汽車系統(tǒng)
- ...·反向偏置差分線性傳感器的較新進(jìn)展和應(yīng)用
- ...·艾德克斯測(cè)評(píng)某品牌智能插座——待機(jī)功耗篇
- ...·三線電阻式溫度檢測(cè)器測(cè)量系統(tǒng)中勵(lì)磁電流失配的影響(續(xù))
- ...·三線電阻式溫度檢測(cè)器測(cè)量系統(tǒng)中勵(lì)磁電流失配的影響
- ...·RTD測(cè)量系統(tǒng)中勵(lì)磁電流失配的影響
- ...·藍(lán)牙BR/EDR 和 Bluetooth Smart的十大重要區(qū)別
- ...·IoT網(wǎng)關(guān)平臺(tái)與應(yīng)用
- ...·增強(qiáng)版ARM DesignStart:通向定制化SoC的較快、較低風(fēng)險(xiǎn)之路
- ...·實(shí)體零售轉(zhuǎn)型O2O,倉(cāng)儲(chǔ)物流的智能化水平從何提升?
- ...·幾種車用LED驅(qū)動(dòng)方案的比較
- ...·藍(lán)牙配對(duì)第二篇:密鑰生成方法
- ...·中電瑞華推出領(lǐng)先的無(wú)線數(shù)據(jù)采集解決方案
- ...·安森美半導(dǎo)體配合市場(chǎng)趨勢(shì)的無(wú)線充電方案
- ...·安森美半導(dǎo)體配合汽車照明設(shè)計(jì)趨勢(shì)的解決方案
- ...· “芯創(chuàng)杯”首屆高校未來(lái)汽車人機(jī)交互設(shè)計(jì)大賽報(bào)名正式啟動(dòng)
- ...· 探秘第二屆衛(wèi)藍(lán)山鷹“創(chuàng)新·共享”試驗(yàn)技術(shù)論壇!
- ...· “2018中國(guó)半導(dǎo)體生態(tài)鏈大會(huì)”在江蘇省盱眙舉行
- ...· 新主題新規(guī)劃,CITE 2019瞭望智慧未來(lái)
- ...· 從汽車到工廠,TI毫米波傳感器致力于創(chuàng)造更智能的世界
- ...· 意法半導(dǎo)體(ST)、Cinemo和Valens在CES 2018展上聯(lián)合演示汽車信息娛樂(lè)解決方案
- ...· 北京集成電路產(chǎn)業(yè)創(chuàng)新發(fā)展高峰論壇即將在京召開
- ...· 三菱電機(jī)強(qiáng)勢(shì)出擊PCIM亞洲2017展
- ...· GPGPU國(guó)產(chǎn)替代:中國(guó)芯片產(chǎn)業(yè)的空白地帶
- ...· 物聯(lián)網(wǎng)產(chǎn)品設(shè)計(jì)中Wi-Fi連接的四個(gè)關(guān)鍵因素
- ...· 第三屆中國(guó)MEMS智能傳感器產(chǎn)業(yè)發(fā)展大會(huì)即將于蚌埠拉開帷幕
- ...· IAIC專項(xiàng)賽演繹“中國(guó)芯“應(yīng)用創(chuàng)新,信息安全高峰論壇亮劍海寧
- ...· 智能控制有源鉗位反激
- ...· 解讀5G毫米波OTA 測(cè)試技術(shù)
- ...· 多個(gè)市場(chǎng)高速增長(zhǎng)推動(dòng)Molex加強(qiáng)汽車領(lǐng)域的發(fā)展
- ...· 中國(guó)綠色制造聯(lián)盟成立大會(huì)召開在即 政產(chǎn)學(xué)研用共探綠色發(fā)展新模式
- ...· Efinix® 全力驅(qū)動(dòng)AI邊緣計(jì)算,成功推出Trion™ T20 FPGA樣品, 同時(shí)將產(chǎn)品擴(kuò)展到二十萬(wàn)邏輯單元的T200 FPGA
- ...· 英飛凌亮相進(jìn)博會(huì),引領(lǐng)智慧新生活
- ...· 三電產(chǎn)品開發(fā)及測(cè)試研討會(huì)北汽新能源專場(chǎng)成功舉行
- ...· Manz亞智科技跨入半導(dǎo)體領(lǐng)域 為面板級(jí)扇出型封裝提供化學(xué)濕制程、涂布及激光應(yīng)用等生產(chǎn)設(shè)備解決方案
- ...· 中電瑞華BITRODE動(dòng)力電池測(cè)試系統(tǒng)順利交付北汽新能源
- ...· 中電瑞華FTF系列電池測(cè)試系統(tǒng)中標(biāo)北京新能源汽車股份有限公司
- ...· 中電瑞華大功率高壓能源反饋式負(fù)載系統(tǒng)成功交付中電熊貓
- ...· 中電瑞華國(guó)際在電動(dòng)汽車及關(guān)鍵部件測(cè)評(píng)研討會(huì)上演繹先進(jìn)測(cè)評(píng)技術(shù)
- ...· 數(shù)據(jù)采集終端系統(tǒng)設(shè)備
- ...· 簡(jiǎn)儀科技踏上新征程
- ...· 易靈思® 宣布 AEC-Q100 資質(zhì)認(rèn)證和汽車系列產(chǎn)品計(jì)劃
- ...· 易靈思® 宣布擴(kuò)充高性能 鈦金系列™ FPGA 產(chǎn)品 鈦金系列產(chǎn)品擴(kuò)充至包含 1M 邏輯單元的 FPGA
- ...· 易靈思® 宣布Trion® Titanium 在臺(tái)積電 (TSMC) 16納米工藝節(jié)點(diǎn)流片
- ...· TI杯2019年全國(guó)大學(xué)生電子設(shè)計(jì)競(jìng)賽頒獎(jiǎng)典禮在京舉行
- ...· BlackBerry QNX虛擬機(jī)獲得全球首個(gè)汽車安全完整性等級(jí)(ASIL) ‘D’認(rèn)證
- ...· 威馬汽車選擇BlackBerry助力下一代汽車