《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于多核DSP的超聲成像處理算法的并行實現(xiàn)
基于多核DSP的超聲成像處理算法的并行實現(xiàn)
來源:電子技術(shù)應(yīng)用2013年第6期
肖 亮,張學(xué)健
北京化工大學(xué) 信息科學(xué)與技術(shù)學(xué)院,北京100029
摘要: 基于TI公司的多核DSP-TMS320C6678對黑白超聲成像的中端(Mid-End)處理算法進行并行設(shè)計與實現(xiàn)。介紹了多核DSP編程實現(xiàn)算法所用到的關(guān)鍵技術(shù):程序并行設(shè)計與第三代增強型直接內(nèi)存存取(EDMA3),并重點分析了核間通信技術(shù)。根據(jù)算法的特點選用數(shù)據(jù)流模式對其進行了任務(wù)規(guī)劃并分配到3個DSP核上執(zhí)行,核間通信采用消息隊列方案。實驗結(jié)果證明了采用消息隊列方案進行核間通信、實現(xiàn)多核并行的有效性。
中圖分類號: TP751.1
文獻標(biāo)識碼: A
文章編號: 0258-7998(2013)06-0027-04
Parallel implementation of processing algorithm of ultrasound imaging based on multi-core DSP
Xiao Liang,Zhang Xuejian
College of Information Science and Technology,Beijing University of Chemical Technology,Beijing 100029,China
Abstract: The parallel design and programming of Mid-End processing algorithm of B-mode ultrasound imaging based on TI’s multi-core DSP-TMS320C6678 is discussed in this article. The paper introduces key technologies used in the multi-core DSP programming for the algorithm, including task parallelism and the 3rd generation EDMA3(Enhanced Direct Memory Access). Particularly, the IPC(Inter-Processor-Communication) technique is analyzed in detail. The algorithm, according to its characteristics, is divided into several components using task planning, and is assigned to 3 cores to be executed separately in view of Data-Flow model. The IPC is accomplished by utilizing MessageQ scheme. The effectiveness of MessageQ scheme to accomplish IPC and task parallelism is validated through experiments.
Key words : ultrasound imaging;multi-core DSP;IPC;MessageQ;EDMA3

    當(dāng)前,超聲成像技術(shù)在臨床診斷中得到了廣泛的應(yīng)用,隨著技術(shù)的發(fā)展,對圖像分辨率與成像實時性的要求越來越高[1],現(xiàn)有的單核DSP已經(jīng)不能滿足其信號處理需求。2010年,TI公司推出了采用KeyStone架構(gòu)的TMS320C66x系列多核DSP。每個C66x核主頻最高可達1.25 GHz,可實現(xiàn)每秒40 GMAC的定點運算或20 GFLOP的浮點運算;片內(nèi)有4 MB的共享內(nèi)存(MSMCSRAM),具有多種高速互聯(lián)接口。并且,TI公司提供了具有任務(wù)調(diào)度、資源管理等功能的SYS/BIOS實時操作系統(tǒng),可大大縮短開發(fā)周期。

    本研究基于多核DSP-TMS320C6678對TI公司提供的黑白超聲成像的中端(Mid-End)處理算法進行了并行設(shè)計與實現(xiàn)(前端的波束合成與數(shù)字解調(diào)一般在FPGA中完成[2]),以充分利用多核DSP的處理性能與C語言編程的靈活性。
    文中介紹了多核DSP編程實現(xiàn)算法用到的3項關(guān)鍵技術(shù):程序并行設(shè)計、核間通信和第三代增強型直接內(nèi)存存取技術(shù)(EDMA3),著重對核間通信技術(shù)進行了分析,包括通知方案與消息隊列方案。為高效地實現(xiàn)超聲成像算法,首先對算法在單個DSP核上運行的性能進行了評估,然后根據(jù)算法各模塊的時間消耗和數(shù)據(jù)依賴關(guān)系選擇了數(shù)據(jù)流模式進行任務(wù)規(guī)劃,分配到3個DSP核上執(zhí)行。采用消息隊列方案來實現(xiàn)各DSP核間的通知和同步,使用EDMA3實現(xiàn)外部存儲器(DDR3)與共享內(nèi)存之間的數(shù)據(jù)交換。
    實驗結(jié)果表明,超聲成像處理算法在3個DSP核上運行的時間消耗為在單個DSP核上時間消耗的42%,DSP每秒鐘可處理約40幀尺寸為512×1 024的圖像,這表明多核DSP的并行處理能夠滿足超聲成像的數(shù)據(jù)處理需求。實驗結(jié)果證明了采用消息隊列方案進行核間通信、實現(xiàn)多核并行的有效性。
  
