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

        ?

        達(dá)芬奇異構(gòu)多核處理器核間通信技術(shù)研究

        2015-04-10 03:23:17國常義李超群
        電視技術(shù) 2015年7期
        關(guān)鍵詞:間通信共享內(nèi)存達(dá)芬奇

        國常義,李超群,劉 峰

        (南京郵電大學(xué) 圖像處理與圖像通信江蘇省重點(diǎn)實(shí)驗(yàn)室,江蘇 南京 210003)

        ?

        達(dá)芬奇異構(gòu)多核處理器核間通信技術(shù)研究

        國常義,李超群,劉 峰

        (南京郵電大學(xué) 圖像處理與圖像通信江蘇省重點(diǎn)實(shí)驗(yàn)室,江蘇 南京 210003)

        針對目前通用的達(dá)芬奇異構(gòu)多核處理器,研究了其ARM核、DSP核以及視頻協(xié)處理器之間的通信與協(xié)作機(jī)制。在分析多核處理器核間通信原理的基礎(chǔ)上,研究了TMS320DM816x系列達(dá)芬奇異構(gòu)多核處理器的核間通信技術(shù),詳細(xì)闡述片上核間互聯(lián)結(jié)構(gòu)與核間通信軟件的實(shí)現(xiàn)。最后基于SysLink底層通信模塊設(shè)計(jì)了多路高清音視頻應(yīng)用系統(tǒng),對核間通信進(jìn)行驗(yàn)證。系統(tǒng)可充分發(fā)揮各處理核的性能,實(shí)現(xiàn)了各核間的高效協(xié)作。

        異構(gòu)多核;核間通信;SysLink;TMS320DM816x

        隨著信息技術(shù)的發(fā)展與需求的提升,傳統(tǒng)單核SOC不能滿足人們的需求,市面上出現(xiàn)越來越多的嵌入式多核處理器。嵌入式多核處理器主要分兩類:第一類是同構(gòu)多核,如聯(lián)發(fā)科MTK6592集成8顆Cortex-A7核;另一類是異構(gòu)多核,如德州儀器(TI)的達(dá)芬奇與OMAP系列的ARM+DSP系列處理器。異構(gòu)多核處理器集成結(jié)構(gòu)、性能不同的多個(gè)核心,可發(fā)揮各核所長,實(shí)現(xiàn)資源的最佳配置,能夠很好地提升系統(tǒng)整體性能、降低功耗。但是,多核處理器性能的發(fā)揮離不開核間的通信與協(xié)作,因此處理器核間的通信技術(shù)至關(guān)重要。

        達(dá)芬奇技術(shù)是TI專為數(shù)字圖像、視頻、音頻信號處理設(shè)計(jì)的平臺,包括達(dá)芬奇處理器、開發(fā)環(huán)境、算法庫和其他技術(shù)支持等[1]。TI為用戶提供ARM+視頻協(xié)處理器、ARM+DSP、ARM+DSP+視頻協(xié)處理器等不同架構(gòu)的達(dá)芬奇處理器。文章基于達(dá)芬奇異構(gòu)多核處理器,研究片上多個(gè)處理器核的互聯(lián)結(jié)構(gòu)及核間通信的實(shí)現(xiàn),并介紹了底層核間通信軟件的實(shí)現(xiàn)。最后,基于底層核間通信模塊SysLink實(shí)現(xiàn)了不同核之間的任務(wù)通信與算法調(diào)用,通過系統(tǒng)高效的核間協(xié)作與通信,完成多路高清視頻采集、編碼、處理、傳輸、顯示以及音頻編碼的軟件框架。

        1 異構(gòu)多核間通信的基本原理

        本文主要基于TMS320DM816x(以下簡稱DM816x)系列達(dá)芬奇異構(gòu)多核處理器進(jìn)行研究。DM816x集成ARM Cortex-A8核、C674x DSP核、高清視頻/圖像協(xié)處理器(HDVICP2)、高清視頻處理子系統(tǒng)(HDVPSS)以及SGX530圖形加速器。HDVICP2由基于ARM968內(nèi)核的Video M3核管理,可完成H.264、MPEG-4、MJPEG編解碼;HDVPSS由VPSS M3核管理,具有2路高清視頻捕獲通道及顯示通道。

        異構(gòu)多核處理器大多采用主從式的結(jié)構(gòu)。主從式結(jié)構(gòu)根據(jù)不同核的功能把處理器核分為主核和從核。主核的結(jié)構(gòu)和功能一般較為復(fù)雜,負(fù)責(zé)全局資源、任務(wù)的管理和調(diào)度并完成從核的引導(dǎo)加載。從核主要接受主核的管理,負(fù)責(zé)運(yùn)行主核分配的任務(wù),并具有本地任務(wù)調(diào)度與管理功能[2]。在多核處理器中,根據(jù)不同核的結(jié)構(gòu),各個(gè)核可運(yùn)行相同或不同的操作系統(tǒng)。在DM816x中ARM為主核、DSP和協(xié)處理器為從核,ARM核運(yùn)行開源的Linux系統(tǒng),DSP核和M3核運(yùn)行TI為其DSP設(shè)計(jì)的SYS/BIOS實(shí)時(shí)內(nèi)核。

        主從式的異構(gòu)多核處理器核間的互聯(lián)結(jié)構(gòu)如圖1所示。

        圖1 主從式異構(gòu)多核互聯(lián)結(jié)構(gòu)

        從圖1可知,為了實(shí)現(xiàn)異構(gòu)多核之間的通信,在芯片內(nèi)設(shè)計(jì)了核間中斷控制器以及核間互聯(lián)的總線。核間中斷是多核間任務(wù)同步與通信的橋梁,核間中斷寄存器各標(biāo)志位分配給芯片內(nèi)不同的核,通過核間中斷向另一個(gè)核發(fā)送中斷請求,執(zhí)行相應(yīng)的中斷服務(wù)程序或通過中斷寄存器傳遞地址,配合共享內(nèi)存實(shí)現(xiàn)數(shù)據(jù)的傳遞與共享。各個(gè)核心對于外設(shè)的訪問則通過配置總線等實(shí)現(xiàn)。

        綜上,實(shí)現(xiàn)各個(gè)處理器核有效的管理和通信需要具備以下功能:

        1)主處理器對從處理器進(jìn)行管理;

        2)內(nèi)部處理器之間信息的傳輸和交換。

        前者可通過片上互聯(lián)實(shí)現(xiàn),后者則由核間中斷和內(nèi)存共享來實(shí)現(xiàn)。下面將以DM816x為例詳細(xì)說明上述功能的實(shí)現(xiàn)。

        1.1 核間中斷

        為了實(shí)現(xiàn)高效的片上核間通信,DM816x系列達(dá)芬奇處理器片上集成硬件郵箱中斷(Mailbox Interrupts)和自旋鎖(Spinlocks)。DM816x有12個(gè)郵箱,每個(gè)郵箱有4個(gè)中斷源以向4個(gè)核發(fā)送中斷,并且提供4個(gè)消息深度的FIFO,每個(gè)消息32位寬。每個(gè)郵箱都可以由任意一個(gè)核讀寫,通過相應(yīng)的寄存器設(shè)置中斷發(fā)送者以及接收者,通過消息寄存器傳遞消息[3]。ARM、DSP和2個(gè)M3媒體控制器之間通過系統(tǒng)級的郵箱進(jìn)行通信,每個(gè)HDVICP2有各自獨(dú)立的郵箱,可以向自身內(nèi)部模塊和其他核發(fā)送中斷。

        1.2 片上互聯(lián)與內(nèi)存映射

        共享內(nèi)存的實(shí)現(xiàn)首先需要系統(tǒng)對內(nèi)存進(jìn)行合理的映射與管理。每個(gè)子系統(tǒng)或處理器都有自己的內(nèi)存和內(nèi)存映射寄存器,為了簡化軟件的開發(fā),DM816x使用統(tǒng)一的映射,映射到L3的4 Gbyte的空間,從而使得芯片資源具有一致性。

        DM816x使用分層架構(gòu)(L3,L4)的互連技術(shù),將多處理器和子系統(tǒng)連接到一起。L3基于可擴(kuò)展性、高帶寬、低成本的片上網(wǎng)絡(luò)(NoC)技術(shù)實(shí)現(xiàn)高效互聯(lián),NoC使用一個(gè)內(nèi)部基于包的通信規(guī)程[4],由發(fā)起者(Initiator)向目標(biāo)(Target)請求并返回?cái)?shù)據(jù)。L3的互聯(lián)結(jié)構(gòu)如圖2所示。

        圖2 L3互聯(lián)概貌

        圖2中箭頭表示Master/Slave(或者Initiator/Target)關(guān)系。發(fā)起者向目標(biāo)通過L3總線請求并返回?cái)?shù)據(jù),實(shí)現(xiàn)處理器中多個(gè)核之間、核與外設(shè)間的連接。

        在上述連接中,ARM cortex A8的高2 Gbyte地址空間由一個(gè)特殊的端口master0 直接連接到DMM(動(dòng)態(tài)內(nèi)存管理),以實(shí)現(xiàn)低延時(shí)訪問DDR;低2 Gbyte物理地址連接到L3,再通過DMM端口(128 bit寬)存取DDR,直接通過L3互連端口(64 bit)存取芯片的其他模塊。

        DSP內(nèi)部采用物理地址,DSP有1個(gè)獨(dú)立的CFG配置總線用來訪問L4外設(shè),并且提供1個(gè)主接口和從接口連接到L3,以及3個(gè)主端口以供直接訪問HDVICP2子系統(tǒng)。DSP訪問外部的存儲通過MDMA(Master DMA)存取,并由DEMMU(DSP/EDMA內(nèi)存管理單元)進(jìn)行地址翻譯,DEMMU將地址翻譯成系統(tǒng)物理地址,并保護(hù)ARM的內(nèi)存區(qū)不被DSP代碼修改,并允許在用戶空間分配緩沖區(qū),而不需要在ARM和DSP之間進(jìn)行地址翻譯,以實(shí)現(xiàn)用戶分配的緩沖區(qū)在ARM與DSP之間共享[3]。

        HDVPSS包括1個(gè)第33位地址位,用于附加的4 Gbyte地址范圍,用作虛擬尋址和非物理內(nèi)存尋址,用于目標(biāo)地址空間的定位。

        L4連接到外設(shè),提供處理器對外設(shè)的訪問,這里不做詳述。

        1.3 共享內(nèi)存

        DM816x中運(yùn)行Linux和SYS/BIOS兩套操作系統(tǒng),它們分別采用makefile機(jī)制與XDC構(gòu)建系統(tǒng)。Linux在運(yùn)行時(shí)通過內(nèi)核啟動(dòng)參數(shù)來配置由內(nèi)核管理的內(nèi)存空間,SYS/BIOS在構(gòu)建時(shí)采用XDC配置文件進(jìn)行數(shù)據(jù)區(qū)、代碼區(qū)等內(nèi)存區(qū)的分配。系統(tǒng)構(gòu)建與運(yùn)行時(shí)需要對各個(gè)核所使用的內(nèi)存以及共享內(nèi)存進(jìn)行劃分。使用2 Gbyte內(nèi)存時(shí),典型的內(nèi)存配置及其作用如圖3所示。

        圖3 內(nèi)存分配

        圖3中SR0-3作為共享內(nèi)存,可供不同處理器共享使用,為了實(shí)現(xiàn)共享資源的互斥訪問,芯片集成硬件自旋鎖,以解決多核間共享資源的訪問互斥問題。

        2 異構(gòu)多核間任務(wù)通信的實(shí)現(xiàn)

        異構(gòu)多核處理器實(shí)現(xiàn)高效的核間通信與協(xié)作,不僅需要片上硬件模塊的支持,還需要在軟件中提供任務(wù)間通信的機(jī)制。Linux和SYS/BIOS都提供了本操作系統(tǒng)上進(jìn)程通信的機(jī)制,在Linux中有管道、消息隊(duì)列、信號量、共享內(nèi)存等任務(wù)間同步與互斥的方式,SYS/BIOS中提供了處理器間通信的IPC(Inter-Processor Communication)模塊。IPC模塊為單核或多核處理器提供核間任務(wù)的通信,實(shí)現(xiàn)了Notify、MessageQ、ListMP等單核或核間任務(wù)通信的機(jī)制。

        下面首先研究IPC模塊在多核架構(gòu)中的實(shí)現(xiàn),然后介紹SYS/BIOS與Linux之間任務(wù)通信的實(shí)現(xiàn)。

        2.1 IPC模塊的實(shí)現(xiàn)

        IPC模塊包含處理器名稱及ID管理模塊、內(nèi)存管理模塊以及進(jìn)程間通信模塊。常用的模塊的實(shí)現(xiàn)及其功能如下:

        Notify:使用Notify驅(qū)動(dòng)核間中斷來實(shí)現(xiàn)進(jìn)程間通信的通知功能。傳輸?shù)臄?shù)據(jù)一般為32位,可以為事件動(dòng)態(tài)注冊處理函數(shù)。

        GateMP:使用硬件自旋鎖實(shí)現(xiàn)共享資源的互斥訪問。

        SharedRegion:負(fù)責(zé)共享資源的虛擬地址空間和本地處理器地址空間的轉(zhuǎn)換。同一片共享內(nèi)存在不同處理器上映射的地址可能不同,此模塊創(chuàng)建共享區(qū)域的查詢表,記錄在不同處理器中該共享區(qū)域的地址。

        ListMP模塊:在處理器間共享鏈表。ListMP是一個(gè)雙向鏈表,它使用SharedRegion的查找表管理共享內(nèi)存,使用GateMP解決多任務(wù)同時(shí)訪問一個(gè)資源的互斥。

        Heap*MP模塊:基于SharedRegion模塊,實(shí)現(xiàn)動(dòng)態(tài)內(nèi)存分配。

        MessageQ:采用上述各模塊,提供可變長結(jié)構(gòu)化消息隊(duì)列通信機(jī)制。

        另外還有對各個(gè)核進(jìn)行唯一ID管理的MultiProc,對處理器名稱管理的NameSever模塊等。

        2.2 底層通信模塊SysLink的實(shí)現(xiàn)

        運(yùn)行SYS/BIOS系統(tǒng)的處理器間可以通過IPC模塊完成核間的通信,而運(yùn)行Linux的ARM要想與之通信則需要提供類似的IPC模塊,為了簡化程序的開發(fā),采用SysLink底層通信模塊來實(shí)現(xiàn)ARM與其他處理器核的通信。

        SysLink是一套軟件與相關(guān)工具的集合,為運(yùn)行在ARM上的Linux和運(yùn)行在其他處理器核上的RTOS提供統(tǒng)一的進(jìn)程間通信的接口[5]。在ARM側(cè)SysLink作為內(nèi)核驅(qū)動(dòng),可以在Linux用戶空間方便操作核間中斷、自旋鎖等硬件;在DSP側(cè)SysLink基于IPC模塊進(jìn)行封裝,供開發(fā)者使用。

        SysLink使用戶應(yīng)用程序不用關(guān)心進(jìn)程間的通信是在同一個(gè)處理器核上還是在不同的處理器核上,而視頻數(shù)據(jù)的共享與核間傳遞則采用共享內(nèi)存的方式實(shí)現(xiàn)。DM816x基于SysLink的軟件設(shè)計(jì)架構(gòu)如圖4所示。

        圖4 基于SysLink的軟件框架

        3 核間通信的驗(yàn)證與實(shí)驗(yàn)結(jié)果

        為了驗(yàn)證上述基于SysLink/IPC底層通信模塊的高效性,設(shè)計(jì)了一個(gè)多路高清音視頻采集、編碼、傳輸系統(tǒng)。系統(tǒng)硬件設(shè)計(jì)框圖如圖5所示。

        系統(tǒng)采用DVRRDK軟件包進(jìn)行開發(fā),DVRRDK將運(yùn)行在各個(gè)核上的線程統(tǒng)一為Link結(jié)構(gòu),一個(gè)Link即為具有一定功能的線程及相關(guān)數(shù)據(jù)結(jié)構(gòu)的組合,每個(gè)Link都有一個(gè)唯一的ID,可以有一個(gè)或多個(gè)輸入隊(duì)列和輸出隊(duì)列以及Notify機(jī)制通知新數(shù)據(jù)是否準(zhǔn)備好,并通過prevId和nextId與該Link之前的preLink和之后的nextLink進(jìn)行連接形成一個(gè)數(shù)據(jù)鏈,而Link中的各個(gè)線程則通過MessageQ、信號量等線程通信機(jī)制進(jìn)行同步與互斥,對于視頻數(shù)據(jù)則通過核間共享內(nèi)存避免了數(shù)據(jù)的轉(zhuǎn)移,實(shí)現(xiàn)了高效的核間數(shù)據(jù)共享。

        運(yùn)行在各個(gè)處理器核中的Link如表1所示。

        圖5 高清音視頻系統(tǒng)框圖

        表1 系統(tǒng)中主要Link分配

        處理器核(CPU類型)運(yùn)行的LinkHDVICP(ARM968)Encoder、DecoderHDVPSS(ARM968)Caputre、Display、Merge、NoiseFilter等DSP(C674x)AlgLink(OSD、AAC)、其他算法ARM(cortexA8)與其他核數(shù)據(jù)交互的Link及控制線程、文件讀寫等

        在多路視音頻應(yīng)用中通過HDVPSS驅(qū)動(dòng)視頻AD采集視頻數(shù)據(jù)[6],然后將2路高清視頻數(shù)據(jù)經(jīng)過Merge Link合并成一個(gè)輸出隊(duì)列,由DSP完成視頻數(shù)據(jù)的OSD疊加處理,視頻數(shù)據(jù)流進(jìn)入Dup Link復(fù)用形成兩個(gè)輸出隊(duì)列分別送往Display Link和Encoder Link,同時(shí)ARM將Encoder Link送來的數(shù)據(jù)進(jìn)行存儲或傳輸。音頻數(shù)據(jù)則采用ALSA框架進(jìn)行音頻采集,然后送往DSP進(jìn)行編碼,再由ARM進(jìn)行存儲、傳輸。系統(tǒng)中的數(shù)據(jù)鏈路圖如圖6所示。

        圖6 系統(tǒng)數(shù)據(jù)鏈路圖

        系統(tǒng)在ARM核的控制下,完成2路1 080p@60 f/s(幀/秒)視頻的采集并處理,由DSP完成圖片、文本等信息的OSD疊加,同時(shí)由Video M3完成2路視頻的實(shí)時(shí)H.264 High Profile編碼,并通過ARM進(jìn)行音視頻的存儲和網(wǎng)絡(luò)傳輸。系統(tǒng)中各核之間高效協(xié)作,完成了在單核甚至多核ARM或DSP中難以完成的任務(wù)。

        5 總結(jié)

        本文研究了嵌入式異構(gòu)多核處理器中各個(gè)處理核間的通信與協(xié)作機(jī)制,以達(dá)芬奇系列高性能處理器DM816x為例,從硬件結(jié)構(gòu)到軟件框架詳細(xì)分析了處理核之間任務(wù)通信與協(xié)作的實(shí)現(xiàn)過程,并基于文章所述的多核間通信機(jī)制設(shè)計(jì)了多路高清音視頻應(yīng)用系統(tǒng),系統(tǒng)在各個(gè)處理核的高效協(xié)作下,完成了多路高清音視頻的采集、編碼、處理等任務(wù)。

        [1]高玉龍.達(dá)芬奇技術(shù)開發(fā)基礎(chǔ)、原理與實(shí)例[M].北京:電子工業(yè)出版社,2012.

        [2]蔣建春.異構(gòu)多核嵌入式軟件關(guān)鍵問題研究[D].重慶:重慶大學(xué),2011.

        [3]Texas Instruments.TMS320DM816x DaVinci digital video processors technical reference manual[EB/OL].[2014-08-27].http://www.ti.com/lit/ug/sprugx8b/sprugx8b.pdf.

        [4]馬清勇.片上網(wǎng)絡(luò)(NoC)互連技術(shù)研究[D].成都:電子科技大學(xué),2013.

        [5]Texas Instruments.SysLink user guide [EB/OL].[2014-08-21].http://www.ti.com.[6]王帥,劉峰.基于TMS320DM368的高清視頻采集系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].電視技術(shù),2013,37(7):43-45.

        國常義(1990— ),碩士生,主研圖像處理與多媒體通信;

        李超群(1991— ),碩士生,主研圖像處理與多媒體通信;

        劉 峰(1964— ),博士,教授,博士生導(dǎo)師,主研圖像處理與多媒體通信、高速DSP 與嵌入式系統(tǒng)。

        責(zé)任編輯:閆雯雯

        Research on Inter-processor Communication for DaVinci Heterogeneous Multi-core Processors

        GUO Changyi, LI Chaoqun, LIU Feng

        (JiangsuKeyLaboratoryofImageProcessing&Communication,NanjingUniversityofPostsandTelecommunications,Nanjing210003,China)

        The communication mechanism of the cores covering ARM core, DSP core and co-processors in general DaVinci heterogeneous multi-core processors is researched in this paper.The basic principle of inter-processor communication(IPC for short) is analyzed and then the interconnection of cores and the implementation of the IPC software are delivered for TMS320DM816x series DaVinci multi-core processors.Finally, a multi-channel HD video and audio system based on SysLink is developed to verify the IPC.The system is efficient and the IPC works well.

        heterogeneous multi-core; inter-processor communication; SysLink; TMS320DM816x

        江蘇省高校自然科學(xué)研究項(xiàng)目(13KJA510004;12KJB510019);廣州市軟件和信息服務(wù)業(yè)發(fā)展專項(xiàng)資金項(xiàng)目(2060404)

        TN915.04

        A

        10.16280/j.videoe.2015.07.012

        2014-09-18

        【本文獻(xiàn)信息】國常義,李超群,劉峰.達(dá)芬奇異構(gòu)多核處理器核間通信技術(shù)研究[J].電視技術(shù),2015,39(7).

        猜你喜歡
        間通信共享內(nèi)存達(dá)芬奇
        細(xì)胞間通信預(yù)測方法研究進(jìn)展
        輕松做完大手術(shù)——聊聊達(dá)芬奇手術(shù)機(jī)器人
        通過QT實(shí)現(xiàn)進(jìn)程間的通信
        綜合航電分區(qū)間通信元模型設(shè)計(jì)研究
        達(dá)芬奇想飛
        基于PCI總線的多處理器協(xié)同機(jī)制研究
        手術(shù)室的“阿爾法狗”:達(dá)芬奇機(jī)器人
        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)*
        基于核間寄存器的多核虛擬機(jī)系統(tǒng)中虛擬機(jī)間通信研究
        人妻丰满熟妇无码区免费| 精品十八禁免费观看| 欧美在线不卡视频| 在线观看视频日本一区二区三区| 一区二区三区精品婷婷| 日本女同视频一区二区三区| 久久99精品国产麻豆| 无码a级毛片免费视频内谢5j| 国产二区交换配乱婬| 女人被爽到呻吟gif动态图视看| 亚洲日韩乱码中文无码蜜桃臀| 日韩h网站| 精品日韩欧美一区二区三区在线播放| 78成人精品电影在线播放| 国产成人精品a视频| 亚洲国产成人精品无码一区二区| 亲子乱aⅴ一区二区三区下载| 91老司机精品视频| 亚洲中文字幕第二十三页| 爱爱免费视频一区二区三区| 中出人妻希奇杰卡西av| 亚洲一区二区三区中文视频| yw193.can尤物国产在线网页| 日韩国产一区二区三区在线观看 | 亚洲欧美国产成人综合不卡| 成人性生交大片免费看7| 国产传媒精品成人自拍| 玩弄少妇人妻中文字幕| 18禁黄久久久aaa片| 精品一区二区三区在线观看| 国产主播无套内射一区| 亚洲成人黄色av在线观看| 美女与黑人巨大进入免费观看| 欧美日韩午夜群交多人轮换| 精品久久久无码中字| 亚洲国产成人精品无码区在线观看 | 免费av片在线观看网址| 日韩人妻无码精品久久久不卡| 亚洲一区二区三区日本久久九| 国产91 对白在线播放九色| 在线观看极品裸体淫片av|