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

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

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

核間通信可能的實(shí)現(xiàn)機(jī)制

麥辣雞腿堡 ? 來源:TrustZone ? 作者:Hcoco ? 2023-09-13 17:39 ? 次閱讀

mailbox其實(shí)是多核處理器soc上,核與核之間互相發(fā)中斷的機(jī)制,由于核與核之間可能存在不同的業(yè)務(wù),故硬件上設(shè)計(jì)分配一兩個(gè)中斷已經(jīng)無法滿足業(yè)務(wù)的需求,軟件拓展起來很困難,所以mailbox可以理解為軟件可自由定義的中斷模塊。

用于在片上處理器之間通信的一種mailbox隊(duì)列中斷機(jī)制,mailbox隊(duì)列中斷機(jī)制允許軟件通過一組寄存器和關(guān)聯(lián)的中斷設(shè)置和得到信息在二個(gè)處理之間建立通信渠道。

核間通信的主要目標(biāo)是:充分利用硬件提供的機(jī)制,實(shí)現(xiàn)高效的CORE間通信;給需要CORE間通信的應(yīng)用程序提供簡潔高效的編程接口

根據(jù)所使用的硬件特性,核間通信可能的實(shí)現(xiàn)機(jī)制有:

  1. Mailbox中斷;
  2. 基于共享內(nèi)存的消息隊(duì)列;
  3. POW + Group;
  4. FAU;支持原子的讀,寫,fetch and add操作。

每個(gè)core有一個(gè)相應(yīng)的32bit的mailbox寄存器,每一位可被單獨(dú)地設(shè)置或清零。這對于core間的中斷非常有用,任意core可直接通過其它c(diǎn)ore的mailbox對其它c(diǎn)ore發(fā)出中斷。當(dāng)mailbox被置位時(shí),相應(yīng)core的中斷寄存器也同時(shí)被置位,軟件可實(shí)現(xiàn)其中斷處理。

Bootloader支持Octeon_phy_mem_named_block_alloc( ),分配以名字命名的物理內(nèi)存空間,不管是ServiceExecutive應(yīng)用程序還是linux kernel都可以通過Octeon_phy_mem_named_block_find()找到這部分內(nèi)存,實(shí)現(xiàn)core之間的共享數(shù)據(jù)。

Linux kernel也提供了共享內(nèi)存的機(jī)制。主要有mmap(),系統(tǒng)V,Posix共享內(nèi)存模型等。系統(tǒng)調(diào)用mmap()通過映射一個(gè)普通文件實(shí)現(xiàn)共享內(nèi)存。普通文件被映射到進(jìn)程地址空間后,進(jìn)程可以向訪問普通內(nèi)存一樣對文件進(jìn)行訪問。系統(tǒng)V共享內(nèi)存指的是把所有共享數(shù)據(jù)放在共享內(nèi)存區(qū)域(IPC shared memory region),任何想要訪問該數(shù)據(jù)的進(jìn)程都必須在本進(jìn)程的地址空間新增一塊內(nèi)存區(qū)域,用來映射存放共享數(shù)據(jù)的物理內(nèi)存頁面。posix共享內(nèi)存區(qū)首先指定一個(gè)名字參數(shù)調(diào)用shm_open,以創(chuàng)建一個(gè)新的共享內(nèi)存區(qū)對象或打開一個(gè)以存在的共享內(nèi)存區(qū)對象。然后調(diào)用mmap把這個(gè)共享內(nèi)存區(qū)映射到調(diào)用進(jìn)程的地址空間。傳遞給shm_open的名字參數(shù)隨后由希望共享該內(nèi)存區(qū)的任何其他進(jìn)程使用。

核間通信方案

如下圖所示ARM核和DSP核進(jìn)行mailbox通信,ARM要發(fā)送數(shù)據(jù)給DSP:

? 1 ARM核先往某個(gè)指定的共享內(nèi)存空間buffer寫入數(shù)據(jù),然后MAILBOX觸發(fā)中斷和寫入關(guān)于共享內(nèi)存空間的地址信息給DSP。

? 2 DSP通過得到mailbox中斷的信息讀取共享內(nèi)存空間ARM核發(fā)送的buffer數(shù)據(jù)。

