在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

多核異構處理器中A核與M核通信過程的解析

安芯教育科技 ? 來源:飛凌嵌入式 ? 作者:飛凌嵌入式 ? 2023-02-10 16:50 ? 次閱讀

隨著市場對嵌入式設備功能需求的提高,市面上出現了集成嵌入式處理器和單片機的主控方案,以兼顧性能和效率。

在實際應用中,嵌入式處理器和單片機之間需要進行大量且頻繁的數據交換,如果采用低速串行接口,則數據傳輸效率低,這將嚴重影響產品的性能;而如果采用高速并口,則占用管腳多,硬件成本將會增加。

為解決這一痛點,各大芯片公司陸續推出了兼具A核和M核的多核異構處理器,如NXP的i.MX8系列、瑞薩的RZ/G2L系列以及TI的AM62x系列等等。雖然這些處理器的品牌及性能有所不同,但多核通信原理基本一致,都是基于寄存器和中斷傳遞消息,基于共享內存傳輸數據

以配電終端產品為例,A核負責通訊和顯示等人機交互任務,M核負責采樣和保護等對實時性要求較高的任務,雙核間交互模擬量、開關量和錄波文件等多種信息,A核+M核的方案既滿足了傳統采樣保護功能,又支持多種接口通信及新增容器等功能,符合國家電網現行配電標準。

2ecccf50-a91a-11ed-bfe3-dac502259ad0.png

通信過程整體架構說明

接下來小編將以NXP的i.MX8MP為例,借助飛凌OKMX8MP-C開發板分別從硬件層、驅動層、應用層介紹大致的通信實現流程以及實測效果

1. 硬件層通信實現機制

通過物理內存DDR分配,將硬件層分為了兩部分:TXVring Buffer(發送虛擬環狀緩沖區)RXVring Buffer(接收虛擬環狀緩沖區);其中M核從TXVring區發送數據,從RXVring區讀取接收數據,A核反之。

處理器支持消息傳遞單元(MessagingUnit,簡稱MU)功能模塊,通過MU傳遞消息進行通信和協調,芯片內的M7控制核和A53處理核通過通過寄存器中斷的方式傳遞命令,最多支持4組MU雙向傳遞消息,既可通過中斷告知對方數據傳遞的狀態,也可發送最多4字節數據,還可在低功耗模式下喚醒對方,是保證雙核通信實時性的重要手段。

2f10e85c-a91a-11ed-bfe3-dac502259ad0.png

寄存器輸入輸出通信模型

(1)CoreA寫入數據;

(2)MU將Tx 空位清0,Rx滿位置1;

(3)產生接收中斷請求,通知CoreB接收狀態寄存器中的接收器滿,可以讀取數據;

(4)CoreB響應中斷,讀取數據;

(5)CoreB讀完數據后,MU將Rx滿位清0,Tx空位置1;

(6)狀態寄存器向CoreA生成發送中斷請求,告知CoreB讀完數據,發送寄存器空。

通過以上步驟,就完成了1次從CoreA向CoreB 傳遞消息的過程,反之亦然。

2. 驅動層Virtio下RPMsg通信實現

Virtio是通用的IO虛擬化模型,位于設備之上的象層,負責前后端之間的通知機制和控制流程,為異構多核間數據通信提供了層的實現。

RPMsg消息框架是Linux系統基于Virtio緩存隊列實現的主處理核和協處理核間進行消息通信的框架,當客戶端驅動需要發送消息時,RPMsg會把消息封裝成Virtio緩存并添加到緩存隊列中以完成消息的發送,當消息總線接收到協處理器送到的消息時也會合理地派送給客戶驅動程序進行處理。

在驅動層,對A核,Linux采用RPMsg框架+Virtio驅動模型,將RPMsg封裝為了tty文件供應用層調用;在M核,將Virtio移植,并使用簡化版的RPMsg,因為涉及到互斥鎖和信號量,最終使用FreeRTOS完成過程的封裝,流程框圖如下方所示。

2f3ab164-a91a-11ed-bfe3-dac502259ad0.png

主處理核與協處理核數據傳遞流程圖