2 多核DSP處理技術(shù)
    為了實現(xiàn)TMS320C6678的多核處理,需要將算法分解為多個任務(wù),分配到多個DSP核上并行執(zhí)行。以下是實現(xiàn)過程中用到的幾項關(guān)鍵技術(shù)。
2.1 程序并行設(shè)計
    程序并行設(shè)計首先對應(yīng)用進行任務(wù)規(guī)劃,將一個應(yīng)用分解為多個任務(wù),然后根據(jù)一定的任務(wù)分配模式分配到相應(yīng)的DSP核上執(zhí)行[3]。多核程序開發(fā)中兩種常用的任務(wù)分配模式如下。
    (1)主從模式
    主核作為控制核進行任務(wù)分配、調(diào)度和觸發(fā)[4]。該模式適用于含有多個獨立任務(wù)的應(yīng)用。主核與從核間需要進行頻繁地消息通信,從核之間不需要進行同步和數(shù)據(jù)傳遞。
    (2)數(shù)據(jù)流模式
    各DSP核以流水線的方式按照數(shù)據(jù)處理的流程執(zhí)行各任務(wù)。該模式適用于分布式控制和數(shù)據(jù)處理的應(yīng)用,這類應(yīng)用中通常包含多個復(fù)雜的算法模塊,單個DSP核不能滿足需求,且各算法模塊間有很強的數(shù)據(jù)依賴關(guān)系。
2.2 核間通信
    TI公司提供了用于多核以及多核與外設(shè)之間通信的IPC庫[5],其支持下列兩種常用的通信方案。
    (1)通知方案
    通知方案(Notify)采用對目標(biāo)核產(chǎn)生中斷的方式實現(xiàn)DSP核間通信。其一次傳遞的數(shù)據(jù)為固定的32 bit,適合在多核間執(zhí)行簡單的同步操作。其配置方式如圖2所示[5]。

    通知模塊(Notify Module)用于對通知方案中用到的資源進行靜態(tài)配置。多核處理器模塊(MultiProc Module)用于配置需要啟用的DSP核個數(shù)及其名稱。需要在SYS/BIOS操作系統(tǒng)的靜態(tài)配置文件(*.cfg)中進行如下配置:
    var Notify = xdc.useModule ('ti.sdo.ipc.Notify');
    var MultiProc = xdc.useModule('ti.sdo.utils.MultiProc');
    var nameList =["CORE0", "CORE1","CORE2",……];
    MultiProc.setConfig (null, nameList);
    在程序中,Ipc_start()函數(shù)用于在各個DSP核之間建立連接;Notify_registerEvent()函數(shù)將每個DSP核使用的事件號與相應(yīng)的回調(diào)函數(shù)對應(yīng)起來;在DSP核執(zhí)行過程中需要通知其他核執(zhí)行相應(yīng)操作時調(diào)用函數(shù)Notify_sendEvent(),該函數(shù)使用中斷通知目標(biāo)核執(zhí)行與事件號對應(yīng)的回調(diào)函數(shù)。
    (2)消息隊列方案
    消息隊列方案(MessageQ)通過在共享內(nèi)存中開辟消息隊列的方法實現(xiàn)DSP核間的通信,各DSP核通過輪詢專屬消息隊列的方式來完成消息的獲取,可以滿足DSP核同步、核間數(shù)據(jù)傳輸?shù)榷喾N需求。該方案支持可變長數(shù)據(jù)的發(fā)送和接收;每個DSP核可擁有多個寫消息端,即可同時向多個DSP核發(fā)送消息。其配置方式如圖3所示。

    消息隊列模塊(MessageQ Module)用于對消息隊列方案中用到的資源進行靜態(tài)配置。共享區(qū)模塊(SharedRegion Module)用于開辟用來存放消息隊列的共享區(qū)域。需要在SYS/BIOS操作系統(tǒng)的靜態(tài)配置文件(*.cfg)中進行如下配置:
    var MessageQ = xdc.useModule ('ti.sdo.ipc.MessageQ');
    var Ipc = xdc.useModule ('ti.sdo.ipc.Ipc');
    var MultiProc = xdc.useModule ('ti.sdo.utils.MultiProc');
    var nameList = ["CORE0", "CORE1","CORE2",……];
    MultiProc.setConfig (null, nameList);
    var SharedRegion=xdc.useModule('ti.sdo.ipc.SharedRegion');
    var SHAREDMEM = 0x0C000000;
    var SHAREDMEMSIZE = 0x00200000;
    SharedRegion.setEntryMeta(0,
        { base: SHAREDMEM,
          len:  SHAREDMEMSIZE,
          ownerProcId: 0,
          isValid: true,
          name: "INTERNAL_SHARED_MEM",});
    在主程序中,對MessageQ模塊進行如下動態(tài)配置:
    ①使用Ipc_start()函數(shù)在各個DSP核間建立連接;
    ②使用MessageQ_create()創(chuàng)建本地消息隊列;
    ③使用函數(shù)MessageQ_registerHeap()在消息隊列與由SharedRegion模塊開辟的共享區(qū)之間建立連接;
    ④使用函數(shù)MessageQ_open()打開由接收核創(chuàng)建的消息隊列。
    在程序執(zhí)行過程中,對MessageQ模塊中函數(shù)的調(diào)用流程如圖4所示[5]。

    DSP核發(fā)送消息時,使用函數(shù)MessageQ_alloc()在共享區(qū)分配消息空間,然后使用函數(shù)MessageQ_put()將消息發(fā)送到接收核的消息隊列。當(dāng)DSP核接收消息時,使用函數(shù)MessageQ_get()獲取本地消息隊列中的消息,然后調(diào)用函數(shù)MessageQ_free()或MessageQ_delete()刪除該消息。通信完成后,調(diào)用MessageQ_close()關(guān)閉消息隊列。
