999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于多核TMS320C6678 的數(shù)據(jù)處理與存儲(chǔ)系統(tǒng)設(shè)計(jì)

2022-09-14 08:19:46周加誼
電子設(shè)計(jì)工程 2022年17期
關(guān)鍵詞:數(shù)據(jù)處理程序功能

周加誼,李 中,楊 波

(中國(guó)兵器裝備集團(tuán)自動(dòng)化研究所有限公司特種計(jì)算機(jī)事業(yè)部,四川綿陽(yáng) 621000)

數(shù)字信號(hào)處理在很多領(lǐng)域得到了廣泛應(yīng)用,逐步形成了一門(mén)獨(dú)立的學(xué)科體系[1]。由德州儀器公司研發(fā)的TMS320C6678 數(shù)字信號(hào)處理器(DSP),可實(shí)現(xiàn)八核極高性能功耗比,適用于醫(yī)療、電信、軍事以及工業(yè)領(lǐng)域的各種應(yīng)用。TMS320C6678 是KeyStone架構(gòu)的8 核DSP 處理器,提供了強(qiáng)大的定點(diǎn)和浮點(diǎn)運(yùn)算能力,同時(shí)芯片內(nèi)部集成了SRIO、千兆以太網(wǎng)等外設(shè)[2]。在眾多科學(xué)大數(shù)據(jù)計(jì)算應(yīng)用中,I/O 性能已逐漸成為制約應(yīng)用程序性能的主要瓶頸[3]。在實(shí)際工程應(yīng)用中,DSP 較多應(yīng)用于CPU 密集型程序處理,對(duì)于I/O 型程序處理并不擅長(zhǎng)。其中,算法運(yùn)算程序?qū)儆诘湫偷腃PU 密集型程序,硬盤(pán)存儲(chǔ)程序?qū)儆诘湫偷腎/O 型程序。在嵌入式領(lǐng)域,當(dāng)需求既存在算法處理程序,又存在硬盤(pán)存儲(chǔ)程序時(shí),設(shè)計(jì)者通常會(huì)將算法處理部分放在DSP上完成,而硬盤(pán)存儲(chǔ)部分交由額外的硬件設(shè)備完成,如交由搭載Linux 系統(tǒng)的ARM 設(shè)備完成,但這樣的設(shè)計(jì)需要額外的硬件開(kāi)銷(xiāo),不利于成本控制。該文將介紹一種基于TMS320C6678數(shù)字信號(hào)處理器,利用多核協(xié)同處理方式,實(shí)現(xiàn)數(shù)據(jù)算法處理與數(shù)據(jù)存儲(chǔ)功能。

1 系統(tǒng)概述

系統(tǒng)使用TMS320C6678 數(shù)字信號(hào)處理器作為主處理器,該處理器擁有8 個(gè)處理核心單元,單核主頻為1 GHz,用于完成數(shù)據(jù)算法處理、外圍接口控制及數(shù)據(jù)存儲(chǔ)等功能[4-5]。使用Xilinx 公司的現(xiàn)場(chǎng)可編程門(mén)陣列(FPGA)Kintex-7 作為信號(hào)處理器,用于完成外部原始數(shù)據(jù)采集。DSP和FPGA之間使用高速通信接口SRIO(Serial RapidIO)實(shí)現(xiàn)數(shù)據(jù)傳輸,SRIO 是面向嵌入式系統(tǒng)開(kāi)發(fā)的高可靠、高性能新一代互聯(lián)技術(shù)[6-7]。SRIO 鏈接寬度配置為4x,傳輸速率配置為3.125 Gbps。硬盤(pán)通常使用SATA接口,TMS320C6678數(shù)字信號(hào)處理器不提供SATA 接口,但擁有PCIExpress 接口,因此文中采用一個(gè)PCI-Express 轉(zhuǎn)SATA 控制器,型號(hào)為SiI3132。SiI3132 控制器一端連接DSP 的PCI-Express 接口,另一端連接硬盤(pán)的SATA 接口,實(shí)現(xiàn)DSP 控制硬盤(pán)功能,達(dá)到數(shù)據(jù)存儲(chǔ)的目的。DSP 核0 完成與FPGA 和網(wǎng)絡(luò)之間的數(shù)據(jù)通信功能,DSP 核1 完成數(shù)據(jù)存儲(chǔ)功能,系統(tǒng)框圖如圖1 所示。

圖1 系統(tǒng)框圖