(1)Core0向Core1發送數據,通過rpmsg_send函數將數據打包至Virtioavail鏈表區;

(2)在avail鏈表尋找共享內存中空閑緩存,將數據置于共享內存中;

(3)通過中斷通知Core1數據到來,共享內存由avail鏈表區變至used區;

(4)Core1收到中斷,觸發rpmsg的接收回調函數,從used區獲取數據所在的共享內存的物理地址,完成數據接收;

(5)通過中斷通知Core0數據接收完成,共享內存緩存由used區變為avail區,供下次傳輸使用。

3. 應用層雙核通信實現方式

在應用層,對A核可使用open、writeread函數對 /dev下設備文件進行調用;對M核,可使用rpmsg_lite_remote_init、rpmsg_lite_sendrpmsg_queue_recv函數進行調用,不做重點闡述。

4. 實際使用效果

通過程序實測,M核和A核可以批量傳輸大數據。同樣以配電產品為例——128點采樣的錄波文件大約為43K,若通過傳統的串行總線傳輸方式,需要數秒才可完成傳輸。

使用i.MX8MP的雙核異構通信方案,只需要不到0.5秒即可傳輸完成,數據傳輸效率提升數十倍!同時還避免了串行總線易受EMC干擾的問題,提高了數據傳輸穩定性,簡化了應用編程,可滿足用戶快速開發的需求。





審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 處理器
    +關注

    關注

    68

    文章

    19686

    瀏覽量

    232688
  • 單片機
    +關注

    關注

    6057

    文章

    44807

    瀏覽量

    644201
  • MPU
    MPU
    +關注

    關注

    0

    文章

    398

    瀏覽量

    49494
  • 嵌入式設備
    +關注

    關注

    0

    文章

    115

    瀏覽量

    17297

原文標題:MPU進化,多核異構處理器有多強?A核與M核通信過程解析

文章出處:【微信號:Ithingedu,微信公眾號:安芯教育科技】歡迎添加關注!文章轉載請注明出處。

