色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

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

淺析核間通訊的設(shè)計(jì)與實(shí)現(xiàn)—以NXP IPCF為例

jf_C6sANWk1 ? 來(lái)源:汽車(chē)電子與軟件 ? 2023-09-27 09:18 ? 次閱讀

01

前言

隨著汽車(chē)電子的高速發(fā)展,電控單元的復(fù)雜性越來(lái)越高,對(duì)芯片的算力要求也迅速提高,于是,例如ARM架構(gòu)這樣的異構(gòu)處理器的應(yīng)用也更為普遍。對(duì)于多核異構(gòu)處理器而言,核間通訊是一項(xiàng)至關(guān)重要的特性。核間通訊的性能往往能對(duì)整個(gè)處理器的性能釋放起到?jīng)Q定性的作用。

本文將以NXP的IPCF為例,并簡(jiǎn)單對(duì)比一些其他方案,淺析核間通訊的設(shè)計(jì)與實(shí)現(xiàn)。

02

軟件架構(gòu)

2e39f0d8-5cd2-11ee-939d-92fbcf53809c.png

IPCF架構(gòu)框圖

根據(jù)IPCF架構(gòu)框圖,它基于硬件(NXP硬件平臺(tái)),服務(wù)于應(yīng)用(客戶(hù)應(yīng)用程序),由硬件驅(qū)動(dòng)(ipc-hw)、操作系統(tǒng)接口(ipc-os)與功能實(shí)現(xiàn)(ipc-shm)這三個(gè)子模塊構(gòu)成。通過(guò)這一設(shè)計(jì),核間通訊方案可以將算法實(shí)現(xiàn)與下層的軟、硬件系統(tǒng)解耦,實(shí)現(xiàn)高度的模塊化和可移植性。

03

硬件驅(qū)動(dòng)(ipc-hw)

硬件驅(qū)動(dòng)是架構(gòu)中的最底層。它與硬件直接相關(guān),負(fù)責(zé)實(shí)現(xiàn)對(duì)硬件的操作,例如通知(中斷)和數(shù)據(jù)(內(nèi)存)的操作。

在IPCF的架構(gòu)設(shè)計(jì)中,硬件驅(qū)動(dòng)全權(quán)掌管對(duì)硬件的交互,向上則面向操作系統(tǒng)接口與功能實(shí)現(xiàn)這兩個(gè)子模塊。

代碼實(shí)例

2e558776-5cd2-11ee-939d-92fbcf53809c.png

在NXP公開(kāi)的源碼中可以看到,對(duì)于不同的硬件平臺(tái),它分別提供了對(duì)應(yīng)的C語(yǔ)言實(shí)現(xiàn),而頭文件保持一致,確保接口的一致性。

粗略閱讀頭文件可以看到,這一模塊主要提供的是對(duì)芯片中斷的支持,可以完成注冊(cè)、啟用、禁用和觸發(fā)中斷等一系列操作。

核間通訊中斷的硬件設(shè)計(jì)也是一門(mén)學(xué)問(wèn)。NXP的S32系列芯片設(shè)計(jì)了若干個(gè)專(zhuān)用的核間通訊中斷(具體數(shù)量由芯片型號(hào)決定),每個(gè)中斷都有自己的一組寄存器以實(shí)現(xiàn)導(dǎo)向觸發(fā)(Steering),用戶(hù)可以通過(guò)寄存器配置,靈活設(shè)置每一個(gè)中斷的發(fā)送核與接收核。這樣可以利用有限的資源,實(shí)現(xiàn)業(yè)務(wù)所需的具體核心之間的通訊需求。

04

操作系統(tǒng)接口(ipc-os)

操作系統(tǒng)接口是架構(gòu)中的中間層,但從整個(gè)系統(tǒng)而言,它也可以說(shuō)是軟件方面的最底層。它負(fù)責(zé)與操作系統(tǒng)交互,例如掌控程序的執(zhí)行流程(中斷和任務(wù)的調(diào)用)。

在IPCF的架構(gòu)設(shè)計(jì)中,操作系統(tǒng)接口向下依賴(lài)于硬件驅(qū)動(dòng),向上服務(wù)于功能實(shí)現(xiàn)。

代碼實(shí)例

2e60b290-5cd2-11ee-939d-92fbcf53809c.png

在NXP公開(kāi)的源碼中可以看到,對(duì)于不同的操作系統(tǒng),它也分別提供了對(duì)應(yīng)的C語(yǔ)言實(shí)現(xiàn)。在A核側(cè)可以看到有對(duì)uio的支持,而如果拿到M核側(cè)的源碼,則可以看到對(duì)AUTOSAR、FreeRTOS等多個(gè)操作系統(tǒng)的支持。