操作系統(tǒng)選用TI 公司的可擴(kuò)展實(shí)時(shí)操作系統(tǒng)SYS/BIOS,該系統(tǒng)具有搶占式、多線程、實(shí)時(shí)調(diào)度、內(nèi)存管理等功能特點(diǎn),并提供多核通信開(kāi)發(fā)包。結(jié)合SYS/BIOS 操作系統(tǒng)提供的信號(hào)處理函數(shù)庫(kù),能夠十分方便、快捷地開(kāi)發(fā)出實(shí)時(shí)應(yīng)用軟件,大幅減小了軟件開(kāi)發(fā)難度,提升了軟件開(kāi)發(fā)效率[8-9]。

2 數(shù)據(jù)處理及存儲(chǔ)設(shè)計(jì)

2.1 數(shù)據(jù)處理

外部數(shù)據(jù)由FPGA 采集,F(xiàn)PGA 通過(guò)高速通信接口SRIO 傳輸至DSP。在系統(tǒng)上電后,DSP 完成SRIO接口初始化功能,SRIO 接口初始化工作包括:SRIO時(shí)鐘設(shè)置、通信速率設(shè)置、PORT 寬度設(shè)置和中斷服務(wù)函數(shù)綁定。SRIO 初始化流程如圖2 所示。

圖2 SRIO初始化流程

系統(tǒng)初始化完成后,DSP 軟件向FPGA 發(fā)送DMA配置命令,包括DMA 地址和DMA 大小等信息,DMA地址可使用DDR3 地址,也可使用DSP 處理器的片上內(nèi)存MSMCSRAM 地址。在完成DMA 配置之后,DSP 向FPGA 發(fā)送開(kāi)始采集命令,F(xiàn)PGA 進(jìn)入數(shù)據(jù)采集模式。外部數(shù)據(jù)到來(lái)時(shí),F(xiàn)PGA 通過(guò)SRIO 接口以DMA 方式將數(shù)據(jù)寫(xiě)入DDR3,同時(shí)產(chǎn)生中斷信號(hào)告知DSP 有數(shù)據(jù)到來(lái)。為提升中斷服務(wù)函數(shù)的處理效率,中斷服務(wù)函數(shù)直接將數(shù)據(jù)從DDR3 中取出放入FIFO 中,而不作任何處理,數(shù)據(jù)處理功能由數(shù)據(jù)處理模塊完成。

數(shù)據(jù)處理模塊以任務(wù)方式運(yùn)行,數(shù)據(jù)處理任務(wù)實(shí)時(shí)查詢FIFO 狀態(tài),當(dāng)FIFO 不為空時(shí),取出FIFO 數(shù)據(jù),完成算法處理。經(jīng)算法處理后的數(shù)據(jù)分兩路處理,一路直接存儲(chǔ),一路通過(guò)網(wǎng)絡(luò)方式發(fā)送至上位機(jī)。數(shù)據(jù)處理流程如圖3 所示。

圖3 數(shù)據(jù)處理流程圖

2.2 數(shù)據(jù)存儲(chǔ)

一個(gè)健全的儲(chǔ)存系統(tǒng)包含文件系統(tǒng)和硬盤(pán)驅(qū)動(dòng)程序,存儲(chǔ)系統(tǒng)框圖如圖4所示。TI公司的SYS/BIOS操作系統(tǒng)雖然包含文件系統(tǒng),但都是基于Nand-flash存儲(chǔ)器??紤]到Nand-flash存在壞塊管理、容量、性能等問(wèn)題,該方案采用SATA 固態(tài)硬盤(pán)替代Nand-flash作為存儲(chǔ)介質(zhì)。SATA固態(tài)硬盤(pán)與DSP之間使用PCIE轉(zhuǎn)SATA 控制器互聯(lián),實(shí)現(xiàn)硬盤(pán)控制功能。使用硬盤(pán)方案需要移植硬盤(pán)驅(qū)動(dòng)程序和文件系統(tǒng)。

圖4 儲(chǔ)存系統(tǒng)框圖

TI 公司所提供的軟件開(kāi)發(fā)套件不包含硬盤(pán)驅(qū)動(dòng)程序,硬盤(pán)控制部分屬于難點(diǎn)。硬盤(pán)驅(qū)動(dòng)程序可參照VxWorks 系統(tǒng)和Linux 系統(tǒng)的硬盤(pán)驅(qū)動(dòng)進(jìn)行移植,最后將硬盤(pán)驅(qū)動(dòng)的讀寫(xiě)接口封裝成文件系統(tǒng)一致的讀寫(xiě)接口。

