物聯網的快速發展超出了幾乎所有人的想像,每天都有成千上萬的設備入網。面對如此龐大的市場需求,傳統技術早已不堪重負,而對新一代的數字信號處理提出了高運算能力和低功耗等更多要求。(本文的觀點是,搭載RTOS的新一代混合型DSP技術,是物聯網的最佳選擇) ? 隨著新市場及其對新技術需求的快速增長,一些技術的利用率越來越高。數字信號處理(DSP)就是這樣一種技術,其形式可以是芯片,也可以作為系統級芯片(SoC)的IP核。雖然DSP已經存在很長時間了,但新一代DSP所支持的功能,對于滿足某些特定市場需求來說非常重要,比如IoT(物聯網)。鑒于許多物聯網設備的固有性質,通常都會使用實時操作系統(RTOS)。
DSP技術演進
DSP被用來轉換和處理現實世界中的模擬信號,這種處理操作是通過復雜的信號處理算法來完成的。作為上世紀80年代就出現的技術,DSP在硬件功能和軟件開發工具以及基礎設施方面,已取得很大發展。早年的算法是用匯編語言編程到DSP上的。隨著DSP市場的擴大以及算法變得越來越復雜,其架構也在不斷發展,并促進了高級語言編譯器的開發。 帶嵌入式DSP內核的芯片,一般都集成有片內存儲器,其大小通常足以容納執行專用任務所需的整套程序。新一代DSP應用范圍涵蓋了音頻/語音處理、圖像處理、電信信號處理、傳感器數據處理和系統控制等。而如今的物聯網市場,則幾乎覆蓋了之前眾多用例的各種組合。行業分析公司Markets and Markets預計,到2027年,全球物聯網技術市場規模將增長到5664億美元。面對如此龐大的物聯網市場,新一代的DSP技術至關重要。
為什么DSP非常適合物聯網設備?
物聯網通過使用不同類型的傳感器收集數據,實現現實世界中萬物間的通信和連接。DSP對來自傳感器的連續變化信號進行分析和處理。如今,已出現傳感器hub DSP(如CEVA-SensPro2),就是用來處理和融合多個傳感器信息的,并用于上下文感知的神經網絡推理。DSP設計用于分析和處理音視頻、溫度、壓力或濕度等現實世界中的各類信號,其任務涉及精確和準確的實時重復數字計算。隨著物聯網市場的增長,越來越多的傳感器得到部署,收集到的所有數據都需要得到高效的實時處理。如今越來越清晰的跡象表明,數據處理需要在物聯網設備上直接進行,而不是將其發送到云端進行處理。 目前正在發生的另一個事關物聯網設備的趨勢是,越來越多地使用基于人工智能(AI)的算法完成數據的本地化處理。人工智能算法基于神經網絡模型,需要高水平的并行能力才能有效執行。并行計算能力是DSP優于通用中央處理器(CPU)的一個關鍵優勢。為了滿足這一要求,現代DSP架構傾向于使用寬向量和單指令多數據(SIMD)功能。 簡而言之,基于DSP的強大解決方案,可以同時滿足現代物聯網設備的高性能計算和低功耗需求。
為什么DSP與RTOS很匹配?
正如DSP是一種專用處理器一樣,RTOS也是一種專用操作系統。DSP致力于極其快速和可靠地處理現實世界的數據,而RTOS則致力于可靠地滿足響應/反應時間方面的特定時序要求。DSP與通用CPU相比更緊湊,RTOS與常規操作系統相比也是如此。這些特性完全符合物聯網設備的需求,因而使得DSP和RTOS成為物聯網應用的理想之選。 從歷史上看,嵌入式設備一般會利用一個專門用途、通常為8位或16位的微控制器,可以在沒有RTOS的情況下工作。但如今的物聯網設備更加復雜,需要一個32位CPU與帶有RTOS的DSP相結合,來管理控制功能,并運行復雜的信號處理。 但問題是,新一代DSP是否足以同時完成物聯網設備的信號處理和控制功能?答案是肯定的。一種能夠提供面向DSP功能和面向控制器功能的混合DSP架構,正在迅速被物聯網和其他嵌入式設備所采用。這種混合DSP具有支持超低指令字(VLIW)架構實現、單指令多數據(SIMD)操作、單精度浮點運算、緊湊的代碼規模、全RTOS、超快速上下文切換、動態分支預測等特點,從而設備上不再需要額外的處理器來運行RTOS。
面向DSP的RTOS
基于DSP的RTOS旨在充分利用DSP的高性能特性。它是一個先占式、基于優先級的多任務操作系統,可提供非常低的中斷延遲。這類RTOS附帶驅動程序、應用程序編程接口(API)、以及為DSP芯片定制的DSP功能運行芯片支持庫(CSL)。所有片上外設都可以被控制,比如高速緩存、直接內存訪問(DMA)、定時器、中斷單元等。因此,物聯網應用程序開發人員能夠輕松地配置RTOS,從而高效處理資源請求和管理系統。
面向物聯網的RTOS:RT-Thread
RT-Thread是一款專為物聯網設備優化的開源RTOS,資源占用率極低、可靠性高、可擴展性強。RT-Thread得到物聯網設備所需豐富的中間件、硬件以及軟件生態系統的廣泛支持。 RT-Thread支持GCC、Keil、IAR等所有主流編譯工具,支持POSIX、CMSIS、C++應用環境、以及Micropython、Javascript等多種標準接口。 RT-Thread還為所有主流CPU和DSP架構提供強大的支持。通過RTOS消息傳遞線程間的通信和同步、信號旗語等業務可得到始終如一的高效處理。 目前,RT-Thread有兩個版本。一個是用于資源豐富的物聯網設備的標準版,而另一個則為Nano版,用于資源受限的系統。
DSP與RT-Thread的完美結合
某些DSP(如CEVA DSP)架構設計,原生就支持RTOS功能和超快速上下文切換,因此使用CEVA DSP和RT-Thread RTOS實現的物聯網設備,可以不中斷RTOS,同時處理不同資源之間的多種通信任務。例如,多核通信接口(MCCI)機制支持內核之間的命令通信和消息傳遞。內核之間的通信是通過使用AXI從端口直接訪問專用命令寄存器來實現的。DSP有專門的控制和指令,可以通過MCCI跟蹤通信的狀態。 ?
多核通信接口架構。(來源:CEVA)
通過使用均為32位的MCCI_NUM專用命令寄存器來執行內核之間的消息傳遞。32位COM_REGx寄存器由外部內核通過AXI從端口寫入,內核只能讀取。對于128位AXI總線,命令生成內核可以同時寫入的寄存器多達四個,而對于256位AXI總線,該數目則增至八個。 當生成命令的內核將命令輸出到COM_REGx時,尋址寄存器將會被更新,COM_STS寄存器中的相關狀態位也會被更新。此外,中斷(MES_INT)將被確認以通知接收內核。
當接收內核讀取其中一個COM_REGx寄存器后,會向發起方發送一個讀取指示信號。讀取指示信號由接收內核使用專用的RD_IND(讀取指示)MCCI_NUM位總線接口發送。RD_IND總線的每一位分別表示來自其中一個COM_REGx寄存器的讀取操作。利用IO接口,接收內核一次只能讀取一個COM_REGx寄存器。這樣不僅使不同內核間同步變得更簡單,而且使同一內核中不同任務間的同步也變得更為容易。
審核編輯:劉清
評論
查看更多