? 3 DSP核讀取完數(shù)據(jù)后將觸發(fā)mailbox中斷給ARM作為回應(yīng),告訴ARM核你發(fā)送的數(shù)據(jù)我已經(jīng)接受完成了。a

圖片

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

    關(guān)注

    68

    文章

    18924

    瀏覽量

    227212
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5250

    瀏覽量

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

    關(guān)注

    18

    文章

    5878

    瀏覽量

    135310
  • soc
    soc
    +關(guān)注

    關(guān)注

    38

    文章

    4021

    瀏覽量

    217021
收藏 人收藏

    評論

    相關(guān)推薦

    SoC的通信機(jī)制—mailbox介紹

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

    關(guān)于AM5728通信方式(共享內(nèi)存)問題

    您好,我使用的開發(fā)板為AM5728,目前要在兩個(gè)ARM-Cotex-A15和兩個(gè)DSP上都應(yīng)用OS,初步定為都運(yùn)行SYS/BIOS,在這種情況下我們想實(shí)現(xiàn)實(shí)時(shí)、快速、可靠的通信。
    發(fā)表于 05-15 07:34

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

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

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

    程序中判斷該位來執(zhí)行對應(yīng)的代碼。第2個(gè)問題:通信能不能可以利用IPCCR和IPCAR中的SRCSx和SRCCx寄存器來實(shí)現(xiàn)
    發(fā)表于 08-03 07:15

    通信(IPC)解決方案

    (Inter-processor Communication)機(jī)制。通信的主要目標(biāo)是,充分利用硬件提供的機(jī)制,
    發(fā)表于 11-03 07:26

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

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

    一種基于Mailbox機(jī)制的多核處理系統(tǒng)

    基于FPGA的嵌入式應(yīng)用在近幾年來作為一個(gè)比較新穎的課題,本文在研究各種通信機(jī)制的基礎(chǔ)上,提出了一種基于Mailbox
    發(fā)表于 11-22 17:31 ?1.3w次閱讀

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

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

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

    (Inter-processor Communication)機(jī)制通信的主要目標(biāo)是,充分利用硬件提供的機(jī)制
    的頭像 發(fā)表于 07-01 12:04 ?8349次閱讀
    Jacinto7 TDA4VM處理器的<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次下載
    Jacinto?? 7<b class='flag-5'>核</b><b class='flag-5'>間</b><b class='flag-5'>通信</b>解決方案

    Jacinto 7通信解決方案

    (Inter-processor Communication)機(jī)制。通信的主要目標(biāo)是,充分利用硬件提供的機(jī)制,
    的頭像 發(fā)表于 03-16 09:19 ?1065次閱讀
    Jacinto 7<b class='flag-5'>核</b><b class='flag-5'>間</b><b class='flag-5'>通信</b>解決方案

    進(jìn)程通信機(jī)制有哪些

    比較難,Linux內(nèi)核提供了多種進(jìn)程通信機(jī)制。 同一個(gè)進(jìn)程的不同模塊(譬如不同的函數(shù))之間進(jìn)行通信都是很簡單的,譬如使用全局變量等。 通常情況下,大部分的程序是不要考慮進(jìn)程
    的頭像 發(fā)表于 07-21 11:23 ?822次閱讀
    進(jìn)程<b class='flag-5'>間</b><b class='flag-5'>通信</b>的<b class='flag-5'>機(jī)制</b>有哪些

    SoC通信實(shí)現(xiàn)機(jī)制之mailbox中斷

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

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

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

    如何實(shí)現(xiàn)一套linux進(jìn)程通信機(jī)制

    我們知道linux的進(jìn)程的通信的組件有管道,消息隊(duì)列,socket, 信號(hào)量,共享內(nèi)存等。但是我們?nèi)绻约?b class='flag-5'>實(shí)現(xiàn)一套進(jìn)程通信
    的頭像 發(fā)表于 11-10 14:56 ?546次閱讀
    如何<b class='flag-5'>實(shí)現(xiàn)</b>一套linux進(jìn)程<b class='flag-5'>間</b><b class='flag-5'>通信</b>的<b class='flag-5'>機(jī)制</b>