ARM-DSP通訊的多種方式
本檔案描述了TI多核裝置上的通訊方式。應用程式中的單個核心可以承擔主機/裝置或主/從的角色。這裡的討論假設主機/主叢集是執行SMP/Linux的ARM叢集,而裝置/從伺服器是執行TI-RTOS的C6xx DSP叢集。
OpenCL OpenCL是一個框架,用於編寫跨異構系統執行的程式,以及用於表示跨異構裝置分派平行計算的程式。這是一個開放的,沒有版稅的標準,由Khronos財團管理。在異構SoC上,OpenCL將其中一個可程式化核心視為主機,將其他核心視為裝置。執行在主機(即主機程式)上的應用程式管理裝置上程式碼(核心)的執行,並且還負責使資料可供裝置使用。裝置由一個或多個計算單元組成。在ARM和DSP SoC上,每個C66xDSP都是一個計算單元。OpenCL執行時由兩個元件組成:(1)用於主機程式建立和提交核心以供執行的API;(2)用於表示核心的跨平臺語言–OpenCL C–它基於C99 C,並附加和限制了OpenCL支援資料並行和任務並行程式設計範例。資料並行執行使裝置上的計算單元並行執行。任務並行執行允許向每個計算單元非同步分派任務。有關更多資訊,請參閱OpenCL使用者指南。 從執行Linux或RTOS的ARM到DSP的解除安裝計算
優點 方便裝置之間的移植,不需要理解記憶體體系結構; 不需要擔心MPAX和MMU; 不需要擔心一致性; 不需要在ARM和DSP之間建立/設定/使用IPC;無需成為DSP程式碼、體系結構或優化方面的專家
缺點: 不能控制系統記憶體佈局等,以處理優化的DSP程式碼
DCE (Distributed Codec Engine) 分散式編解碼引擎 DCE框架為使用者在裝置(如AM57xx)上編寫應用程式提供了一種簡單的方法,該裝置具有用於影象和視訊的硬體加速器。它為從核上的音訊和視訊編碼和解碼提供了對硬體加速的遠端存取。基於ARM使用者空間GStreer的多媒體應用程式使用GStreer庫載入並與TI GStreer外掛介面,該外掛處理硬體加速器所特有的所有細節。外掛介面libdce模組,它提供ARM使用者空間API。Libdce在ARM上使用RPMSG框架,與從核上的對應方通訊。在從核上,採用編解碼引擎和幀元件在IVA上進行視訊/影象編解碼處理。
使用DCEA57xx作為範例的多媒體軟體堆疊的概述具有以下加速器 影象和視訊加速器(IVA) 視訊處理引擎(VPE) 用於解除安裝特定影象/視訊和/或語音/音訊處理的C66XDSP核心
使用者可以利用開源元素來提供諸如AVI流解碼和音訊編解碼等功能。這些元素以及TI處理器LinuxSDK中基於ARM的GStreer外掛提供了加速器解除安裝的摘要。 在AM57xx中,硬體加速器具有以下功能:
用於多媒體加密和解碼的IVA視訊解碼:H264、MPEG-4、MPEG2和VC1 視訊編碼:H264和MPEG-4 影象解碼:MJPEGVGE用於視訊操作,例如縮放、顏色空間轉換和去隔行以下格式:支援的輸入格式:NV12、YUYV、UYVY 支援的輸出格式:NV12、YUYV、UYVY、RGB24、ArgB24,和ABGR24用於解除安裝訊號處理的DSP整合在DSPGStreamer外掛中的範例影象處理核心:MEDIAN2X2、MEDIAN3X3、SOEL3X3、CONV5X5、CY 音訊/視訊或專用編解碼器對從核心的解除安裝處理
優點: 加速多媒體編解碼處理; 簡化了與GStreer和TI GStreer外掛介面時多媒體應用程式的開發。
缺點: 不適用於非編解碼器演演算法 需要工作來新增新的編解碼器演演算法 需要對DSP程式設計的知識
Big Data IPC 巨量資料是TI IPC實現的一個特殊用例,用於高效能運算應用程式和其他資料密集型應用程式,這些應用程式通常需要在SoC中的多核處理器之間傳遞巨量資料緩衝區。巨量資料IPC提供了一個高階抽象來處理巨量資料緩衝區上的地址轉換和快取同步。 ARM與DSP之間的大小大於512位元組的報文/資料交換
優化 能夠處理大於512位元組的資料 缺點 需要了解DSP記憶體體系結構 需要了解DSP的設定和程式設計 TI專利API。
IPC 處理器間通訊(IPC)是為方便程序間通訊而設計的一組模組.通訊包括訊息傳遞、流和連結列表。這些模組提供服務和功能,可用於多處理器環境下ARM和DSP處理器之間的通訊。 IPC模組初始化IPC的各個子系統,並同步多個處理器。 MessageQ模組支援可變長度訊息的結構化傳送和接收。 ListMP模組是一個基於連結串列的模組,旨在提供不同處理器之間的通訊方式。它使用共用記憶體為多個處理器提供共用、傳遞或儲存資料緩衝區、訊息或狀態資訊的方法。 HeapMP模組提供3種型別的記憶體管理、固定大小的緩衝區、多個不同的固定大小緩衝區和可變大小的緩衝區. GateMP模組通過其範例執行本地和遠端上下文保護。通知模組通過硬體中斷管理軟體中斷的複用/解複用。 SharedRegion模組設計用於多處理器環境中,其中存在跨不同處理器共用和存取的記憶體區域。列表模組支援建立雙連結的物件列表,MultiProc模組在多處理器環境中將處理器ID管理集中到一個模組中。 NameServerModule管理本地名稱/值對,這使得應用程式和其他模組能夠基於名稱來調整和檢索值。 ARM與DSP之間的訊息/資料交換 優點: 適合那些熟悉dsp程式設計 dsp程式碼優化的人。 缺點: 需要有關dsp記憶體結構的知識, 需要了解dsp的設定和程式設計訊息大小 僅限於512位元組 TI專有api。 多種通訊模式比較
6.決策 在作出使用ARM/DSP通訊方法的決策時,提供了以下簡單流程圖作為參考。在決策過程中還需要考慮硬體能力,如在使用DCE時存在影象和視訊加速器。