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時存在影像和視頻加速器,

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/181885.html
標籤:AI