收藏 0人收藏

    評論

    相關推薦

    多核異構AM通信過程

    目前域控項目有的采用S32G這類多核異構的芯片,轉載一篇分析下多核異構A
    的頭像 發表于 10-31 11:09 ?1624次閱讀
    <b class='flag-5'>多核</b><b class='flag-5'>異構</b><b class='flag-5'>中</b><b class='flag-5'>A</b><b class='flag-5'>核</b>與<b class='flag-5'>M</b><b class='flag-5'>核</b><b class='flag-5'>通信</b><b class='flag-5'>過程</b>

    創龍帶您解密TI、Xilinx異構多核SoC處理器間通訊

    促進進程間通信的模塊。通信包括消息傳遞、流和鏈接列表。這些模塊提供的服務和功能可用于異構多核SoC處理器
    發表于 09-08 09:39

    ARM多核處理器不同的是否可配置為純REE環境

    請教:ARM多核處理器不同的是否可配置為純REE環境和(REE+TEE)或純TEE環境?實現“不同CPU的REE與TEE同時并行運行,
    發表于 09-05 15:55

    通信(IPC)解決方案

    ;Processor 1:從Share Memory的指定地址讀取消息;Processor 1:處理接收到的消息??偨Y核間通信廣泛應用于TI的多核
    發表于 11-03 07:26

    MPU進化,多核異構處理器有多強?

    秒即可傳輸完成,數據傳輸效率提升數十倍!同時還避免了串行總線易受EMC干擾的問題,提高了數據傳輸穩定性,簡化了應用編程,可滿足用戶快速開發的需求。以上就是關于多核異構處理器
    發表于 11-21 09:45

    A+M通信過程解析

    數據傳輸效率低,這將嚴重影響產品的性能;而如果采用高速并口,則占用管腳多,硬件成本將會增加。為解決這一痛點,各大芯片公司陸續推出了兼具AM
    發表于 11-23 15:09

    【玩轉多核異構處理器對共享外設和資源的調配方法

    多核異構CPU,多個內核就如同多個大腦,而外設和內存等資源就如同手足,那么多個大腦該如何控制手足才能保證它們正常有序地運行呢?以NXP i.MX8M Plus
    發表于 02-07 15:46

    基于OKMX8MP-C板的多核異構處理器對外設和內存資源的使用方法

    多核異構CPU,多個內核就如同多個大腦,而外設和內存等資源就如同手足,那么多個大腦該如何控制手足才能保證它們正常有序地運行呢?以NXP i.MX8M Plus
    發表于 02-21 15:05

    多核異構-M程序的啟動、編寫和仿真

    文章,小編就將以飛凌嵌入式的OKMX8MP-C開發板為例,為大家介紹多核異構處理器M程序的啟動配置、程序編寫和實時仿真的
    發表于 02-21 16:08

    多核異構處理器對共享外設和資源的調配方法

    多核異構CPU,多個內核就如同多個大腦,而外設和內存等資源就如同手足,那么多個大腦該如何控制手足才能保證它們正常有序地運行呢?以NXP i.MX8M Plus
    發表于 03-10 11:54

    嵌入式異構多核的片上通信架構設計

    為了克服目前嵌入式異構多核處理器的片上通信架構無法提供高效的異構多核協作架構的問題,本文分析了嵌
    發表于 12-04 11:30 ?26次下載

    基于SystemC的異構多核通信模塊設計

    通過分析異構多核體系片上處理通信,采用共享
    發表于 01-20 15:01 ?10次下載

    基于SystemC的異構多核通信模塊設計

    通過分析異構多核體系片上處理通信,采用共享
    發表于 07-17 16:51 ?19次下載

    探究一種新的可配置處理器異構多核線程級動態調度模型

    本文針對基于可配置處理器異構多核結構,提出一種新的線程級動態調度模型。此類異構多核系統每個
    的頭像 發表于 04-27 18:20 ?2211次閱讀

    MPU進化,多核異構處理器有多強?AM通信過程解析

    數據傳輸效率低,這將嚴重影響產品的性能;而如果采用高速并口,則占用管腳多,硬件成本將會增加。為解決這一痛點,各大芯片公司陸續推出了兼具AM
    的頭像 發表于 11-21 14:42 ?1237次閱讀
    MPU進化,<b class='flag-5'>多核</b><b class='flag-5'>異構</b><b class='flag-5'>處理器</b>有多強?<b class='flag-5'>A</b><b class='flag-5'>核</b>與<b class='flag-5'>M</b><b class='flag-5'>核</b><b class='flag-5'>通信</b><b class='flag-5'>過程</b><b class='flag-5'>解析</b>
    主站蜘蛛池模板: 超级碰碰青草免费视频92 | 狠狠色狠狠色综合日日32 | 国产精品成人观看视频国产奇米 | 日本在线观看高清不卡免v 日本在线观看永久免费网站 | 黄视频网站在线 | 欧美色视频在线 | 欧美色视频日本片免费高清 | 国产成人mv在线观看入口视频 | free欧美 | 国产播放啪视频免费视频 | 久久www成人看片 | 九九热在线视频观看 | 五月激情啪啪网 | 天天做天天做天天综合网 | 免费在线观看a视频 | 伊人狼人综合网 | 日韩一级欧美一级一级国产 | www五月| 色综合久久中文字幕网 | 在线播放视频网站 | 亚洲欧美色图 | 三级精品 | 国产―笫一页―浮力影院xyz | 色多多拼多多网站 | 在线免费观看色视频 | www网站在线观看 | 天天综合色网 | 国产国产人免费人成免费视频 | 久久夜色精品国产尤物 | 日韩一级一片 | 国产精品久久久久久久久kt | 成人亚洲网站www在线观看 | 日本一卡二卡≡卡四卡精品 | 日本三级人妇 | 口述他拿舌头进去我下面好爽 | 999久久久免费精品国产牛牛 | 种子 在线播放 | 色老头影视 | 大桥未久加勒比女热大陆在线 | 人操人碰 | 欧美日本一区二区三区道 |

    電子發燒友

    中國電子工程師最喜歡的網站

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術信息
    • 參加活動獲取豐厚的禮品