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

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

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

Jacinto 7核間通信解決方案

星星科技指導(dǎo)員 ? 來源:TI ? 作者:Fredy Zhang ? 2023-03-16 09:19 ? 次閱讀

近年來,處理器性能越來越強,無論是通用處理器還是嵌入式處理器,都進入了多核處理器時代,多核處理器中,每個核心不能獨立工作,需要協(xié)同工作才能充分發(fā)揮處理器的性能,也就是需要高效的核間通信(Inter-processor Communication)機制。核間通信的主要目標(biāo)是,充分利用硬件提供的機制,實現(xiàn)高效的核間通信,從而充分發(fā)揮Soc的整體性能。

核間通信(IPC)方案簡介

TI J7 DRA8xx/TDA4xx、AM65xx、J6家族的處理器,基于異構(gòu)、可擴展的架構(gòu)開發(fā),拿TDA4VM的處理器來說,該處理器包含了TI DSP處理器(C66/C7x)、Cortex A72、Main域Cortex R5F、MCU域Cortex R5F、深度學(xué)習(xí)加速器MMA、圖形處理器GPU等核,屬于多核異構(gòu)的架構(gòu)。Cortex A72可用于通用計算、圖形處理器GPU用于3D圖像的加速、DSP可用于算法的加速、C7x/MMA可支持深度學(xué)習(xí)的處理、Cortex-R5F可用于外設(shè)的控制和圖像的前后處理等。多核異構(gòu)的優(yōu)點是采用適合的核做擅長的事,再加上專用硬件加速器也可處理特定任務(wù),從而在性能、功耗和成本 上達到最佳平衡。

核間通信(IPC)從軟件的角度來講, IPC提供了運行在處理器上的軟件接口,可供客戶調(diào)用,從而實現(xiàn)在多核處理器中核與核之間的通信。舉個例子來說,如圖1: TI Jacinto7軟件框架紫色框模塊所示,每個核上都運行了IPC軟件模塊,從而實現(xiàn)了TDA4VM上不同核之間的核間通信。本文的后續(xù)部分將以TDA4VM為例說明TI多核異構(gòu)處理器的核間通信方案,對于其它Jacinto7處理器、AM65xx、J6 等多核環(huán)境中的處理器之間進行通信采用的是同樣的方式。

pYYBAGQSbouAPcRBAACB5f3yvxI001.png

圖1 : TI Jacinto7 TDA4VM SW Framework

Jacinto7 TDA4VM處理器的核間通信(IPC)框圖如圖2所示,TDA4VM擁有2*A72、6*R5F、2*C66、C7x等核,不同核之間的通信依賴IPC(Inter-Processor Communication)。同時,同一種類型的多個核心又可以運行在不同的模式,比如A72可以運行的SMP模式,雙核R5F可以運行在Lockstep或Split Mode上,因此,核間通信方案要充分利用硬件提供的機制,實現(xiàn)高效的核間通信,從而充分發(fā)揮Soc的整體性能。

poYBAGQSbouACuphAABcsUltKgE682.png

圖2 : TI Jacinto7 TDA4VM IPC Framework

TDA4VM硬件提供了Mailbox硬件模塊,Mailbox中斷機制允許軟件在兩核之間建立通信通道,這種機制類似于郵箱工作的方式。每個核都有一個專屬的郵箱,郵件就是消息內(nèi)容,通過指定接收方,就可以將消息傳遞到指定核。Mailbox硬件上支持中斷,因此指定核有消息時,就會收到中斷,然后開始處理郵件,即處理消息。這就是Mailbox的工作方式。

TDA4VM的IPC方案,基于Mailbox的實現(xiàn)的方式的不同,常用的核間通信方式有兩種。

基于RPMSG的核間通信解決方案,適合小塊數(shù)據(jù)消息傳遞。

基于Share Memory核間通信解決方案,適合大塊數(shù)據(jù)傳輸。

基于RPMSG的核間通信解決方案

RPMSG定義了通信協(xié)議的接口,采用RPMSG協(xié)議,基于Mailbox模塊的核間通信方案如圖3所示,該方案傳遞消息時,首先需要將消息拷貝到的共享內(nèi)存中(VRing),然后,利用Mailbox將消息傳遞到指定核上。

pYYBAGQSboyAWRXyAACMKQvisVw456.png

圖3: RPMSG的核間通信解決方案

上圖中術(shù)語和縮寫解釋如下:

Term Definition or Explanation
IPC Inter-Processor Communication
MailBox IP which provides queued interrupt mechanism for communication channel
VRing Ring Buffer in shared memory
Rpmsg queue on local memory

核間通信步驟如下所述(步驟如紅色圈中所示):

發(fā)送端發(fā)送: Core1核調(diào)用Rpmsg_send發(fā)送消息,應(yīng)用程序復(fù)制到兩個 CORE 之間使用的 VRING。此后,IPC 驅(qū)動程序?qū)?VRING ID 發(fā)布到硬件指定Mailbox的通道中。

