資料介紹
在系統(tǒng)性能與編程簡易性之間的權(quán)衡折中是通用操作系統(tǒng)與實(shí)時操作系統(tǒng)之間的主要區(qū)分點(diǎn)之一。
GPOS(通用操作系統(tǒng))傾向于提供較高程度的資源抽象,這不僅可通過支持軟件模塊與資源隔離來提高應(yīng)用的便攜性、簡化開發(fā)流程,同時還能增強(qiáng)系統(tǒng)的穩(wěn)健性,這使 GPOS 成為諸如網(wǎng)絡(luò)、用戶界面以及顯示管理等通用系統(tǒng)組件的理想選擇。
然而,該抽象需要以系統(tǒng)資源的精細(xì)粒度控制作為代價,以滿足信號處理代碼等高強(qiáng)度算法的計算性能要求。對于實(shí)現(xiàn)這種高級別的控制,開發(fā)人員通常需要采用實(shí)時操作系統(tǒng) (RTOS)。
從嵌入式信號處理角度上講,我們通常要考慮兩種類型的操作系統(tǒng),即通用操作系統(tǒng) Linux 與實(shí)時操作系統(tǒng)DSP(數(shù)字信號處理器)/BIOS(基本輸入輸出系統(tǒng))。Linux 可支持更高水平的抽象技術(shù),而 DSP/BIOS 則可提供更精細(xì)的控制。
為了充分發(fā)揮這兩種操作系統(tǒng)的優(yōu)勢,開發(fā)人員可采用系統(tǒng)虛擬機(jī),這就使編程人員可在同一 DSP 處理器上同時運(yùn)行 Linux 與 DSP/BIOS 系統(tǒng)。
然而,我們要提出一個重要的問題:為什么不使用分別運(yùn)行 Linux 與 DSP/BIOS 系統(tǒng)的 CPU+DSP 組合器件呢?畢竟,CPU 在運(yùn)行用戶接口控制代碼等方面具有更高的效率。此外,不同的內(nèi)核可避免虛擬化帶來的開銷。不過,在同一顆芯片上集成所有功能還是很有吸引力的,原因如下:
其一,當(dāng)今高性能 DSP 比前代 DSP 要強(qiáng)大得多,這樣可減少控制處理周期數(shù)。其二,大多數(shù)高性能 DSP 的通用性能均比前代產(chǎn)品更強(qiáng),從而可實(shí)現(xiàn)更高效的控制代碼處理工作。
如果所有功能都可集成在 DSP 上,那么其優(yōu)勢將更加出眾。更少的芯片數(shù)量可實(shí)現(xiàn)更低的成本與更小的占用空間。此外,由于不再需要在耗費(fèi)大量電力的處理器間數(shù)據(jù)傳輸,因此還可降低能耗。
進(jìn)度安排
操作系統(tǒng)最常見也是最有利的一個特性就是能同時執(zhí)行多個任務(wù)或多個線程。操作系統(tǒng)通過時間表管理內(nèi)核處理,以連續(xù)執(zhí)行相關(guān)任務(wù)。
以往,嵌入式編程人員在使用 Linux 時會擔(dān)心實(shí)時性能較低的問題。不過,對 Linux 內(nèi)核的最新增強(qiáng)顯著提高了其對系統(tǒng)事件的響應(yīng)能力,從而使其可滿足各種企業(yè)與個人以及嵌入式產(chǎn)品的需求。
Linux 可實(shí)現(xiàn)線程的時間切片以及優(yōu)先次序的時間安排。時間切片技術(shù)是指在所有線程之間共享處理工作周期,以確保無封鎖線程。這種方法通常適用于用戶接口功能,以確保在系統(tǒng)超載、響應(yīng)較慢的情況下也不至于完全丟失用戶功能。
與此形成對比的是,優(yōu)先次序線程時間安排技術(shù)則可確保系統(tǒng)中最高優(yōu)先級線程的執(zhí)行,直至該線程放棄控制為止,這時下一個最高優(yōu)先級的線程即開始執(zhí)行。
Linux 內(nèi)核在每次從內(nèi)核到用戶模式的轉(zhuǎn)換時都會對可用線程的優(yōu)先級進(jìn)行重新評估,這就意味著內(nèi)核最新評估的任何事件(如驅(qū)動程序上數(shù)據(jù)的可用性)都能立即觸發(fā)新線程(調(diào)度器的時延響應(yīng)時間內(nèi))的轉(zhuǎn)換。由于確定了基于優(yōu)先級的線程,其通常用于必須滿足實(shí)時要求的信號處理應(yīng)用。
在推出 Linux 內(nèi)核 2.6 版本之前,制約實(shí)時性能的主要因素是 Linux 內(nèi)核會禁用中斷,且禁用時間有時會長達(dá)數(shù)百毫秒。
就此而言,我們可以提高內(nèi)核實(shí)施的效率。因?yàn)樵诮弥袛鄷r,代碼的某些部分無需重新進(jìn)入,而這會增加中斷響應(yīng)的時延。
目前的 2.6 版本提供了構(gòu)建選項,可在整個內(nèi)核代碼中以更高的頻率插入中斷再啟用指令。Linux 社區(qū)通常將該特性稱作先占內(nèi)核 (preempt kernel),盡管這會讓內(nèi)核性能略有下降,但卻能夠顯著提高實(shí)時性能。對于眾多系統(tǒng)任務(wù)而言,在先占性 Linux 2.6 內(nèi)核與實(shí)時線程結(jié)合使用時,將能提供足夠的性能來滿足實(shí)時需求。
例如,德州儀器 (TI) 的 DSP/BIOS 以軟件中斷和任務(wù)的形式僅支持優(yōu)先級調(diào)度。與 Linux 調(diào)度器一樣,軟件中斷和任務(wù)都屬于先占型的。但是,DSP/BIOS 也為應(yīng)用編程人員提供了直接存取硬件中斷的條件,該資源僅適用于 Linux 內(nèi)核模式。
直接存取硬件中斷使應(yīng)用編程人員可在理論上實(shí)現(xiàn)底層硬件所支持的最短時延響應(yīng)。對控制環(huán)路等需要絕對最低時延的應(yīng)用而言,這種精細(xì)粒度的硬件中斷控制機(jī)制通常是一種非常重要的特性。
受保護(hù)的資源訪問
Linux 與大多數(shù)通用操作系統(tǒng)的一個基本屬性就是用戶空間程序與所用的底層系統(tǒng)資源相分離。僅在工作處于監(jiān)控(如內(nèi)核)模式下時才允許直接訪問存儲器和設(shè)備外設(shè)。
如果用戶程序希望訪問系統(tǒng)資源,那么它必須通過稱作驅(qū)動器的內(nèi)核模塊從內(nèi)核發(fā)出請求。該應(yīng)用位于用戶存儲器空間,并將通過虛擬文件訪問驅(qū)動程序。然后,虛擬文件將應(yīng)用的請求轉(zhuǎn)至驅(qū)動器執(zhí)行的內(nèi)核存儲器空間。
Linux 可提供特性極為豐富的驅(qū)動器模型,其中包括標(biāo)準(zhǔn)流媒體外設(shè)、模塊存儲設(shè)備以及文件系統(tǒng),甚至還包括網(wǎng)絡(luò)與基于網(wǎng)絡(luò)的文件系統(tǒng)。
驅(qū)動器與用戶空間應(yīng)用的分離可實(shí)現(xiàn)高度的穩(wěn)健性。此外,通用驅(qū)動器接口上的抽象水平使其便于將數(shù)據(jù)流傳輸給串行端口、閃存文件系統(tǒng)或網(wǎng)絡(luò)共享文件夾,且僅需對底層應(yīng)用代碼稍作更改。
然而,實(shí)現(xiàn)這種靈活性需要付出代價。應(yīng)用與物理資源的嚴(yán)格分離會加大開銷。如果用戶空間程序要訪問設(shè)備外設(shè),則內(nèi)核模式必須進(jìn)行環(huán)境交換才能處理該請求。
由于數(shù)據(jù)是成塊訪問,而非逐個樣本 (sample-by-sample) 訪問,因此通常來說這不會造成太大的局限性。這樣,內(nèi)核模式下每次塊訪問僅需進(jìn)行一次環(huán)境交換即可。
但是,在某些情況下,應(yīng)用代碼需與物理硬件嚴(yán)格匹配。如果使用 DSP 等對數(shù)據(jù)吞吐量要求較高且不能容忍停頓的高性能處理器時,通常就會出現(xiàn)此類情況。這時,內(nèi)核空間的物理資源與用戶空間的應(yīng)用相分離的做法就可能會嚴(yán)重影響系統(tǒng)性能。
應(yīng)用與硬件的匹配
我們不妨使用 TMS320DM643x 處理器架構(gòu)來研究在執(zhí)行塊視頻處理時會遇到的典型情況,該架構(gòu)采用一個 600 MHz / 4800 MIPS DSP 處理內(nèi)核以及諸如功能豐富的視頻端口子系統(tǒng)等各種多媒體外設(shè)。這種硬件通常用于將輸入視頻流進(jìn)行 H.264 格式壓縮。
為了充分發(fā)揮 DSP 內(nèi)核的處理能力,處理的數(shù)據(jù)應(yīng)從周期操作內(nèi)部存儲器讀取,而不是從速度較慢的外部存儲器讀取。盡管在技術(shù)上可以讓具有足夠快的片上存儲器的處理器存儲一個或多個完整的視頻幀,但這種技術(shù)對大多數(shù)目標(biāo)市場來說成本太高。因此,采用可提供 80kB 的單周期操作片上數(shù)據(jù)存儲器的處理器取而代之。
GPOS(通用操作系統(tǒng))傾向于提供較高程度的資源抽象,這不僅可通過支持軟件模塊與資源隔離來提高應(yīng)用的便攜性、簡化開發(fā)流程,同時還能增強(qiáng)系統(tǒng)的穩(wěn)健性,這使 GPOS 成為諸如網(wǎng)絡(luò)、用戶界面以及顯示管理等通用系統(tǒng)組件的理想選擇。
然而,該抽象需要以系統(tǒng)資源的精細(xì)粒度控制作為代價,以滿足信號處理代碼等高強(qiáng)度算法的計算性能要求。對于實(shí)現(xiàn)這種高級別的控制,開發(fā)人員通常需要采用實(shí)時操作系統(tǒng) (RTOS)。
從嵌入式信號處理角度上講,我們通常要考慮兩種類型的操作系統(tǒng),即通用操作系統(tǒng) Linux 與實(shí)時操作系統(tǒng)DSP(數(shù)字信號處理器)/BIOS(基本輸入輸出系統(tǒng))。Linux 可支持更高水平的抽象技術(shù),而 DSP/BIOS 則可提供更精細(xì)的控制。
為了充分發(fā)揮這兩種操作系統(tǒng)的優(yōu)勢,開發(fā)人員可采用系統(tǒng)虛擬機(jī),這就使編程人員可在同一 DSP 處理器上同時運(yùn)行 Linux 與 DSP/BIOS 系統(tǒng)。
然而,我們要提出一個重要的問題:為什么不使用分別運(yùn)行 Linux 與 DSP/BIOS 系統(tǒng)的 CPU+DSP 組合器件呢?畢竟,CPU 在運(yùn)行用戶接口控制代碼等方面具有更高的效率。此外,不同的內(nèi)核可避免虛擬化帶來的開銷。不過,在同一顆芯片上集成所有功能還是很有吸引力的,原因如下:
其一,當(dāng)今高性能 DSP 比前代 DSP 要強(qiáng)大得多,這樣可減少控制處理周期數(shù)。其二,大多數(shù)高性能 DSP 的通用性能均比前代產(chǎn)品更強(qiáng),從而可實(shí)現(xiàn)更高效的控制代碼處理工作。
如果所有功能都可集成在 DSP 上,那么其優(yōu)勢將更加出眾。更少的芯片數(shù)量可實(shí)現(xiàn)更低的成本與更小的占用空間。此外,由于不再需要在耗費(fèi)大量電力的處理器間數(shù)據(jù)傳輸,因此還可降低能耗。
進(jìn)度安排
操作系統(tǒng)最常見也是最有利的一個特性就是能同時執(zhí)行多個任務(wù)或多個線程。操作系統(tǒng)通過時間表管理內(nèi)核處理,以連續(xù)執(zhí)行相關(guān)任務(wù)。
以往,嵌入式編程人員在使用 Linux 時會擔(dān)心實(shí)時性能較低的問題。不過,對 Linux 內(nèi)核的最新增強(qiáng)顯著提高了其對系統(tǒng)事件的響應(yīng)能力,從而使其可滿足各種企業(yè)與個人以及嵌入式產(chǎn)品的需求。
Linux 可實(shí)現(xiàn)線程的時間切片以及優(yōu)先次序的時間安排。時間切片技術(shù)是指在所有線程之間共享處理工作周期,以確保無封鎖線程。這種方法通常適用于用戶接口功能,以確保在系統(tǒng)超載、響應(yīng)較慢的情況下也不至于完全丟失用戶功能。
與此形成對比的是,優(yōu)先次序線程時間安排技術(shù)則可確保系統(tǒng)中最高優(yōu)先級線程的執(zhí)行,直至該線程放棄控制為止,這時下一個最高優(yōu)先級的線程即開始執(zhí)行。
Linux 內(nèi)核在每次從內(nèi)核到用戶模式的轉(zhuǎn)換時都會對可用線程的優(yōu)先級進(jìn)行重新評估,這就意味著內(nèi)核最新評估的任何事件(如驅(qū)動程序上數(shù)據(jù)的可用性)都能立即觸發(fā)新線程(調(diào)度器的時延響應(yīng)時間內(nèi))的轉(zhuǎn)換。由于確定了基于優(yōu)先級的線程,其通常用于必須滿足實(shí)時要求的信號處理應(yīng)用。
在推出 Linux 內(nèi)核 2.6 版本之前,制約實(shí)時性能的主要因素是 Linux 內(nèi)核會禁用中斷,且禁用時間有時會長達(dá)數(shù)百毫秒。
就此而言,我們可以提高內(nèi)核實(shí)施的效率。因?yàn)樵诮弥袛鄷r,代碼的某些部分無需重新進(jìn)入,而這會增加中斷響應(yīng)的時延。
目前的 2.6 版本提供了構(gòu)建選項,可在整個內(nèi)核代碼中以更高的頻率插入中斷再啟用指令。Linux 社區(qū)通常將該特性稱作先占內(nèi)核 (preempt kernel),盡管這會讓內(nèi)核性能略有下降,但卻能夠顯著提高實(shí)時性能。對于眾多系統(tǒng)任務(wù)而言,在先占性 Linux 2.6 內(nèi)核與實(shí)時線程結(jié)合使用時,將能提供足夠的性能來滿足實(shí)時需求。
例如,德州儀器 (TI) 的 DSP/BIOS 以軟件中斷和任務(wù)的形式僅支持優(yōu)先級調(diào)度。與 Linux 調(diào)度器一樣,軟件中斷和任務(wù)都屬于先占型的。但是,DSP/BIOS 也為應(yīng)用編程人員提供了直接存取硬件中斷的條件,該資源僅適用于 Linux 內(nèi)核模式。
直接存取硬件中斷使應(yīng)用編程人員可在理論上實(shí)現(xiàn)底層硬件所支持的最短時延響應(yīng)。對控制環(huán)路等需要絕對最低時延的應(yīng)用而言,這種精細(xì)粒度的硬件中斷控制機(jī)制通常是一種非常重要的特性。
受保護(hù)的資源訪問
Linux 與大多數(shù)通用操作系統(tǒng)的一個基本屬性就是用戶空間程序與所用的底層系統(tǒng)資源相分離。僅在工作處于監(jiān)控(如內(nèi)核)模式下時才允許直接訪問存儲器和設(shè)備外設(shè)。
如果用戶程序希望訪問系統(tǒng)資源,那么它必須通過稱作驅(qū)動器的內(nèi)核模塊從內(nèi)核發(fā)出請求。該應(yīng)用位于用戶存儲器空間,并將通過虛擬文件訪問驅(qū)動程序。然后,虛擬文件將應(yīng)用的請求轉(zhuǎn)至驅(qū)動器執(zhí)行的內(nèi)核存儲器空間。
Linux 可提供特性極為豐富的驅(qū)動器模型,其中包括標(biāo)準(zhǔn)流媒體外設(shè)、模塊存儲設(shè)備以及文件系統(tǒng),甚至還包括網(wǎng)絡(luò)與基于網(wǎng)絡(luò)的文件系統(tǒng)。
驅(qū)動器與用戶空間應(yīng)用的分離可實(shí)現(xiàn)高度的穩(wěn)健性。此外,通用驅(qū)動器接口上的抽象水平使其便于將數(shù)據(jù)流傳輸給串行端口、閃存文件系統(tǒng)或網(wǎng)絡(luò)共享文件夾,且僅需對底層應(yīng)用代碼稍作更改。
然而,實(shí)現(xiàn)這種靈活性需要付出代價。應(yīng)用與物理資源的嚴(yán)格分離會加大開銷。如果用戶空間程序要訪問設(shè)備外設(shè),則內(nèi)核模式必須進(jìn)行環(huán)境交換才能處理該請求。
由于數(shù)據(jù)是成塊訪問,而非逐個樣本 (sample-by-sample) 訪問,因此通常來說這不會造成太大的局限性。這樣,內(nèi)核模式下每次塊訪問僅需進(jìn)行一次環(huán)境交換即可。
但是,在某些情況下,應(yīng)用代碼需與物理硬件嚴(yán)格匹配。如果使用 DSP 等對數(shù)據(jù)吞吐量要求較高且不能容忍停頓的高性能處理器時,通常就會出現(xiàn)此類情況。這時,內(nèi)核空間的物理資源與用戶空間的應(yīng)用相分離的做法就可能會嚴(yán)重影響系統(tǒng)性能。
應(yīng)用與硬件的匹配
我們不妨使用 TMS320DM643x 處理器架構(gòu)來研究在執(zhí)行塊視頻處理時會遇到的典型情況,該架構(gòu)采用一個 600 MHz / 4800 MIPS DSP 處理內(nèi)核以及諸如功能豐富的視頻端口子系統(tǒng)等各種多媒體外設(shè)。這種硬件通常用于將輸入視頻流進(jìn)行 H.264 格式壓縮。
為了充分發(fā)揮 DSP 內(nèi)核的處理能力,處理的數(shù)據(jù)應(yīng)從周期操作內(nèi)部存儲器讀取,而不是從速度較慢的外部存儲器讀取。盡管在技術(shù)上可以讓具有足夠快的片上存儲器的處理器存儲一個或多個完整的視頻幀,但這種技術(shù)對大多數(shù)目標(biāo)市場來說成本太高。因此,采用可提供 80kB 的單周期操作片上數(shù)據(jù)存儲器的處理器取而代之。
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- 基于MATLAB雷達(dá)信號采集及處理技術(shù)研究 11次下載
- 數(shù)字信號處理-時域離散隨機(jī)信號處理 54次下載
- 數(shù)字信號處理算法電子版資源下載 0次下載
- 如何解析定時器產(chǎn)生的脈沖信號? 15次下載
- 數(shù)字信號處理概述說明 27次下載
- 數(shù)字信號處理應(yīng)用論文講解 12次下載
- CCD信號處理電路的工作原理和使用CCD信號處理電路設(shè)計濾波器的說明 23次下載
- 嵌入式Linux與物聯(lián)網(wǎng)軟件開發(fā)C語言內(nèi)核深度解析書籍的介紹
- 信號處理技術(shù)之?dāng)?shù)位控制系統(tǒng)相關(guān)問題的解析 7次下載
- 基于ARM9和linux OS的數(shù)據(jù)采集系統(tǒng) 3次下載
- 汽車遠(yuǎn)程信息處理Linux操作系統(tǒng)解析 0次下載
- Linux 與 DSP BIOS 雙 OS 信號處理技術(shù) 0次下載
- 基于雙DSP的信號處理板的設(shè)計及其在SAR信號仿真中的應(yīng)用
- 數(shù)字信號量化處理極值方法解析
- 信號處理技術(shù)
- adc與模擬信號處理技術(shù) 296次閱讀
- 深度解析linux時鐘子系統(tǒng) 581次閱讀
- 示波器噪聲的信號處理技術(shù)研究 613次閱讀
- 基于MATLAB的信號處理系統(tǒng)與分析 1175次閱讀
- 信號分析和信號處理必須遵循的原則 1176次閱讀
- 信號分析和信號處理的基本方法有哪些 3028次閱讀
- 信號分析和信號處理的區(qū)別 966次閱讀
- 電子裝聯(lián)技術(shù)解析 984次閱讀
- 淺談差分處理和信號分析 2160次閱讀
- 過采樣技術(shù)在通信信號處理中的應(yīng)用 5571次閱讀
- Chrome OS設(shè)備即將允許用戶自行選擇Linux的發(fā)行版了嗎 2378次閱讀
- Linux常見故障的緊急處理方法分享 3254次閱讀
- 數(shù)字信號處理技術(shù)的優(yōu)點(diǎn)分析 1.2w次閱讀
- DSP是什么?詳解DSP又稱數(shù)字信號處理器 4.8w次閱讀
- 高性能信號處理通用平臺研究 1828次閱讀
下載排行
本周
- 1DC電源插座圖紙
- 0.67 MB | 2次下載 | 免費(fèi)
- 2AN158 GD32VW553 Wi-Fi開發(fā)指南
- 1.51MB | 2次下載 | 免費(fèi)
- 3AN148 GD32VW553射頻硬件開發(fā)指南
- 2.07MB | 1次下載 | 免費(fèi)
- 4AN111-LTC3219用戶指南
- 84.32KB | 次下載 | 免費(fèi)
- 5AN153-用于電源系統(tǒng)管理的Linduino
- 1.38MB | 次下載 | 免費(fèi)
- 6AN-283: Σ-Δ型ADC和DAC[中文版]
- 677.86KB | 次下載 | 免費(fèi)
- 7SM2018E 支持可控硅調(diào)光線性恒流控制芯片
- 402.24 KB | 次下載 | 免費(fèi)
- 8AN-1308: 電流檢測放大器共模階躍響應(yīng)
- 545.42KB | 次下載 | 免費(fèi)
本月
- 1ADI高性能電源管理解決方案
- 2.43 MB | 450次下載 | 免費(fèi)
- 2免費(fèi)開源CC3D飛控資料(電路圖&PCB源文件、BOM、
- 5.67 MB | 138次下載 | 1 積分
- 3基于STM32單片機(jī)智能手環(huán)心率計步器體溫顯示設(shè)計
- 0.10 MB | 130次下載 | 免費(fèi)
- 4使用單片機(jī)實(shí)現(xiàn)七人表決器的程序和仿真資料免費(fèi)下載
- 2.96 MB | 44次下載 | 免費(fèi)
- 53314A函數(shù)發(fā)生器維修手冊
- 16.30 MB | 31次下載 | 免費(fèi)
- 6美的電磁爐維修手冊大全
- 1.56 MB | 24次下載 | 5 積分
- 7如何正確測試電源的紋波
- 0.36 MB | 17次下載 | 免費(fèi)
- 8感應(yīng)筆電路圖
- 0.06 MB | 10次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935121次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計
- 1.48MB | 420062次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233088次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191367次下載 | 10 積分
- 5十天學(xué)會AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183335次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81581次下載 | 10 積分
- 7Keil工具M(jìn)DK-Arm免費(fèi)下載
- 0.02 MB | 73810次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65988次下載 | 10 積分
評論