在文件系統(tǒng)上,使用開(kāi)源操作文件系統(tǒng)模塊FatFs。FatFs 是一款完全免費(fèi)開(kāi)源的FAT 文件系統(tǒng)模塊,專門(mén)為小型的嵌入式系統(tǒng)而設(shè)計(jì),它完全使用標(biāo)準(zhǔn)的C語(yǔ)言編寫(xiě),因此,具有良好的跨平臺(tái)特性,可以非常方便地移植到8051、PIC、AVR、SH、Z80、ARM、DSP 等嵌入式處理器上,移植工作量較小[10-12]。FatFs不僅提供文件夾及文件創(chuàng)建、刪除、修改和查找等基本功能,還提供容量查詢及格式化功能。在移植FatFs文件系統(tǒng)時(shí),需完成disk_read 函數(shù)和disk_write 函數(shù)的實(shí)現(xiàn)。其中,disk_read函數(shù)有4個(gè)參數(shù)分別如下:pdrv表示驅(qū)動(dòng)器號(hào),對(duì)應(yīng)某一硬盤(pán)設(shè)備;buff 為讀取數(shù)據(jù)的緩存區(qū)指針;sector為需要讀取的扇區(qū)號(hào);count為讀取扇區(qū)的個(gè)數(shù)。在移植文件系統(tǒng)時(shí),還需要適配文件系統(tǒng)與硬盤(pán)驅(qū)動(dòng)程序的讀寫(xiě)接口。FatFs文件系統(tǒng)的讀、寫(xiě)函數(shù)原型如表1所示,可以看出,disk_write函數(shù)與disk_read函數(shù)的參數(shù)類(lèi)型和返回值基本一致。在具體代碼實(shí)現(xiàn)中,將硬盤(pán)驅(qū)動(dòng)程序的讀函數(shù)封裝成disk_read 函數(shù),將硬盤(pán)驅(qū)動(dòng)程序的寫(xiě)函數(shù)封裝成disk_write 函數(shù),這樣就實(shí)現(xiàn)了文件系統(tǒng)與驅(qū)動(dòng)程序之間的對(duì)接。

表1 文件系統(tǒng)讀寫(xiě)函數(shù)原型

3 多核通信設(shè)計(jì)

該系統(tǒng)主要包括數(shù)據(jù)處理和數(shù)據(jù)存儲(chǔ)兩大功能模塊,其中,數(shù)據(jù)處理功能主要消耗處理器資源,而存儲(chǔ)功能大部分時(shí)間花費(fèi)在外設(shè)硬盤(pán)的I/O 操作上。結(jié)合DSP 的特性和實(shí)際應(yīng)用需求,為充分發(fā)揮DSP 擁有多核心的優(yōu)勢(shì),軟件設(shè)計(jì)上將使用兩個(gè)處理器核心,分別用于數(shù)據(jù)處理和數(shù)據(jù)存儲(chǔ),達(dá)到資源最大利用率和性能最優(yōu)的設(shè)計(jì)目的。

TI公司提供了多核軟件開(kāi)發(fā)包MCSDK(Multiple CoreSoftware Development Kit),具體內(nèi)容涵蓋對(duì)各種可用軟件套件以及實(shí)用程序及工具鏈的概述,可為編程人員開(kāi)發(fā)實(shí)時(shí)操作系統(tǒng)SYS/BIOS助一臂之力[13-14]。MCSDK 主包括實(shí)時(shí)操作系統(tǒng)SYS/BIOS、芯片支持開(kāi)發(fā)包、處理器核間通信IPC 開(kāi)發(fā)包、網(wǎng)絡(luò)協(xié)議棧、算法庫(kù)及調(diào)試工具等組件。該系統(tǒng)主要使用IPC 開(kāi)發(fā)包,實(shí)現(xiàn)處理器核間的數(shù)據(jù)傳輸和消息同步。IPC開(kāi)發(fā)包提供了MessageQ 和Notify 兩種核間通信方式[15-16]。MessageQ 方式支持可變數(shù)據(jù)傳輸,而Notify 不支持?jǐn)y帶數(shù)據(jù)通信。系統(tǒng)在完成數(shù)據(jù)采集和處理后,需要將處理后的數(shù)據(jù)由一個(gè)核傳輸至另外一個(gè)核,因此選擇MessageQ 方式進(jìn)行多核通信。核間通信模型如圖5 所示。

圖5 核間通信模型

