亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

        2022-09-14 08:19:46周加誼
        電子設(shè)計(jì)工程 2022年17期
        關(guān)鍵詞:驅(qū)動(dòng)程序硬盤數(shù)據(jù)處理

        周加誼,李 中,楊 波

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

        數(shù)字信號(hào)處理在很多領(lǐng)域得到了廣泛應(yīng)用,逐步形成了一門獨(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 密集型程序,硬盤存儲(chǔ)程序?qū)儆诘湫偷腎/O 型程序。在嵌入式領(lǐng)域,當(dāng)需求既存在算法處理程序,又存在硬盤存儲(chǔ)程序時(shí),設(shè)計(jì)者通常會(huì)將算法處理部分放在DSP上完成,而硬盤存儲(chǔ)部分交由額外的硬件設(shè)備完成,如交由搭載Linux 系統(tǒng)的ARM 設(shè)備完成,但這樣的設(shè)計(jì)需要額外的硬件開銷,不利于成本控制。該文將介紹一種基于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)可編程門陣列(FPGA)Kintex-7 作為信號(hào)處理器,用于完成外部原始數(shù)據(jù)采集。DSP和FPGA之間使用高速通信接口SRIO(Serial RapidIO)實(shí)現(xiàn)數(shù)據(jù)傳輸,SRIO 是面向嵌入式系統(tǒng)開發(fā)的高可靠、高性能新一代互聯(lián)技術(shù)[6-7]。SRIO 鏈接寬度配置為4x,傳輸速率配置為3.125 Gbps。硬盤通常使用SATA接口,TMS320C6678數(shù)字信號(hào)處理器不提供SATA 接口,但擁有PCIExpress 接口,因此文中采用一個(gè)PCI-Express 轉(zhuǎn)SATA 控制器,型號(hào)為SiI3132。SiI3132 控制器一端連接DSP 的PCI-Express 接口,另一端連接硬盤的SATA 接口,實(shí)現(xiàn)DSP 控制硬盤功能,達(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),并提供多核通信開發(fā)包。結(jié)合SYS/BIOS 操作系統(tǒng)提供的信號(hào)處理函數(shù)庫(kù),能夠十分方便、快捷地開發(fā)出實(shí)時(shí)應(yīng)用軟件,大幅減小了軟件開發(fā)難度,提升了軟件開發(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ā)送開始采集命令,F(xiàn)PGA 進(jìn)入數(shù)據(jù)采集模式。外部數(shù)據(jù)到來(lái)時(shí),F(xiàn)PGA 通過(guò)SRIO 接口以DMA 方式將數(shù)據(jù)寫入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)和硬盤驅(qū)動(dòng)程序,存儲(chǔ)系統(tǒng)框圖如圖4所示。TI公司的SYS/BIOS操作系統(tǒng)雖然包含文件系統(tǒng),但都是基于Nand-flash存儲(chǔ)器??紤]到Nand-flash存在壞塊管理、容量、性能等問(wèn)題,該方案采用SATA 固態(tài)硬盤替代Nand-flash作為存儲(chǔ)介質(zhì)。SATA固態(tài)硬盤與DSP之間使用PCIE轉(zhuǎn)SATA 控制器互聯(lián),實(shí)現(xiàn)硬盤控制功能。使用硬盤方案需要移植硬盤驅(qū)動(dòng)程序和文件系統(tǒng)。

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

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

        在文件系統(tǒng)上,使用開源操作文件系統(tǒng)模塊FatFs。FatFs 是一款完全免費(fèi)開源的FAT 文件系統(tǒng)模塊,專門為小型的嵌入式系統(tǒng)而設(shè)計(jì),它完全使用標(biāo)準(zhǔn)的C語(yǔ)言編寫,因此,具有良好的跨平臺(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)某一硬盤設(shè)備;buff 為讀取數(shù)據(jù)的緩存區(qū)指針;sector為需要讀取的扇區(qū)號(hào);count為讀取扇區(qū)的個(gè)數(shù)。在移植文件系統(tǒng)時(shí),還需要適配文件系統(tǒng)與硬盤驅(qū)動(dòng)程序的讀寫接口。FatFs文件系統(tǒng)的讀、寫函數(shù)原型如表1所示,可以看出,disk_write函數(shù)與disk_read函數(shù)的參數(shù)類型和返回值基本一致。在具體代碼實(shí)現(xiàn)中,將硬盤驅(qū)動(dòng)程序的讀函數(shù)封裝成disk_read 函數(shù),將硬盤驅(qū)動(dòng)程序的寫函數(shù)封裝成disk_write 函數(shù),這樣就實(shí)現(xiàn)了文件系統(tǒng)與驅(qū)動(dòng)程序之間的對(duì)接。

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

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

        該系統(tǒng)主要包括數(shù)據(jù)處理和數(shù)據(jù)存儲(chǔ)兩大功能模塊,其中,數(shù)據(jù)處理功能主要消耗處理器資源,而存儲(chǔ)功能大部分時(shí)間花費(fèi)在外設(shè)硬盤的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公司提供了多核軟件開發(fā)包MCSDK(Multiple CoreSoftware Development Kit),具體內(nèi)容涵蓋對(duì)各種可用軟件套件以及實(shí)用程序及工具鏈的概述,可為編程人員開發(fā)實(shí)時(shí)操作系統(tǒng)SYS/BIOS助一臂之力[13-14]。MCSDK 主包括實(shí)時(shí)操作系統(tǒng)SYS/BIOS、芯片支持開發(fā)包、處理器核間通信IPC 開發(fā)包、網(wǎng)絡(luò)協(xié)議棧、算法庫(kù)及調(diào)試工具等組件。該系統(tǒng)主要使用IPC 開發(fā)包,實(shí)現(xiàn)處理器核間的數(shù)據(jù)傳輸和消息同步。IPC開發(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 成員為軟件開發(fā)者自定義數(shù)據(jù)結(jié)構(gòu),其定義見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ù)采集開始命令和結(jié)束命令由上位機(jī)通過(guò)網(wǎng)絡(luò)接口向DSP 核0 下發(fā),當(dāng)核0 收到開始采集命令后,核0 向FPGA 發(fā)送開始采集指令,同時(shí)向核1 通過(guò)MessageQ 方式發(fā)送文件創(chuàng)建命令。FPGA 收到開始采集命令后,以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ǔ),直到硬盤存滿,終止存儲(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)定可靠。

        猜你喜歡
        驅(qū)動(dòng)程序硬盤數(shù)據(jù)處理
        認(rèn)知診斷缺失數(shù)據(jù)處理方法的比較:零替換、多重插補(bǔ)與極大似然估計(jì)法*
        ILWT-EEMD數(shù)據(jù)處理的ELM滾動(dòng)軸承故障診斷
        HiFi級(jí)4K硬盤播放機(jī) 億格瑞A15
        Egreat(億格瑞)A10二代 4K硬盤播放機(jī)
        我區(qū)電視臺(tái)對(duì)硬盤播出系統(tǒng)的應(yīng)用
        基于希爾伯特- 黃變換的去噪法在外測(cè)數(shù)據(jù)處理中的應(yīng)用
        基于POS AV610與PPP的車輛導(dǎo)航數(shù)據(jù)處理
        驅(qū)動(dòng)程序更新與推薦
        驅(qū)動(dòng)程序更新與推薦
        驅(qū)動(dòng)程序更新與推薦
        国产精品亚洲最新地址| 国内精品无码一区二区三区| 国产香蕉尹人在线视频播放| 亚洲愉拍自拍视频一区| 李白姓白白又白类似的套路| 免费a级毛片18禁网站app| 少妇高潮惨叫久久久久久| 国产呦系列视频网站在线观看| 成人国产高清av一区二区三区| 无码熟妇人妻av在线影片最多| 亚洲av无码片在线观看| 在线亚洲AV不卡一区二区| 日本一区二区免费看片| 免费网站内射红桃视频| 欧美疯狂做受xxxxx高潮| 国产人禽杂交18禁网站| 国产黑丝美女办公室激情啪啪| 中文字幕一区日韩精品| 国产精品天堂| 国产一区二区毛片视频| 黄色av一区二区在线观看| 国产suv精品一区二区883| 久久久久久久一线毛片| 一卡二卡国产av熟女| 亚洲一区av在线观看| 青青草国产成人99久久| 久久精品国产亚洲av热九九热 | 手机免费高清在线观看av| 摸进她的内裤里疯狂揉她动图视频| 全免费a级毛片免费看视频 | 日本国产一区在线观看| 成人免费看aa片| 5级做人爱c视版免费视频| 在线视频一区二区三区中文字幕| 久久精品国产亚洲av麻豆瑜伽| 久久久精品456亚洲影院| 国产成人一区二区三区视频免费蜜| 国产毛片精品av一区二区| 青娱乐极品视觉盛宴国产视频| 在线视频一区色| 琪琪av一区二区三区|