資料介紹
在系統性能與編程簡易性之間的權衡折中是通用操作系統與實時操作系統之間的主要區分點之一。
GPOS(通用操作系統)傾向于提供較高程度的資源抽象,這不僅可通過支持軟件模塊與資源隔離來提高應用的便攜性、簡化開發流程,同時還能增強系統的穩健性,這使 GPOS 成為諸如網絡、用戶界面以及顯示管理等通用系統組件的理想選擇。
然而,該抽象需要以系統資源的精細粒度控制作為代價,以滿足信號處理代碼等高強度算法的計算性能要求。對于實現這種高級別的控制,開發人員通常需要采用實時操作系統 (RTOS)。
從嵌入式信號處理角度上講,我們通常要考慮兩種類型的操作系統,即通用操作系統 Linux 與實時操作系統DSP(數字信號處理器)/BIOS(基本輸入輸出系統)。Linux 可支持更高水平的抽象技術,而 DSP/BIOS 則可提供更精細的控制。
為了充分發揮這兩種操作系統的優勢,開發人員可采用系統虛擬機,這就使編程人員可在同一 DSP 處理器上同時運行 Linux 與 DSP/BIOS 系統。
然而,我們要提出一個重要的問題:為什么不使用分別運行 Linux 與 DSP/BIOS 系統的 CPU+DSP 組合器件呢?畢竟,CPU 在運行用戶接口控制代碼等方面具有更高的效率。此外,不同的內核可避免虛擬化帶來的開銷。不過,在同一顆芯片上集成所有功能還是很有吸引力的,原因如下:
其一,當今高性能 DSP 比前代 DSP 要強大得多,這樣可減少控制處理周期數。其二,大多數高性能 DSP 的通用性能均比前代產品更強,從而可實現更高效的控制代碼處理工作。
如果所有功能都可集成在 DSP 上,那么其優勢將更加出眾。更少的芯片數量可實現更低的成本與更小的占用空間。此外,由于不再需要在耗費大量電力的處理器間數據傳輸,因此還可降低能耗。
進度安排
操作系統最常見也是最有利的一個特性就是能同時執行多個任務或多個線程。操作系統通過時間表管理內核處理,以連續執行相關任務。
以往,嵌入式編程人員在使用 Linux 時會擔心實時性能較低的問題。不過,對 Linux 內核的最新增強顯著提高了其對系統事件的響應能力,從而使其可滿足各種企業與個人以及嵌入式產品的需求。
Linux 可實現線程的時間切片以及優先次序的時間安排。時間切片技術是指在所有線程之間共享處理工作周期,以確保無封鎖線程。這種方法通常適用于用戶接口功能,以確保在系統超載、響應較慢的情況下也不至于完全丟失用戶功能。
與此形成對比的是,優先次序線程時間安排技術則可確保系統中最高優先級線程的執行,直至該線程放棄控制為止,這時下一個最高優先級的線程即開始執行。
Linux 內核在每次從內核到用戶模式的轉換時都會對可用線程的優先級進行重新評估,這就意味著內核最新評估的任何事件(如驅動程序上數據的可用性)都能立即觸發新線程(調度器的時延響應時間內)的轉換。由于確定了基于優先級的線程,其通常用于必須滿足實時要求的信號處理應用。
在推出 Linux 內核 2.6 版本之前,制約實時性能的主要因素是 Linux 內核會禁用中斷,且禁用時間有時會長達數百毫秒。
就此而言,我們可以提高內核實施的效率。因為在禁用中斷時,代碼的某些部分無需重新進入,而這會增加中斷響應的時延。
目前的 2.6 版本提供了構建選項,可在整個內核代碼中以更高的頻率插入中斷再啟用指令。Linux 社區通常將該特性稱作先占內核 (preempt kernel),盡管這會讓內核性能略有下降,但卻能夠顯著提高實時性能。對于眾多系統任務而言,在先占性 Linux 2.6 內核與實時線程結合使用時,將能提供足夠的性能來滿足實時需求。
例如,德州儀器 (TI) 的 DSP/BIOS 以軟件中斷和任務的形式僅支持優先級調度。與 Linux 調度器一樣,軟件中斷和任務都屬于先占型的。但是,DSP/BIOS 也為應用編程人員提供了直接存取硬件中斷的條件,該資源僅適用于 Linux 內核模式。
直接存取硬件中斷使應用編程人員可在理論上實現底層硬件所支持的最短時延響應。對控制環路等需要絕對最低時延的應用而言,這種精細粒度的硬件中斷控制機制通常是一種非常重要的特性。
受保護的資源訪問
Linux 與大多數通用操作系統的一個基本屬性就是用戶空間程序與所用的底層系統資源相分離。僅在工作處于監控(如內核)模式下時才允許直接訪問存儲器和設備外設。
如果用戶程序希望訪問系統資源,那么它必須通過稱作驅動器的內核模塊從內核發出請求。該應用位于用戶存儲器空間,并將通過虛擬文件訪問驅動程序。然后,虛擬文件將應用的請求轉至驅動器執行的內核存儲器空間。
Linux 可提供特性極為豐富的驅動器模型,其中包括標準流媒體外設、模塊存儲設備以及文件系統,甚至還包括網絡與基于網絡的文件系統。
驅動器與用戶空間應用的分離可實現高度的穩健性。此外,通用驅動器接口上的抽象水平使其便于將數據流傳輸給串行端口、閃存文件系統或網絡共享文件夾,且僅需對底層應用代碼稍作更改。
然而,實現這種靈活性需要付出代價。應用與物理資源的嚴格分離會加大開銷。如果用戶空間程序要訪問設備外設,則內核模式必須進行環境交換才能處理該請求。
由于數據是成塊訪問,而非逐個樣本 (sample-by-sample) 訪問,因此通常來說這不會造成太大的局限性。這樣,內核模式下每次塊訪問僅需進行一次環境交換即可。
但是,在某些情況下,應用代碼需與物理硬件嚴格匹配。如果使用 DSP 等對數據吞吐量要求較高且不能容忍停頓的高性能處理器時,通常就會出現此類情況。這時,內核空間的物理資源與用戶空間的應用相分離的做法就可能會嚴重影響系統性能。
應用與硬件的匹配
我們不妨使用 TMS320DM643x 處理器架構來研究在執行塊視頻處理時會遇到的典型情況,該架構采用一個 600 MHz / 4800 MIPS DSP 處理內核以及諸如功能豐富的視頻端口子系統等各種多媒體外設。這種硬件通常用于將輸入視頻流進行 H.264 格式壓縮。
為了充分發揮 DSP 內核的處理能力,處理的數據應從周期操作內部存儲器讀取,而不是從速度較慢的外部存儲器讀取。盡管在技術上可以讓具有足夠快的片上存儲器的處理器存儲一個或多個完整的視頻幀,但這種技術對大多數目標市場來說成本太高。因此,采用可提供 80kB 的單周期操作片上數據存儲器的處理器取而代之。
GPOS(通用操作系統)傾向于提供較高程度的資源抽象,這不僅可通過支持軟件模塊與資源隔離來提高應用的便攜性、簡化開發流程,同時還能增強系統的穩健性,這使 GPOS 成為諸如網絡、用戶界面以及顯示管理等通用系統組件的理想選擇。
然而,該抽象需要以系統資源的精細粒度控制作為代價,以滿足信號處理代碼等高強度算法的計算性能要求。對于實現這種高級別的控制,開發人員通常需要采用實時操作系統 (RTOS)。
從嵌入式信號處理角度上講,我們通常要考慮兩種類型的操作系統,即通用操作系統 Linux 與實時操作系統DSP(數字信號處理器)/BIOS(基本輸入輸出系統)。Linux 可支持更高水平的抽象技術,而 DSP/BIOS 則可提供更精細的控制。
為了充分發揮這兩種操作系統的優勢,開發人員可采用系統虛擬機,這就使編程人員可在同一 DSP 處理器上同時運行 Linux 與 DSP/BIOS 系統。
然而,我們要提出一個重要的問題:為什么不使用分別運行 Linux 與 DSP/BIOS 系統的 CPU+DSP 組合器件呢?畢竟,CPU 在運行用戶接口控制代碼等方面具有更高的效率。此外,不同的內核可避免虛擬化帶來的開銷。不過,在同一顆芯片上集成所有功能還是很有吸引力的,原因如下:
其一,當今高性能 DSP 比前代 DSP 要強大得多,這樣可減少控制處理周期數。其二,大多數高性能 DSP 的通用性能均比前代產品更強,從而可實現更高效的控制代碼處理工作。
如果所有功能都可集成在 DSP 上,那么其優勢將更加出眾。更少的芯片數量可實現更低的成本與更小的占用空間。此外,由于不再需要在耗費大量電力的處理器間數據傳輸,因此還可降低能耗。
進度安排
操作系統最常見也是最有利的一個特性就是能同時執行多個任務或多個線程。操作系統通過時間表管理內核處理,以連續執行相關任務。
以往,嵌入式編程人員在使用 Linux 時會擔心實時性能較低的問題。不過,對 Linux 內核的最新增強顯著提高了其對系統事件的響應能力,從而使其可滿足各種企業與個人以及嵌入式產品的需求。
Linux 可實現線程的時間切片以及優先次序的時間安排。時間切片技術是指在所有線程之間共享處理工作周期,以確保無封鎖線程。這種方法通常適用于用戶接口功能,以確保在系統超載、響應較慢的情況下也不至于完全丟失用戶功能。
與此形成對比的是,優先次序線程時間安排技術則可確保系統中最高優先級線程的執行,直至該線程放棄控制為止,這時下一個最高優先級的線程即開始執行。
Linux 內核在每次從內核到用戶模式的轉換時都會對可用線程的優先級進行重新評估,這就意味著內核最新評估的任何事件(如驅動程序上數據的可用性)都能立即觸發新線程(調度器的時延響應時間內)的轉換。由于確定了基于優先級的線程,其通常用于必須滿足實時要求的信號處理應用。
在推出 Linux 內核 2.6 版本之前,制約實時性能的主要因素是 Linux 內核會禁用中斷,且禁用時間有時會長達數百毫秒。
就此而言,我們可以提高內核實施的效率。因為在禁用中斷時,代碼的某些部分無需重新進入,而這會增加中斷響應的時延。
目前的 2.6 版本提供了構建選項,可在整個內核代碼中以更高的頻率插入中斷再啟用指令。Linux 社區通常將該特性稱作先占內核 (preempt kernel),盡管這會讓內核性能略有下降,但卻能夠顯著提高實時性能。對于眾多系統任務而言,在先占性 Linux 2.6 內核與實時線程結合使用時,將能提供足夠的性能來滿足實時需求。
例如,德州儀器 (TI) 的 DSP/BIOS 以軟件中斷和任務的形式僅支持優先級調度。與 Linux 調度器一樣,軟件中斷和任務都屬于先占型的。但是,DSP/BIOS 也為應用編程人員提供了直接存取硬件中斷的條件,該資源僅適用于 Linux 內核模式。
直接存取硬件中斷使應用編程人員可在理論上實現底層硬件所支持的最短時延響應。對控制環路等需要絕對最低時延的應用而言,這種精細粒度的硬件中斷控制機制通常是一種非常重要的特性。
受保護的資源訪問
Linux 與大多數通用操作系統的一個基本屬性就是用戶空間程序與所用的底層系統資源相分離。僅在工作處于監控(如內核)模式下時才允許直接訪問存儲器和設備外設。
如果用戶程序希望訪問系統資源,那么它必須通過稱作驅動器的內核模塊從內核發出請求。該應用位于用戶存儲器空間,并將通過虛擬文件訪問驅動程序。然后,虛擬文件將應用的請求轉至驅動器執行的內核存儲器空間。
Linux 可提供特性極為豐富的驅動器模型,其中包括標準流媒體外設、模塊存儲設備以及文件系統,甚至還包括網絡與基于網絡的文件系統。
驅動器與用戶空間應用的分離可實現高度的穩健性。此外,通用驅動器接口上的抽象水平使其便于將數據流傳輸給串行端口、閃存文件系統或網絡共享文件夾,且僅需對底層應用代碼稍作更改。
然而,實現這種靈活性需要付出代價。應用與物理資源的嚴格分離會加大開銷。如果用戶空間程序要訪問設備外設,則內核模式必須進行環境交換才能處理該請求。
由于數據是成塊訪問,而非逐個樣本 (sample-by-sample) 訪問,因此通常來說這不會造成太大的局限性。這樣,內核模式下每次塊訪問僅需進行一次環境交換即可。
但是,在某些情況下,應用代碼需與物理硬件嚴格匹配。如果使用 DSP 等對數據吞吐量要求較高且不能容忍停頓的高性能處理器時,通常就會出現此類情況。這時,內核空間的物理資源與用戶空間的應用相分離的做法就可能會嚴重影響系統性能。
應用與硬件的匹配
我們不妨使用 TMS320DM643x 處理器架構來研究在執行塊視頻處理時會遇到的典型情況,該架構采用一個 600 MHz / 4800 MIPS DSP 處理內核以及諸如功能豐富的視頻端口子系統等各種多媒體外設。這種硬件通常用于將輸入視頻流進行 H.264 格式壓縮。
為了充分發揮 DSP 內核的處理能力,處理的數據應從周期操作內部存儲器讀取,而不是從速度較慢的外部存儲器讀取。盡管在技術上可以讓具有足夠快的片上存儲器的處理器存儲一個或多個完整的視頻幀,但這種技術對大多數目標市場來說成本太高。因此,采用可提供 80kB 的單周期操作片上數據存儲器的處理器取而代之。
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- 基于MATLAB雷達信號采集及處理技術研究 12次下載
- 數字信號處理-時域離散隨機信號處理 55次下載
- 如何解析定時器產生的脈沖信號? 15次下載
- 數字信號處理概述說明 27次下載
- 數字信號處理應用論文講解 12次下載
- CCD信號處理電路的工作原理和使用CCD信號處理電路設計濾波器的說明 25次下載
- 嵌入式Linux與物聯網軟件開發C語言內核深度解析書籍的介紹
- 信號處理技術之數位控制系統相關問題的解析 8次下載
- 基于ARM9和linux OS的數據采集系統 3次下載
- 汽車遠程信息處理Linux操作系統解析 0次下載
- 達芬奇DMSoC硬件部分及Linux OS的啟動過程 0次下載
- Linux 與 DSP BIOS 雙 OS 信號處理技術 0次下載
- 基于雙DSP的信號處理板的設計及其在SAR信號仿真中的應用
- 數字信號量化處理極值方法解析
- 信號處理技術
- 高速信號處理的利器:DS30BA101差分緩沖器深度解析 135次閱讀
- Linux網絡管理的關鍵技術和最佳實踐 794次閱讀
- adc與模擬信號處理技術 1.3k次閱讀
- 示波器噪聲的信號處理技術研究 1.3k次閱讀
- 基于MATLAB的信號處理系統與分析 2.4k次閱讀
- 信號分析和信號處理必須遵循的原則 2.2k次閱讀
- 信號分析和信號處理的區別 2.2k次閱讀
- 淺談差分處理和信號分析 2.6k次閱讀
- 過采樣技術在通信信號處理中的應用 6.3k次閱讀
- Chrome OS設備即將允許用戶自行選擇Linux的發行版了嗎 2.9k次閱讀
- Linux常見故障的緊急處理方法分享 3.8k次閱讀
- LINUX是什么?LINUX運行所需的硬件/軟件 7.2k次閱讀
- 數字信號處理技術的優點分析 1.3w次閱讀
- DSP是什么?詳解DSP又稱數字信號處理器 5.1w次閱讀
- 高性能信號處理通用平臺研究 2.1k次閱讀
下載排行
本周
- 1MDD品牌三極管BC807數據手冊
- 3.00 MB | 次下載 | 免費
- 2MDD品牌三極管BC817數據手冊
- 2.51 MB | 次下載 | 免費
- 3MDD品牌三極管D882數據手冊
- 3.49 MB | 次下載 | 免費
- 4MDD品牌三極管MMBT2222A數據手冊
- 3.26 MB | 次下載 | 免費
- 5MDD品牌三極管MMBTA56數據手冊
- 3.09 MB | 次下載 | 免費
- 6MDD品牌三極管MMBTA92數據手冊
- 2.32 MB | 次下載 | 免費
- 7STM32G474 HRTIME PWM 丟波問題分析與解決
- 1.00 MB | 次下載 | 3 積分
- 8新能源電動汽車高壓線束的銅鋁連接解決方案
- 2.71 MB | 次下載 | 2 積分
本月
- 1愛華AIWA HS-J202維修手冊
- 3.34 MB | 37次下載 | 免費
- 2NB-IoT芯片廠商的資料說明
- 0.31 MB | 22次下載 | 1 積分
- 3PC5502負載均流控制電路數據手冊
- 1.63 MB | 22次下載 | 免費
- 4H110主板CPU PWM芯片ISL95858HRZ-T核心供電電路圖資料
- 0.63 MB | 6次下載 | 1 積分
- 5UWB653Pro USB口測距通信定位模塊規格書
- 838.47 KB | 5次下載 | 免費
- 6技嘉H110主板IT8628E_BX IO電路圖資料
- 2.61 MB | 4次下載 | 1 積分
- 7蘇泊爾DCL6907(即CHK-S007)單芯片電磁爐原理圖資料
- 0.04 MB | 4次下載 | 1 積分
- 8蘇泊爾DCL6909(即CHK-S009)單芯片電磁爐原理圖資料
- 0.08 MB | 2次下載 | 1 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935137次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233089次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191439次下載 | 10 積分
- 5十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183353次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81602次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73822次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65991次下載 | 10 積分
電子發燒友App





創作
發文章
發帖
提問
發資料
發視頻
上傳資料賺積分
評論