接收端接收:Core2核上Mailbox觸發(fā)中斷,在core2的 ISR 中,它提取 VRING ID,然后根據(jù) VRING ID,檢查該 VRING 中的任何消息。

接收端發(fā)送: Core2核應(yīng)用程序調(diào)用Rpmsg_send發(fā)送消息,應(yīng)用程序復(fù)制到兩個 CORE之間使用的 VRING。此后,IPC驅(qū)動程序?qū)?VRING ID 發(fā)布到硬件Mailbox 的另外一個通道中。

發(fā)送端接收: Core1核上Mailbox觸發(fā)中斷,在core1的ISR中,它提取 VRING ID,然后根據(jù) VRING ID,檢查該 VRING 中的任何消息。

注意事項:

RPMSG傳輸消息最大512 Byte。

Performance 參考這里.

基于Share Memory核間通信解決方案

基于Share Memory的核間通信解決方案,底層仍然使用的是硬件的模塊Mailbox,如圖4所示所示,發(fā)送和接受采用的是不同的Mailbox通道。 每一組核與核之間使用的都是指定的Mailbox通道。同時,Share Memory的解決方案需要分配指定Share Memory用以核間通信共享數(shù)據(jù)。 Share Memory是一段memory 能夠被多個核所所訪問,所以名為共享內(nèi)存,在TDA4VM中,這段內(nèi)存通常是來自于DDR中的一個數(shù)據(jù)段。共享內(nèi)存在核間通信方案中,一個核可以將數(shù)據(jù)寫入共享內(nèi)存,Mailbox可以將內(nèi)存指針傳遞到另一個核上,另一個核可以拿到內(nèi)存指針后,直接從Share Memory讀取數(shù)據(jù),這一個過程不需要經(jīng)過數(shù)據(jù)的拷貝,因此,非常高效,適合大數(shù)據(jù)量的傳輸。

poYBAGQSboyAfuEkAAA5KO7hARU779.png

圖4: 基于Share Memory的核間通信解決方案

核間通信步驟如下所述:

Processor 1: 拷貝數(shù)據(jù)到Share Memory中的指定位置;

Processor 1:將Share Memory中的指定地址等信息寫入Mailbox的指定通道;

Processor 2:接收Mailbox 中斷和消息的地址;

Processor 2:從Share Memory中的指定地址讀取消息;

Processor 2: 處理接收到的消息,并準(zhǔn)備回復(fù)消息;

Processor 2:拷貝數(shù)據(jù)到Share Memory 指定位置;

Processor 2:將Share Memory中的指定地址等信息寫入Mailbox的指定通道;

Processor 1:接收Mailbox 中斷和消息的地址;

Processor 1:從Share Memory中的指定地址讀取消息;

Processor 1:處理接收到的消息。

總結(jié)

核間通信廣泛應(yīng)用于TI的多核異構(gòu)處理器,本文介紹了TI多核異構(gòu)處理的兩種核間通信(IPC)的兩種解決方案?;赗PMSG的核間通信解決方案采用了RPMSG協(xié)議,廣泛應(yīng)用于Soc內(nèi)部核之間的消息傳遞,比如不同核對Camera的控制。適用于消息量小的類型。基于Share Memory核間通信解決方案,由于消息傳遞過程不需要數(shù)據(jù)拷貝,數(shù)據(jù)傳輸更高效,因此,適用于大塊的數(shù)據(jù)傳輸,TDA4VM內(nèi)部圖像數(shù)據(jù)的傳輸就來自于這種方案。另外,需要注意的時,TDA4VM劃分了主域核MCU域,MCU域的軟件通常單獨開發(fā),對于MCU與其它核的通信采用CDD IPC軟件模塊,基于Share Memory核間通信解決方案可適用有大數(shù)據(jù)量傳輸?shù)男枨蟆?/p>

審核編輯:郭婷