2.3 EDMA3
    EDMA3是第三代增強型直接內(nèi)存存取技術(shù),支持一維(數(shù)組)傳輸、二維(數(shù)據(jù)幀)傳輸和三維(數(shù)據(jù)塊)傳輸,這3種傳輸都可通過一次CPU觸發(fā)(寫入相應(yīng)寄存器)或事件觸發(fā)完成。
    這里介紹實際使用的二維傳輸。數(shù)據(jù)幀中的每個元素為一個一維數(shù)組,可用于從大的數(shù)據(jù)塊中等間隔地提取子幀。例如,可以將圖像數(shù)據(jù)從逐行排列的外部存儲器傳輸?shù)絻?nèi)部緩沖區(qū)以實現(xiàn)隔行排列。為了實現(xiàn)二維傳輸,需要正確地配置參數(shù)RAM,其結(jié)構(gòu)如圖5所示。

 

 

    由表2可知,消息隊列方案的通信速度稍快于通知方案,且本設(shè)計中程序計算的中間結(jié)果存儲在內(nèi)部共享存儲中,需要使用核間通信傳輸中間結(jié)果的指針,通知方案的32 bit固定負(fù)載不能滿足需求。因此,本設(shè)計選擇消息隊列方案實現(xiàn)核間通信。
3.3 超聲成像算法的多核實現(xiàn)
    為了平衡各DSP核任務(wù)的時間消耗,根據(jù)表1的評估結(jié)果,將包絡(luò)檢測算法放在CORE0核執(zhí)行,將動態(tài)壓縮算法放在CORE1核執(zhí)行,將頻率復(fù)合和行濾波算法合并到一起放在CORE2核上執(zhí)行。因此,本設(shè)計需要使用TMS320C6678的3個DSP核以流水方式進行數(shù)據(jù)處理。3個DSP核間的數(shù)據(jù)流水和消息傳遞如圖6所示。

    以Core1為例,其程序基本流程為:
    ①初始化消息隊列方案用到的資源;
    ②使用MessageQ_get()函數(shù)等待CORE0傳遞來的消息;
    ③用動態(tài)壓縮算法處理從CORE0導(dǎo)入的數(shù)據(jù);
    ④使用MessageQ_put()函數(shù)向CORE2發(fā)送消息;
    ⑤使用MessageQ_get()函數(shù)等待下一個由CORE0傳遞來的消息。
    經(jīng)驗證,在一次處理8條掃描線的情況下,3個DSP核各自運行的時間如表3所示。

    在對數(shù)據(jù)進行流水處理時,任務(wù)完成所需時間等于耗時最多的CORE0所用時間。因此,在3個DSP核上運行的時間消耗為在單個DSP核上時間消耗的42%。在這種并行設(shè)計下,DSP每秒鐘可以處理約40幀尺寸為512×1 024的圖像。
    本設(shè)計基于TI公司的多核DSP-TMS320C6678對黑白超聲成像的中端處理算法進行了并行設(shè)計與實現(xiàn)。根據(jù)數(shù)據(jù)流模式對超聲成像算法進行了任務(wù)規(guī)劃,將各模塊分配到3個DSP核上執(zhí)行。使用高效的消息隊列方案實現(xiàn)核間通信,并使用EDMA3實現(xiàn)DSP與外部存儲器之間的快速數(shù)據(jù)交換。實驗證明了采用消息隊列方案進行核間通信、實現(xiàn)多核并行的有效性。測試結(jié)果表明,基于多核DSP的并行架構(gòu)具有強大的數(shù)據(jù)處理能力,可以為超聲成像的實現(xiàn)提供有力的支持。