相比硬件驅(qū)動(dòng),操作系統(tǒng)的接口明顯更多樣(畢竟硬件都是NXP自家的),但無(wú)一例外地都應(yīng)當(dāng)實(shí)現(xiàn)軟件模塊的各種例程在操作系統(tǒng)中的適當(dāng)調(diào)用。

雖然操作系統(tǒng)林林總總,但這一子模塊需要解決的問(wèn)題無(wú)非是各類(lèi)例程的調(diào)用(初始化、周期任務(wù)、中斷任務(wù))和對(duì)軟件底層資源的使用(文件讀寫(xiě))。

05

功能實(shí)現(xiàn)(ipc-shm)

功能實(shí)現(xiàn)是架構(gòu)中的最上層,負(fù)責(zé)提供對(duì)應(yīng)用程序的軟件接口,并依賴(lài)于硬件驅(qū)動(dòng)和操作系統(tǒng)接口來(lái)實(shí)現(xiàn)通訊的邏輯。相比起更為直白和穩(wěn)定的軟硬件基礎(chǔ)件,功能實(shí)現(xiàn)的自由度更大,可供發(fā)揮的空間也更多。針對(duì)具體業(yè)務(wù)設(shè)計(jì)更高效的功能實(shí)現(xiàn)將起到事半功倍的效果。

代碼實(shí)例

2e703788-5cd2-11ee-939d-92fbcf53809c.png ? ?

在NXP公開(kāi)的源碼中,這一子模塊以其傳輸介質(zhì)的形式(shared memory)被命名為shm。它實(shí)現(xiàn)了幾種通用的通訊算法,以共享內(nèi)存與中斷通知的組合,完成消息和數(shù)據(jù)的傳遞。

和幾乎所有的消息系統(tǒng)一樣,它將消息的訪(fǎng)問(wèn)方式分為回調(diào)與輪詢(xún)兩種,以滿(mǎn)足不同時(shí)效性要求的場(chǎng)景。

而在數(shù)據(jù)算法方面,它又設(shè)計(jì)了兩種形式,其中unmanaged類(lèi)型是以一段連續(xù)的內(nèi)存區(qū)域?yàn)橄⒌膬?nèi)容,發(fā)送方可以直接覆蓋數(shù)據(jù),因此在例如接收方處理速度較慢的情況下,可能出現(xiàn)丟失數(shù)據(jù)的結(jié)果,但其優(yōu)點(diǎn)在于發(fā)送的消息不會(huì)被阻塞,保證信息的實(shí)時(shí)性。正如其官方建議的那樣,此類(lèi)數(shù)據(jù)處理形式適用于例如視頻流傳輸?shù)日麎K訪(fǎng)問(wèn)數(shù)據(jù)的、新數(shù)據(jù)優(yōu)先的場(chǎng)景中。

而managed類(lèi)型則是一種先入先出式的隊(duì)列系統(tǒng)。首先它會(huì)將內(nèi)存區(qū)域劃分成固定大小的緩存塊,并根據(jù)一張讀寫(xiě)的索引表,按順序?qū)?shù)據(jù)存入緩存塊中,再按順序取出使用。這一層可以當(dāng)作對(duì)存儲(chǔ)器的基本數(shù)據(jù)隊(duì)列處理。為了更好地利用內(nèi)存空間,它還設(shè)計(jì)了另一層消息隊(duì)列,支持分布不同長(zhǎng)度的緩存塊,可以理解為將多個(gè)緩存隊(duì)列并列起來(lái),但其代價(jià)是為了保證所有隊(duì)列中消息的有序性,需要另建一張總的索引表來(lái)記錄所有消息的讀寫(xiě)索引。這種方式能夠嚴(yán)格保證消息的有序和有效,但可能出現(xiàn)阻塞。

當(dāng)然,這些現(xiàn)成的通訊算法并不一定能完全滿(mǎn)足業(yè)務(wù)的需求,也存在許多明顯的局限性,例如自身沒(méi)有數(shù)據(jù)完整性校驗(yàn)、輪詢(xún)方式不支持單條消息的讀取等等,這些都是筆者在實(shí)際應(yīng)用中所發(fā)現(xiàn)的,旨在拋磚引玉。到了這些時(shí)候,就需要軟件開(kāi)發(fā)者各顯神通,或是加以改進(jìn),或是另辟蹊徑,只為不斷提高核間通訊的可用性,以滿(mǎn)足日益繁雜的業(yè)務(wù)需求。

06

其它方案

Linux RPMsg framework for STM32MP15x

Rpmsg是Linux內(nèi)核提供的一種通用的通訊方案,在當(dāng)前的汽車(chē)電子領(lǐng)域有相當(dāng)廣泛的應(yīng)用。下面是STM32MP15x系列芯片的RPMsg方案的概覽:

