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

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

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

3天內(nèi)不再提示

多核異構(gòu)中A核與M核通信過程

832065824 ? 來源: 汽車電子嵌入式 ? 2023-10-31 11:09 ? 次閱讀

前言

目前域控項目有的采用S32G這類多核異構(gòu)的芯片,轉(zhuǎn)載一篇分析下多核異構(gòu)中A核與M核通信過程的文章。

正文

一、 硬件層通信實現(xiàn)原理

二、驅(qū)動層Virtio下RPMsg通信實現(xiàn)

三、應(yīng)用層雙核通信實現(xiàn)方式

現(xiàn)在越來越多的產(chǎn)品具有M core和A core的異構(gòu)架構(gòu),既能達到M核的實時要求,又能滿足A核的生態(tài)和算力。比如NXP的i.MX8系列、瑞薩的RZ/G2L系列以及TI的AM62x系列等等。雖然這些處理器的品牌及性能有所不同,但多核通信原理基本一致,都是基于寄存器和中斷傳遞消息,基于共享內(nèi)存?zhèn)鬏敂?shù)據(jù)。

7841ad42-7799-11ee-939d-92fbcf53809c.png

通信過程整體架構(gòu)說明

一、 硬件層通信實現(xiàn)原理

通過物理內(nèi)存DDR分配,將硬件層分為了兩部分:TXVring Buffer(發(fā)送虛擬環(huán)狀緩沖區(qū))和RXVring Buffer(接收虛擬環(huán)狀緩沖區(qū));其中M核從TXVring區(qū)發(fā)送數(shù)據(jù),從RXVring區(qū)讀取接收數(shù)據(jù),A核反之。

處理器支持消息傳遞單元(MessagingUnit,簡稱MU)功能模塊,通過MU傳遞消息進行通信和協(xié)調(diào),M核和A核之間通過寄存器中斷的方式傳遞命令,最多支持4組MU雙向傳遞消息,既可通過中斷告知對方數(shù)據(jù)傳遞的狀態(tài),也可發(fā)送最多4字節(jié)數(shù)據(jù),還可在低功耗模式下喚醒對方,是保證雙核通信實時性的重要手段。

下面看下完成了1次從CoreA向CoreB 傳遞消息的具體過程:

7859f852-7799-11ee-939d-92fbcf53809c.png

寄存器輸入輸出通信模型

(1)CoreA寫入數(shù)據(jù);
(2)MU將Tx 空位清0,Rx滿位置1;
(3)產(chǎn)生接收中斷請求,通知CoreB接收狀態(tài)寄存器中的接收器滿,可以讀取數(shù)據(jù);
(4)CoreB響應(yīng)中斷,讀取數(shù)據(jù);
(5)CoreB讀完數(shù)據(jù)后,MU將Rx滿位清0,Tx空位置1;
(6)狀態(tài)寄存器向CoreA生成發(fā)送中斷請求,告知CoreB讀完數(shù)據(jù),發(fā)送寄存器空。

二、驅(qū)動層Virtio下RPMsg通信實現(xiàn)

virtio 是一個通用的 I/O 虛擬化框架,位于設(shè)備之上的抽象層,負責前后端之間的通知機制和控制流程,為異構(gòu)多核間數(shù)據(jù)通信提供了層的實現(xiàn)。hypervisor 通過他模擬出一系列的虛擬化設(shè)備,例如:virtio-net、virtio-blk等,并使得這些設(shè)備在虛擬機內(nèi)部通過 api 調(diào)用的方式變得可用。它包含4個部分:前端驅(qū)動、后端驅(qū)動、 vring 及通信間統(tǒng)一的接口。與其他的模擬 I/O 方式對比, virtio 減少了虛擬機的退出和數(shù)據(jù)拷貝,能夠極大地提高 I/O 性能。計算機中存在不同的總線標準,而 virtio 采用的是 pci 總線(當然也可以用其他總線來實現(xiàn))。每一個 virtio 設(shè)備就是一個 pci 設(shè)備。

78661574-7799-11ee-939d-92fbcf53809c.png

virtio前端驅(qū)動

virtio 前端驅(qū)動位于 Linux 內(nèi)核中,運行在虛擬機 VM,針對不同類型的設(shè)備有不同類型的驅(qū)動程序,包括virtio-net、virtio-blk、virtio-pci等,這些驅(qū)動程序與后端驅(qū)動交互的接口都是統(tǒng)一的。

virtio層

