国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

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

2016-11-30 05:25:46祝昇翔賀志毅
電子技術應用 2016年1期
關鍵詞:間通信端點應用程序

祝昇翔,賀志毅

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

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

祝昇翔,賀志毅

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

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

多核通信應用程序接口;核間通信

0 引言

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

1 多核DSP器件簡介

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

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

2 多核通信應用程序接口概述

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

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

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

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

圖1 MCAPI端點間的消息傳遞

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

3.1Poly-Platform工具簡介

Poly-Platform是PolyCore公司提供的針對多核軟件開發(fā)的集成開發(fā)工具套件[3],包含 Poly-Mapper、Poly-Generator、Poly-Messenger/MCAPI、Poly-Templates等功能模塊。采用該工具進行開發(fā)可以基于MCAPI標準建立應用程序節(jié)點,利用用戶圖形界面(Graphical User Interfaces,GUI)向導自動生成代碼,在幾乎不修改源代碼的基礎上,實現(xiàn)應用程序在同構多核、異構多核、多處理器等不同平臺上的靈活配置和擴展,不受限于廠商,應用前景廣闊。

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

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

(1)建立拓撲結構。首先建立一個拓撲(Topology)工程,拓撲主要描述了應用程序在(多核)平臺上的映射關系。借助Poly-Mapper工具在建立工程后生成的拓撲映射文件中進行屬性設置,選擇處理器類型,設置節(jié)點個數(shù)為8(對應8個DSP核),名稱分別為 N0—N7,操作系統(tǒng)為TI的DSP專用操作系統(tǒng)。然后在拓撲圖中繪制8個節(jié)點,并在每個節(jié)點中間繪制一條鏈路(link),得到環(huán)形結構的8節(jié)點拓撲結構圖,如圖2所示。

圖2 環(huán)形結構的8節(jié)點拓撲結構圖

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

(3)在拓撲結構圖中進行內存映射。針對每一個節(jié)點(N0—N7),設置其可訪問的內存訪問區(qū)域。然后,還需要對內存訪問區(qū)域包含的每一個資源池進行參數(shù)設置,如起始地址等。同樣地,對鏈路也需要進行參數(shù)設置。

(4)建立節(jié)點工程。這里與常規(guī)的 DSP開發(fā)流程基本一致,針對8個節(jié)點(對應處理器核)分別建立節(jié)點工程,然后需要將這8個節(jié)點工程與第一步建立的拓撲工程建立映射關系。

(5)編寫初始化代碼和配置文件。首先利用 Poly-Generator工具將拓撲結構圖轉化為基于拓撲定義的 C語言和相應的頭文件,并存放到每個節(jié)點工程的工作目錄下。然后利用Poly-Template工具,按照軟件自帶的MCAPI模板,自動為每個節(jié)點工程生成節(jié)點初始化文件和硬件初始化文件。最后編寫TI專用的實時軟件組件(Real Time Software Component,RTSC)配置文件和用于存儲器分配的連接器命令文件。

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

(7)編寫每個節(jié)點工程的應用程序。將用戶的算法進行代碼實現(xiàn)并加入節(jié)點工程,這一步與常規(guī)的DSP開發(fā)流程完全一致。

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

(9)編譯、調試、運行。對每個節(jié)點工程進行編譯、調試、運行,觀察程序運行結果。注意不要編譯拓撲工程。

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

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

4 某雷達信號處理軟件設計方案示例

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

圖4 采用基于MCAPI的方法重新設計軟件拓撲結構

5 結論

當前計算環(huán)境變得越來越多元化,DSP、可編程邏輯器件(Field Programmable Gate Array,F(xiàn)PGA)、圖形處理器(Graphics Processing Unit,GPU)都具有較強的運算能力,并適用于不同的應用場合。多核處理器是當前的研究熱點,而高集成度的異構多核處理器是未來的發(fā)展趨勢。基于多核的軟件開發(fā)始終是一個難點,給軟件開發(fā)人員帶來了巨大的挑戰(zhàn)。本文提出的基于MCAPI的多核軟件開發(fā)方法可應用于同構多核、異構多核以及多處理器平臺,通用性較強,不受廠商、處理器、操作系統(tǒng)的限制,可幫助用戶簡化軟件設計和優(yōu)化過程中的拓撲設計、運算負載平衡以及核間通信和資源分配等工作,顯著地提升開發(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].南京:南京航空航天大學,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-),通信作者,男,博士研究生,高級工程師,主要研究方向:雷達成像技術、相控陣雷達技術等,E-mail:tedazsx@163.com。

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

中文引用格式:祝昇翔,賀志毅.基于MCAPI的多核軟件開發(fā)方法[J].電子技術應用,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.

猜你喜歡
間通信端點應用程序
細胞間通信預測方法研究進展
非特征端點條件下PM函數(shù)的迭代根
不等式求解過程中端點的確定
刪除Win10中自帶的應用程序
電腦報(2019年12期)2019-09-10 05:08:20
綜合航電分區(qū)間通信元模型設計研究
參數(shù)型Marcinkiewicz積分算子及其交換子的加權端點估計
基丁能雖匹配延拓法LMD端點效應處理
基于核間寄存器的多核虛擬機系統(tǒng)中虛擬機間通信研究
一種適應多核處理器核間通信機制的設計
關閉應用程序更新提醒
電腦迷(2012年15期)2012-04-29 17:09:47
车致| 皋兰县| 新沂市| 太湖县| 平顺县| 阜康市| 中牟县| 任丘市| 年辖:市辖区| 小金县| 吉林省| 新安县| 新竹市| 章丘市| 儋州市| 高台县| 剑川县| 沙雅县| 阿鲁科尔沁旗| 昌乐县| 嵊州市| 平泉县| 宜兰县| 梁平县| 汤阴县| 大港区| 罗平县| 宁都县| 肇州县| 灵川县| 青龙| 福安市| 塘沽区| 阳信县| 通渭县| 遵化市| 启东市| 焦作市| 五莲县| 淮南市| 庄河市|