2e775810-5cd2-11ee-939d-92fbcf53809c.png

從中可以看到,作為一種示范性的通用方案,它與NXP的IPCF也有許多異曲同工之妙。

我們自下而上來(lái)看,首先是SoC的硬件層。IPCC是inter-processor communication controller的縮寫(xiě),負(fù)責(zé)的是核間通訊的通知(中斷)收發(fā),向上的mailbox和remote proc則相當(dāng)于對(duì)硬件中斷封裝的驅(qū)動(dòng),這與NXP IPCF中的ipc-hw是大致對(duì)應(yīng)的。MCUSRAM負(fù)責(zé)存儲(chǔ)器的管理,其中的收發(fā)Vring及對(duì)應(yīng)的緩存實(shí)現(xiàn)了消息隊(duì)列,向上則聯(lián)通Linux內(nèi)核中的Virtio虛擬輸入輸出總線(xiàn),最后是rpmsg模塊,這樣的結(jié)構(gòu)也大致與ipc-os和ipc-shm對(duì)應(yīng)。

TI Jacinto的IPC

2e7ecd7a-5cd2-11ee-939d-92fbcf53809c.png

在TI的Jacinto上也有類(lèi)似的基于rpmsg的核間通訊方案IPC。從設(shè)計(jì)上與上述方案都大同小異:Mailbox管理中斷,VRing管理數(shù)據(jù),向上通過(guò)rpmsg模塊實(shí)現(xiàn)消息的收發(fā)接口。

07

結(jié)語(yǔ)

本文通過(guò)實(shí)例分析和對(duì)比,介紹了核間通訊的總體軟件架構(gòu)設(shè)計(jì)與各個(gè)子模塊的實(shí)現(xiàn)。作為影響多核系統(tǒng)性能的重要一環(huán),核間通訊在如今的汽車(chē)電子模塊中對(duì)實(shí)時(shí)性和吞吐量都提出了越來(lái)越高的要求,在一些具體業(yè)務(wù)中,還會(huì)對(duì)安全性等方面提出額外的需求。這一切也給核間通訊開(kāi)辟了更多的發(fā)展空間,同時(shí)為廣大汽車(chē)人提供了更廣闊的舞臺(tái)。







審核編輯:劉清

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

    關(guān)注

    60

    文章

    1278

    瀏覽量

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

    關(guān)注

    31

    文章

    5336

    瀏覽量

    120232
  • AUTOSAR
    +關(guān)注

    關(guān)注

    10

    文章

    360

    瀏覽量

    21556
  • 多核處理器
    +關(guān)注

    關(guān)注

    0

    文章

    109

    瀏覽量

    19910
  • FreeRTOS
    +關(guān)注

    關(guān)注

    12

    文章

    484

    瀏覽量

    62144
  • 觸發(fā)中斷
    +關(guān)注

    關(guān)注

    0

    文章

    11

    瀏覽量

    6565

原文標(biāo)題:淺析核間通訊 —— 以NXP IPCF為例