MessageQ 方式支持自定義數(shù)據(jù)結(jié)構(gòu)完成多核通信,多核通信數(shù)據(jù)結(jié)構(gòu)如圖6 所示。在process_mes sage_t 結(jié)構(gòu)體中,header 和coreid 兩個(gè)數(shù)據(jù)成員為多核通信約束結(jié)構(gòu)體頭信息,一般情況下不作改動(dòng),info 成員為軟件開(kāi)發(fā)者自定義數(shù)據(jù)結(jié)構(gòu),其定義見(jiàn)processing_info_t 結(jié)構(gòu)體。在processing_info_t 結(jié)構(gòu)體中,func_id 字段表示此次通信的功能號(hào),如當(dāng)func_id=0,則表示此次傳輸?shù)男畔榈? 通道采集的數(shù)據(jù);param 字段表示此次通信攜帶的數(shù)據(jù),最大支持180 kB;param_size 表示攜帶數(shù)據(jù)的長(zhǎng)度;dbg 字段存儲(chǔ)調(diào)試信息;dbg_size 表示調(diào)試信息長(zhǎng)度;has_dbg表示調(diào)試信息是否有效。DSP 主核使用Message Q_put 函數(shù)發(fā)送process_message_t 結(jié)構(gòu)體,從核調(diào)用MessageQ_get 函數(shù)接收該結(jié)構(gòu)體[17-18],從核讀取結(jié)構(gòu)體中的func_id,由此判斷此次請(qǐng)求的具體功能,隨后執(zhí)行相應(yīng)功能代碼。

圖6 多核通信數(shù)據(jù)結(jié)構(gòu)

在該系統(tǒng)中,使用DSP 的兩個(gè)處理器核心分別完成數(shù)據(jù)采集處理和存儲(chǔ)功能。其中,核0 設(shè)計(jì)為主核,完成數(shù)據(jù)采集和處理功能,核1 設(shè)計(jì)為從核,完成數(shù)據(jù)存儲(chǔ)功能。為方便代碼管理,為兩個(gè)DSP 核獨(dú)立創(chuàng)建應(yīng)用工程,最終使用多核合成工具將兩個(gè)工程編譯出的out 文件轉(zhuǎn)換為一個(gè)bin 文件,多核合成界面如圖7 所示。

圖7 多核合成界面

數(shù)據(jù)采集開(kāi)始命令和結(jié)束命令由上位機(jī)通過(guò)網(wǎng)絡(luò)接口向DSP 核0 下發(fā),當(dāng)核0 收到開(kāi)始采集命令后,核0 向FPGA 發(fā)送開(kāi)始采集指令,同時(shí)向核1 通過(guò)MessageQ 方式發(fā)送文件創(chuàng)建命令。FPGA 收到開(kāi)始采集命令后,以DMA 方式將數(shù)據(jù)傳輸至DDR 內(nèi)存,并以中斷方式通知核0。核0 在中斷服務(wù)程序中取出數(shù)據(jù)后存放至FIFO,隨后數(shù)據(jù)處理任務(wù)會(huì)取出數(shù)據(jù),進(jìn)行算法處理,并將處理后的數(shù)據(jù)發(fā)送至核1。核1 將數(shù)據(jù)進(jìn)行存儲(chǔ),直到上位機(jī)發(fā)送停止命令時(shí),F(xiàn)PGA將停止采集,此時(shí)核0告知核1關(guān)閉文件并停止存儲(chǔ)。若數(shù)據(jù)存儲(chǔ)過(guò)程中未收到上位機(jī)停止命令,且存儲(chǔ)文件大于等于4 GB,核1 將自動(dòng)關(guān)閉文件并重新創(chuàng)建文件繼續(xù)存儲(chǔ),直到硬盤(pán)存滿,終止存儲(chǔ)。

4 性能驗(yàn)證

為對(duì)比單核處理與多核處理之間的性能差異,按該文所述的多核軟件架構(gòu)編譯出的軟件命名為APP_A.bin。與此同時(shí),將所有軟件功能都集成在單核上面,編譯出的軟件命名為APP_B.bin。分別在目標(biāo)板卡上運(yùn)行APP_A.bin 程序和APP_B.bin 程序,對(duì)比執(zhí)行兩個(gè)程序在DSP 核0 上的資源利用率。

使用最低優(yōu)先級(jí)線程執(zhí)行占比的方式計(jì)算處理器的資源利用率,具體計(jì)算方式為,DSP 不執(zhí)行任何線程,統(tǒng)計(jì)1 s 時(shí)間最低優(yōu)先級(jí)線程執(zhí)行的次數(shù),記為countFull;DSP 正常運(yùn)行所有功能時(shí),統(tǒng)計(jì)1 s 時(shí)間最低優(yōu)先級(jí)線程執(zhí)行的次數(shù),記為countNormal;則處理器資源利用率dspUsage 的計(jì)算公式為count Normal/countFull。

