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

        ?

        基于核間中斷實(shí)現(xiàn)的嵌入式多核系統(tǒng)通信方法*

        2021-06-04 04:11:52
        艦船電子工程 2021年5期
        關(guān)鍵詞:系統(tǒng)

        (中船重工(武漢)凌久電子有限責(zé)任公司 武漢 430074)

        1 引言

        隨著VLSI技術(shù)的發(fā)展和多核結(jié)構(gòu)模型理論的進(jìn)一步成熟,2001年IBM公司推出第一個(gè)商用的多核處理器POWER4,至此開啟了多核處理器新紀(jì)元。經(jīng)過數(shù)十年的發(fā)展,多核處理器已被廣泛應(yīng)用于多媒體計(jì)算,嵌入式設(shè)備,個(gè)人計(jì)算機(jī),商用服務(wù)器和高性能計(jì)算機(jī)等眾多領(lǐng)域[1]。多核系統(tǒng)被認(rèn)為是最能滿足那些對(duì)性能要求不斷增加的嵌入式系統(tǒng)和高性能計(jì)算領(lǐng)域[2],通過增加處理器核心數(shù)目來提高性能。與單核系統(tǒng)相比,多核系統(tǒng)運(yùn)行在更低的頻率范圍來減少能量的消耗以及降低處理器的發(fā)熱量,通過有效管理多指令同步執(zhí)行提升多核系統(tǒng)整體性能[3]。

        多核處理器帶來性能的提升的同時(shí),也有其自身不可避免的缺點(diǎn)。在多核處理器系統(tǒng)中,各核心共用緩存,外部存儲(chǔ)空間,網(wǎng)絡(luò)控制器等資源。運(yùn)行在多核處理器上的應(yīng)用程序在共享使用這些資源同時(shí),也會(huì)有一些信息交互[4],如果各核間不能進(jìn)行有效的通信,勢必會(huì)影響系統(tǒng)整體性能,核間通信成為多核系統(tǒng)的性能瓶頸[5]。

        2 核間中斷原理

        本文選取TI公司的TMS320C6678 DSP平臺(tái)為研究對(duì)象,該處理器是8核同構(gòu)處理器,采用TI最新的KeyStone架構(gòu)。每個(gè)C66x內(nèi)核頻率為1.25GHz,提供每秒高達(dá)40GB MAC定點(diǎn)運(yùn)算和20GB FLOP浮點(diǎn)運(yùn)算能力[6]。TMS320C6678處理器內(nèi)部以及處理器與外部間的通信離不開多核導(dǎo)航器、共享存儲(chǔ)器、TeraNet高速互聯(lián)總線和Hyper-Link 接口[7~8],這些豐富的功能組件配合中斷機(jī)制的使用能為TMS320C6678芯片提供多種靈活的通信方法。中斷機(jī)制是現(xiàn)代計(jì)算機(jī)系統(tǒng)中的基本機(jī)制之一,它幫助系統(tǒng)完成對(duì)外部各種事件的響應(yīng)和處理,是實(shí)現(xiàn)多道程序設(shè)計(jì)的必要條件。

        2.1 CorePac中斷機(jī)制

        TMS320C6678設(shè)備有8個(gè)C66xCorePac核心,每個(gè)CorePac內(nèi)部集成了一個(gè)中斷控制器(INTC),中斷控制器對(duì)系統(tǒng)中斷源進(jìn)行配置,中斷控制器允許最多128個(gè)系統(tǒng)事件被路由到12個(gè)可屏蔽中斷輸入(INT4~I(xiàn)NT15)中去,這128個(gè)系統(tǒng)事件可以是內(nèi)部事件或者外部事件。中斷控制器內(nèi)部集成有Interrupt Selector和 Event Combiner部件,Interrupt Selector使得編程人員可以將這128個(gè)系統(tǒng)事件中的任一事件映射到INT4~I(xiàn)NT15中的任何一個(gè),從而完成事件響應(yīng)。CorePac中總共有128個(gè)系統(tǒng)事件,其中4~127號(hào)事件是來自芯片內(nèi)部或者外部的事件,有實(shí)際物理意義的。Event Combiner可以將第4~127號(hào)系統(tǒng)事件中若干個(gè)合成為0~3事件中的任一個(gè),則系統(tǒng)等效有128個(gè)事件[9]。CorePac內(nèi)部中斷路由結(jié)構(gòu)如圖1所示。

        2.2 核間中斷

        在TMS320C6678設(shè)備中91號(hào)事件默認(rèn)對(duì)應(yīng)為核間中斷[10](IPC_LOCAL),每個(gè)核心通過配置中斷寄存器讓事件控制器產(chǎn)生91號(hào)事件中斷。主要配置的寄存器有IPCGRx和IPCARx兩種類型,其中IPCGRx為中斷生成寄存器,IPCARx為中斷確認(rèn)寄存器,他們共同完成核間中斷。TMS320C6678有8個(gè) IPCGRx(0~7)寄存器和 8 個(gè) IPCARx(0~7)寄存器[11]。當(dāng)向IPCGRx中的IPCG位寫1時(shí),將向corex發(fā)送一個(gè)核間中斷,與此同時(shí)寄存器將相應(yīng)的中斷確認(rèn)寄存器的SRCCx位置1。當(dāng)中斷被確認(rèn)后,寄存器將SRCCx和相應(yīng)的SRCSx位同時(shí)置0。通過查詢中斷確認(rèn)寄存器中對(duì)應(yīng)位值,中斷服務(wù)程序可以知道中斷的來源。C6678多核處理器間的核間中斷即完成一次中斷通信過程。此處的核間通信僅能起到同步通知作用,并不能傳輸數(shù)據(jù)信息。核間中斷實(shí)現(xiàn)過程如圖2所示。

        圖2 核間中斷實(shí)現(xiàn)過程

        DSP工作在有許多外部異步事件存在的環(huán)境中,當(dāng)事件發(fā)生時(shí)他們要求DSP能夠立即去處理該事件。中斷是事件用來停止CPU當(dāng)前運(yùn)行的任務(wù)轉(zhuǎn)而去執(zhí)行該事件的過程。事件的來源可以是芯片內(nèi)部或者芯片外部,例如時(shí)鐘,AD轉(zhuǎn)換,其他外設(shè)等。

        3 核間通信設(shè)計(jì)與實(shí)現(xiàn)

        在嵌入式系統(tǒng)中,中斷機(jī)制可以平衡外部設(shè)備與處理器之間的速度差異,實(shí)現(xiàn)更友好的人機(jī)交互,是所有處理器必須具備的一個(gè)能力。在多核系統(tǒng)中,各種通信方式幾乎都離不開中斷機(jī)制。如SRIO通信方式[12]中有SRIO中斷,PCIe通信方式有PCIe中斷,EDMA通信方式有EDMA中斷[13]等。

        中斷機(jī)制在數(shù)據(jù)通信中起著重要作用,靈活運(yùn)用中斷機(jī)制能夠?yàn)橄到y(tǒng)性能帶來提升。本文基于TMS320C6678提供的共享存儲(chǔ)器,利用多核處理器核間中斷機(jī)制,設(shè)計(jì)并實(shí)現(xiàn)了一種簡易的核間通信方法,下面從通信數(shù)據(jù)結(jié)構(gòu)、核間中斷請求和響應(yīng)、消息發(fā)送、消息接收及消息通信過程五個(gè)部分進(jìn)行詳細(xì)介紹。

        3.1 通信數(shù)據(jù)結(jié)構(gòu)

        在進(jìn)行數(shù)據(jù)通信時(shí),消息都是以一定的結(jié)構(gòu)存放于系統(tǒng)內(nèi)存中,稱之為通信數(shù)據(jù)結(jié)構(gòu),本文設(shè)計(jì)的通信數(shù)據(jù)結(jié)構(gòu)如下:

        基于TMS320C6678的存儲(chǔ)體系結(jié)構(gòu),將用于通信的數(shù)據(jù)(即sysMsg類型數(shù)據(jù))存放于共享內(nèi)存(如:DDR3)中,以實(shí)現(xiàn)多核間的數(shù)據(jù)通信。由于多核之間可相互進(jìn)行通信,且多核之間并行運(yùn)行,如果使用同一塊共享內(nèi)存,那么多核之間必然存在競爭,可能導(dǎo)致系統(tǒng)死鎖或者數(shù)據(jù)無效,因此,需要對(duì)共享內(nèi)存空間進(jìn)行劃分。本文設(shè)計(jì)的通信方法為每一對(duì)通信核單獨(dú)劃分一塊固定的共享內(nèi)存塊,這樣可以避免多核并行運(yùn)行時(shí)系統(tǒng)出現(xiàn)錯(cuò)誤,如圖3所示,TMS320C6678有8個(gè)核,兩兩組成一對(duì)通信核,因此,將共享內(nèi)存劃分為28個(gè)固定存儲(chǔ)塊用于存放sysMsg類型數(shù)據(jù),并且,通過sysMsg類型中的標(biāo)志位域進(jìn)行通信雙方的同步。

        圖3 共享內(nèi)存空間劃分

        3.2 核間中斷請求和響應(yīng)

        當(dāng)消息發(fā)送方完成數(shù)據(jù)發(fā)送后,本文設(shè)計(jì)的通信方法通過核間中斷喚醒接收方進(jìn)行數(shù)據(jù)接收,避免了查詢,提高了處理器利用率和通信效率。

        核間中斷主要包括中斷請求(即觸發(fā)中斷)和中斷響應(yīng)(即運(yùn)行中斷服務(wù)程序)。其中,發(fā)送方可以通過配置核間中斷寄存器產(chǎn)生核間中斷,同時(shí)將發(fā)送方所在核(源核)信息保存在中斷確認(rèn)寄存器中,詳細(xì)方法參見本文第二章。當(dāng)接收方所在的核(目的核)響應(yīng)該核間中斷時(shí),將從中斷確認(rèn)寄存器中獲取源核信息,同時(shí)處理消息數(shù)據(jù)。由于同一個(gè)核可能同時(shí)接收來自不同核發(fā)送的消息數(shù)據(jù),因此,本文設(shè)計(jì)了一個(gè)全局中斷服務(wù)函數(shù)表gFunc,用于存放源核x對(duì)應(yīng)的中斷服務(wù)函數(shù)。當(dāng)目標(biāo)核收到源核發(fā)送的核間中斷后,立即響應(yīng)該中斷跳轉(zhuǎn)到中斷服務(wù)程序,調(diào)用中斷服務(wù)函數(shù)表中的函數(shù)進(jìn)行消息數(shù)據(jù)處理。中斷處理過程如圖4所示。

        圖4 中斷處理過程

        3.3 消息發(fā)送

        完成通信數(shù)據(jù)結(jié)構(gòu)定義、共享內(nèi)存空間劃分和中斷服務(wù)函數(shù)設(shè)置后,通過消息發(fā)送函數(shù)進(jìn)行核間通信。在消息發(fā)送過程中,首先,指定發(fā)送目的核號(hào);其次,根據(jù)通信雙方核號(hào)查找對(duì)應(yīng)的共享內(nèi)存塊;然后,獲取共享資源互斥鎖,循環(huán)檢查標(biāo)志位狀態(tài)信息,直到共享內(nèi)存塊可寫(即標(biāo)志位為0);接著,向共享內(nèi)存塊中寫入消息數(shù)據(jù),設(shè)置共享內(nèi)存塊不可寫(即標(biāo)志位置為1),釋放共享資源互斥鎖;最后,向目的核發(fā)送核間中斷,通知目的核接收消息。其發(fā)送流程如圖5所示。

        圖5 消息發(fā)送流程圖

        3.4 消息接收

        當(dāng)源核消息發(fā)送完成后,通過核間中斷通知目的核進(jìn)行消息接收,即源核將消息寫入共享內(nèi)存塊后,向目的核發(fā)送核間中斷,目的核收到該中斷后,立即響應(yīng)并執(zhí)行中斷服務(wù)程序,并根據(jù)源核號(hào)跳轉(zhuǎn)到對(duì)應(yīng)的中斷服務(wù)函數(shù)中進(jìn)行消息接收處理。在消息接收過程中,首先,根據(jù)源核號(hào)與目的核號(hào)查找存放消息的共享內(nèi)存塊;然后,獲取共享資源互斥鎖,循環(huán)檢查標(biāo)志位狀態(tài)信息,直到共享內(nèi)存塊可讀(即標(biāo)志位為1);接著,從共享內(nèi)存塊中讀出消息數(shù)據(jù),設(shè)置共享內(nèi)存塊可寫(即標(biāo)志位置為0),釋放共享資源互斥鎖;最后,對(duì)消息數(shù)據(jù)進(jìn)行處理。消息接收流程如圖6所示。

        圖6 消息接收流程圖

        3.5 消息通信過程

        結(jié)合消息發(fā)送流程和消息接收流程,一次完整的核間消息通信過程如圖7所示。

        圖7 消息通信過程圖

        消息塊結(jié)構(gòu)體包含兩個(gè)成員,標(biāo)志位和消息體。標(biāo)志位用于監(jiān)控當(dāng)前傳輸狀態(tài),當(dāng)標(biāo)志位為0時(shí),發(fā)送方才能向消息體寫入數(shù)據(jù),當(dāng)標(biāo)志位為1時(shí)接收方才能從消息體中讀取數(shù)據(jù)。標(biāo)志位可以保證頻繁發(fā)送時(shí),前一次發(fā)送的數(shù)據(jù)不被覆蓋。下面以核0向核1發(fā)送消息為例對(duì)傳輸過程進(jìn)行說明:

        1)核0查看0核和1核這一對(duì)通信核對(duì)應(yīng)的共享內(nèi)存塊標(biāo)志位是否為0,若為0,則轉(zhuǎn)入步驟2);若不為0,則表明上一次傳輸?shù)南⑦€沒處理,核0向核1發(fā)送核間中斷,并轉(zhuǎn)入步驟1)。

        2)核0向共享內(nèi)存塊的消息體寫入數(shù)據(jù),并更改共享內(nèi)存塊的標(biāo)志位為1。

        3)核0向核1發(fā)送核間中斷,通知核1進(jìn)行處理消息。

        4)核1收到核0的核間中斷后,進(jìn)入中斷服務(wù)程序函數(shù),對(duì)共享內(nèi)存塊中的消息體數(shù)據(jù)進(jìn)行處理,處理完成后更改共享內(nèi)存塊中的標(biāo)志位為0。

        4 核間通信測試

        本文選擇TI的TMS320C6678開發(fā)板卡作為實(shí)驗(yàn)平臺(tái),對(duì)本文設(shè)計(jì)的核間通信方法進(jìn)行壓力測試和性能測試。

        壓力測試通過選取DSP任意一個(gè)核作為主核向其他從核連續(xù)發(fā)送消息,從核收到消息后立即回發(fā)給主核一個(gè)應(yīng)答消息,主核收到所有的從核應(yīng)答消息后進(jìn)行下一輪測試,該過程持續(xù)測試4h,檢查系統(tǒng)是否正常運(yùn)行。

        性能測試通過選取任意兩個(gè)核進(jìn)行通信,發(fā)送核循環(huán)向目標(biāo)核發(fā)送100萬次消息,目標(biāo)核收到消息后立即處理,統(tǒng)計(jì)發(fā)送100萬次所耗時(shí)間,并計(jì)算發(fā)送速率,其測試結(jié)果如表1所示。

        表1 核間通信測試結(jié)果

        經(jīng)測試,該核間通信方法可以完成核間消息傳輸;在進(jìn)行4h的一對(duì)多核傳輸壓力測試過程中,消息無丟失且數(shù)據(jù)傳輸正確,該方法可保證消息傳輸?shù)挠行?;在一?duì)一傳輸速率測試中,測試100萬次,其發(fā)送速率可達(dá)到33.3萬次/s。

        5 結(jié)語

        采用多核處理器是提高嵌入式系統(tǒng)性能的一個(gè)重要途徑,雖然多核系統(tǒng)能較大地提高系統(tǒng)的運(yùn)算能力,但同時(shí)也給應(yīng)用開發(fā)人員帶來了一些困難。嵌入式多核系統(tǒng)應(yīng)用開發(fā)所面臨的難題之一是多核之間的通信,只有保證通信數(shù)據(jù)的有效性和實(shí)時(shí)性,運(yùn)行在多核處理器上的任務(wù)才能高效并行運(yùn)行,多核處理器的性能才能得到充分發(fā)揮。

        本文在研究了嵌入式多核處理器架構(gòu)的基礎(chǔ)上,充分利用多核處理器核間中斷機(jī)制,將共享內(nèi)存塊作為消息載體,設(shè)計(jì)并實(shí)現(xiàn)了一種包含消息發(fā)送與接收的多核處理器間消息通信方法。經(jīng)過測試驗(yàn)證,該方法可以滿足多核處理器之間的高效、穩(wěn)定通信。在后續(xù)的研究工作中,可對(duì)本方法進(jìn)行功能擴(kuò)展與優(yōu)化,以滿足日益復(fù)雜的應(yīng)用場景需求。

        猜你喜歡
        系統(tǒng)
        Smartflower POP 一體式光伏系統(tǒng)
        WJ-700無人機(jī)系統(tǒng)
        ZC系列無人機(jī)遙感系統(tǒng)
        北京測繪(2020年12期)2020-12-29 01:33:58
        基于PowerPC+FPGA顯示系統(tǒng)
        基于UG的發(fā)射箱自動(dòng)化虛擬裝配系統(tǒng)開發(fā)
        半沸制皂系統(tǒng)(下)
        FAO系統(tǒng)特有功能分析及互聯(lián)互通探討
        連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
        一德系統(tǒng) 德行天下
        PLC在多段調(diào)速系統(tǒng)中的應(yīng)用
        亚洲综合色婷婷七月丁香| 色婷婷综合久久久久中文字幕| 久久国产精品美女厕所尿尿av| 精品人妻一区二区三区久久| 久久久久亚洲av无码专区首jn| chinese国产乱在线观看| 无码高潮少妇毛多水多水免费| 水蜜桃网站视频在线观看| 亚洲人精品午夜射精日韩| 中文人妻无码一区二区三区在线 | 四虎精品成人免费观看| 精品人妻一区二区久久| 粉嫩av最新在线高清观看| 三年片免费观看大全有| 杨幂AV污网站在线一区二区| 中国老太老肥熟女视频| 国产高清在线一区二区不卡| 337p日本欧洲亚洲大胆精品| 香蕉视频在线观看国产| 亚洲中文字幕国产综合| 最新国产不卡在线视频| 亚洲欧洲精品无码av| 亚洲av日韩av综合aⅴxxx| 国产精品黄色av网站| 亚洲最新无码中文字幕久久| 亚洲欧洲∨国产一区二区三区| 国产精品福利片免费看| 久久久黄色大片免费看| 亚洲人成影院在线无码按摩店| 亚洲精品永久在线观看| 国产精品亚洲一区二区极品| 亚洲伊人av天堂有码在线| 国产一区二区女内射| 人妻丰满熟妇av无码区hd| 一区二区三区黄色一级片| 久久婷婷五月综合97色直播| 曰本女人牲交全视频免费播放| 少妇高潮无码自拍| 亚洲精选自偷拍一区二| 国产精品无码久久久久久久久久| 亚洲国产精品悠悠久久琪琪|