聲明:本文內(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

    文章

    18924

    瀏覽量

    227209
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    146

    文章

    16665

    瀏覽量

    347752
  • 嵌入式
    +關(guān)注

    關(guān)注

    5045

    文章

    18816

    瀏覽量

    298459
收藏 人收藏

    評論

    相關(guān)推薦

    SoC的通信機制—mailbox介紹

    目前很多芯片都會有幾個core,有的是Cortex M0+、M4、M7、A53、A73等等,有的有著2、3、4甚至6
    發(fā)表于 08-11 10:51 ?4751次閱讀
    SoC的<b class='flag-5'>核</b><b class='flag-5'>間</b><b class='flag-5'>通信</b>機制—mailbox介紹

    非對稱雙MCU基礎(chǔ)知識及通信

    來源 網(wǎng)絡(luò)本文從對比兩顆分立MCU與單芯片雙MCU開始(以LPC4350為例),展開介紹了非對稱雙MCU的基礎(chǔ)知識與重要特點。接下來,重點介紹了
    發(fā)表于 05-15 14:26

    6678 多核導(dǎo)航器 通信

    您好! ? ? ? ?我最近使用6678的多核導(dǎo)航器進行通信,有些地方不明白,想問下各位專家。 ? ? ?我是這么做的,我通過CIC把48事件映射到中斷4上,DSP事件48是高優(yōu)先級隊列
    發(fā)表于 06-21 06:54

    關(guān)于C6678IPC通信的問題

    測試C6678的通信,使用的IPC中斷的方式。中間看到在文檔中關(guān)于每個IPC生成寄存器中包含了28個源ID,源ID的作用取決于軟件的定義,是不是可以理解為我如果寫其中的源SRCS27,則我在中斷
    發(fā)表于 08-03 07:15

    搞定單CPU內(nèi)雙通信和雙CPU通信

    [table][tr][td] 終于搞定了單CPU內(nèi)雙通信和雙CPU通信 +-----+ + ARM ++ DDR + + DS
    發(fā)表于 08-19 01:37

    通信(IPC)解決方案

    框模塊所示,每個上都運行了IPC軟件模塊,從而實現(xiàn)了TDA4VM上不同之間的通信。本文的后續(xù)部分將以TDA4VM為例說明TI多核異構(gòu)
    發(fā)表于 11-03 07:26

    非對稱雙MCU基礎(chǔ)知識及通信

    本文從對比兩顆分立MCU與單芯片雙MCU開始(以LPC4350為例),展開介紹了非對稱雙MCU的基礎(chǔ)知識與重要特點。接下來,重點介紹了通信
    發(fā)表于 03-26 15:31 ?3526次閱讀
    非對稱雙<b class='flag-5'>核</b>MCU基礎(chǔ)知識及<b class='flag-5'>核</b><b class='flag-5'>間</b><b class='flag-5'>通信</b>

    非對稱雙MCU基礎(chǔ)知識及通信

    本文從對比兩顆分立MCU與單芯片雙MCU開始(以LPC4350為例),展開介紹了非對稱雙MCU的基礎(chǔ)知識與重要特點。接下來,重點介紹了通信
    的頭像 發(fā)表于 03-13 15:47 ?5073次閱讀
    非對稱雙<b class='flag-5'>核</b>MCU基礎(chǔ)知識及<b class='flag-5'>核</b><b class='flag-5'>間</b><b class='flag-5'>通信</b>

    Jacinto 6 QNX系統(tǒng)汽車解決方案介紹

    具有全景可視攝像頭的Jacinto 6 QNX汽車解決方案
    的頭像 發(fā)表于 08-23 00:11 ?4308次閱讀

    Jacinto7 TDA4VM處理器的通信解決方案

    近年來,處理器性能越來越強,無論是通用處理器還是嵌入式處理器,都進入了多核處理器時代,多核處理器中,每個核心不能獨立工作,需要協(xié)同工作才能充分發(fā)揮處理器的性能,也就是需要高效的通信
    的頭像 發(fā)表于 07-01 12:04 ?8348次閱讀
    <b class='flag-5'>Jacinto7</b> TDA4VM處理器的<b class='flag-5'>核</b><b class='flag-5'>間</b><b class='flag-5'>通信</b><b class='flag-5'>解決方案</b>

    Jacinto?? 7通信解決方案

    Jacinto?? 7通信解決方案
    發(fā)表于 10-28 11:59 ?3次下載
    <b class='flag-5'>Jacinto</b>?? <b class='flag-5'>7</b><b class='flag-5'>核</b><b class='flag-5'>間</b><b class='flag-5'>通信</b><b class='flag-5'>解決方案</b>

    SoC通信的實現(xiàn)機制之mailbox中斷

    目前很多芯片都會有幾個core,有的是Cortex M0+、M4、M7、A53、A73等等,有的有著2、3、4甚至6
    的頭像 發(fā)表于 09-05 17:29 ?1415次閱讀
    SoC<b class='flag-5'>核</b><b class='flag-5'>間</b><b class='flag-5'>通信</b>的實現(xiàn)機制之mailbox中斷

    通信(IPC)的目標(biāo)和實現(xiàn)機制

    (Inter-processor communication)來通信,進行數(shù)據(jù)的交互。 通信
    的頭像 發(fā)表于 09-13 17:32 ?2650次閱讀
    <b class='flag-5'>核</b><b class='flag-5'>間</b><b class='flag-5'>通信</b>(IPC)的目標(biāo)和實現(xiàn)機制

    Jacinto 7熱管理指南-軟件策略

    電子發(fā)燒友網(wǎng)站提供《Jacinto 7熱管理指南-軟件策略.pdf》資料免費下載
    發(fā)表于 09-14 10:09 ?0次下載
    <b class='flag-5'>Jacinto</b> <b class='flag-5'>7</b>熱管理指南-軟件策略

    Jacinto 7顯示子系統(tǒng)概述應(yīng)用說明

    電子發(fā)燒友網(wǎng)站提供《Jacinto 7顯示子系統(tǒng)概述應(yīng)用說明.pdf》資料免費下載
    發(fā)表于 09-14 10:00 ?0次下載
    <b class='flag-5'>Jacinto</b> <b class='flag-5'>7</b>顯示子系統(tǒng)概述應(yīng)用說明