《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于多核DSP的超聲成像處理算法的并行實現
基于多核DSP的超聲成像處理算法的并行實現
來源:電子技術應用2013年第6期
肖 亮,張學健
北京化工大學 信息科學與技術學院,北京100029
摘要: 基于TI公司的多核DSP-TMS320C6678對黑白超聲成像的中端(Mid-End)處理算法進行并行設計與實現。介紹了多核DSP編程實現算法所用到的關鍵技術:程序并行設計與第三代增強型直接內存存取(EDMA3),并重點分析了核間通信技術。根據算法的特點選用數據流模式對其進行了任務規劃并分配到3個DSP核上執行,核間通信采用消息隊列方案。實驗結果證明了采用消息隊列方案進行核間通信、實現多核并行的有效性。
中圖分類號: TP751.1
文獻標識碼: 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

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

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

    通知模塊(Notify Module)用于對通知方案中用到的資源進行靜態配置。多核處理器模塊(MultiProc Module)用于配置需要啟用的DSP核個數及其名稱。需要在SYS/BIOS操作系統的靜態配置文件(*.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()函數用于在各個DSP核之間建立連接;Notify_registerEvent()函數將每個DSP核使用的事件號與相應的回調函數對應起來;在DSP核執行過程中需要通知其他核執行相應操作時調用函數Notify_sendEvent(),該函數使用中斷通知目標核執行與事件號對應的回調函數。
    (2)消息隊列方案
    消息隊列方案(MessageQ)通過在共享內存中開辟消息隊列的方法實現DSP核間的通信,各DSP核通過輪詢專屬消息隊列的方式來完成消息的獲取,可以滿足DSP核同步、核間數據傳輸等多種需求。該方案支持可變長數據的發送和接收;每個DSP核可擁有多個寫消息端,即可同時向多個DSP核發送消息。其配置方式如圖3所示。

    消息隊列模塊(MessageQ Module)用于對消息隊列方案中用到的資源進行靜態配置。共享區模塊(SharedRegion Module)用于開辟用來存放消息隊列的共享區域。需要在SYS/BIOS操作系統的靜態配置文件(*.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模塊進行如下動態配置:
    ①使用Ipc_start()函數在各個DSP核間建立連接;
    ②使用MessageQ_create()創建本地消息隊列;
    ③使用函數MessageQ_registerHeap()在消息隊列與由SharedRegion模塊開辟的共享區之間建立連接;
    ④使用函數MessageQ_open()打開由接收核創建的消息隊列。
    在程序執行過程中,對MessageQ模塊中函數的調用流程如圖4所示[5]。

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

 

 

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

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

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

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 日韩欧美在线观看综合网另类 | 欧美国产一区二区 | 婷婷激情综合网 | 免费福利资源站在线视频 | 黄色的视频网站在线观看 | 免费色视频 | 日本在线日本中文字幕日本在线视频播放 | 日韩中文欧美 | 黄色的视频免费观看 | 免费国产成人高清无线看软件 | 精品一区二区三区在线视频 | 日本高清免费不卡视频 | 国产成人综合欧美精品久久 | 久久国产成人精品国产成人亚洲 | 欧美 亚洲 激情 | 久久国产午夜精品理论篇小说 | 国产成人aa视频在线观看 | 欧美性色综合网 | 黄视频在线播放 | 成人小视频在线免费观看 | 久久综合狠狠综合久久97色 | 欧美色女人 | 国产91九色刺激露脸对白 | 国产美女精品在线 | 国产精品精品视频 | 99精品久久久久中文字幕 | 久久狠狠色噜噜狠狠狠狠97 | 深爱五月激情 | 激情影院在线观看十分钟 | 色视频在线免费看 | 五月婷婷视频在线 | 成人视品 | 亚洲国产日韩在线人成下载 | 国产一级αv片免费观看 | 国产精品欧美在线 | 黄色小视频免费网站 | 久久精品中文字幕久久 | 国产精品成人va在线观看 | 国产精品成人一区二区不卡 | 玖玖99| 国产亚洲小视频 |