《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 設計應用 > 基于MCAPI的多核軟件開發方法
基于MCAPI的多核軟件開發方法
2016年電子技術應用第1期
祝昇翔,賀志毅
北京遙感設備研究所,北京100854
摘要: 提出了一種基于多核通信應用程序接口(MCAPI)標準的多核軟件開發方法,該標準提供了基于消息傳遞的API,適用于核間通信,大大提高了應用程序在多核處理器上的可移植性。采用poly-platform軟件工具進行多核軟件開發,首先建立拓撲結構,然后定義節點工程,完成存儲分配等工作,再利用MCAPI模板完成節點間通信,最后編制各個節點的應用程序。該軟件開發流程獨立于廠商、器件和操作系統,可將應用程序快速靈活地映射到不同的同構和異構多核架構上,大大提高了多核軟件的開發效率。
中圖分類號: TP311.52
文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.2016.01.007
中文引用格式: 祝昇翔,賀志毅. 基于MCAPI的多核軟件開發方法[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.
A multicore software development method based on MCAPI
Zhu Shengxiang,He Zhiyi
Beijing Institute of Remote Sensing Equipment,Beijing 100854,China
Abstract: 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.
Key words : multicore communications application program interface;inter processor communication

0 引言

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

1 多核DSP器件簡介

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

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

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

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

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

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

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

qrs1-t1.gif

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

3.1 Poly-Platform工具簡介

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

3.2 多核軟件開發流程

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

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

qrs1-t2.gif

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

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

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

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

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

qrs1-t3.gif

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

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

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

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

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

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

qrs1-t4.gif

5 結論

    當前計算環境變得越來越多元化,DSP、可編程邏輯器件(Field Programmable Gate Array,FPGA)、圖形處理器(Graphics Processing Unit,GPU)都具有較強的運算能力,并適用于不同的應用場合。多核處理器是當前的研究熱點,而高集成度的異構多核處理器是未來的發展趨勢?;诙嗪说能浖_發始終是一個難點,給軟件開發人員帶來了巨大的挑戰。本文提出的基于MCAPI的多核軟件開發方法可應用于同構多核、異構多核以及多處理器平臺,通用性較強,不受廠商、處理器、操作系統的限制,可幫助用戶簡化軟件設計和優化過程中的拓撲設計、運算負載平衡以及核間通信和資源分配等工作,顯著地提升開發效率。

參考文獻

[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.

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          日韩午夜精品视频| 亚洲视频www| 曰本成人黄色| 亚洲一区视频| 一本大道久久a久久综合婷婷| 亚洲国产成人精品久久| 亚洲淫片在线视频| 国产精品久久久久久久久果冻传媒| 欧美视频二区36p| 欧美日韩国产精品一区二区亚洲| 久久综合九色99| 日韩写真视频在线观看| 国产日韩一区二区三区在线| 久久久久99精品国产片| 国产精品自在在线| 国产视频在线一区二区| 在线精品观看| 久久综合亚州| 欧美精品久久99久久在免费线| 欧美日本一区二区三区| 欧美极品欧美精品欧美视频| 欧美在线播放一区二区| 99人久久精品视频最新地址| 亚洲免费影视| 性一交一乱一区二区洋洋av| 久久久久国产精品厨房| 欧美极品一区| 久久精视频免费在线久久完整在线看| 亚洲欧美综合另类中字| 欧美一级二级三级蜜桃| 老色鬼精品视频在线观看播放| 极品日韩av| 亚洲一区二区av电影| 久久精品国产一区二区电影| 国产欧美日韩精品一区| 国内不卡一区二区三区| 欧美亚洲一区三区| 久久精品一区二区国产| 欧美黑人国产人伦爽爽爽| 亚洲欧美精品伊人久久| 亚洲毛片av在线| 男人的天堂亚洲| 狠色狠色综合久久| 在线综合亚洲| 久久精品国产亚洲一区二区三区| 99精品国产99久久久久久福利| 亚洲在线一区二区三区| 亚洲日本中文| 亚洲永久精品大片| 国内外成人在线视频| 久久久久久有精品国产| 国产精品一区二区视频| 欧美日韩在线视频一区二区| 亚洲图片你懂的| 亚洲最新合集| 久久久不卡网国产精品一区| 亚洲欧洲一区二区三区在线观看| 久久精视频免费在线久久完整在线看| 欧美a级理论片| 国产一区日韩一区| 一区二区欧美日韩| 一区二区毛片| 久久久青草青青国产亚洲免观| 久久综合久久88| 国产一区在线免费观看| 久久久国产精彩视频美女艺术照福利| 国产一区视频在线观看免费| 国产精品无码永久免费888| 久久丁香综合五月国产三级网站| 欧美午夜精品理论片a级大开眼界| 在线视频欧美日韩精品| 国产精品初高中精品久久| 亚洲欧洲精品一区| 另类图片综合电影| 在线观看欧美日本| 西瓜成人精品人成网站| 久热精品在线视频| 欧美成人免费在线| 欧美日韩国产精品专区| 亚洲激情小视频| 亚洲成色www久久网站| 国产拍揄自揄精品视频麻豆| 欧美一区二区| 亚洲午夜黄色| 久久精品人人做人人爽| 免费观看欧美在线视频的网站| 久久久久久久成人| 1024精品一区二区三区| 校园激情久久| 一区二区三区在线免费播放| 亚洲视频精品在线| 亚洲一区bb| 狠狠色伊人亚洲综合网站色| 欧美日韩另类一区| 精品盗摄一区二区三区| 亚洲精品色婷婷福利天堂| 国产精品在线看| 亚洲免费在线视频一区 二区| 樱桃国产成人精品视频| 久久激情视频| 国产精品久久久99| 一本色道久久综合亚洲精品不| 久久久久久久网站| 亚洲成人自拍视频| 国产精品久久久久免费a∨大胸| 欧美精品三级| 亚洲精品在线二区| 国产精品专区h在线观看| 国内免费精品永久在线视频| 亚洲精品在线二区| 国产日韩欧美视频在线| 亚洲男人第一网站| 欧美在线一区二区| 欧美午夜理伦三级在线观看| 国内自拍视频一区二区三区| 午夜精品视频在线观看一区二区| 亚洲在线一区二区| 在线观看欧美| 久久九九国产精品| 香蕉久久a毛片| 香蕉成人啪国产精品视频综合网| 亚洲欧美日韩第一区| 国产日韩精品一区二区浪潮av| 国产精品国产三级国产| 羞羞答答国产精品www一本| 日韩视频免费观看高清完整版| 久久午夜影视| 欧美在线视频网站| 欧美视频精品一区| 国产精品久久久久久久久婷婷| 国产欧美日韩一区二区三区在线观看| 欧美夫妇交换俱乐部在线观看| 国产欧美日本一区视频| 欧美成人xxx| 欧美一区成人| 日韩视频免费观看高清完整版| 国产精品免费久久久久久| 夜夜嗨av一区二区三区免费区| 国产精品国产馆在线真实露脸| 性高湖久久久久久久久| 久久综合久久综合这里只有精品| 国产视频一区二区三区在线观看| 亚洲一卡二卡三卡四卡五卡| 久久精品女人天堂| 亚洲视频在线观看网站| 欧美在线免费观看| 欧美日韩dvd在线观看| 亚洲国产精品一区制服丝袜| 欧美成人免费一级人片100| 欧美国产一区在线| 国内精品**久久毛片app| 欧美日韩一区二区三区免费| 久久久一二三| 亚洲视频福利| 久久久久国产精品厨房| 一本久久综合亚洲鲁鲁五月天| 精品9999| 欧美在线高清视频| 亚洲精品视频在线观看免费| 欧美91福利在线观看| 午夜欧美电影在线观看| 加勒比av一区二区| 国产一区二区三区高清在线观看| 欧美精品色综合| 欧美成人黄色小视频| 欧美美女bb生活片| 欧美大片在线观看| 日韩亚洲国产欧美| 亚洲激情在线观看视频免费| 亚洲女性喷水在线观看一区| 日韩视频免费大全中文字幕| 狠狠v欧美v日韩v亚洲ⅴ| 国产精品社区| 欧美a一区二区| 国产欧美视频一区二区三区| 亚洲在线观看免费| 精品不卡一区二区三区| 亚洲视频中文字幕| 在线欧美日韩| 麻豆九一精品爱看视频在线观看免费| 欧美日本高清视频| 久久精品主播| 99成人精品| 国产日韩视频一区二区三区| 亚洲精品在线电影| 羞羞视频在线观看欧美| 精品99一区二区三区| 日韩一级片网址| 久久精品亚洲精品| 亚洲美女91| 亚洲青色在线| 国产女人精品视频| 欧美日韩在线一区二区| 性欧美长视频| 国产视频亚洲| 国产精品99久久久久久www| 免费在线一区二区| 国产日韩精品一区观看| 亚洲日本成人网| 国产欧美日韩免费| 久久久久一本一区二区青青蜜月| 亚洲免费av片| 久久伊人亚洲| 欧美一区二区在线看| 亚洲一区二区在线观看视频| 国产精品一区免费观看| 一本久道久久综合中文字幕| 国产亚洲一区二区精品| 小黄鸭精品aⅴ导航网站入口| 国产亚洲一区二区在线观看| 欧美三日本三级三级在线播放| 久久精品99国产精品酒店日本| 久久成人亚洲| 亚洲欧美国产另类| 亚洲精品久久久久久久久久久久久| 欧美一区在线视频| 国内综合精品午夜久久资源| 久热精品在线| 在线观看一区二区视频| 影音先锋日韩精品| 欧美高清hd18日本| 欧美成人黑人xx视频免费观看| 亚洲国产小视频| 欧美精品一线| 国模精品一区二区三区| 久久国产视频网| 亚洲欧美激情一区| 欧美一区二区三区免费大片| 久久成人免费日本黄色| 国产精品久久久久久久久借妻| 海角社区69精品视频| 亚洲一区二区三区激情| 国产女人水真多18毛片18精品视频| 精品成人一区| 久久先锋影音| 日韩一区二区精品葵司在线| 亚洲视频一二| 欧美日韩精品一区二区天天拍小说| 麻豆亚洲精品| 亚洲一区二三| 国产亚洲福利| 亚洲激情国产| 在线观看91精品国产麻豆| 亚洲国产精品久久精品怡红院| 牛牛国产精品| 欧美在线资源| 欧美日本亚洲| 久久国产主播| 在线视频观看日韩| 国产手机视频精品| 欧美一区二区免费| 久久一日本道色综合久久| 欧美mv日韩mv国产网站| 欧美一区二区三区婷婷月色| 久久久精品久久久久| av成人国产| 欧美黄色小视频| 亚洲狼人精品一区二区三区| 欧美性色aⅴ视频一区日韩精品| 国产一区二区三区久久| 99国产精品久久久久久久| 美女主播精品视频一二三四| 国产综合av| 欧美日韩精品在线观看| 久久成人这里只有精品| 欧美午夜电影完整版| 好看的亚洲午夜视频在线| 欧美先锋影音| 久久久久一本一区二区青青蜜月| 美女啪啪无遮挡免费久久网站| 亚洲女优在线| 欧美色图天堂网| 亚洲第一色中文字幕| 免费亚洲视频| 欧美日韩一区在线观看| 久久狠狠亚洲综合| 欧美呦呦网站| 亚洲已满18点击进入久久| 欧美伊人久久大香线蕉综合69| 欧美日韩一区二区三区高清| 国产亚洲成av人片在线观看桃| 国产日韩亚洲欧美| 夜夜嗨av一区二区三区| 亚洲欧美国产一区二区三区| 黄色在线一区| 欧美午夜激情小视频| 欧美日韩一区在线观看视频| 国产精品久久二区| 国产一区二区久久| 午夜精品久久久久久久蜜桃app| 亚洲激情视频网站| 久久成人精品电影| 免费91麻豆精品国产自产在线观看| 韩国精品在线观看| 欧美激情在线有限公司| 性感少妇一区| 亚洲七七久久综合桃花剧情介绍| 国产日韩欧美a| 亚洲伊人第一页| 国产一区二区三区高清播放| 亚洲成人原创| 久久午夜羞羞影院免费观看| 亚洲精品免费看| 一区二区三区日韩在线观看| 欧美午夜一区二区| 亚洲激情六月丁香| 亚洲伦理精品| 亚洲图片欧美日产| 欧美一区午夜精品| 久久久无码精品亚洲日韩按摩| 国产精品久久久久久久久久直播| 日韩视频免费观看高清在线视频| 日韩亚洲欧美中文三级| 久久日韩粉嫩一区二区三区| 一本到12不卡视频在线dvd| 久久精品国产99国产精品澳门| 久久久精品动漫| 欧美在线日韩在线| 国模叶桐国产精品一区| 国产日韩视频| 99视频在线观看一区三区| 亚洲国产成人精品女人久久久| 欧美日本一区| 国产欧美一区二区三区久久人妖| 国产精品美女主播| 久久岛国电影| 91久久国产综合久久| 国产日韩精品入口|