隨著新市場及其對新技術需求的快速增加,一些技術的利用率越來越高。數位訊號處理(DSP)就是這樣一種技術,其形式可以是晶片,也可以作為系統單晶片(SoC)的IP核心。雖然DSP已經存在很長時間,但新一代DSP所支援的功能,對於滿足某些特定市場需求來說非常重要,比如物聯網(IoT)。有鑑於許多物聯網裝置的既有性質,通常都會使用即時作業系統(RTOS)。
DSP技術演進
DSP被用來轉換和處理現實世界中的類比訊號,這種處理操作是透過複雜的訊號處理演算法來完成。作為自80年代以來就出現的技術,DSP在硬體功能和軟體發展工具,以及基礎設施方面,已經有了很大的發展。早年的演算法是用組合語言程式設計到DSP上,隨著DSP市場的擴大,以及演算法變得越來越複雜,其架構也在不斷發展,並促進了高階語言編譯器的開發。
具有嵌入式DSP核心的晶片,一般都整合片上記憶體,其大小通常足以容納執行專用任務所需的整套程式。新一代DSP應用範圍涵蓋了音訊/語音處理、影像處理、電信訊號處理、感測器資料處理和系統控制等,而如今的物聯網市場,則幾乎覆蓋了之前眾多用例的各種組合。市調機構Markets and Markets預計,到2027年,全球物聯網技術市場規模將成長到5,664億美元。面對如此龐大的物聯網市場,新一代的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位元的微控制器(MCU),可以在沒有RTOS的情況下工作。但如今的物聯網裝置更加複雜,需要一個32位元CPU與具備RTOS的DSP結合,來管理控制功能,並執行複雜的訊號處理。
但問題是,新一代DSP是否足以同時完成物聯網裝置的訊號處理和控制功能?答案是肯定的。一種能夠提供針對DSP的功能和控制器功能的混合DSP架構,正在迅速被物聯網和其他嵌入式裝置所採用。這種混合DSP支援超低指令字(VLIW)架構實現、單指令多資料(SIMD)操作、單精確度浮點運算、緊湊的程式碼規模、全RTOS、超快速上下文切換、動態分支預測等特點,從而裝置上不再需要額外的處理器來運作RTOS。
針對DSP的RTOS
基於DSP的RTOS旨在充分利用DSP的高性能特性。它是一個先佔式(preemptive)、基於優先順序的多工作業系統,可提供非常低的中斷延遲。這類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架構設計,原生就支援RTOS功能和超快速上下文切換,因此使用CEVA DSP和RT-Thread RTOS實現的物聯網裝置,可以不中斷RTOS,同時處理不同資源之間的多種通訊任務。例如,多核心通訊介面(MCCI)機制支援核心之間的命令通訊和消息傳遞。核心之間的通訊是透過使用AXI從埠直接訪問專用命令寄存器來實現,DSP有專門的控制和指令,可以利用MCCI追蹤通訊的狀態。
圖1:多核通訊介面架構。
(來源:CEVA)
透過使用均為32位元的MCCI_NUM專用命令寄存器來執行核心之間的消息傳遞。32位元COM_REGx寄存器由外部核心透過AXI從埠寫入,核心只能讀取,對於128位元AXI匯流排,命令生成核心可以同時寫入的寄存器多達4個,而對於256位元AXI匯流排,該數目則增至8個。
當生成命令的核心將命令輸出到COM_REGx時,定址寄存器將會被更新,COM_STS寄存器中的相關狀態位元也會被更新。此外,中斷(MES_INT)將被確認以通知接收核心。
當接收核心讀取其中一個COM_REGx寄存器後,會向發起方發送一個讀取指示訊號。讀取指示訊號由接收核心使用專用的RD_IND (讀取指示) MCCI_NUM位匯流排介面發送,RD_IND匯流排的每一位元分別表示來自其中一個COM_REGx寄存器的讀取操作。利用IO介面,接收核心一次只能讀取一個COM_REGx寄存器,這樣不僅使不同核心間同步變得更簡單,而且使同一核心中不同任務間的同步也變得更為容易。
(參考原文:Why advanced DSPs running RTOSs are an ideal match for the IoT,Ori Leibovich)
本文同步刊登於EE Times China 8月號雜誌
The post 為何執行RTOS的DSP是物聯網最佳選擇? appeared first on 電子工程專輯.