亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        面向嵌入式異構(gòu)平臺(tái)的高實(shí)時(shí)通信中間件設(shè)計(jì)

        2023-05-29 09:24:44李路野丁琳琳黎賀
        電子技術(shù)與軟件工程 2023年7期
        關(guān)鍵詞:共享內(nèi)存拷貝中間件

        李路野 丁琳琳 黎賀

        (南京電子技術(shù)研究所 江蘇省南京市 210039)

        為了適應(yīng)未來(lái)裝備支持新功能、新算法快速迭代和應(yīng)用的需求,要求應(yīng)用軟件與底層操作系統(tǒng)和硬件解耦合,通信中間件屏蔽了底層分布式異構(gòu)硬件環(huán)境的差異,提供統(tǒng)一標(biāo)準(zhǔn)的通信接口,已經(jīng)成為雷達(dá)開(kāi)放式體系架構(gòu)的核心組成部分[1]。

        雷達(dá)信息處理領(lǐng)域?qū)?shí)時(shí)性要求很高,多一次數(shù)據(jù)的拷貝都可能會(huì)帶來(lái)單幀數(shù)據(jù)時(shí)延的增加。為了最小化數(shù)據(jù)傳輸帶來(lái)的時(shí)延,本文提出了一種零拷貝方法設(shè)計(jì)面向嵌入式異構(gòu)平臺(tái)的通信中間件。同時(shí),為了支持應(yīng)用靈活部署在不同節(jié)點(diǎn)上,應(yīng)用層采用同一種通信接口實(shí)現(xiàn)了節(jié)點(diǎn)內(nèi)、節(jié)點(diǎn)間的高實(shí)時(shí)通信。

        1 國(guó)內(nèi)外研究現(xiàn)狀

        公共對(duì)象請(qǐng)求代理體系結(jié)構(gòu)(CORBA, Common Object Request Broker Architecture)規(guī)范[2]由對(duì)象管理組織(OMG, Object Management Group)提出,于1991年頒布了1.0 版本。CORBA 技術(shù)用于提供分布式對(duì)象之間的互操作性,支持信息交換,獨(dú)立于硬件平臺(tái)、編程語(yǔ)言和操作系統(tǒng)。不過(guò)CORBA 標(biāo)準(zhǔn)過(guò)于復(fù)雜,并沒(méi)有大范圍流行。

        2004年,OMG 組織提出了數(shù)據(jù)分發(fā)服務(wù)(DDS,Data Distribution Service)規(guī)范[3],它是在CORBA 和HLA 等標(biāo)準(zhǔn)的基礎(chǔ)上,制定的分布式系統(tǒng)實(shí)時(shí)通信中間件技術(shù)規(guī)范。DDS 模型建立了共享數(shù)據(jù)空間的概念,數(shù)據(jù)發(fā)布者發(fā)布的數(shù)據(jù)可以被任何應(yīng)用使用。數(shù)據(jù)的發(fā)布者和訂閱者之間解耦合,無(wú)需知道彼此是否存在,也不用關(guān)注底層通信實(shí)現(xiàn)細(xì)節(jié),具有以下通信特點(diǎn):

        (1)可擴(kuò)展性,新的用戶可以很容易地加入系統(tǒng)中,而系統(tǒng)本身不需要做任何改動(dòng);

        (2)匿名性,信息生產(chǎn)者和消費(fèi)者互相不向?qū)Ψ奖┞蹲约旱纳矸菪畔ⅲ?/p>

        (3)多點(diǎn)通信,一個(gè)事件可以同時(shí)被發(fā)送到多個(gè)信息消費(fèi)者;

        (4)可配置通信,以數(shù)據(jù)為中心來(lái)進(jìn)行數(shù)據(jù)分發(fā),并將資源狀況、對(duì)資源的期待程度、網(wǎng)絡(luò)狀況等都用QoS 參數(shù)來(lái)配置,大大增強(qiáng)了通信的實(shí)時(shí)性和靈活性。如圖1 所示。

        圖1:DDS 發(fā)布訂閱機(jī)制

        劉巍等[4]對(duì)國(guó)產(chǎn)化實(shí)時(shí)通信中間件DDS 在X86、PPC T4240 和國(guó)產(chǎn)化華睿2 號(hào)處理平臺(tái)上的性能進(jìn)行了針對(duì)性的優(yōu)化,其中X86 平臺(tái)平均性能為美國(guó)同類產(chǎn)品RTI DDS 的2 倍。

        DDS 目前的收數(shù)接口和發(fā)數(shù)接口標(biāo)準(zhǔn)決定了其發(fā)數(shù)需要等數(shù)據(jù)發(fā)完或?qū)?shù)據(jù)拷貝到發(fā)數(shù)緩沖區(qū),收數(shù)需要將數(shù)據(jù)拷貝到用戶指定地址空間。在某些數(shù)據(jù)傳輸時(shí)延要求極為嚴(yán)苛的場(chǎng)景下,DDS 難以滿足實(shí)際需求。

        2 系統(tǒng)架構(gòu)

        面向嵌入式平臺(tái)的高實(shí)時(shí)通信中間件系統(tǒng)架構(gòu)主要包括底層適配層、通用層、用戶接口層,如圖2 所示。

        圖2:通信中間件系統(tǒng)架構(gòu)

        通信中間件系統(tǒng)架構(gòu)自底向上包括:

        (1)底層適配層:該層主要對(duì)DSP、CPU 等不同硬件平臺(tái)上用到的SRIO、UDP 等通信協(xié)議進(jìn)行封裝。

        (2)通用層:信息庫(kù)模塊作為服務(wù)器節(jié)點(diǎn),所有的發(fā)布訂閱信息都在信息庫(kù)模塊中完成握手匹配;通用發(fā)布、訂閱注冊(cè)模塊則是支持應(yīng)用往信息庫(kù)發(fā)送注冊(cè)信息。

        (3)用戶接口層:該層參考DDS 規(guī)范接口,提供通用的基于發(fā)布訂閱機(jī)制收發(fā)數(shù)的接口。

        本文工作的設(shè)計(jì)亮點(diǎn)在于為用戶的收發(fā)提供了兩對(duì)接口,發(fā)數(shù)接口包括preWrite 和write,其中preWrite是從發(fā)數(shù)緩沖區(qū)先申請(qǐng)一塊空間,將未來(lái)要發(fā)的數(shù)據(jù)放在其中,處理過(guò)程的目的地址可直接使用該地址,減少了一次數(shù)據(jù)拷貝;write 接口則是等要發(fā)的數(shù)準(zhǔn)備好之后調(diào)用。收數(shù)接口包括read 和postRead,其中read 是獲取數(shù)據(jù)地址,當(dāng)用戶使用完之后,調(diào)用postRead 釋放數(shù)據(jù)所占用的地址空間,減少了一次數(shù)據(jù)從緩沖區(qū)拷貝到用戶地址空間的操作。

        3 節(jié)點(diǎn)內(nèi)基于共享內(nèi)存的通信

        在CPU 或DSP 的單個(gè)節(jié)點(diǎn)內(nèi)部,兩個(gè)不同應(yīng)用之間利用通信中間件進(jìn)行數(shù)據(jù)傳輸時(shí),底層可采用共享內(nèi)存的方式,其收發(fā)數(shù)流程如圖3 和圖4 所示。

        圖3:共享內(nèi)存發(fā)數(shù)流程

        圖4:共享內(nèi)存收數(shù)流程

        對(duì)于共享內(nèi)存通信,每個(gè)CPU/DSP 節(jié)點(diǎn)內(nèi)部有一塊數(shù)據(jù)緩沖區(qū)DataBuf 用于存放應(yīng)用間待收發(fā)的數(shù)據(jù);每個(gè)主題對(duì)應(yīng)一個(gè)地址緩沖區(qū)AddrFifo,發(fā)端把數(shù)據(jù)準(zhǔn)備好后,將數(shù)據(jù)首地址和長(zhǎng)度寫入AddrFifo,收端則從AddrFifo 中獲取數(shù)據(jù)地址和長(zhǎng)度。

        基于共享內(nèi)存的收發(fā)數(shù)過(guò)程中緩沖區(qū)狀態(tài)變化過(guò)程如圖5 所示。

        (1)緩沖區(qū)狀態(tài)1 表示在調(diào)用memPreWrite 之前,數(shù)據(jù)緩沖區(qū)的空間未被占用;

        (2) 緩沖區(qū)狀態(tài)2 是指在發(fā)數(shù)應(yīng)用調(diào)用memPreWrite 之后,數(shù)據(jù)緩沖區(qū)DataBuf 分配了一塊空間(陰影區(qū)域),表示該空間已分配,不能被其它應(yīng)用使用;

        (3)緩沖區(qū)狀態(tài)3 是指發(fā)數(shù)應(yīng)用將數(shù)據(jù)已經(jīng)寫入DataBuf(灰色區(qū)域);

        (4)緩沖區(qū)狀態(tài)4 是發(fā)數(shù)應(yīng)用在調(diào)用memWrite 后,將對(duì)應(yīng)的數(shù)據(jù)緩沖區(qū)首地址和長(zhǎng)度寫入主題對(duì)應(yīng)的地址緩沖區(qū)AddrFifo 中;

        (5)緩沖區(qū)狀態(tài)5 是收數(shù)應(yīng)用調(diào)用memRead 接口讀取地址緩沖區(qū)AddrFifo,并按照其中的首地址和長(zhǎng)度去數(shù)據(jù)緩沖區(qū)DataBuf 中獲取數(shù)據(jù)并使用;

        (6)緩沖區(qū)狀態(tài)6 是指收數(shù)應(yīng)用在使用完數(shù)據(jù)后調(diào)用memPostRead 釋放對(duì)DataBuf 灰色區(qū)域的占用。

        通過(guò)上述緩沖區(qū)狀態(tài)變化過(guò)程分析,數(shù)據(jù)從在應(yīng)用A 中產(chǎn)生到應(yīng)用B 中使用,沒(méi)有經(jīng)歷過(guò)數(shù)據(jù)拷貝,真正做到了零拷貝數(shù)據(jù)傳輸。而傳統(tǒng)的數(shù)據(jù)收發(fā)接口,即便同樣是基于共享內(nèi)存,發(fā)數(shù)應(yīng)用至少要將數(shù)據(jù)拷貝到發(fā)數(shù)緩沖區(qū),然后收數(shù)應(yīng)用將數(shù)據(jù)拷貝到應(yīng)用申請(qǐng)的地址空間,至少多出兩次數(shù)據(jù)拷貝時(shí)間。

        4 DSP節(jié)點(diǎn)間基于Rapid IO的通信

        在兩個(gè)DSP節(jié)點(diǎn)之間,數(shù)據(jù)收發(fā)采用Rapid IO協(xié)議,節(jié)點(diǎn)間的收發(fā)數(shù)流程如下。

        (1)收發(fā)端基于主題進(jìn)行開(kāi)窗等初始化操作,窗口大小可配置,窗口地址由通信中間件統(tǒng)一管理;初始化時(shí)發(fā)端啟動(dòng)發(fā)數(shù)任務(wù),收端啟動(dòng)收數(shù)任務(wù)。

        (2)發(fā)端所在節(jié)點(diǎn)包含一個(gè)統(tǒng)一的數(shù)據(jù)緩沖區(qū)DataBuf_send 和地址緩沖區(qū)AddrFifo,如圖6 所示。

        圖6:發(fā)數(shù)端的部件調(diào)用接口過(guò)程和發(fā)數(shù)任務(wù)流程

        1.首先在數(shù)據(jù)緩沖區(qū)申請(qǐng)一段空間(srioPreWrite),存放將要發(fā)送的數(shù)據(jù),真實(shí)數(shù)據(jù)前會(huì)由中間件添加一個(gè)包頭,包括要發(fā)送的目的SRIO 號(hào);

        2.待數(shù)據(jù)放入數(shù)據(jù)緩沖區(qū)后,將該段數(shù)據(jù)的首地址和長(zhǎng)度放入地址緩沖區(qū)AddrFifo 內(nèi)(srioWrite);

        3.發(fā)數(shù)任務(wù)通過(guò)讀取地址緩沖區(qū)AddrFifo 中的地址列表逐個(gè)發(fā)數(shù),發(fā)數(shù)的參數(shù)除了數(shù)據(jù)首地址和長(zhǎng)度,還包括數(shù)據(jù)包頭中數(shù)據(jù)的目的SRIO;

        4.發(fā)數(shù)完成后,會(huì)緊接著發(fā)送一個(gè)門鈴給收端。

        (3)收端對(duì)應(yīng)每個(gè)發(fā)數(shù)節(jié)點(diǎn)有獨(dú)立的收數(shù)緩沖區(qū)DataBuf_recv_i,(收數(shù)緩沖區(qū)直接在收窗映射的空間內(nèi)創(chuàng)建,不再額外申請(qǐng))對(duì)應(yīng)每一個(gè)訂閱的主題各有一個(gè)地址緩沖區(qū)AddrFifo_j,如圖7 所示。

        圖7:收數(shù)端收數(shù)過(guò)程

        1.收端在收到門鈴之后,響應(yīng)門鈴服務(wù)函數(shù)將門鈴號(hào)和門鈴值存放在DoorBellFifo 中,收數(shù)任務(wù)監(jiān)測(cè)DoorBellFifo,通過(guò)門鈴來(lái)源SRIO 號(hào)判斷收到的數(shù)據(jù)在哪個(gè)收數(shù)緩沖區(qū);

        2.讀取收到的數(shù)據(jù)包頭,獲取該數(shù)據(jù)對(duì)應(yīng)的主題信息,將該段數(shù)據(jù)的首地址和長(zhǎng)度存入相應(yīng)主題在收數(shù)節(jié)點(diǎn)上對(duì)應(yīng)的地址緩沖區(qū);

        3.部件通過(guò)srioRead 獲取AddrFifo_j 中相應(yīng)數(shù)據(jù)的首地址和長(zhǎng)度;

        4.數(shù)據(jù)使用完畢后,通過(guò)srioPostRead 釋放數(shù)據(jù)空間。

        DSP 節(jié)點(diǎn)間基于Rapid IO 的通信時(shí),兩個(gè)節(jié)點(diǎn)上緩沖區(qū)的狀態(tài)變化過(guò)程如圖8 所示。

        圖8:節(jié)點(diǎn)間通信時(shí)緩沖區(qū)狀態(tài)

        在CPU 節(jié)點(diǎn)間通常采用UDP 網(wǎng)絡(luò)傳輸協(xié)議,整個(gè)通信過(guò)程與上文所屬DSP 節(jié)點(diǎn)間基于Rapid IO 的通信中間件設(shè)計(jì)原理基本一致,文中不再重復(fù)描述。

        5 總結(jié)

        針對(duì)雷達(dá)信息處理低時(shí)延需要,本文提出了一種嵌入式平臺(tái)高實(shí)時(shí)通信中間件設(shè)計(jì),其主要具有2 個(gè)特點(diǎn):

        (1)從接口形式上來(lái)說(shuō),將收數(shù)和發(fā)數(shù)接口分別從一個(gè)設(shè)計(jì)為一對(duì),確保要發(fā)送的數(shù)據(jù)直接在發(fā)數(shù)緩沖區(qū)中產(chǎn)生,接收的數(shù)據(jù)直接在接收緩沖區(qū)中使用,真正做到數(shù)據(jù)零拷貝、降低時(shí)延;

        (2)從覆蓋的底層傳輸協(xié)議來(lái)說(shuō),支持節(jié)點(diǎn)內(nèi)的共享內(nèi)存和節(jié)點(diǎn)間的Rapid IO 傳輸,并且可以做到節(jié)點(diǎn)內(nèi)和節(jié)點(diǎn)間傳輸協(xié)議的自適應(yīng),節(jié)省傳輸開(kāi)銷。

        猜你喜歡
        共享內(nèi)存拷貝中間件
        通過(guò)QT實(shí)現(xiàn)進(jìn)程間的通信
        中國(guó)生殖健康(2018年1期)2018-11-06 07:14:38
        RFID中間件技術(shù)及其應(yīng)用研究
        電子制作(2018年14期)2018-08-21 01:38:10
        基于VanConnect中間件的設(shè)計(jì)與開(kāi)發(fā)
        基于PCI總線的多處理器協(xié)同機(jī)制研究
        中間件在高速公路領(lǐng)域的應(yīng)用
        QNX下PEX8311多路實(shí)時(shí)數(shù)據(jù)采集的驅(qū)動(dòng)設(shè)計(jì)
        電子世界(2014年21期)2014-04-29 06:41:36
        一種高效RTAI 共享內(nèi)存管理層的研究與實(shí)現(xiàn)*
        一種支持智能環(huán)境構(gòu)建的中間件
        文件拷貝誰(shuí)最“給力”
        天美麻花果冻视频大全英文版 | 人妻少妇精品专区性色anvn| 久久国产在线精品观看| 成年女人免费v片| 亚洲 另类 日韩 制服 无码| 日日碰狠狠丁香久燥| 国产午夜在线观看视频播放| 亚洲一二三四五区中文字幕| 亚洲一区二区岛国高清| 日本一区二区视频在线| 欧美亚洲国产一区二区三区| 国产在线视频一区二区三区| 97超级碰碰人妻中文字幕| 亚洲成AV人在线观看网址| 中文字幕亚洲精品高清| 黑人老外3p爽粗大免费看视频| 亚洲日本一区二区一本一道 | 色yeye免费视频免费看| 97中文字幕一区二区| 国产精品伦理久久一区| 国产精品一区二区性色| 99久久婷婷国产综合精品青草免费| 美女自卫慰黄网站| 亚洲成a人片77777kkkkk| 亚洲av成人波多野一区二区| 三级国产精品久久久99| 国产又爽又大又黄a片| 国产人妻久久精品二区三区| 欧美日韩精品福利在线观看| 欧美在线观看www| 老司机在线免费视频亚洲| 中文字幕av中文字无码亚| 亚洲国产另类精品| 国产男女猛烈无遮挡免费视频| 久国产精品久久精品国产四虎| 亚洲精品一区二区三区在线观| 亚洲精品白浆高清久久久久久| 蜜臀久久99精品久久久久久小说| 久久久久亚洲精品美女| 久久亚洲一区二区三区四区五| 少妇高潮av久久久久久|