《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 設計應用 > 基于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 引言

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

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網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 国产日产亚洲系列首页 | 久久国产亚洲欧美日韩精品 | 经典三级四虎在线观看 | 小明网址| 天天色啪| 桃花岛亚洲精品tv自拍网站 | 久久97精品久久久久久久不卡 | 国产精品一区二区国产 | 在线亚洲精品自拍 | 日本在线视频精品 | 在线观看精品福利片香蕉 | 天天干天天干天天干天天干天天干 | 亚洲图片 中文字幕 | 五月天在线观看免费视频播放 | 波多野结衣不卡 | 免费黄色小视频 | 国产国语videosex护士 | 欧美 日韩 国产在线 | 老司机午夜免费 | 午夜视频免费观看 | 伦理片中文字幕完整视频 | 男女无遮挡在线完整视频 | 夜夜天天干 | 亚洲欧美在线看 | 一级无毛片| 成人在线午夜 | 成年激情网 | 免费a大片 | 欧美视频在线免费播放 | 中文字幕亚洲图片 | 国产乡下三片 | 亚洲成人一级片 | 亚洲欧美日韩第一页 | www视频在线 | 亚洲精品v欧美精品动漫精品 | 国产a级黄色毛片 | 亚洲五月六月丁香激情 | 香蕉视频ww | 91短视频在线 | 不卡一区二区在线观看 | 亚洲国产成人久久一区www妖精 |