一種基于dsp的數(shù)據(jù)傳輸與處理的方法
【專利摘要】本發(fā)明公開了一種基于DSP的數(shù)據(jù)傳輸與處理的方法,步驟包括:外部輸入數(shù)據(jù)流向FPGA的內(nèi)部緩存,當(dāng)緩存數(shù)據(jù)達(dá)到設(shè)計(jì)數(shù)值即觸發(fā)信號(hào)向DSP申請(qǐng)啟動(dòng)DMA飛躍傳輸模式;DSP響應(yīng)申請(qǐng)并發(fā)出相應(yīng)的指示信號(hào);緩存數(shù)據(jù)被直接傳輸?shù)紻SP總線上掛的SDRAM存儲(chǔ)器中;DSP啟動(dòng)DMA飛躍傳輸模式將SDRAM存儲(chǔ)器中的數(shù)據(jù)搬進(jìn)DSP內(nèi)進(jìn)行處理;DSP啟動(dòng)LINK口將處理完的數(shù)據(jù)回傳到FPGA的內(nèi)部緩存。本發(fā)明提供一種優(yōu)化的傳輸時(shí)序和接口邏輯代碼轉(zhuǎn)換,使每個(gè)環(huán)節(jié)能實(shí)現(xiàn)有效銜接,輸出輸入接口均按照流水線節(jié)拍處理,數(shù)據(jù)傳輸按照一個(gè)方向進(jìn)行而不需要發(fā)生單向等待,提高了處理效率和節(jié)省了時(shí)間開銷。
【專利說明】一種基于DSP的數(shù)據(jù)傳輸與處理的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)通信領(lǐng)域,尤其涉及一種數(shù)據(jù)傳輸和處理的方法。
【背景技術(shù)】
[0002]傳統(tǒng)的應(yīng)用設(shè)計(jì)只使用了 LINK 口單一的高速傳輸通道,而沒有充分發(fā)揮DSP的外部數(shù)據(jù)總線的高速傳輸特性,使DSP的運(yùn)算效率大打折扣。比如由于LINK 口不能直接訪問DSP外部的SDRAM空間,如果按照傳統(tǒng)的設(shè)計(jì)數(shù)據(jù)會(huì)先被搬運(yùn)到DSP片內(nèi)空間,再從DSP片內(nèi)空間搬運(yùn)到片外SDRAM空間,這在傳輸路徑上就直接多了一倍時(shí)間,并且會(huì)需要CPU兩次啟動(dòng)干預(yù),這嚴(yán)重制約了 DSP的計(jì)算效率。DSP將內(nèi)部片內(nèi)空間的數(shù)據(jù)處理完之后就需要將結(jié)果輸出,并且不能影響后續(xù)輸入數(shù)據(jù)的持續(xù)性。如果我們此時(shí)再次選擇外部數(shù)據(jù)總線進(jìn)行傳輸就會(huì)大大降低處理能力和整個(gè)系統(tǒng)的傳輸帶寬,因?yàn)镈SP的數(shù)據(jù)總線在某一個(gè)時(shí)刻只能作為輸出或是輸入,當(dāng)遇到外部有輸入數(shù)據(jù)時(shí)就無法同時(shí)輸出處理結(jié)果,這時(shí)我們可以利用DSP的另外一種高速傳輸通道LINK 口進(jìn)行傳輸。
【發(fā)明內(nèi)容】
[0003]本發(fā)明所要解決的技術(shù)問題是提供一種基于DSP的數(shù)據(jù)傳輸與處理的方法,它可以大大提高數(shù)據(jù)傳輸與處理的效率和節(jié)省了時(shí)間的開銷。
[0004]為解決上述技術(shù)問題,本發(fā)明基于DSP的數(shù)據(jù)傳輸與處理的方法,其步驟包括: 外部輸入數(shù)據(jù)流向FPGA的內(nèi)部緩存RAM,當(dāng)緩存數(shù)據(jù)達(dá)到設(shè)計(jì)數(shù)值即觸發(fā)信號(hào)向DSP
申請(qǐng)啟動(dòng)DMA飛躍傳輸模式。
[0005]DSP響應(yīng)申請(qǐng)并發(fā)出相應(yīng)的指示信號(hào);緩存數(shù)據(jù)被直接傳輸?shù)紻SP總線上掛的SDRAM存儲(chǔ)器中。
[0006]DSP啟動(dòng)DMA飛躍傳輸模式將SDRAM存儲(chǔ)器中的數(shù)據(jù)搬進(jìn)DSP內(nèi)進(jìn)行處理。
[0007]DSP在不占用總線的情況下,啟動(dòng)LINK 口將處理完的數(shù)據(jù)回傳到FPGA的內(nèi)部緩存RAM0
[0008]FPGA內(nèi)部緩存RAM在邏輯中設(shè)計(jì)成8192*32位寬的雙口 RAM,緩存數(shù)據(jù)達(dá)到32KB的一半即觸發(fā)信號(hào)向DSP申請(qǐng)啟動(dòng)DMA飛躍傳輸模式;在DMA的參數(shù)配置中將目的地址設(shè)成SDRAM空間,使用64位總線寬度進(jìn)行傳輸。
[0009]SDRAM被映射為DSP的一個(gè)外部緩沖區(qū),當(dāng)接受的外部緩存包累加到N*32KB后就一次性搬入DSP進(jìn)行批量處理,其中N為大于零的整數(shù);若SDRAM中接收的數(shù)據(jù)包未達(dá)到N*32KB,DSP將繼續(xù)等待下一數(shù)據(jù)包DMA飛躍模式傳輸?shù)纳暾?qǐng),N為大于零的整數(shù)。
[0010]同時(shí)需設(shè)計(jì)一個(gè)FPGA邏輯里的雙沿鎖存器轉(zhuǎn)換模塊,將LINK 口輸出的數(shù)據(jù)寬度為4位、時(shí)鐘類型為雙沿時(shí)鐘的數(shù)據(jù)轉(zhuǎn)換成單沿8位數(shù)據(jù)寬度的數(shù)據(jù)。
[0011]本發(fā)明提供一種優(yōu)化的傳輸時(shí)序和接口邏輯代碼轉(zhuǎn)換使每個(gè)環(huán)節(jié)均能實(shí)現(xiàn)有效銜接,輸出輸入接口均按照流水線節(jié)拍處理,數(shù)據(jù)傳輸按照一個(gè)方向進(jìn)行而不需要發(fā)生單向等待。所有的傳輸方式均采用同步模式傳輸,每個(gè)時(shí)鐘沿的變化都會(huì)發(fā)出數(shù)據(jù)的傳輸,不 會(huì)使系統(tǒng)的傳輸性能影響系統(tǒng)的計(jì)算性能。
【專利附圖】
【附圖說明】
[0012]圖1為本發(fā)明TS201芯片對(duì)外接口示意圖。
[0013]圖2為本發(fā)明信號(hào)處理流程圖。
[0014]圖3為外部數(shù)據(jù)輸入使能時(shí)序示意圖。
[0015]圖4雙口存儲(chǔ)器接口部分示意圖。
[0016]圖5兩種傳輸機(jī)制比較示意圖。
[0017]圖6飛躍模式下DSP發(fā)出的信號(hào)示意圖。
[0018]圖7數(shù)據(jù)同時(shí)高速輸入(數(shù)據(jù)總線)和輸出(LINK)示意圖。
[0019]圖8輸入型的雙沿鎖存器的應(yīng)用。
【具體實(shí)施方式】
[0020]TigerSharc201 (簡(jiǎn)稱TS201)是ADI公司于推出的全新一代集浮點(diǎn)/定點(diǎn)處理于一身的高速DSP處理器。內(nèi)含4條相互獨(dú)立的128位寬度的數(shù)據(jù)總線,每條總線連接6個(gè)4Mb內(nèi)部存儲(chǔ)區(qū),使DSP的內(nèi)存創(chuàng)紀(jì)錄的達(dá)到24M位。每條總線提供各自數(shù)據(jù)、指令集I/O訪問和28GB/S的內(nèi)部存儲(chǔ)器寬帶。處理器內(nèi)核最高可工作在600 MHz,單周期能執(zhí)行4條指令,每秒能進(jìn)行3.4億次乘累加和2.8億次浮點(diǎn)操作,在同類產(chǎn)品中遠(yuǎn)遠(yuǎn)出于領(lǐng)先地位。TS201有14個(gè)DMA控制器,可以配置其寄存器后讓數(shù)據(jù)在無CPU的參與下自由傳輸;每個(gè)DSP包含4個(gè)獨(dú)立的全雙工的LINK鏈路口 ;每個(gè)鏈路口以4位并行數(shù)據(jù)總線的方式傳輸,也可以編碼為I位的串行傳輸方式;每個(gè)鏈路口的雙向數(shù)據(jù)吞吐率可達(dá)1GB/S,4個(gè)鏈路口總共傳輸數(shù)據(jù)可達(dá)4GB/S。TS201系列的DSP接口豐富,外部設(shè)備接口包括SDRAM控制器、EPROM接口、主機(jī)接口、多處理器接口 ;其引導(dǎo)程序的加載方法也非常靈活,可以根據(jù)實(shí)際系統(tǒng)設(shè)計(jì)的需要靈活選用它。它兼有FPGA和ASIC信號(hào)處理性能和指令集處理器的高度可編程性,適用于大存儲(chǔ)量、高性能、高速度的信號(hào)處理和圖像處理。如雷達(dá)信號(hào)處理、無線基站、圖像音頻處理等。它的推出在當(dāng)時(shí)令A(yù)DI公司保持了浮點(diǎn)DSP領(lǐng)域絕對(duì)的長(zhǎng)期優(yōu)勢(shì)。圖1為TS201芯片對(duì)外接口示意圖。
[0021]圖2是數(shù)據(jù)傳輸和處理的流程圖。外部輸入數(shù)據(jù)流向FPGA的內(nèi)部緩存,當(dāng)FPGA緩存數(shù)據(jù)達(dá)到32KB的一半即觸發(fā)信號(hào)向DSP申請(qǐng)啟動(dòng)DMA飛躍傳輸模式;DSP響應(yīng)申請(qǐng)并發(fā)出相應(yīng)的指示信號(hào),當(dāng)數(shù)據(jù)包接收完成,緩存數(shù)據(jù)被直接傳輸?shù)紻SP總線上掛的SDRAM存儲(chǔ)器中,檢查SDRAM中接收的數(shù)據(jù)包是否已經(jīng)達(dá)到預(yù)定的數(shù)據(jù)包N (N為大于零的整數(shù));如果是,DSP啟動(dòng)DMA飛躍傳輸模式將SDRAM存儲(chǔ)器中累計(jì)接收的N包數(shù)據(jù)搬進(jìn)DSP內(nèi)進(jìn)行處理,如果否,繼續(xù)等待下一包飛躍模式申請(qǐng);DSP在不占用總線的情況下,啟動(dòng)LINK 口將處理完的數(shù)據(jù)回傳到FPGA的內(nèi)部,F(xiàn)PGA內(nèi)部邏輯將4位總線轉(zhuǎn)換成8位總線接口方式,用戶邏輯二次開發(fā)后將結(jié)果輸出。
[0022]外部數(shù)據(jù)的輸入信號(hào)包括使能,時(shí)鐘和數(shù)據(jù)總線信號(hào)。需要被處理的數(shù)據(jù)在使能和時(shí)鐘的同步控制下源源不斷的寫入到FPGA內(nèi)部的緩存(RAM圖2)。每個(gè)CLK時(shí)鐘的上升沿對(duì)準(zhǔn)數(shù)據(jù)中心位置,當(dāng)使能信號(hào)為高時(shí)使用時(shí)鐘鎖存數(shù)據(jù)。同時(shí)對(duì)每次輸入的數(shù)據(jù)進(jìn)行加I計(jì)數(shù),一旦計(jì)數(shù)值達(dá)到設(shè)定的深度(比如4096)則在邏輯中產(chǎn)生一個(gè)觸發(fā)高脈沖(TRIG)向DSP申請(qǐng)飛躍模式的DMA傳輸。圖3和圖4是相應(yīng)的邏輯時(shí)序,圖3是一個(gè)8192X32位的雙口 RAM存儲(chǔ)器,雙口的左邊是數(shù)據(jù)寫入端口它包括使能、數(shù)據(jù)和時(shí)鐘信號(hào);雙口的右邊是數(shù)據(jù)輸出端口包括時(shí)鐘,地址和總線的三態(tài)控制。
[0023]圖4是對(duì)雙口 RAM訪問的各種控制信號(hào)的產(chǎn)生,包括對(duì)寫地址增加的變化控制,觸發(fā)脈沖信號(hào)的產(chǎn)生等。雙口寫地址只有在寫使能為高的時(shí)候在時(shí)鐘的上升沿才會(huì)增加I。當(dāng)寫地址的第11位從高電平變?yōu)榈碗娖綍r(shí)(下降沿),即預(yù)示著雙口的左邊已經(jīng)有32KB的數(shù)據(jù)寫入到存儲(chǔ)器之中,此時(shí)將寫第11位地址線取反之后再跟鎖存器和移位寄存器級(jí)聯(lián),產(chǎn)生一個(gè)寬度為5個(gè)寫時(shí)鐘寬度的高脈沖(TRIG)通知DSP啟動(dòng)飛躍模式傳輸。
[0024]DSP在收到觸發(fā)脈沖后,根據(jù)程序里預(yù)先設(shè)置的配置程序啟動(dòng)飛躍模式的DMA傳輸,將雙口中的32KB數(shù)據(jù)直接傳輸?shù)狡獾腟DRAM存儲(chǔ)器之中。DMA的傳輸過程是不需要受DSP干預(yù)的,所以數(shù)據(jù)會(huì)直接經(jīng)外部總線傳輸?shù)絊DRAM,這種直接傳輸路徑大大地節(jié)約時(shí)間并提高CPU的運(yùn)算效率。如果按照傳統(tǒng)的設(shè)計(jì)數(shù)據(jù)會(huì)先被搬運(yùn)到片內(nèi)空間,再從片內(nèi)空間搬運(yùn)到片外SDRAM空間,這在傳輸路徑上就直接多了一倍時(shí)間,并且會(huì)需要CPU兩次啟動(dòng)干預(yù)(圖5)。
[0025]圖6中DSP接收到啟動(dòng)飛躍傳輸命令后發(fā)出讀使能信號(hào),時(shí)鐘將數(shù)據(jù)線上的數(shù)據(jù)直接從雙口傳輸?shù)絊DRAM。
[0026]由于飛躍模式下DSP的DMA傳輸速率遠(yuǎn)大于外部輸入信號(hào)的輸入速率,即雙口右邊的讀速率大于雙口左邊的寫速率。所以在DSP傳輸完一次32KB之后下一次觸發(fā)并沒有來到,此時(shí)可以根據(jù)之前程序的設(shè)置判斷SDRAM中累計(jì)的數(shù)據(jù)(N(包)*32KB)是否達(dá)到處理要求,如果沒有達(dá)到預(yù)設(shè)的數(shù)目則不用處理,否則再啟動(dòng)一次DMA將SDRAM中的數(shù)據(jù)(N包)搬進(jìn)DSP片內(nèi)空間再進(jìn)行批量處理。顯然一次性批量處理N包數(shù)據(jù)遠(yuǎn)比每搬一次再處理一次小包數(shù)據(jù)的效率高的多。
[0027]如果DSP需要將內(nèi)部片內(nèi)空間的數(shù)據(jù)處理完之后就需要將結(jié)果輸出,并且不能影響后續(xù)輸入數(shù)據(jù)的持續(xù)性。如果我們此時(shí)再次選擇外部數(shù)據(jù)總線進(jìn)行傳輸就會(huì)大大降低處理能力和整個(gè)系統(tǒng)的傳輸帶寬。因?yàn)镈SP的數(shù)據(jù)總線在某一個(gè)時(shí)刻只能作為輸出或是輸入,當(dāng)遇到外部有輸入數(shù)據(jù)時(shí)就無法同時(shí)輸出處理結(jié)果。這時(shí)我么可以利用DSP的另外一種高速傳輸通道LINK 口進(jìn)行傳輸。LINK 口是TS201 DSP獨(dú)有的一個(gè)非常具有特色的高速接口,它獨(dú)立于數(shù)據(jù)總線之外,總共包含四路全雙工的LINK 口,每路LINK 口的雙向傳輸速率可以達(dá)到1GB/S,理論上四條LINK 口可以同時(shí)并且和數(shù)據(jù)總線同時(shí)工作。圖7即為數(shù)據(jù)同時(shí)輸入和輸出不意圖。
[0028]但是LINK 口輸出的數(shù)據(jù)寬度是4位,時(shí)鐘類型是雙沿時(shí)鐘,這種特點(diǎn)限制了它在FPGA邏輯里的應(yīng)用,在邏輯里一般需要將它轉(zhuǎn)換成單沿8位數(shù)據(jù)寬度。新設(shè)計(jì)中利用雙沿鎖存器來實(shí)現(xiàn)此轉(zhuǎn)換功能。雙沿鎖存器是FPGA邏輯里面比較有特色的一個(gè)轉(zhuǎn)換模塊,它不同于一般的鎖存器只能在單沿(上升沿或者是下降沿)時(shí)刻鎖存數(shù)據(jù),它可以在每一個(gè)邊沿的變化時(shí)刻鎖存數(shù)據(jù),并且將鎖存的數(shù)據(jù)放在不同的輸出端口上以方便用戶使用。圖8是一個(gè)輸入雙沿鎖存器的使用示意圖,將此模塊在邏輯里面復(fù)制四次就可以完成一個(gè)LINK口的數(shù)據(jù)接收,將數(shù)據(jù)轉(zhuǎn)換成8位寬度以便于后續(xù)處理。
【權(quán)利要求】
1.一種基于DSP的數(shù)據(jù)傳輸與處理的方法,其特征是,步驟一:外部輸入數(shù)據(jù)流向FPGA的內(nèi)部緩存RAM,當(dāng)緩存數(shù)據(jù)達(dá)到設(shè)計(jì)數(shù)值即觸發(fā)信號(hào)向DSP申請(qǐng)啟動(dòng)DMA飛躍傳輸模式;步驟二:DSP響應(yīng)申請(qǐng)并發(fā)出相應(yīng)的指示信號(hào),緩存數(shù)據(jù)被直接傳輸?shù)紻SP總線上掛的SDRAM存儲(chǔ)器中;步驟三:DSP啟動(dòng)DMA飛躍傳輸模式將SDRAM存儲(chǔ)器中的數(shù)據(jù)搬進(jìn)DSP內(nèi)進(jìn)行處理;步驟四:DSP在不占用總線的情況下,啟動(dòng)LINK 口將處理完的數(shù)據(jù)回傳到FPGA的內(nèi)部緩存RAM。
2.根據(jù)權(quán)利要求1所述的一種基于DSP的數(shù)據(jù)傳輸與處理的方法,其特征是:步驟一中的FPGA內(nèi)部緩存RAM在邏輯中設(shè)計(jì)成8192*32位寬的雙口 RAM,當(dāng)RAM中的緩存數(shù)據(jù)達(dá)到32KB的一半即觸發(fā)信號(hào)向DSP申請(qǐng)啟動(dòng)DMA飛躍傳輸模式,在DMA的參數(shù)配置中將目的地址設(shè)成SDRAM空間,使用64位總線寬度進(jìn)行傳輸。
3.根據(jù)權(quán)利要求1所述的一種基于DSP的數(shù)據(jù)傳輸與處理的方法,其特征是:步驟二中的SDRAM被映射為DSP的一個(gè)外部緩沖區(qū),當(dāng)接受的外部緩存包累加到N*32KB后就一次性搬入DSP進(jìn)行批量處理,若SDRAM中接收的數(shù)據(jù)包未達(dá)到N*32KB,DSP將繼續(xù)等待下一數(shù)據(jù)包DMA飛躍模式傳輸?shù)纳暾?qǐng),N為大于零的整數(shù)。
4.根據(jù)權(quán)利要求1所述的一種基于DSP的數(shù)據(jù)傳輸與處理的方法,其特征是:為實(shí)現(xiàn)步驟四,需設(shè)計(jì)一個(gè)FPGA邏輯里的雙沿鎖存器轉(zhuǎn)換模塊,將LINK 口輸出的數(shù)據(jù)寬度為4位、時(shí)鐘類型為雙沿時(shí)鐘的數(shù)據(jù)轉(zhuǎn)換成單沿8位數(shù)據(jù)寬度的數(shù)據(jù)。
5.根據(jù)權(quán)利要求2所述的一種基于DSP的數(shù)據(jù)傳輸與處理的方法,其特征是:步驟二中的SDRAM被映射為DSP的一個(gè)外部緩沖區(qū),當(dāng)接受的外部緩存包累加到N*32KB后就一次性搬入DSP進(jìn)行批量處理,若SDRAM中接收的數(shù)據(jù)包未達(dá)到N*32KB,DSP將繼續(xù)等待下一數(shù)據(jù)包DMA飛躍模式傳輸?shù)纳暾?qǐng)。
6.根據(jù)權(quán)利要求5所述的一種基于DSP的數(shù)據(jù)傳輸與處理的方法,其特征是:為實(shí)現(xiàn)步驟四,需設(shè)計(jì)一個(gè)FPGA邏輯里的雙沿鎖存器轉(zhuǎn)換模塊,將LINK 口輸出的數(shù)據(jù)寬度為4位、時(shí)鐘類型為雙沿時(shí)鐘的數(shù)據(jù)轉(zhuǎn)換成單沿8位數(shù)據(jù)寬度的數(shù)據(jù)。
【文檔編號(hào)】G06F13/28GK103914417SQ201410159550
【公開日】2014年7月9日 申請(qǐng)日期:2014年4月21日 優(yōu)先權(quán)日:2014年4月21日
【發(fā)明者】杜敏 申請(qǐng)人:成都智恒博納科技有限公司