在多核異構SoC處理器中,核間數據的傳輸帶寬直接決定了系統整體性能。傳統通信方案存在數據“拷貝開銷大”、“帶寬受限”等瓶頸,高效的核間通信一直是開發者面臨的挑戰。
今天帶大家看看RK3576的AMP核間通信——共享內存方案,具有“零拷貝”、“高帶寬”的顯著優勢,直接解決用戶痛點,下面用實測數據說話!

▍共享內存方案優勢
零拷貝“共享內存方案”能夠讓不同核心直接訪問同一塊物理內存,實現了真正的零拷貝傳輸,大幅降低了數據傳輸延遲。
數據量大“共享內存方案”的共享內存區域大小,可根據實際需求靈活配置,從幾十MB到幾百MB都可以,能夠滿足各種大數據量傳輸需求。
配合RPMsgMaster Core與Remote Core在完成共享內存的讀寫操作后,可通過RPMsg通知對方進行數據處理,實現了高效、可靠的核間通信。RK3576處理器A72、A53與M0核間通信中的RPMsg消息包的發送耗時與時延,實測可做到2us,詳見下圖:

▍實測帶寬確實驚人
為了驗證共享內存方案的實際性能表現,我們針對“用戶內存空間?共享內存空間”的讀寫場景,分別測試了DMA、NEON、CPU三種主流內存拷貝方式的讀寫帶寬。

可以從上面看到:
DMA方式讀寫帶寬性能最優,實測讀帶寬高達2778MB/s,寫帶寬2760MB/s,表現穩定。
NEON和CPU方式在寫帶寬上表現出色,但讀帶寬就偏低。這是由于寫操作依托“寫合并(Write-Combining)”機制,能將多個小寫操作合并為單次、大數據傳輸,減少總線事務切換,因此寫帶寬表現亮眼。而讀操作無法合并,每次讀取需等待內存響應,導致讀帶寬顯著偏低。
▍拷貝方式怎么選
DMA、NEON、CPU這3種拷貝方式各有優劣,實際開發中無需盲目追求“最高帶寬”,應根據使用場景、資源占用情況進行選擇,這才是最優解。DMA:性能王者,CPU零負擔當傳輸數據量大、對帶寬要求高時,DMA是最佳選擇。它由專用硬件控制器執行數據搬運,不占用CPU資源。NEON:無DMA時的備選,CPU同樣零負擔一般處理器的DMA控制器資源有限,可能早已被占用。在沒有多余DMA控制器時,NEON方式是另一個不錯的選擇,它是CPU的輔助核,同樣不占用CPU資源,利用CPU的單指令多數據流技術,實現并行數據搬運。CPU:實現最簡單,但需消耗CPU資源對于小數據量傳輸,或者在對性能要求不高的簡單應用中,標準的CPU拷貝是最直接的選擇。它實現簡單,不需額外的硬件資源支持,適合輕量級任務。但由于它會占用CPU資源,因此復雜應用時不見得是最適合的方案。
審核編輯 黃宇
-
瑞芯微
+關注
關注
27文章
708瀏覽量
53628 -
Amp
+關注
關注
0文章
92瀏覽量
48344
發布評論請先 登錄
瑞芯微RK3588與RK3576技術參數詳解
瑞芯微RK3576平臺FFmpeg硬件編解碼移植及性能測試實戰攻略 觸覺智能RK3576開發板演示
全國產!瑞芯微 RK3576 ARM 八核 2.2GHz 工業開發板—LVGL應用開發案例

實測2778MB/s,AMP核間通信“快如閃電”,瑞芯微RK3576
評論