virtio層實現(xiàn)虛擬隊列接口,作為前后端通信的橋梁,不同類型的設(shè)備使用的虛擬隊列數(shù)量不同,例如 virtio-net 使用兩個虛擬隊列,一個用于接收,一個用于發(fā)送;virtio-blk 驅(qū)動僅使用一個虛擬隊列。虛擬隊列實際上被實現(xiàn)為跨越客戶機操作系統(tǒng)和 hypervisor 的銜接點,可以通過任意方式實現(xiàn),前提是客戶機操作系統(tǒng)和 virtio 后端程序都遵循一定的標準,以相互匹配的方式實現(xiàn)它。

virtio-ring層

virtio-ring 是虛擬隊列的具體實現(xiàn),其中實現(xiàn)了環(huán)形緩沖區(qū)(ring buffer),用于保存前端驅(qū)動和后端處理程序執(zhí)行的信息,并且它可以一次性保存前端驅(qū)動的多次I/O請求,并且交由后端驅(qū)動去批量處理,最后實際調(diào)用宿主機中設(shè)備驅(qū)動實現(xiàn)物理上的I/O操作,這樣做就可以根據(jù)約定實現(xiàn)批量處理而不是客戶機中每次I/O請求都需要處理一次,從而提高客戶機與 hypervisor 信息交換的效率。

virtio后端驅(qū)動

virtio 后端驅(qū)動位于 qemu ,后端設(shè)備承擔的主體功能分為兩部分:

virtio后端設(shè)備的模擬;

依據(jù)virtio協(xié)議處理來自虛擬機端發(fā)送的請求。

在 QEMU 的實現(xiàn)中, virtio 設(shè)備是 QEMU 為虛擬機模擬的 PCI 設(shè)備,遵循 PCI-SIG 定義的 PCI 規(guī)范,具有配置空間、中斷配置等功能;virtio 后端驅(qū)動運行在宿主機中,用于實現(xiàn) virtio 后端操作硬件設(shè)備,例如向內(nèi)核協(xié)議棧發(fā)送一個數(shù)據(jù)包完成虛擬機對網(wǎng)絡(luò)數(shù)據(jù)的操作。

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

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

787ade1e-7799-11ee-939d-92fbcf53809c.png

主處理核與協(xié)處理核數(shù)據(jù)傳遞流程圖

(1)Core0向Core1發(fā)送數(shù)據(jù),通過rpmsg_send函數(shù)將數(shù)據(jù)打包至Virtioavail鏈表區(qū);
(2)在avail鏈表尋找共享內(nèi)存中空閑緩存,將數(shù)據(jù)置于共享內(nèi)存中;
(3)通過中斷通知Core1數(shù)據(jù)到來,共享內(nèi)存由avail鏈表區(qū)變至used區(qū);
(4)Core1收到中斷,觸發(fā)rpmsg的接收回調(diào)函數(shù),從used區(qū)獲取數(shù)據(jù)所在的共享內(nèi)存的物理地址,完成數(shù)據(jù)接收;
(5)通過中斷通知Core0數(shù)據(jù)接收完成,共享內(nèi)存緩存由used區(qū)變?yōu)閍vail區(qū),供下次傳輸使用。

三、應(yīng)用層雙核通信實現(xiàn)方式

在應(yīng)用層,對A核可使用open、write和read函數(shù)對 /dev下設(shè)備文件進行調(diào)用;對M核,可使用rpmsg_lite_remote_init、rpmsg_lite_send和rpmsg_queue_recv函數(shù)進行調(diào)用,不做重點闡述。從整體架構(gòu)上看,關(guān)系如下:

787f3982-7799-11ee-939d-92fbcf53809c.png

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 處理器
    +關(guān)注

    關(guān)注

    68

    文章

    19737

    瀏覽量

    232770
  • 芯片
    +關(guān)注

    關(guān)注

    459

    文章

    51918

    瀏覽量

    433466
  • 通信
    +關(guān)注

    關(guān)注

    18

    文章

    6144

    瀏覽量

    137141
  • 瑞薩
    +關(guān)注

    關(guān)注

    36

    文章

    22354

    瀏覽量

    87570
  • 多核異構(gòu)
    +關(guān)注

    關(guān)注

    0

    文章

    19

    瀏覽量

    5487

原文標題:A核與M核異構(gòu)通信過程解析

