察到實時頻域分析后的結(jié)果。
[0073]本發(fā)明實施例提供的多核數(shù)字信號處理器使用多核并行執(zhí)行頻域分析,首先對多路窄帶信號進(jìn)行分組,通過高速EDMA3分配給每個計算核;然后使用MessageQ IPC進(jìn)行多核同步對多路窄帶信號的實時并行頻域分析。通過矩陣轉(zhuǎn)置算法對每幀數(shù)據(jù)進(jìn)行排序,提高了幀數(shù)據(jù)處理的效率,并且降低了 CPU的負(fù)載,并且頻域分析的核心計算過程在數(shù)字信號處理器的每個計算核的內(nèi)部內(nèi)存中完成,最大化地提高了計算效率。多核之間通過MessageQ IPC通信,并充分考慮多核之間的負(fù)載均衡性,最達(dá)程度地降低了核間通信的開銷;使用EDMA3完成L2與DDR之間的數(shù)據(jù)傳輸,保證數(shù)據(jù)能夠在內(nèi)部內(nèi)存和外部內(nèi)存之間快速的傳輸,從而可有效地完成對多路窄帶信號的實時并行頻域分析。
[0074]參閱圖1,本發(fā)明實施例二提供的另一種多核數(shù)字信號處理器,包括:
[0075]幀數(shù)據(jù)接收模塊101,用于接收輸入數(shù)據(jù)發(fā)送通知信息,并判斷輸入環(huán)形緩沖區(qū)的存儲容量值是否小于預(yù)設(shè)的輸入存儲容量值;如果輸入環(huán)形緩沖區(qū)的存儲容量值小于預(yù)設(shè)的輸入存儲容量值,則接收多幀數(shù)據(jù),并通過矩陣轉(zhuǎn)置算法對每幀數(shù)據(jù)進(jìn)行排序,將排序后的多幀數(shù)據(jù)寫入輸入環(huán)形緩沖區(qū),并發(fā)送處理通知至數(shù)據(jù)處理模塊。
[0076]數(shù)據(jù)處理模塊102,用于在接收到所述處理通知后,判斷輸入環(huán)形緩沖區(qū)的存儲容量值是否小于預(yù)設(shè)的輸入存儲容量值,如果輸入環(huán)形緩沖區(qū)的存儲容量值小于預(yù)設(shè)的輸入存儲容量值,則所述主核根據(jù)所述主核和所述從核的總數(shù)量,將排序后的多幀數(shù)據(jù)平均分組為多組數(shù)據(jù),且所述主核、每個所述從核有且僅有一組數(shù)據(jù),所述主核、每個所述從核對分發(fā)到的一組數(shù)據(jù)進(jìn)行實時并行頻域分析,并生成實時頻域分析結(jié)果,將實時頻域分析結(jié)果寫入輸出環(huán)形緩沖區(qū),并發(fā)送輸出數(shù)據(jù)發(fā)送通知信息至數(shù)據(jù)發(fā)送模塊103。
[0077]現(xiàn)有技術(shù)中在處理進(jìn)行頻域分析時,必須要將一組數(shù)據(jù)處理完后才會接收下一組數(shù)據(jù),這樣對數(shù)據(jù)處理的效率較慢。本實施例中,當(dāng)環(huán)形緩沖區(qū)要維護(hù)兩個索引,分別對應(yīng)寫入端(W)和讀取端(R)。寫入(push)的時候,先確保輸入環(huán)形緩沖區(qū)沒滿,然后把數(shù)據(jù)復(fù)制到W所對應(yīng)的元素,最后W指向下一個元素;讀取(pop)的時候,先確保輸入環(huán)形緩沖區(qū)沒空,然后返回R對應(yīng)的元素,最后R指向下一個元素。本實施例采用SYS/B10S提供的Mailboxes控制的環(huán)形緩沖區(qū)機(jī)制,從而降低模塊之間的耦合,支持模塊處理和忙閑不均,最大化的提高模塊之間的并行效率。具體實現(xiàn)方式為當(dāng)幀數(shù)據(jù)接收模塊101接收到數(shù)據(jù)發(fā)送器發(fā)送過來的DOORBELL信息(即輸入數(shù)據(jù)發(fā)送通知信息),意味著有新的幀數(shù)據(jù)到達(dá)。此時,幀數(shù)據(jù)接收模塊101首先需要使用函數(shù)Mailbox_getNumFreeMsgs(recv)判斷輸出環(huán)形緩沖區(qū)是否已滿(即判斷輸入環(huán)形緩沖區(qū)的存儲容量值是否小于預(yù)設(shè)的輸入存儲容量值),如果輸入環(huán)形緩沖區(qū)已滿,則舍棄該幀,否則若輸入環(huán)形緩沖區(qū)中有空元素,則將EDMA3排序數(shù)據(jù)寫入輸入環(huán)形緩沖區(qū),同時使用函數(shù)Mailbox_post (recv, &process_msg)發(fā)消息給數(shù)據(jù)處理模塊,通知數(shù)據(jù)處理模塊102可以開始處理此幀。這樣無需等到一組數(shù)據(jù)處理完,在輸入環(huán)形緩沖區(qū)未滿的情況下,隨時都可接收幀數(shù)據(jù)存入輸入環(huán)形緩沖區(qū),當(dāng)數(shù)據(jù)處理模塊102判斷輸出環(huán)形緩沖區(qū)未存滿數(shù)據(jù)時,即讀取輸入環(huán)形緩沖區(qū)的幀數(shù)據(jù),并進(jìn)行頻域分析,當(dāng)數(shù)據(jù)處理模塊102處理完一組數(shù)據(jù)后,即可直接提取輸入環(huán)形緩沖區(qū)存儲的幀數(shù)據(jù)再次進(jìn)行頻域分析,既而提高了數(shù)據(jù)處理的效率。
[0078]數(shù)據(jù)發(fā)送模塊103,用于接收所述數(shù)據(jù)處理模塊102發(fā)送的輸出數(shù)據(jù)發(fā)送通知信息,并將所述實時頻域分析結(jié)果發(fā)出。
[0079]數(shù)據(jù)發(fā)送模塊103使用Mailbox_pend (send, &response_msg)循環(huán)等待可發(fā)送幀數(shù)據(jù)的到達(dá),當(dāng)數(shù)據(jù)處理模塊102接收到幀數(shù)據(jù)接收模塊101發(fā)送的response_msg信息(即數(shù)據(jù)發(fā)送通知信息),此時,數(shù)據(jù)發(fā)送模塊103可直接通過TCP/IP將幀數(shù)據(jù)從輸出環(huán)形緩沖區(qū)發(fā)出。
[0080]較佳地,所述多核數(shù)字信號處理器還包括Rapid1接口與以太網(wǎng)端,
[0081]所述幀數(shù)據(jù)接收模塊101,具體用于通過Rapid1接口接收多幀數(shù)據(jù),并通過矩陣轉(zhuǎn)置算法對每幀數(shù)據(jù)進(jìn)行排序。
[0082]數(shù)據(jù)發(fā)送模塊103,具體用于通過以太網(wǎng)端將所述實時頻域分析結(jié)果發(fā)出。
[0083]多路窄帶信號一般為多個通道、多個距離門的1、Q兩路采樣數(shù)據(jù),帶寬都比較高,必須使用高速的數(shù)據(jù)傳輸接口,實現(xiàn)輸入數(shù)據(jù)接入。本實施例的幀數(shù)據(jù)從Rapid1接口傳入,經(jīng)多核數(shù)字信號處理器處理,從以太網(wǎng)端傳出,數(shù)據(jù)傳輸效率非常大,實時性也高,在一定程度上保證了數(shù)據(jù)流能及時有效、正確無誤傳輸。該多核數(shù)字信號處理器的芯片內(nèi)集成了 Rapid10、PCIE和以太網(wǎng)等高速串行接口模塊,可接入基于交換的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),配合TI公司提供的MathLib、DSPLib和IPC等優(yōu)化庫,使用多核并行處理的方法,極大地提高了信號處理的性能。
[0084]參閱圖2,本發(fā)明實施例還提供了一種基于多核DSP多路信號的實時并行頻域分析系統(tǒng),所述系統(tǒng)包括數(shù)據(jù)發(fā)送器201以及本實施例一提供的多核數(shù)字信號處理器202,所述數(shù)據(jù)發(fā)送器201與所述多核數(shù)字信號處理器202預(yù)建立通信連接。需要說明的是,本實施例所提供的基于多核DSP多路信號的實時并行頻域分析系統(tǒng)所提供的多核數(shù)字信號處理器,其基本結(jié)構(gòu)和原理及產(chǎn)生的技術(shù)效果和實施例一相同,為簡要描述,本實施例部分未提及之處,可參考實施例一中相應(yīng)內(nèi)容。
[0085]所述數(shù)據(jù)發(fā)送器201,用于發(fā)送多幀數(shù)據(jù)至所述多核數(shù)字信號處理器202。
[0086]所述多核數(shù)字信號處理器202,用于接收所述數(shù)據(jù)發(fā)送器201發(fā)送的多幀數(shù)據(jù),通過矩陣轉(zhuǎn)置算法對每幀數(shù)據(jù)進(jìn)行排序,將排序后的多幀數(shù)據(jù)平均分組為多組數(shù)據(jù),并對分組后的每組數(shù)據(jù)分別進(jìn)行實時并行頻域分析,并生成實時頻域分析結(jié)果,并將所述實時頻域分析結(jié)果發(fā)出。
[0087]進(jìn)一步地,所述數(shù)據(jù)發(fā)送器201,具體用于發(fā)送數(shù)據(jù)提示信息至所述多核數(shù)字信號處理器202,并接收所述多核數(shù)字信號處理器202發(fā)送的反饋信息,并在接收到所述反饋信息后發(fā)送多幀數(shù)據(jù)至所述多核數(shù)字信號處理器202。
[0088]所述多核數(shù)字信號處理器202,具體用于接收所述數(shù)據(jù)發(fā)送器201發(fā)送的數(shù)據(jù)發(fā)送通知信息,判斷所述輸入環(huán)形緩沖區(qū)的存儲容量值是否小于預(yù)設(shè)的輸入存儲容量值,如果輸入環(huán)形緩沖區(qū)的存儲容量值小于預(yù)設(shè)的輸入存儲容量值,則發(fā)送反饋信息至所述數(shù)據(jù)發(fā)送器201,并接收所述數(shù)據(jù)發(fā)送器201在接收到所述反饋信息后發(fā)送的多幀數(shù)據(jù),通過矩陣轉(zhuǎn)置算法對每幀數(shù)據(jù)進(jìn)行排序,并將排序后的多幀數(shù)據(jù)寫入輸入環(huán)形緩沖區(qū),將排序后的多幀數(shù)據(jù)平均分組為多組數(shù)據(jù),并將分組后的每組數(shù)據(jù)進(jìn)行實時并行頻域分析,并生成實時頻域分析結(jié)果,并將所述實時頻域分析結(jié)果發(fā)出。
[0089]所述多核數(shù)字信號處理器202,具體用于接收所述數(shù)據(jù)發(fā)送器201發(fā)送的數(shù)據(jù)發(fā)送通知信息,判斷所述輸入環(huán)形緩沖區(qū)的存儲容量值是否小于預(yù)設(shè)的輸入存儲容量值,如果輸入環(huán)形緩沖區(qū)的存儲容量值小于預(yù)設(shè)的輸入存儲容量值,則接收所述數(shù)據(jù)發(fā)送器201發(fā)送的多幀數(shù)據(jù),通過矩陣轉(zhuǎn)置算法對每幀數(shù)據(jù)進(jìn)行排序,并將排序后的多幀數(shù)據(jù)寫入輸入環(huán)形緩沖區(qū),判斷輸出環(huán)形緩沖區(qū)的的存儲容量值是否小于預(yù)設(shè)的輸出存儲容量值,如果輸出環(huán)形緩沖區(qū)的存儲容量值小于預(yù)設(shè)的輸出存儲容量值,則將排序后的多幀數(shù)據(jù)平均分組為多組數(shù)據(jù),并對分組后的每組數(shù)據(jù)分別進(jìn)行實時并行頻域分析,并生成實時頻域分析結(jié)果,將實時頻域分析結(jié)果寫入輸出環(huán)形緩沖區(qū),將所述實時頻域分析結(jié)果發(fā)出。
[0090]進(jìn)一步地,所述系統(tǒng)還包括數(shù)據(jù)顯示器203,所述數(shù)據(jù)顯示器203與所述多核數(shù)字信號處理器202預(yù)建立通信連接,
[0091]所述多核數(shù)字信號處理器202,具體用于接收所述數(shù)據(jù)發(fā)送器201發(fā)送的數(shù)據(jù)發(fā)送通知信息,判斷所述輸入環(huán)形緩沖區(qū)的存儲容量值是否小于預(yù)設(shè)的輸入存儲容量值,如果輸入環(huán)形緩沖區(qū)的存儲容量值小于預(yù)設(shè)的輸入存儲容量值,則接收所述數(shù)據(jù)發(fā)送器201發(fā)送的多幀數(shù)據(jù),通過矩陣轉(zhuǎn)置算法對每幀數(shù)據(jù)進(jìn)行排序,并將排序后的多幀數(shù)據(jù)寫入輸入環(huán)形緩沖區(qū),判斷輸出環(huán)形緩沖區(qū)的的存儲容量值是否小于預(yù)設(shè)的輸出存儲容量值,如果輸出環(huán)形緩沖區(qū)的存儲容量值小于預(yù)設(shè)的輸出存儲容量