參考文獻
[1] 王艷丹,高上凱.超聲成像新技術(shù)及其臨床應(yīng)用[J].北京生物醫(yī)學(xué)工程,2006(9):553-555.
[2] Texas Instruments Inc.Signal processing overview of ultra sound systems for medical imaging[Z].2008.
[3] 吳灝,肖吉陽,范紅旗,等.TMS320C6678多核DSP的核間通信方法[J].電子技術(shù)應(yīng)用,2012,38(9):12-14.
[4] Texas Instruments Inc.Multicore programming guide[Z].2012.
[5] Texas Instruments Inc.SYS/BIOS inter-processor communication(IPC) user guide[Z].2012.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
久久久久一区二区三区四区| 欧美日韩一区不卡| 亚洲乱码日产精品bd| 久久国产主播| 性色av一区二区三区红粉影视| 国产精品99久久99久久久二8| 亚洲经典视频在线观看| 在线观看亚洲精品| 禁久久精品乱码| 国内精品一区二区三区| 国产日韩欧美高清免费| 国产精品一香蕉国产线看观看| 国产精品久久999| 欧美性猛交xxxx乱大交退制版| 欧美久久在线| 欧美久久久久免费| 欧美日韩18| 欧美日韩一二三四五区| 欧美日产国产成人免费图片| 欧美区在线观看| 欧美理论片在线观看| 欧美另类变人与禽xxxxx| 欧美成人精品福利| 欧美电影资源| 欧美日韩国产综合网| 欧美日韩亚洲三区| 欧美特黄一区| 国产精品夜夜夜| 国产一区二区观看| 激情五月综合色婷婷一区二区| 曰本成人黄色| 91久久线看在观草草青青| 亚洲精品一级| 亚洲色图综合久久| 午夜精品www| 久久精品人人做人人爽电影蜜月 | 亚洲精品偷拍| 一区二区成人精品| 亚洲一区三区视频在线观看 | 国产精品人成在线观看免费 | 亚洲男女自偷自拍| 欧美在线免费观看亚洲| 久久精品视频99| 99ri日韩精品视频| 午夜电影亚洲| 另类av一区二区| 欧美日韩在线一区| 国产日韩欧美一区二区三区在线观看| 黄色精品一区二区| 日韩视频免费在线| 午夜精品一区二区三区在线视 | 国产精品一区一区| 娇妻被交换粗又大又硬视频欧美| 亚洲欧洲美洲综合色网| 亚洲一区一卡| 亚洲黄色免费网站| 亚洲综合精品四区| 久久在线免费观看| 欧美日韩视频一区二区| 国产日韩视频| 亚洲精品久久久久久久久久久 | 欧美亚洲一区在线| 亚洲剧情一区二区| 欧美在线视频播放| 欧美精选一区| 国产亚洲福利| 亚洲精品视频免费在线观看| 午夜精品区一区二区三| 亚洲美女在线观看| 欧美呦呦网站| 欧美全黄视频| 激情五月婷婷综合| 亚洲午夜激情网站| 亚洲久久在线| 久久精品在线| 国产精品久久二区| 亚洲欧洲另类| 亚洲第一精品夜夜躁人人爽| 亚洲一区二区在线| 麻豆av一区二区三区| 国产精品色婷婷久久58| 最新高清无码专区| 久久精品国产亚洲a| 亚洲在线播放| 久久综合久色欧美综合狠狠| 国产精品久久亚洲7777| 亚洲人屁股眼子交8| 亚洲福利视频网站| 欧美一级视频精品观看| 欧美日本在线| 亚洲第一色在线| 久久xxxx| 久久国产视频网| 国产精品久久久久久模特 | 欧美乱大交xxxxx| 在线观看欧美黄色| 欧美一区二区精品在线| 午夜日韩激情| 国产精品国产三级国产a| 亚洲国产精品一区二区www| 久久精品国产第一区二区三区| 亚洲欧美日韩综合国产aⅴ| 欧美精品日本| 亚洲国产精品99久久久久久久久| 欧美在线电影| 欧美专区亚洲专区| 国产精品揄拍500视频| 99视频在线观看一区三区| 日韩视频在线观看| 欧美粗暴jizz性欧美20| 精品成人一区二区三区| 欧美有码在线视频| 久久精品一区四区| 国产亚洲成年网址在线观看| 亚洲综合久久久久| 午夜精品区一区二区三| 国产精品九九| 亚洲午夜成aⅴ人片| 亚洲综合社区| 国产精品激情偷乱一区二区∴| av72成人在线| 亚洲一区欧美| 国产精品入口麻豆原神| 亚洲欧美日韩中文在线制服| 欧美一区二区视频网站| 国产精品专区h在线观看| 亚洲视频你懂的| 校园激情久久| 国产日韩精品在线播放| 香蕉久久久久久久av网站| 久久大香伊蕉在人线观看热2| 国产精品综合网站| 亚洲欧美日韩国产另类专区| 午夜伦理片一区| 国产欧美不卡| 午夜免费日韩视频| 久久久精品欧美丰满| 国外成人在线视频网站| 久久国产精品黑丝| 六十路精品视频| 亚洲国产精品国自产拍av秋霞| 日韩视频在线一区| 欧美视频中文字幕在线| 亚洲天堂久久| 久久疯狂做爰流白浆xx| 国产有码在线一区二区视频| 亚洲成人在线视频播放| 久久婷婷成人综合色| 亚洲第一偷拍| 一二三区精品| 国产精品一区二区男女羞羞无遮挡| 亚洲永久字幕| 久久www免费人成看片高清 | 日韩视频一区二区三区| 亚洲视频图片小说| 国产精品视频免费观看| 欧美在线亚洲| 欧美成人精品福利| 一本一本久久| 久久国产色av| 亚洲丁香婷深爱综合| 亚洲图片欧洲图片日韩av| 国产精品色婷婷| 久久狠狠婷婷| 欧美激情一区二区三级高清视频| 99在线热播精品免费| 久久精品日产第一区二区| 亚洲福利国产| 亚洲尤物在线| 黄色成人在线免费| 日韩午夜激情av| 国产精品―色哟哟| 亚洲国产美女| 欧美性做爰毛片| 欧美在线视频观看免费网站| 女生裸体视频一区二区三区| 99在线观看免费视频精品观看| 久久www成人_看片免费不卡| 在线精品国精品国产尤物884a| 一区二区福利| 国产日韩欧美一区二区三区四区| 亚洲精品国产品国语在线app| 欧美午夜片欧美片在线观看| 欧美亚洲免费在线| 欧美精品1区2区| 香蕉成人久久| 欧美日韩在线播放一区| 欧美与黑人午夜性猛交久久久| 欧美连裤袜在线视频| 午夜日韩在线观看| 欧美日韩不卡在线| 亚洲第一福利在线观看| 国产精品高清在线| 亚洲精品黄网在线观看| 国产精品一区三区| 99在线|亚洲一区二区| 国产无一区二区| 亚洲一卡久久| 亚洲国产成人精品女人久久久 | 亚洲一区二区影院|