文章出處:【微信號:汽車電子嵌入式,微信公眾號:汽車電子嵌入式】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    創(chuàng)龍帶您解密TI、Xilinx異構(gòu)多核SoC處理器間通訊

    促進進程間通信的模塊。通信包括消息傳遞、流和鏈接列表。這些模塊提供的服務(wù)和功能可用于異構(gòu)多核SoC處理器ARM和DSP核心之間的
    發(fā)表于 09-08 09:39

    通信(IPC)解決方案

    ;Processor 1:從Share Memory的指定地址讀取消息;Processor 1:處理接收到的消息??偨Y(jié)核間通信廣泛應(yīng)用于TI的多核異構(gòu)處理器,本文介紹了TI
    發(fā)表于 11-03 07:26

    MPU進化,多核異構(gòu)處理器有多強?

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

    A+M通信過程解析

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

    多核異構(gòu)-雙高速率CAN-FD評測

    forlinx_m7_tcm_firmware.bin;放到**/run/media/mmcblk2p1/**目錄下。詳細操作可看上篇文章《【玩轉(zhuǎn)多核異構(gòu)M
    發(fā)表于 02-17 15:37

    多核異構(gòu)-M程序的啟動、編寫和仿真

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

    多核異構(gòu)處理器對共享外設(shè)和資源的調(diào)配方法

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

    S32G274有沒有MA共享的PFE相關(guān)的例程或文檔?

    使用hif2與PFE模塊通信。1、看文檔說多核PFE中有Main driver和Secondary driver,但是PFE的MCAL沒有相關(guān)配置。如何配置二級驅(qū)動程序? 2、M
    發(fā)表于 03-24 07:48

    Arm+RISC-V雙異構(gòu)前景如何?

    2021航順HK32MCU新品發(fā)布會上,航順介紹了自主研發(fā)的雙異構(gòu)MCU-HK32U1xx9系列產(chǎn)品。Arm Cortex-M3大負責主運算;RISC-V小
    發(fā)表于 04-14 10:06

    專用M4F+四A53,異構(gòu)多核AM62x讓工業(yè)控制“更實時、更安全”

    Cortex-M4F + Cortex-A53異構(gòu)多核給工業(yè)控制帶來何種意義?創(chuàng)龍科技SOM-TL62x工業(yè)核心板搭載TI AM62x最新處理器,因其Cortex-
    發(fā)表于 06-15 17:18

    專用R5F+雙A53,異構(gòu)多核AM64x讓工控“更實時”

    Cortex-R5F + Cortex-A53異構(gòu)多核, 給工控帶來何種意義? 創(chuàng)龍科技SOM-TL64x工業(yè)核心板搭載TI AM64x最新工業(yè)處理器,因其CortexR5F + 雙
    發(fā)表于 08-23 15:34

    嵌入式異構(gòu)多核的片上通信架構(gòu)設(shè)計

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

    基于SystemC的異構(gòu)多核通信模塊設(shè)計

    通過分析異構(gòu)多核體系片上處理通信,采用共享存儲區(qū)實現(xiàn)
    發(fā)表于 01-20 15:01 ?10次下載

    基于SystemC的異構(gòu)多核通信模塊設(shè)計

    通過分析異構(gòu)多核體系片上處理通信,采用共享存儲區(qū)實現(xiàn)
    發(fā)表于 07-17 16:51 ?19次下載

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

    數(shù)據(jù)傳輸效率低,這將嚴重影響產(chǎn)品的性能;而如果采用高速并口,則占用管腳多,硬件成本將會增加。為解決這一痛點,各大芯片公司陸續(xù)推出了兼具AM
    的頭像 發(fā)表于 11-21 14:42 ?1247次閱讀
    MPU進化,<b class='flag-5'>多核</b><b class='flag-5'>異構(gòu)</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>解析
    主站蜘蛛池模板: 欧美一级高清免费播放 | 国产精品久久女同磨豆腐 | 四虎永久免费网站入口2020 | 福利毛片 | 亚洲一区中文字幕在线观看 | 色www免费视频 | 日本www网站 | 一级黄色录像毛片 | 天天操天天射天天爽 | 色老头综合免费视频 | 亚洲亚洲人成网站在线观看 | 国产精品日韩欧美亚洲另类 | 青青导航| 欧美性色生活片天天看99 | 美女黄页在线观看 | 亚洲伊人成人网 | 婷婷了五月色香综合缴情 | 亚洲人成人网毛片在线播放 | 天天插天天操 | 青青青青久久精品国产h | 办公室桌震娇喘视频大全在线 | 毛片区| 国产69精品久久 | 欧美三级 欧美一级 | 一级毛片一级毛片一级毛片aa | 最色成人网| 国产精品四虎 | 欧美123区 | 老师叫我揉她内裤越快越好 | 四虎影院视频在线观看 | 边做边爱在线观看视频免费 | 色综合天天综合网亚洲影院 | 久久狠狠干 | 免费看欧美一级特黄a大片 免费看欧美一级特黄a大片一 | 1000又爽又黄禁片在线久 | 欧美影欧美影院免费观看视频 | 中文字幕视频二区 | 天堂资源在线www中文 | 天天干天天拍天天射 | 午夜精品久久久久久久99 | 国产欧美日韩综合精品无毒 |