• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于MCAPI的多核軟件開(kāi)發(fā)方法

      2016-11-30 05:25:46祝昇翔賀志毅
      電子技術(shù)應(yīng)用 2016年1期
      關(guān)鍵詞:間通信端點(diǎn)應(yīng)用程序

      祝昇翔,賀志毅

      (北京遙感設(shè)備研究所,北京 100854)

      基于MCAPI的多核軟件開(kāi)發(fā)方法

      祝昇翔,賀志毅

      (北京遙感設(shè)備研究所,北京 100854)

      提出了一種基于多核通信應(yīng)用程序接口(MCAPI)標(biāo)準(zhǔn)的多核軟件開(kāi)發(fā)方法,該標(biāo)準(zhǔn)提供了基于消息傳遞的API,適用于核間通信,大大提高了應(yīng)用程序在多核處理器上的可移植性。采用poly-platform軟件工具進(jìn)行多核軟件開(kāi)發(fā),首先建立拓?fù)浣Y(jié)構(gòu),然后定義節(jié)點(diǎn)工程,完成存儲(chǔ)分配等工作,再利用MCAPI模板完成節(jié)點(diǎn)間通信,最后編制各個(gè)節(jié)點(diǎn)的應(yīng)用程序。該軟件開(kāi)發(fā)流程獨(dú)立于廠(chǎng)商、器件和操作系統(tǒng),可將應(yīng)用程序快速靈活地映射到不同的同構(gòu)和異構(gòu)多核架構(gòu)上,大大提高了多核軟件的開(kāi)發(fā)效率。

      多核通信應(yīng)用程序接口;核間通信

      0 引言

      隨著技術(shù)的進(jìn)步,電子產(chǎn)品更新?lián)Q代的速度越來(lái)越快。單純提高主頻來(lái)提升系統(tǒng)性能的方式已經(jīng)接近瓶頸,而使用多片處理器搭建系統(tǒng)又不符合產(chǎn)品的小型化要求。傳統(tǒng)的單核處理器已經(jīng)不能滿(mǎn)足日益增長(zhǎng)的性能需求,能夠完成并行任務(wù)處理的多核處理器應(yīng)運(yùn)而生?,F(xiàn)代多核處理器主要依靠增加核數(shù)而不是頻率來(lái)提升性能,同時(shí)芯片的高集成度也帶來(lái)了資源調(diào)度和功耗等問(wèn)題。隨著多核處理器并行度的增加,各類(lèi)同構(gòu)、異構(gòu)多核處理器的出現(xiàn)使得軟件開(kāi)發(fā)面臨著巨大的挑戰(zhàn)。如何在多核上高效地實(shí)現(xiàn)算法,如何合理地分配資源都是需要解決的問(wèn)題。

      1 多核DSP器件簡(jiǎn)介

      TMS320C6678是德州儀器公司(Texas Instruments,TI)在2010年推出的一款經(jīng)典的同構(gòu)多核數(shù)字信號(hào)處理器(Digital Signal Processor,DSP)[1],包含8個(gè)DSP內(nèi)核,每個(gè)核在 1.4 GHz的最高工作頻率下性能可達(dá)到 22.4 G每秒浮點(diǎn)運(yùn)算次數(shù)(FLoating-point Operations Per Second,F(xiàn)LOPS),支持 Hyperlink等多種高速接口,可廣泛用于移動(dòng)通信、醫(yī)療電子、高性能計(jì)算等領(lǐng)域。

      核間通信(Inter Processor Communication,IPC)以及核與外設(shè)的通信是多核軟件開(kāi)發(fā)的關(guān)鍵所在。針對(duì)這一需求,德州儀器公司在其新一代 Keystone架構(gòu)的處理器上提供了多核導(dǎo)航器,包括硬件隊(duì)列管理器和基于包的直接存儲(chǔ)訪(fǎng)問(wèn)(Direct Memory Address,DMA),以實(shí)現(xiàn)核間高速數(shù)據(jù)傳輸。使用多核導(dǎo)航器進(jìn)行核間通信,可以通過(guò)軟件對(duì)相應(yīng)的控制寄存器進(jìn)行讀寫(xiě)和查詢(xún)實(shí)現(xiàn),也可通過(guò)內(nèi)部硬件進(jìn)行事件觸發(fā)實(shí)現(xiàn),這種方式可大大簡(jiǎn)化核間通信處理,但是仍存在缺點(diǎn)。一旦軟件拓?fù)浣Y(jié)構(gòu)發(fā)生改變,或者需要調(diào)整核的運(yùn)算負(fù)載來(lái)提升系統(tǒng)性能時(shí),這部分工作量很大,而且應(yīng)用受限于廠(chǎng)商。

      2 多核通信應(yīng)用程序接口概述

      多核通信應(yīng)用程序接口MCAPI(Multicore Communications Application Program Interface)是由多核聯(lián)盟提出的基于消息傳遞的輕量級(jí)應(yīng)用程序接口標(biāo)準(zhǔn)[2],特別適用于嵌入式系統(tǒng)處理器核間通信和同步。MCAPI的應(yīng)用不受處理器核的數(shù)目、處理器架構(gòu)以及操作系統(tǒng)的限制,并且提供了源碼級(jí)的兼容性支持,可擴(kuò)展性很強(qiáng)。

      相對(duì)于普通的多片處理器間通信來(lái)說(shuō),多核處理器的核間通信普遍要求低延遲、高帶寬。大部分多核處理器都包含片上存儲(chǔ)器或高速緩存(cache)。為了避免出現(xiàn)計(jì)算瓶頸,核間通信需要減少不必要的存儲(chǔ)器訪(fǎng)問(wèn)。

      MCAPI中定義了域(domain)、節(jié)點(diǎn)(node)、端點(diǎn)(endpoint)、通道(channel)等關(guān)鍵概念。域是依賴(lài)于具體實(shí)現(xiàn)的,既可以是具有多個(gè)處理器核的單個(gè)芯片,也可以是板上的多個(gè)處理器。節(jié)點(diǎn)可以是線(xiàn)程、處理器或硬件加速器等,通??捎锰幚砥骱俗鳛楣?jié)點(diǎn)。端點(diǎn)是類(lèi)似于套接字的通信點(diǎn),一個(gè)節(jié)點(diǎn)通常包括多個(gè)端點(diǎn)。通道提供了一對(duì)端點(diǎn)之間的點(diǎn)到點(diǎn)的先入先出(First In First Out,F(xiàn)IFO)存儲(chǔ)器用于通信,方向?yàn)閱蜗虻摹?/p>

      此外,MCAPI定義了3種通信基本類(lèi)型:消息、包通道和標(biāo)量通道。消息是最常用的通信類(lèi)型,提供了端點(diǎn)之間收發(fā)數(shù)據(jù)的機(jī)制,支持優(yōu)先級(jí)動(dòng)態(tài)調(diào)整,可用于同步、初始化和負(fù)載平衡,如圖1所示。包通道和標(biāo)量通道提供了輕量級(jí)的流通信機(jī)制,相應(yīng)的程序開(kāi)銷(xiāo)很小。

      圖1 MCAPI端點(diǎn)間的消息傳遞

      3 基于Poly-Platform工具的多核軟件開(kāi)發(fā)流程

      3.1Poly-Platform工具簡(jiǎn)介

      Poly-Platform是PolyCore公司提供的針對(duì)多核軟件開(kāi)發(fā)的集成開(kāi)發(fā)工具套件[3],包含 Poly-Mapper、Poly-Generator、Poly-Messenger/MCAPI、Poly-Templates等功能模塊。采用該工具進(jìn)行開(kāi)發(fā)可以基于MCAPI標(biāo)準(zhǔn)建立應(yīng)用程序節(jié)點(diǎn),利用用戶(hù)圖形界面(Graphical User Interfaces,GUI)向?qū)ё詣?dòng)生成代碼,在幾乎不修改源代碼的基礎(chǔ)上,實(shí)現(xiàn)應(yīng)用程序在同構(gòu)多核、異構(gòu)多核、多處理器等不同平臺(tái)上的靈活配置和擴(kuò)展,不受限于廠(chǎng)商,應(yīng)用前景廣闊。

      3.2多核軟件開(kāi)發(fā)流程

      將 Poly-Platform軟件使用插件方式集成到 Eclipse軟件環(huán)境中后會(huì)在 TI的 Code Composer Studio開(kāi)發(fā)環(huán)境下出現(xiàn)相應(yīng)的菜單和選項(xiàng),即可進(jìn)行基于Poly-Platform的多核軟件開(kāi)發(fā)。這里選擇TMS320C6678多核DSP器件進(jìn)行開(kāi)發(fā),并且以8個(gè)DSP核之間依次相連并傳遞數(shù)據(jù)的環(huán)形拓?fù)浣Y(jié)構(gòu)為例描述開(kāi)發(fā)流程。

      (1)建立拓?fù)浣Y(jié)構(gòu)。首先建立一個(gè)拓?fù)洌═opology)工程,拓?fù)渲饕枋隽藨?yīng)用程序在(多核)平臺(tái)上的映射關(guān)系。借助Poly-Mapper工具在建立工程后生成的拓?fù)溆成湮募羞M(jìn)行屬性設(shè)置,選擇處理器類(lèi)型,設(shè)置節(jié)點(diǎn)個(gè)數(shù)為8(對(duì)應(yīng)8個(gè)DSP核),名稱(chēng)分別為 N0—N7,操作系統(tǒng)為T(mén)I的DSP專(zhuān)用操作系統(tǒng)。然后在拓?fù)鋱D中繪制8個(gè)節(jié)點(diǎn),并在每個(gè)節(jié)點(diǎn)中間繪制一條鏈路(link),得到環(huán)形結(jié)構(gòu)的8節(jié)點(diǎn)拓?fù)浣Y(jié)構(gòu)圖,如圖2所示。

      圖2 環(huán)形結(jié)構(gòu)的8節(jié)點(diǎn)拓?fù)浣Y(jié)構(gòu)圖

      (2)建立內(nèi)存映射文件并分配資源。建立內(nèi)存映射文件并分配若干個(gè)段(section),設(shè)置其起始地址、大小、方向等參數(shù)。這些段分別用于內(nèi)存訪(fǎng)問(wèn)區(qū)域(Memory Access Regions,MARs)和鏈路(link)。其中內(nèi)存訪(fǎng)問(wèn)區(qū)域包括一些常用的資源池(pool),如消息池、消息隊(duì)列池、數(shù)據(jù)池、等待池等,不同節(jié)點(diǎn)之間通過(guò) MARs共享資源可以提高資源利用效率,提升系統(tǒng)性能。鏈路即對(duì)應(yīng)拓?fù)浣Y(jié)構(gòu)圖(見(jiàn)如圖2)中各節(jié)點(diǎn)之間的通信鏈路,

      (3)在拓?fù)浣Y(jié)構(gòu)圖中進(jìn)行內(nèi)存映射。針對(duì)每一個(gè)節(jié)點(diǎn)(N0—N7),設(shè)置其可訪(fǎng)問(wèn)的內(nèi)存訪(fǎng)問(wèn)區(qū)域。然后,還需要對(duì)內(nèi)存訪(fǎng)問(wèn)區(qū)域包含的每一個(gè)資源池進(jìn)行參數(shù)設(shè)置,如起始地址等。同樣地,對(duì)鏈路也需要進(jìn)行參數(shù)設(shè)置。

      (4)建立節(jié)點(diǎn)工程。這里與常規(guī)的 DSP開(kāi)發(fā)流程基本一致,針對(duì)8個(gè)節(jié)點(diǎn)(對(duì)應(yīng)處理器核)分別建立節(jié)點(diǎn)工程,然后需要將這8個(gè)節(jié)點(diǎn)工程與第一步建立的拓?fù)涔こ探⒂成潢P(guān)系。

      (5)編寫(xiě)初始化代碼和配置文件。首先利用 Poly-Generator工具將拓?fù)浣Y(jié)構(gòu)圖轉(zhuǎn)化為基于拓?fù)涠x的 C語(yǔ)言和相應(yīng)的頭文件,并存放到每個(gè)節(jié)點(diǎn)工程的工作目錄下。然后利用Poly-Template工具,按照軟件自帶的MCAPI模板,自動(dòng)為每個(gè)節(jié)點(diǎn)工程生成節(jié)點(diǎn)初始化文件和硬件初始化文件。最后編寫(xiě)TI專(zhuān)用的實(shí)時(shí)軟件組件(Real Time Software Component,RTSC)配置文件和用于存儲(chǔ)器分配的連接器命令文件。

      (6)編寫(xiě)每個(gè)節(jié)點(diǎn)工程的主函數(shù)。主函數(shù)主要內(nèi)容包括調(diào)用節(jié)點(diǎn)初始化函數(shù),硬件初始化函數(shù),以及節(jié)點(diǎn)之間消息收發(fā)的函數(shù)(基于 MCAPI)等。這些都可以利用Poly-Template工具提供的模板快速完成。圖3為用模板生成的代碼示例,其功能為N1節(jié)點(diǎn)接收消息,然后將其加1后再發(fā)送給N2節(jié)點(diǎn)。

      (7)編寫(xiě)每個(gè)節(jié)點(diǎn)工程的應(yīng)用程序。將用戶(hù)的算法進(jìn)行代碼實(shí)現(xiàn)并加入節(jié)點(diǎn)工程,這一步與常規(guī)的DSP開(kāi)發(fā)流程完全一致。

      (8)建立目標(biāo)配置文件和RTSC平臺(tái)。首先建立用于仿真調(diào)試的目標(biāo)配置文件,然后建立RTSC平臺(tái)用于硬件配置,并將其加入節(jié)點(diǎn)工程。這些都是TI專(zhuān)用的文件。

      (9)編譯、調(diào)試、運(yùn)行。對(duì)每個(gè)節(jié)點(diǎn)工程進(jìn)行編譯、調(diào)試、運(yùn)行,觀(guān)察程序運(yùn)行結(jié)果。注意不要編譯拓?fù)涔こ獭?/p>

      (10)程序性能分析和優(yōu)化。借助Poly-inspector工具提供的交互式報(bào)告環(huán)境,可以對(duì)多核軟件實(shí)現(xiàn)進(jìn)行性能分析,方便用戶(hù)進(jìn)行程序優(yōu)化和調(diào)整。

      圖3 使用Poly-Template生成的消息接收和發(fā)送代碼示例

      4 某雷達(dá)信號(hào)處理軟件設(shè)計(jì)方案示例

      某雷達(dá)信號(hào)處理機(jī)采用 TI的 TMS320C6678多核DSP為主處理芯片,功能為雷達(dá)導(dǎo)引頭主動(dòng)探測(cè)處理[4]。其拓?fù)浣Y(jié)構(gòu)為主從方式,核0為主控核,負(fù)責(zé)DSP內(nèi)部資源配置和初始化、自檢、波形參數(shù)控制、波門(mén)控制、對(duì)外接口控制等,核1、核2、核3分別負(fù)責(zé)和通道、方位差通道、俯仰差通道的脈壓數(shù)據(jù)相干積累、恒虛警檢測(cè)、測(cè)距等,其他核未使用,目前已完成軟件設(shè)計(jì)和實(shí)現(xiàn)。但是,現(xiàn)根據(jù)項(xiàng)目需要增加被動(dòng)信號(hào)處理功能和由此新增的部分對(duì)外接口,軟件架構(gòu)發(fā)生較大改變。此時(shí)如果仍舊采用傳統(tǒng)的DSP軟件開(kāi)發(fā)方法,則軟件移植的工作量較大,特別是需要重新設(shè)計(jì)核間通信的代碼。而采用基于 MCAPI的多核軟件開(kāi)發(fā)方法[5]并借助 Poly-Platform軟件進(jìn)行開(kāi)發(fā),就可以保留原有的應(yīng)用程序不變,快速、靈活地生成新的拓?fù)浣Y(jié)構(gòu),并按照軟件模板快速生成符合標(biāo)準(zhǔn)的核間通信程序,代碼改動(dòng)量很小。采用方案為新增一個(gè)核4負(fù)責(zé)被動(dòng)信號(hào)處理,同時(shí)新增1個(gè)核5,負(fù)責(zé)新增的對(duì)外接口,以及核0負(fù)責(zé)原有的一部分工作,以實(shí)現(xiàn)運(yùn)算負(fù)載平衡,如圖4所示。在實(shí)際中根據(jù)需要還可快速地改為其他拓?fù)浣Y(jié)構(gòu)并進(jìn)行性能優(yōu)化,比如將主從拓?fù)浣Y(jié)構(gòu)改為數(shù)據(jù)流結(jié)構(gòu)。

      圖4 采用基于MCAPI的方法重新設(shè)計(jì)軟件拓?fù)浣Y(jié)構(gòu)

      5 結(jié)論

      當(dāng)前計(jì)算環(huán)境變得越來(lái)越多元化,DSP、可編程邏輯器件(Field Programmable Gate Array,F(xiàn)PGA)、圖形處理器(Graphics Processing Unit,GPU)都具有較強(qiáng)的運(yùn)算能力,并適用于不同的應(yīng)用場(chǎng)合。多核處理器是當(dāng)前的研究熱點(diǎn),而高集成度的異構(gòu)多核處理器是未來(lái)的發(fā)展趨勢(shì)。基于多核的軟件開(kāi)發(fā)始終是一個(gè)難點(diǎn),給軟件開(kāi)發(fā)人員帶來(lái)了巨大的挑戰(zhàn)。本文提出的基于MCAPI的多核軟件開(kāi)發(fā)方法可應(yīng)用于同構(gòu)多核、異構(gòu)多核以及多處理器平臺(tái),通用性較強(qiáng),不受廠(chǎng)商、處理器、操作系統(tǒng)的限制,可幫助用戶(hù)簡(jiǎn)化軟件設(shè)計(jì)和優(yōu)化過(guò)程中的拓?fù)湓O(shè)計(jì)、運(yùn)算負(fù)載平衡以及核間通信和資源分配等工作,顯著地提升開(kāi)發(fā)效率。

      [1]Texas Instruments,Inc.TMS320C6678 multicore fixed and floating-point digital signal processor[Z].2014.

      [2]The Multicore Association.Multicore Communications API(MCAPI)Specification V2.015[Z].2011.

      [3]PolyCore Software,Inc.Poly-Platform user guide[Z].2012.

      [4]楊康.基于多核DSP的彈載毫米波雙模制導(dǎo)雷達(dá)關(guān)鍵技術(shù)研究[D].南京:南京航空航天大學(xué),2013.

      [5]ERIC G.Using MCAPI/MDMA for ADSP-SC58x Dual-SHARC Audio Talkthrough[Z].2015.

      A multicore software development method based on MCAPI

      Zhu Shengxiang,He Zhiyi
      (Beijing Institute of Remote Sensing Equipment,Beijing 100854,China)

      This paper presents a multicore software development method based on multicore communications application program interface(MCAPI)standard.This standard which provides APIs based on message is used for inter processor communication(IPC).It improves the portability of application programs on multicore processors.A software tool named poly-platform is used for multicore software development.At first,the topology is set up.Then a node project is defined and memories are allocated.The template of MCAPI is used for generating codes for communications among nodes.Finally,application programs of every nodes should be finished.This procedure of software development is independent of companies,devices and operating systems.It could map the application programs to different homogeneous and heterogeneous multicore architectures quickly and flexibly,improve the efficiency greatly.

      multicore communications application program interface;inter processor communication

      TP311.52

      A

      10.16157/j.issn.0258-7998.2016.01.007

      (2015-08-31)

      祝昇翔(1979-),通信作者,男,博士研究生,高級(jí)工程師,主要研究方向:雷達(dá)成像技術(shù)、相控陣?yán)走_(dá)技術(shù)等,E-mail:tedazsx@163.com。

      賀志毅(1961-),男,博士,研究員,主要研究方向:精確制導(dǎo)技術(shù)。

      中文引用格式:祝昇翔,賀志毅.基于MCAPI的多核軟件開(kāi)發(fā)方法[J].電子技術(shù)應(yīng)用,2016,42(1):31-33.

      英文引用格式:Zhu Shengxiang,He Zhiyi.A multicore software development method based on MCAPI[J].Application of Electronic Technique,2016,42(1):31-33.

      猜你喜歡
      間通信端點(diǎn)應(yīng)用程序
      細(xì)胞間通信預(yù)測(cè)方法研究進(jìn)展
      非特征端點(diǎn)條件下PM函數(shù)的迭代根
      不等式求解過(guò)程中端點(diǎn)的確定
      刪除Win10中自帶的應(yīng)用程序
      綜合航電分區(qū)間通信元模型設(shè)計(jì)研究
      參數(shù)型Marcinkiewicz積分算子及其交換子的加權(quán)端點(diǎn)估計(jì)
      基丁能雖匹配延拓法LMD端點(diǎn)效應(yīng)處理
      基于核間寄存器的多核虛擬機(jī)系統(tǒng)中虛擬機(jī)間通信研究
      一種適應(yīng)多核處理器核間通信機(jī)制的設(shè)計(jì)
      關(guān)閉應(yīng)用程序更新提醒
      電腦迷(2012年15期)2012-04-29 17:09:47
      周口市| 荥阳市| 乳源| 衢州市| 高台县| 奇台县| 龙江县| 米易县| 福州市| 莫力| 玉林市| 灌云县| 江门市| 屯留县| 碌曲县| 崇仁县| 鹤峰县| 百色市| 石嘴山市| 垣曲县| 曲阜市| 通许县| 安塞县| 沿河| 泰和县| 自治县| 囊谦县| 泽州县| 全椒县| 天长市| 资源县| 漾濞| 芮城县| 噶尔县| 永顺县| 富平县| 莲花县| 全南县| 梁河县| 射洪县| 景宁|