題:
i.MX 7(或i.MX 6)多核處理器有哪些IPC機制?
Patrick
2015-08-03 19:48:51 UTC
view on stackexchange narkive permalink

我正在考慮將i.MX 7處理器用於新設計。至少從比較框圖來看,總體架構似乎與i.MX 6類似。

Cortex-M4內核與Cortex-A7內核之間存在哪些通信機制?現有的Linux內核是否提供了任何這樣的機制(可能假設特定的RTOS或M4上運行的固件),或者這是飛思卡爾產品中兩個處理器的定制固件?處理器似乎幾乎共享所有東西,因此我想您可以用原子信號或類似的東西實現共享內存緩衝區。

理想情況下,我希望M4固件“採用當A7處理器處於低功耗模式時(例如,管理定期的通信傳輸或進行一些數據分析,直到發生“有趣的”事情需要A7做某事)。從框圖和i.MX 6 SoloX參考手冊中可以看出,硬件並不能排除這種情況。

一 回答:
bnewbold
2015-08-05 04:56:09 UTC
view on stackexchange narkive permalink

在不同內核上運行不同內核(或裸機代碼)的多內核系統的通用術語是異步多處理( AMP )。其他相關術語是 異構計算(指同一系統中不同類型的多個內核)和多處理器片上系統( MPSoC )。

飛思卡爾恰巧有一個概述文檔(PDF)討論了與此類系統有關的一些術語和設計問題,這可能很好作為背景,儘管它正在討論不同的操作系統(QNX)和產品線(PowerPC)。經常討論的自由軟件組合是處理器上的Linux和微控制器上的 FreeRTOS。飛思卡爾和其他廠商的幾種現有芯片都具有類似於i.MX7的架構,例如TI的 OMAP 4/5。在Xilinx的雙核Zynq ARM + FPGA芯片上還有很多關於AMP的討論和示例代碼

自2012年以來,主線Linux內核一直具有可選支持。用於遠程處理器(remoteproc)和遠程處理器消息(rpmsg)框架。 remoteproc是Linux內核控制“遠程”內核(電源開/關,加載固件)的通用接口。 rpmsg是在內核之間發送消息的通用接口。鏈接的文檔頁面詳細介紹了它們的API,並提供了更多的上下文。開發人員將需要使用此框架來編寫定制的特定於應用程序的Linux內核驅動程序,以將I / O暴露給用戶空間,然後需要編寫例如“說” rpmsg的FreeRTOS固件。 rpmsg框架通常似乎使用共享內存來實際實現內核之間的通信。

如果還不存在,我想飛思卡爾將很快發布i.MX7和Linux專用於AMP的文檔和示例。您可能要留意 Freescale Linux git存儲庫,因為它們實現了i.MX7支持。這些分支可能會在適當的時候合併到主線中。

我真的很好奇這是否真的是針對特定硬件的最佳實踐,以及有哪些替代方案。如果您遇到任何問題(例如,吞吐量或延遲)或了解更好的界面,請進行更新!


該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...