測(cè)試結(jié)果顯示,在外部輸入數(shù)據(jù)速率相同的情況下,運(yùn)行單核程序時(shí),DSP 核0 資源利用率為69%,運(yùn)行雙核程序時(shí),DSP 核0 資源利用率為43%,多核程序的處理器資源利用率比單核程序的處理器資源利用率降低了26%。

5 結(jié)論

該文設(shè)計(jì)的多核數(shù)據(jù)處理與存儲(chǔ)系統(tǒng)解決了信號(hào)數(shù)據(jù)處理過(guò)程中數(shù)據(jù)量大、存儲(chǔ)性能慢的問(wèn)題。經(jīng)實(shí)驗(yàn)證明,使用多核協(xié)同處理完成數(shù)據(jù)處理和存儲(chǔ)功能,有效降低了26%單核資源利用率,提升了系統(tǒng)的整體性能,系統(tǒng)工作穩(wěn)定可靠。

猜你喜歡
數(shù)據(jù)處理程序功能
也談詩(shī)的“功能”
認(rèn)知診斷缺失數(shù)據(jù)處理方法的比較:零替換、多重插補(bǔ)與極大似然估計(jì)法*
ILWT-EEMD數(shù)據(jù)處理的ELM滾動(dòng)軸承故障診斷
試論我國(guó)未決羈押程序的立法完善
“程序猿”的生活什么樣
關(guān)于非首都功能疏解的幾點(diǎn)思考
英國(guó)與歐盟正式啟動(dòng)“離婚”程序程序
基于希爾伯特- 黃變換的去噪法在外測(cè)數(shù)據(jù)處理中的應(yīng)用
創(chuàng)衛(wèi)暗訪程序有待改進(jìn)
中西醫(yī)結(jié)合治療甲狀腺功能亢進(jìn)癥31例
主站蜘蛛池模板: 午夜不卡视频| 欧美中文字幕一区| 丁香亚洲综合五月天婷婷| 在线观看国产精美视频| 伊人久综合| 国产精品美女自慰喷水| 1024你懂的国产精品| 色妞www精品视频一级下载| 日韩性网站| 女人毛片a级大学毛片免费| 国产欧美又粗又猛又爽老| 国产福利一区视频| 日韩免费毛片视频| 亚洲欧洲综合| 亚洲欧美不卡视频| 欧美丝袜高跟鞋一区二区| 国产亚洲精品自在线| 欧美日韩91| 欧美成人看片一区二区三区| 色综合久久久久8天国| 日韩在线播放中文字幕| 在线视频亚洲色图| 久久久久亚洲av成人网人人软件| 久久久久九九精品影院| 国产在线无码av完整版在线观看| 亚洲人成网站18禁动漫无码| 亚洲日韩日本中文在线| 免费无码又爽又黄又刺激网站| 一级全免费视频播放| 99热在线只有精品| 成人欧美日韩| 真实国产乱子伦高清| 亚洲无码熟妇人妻AV在线| 黄片在线永久| 57pao国产成视频免费播放| 欧美天堂久久| 在线色国产| 国产中文一区a级毛片视频| 一级福利视频| 99久久精品无码专区免费| 色呦呦手机在线精品| 人妻一区二区三区无码精品一区| 欧美成人在线免费| 欧美中文字幕第一页线路一| 欧美日韩资源| 亚洲av色吊丝无码| igao国产精品| 色国产视频| 亚洲精品第五页| 99福利视频导航| AV天堂资源福利在线观看| 一本综合久久| 99国产在线视频| yjizz视频最新网站在线| 国产人碰人摸人爱免费视频| 夜夜拍夜夜爽| 色综合天天综合| 亚洲国模精品一区| 五月天综合婷婷| 亚洲一区二区无码视频| 婷婷中文在线| 国产a网站| 国产精品9| 青青青国产视频| 天天躁日日躁狠狠躁中文字幕| 久久国产热| 欧美一区二区丝袜高跟鞋| 一本二本三本不卡无码| 波多野结衣无码视频在线观看| 亚洲一区国色天香| 尤物午夜福利视频| 日韩一区二区在线电影| 国产精品视频999| 狂欢视频在线观看不卡| 国产一级裸网站| 丁香五月激情图片| 精品视频一区二区观看| 四虎永久在线| 99久久精品久久久久久婷婷| 国产精品视频免费网站| 中文字幕自拍偷拍| 秋霞午夜国产精品成人片|