版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第第頁SoC的核間通信機制—mailbox介紹
正文
目前很多芯片都會有幾個c(or)e核,有的是CortexM0+、M4、M7、A53、A73等等,有的有著2核、3核、4核甚至6核8核,不同的核的主頻支持度不一樣,適用的具體應用場景也不同,因此需要IPC(Inter-processorcommun(ic)ation)來核間(通信),進行數(shù)據(jù)的交互。
核間通信(IPC)的主要目標是:充分利用(硬件)提供的機制,實現(xiàn)高效的CORE間通信;給需要CORE間通信的應用程序提供簡潔高效的(編程)(接口)。
根據(jù)所使用的硬件特性,核間通信的實現(xiàn)機制有:
Mailbox中斷基于共享內存的消息隊列
封裝-(VR)ING-解析的過程:
1、應用程序向給定目的地((CPU)、端點)發(fā)送消息
2、消息首先從應用程序復制到兩個CPU之間使用的VRING。此后,IPC驅動程序在硬件郵箱中發(fā)布VRINGID。
3、這會觸發(fā)目標CPU上的中斷。在目標CPU的ISR中,它提取VRINGID,然后根據(jù)VRINGID檢查該VRING中的所有消息。
4、如果收到消息,它從VRING中提取消息并將其放入目標RPMSG端點隊列中。然后觸發(fā)在此RPMSG端點上阻止的應用程序。
5、應用程序處理接收到的消息,并使用相同的RPMSG和VRING機制在相反方向回復發(fā)送方CPU。
HardwareMailbox
硬件郵箱主要用于提供具有小的32位有效負載的中斷事件通知。
VRING使用硬件郵箱在目標CPU上觸發(fā)中斷。每個郵箱包含16個單向HW隊列,最多可連接4個通信用戶或CPU。
J721ESoC有12個硬件郵箱實例。即12x16個硬件郵箱隊列。
(硬件郵箱的邏輯框圖)
MailboxandVRING
郵箱本質上充當一個非常小的硬件隊列,其中包含VRINGID。
VRING是共享內存中的SW隊列,保存兩個CPU之間傳遞的實際消息。當收到中斷時,郵箱消息會告知從哪個VRING出列消息。
VRINGID=0(te)llstolookattheVRINGfromsendertoreceiverVRINGID=1tellstolookattheVRINGfromreceivertosender
散文
mailbox其實是多核(處理器)soc上,核與核之間互相發(fā)中斷的機制,由于核與核之間可能存在不同的業(yè)務,故硬件上設計分配一兩個中斷已經無法滿足業(yè)務的需求,軟件拓展起來很困難,所以mailbox可以理解為軟件可自由定義的中斷模塊。
用于在片上處理器之間通信的一種mailbox隊列中斷機制,mailbox隊列中斷機制允許軟件通過一組(寄存器)和關聯(lián)的中斷設置和得到信息在二個處理之間建立通信渠道。
核間通信的主要目標是:充分利用硬件提供的機制,實現(xiàn)高效的CORE間通信;給需要CORE間通信的應用程序提供簡潔高效的編程接口。
根據(jù)所使用的硬件特性,核間通信可能的實現(xiàn)機制有:
Mailbox中斷;基于共享內存的消息隊列;POW+Group;FAU;支持原子的讀,寫,fetchand(ad)d操作。每個core有一個相應的32bit的mailbox寄存器,每一位可被單獨地設置或清零。這對于core間的中斷非常有用,任意core可直接通過其它core的mailbox對其它core發(fā)出中斷。當mailbox被置位時,相應core的中斷寄存器也同時被置位,軟件可實現(xiàn)其中斷處理。
Bootloader支持Octeon_phy_mem_named_block_alloc(),分配以名字命名的物理內存空間,不管是ServiceExecu(ti)ve應用程序還是(linux)kernel都可以通過Octeon_phy_mem_named_block_find()找到這部分內存,實現(xiàn)core之間的共享數(shù)據(jù)。
Linuxkernel也提供了共享內存的機制。主要有mmap(),系統(tǒng)V,Posix共享內存模型等。系統(tǒng)調用mmap()通過映射一個普通文件實現(xiàn)共享內存。普通文件被映射到進程地址空間后,進程可以向訪問普通內存一樣對文件進行訪問。系統(tǒng)V共享內存指的是把所有共享數(shù)據(jù)放在共享內存區(qū)域(IPCsharedmemoryregion),任何想要訪問該數(shù)據(jù)的進程都必須在本進程的地址空間新增一塊內存區(qū)域,用來映射存放共享數(shù)據(jù)的物理內存頁面。posix共享內存區(qū)首先指定一個名字參數(shù)調用shm_open,以創(chuàng)建一個新的共享內存區(qū)對象或打開一個以存在的共享內存區(qū)對象。然后調用mmap把這個共享內存區(qū)映射到調用進程的地址空間。傳遞給shm_open的名字參數(shù)隨后由希望共享該內存區(qū)的任何其他進程使用。
核間通信方案
如下圖所示(ARM)核和(DSP)核進行mailbox通信,ARM要發(fā)送數(shù)據(jù)給DSP:
ARM核先往某個指定的共享內存空間buffer寫入數(shù)據(jù),然后MAILBOX觸發(fā)中斷和寫入關于共享內存空間的地址信息給DSP。DSP通過得到mailbox中斷的信息讀取共享內存空間ARM核發(fā)送的buffer
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度個人健康保險合同范本2篇
- 長沙南方職業(yè)學院《俄語基礎》2023-2024學年第一學期期末試卷
- 2025年度智能倉儲物流設施建設合同范本3篇
- 2024物業(yè)權益讓與擔保合同 權益方與受讓方協(xié)議
- 思政教育團隊建設與教師專業(yè)成長
- 二零二五版集成墻板家裝裝修環(huán)保評估合同范本3篇
- 2025年校園歷史文化宣傳欄制作與教育推廣合同3篇
- 二零二五年度建筑設計創(chuàng)意大賽參賽合同2篇
- 2025年新型農業(yè)技術培訓合同范本3篇
- 2025年度定制化鋁材加工與銷售一體化合同4篇
- 獵聘-2024高校畢業(yè)生就業(yè)數(shù)據(jù)報告
- 2024虛擬現(xiàn)實產業(yè)布局白皮書
- 車站值班員(中級)鐵路職業(yè)技能鑒定考試題及答案
- JTG∕T E61-2014 公路路面技術狀況自動化檢測規(guī)程
- 高中英語短語大全(打印版)
- 軟件研發(fā)安全管理制度
- 三位數(shù)除以兩位數(shù)-豎式運算300題
- 寺院消防安全培訓課件
- 比摩阻-管徑-流量計算公式
- GB/T 42430-2023血液、尿液中乙醇、甲醇、正丙醇、丙酮、異丙醇和正丁醇檢驗
- 五年級數(shù)學應用題100道
評論
0/150
提交評論