文章出處:【微信號(hào):阿寶1990,微信公眾號(hào):阿寶1990】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    基于labview的工控機(jī)與變頻器通訊的設(shè)計(jì)和實(shí)現(xiàn)

    本文臺(tái)達(dá)vfd-b系列變頻器,介紹一種基于labview軟件利用串口實(shí)現(xiàn)工控機(jī)與變頻器通訊
    發(fā)表于 02-21 13:56 ?7961次閱讀
    基于labview的工控機(jī)與變頻器<b class='flag-5'>間</b><b class='flag-5'>通訊</b>的設(shè)計(jì)和<b class='flag-5'>實(shí)現(xiàn)</b>

    NXP LPC54110試用體驗(yàn)】+雙通訊

    資料。實(shí)現(xiàn)通訊,就要了解雙的開(kāi)發(fā)、啟動(dòng)、通訊和互斥等方方面面。首先到NXP官網(wǎng)下載SDK包
    發(fā)表于 08-10 08:35

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

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

    使用qmss和pktdma進(jìn)行通訊的疑問(wèn)

    各位技術(shù)人員好: ? 我最近在使用多核導(dǎo)航器進(jìn)行通訊功能開(kāi)發(fā),使用論壇里下載的keystone_navigator修改而來(lái)。 ? 設(shè)計(jì)程序功能如下: ? tx queue 800 ? tx
    發(fā)表于 06-21 06:57

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

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

    計(jì)數(shù)器IP了解IP使用流程

    IP應(yīng)用之計(jì)數(shù)器實(shí)驗(yàn)?zāi)康模毫私釬PGA的IP相關(guān)知識(shí)并以計(jì)數(shù)器IP學(xué)會(huì)基本IP使用的流程實(shí)驗(yàn)平臺(tái):無(wú)實(shí)驗(yàn)原理: IP
    發(fā)表于 03-04 06:35

    通信(IPC)解決方案

    框模塊所示,每個(gè)上都運(yùn)行了IPC軟件模塊,從而實(shí)現(xiàn)了TDA4VM上不同之間的通信。本文的后續(xù)部分將以TDA4VM
    發(fā)表于 11-03 07:26

    A+M通信過(guò)程解析

    /G2L系列以及TI的AM62x系列等等。雖然這些處理器的品牌及性能有所不同,但多核通信原理基本一致,都是基于寄存器和中斷傳遞消息,基于共享內(nèi)存?zhèn)鬏敂?shù)據(jù)。配電終端產(chǎn)品,A負(fù)責(zé)
    發(fā)表于 11-23 15:09

    S32G2 IPCF調(diào)試錯(cuò)誤是怎么回事?

    IPCF初始化正常,但是一開(kāi)始會(huì)報(bào)錯(cuò),可以正常接收數(shù)據(jù)。信息如下: 接收了一段時(shí)間,核心A沒(méi)有日志輸出,也沒(méi)有接收到數(shù)據(jù)。M會(huì)報(bào)IPC_SHM_ACQUIRE_BUF失敗。信息如下
    發(fā)表于 03-23 06:47

    i.MX8MPMSPI通訊如何實(shí)現(xiàn)

    小編手上的OKMX8MP-C開(kāi)發(fā)板基于NXP i.MX8M Plus多核異構(gòu)處理器設(shè)計(jì),它的M有1路SPI,因而為實(shí)現(xiàn)SPI的相互通訊,我們就需要兩塊OKMX8MP-C開(kāi)發(fā)板的SPI
    發(fā)表于 04-11 13:35

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

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

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

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

    DSP+ZYNQ核心板是如何實(shí)現(xiàn)通訊的?

    這款DSP + ZYNQ核心板,是如何實(shí)現(xiàn)通訊呢? 核心板簡(jiǎn)介 SOM-TL6678ZH是一款基于TI KeyStone架構(gòu)C6000系列TMS320C6678八
    的頭像 發(fā)表于 03-22 09:50 ?3573次閱讀
    DSP+ZYNQ核心板是如何<b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>核</b><b class='flag-5'>間</b><b class='flag-5'>通訊</b>的?

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

    本文從對(duì)比兩顆分立MCU與單芯片雙MCU開(kāi)始(LPC4350),展開(kāi)介紹了非對(duì)稱(chēng)雙MCU的基礎(chǔ)知識(shí)與重要特點(diǎn)。接下來(lái),重點(diǎn)介紹了
    發(fā)表于 10-26 09:21 ?11次下載
    非對(duì)稱(chēng)雙<b class='flag-5'>核</b>MCU基礎(chǔ)知識(shí)及<b class='flag-5'>核</b><b class='flag-5'>間</b>通信

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

    (Inter-processor communication)來(lái)通信,進(jìn)行數(shù)據(jù)的交互。 通信(IPC)的主要目標(biāo)是:充分利用硬件提供的機(jī)制,
    的頭像 發(fā)表于 09-13 17:32 ?3294次閱讀
    <b class='flag-5'>核</b><b class='flag-5'>間</b>通信(IPC)的目標(biāo)和<b class='flag-5'>實(shí)現(xiàn)</b>機(jī)制
    主站蜘蛛池模板: 在线免费观看成年人视频| 97人视频国产在线观看| 成人高清网站| 色爱区综合激情五月综合激情| 嘟嘟嘟WWW免费高清在线中文| 偷偷鲁青春草原视频| 狠狠色狠狠色综合曰曰| 2021全国精品卡一卡二| 日韩精品免费在线观看| 韩国精品韩国专区久久| 69久久国产精品热88人妻| 色mimi| 久久精品观看影院2828| 99这里有精品视频视频| 污文乖不疼的| 老司机亚洲精品影院在线观看| 东北女人奶大毛多水多| 伊人久久青草| 日本高清片免费观看| 九九热在线观看| 成人无码精品1区2区3区免费看| 亚洲人成在线观看一区二区| 青青草原91| 久久精品九九亚洲精品天堂| 成片免费观看视频在线网| 伊人久久大香线蕉无码麻豆| 日本三级床震| 久久久久久电影| 国产成人综合在线视频| 91久久精品国产亚洲| 无码成A毛片免费| 美女穿丝袜被狂躁动态图| 国产人妻人伦精品熟女麻豆| chaopeng 在线视频| 亚洲精品久久久久久久蜜臀老牛 | 国产成人精品永久免费视频| 怡春院欧美一区二区三区免费| 色人格影院第四色| 美女被黑人巨大进入| 后入式狂顶免费视频| 高h肉文合集|