專利名稱:一種峰值搜索方法及裝置的制作方法
技術領域:
本發(fā)明涉及峰值搜索技術,尤其涉及一種峰值搜索方法及裝置。
背景技術:
峰值搜索常用于小區(qū)搜索、多徑搜索、時隙同步等應用場景,對于速度的要求比較高。例如,在長期演進(LTE, Long-Term Evolution)中,小區(qū)初搜時,每5ms進行15個4800序列的搜索,其它處理大概需要420k個時鐘周期;鄰區(qū)搜索啟動時,每5ms進行3個4800序列的搜索,同時可能還會有下行接收、測量和鄰區(qū)搜索等的其它任務?,F(xiàn)有的峰值搜索電路,每次讀入單個能量數(shù)據(jù),并通過將讀入的能量數(shù)據(jù)與之前得到的最大能量數(shù)據(jù)進行比較,直到各能量數(shù)據(jù)一一讀取完畢時,才能得到能量數(shù)據(jù)的最大值,并需要反復進行正向、反向掃描,找到其他最大值,如申請?zhí)枮?00510098701.4的中國專利,就提出了一種WCDMA系統(tǒng)中峰值搜索的方法,現(xiàn)有的峰值搜索方法掃描效率低,功耗高,不能適應適量處理器高吞吐率的要求。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的在于提供一種峰值搜索方法及裝置,能夠適應矢量處理器高吞吐率的要求。為達到上述目的,本發(fā)明的技術方案是這樣實現(xiàn)的本發(fā)明提供了一種峰值搜索方法,所述方法包括獲取多個能量數(shù)據(jù),分別輸入到第一比較電路的多個加法器中;所述第一比較電路的各加法器分別將輸入自身的能量數(shù)據(jù)、與所述第一比較電路中連接自身的數(shù)據(jù)寄存器當前保存的能量數(shù)據(jù)進行比較,并更新所述第一比較電路中各數(shù)據(jù)寄存器保存的能量數(shù)據(jù);在對所有需搜索的能量數(shù)據(jù)進行所述獲取、以及比較之后,第二比較電路獲取所述第一比較電路中各數(shù)據(jù)寄存器保存的能量數(shù)據(jù),并將所獲取的能量數(shù)據(jù)進行比較,得到峰值。在上述方案中,在所述獲取多個能量數(shù)據(jù)之前,所述方法還包括對獲取的采樣數(shù)據(jù)進行相關運算處理、過濾運算處理后,再進行取模運算處理,從取模運算處理的結(jié)果中提取實部,得到所述能量數(shù)據(jù)并保存到存儲器中。在上述方案中,所述存儲器每行存儲有多個能量數(shù)據(jù);所述獲取多個能量數(shù)據(jù),為從所述存儲器中讀取一行能量數(shù)據(jù)。在上述方案中,所述更新所述第一比較電路中各數(shù)據(jù)寄存器保存的能量數(shù)據(jù),包括在所述加法器比較得到所輸入的能量數(shù)據(jù)大于自身所連接數(shù)據(jù)寄存器當前保存的能量數(shù)據(jù)時,所述加法器將所輸入的能量數(shù)據(jù)替換掉自身連接數(shù)據(jù)寄存器中保存的能量數(shù)據(jù)。
在上述方案中,所述方法還包括在所述加法器比較得到所輸入的能量數(shù)據(jù)大于自身所連接寄存器當前保存的能量數(shù)據(jù)時,所述加法器還將所輸入能量數(shù)據(jù)的地址替換掉所述第一比較電路中連接自身的地址寄存器中當前保存的能量數(shù)據(jù)地址。在上述方案中,在所述獲取多個能量數(shù)據(jù)之前,所述方法還包括將所述第一比較電路中各數(shù)據(jù)寄存器、和/或第一比較電路中各地址寄存器清零。在上述方案中,所述第二比較電路獲取所述第ー比較電路中各數(shù)據(jù)寄存器保存的 能量數(shù)據(jù),并將所獲取的能量數(shù)據(jù)進行比較,得到峰值,包括所述第二比較電路中的加法器獲取多個第一比較電路中各數(shù)據(jù)寄存器保存的能量數(shù)據(jù),并將所獲取的能量數(shù)據(jù)進行相互比較,得到所獲取能量數(shù)據(jù)中最大的能量數(shù)據(jù),將所得到最大的能量數(shù)據(jù)作為所述峰值。在上述方案中,在得到峰值之后,所述方法還包括所述第二比較電路中的加法器將所得到的峰值保存到所述第二比較電路中的數(shù)據(jù)寄存器中,將所述峰值的地址保存到所述第二比較電路中的地址寄存器中。在上述方案中,在得到峰值之后,所述方法還包括驗證所得到峰值的個數(shù)是否達到預設的峰值個數(shù)閾值,如果不是,則將所得到的峰值、以及所述峰值左右兩邊的一個或多個數(shù)據(jù)從所述所有需搜索的能量數(shù)據(jù)中清零后,重復進行峰值搜索;否則,結(jié)束當前峰值搜索。本發(fā)明還提供了一種峰值捜索裝置,所述裝置包括讀數(shù)據(jù)控制電路、第一比較電路和第二比較電路;其中,第一比較電路包括多個加法器、多個數(shù)據(jù)寄存器,所述多個加法器與所述多個數(shù)據(jù)寄存器一一連接;數(shù)據(jù)寄存器,用于保存能量數(shù)據(jù);加法器,用于將輸入自身的能量數(shù)據(jù)、與自身所連接數(shù)據(jù)寄存器當前保存的能量數(shù)據(jù)進行比較,并更新所述各數(shù)據(jù)寄存器中保存的能量數(shù)據(jù);讀數(shù)據(jù)控制電路,用于獲取多個能量數(shù)據(jù),井分別輸入到所述第一比較電路的多個加法器;第二比較電路,用于在對所有需搜索的能量數(shù)據(jù)進行所述獲取、以及比較之后,獲取所述第一比較電路中各數(shù)據(jù)寄存器保存的能量數(shù)據(jù),并將所獲取的能量數(shù)據(jù)進行比較,得到峰值。在上述方案中,所述裝置還包括存儲器和矢量處理器,其中,存儲器,用于保存所述所有需搜索的能量數(shù)據(jù); 矢量處理器,用于對獲取的采樣數(shù)據(jù)進行相關運算處理、過濾運算處理后,再進行取模運算處理,從取模運算處理的結(jié)果中提取實部,得到所述能量數(shù)據(jù)并保存到所述存儲器中。在上述方案中,所述存儲器,還用于每行存儲多個能量數(shù)據(jù);所述讀數(shù)據(jù)控制電路,還用于從所述存儲器中讀取一行能量數(shù)據(jù)。在上述方案中,所述第一比較電路的各加法器,還用于在所輸入的能量數(shù)據(jù)大于自身所連接數(shù)據(jù)寄存器當前保存的能量數(shù)據(jù)時,將所輸入的能量數(shù)據(jù)替換掉自身所連接數(shù)據(jù)寄存器中保存的能量數(shù)據(jù)。在上述方案中,所述第一比較電路還包括多個地址寄存器,用于保存所述能量數(shù)據(jù)的地址,與所述加法器一一連接;所述加法器,還用于在所輸入的能量數(shù)據(jù)大于所述寄存器當前保存的能量數(shù)據(jù)時,將所輸入能量數(shù)據(jù)的地址替換掉自身所連接地址寄存器中保存的能量數(shù)據(jù)地址。在上述方案中,所述第二比較電路包括加法器和數(shù)據(jù)寄存 器,其中,所述第二比較電路的加法器,用于在對所有需搜索的能量數(shù)據(jù)進行所述獲取、以及比較之后,獲取所述第一比較電路中各數(shù)據(jù)寄存器保存的能量數(shù)據(jù),并將所獲取的能量數(shù)據(jù)進行比較,得到峰值,并將所得到的峰值保存到所述第二比較電路的數(shù)據(jù)寄存器中;所述第二比較電路的數(shù)據(jù)寄存器,用于保存所述峰值。在上述方案中,所述第二比較電路還包括地址寄存器,用于保存所得到峰值的地址;所述第二比較電路的加法器,還用于將所得到峰值的地址保存到所述第二比較電路的地址寄存器中。在上述方案中,所述裝置還包括循環(huán)控制電路和清零控制電路,其中,循環(huán)控制電路,用于驗證所述第二比較電路所得到峰值的個數(shù)是否達到預設的峰值個數(shù)閾值,如果不是,則通知所述清零控制電路進行清零,并啟動所述讀數(shù)據(jù)控制電路、第一比較電路和第二比較電路,重復進行峰值搜索;否則,結(jié)束當前峰值搜索;清零控制電路,用于在接收到所述循環(huán)控制電路的通知時,將所述第二比較電路得到的峰值、以及所述峰值左右兩邊的一個或多個數(shù)據(jù)從所述存儲器中清零。在上述方案中,所述清零控制電路,還用于將所述第一比較電路中各數(shù)據(jù)寄存器、和/或第一比較電路中各地址寄存器清零。本發(fā)明所提供的峰值搜索方法及裝置,每個時鐘周期讀出多個能量數(shù)據(jù),并將所讀取的多個能量數(shù)據(jù)進行并行比較,在對所有能量數(shù)據(jù)進行并行比較之后,將并行比較得到的能量數(shù)據(jù)再進行比較,來得到峰值,只需正向搜索,不需要正向、反向交替進行,中間不需停頓,峰值搜索速度快,能夠適用矢量處理器高吞吐率的要求,并且,本發(fā)明每輪掃描找到I個最大值,找n個最大值就循環(huán)n次,算法相對簡單、有效,控制也很簡單有效;此外,本發(fā)明的峰值搜索裝置只需要加法器和寄存器即可實現(xiàn),簡單易實現(xiàn),面積小,成本低。
圖I為本發(fā)明峰值搜索方法的實現(xiàn)流程圖;圖2為本發(fā)明的峰值搜索系統(tǒng)的組成結(jié)構(gòu)示意圖;圖3為本發(fā)明具體實施例峰值搜索裝置中數(shù)據(jù)存儲器的結(jié)構(gòu)示意圖;圖4為本發(fā)明具體實施例峰值搜索裝置中數(shù)據(jù)存儲器每列的結(jié)構(gòu)示意圖;圖5為本發(fā)明具體實施例峰值搜索裝置中峰值搜索模塊的組成結(jié)構(gòu)示意圖;圖6為本發(fā)明具體實施例中峰值搜索模塊的第一比較電路的組成結(jié)構(gòu)示意圖。
具體實施例方式本發(fā)明的基本思想是每次獲取多個能量數(shù)據(jù),并通過多個加法器進行比較,再根據(jù)比較結(jié)果更新所保存的能量數(shù)據(jù);直到所有能量數(shù)據(jù)均獲取并比較之后,將所保存的各能量數(shù)據(jù)再進行比較,得到峰值,如此,多個能量數(shù)據(jù)并行進行比較,速度快,峰值搜索效率高,能夠適應矢量處理器高呑吐率的要求。本發(fā)明的峰值搜索方法,參照圖I所示,主要可以包括以下步驟步驟101 :獲取多個能量數(shù)據(jù),分別輸入到第一比較電路的多個加法器中;步驟102 :所述第一比較電路的各加法器分別將輸入自身的能量數(shù)據(jù)、與所述第一比較電路中連接自身的數(shù)據(jù)寄存器當前保存的能量數(shù)據(jù)進行比較,并更新所述第一比較電路中各數(shù)據(jù)寄存器保存的能量數(shù)據(jù);步驟103 :在對所有需搜索的能量數(shù)據(jù)進行所述獲取、以及比較之后,第二比較電路獲取所述第一比較電路中各數(shù)據(jù)寄存器保存的能量數(shù)據(jù),并將所獲取的能量數(shù)據(jù)進行比較,得到峰值。
具體地,在步驟101中獲取多個能量數(shù)據(jù)之前,所述方法還可以包括對已獲取的采樣數(shù)據(jù)進行相關運算處理、過濾運算處理后,再進行取模運算處理,從取模運算處理的結(jié)果中提取實部,得到所述能量數(shù)據(jù)并保存到存儲器中。其中,所述存儲器每行能夠存儲多個能量數(shù)據(jù),步驟101中獲取多個能量數(shù)據(jù),具體為從所述存儲器中讀取一行能量數(shù)據(jù)。具體地,步驟102中,所述各加法器分別將輸入自身的能量數(shù)據(jù)、與自身所連接數(shù)據(jù)寄存器當前保存的能量數(shù)據(jù)進行比較,在所述加法器比較得到所輸入的能量數(shù)據(jù)大于自身所連接數(shù)據(jù)寄存器當前保存的能量數(shù)據(jù)時,所述加法器將所輸入的能量數(shù)據(jù)替換掉自身連接數(shù)據(jù)寄存器中保存的能量數(shù)據(jù);在所述加法器比較得到所輸入的能量數(shù)據(jù)不大于自身所連接數(shù)據(jù)寄存器當前保存的能量數(shù)據(jù)時,保持所述數(shù)據(jù)寄存器中能量數(shù)據(jù)不變。這里,在所述加法器比較得到所輸入的能量數(shù)據(jù)大于自身所連接寄存器當前保存的能量數(shù)據(jù)時,所述加法器還將所輸入能量數(shù)據(jù)的地址替換掉所述第一比較電路中連接自身的地址寄存器中當前保存的能量數(shù)據(jù)地址。實際應用中,每個能量數(shù)據(jù)都有一個對應的地址。例如,能量數(shù)據(jù)存放在地址0 999,讀取能量數(shù)據(jù)時,會產(chǎn)生讀地址,如果一行存儲8個能量數(shù)據(jù),p = 8,則第一次從位于地址0處的能量數(shù)據(jù)開始讀取,第二次從位于地址8處的能量數(shù)據(jù)開始讀取,第三次從地址16處的能量數(shù)據(jù)開始讀取,依此類推,因此,在讀取能量數(shù)據(jù)時,就可以得到所讀取能量數(shù)據(jù)的地址。這里,在獲取能量數(shù)據(jù)之前,所述方法還可以包括將所述第一比較電路中各數(shù)據(jù)寄存器、和/或第一比較電路中各地址寄存器清零。具體地,在步驟103中,所述第二比較電路中的加法器獲取多少第一比較電路中各數(shù)據(jù)寄存器保存的能量數(shù)據(jù),并將所獲取的能量數(shù)據(jù)進行相互比較,得到所獲取能量數(shù)據(jù)中最大的能量數(shù)據(jù),將所得到最大的能量數(shù)據(jù)作為所述峰值。這里,步驟103之后,所述方法還可以包括所述第二比較電路中的加法器將所得到的峰值保存到所述第二比較電路中的數(shù)據(jù)寄存器中,將所述峰值的地址保存到所述第二比較電路中的地址寄存器中。在得到峰值之后,所述方法還可以包括驗證所得到峰值的個數(shù)是否經(jīng)達到預設的峰值個數(shù)閾值,如果不是,則將所得到的峰值、以及所述峰值左右兩邊的一個或多個數(shù)據(jù)從所有需搜索的能量數(shù)據(jù)中清零,即從需進行峰值搜索處理的所有能量數(shù)據(jù)的存儲器中清零,之后,重復上述步驟101 103,直到所得到峰值的個數(shù)達到預設的峰值個數(shù)閾值;否貝U,結(jié)束當前峰值搜索。相應的,本發(fā)明還提供了一種峰值搜索裝置,所述裝置包括讀數(shù)據(jù)控制電路、第一比較電路和第二比較電路;其中,第一比較電路包括多個加法器、多個數(shù)據(jù)寄存器,所述多個加法器與所述多個數(shù)據(jù)寄存器一一連接;數(shù)據(jù)寄存器,用于保存能量數(shù)據(jù);加法器,用于將輸入自身的能量數(shù)據(jù)、與自身所連接數(shù)據(jù)寄存器當前保存的能量數(shù)據(jù)進行比較,并更新所述各數(shù)據(jù)寄存器中保存的能量數(shù)據(jù);讀數(shù)據(jù)控制電路,用于獲取多個能量數(shù)據(jù),并分別輸入到所述第一比較電路的多個加法器;第二比較電路,用于在對所有需搜索的能量數(shù)據(jù)進行所述獲取、以及比較之后,獲 取所述第一比較電路中各數(shù)據(jù)寄存器保存的能量數(shù)據(jù),并將所獲取的能量數(shù)據(jù)進行比較,得到峰值。其中,所述裝置還可以包括存儲器和矢量處理器,其中,存儲器,用于保存所述所有需搜索的能量數(shù)據(jù);矢量處理器,用于對獲取的采樣數(shù)據(jù)進行相關運算處理、過濾運算處理后,再進行取模運算處理,從取模運算處理的結(jié)果中提取實部,得到所述能量數(shù)據(jù)并保存到所述存儲器中;這里,所述存儲器,還用于每行存儲多個能量數(shù)據(jù);所述讀數(shù)據(jù)控制電路,還用于從所述存儲器中讀取一行能量數(shù)據(jù)。其中,所述第一比較電路的各加法器,還用于在所輸入的能量數(shù)據(jù)大于自身所連接數(shù)據(jù)寄存器當前保存的能量數(shù)據(jù)時,將所輸入的能量數(shù)據(jù)替換掉自身所連接數(shù)據(jù)寄存器中保存的能量數(shù)據(jù)。這里,所述第一比較電路還包括多個地址寄存器,用于保存所述能量數(shù)據(jù)的地址,與所述加法器一一連接;所述加法器,還用于在所輸入的能量數(shù)據(jù)大于所述寄存器當前保存的能量數(shù)據(jù)時,將所輸入能量數(shù)據(jù)的地址替換掉自身所連接地址寄存器中保存的能量數(shù)據(jù)地址。具體地,所述第二比較電路包括加法器和數(shù)據(jù)寄存器,其中,所述第二比較電路的加法器,用于在對所有需搜索的能量數(shù)據(jù)進行所述獲取、以及比較之后,獲取所述第一比較電路中各數(shù)據(jù)寄存器保存的能量數(shù)據(jù),并將所獲取的能量數(shù)據(jù)進行比較,得到峰值,并將所得到的峰值保存到所述第二比較電路的數(shù)據(jù)寄存器中;所述第二比較電路的數(shù)據(jù)寄存器,用于保存所述峰值。這里,所述第二比較電路還可以包括地址寄存器,用于保存所得到峰值的地址;所述第二比較電路的加法器,還可以用于將所得到峰值的地址保存到所述第二比較電路的地址寄存器中。實際應用中,可以將第一比較電路分為多個比較單元,每個比較單元包括一個加法器、一個數(shù)據(jù)寄存器和一個地址寄存器,每個比較單元中加法器在判斷所輸入的能量數(shù)據(jù)大于該比較單元中數(shù)據(jù)寄存器中當前保存的能量數(shù)據(jù)時,將所述數(shù)據(jù)寄存器中當前保存的能量數(shù)據(jù)更新為所輸入的能量數(shù)據(jù),并將該比較單元中地址寄存器中當前保存的能量數(shù)據(jù)地址更新為所輸入能量數(shù)據(jù)的地址。同理,第二比較電路可以包括一個比較單元,該比較単元包括ー個加法器、一個數(shù)據(jù)寄存器和ー個地址寄存器,加法器將所得到峰值的地址保存到該比較單元的地址寄存器,將所得到的峰值保存到該比較単元的數(shù)據(jù)寄存器中。其中,所述裝置還可以包括循環(huán)控制電路和清零控制電路,其中,循環(huán)控制電路,用于驗證所述第二比較電路所得到峰值的個數(shù)是否已達到預設的峰值個數(shù)閾值,如果不是,則通知所述清零控制電路進行清零,并啟動所述讀數(shù)據(jù)控制電路、加法器、寄存器和第ニ比較電路,重復進行峰值搜索;否則,結(jié)束當前峰值搜索;清零控制電路,用于在接收到所述循環(huán)控制電路的通知吋,將所述第二比較電路得到的峰值、以及所述峰值左右兩邊的一個或多個數(shù)據(jù)從所述存儲器中清零。實際應用中,所述循環(huán)控制電路可以包括一個寄存器,用于記錄當前已得到的峰值的個數(shù)。這里,所述清零控制電路,還可以用于將所述第一比較電路中各數(shù)據(jù)寄存器、和/或第一比較電路中各地址寄存器清零。
實施例一實際應用中,峰值搜索前的計算任務由矢量處理器來完成,峰值搜索的過程可以由硬件加速器來實現(xiàn)。如圖2所示,峰值搜索裝置可以包括射頻接收模塊、數(shù)據(jù)存儲器、矢量處理器和峰值搜索模塊,其中,射頻接收模塊,用于接收ADC采樣的數(shù)據(jù),并將所得到的采用數(shù)據(jù)存儲到數(shù)據(jù)存儲器;矢量處理器,用于從所述數(shù)據(jù)存儲器讀取采樣數(shù)據(jù),對所讀取的采樣數(shù)據(jù)進行處理后,得到能量數(shù)據(jù),并將所得到的能量數(shù)據(jù)保存到數(shù)據(jù)存儲器;峰值搜索模塊,用于從數(shù)據(jù)存儲器中讀取能量數(shù)據(jù),進行峰值搜索處理,找到需要的峰值,將所找到的峰值保存,并返回給所述矢量處理器。具體地,射頻接收模塊接收射頻芯片中的ADC采樣的數(shù)據(jù),并將采樣數(shù)據(jù)存儲到數(shù)據(jù)存儲器,矢量處理器從所述數(shù)據(jù)存儲器中讀取采樣數(shù)據(jù),并對采樣數(shù)據(jù)進行相關運算、過濾運算、取模運算處理后,提取實部,得到能量數(shù)據(jù),將所得到的能量數(shù)據(jù)再保存到所述數(shù)據(jù)存儲器中;在矢量處理器對峰值捜索模塊進行參數(shù)設置后,峰值搜索模塊從數(shù)據(jù)存儲器中讀取能量數(shù)據(jù),進行峰值搜索處理,找到峰值,并返回給矢量處理器。實際應用中,矢量處理器對采樣數(shù)據(jù)進行處理的過程可以包括矢量處理器以流水線的方式從數(shù)據(jù)存儲器中讀取采樣數(shù)據(jù),再進行下行采樣數(shù)據(jù)與主同步序列(PSS)相關和濾波等運算,將所得到的運算結(jié)果(包括I通道的相關、濾波后的結(jié)果和Q通道相關、濾波后的結(jié)果)存儲到數(shù)據(jù)存儲器中,進行取模運算處理時,再從數(shù)據(jù)存儲器中讀取上述相關和過濾后的結(jié)果進行取模運算處理,之后,從取模運算處理的結(jié)果中再提取實部,得到能量數(shù)據(jù),再將所得到的能量數(shù)據(jù)寫入到數(shù)據(jù)存儲器中。其中,矢量處理器按照公式(I)進行取模運算處理后,所得到結(jié)果的實部為能量數(shù)據(jù),保存于數(shù)據(jù)存儲器的低16比特,所得到結(jié)果中的虛部為0,保存于數(shù)據(jù)存儲器的高16比特。I r I= r r =Re2+Im2廣丄)其中,F(xiàn)表示一個復數(shù)信號,Re為?的實部,Im為F的虛部。原先每個bank存儲p/2個數(shù)據(jù),執(zhí)行提取實部的壓縮處理后,將數(shù)據(jù)虛部的空位去掉,則數(shù)據(jù)存儲器的ー個bank就存儲了 P個能量數(shù)據(jù),如此,不僅壓縮/節(jié)省了數(shù)據(jù)存儲器的存儲空間,并且,在后續(xù)進行峰值搜索時,讀取能量數(shù)據(jù)的效率會相應提高一倍,并行搜索的吞吐率也可以提高一倍。實際應用中,矢量處理器可以通過一個提取實部的指令來進行上述的提取實部的處理。具體地,為了適應矢量處理器的吞吐率,所述數(shù)據(jù)存儲器具有以下結(jié)構(gòu)特征數(shù)據(jù)存儲格式為復數(shù)能量F = Re+^lm ,用32比特的單元來存儲一個復數(shù)能量數(shù)據(jù),其中低16比特為實部,高16比特為虛部;如圖3所示,存儲器寬度(width)為16*P*4比特(P為大于0的偶數(shù)),分為4個倉庫(bank),每個bank有P/2個32比特的存儲單元,矢量處理器能夠一次讀取存儲器的一列數(shù)據(jù),即P*2個能量數(shù)據(jù)。如果矢量處理器只進行相關運算、濾波運算等操作過后,不進行提取實部的操作,然后將結(jié)果寫回存儲器中,那么,其結(jié)果還是存儲器的一列有P*2個能量數(shù)據(jù),但是每個32比特的存儲單元將存放著復數(shù)能量的模值,其高16比特為0,低16比特為實部(不為0),而實際上,峰值搜索中包含提取實部的操作,即在相關運算、濾波運算后,緊接著用提取實部的指令進行提取實部的操作,然后將結(jié)果寫回存儲器中,那么存儲器的一列存放(16*P*4)/16 = P*4個能量數(shù)據(jù),即一個32比特的單元存放著兩個能量數(shù)據(jù),一個bank能存放P個能量數(shù)據(jù),如圖4所示。前面描述了矢量處理器能一次訪問存儲器的4個bank的同一列數(shù)據(jù),而峰值搜索 模塊則每次可以訪問存儲器的某一個bank的一列,即16*P比特的數(shù)據(jù),也即P個能量數(shù)據(jù)(如果矢量處理器沒有進行過提取實部的操作,那么每次讀寫的是P/2個數(shù)據(jù))。實際應用中,所述數(shù)據(jù)存儲器可以是同步靜態(tài)存儲器(ssram)。其中,矢量處理器還用于對所述峰值搜索模塊進行參數(shù)設置。峰值搜索模塊根據(jù)所述矢量處理器的參數(shù)設置,對讀取到的能量數(shù)據(jù)進行峰值搜索處理。其中,峰值搜索模塊可以由硬件加速器來實現(xiàn),可以訪問數(shù)據(jù)存儲器,每次從數(shù)據(jù)存儲器中讀出16*p比特的能量數(shù)據(jù),即讀出P個能量數(shù)據(jù),并以流水線的方式,對每次讀取的能量數(shù)據(jù)進行峰值搜索,最后,將每次峰值搜索的結(jié)果進行比較找到峰值,如此循環(huán),在所述能量數(shù)據(jù)中找到要搜索的n個最大值,其中,n為大于0的整數(shù)。具體地,如圖5所示,峰值搜索模塊主要可以包括軟件接口、讀數(shù)據(jù)控制電路、第一比較電路、第二比較電路、清零控制電路和循環(huán)控制電路。其中,矢量處理器將要配置的參數(shù)寫到軟件接口中,來向峰值搜索模塊配置參數(shù)。該軟件接口具體可以是一個或多個用于保存所配置參數(shù)的寄存器。讀數(shù)據(jù)控制電路是按照數(shù)據(jù)存儲器讀寫時序(協(xié)議)向數(shù)據(jù)存儲器發(fā)出讀請求和讀地址信號,在接收到數(shù)據(jù)存儲器返回的P個能量數(shù)據(jù)后,將所述P個能量數(shù)據(jù)分別輸入到第一比較電路中的P個加法器中。如圖6所示,第一比較電路可以包括p個加法器、P個數(shù)據(jù)寄存器、P個地址寄存器,其中,一個加法器分別連接一個數(shù)據(jù)寄存器、和一個地址寄存器,加法器與數(shù)據(jù)寄存器
對應,加法器和地址寄存器對應,數(shù)據(jù)寄存器和地址寄存器對應,各加法器將所述讀數(shù)據(jù)控制電路發(fā)送的能量數(shù)據(jù)、與自身所連接數(shù)據(jù)寄存器中的能量數(shù)據(jù)進行比較,根據(jù)比較結(jié)果,決定是否更新數(shù)據(jù)寄存器中的能量數(shù)據(jù)、以及地址寄存器中的地址。實際應用中,如果數(shù)據(jù)存儲器中一個bank存儲了 p個能量數(shù)據(jù),其中,p為大于0的整數(shù),一次讀入P個能量數(shù)據(jù)到第一比較電路,為實現(xiàn)并行比較,第一比較電路中需要包含P個加法器。也可以根據(jù)實際需要并行處理的能量數(shù)據(jù)的數(shù)量,調(diào)整第一比較電路中加法器的數(shù)量。
在第一比較電路對所有能量數(shù)據(jù)比較處理后,第二比較電路用于從第一比較電路中的P個數(shù)據(jù)寄存器中獲取P個能量數(shù)據(jù)、并從P個地址寄存器中獲取到所述P個能量數(shù)據(jù)的地址,將所獲取到的P個能量數(shù)據(jù)再進行比較,找到峰值,再找到該峰值所對應的地址,并將所找到的峰值、以及該峰值的地址保存。其中,所述第二比較電路可以包括ー個加法器、一個數(shù)據(jù)寄存器和ー個地址寄存器,其中,加法器用于從第一比較電路中獲取P個能量數(shù)據(jù)、以及所述P個能量數(shù)據(jù)的地址,并將所獲取的P個能量數(shù)據(jù)進行比較,找到峰值;數(shù)據(jù)寄存器用于保存所述加法器找到的峰值,地址寄存器用于保存所找到峰值的地址。
清零控制電路,用于根據(jù)第二比較電路得到的結(jié)果,對所述數(shù)據(jù)存儲器進行清零操作,具體地,將當前找到的峰值、以及該峰值左右兩邊的m個能量數(shù)據(jù)從所述數(shù)據(jù)存儲器
中清零。循環(huán)控制電路,用于控制上述的讀數(shù)據(jù)控制電路、第一比較電路、第二比較電路、清零控制電路循環(huán)工作,以找到多個峰值。峰值搜索模塊進行峰值搜索的處理過程,具體流程如下步驟0 :矢量處理器在峰值搜索模塊的軟件接口中寫入要配置的峰值搜索參數(shù),為峰值捜索模塊配置峰值搜索參數(shù);具體地,矢量處理器所配置的峰值搜索參數(shù)可以包括表示要讀取能量數(shù)據(jù)地址的源數(shù)據(jù)地址src_data_addr、要讀取能量數(shù)據(jù)的數(shù)據(jù)長度data_len、峰值個數(shù)閾值n、峰值左右兩邊需清除/屏蔽的數(shù)據(jù)個數(shù)m、數(shù)據(jù)存儲器中用于存放最大值的地址dest_data_addr、用于表示存儲于寄存器還是數(shù)據(jù)存儲器的參數(shù)dest_sel等。實際應用中,峰值左右兩邊需清除/屏蔽的數(shù)據(jù)個數(shù)m為經(jīng)驗參數(shù),如果濾波效果好、或者射頻信號的信噪比高,可以設置較小的數(shù)值。步驟I :啟動之時,清零控制電路將第一比較電路中的p個數(shù)據(jù)寄存器、以及P個地址寄存器清零。步驟2 :讀數(shù)據(jù)控制電路驗證所述數(shù)據(jù)存儲器中是否有還有未讀取的能量數(shù)據(jù),如果是,則每時鐘周期從保存有能量數(shù)據(jù)的數(shù)據(jù)存儲器中讀取P個能量數(shù)據(jù),分別輸入到第一比較電路中的p個加法器中,否則,繼續(xù)步驟4 ;具體地,讀數(shù)據(jù)控制電路可以通過驗證當前讀取數(shù)據(jù)的周期是否已經(jīng)達到data_len/p個周期,如果是,則數(shù)據(jù)存儲器中所有的能量數(shù)據(jù)均已讀取,否則,還有未讀取的能量數(shù)據(jù)。步驟3 p個加法器,分別將自身所接收到的能量數(shù)據(jù)與自身所連接數(shù)據(jù)寄存器當前保存的能量數(shù)據(jù)進行比較,如果所接收到的能量數(shù)據(jù)大于所述數(shù)據(jù)寄存器中的能量數(shù)據(jù),則將所接收到的能量數(shù)據(jù)替換掉所述數(shù)據(jù)寄存器中當前保存的能量數(shù)據(jù),并將所接收到能量數(shù)據(jù)的地址存入自身所連接的地址寄存器中;如果所接收到的能量數(shù)據(jù)不大于所述數(shù)據(jù)寄存器當前保存的能量數(shù)據(jù),則保持自身所連接數(shù)據(jù)寄存器當前保存的數(shù)據(jù)不變,并保持所述地址寄存器中當前保存的地址不變,返回步驟2 ;步驟4:第二比較電路從第一比較電路中的p個數(shù)據(jù)寄存器中讀取能量數(shù)據(jù),從第一比較電路中的P個地址寄存器中獲取所讀取各能量數(shù)據(jù)的地址;之后,第二比較電路將所讀取到的P個能量數(shù)據(jù)進行比較,將所述P個能量數(shù)據(jù)中最大的能量數(shù)據(jù)確定為峰值,找到峰值,并找到所述峰值的地址,最后,將所找到的峰值、以及該峰值的地址保存到指定的位置,如將峰值保存到用于存儲峰值的數(shù)據(jù)寄存器、將峰值的地址保存到用于存儲峰值地址的地址寄存器,或者將所找到的峰值、以及該峰值的地址保存到數(shù)據(jù)存儲器中用于保存峰值的結(jié)果區(qū)域中,如此,ー輪掃描結(jié)束,找到I個峰值;實際應用中,如果要搜索的峰值個數(shù)較多,可以將搜索到的峰值存儲在數(shù)據(jù)存儲器中,如果要搜索的峰值個數(shù)較少,可以將搜索到的峰值存放于便于訪問的結(jié)果寄存器中。步驟5 :對所找到的峰值個數(shù)進行累加I并保存;這里,上述的峰值搜索模塊還可以包括用于保存表示峰值搜索進程的狀態(tài)參數(shù)的寄存器、和用于保存所找到峰值個數(shù)的寄存器。毎次第二比較電路找到ー個峰值后,所述保存表示峰值搜索進程的狀態(tài)參數(shù)的寄存器會將自身所保存的峰值個數(shù)加I。實際應用中,所述用于保存所找到峰值個數(shù)的寄存器 會在每經(jīng)過ー個周期之后,將所保存的峰值個數(shù)累加I。步驟6:循環(huán)控制電路判斷所保存的峰值個數(shù)是否達到了預先配置的“峰值個數(shù)閾值n”,如果是,則結(jié)束當前流程,否則繼續(xù)步驟7 ;具體地,循環(huán)控制電路從所述用于保存所找到峰值個數(shù)的寄存器中獲取當前所找到峰值的個數(shù),判斷所找到峰值的個數(shù)是否達到預設的峰值個數(shù)閾值,如果是,則結(jié)束峰值捜索,否則,控制所述讀數(shù)據(jù)控制電路、第一比較電路、第二比較電路、清零控制電路繼續(xù)搜索峰值。步驟7 :清零控制電路將數(shù)據(jù)存儲器中的峰值、以及峰值左右兩邊的m個能量數(shù)據(jù)清零,并返回步驟1,重復上述過程。在上述過程中,能量數(shù)據(jù)的讀取和比較以流水線方式進行,且p個能量數(shù)據(jù)按列、并行地比較,中間不停頓,速度快;并且,峰值搜索模塊主要部分是多個加法器、多個數(shù)據(jù)寄存器和多個地址寄存器,電路簡單、易于實現(xiàn),占用的面積小。以上所述,僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護范圍。
權利要求
1.一種峰值搜索方法,其特征在于,所述方法包括 獲取多個能量數(shù)據(jù),分別輸入到第一比較電路的多個加法器中;所述第一比較電路的各加法器分別將輸入自身的能量數(shù)據(jù)、與所述第一比較電路中連接自身的數(shù)據(jù)寄存器當前保存的能量數(shù)據(jù)進行比較,并更新所述第一比較電路中各數(shù)據(jù)寄存器保存的能量數(shù)據(jù); 在對所有需搜索的能量數(shù)據(jù)進行所述獲取、以及比較之后,第二比較電路獲取所述第一比較電路中各數(shù)據(jù)寄存器保存的能量數(shù)據(jù),并將所獲取的能量數(shù)據(jù)進行比較,得到峰值。
2.根據(jù)權利要求I所述峰值搜索方法,其特征在于,在所述獲取多個能量數(shù)據(jù)之前,所述方法還包括 對獲取的采樣數(shù)據(jù)進行相關運算處理、過濾運算處理后,再進行取模運算處理,從取模運算處理的結(jié)果中提取實部,得到所述能量數(shù)據(jù)并保存到存儲器中。
3.根據(jù)權利要求2所述峰值搜索方法,其特征在于, 所述存儲器每行存儲有多個能量數(shù)據(jù); 所述獲取多個能量數(shù)據(jù),為從所述存儲器中讀取一行能量數(shù)據(jù)。
4.根據(jù)權利要求I所述峰值搜索方法,其特征在于,所述更新所述第一比較電路中各數(shù)據(jù)寄存器保存的能量數(shù)據(jù),包括 在所述加法器比較得到所輸入的能量數(shù)據(jù)大于自身所連接數(shù)據(jù)寄存器當前保存的能量數(shù)據(jù)時,所述加法器將所輸入的能量數(shù)據(jù)替換掉自身連接數(shù)據(jù)寄存器中保存的能量數(shù)據(jù)。
5.根據(jù)權利要求4所述峰值搜索方法,其特征在于,所述方法還包括 在所述加法器比較得到所輸入的能量數(shù)據(jù)大于自身所連接寄存器當前保存的能量數(shù)據(jù)時,所述加法器還將所輸入能量數(shù)據(jù)的地址替換掉所述第一比較電路中連接自身的地址寄存器中當前保存的能量數(shù)據(jù)地址。
6.根據(jù)權利要求5所述峰值搜索方法,其特征在于,在所述獲取多個能量數(shù)據(jù)之前,所述方法還包括 將所述第一比較電路中各數(shù)據(jù)寄存器、和/或第一比較電路中各地址寄存器清零。
7.根據(jù)權利要求I所述峰值搜索方法,其特征在于,所述第二比較電路獲取所述第一比較電路中各數(shù)據(jù)寄存器保存的能量數(shù)據(jù),并將所獲取的能量數(shù)據(jù)進行比較,得到峰值,包括 所述第二比較電路中的加法器獲取多個第一比較電路中各數(shù)據(jù)寄存器保存的能量數(shù)據(jù),并將所獲取的能量數(shù)據(jù)進行相互比較,得到所獲取能量數(shù)據(jù)中最大的能量數(shù)據(jù),將所得到最大的能量數(shù)據(jù)作為所述峰值。
8.根據(jù)權利要求7所述峰值搜索方法,其特征在于,在得到峰值之后,所述方法還包括 所述第二比較電路中的加法器將所得到的峰值保存到所述第二比較電路中的數(shù)據(jù)寄存器中,將所述峰值的地址保存到所述第二比較電路中的地址寄存器中。
9.根據(jù)權利要求I至8任一項所述峰值搜索方法,其特征在于,在得到峰值之后,所述方法還包括 驗證所得到峰值的個數(shù)是否達到預設的峰值個數(shù)閾值,如果不是,則將所得到的峰值、以及所述峰值左右兩邊的一個或多個數(shù)據(jù)從所述所有需搜索的能量數(shù)據(jù)中清零后,重復進行峰值搜索;否則,結(jié)束當前峰值搜索。
10.一種峰值搜索裝置,其特征在于,所述裝置包括讀數(shù)據(jù)控制電路、第一比較電路和第二比較電路;其中, 第一比較電路包括多個加法器、多個數(shù)據(jù)寄存器,所述多個加法器與所述多個數(shù)據(jù)寄存器一一連接;數(shù)據(jù)寄存器,用于保存能量數(shù)據(jù);加法器,用于將輸入自身的能量數(shù)據(jù)、與自身所連接數(shù)據(jù)寄存器當前保存的能量數(shù)據(jù)進行比較,并更新所述各數(shù)據(jù)寄存器中保存的能量數(shù)據(jù); 讀數(shù)據(jù)控制電路,用于獲取多個能量數(shù)據(jù),并分別輸入到所述第一比較電路的多個加法器; 第二比較電路,用于在對所有需搜索的能量數(shù)據(jù)進行所述獲取、以及比較之后,獲取所述第一比較電路中各數(shù)據(jù)寄存器保存的能量數(shù)據(jù),并將所獲取的能量數(shù)據(jù)進行比較,得到峰值。
11.根據(jù)權利要求10所述峰值搜索裝置,其特征在于,所述裝置還包括存儲器和矢量處理器,其中, 存儲器,用于保存所述所有需搜索的能量數(shù)據(jù); 矢量處理器,用于對獲取的采樣數(shù)據(jù)進行相關運算處理、過濾運算處理后,再進行取模運算處理,從取模運算處理的結(jié)果中提取實部,得到所述能量數(shù)據(jù)并保存到所述存儲器中。
12.根據(jù)權利要求10所述峰值搜索裝置,其特征在于, 所述存儲器,還用于每行存儲多個能量數(shù)據(jù); 所述讀數(shù)據(jù)控制電路,還用于從所述存儲器中讀取一行能量數(shù)據(jù)。
13.根據(jù)權利要求10所述峰值搜索裝置,其特征在于,所述第一比較電路的各加法器,還用于在所輸入的能量數(shù)據(jù)大于自身所連接數(shù)據(jù)寄存器當前保存的能量數(shù)據(jù)時,將所輸入的能量數(shù)據(jù)替換掉自身所連接數(shù)據(jù)寄存器中保存的能量數(shù)據(jù)。
14.根據(jù)權利要求13所述峰值搜索裝置,其特征在于,所述第一比較電路還包括多個地址寄存器,用于保存所述能量數(shù)據(jù)的地址,與所述加法器一一連接; 所述加法器,還用于在所輸入的能量數(shù)據(jù)大于所述寄存器當前保存的能量數(shù)據(jù)時,將所輸入能量數(shù)據(jù)的地址替換掉自身所連接地址寄存器中保存的能量數(shù)據(jù)地址。
15.根據(jù)權利要求10所述峰值搜索裝置,其特征在于,所述第二比較電路包括加法器和數(shù)據(jù)寄存器,其中, 所述第二比較電路的加法器,用于在對所有需搜索的能量數(shù)據(jù)進行所述獲取、以及比較之后,獲取所述第一比較電路中各數(shù)據(jù)寄存器保存的能量數(shù)據(jù),并將所獲取的能量數(shù)據(jù)進行比較,得到峰值,并將所得到的峰值保存到所述第二比較電路的數(shù)據(jù)寄存器中; 所述第二比較電路的數(shù)據(jù)寄存器,用于保存所述峰值。
16.根據(jù)權利要求10所述峰值搜索裝置,其特征在于,所述第二比較電路還包括地址寄存器,用于保存所得到峰值的地址; 所述第二比較電路的加法器,還用于將所得到峰值的地址保存到所述第二比較電路的地址寄存器中。
17.根據(jù)權利要求10至16任一項所述峰值搜索裝置,其特征在于,所述裝置還包括循環(huán)控制電路和清零控制電路,其中,循環(huán)控制電路,用于驗證所述第二比較電路所得到峰值的個數(shù)是否達到預設的峰值個數(shù)閾值,如果不是,則通知所述清零控制電路進行清零,并啟動所述讀數(shù)據(jù)控制電路、第一比較電路和第二比較電路,重復進行峰值搜索;否則,結(jié)束當前峰值搜索; 清零控制電路,用于在接收到所述循環(huán)控制電路的通知時,將所述第二比較電路得到的峰值、以及所述峰值左右兩邊的一個或多個數(shù)據(jù)從所述存儲器中清零。
18.根據(jù)權利要求17所述峰值搜索裝置,其特征在于,所述清零控制電路,還用于將所述第一比較電路中各數(shù)據(jù)寄存器、和/或第一比較電路中各地址寄存器清零。
全文摘要
本發(fā)明公開了一種峰值搜索方法,所述方法包括獲取多個能量數(shù)據(jù),分別輸入到第一比較電路的多個加法器中;所述第一比較電路的各加法器分別將輸入自身的能量數(shù)據(jù)、與所述第一比較電路中連接自身的數(shù)據(jù)寄存器當前保存的能量數(shù)據(jù)進行比較,并更新所述第一比較電路中各數(shù)據(jù)寄存器保存的能量數(shù)據(jù);在對所有需搜索的能量數(shù)據(jù)進行所述獲取、以及比較之后,第二比較電路獲取所述第一比較電路中各數(shù)據(jù)寄存器保存的能量數(shù)據(jù),并將所獲取的能量數(shù)據(jù)進行比較,得到峰值。本發(fā)明還公開了一種峰值搜索裝置,峰值搜索速度快,能夠適用矢量處理器高吞吐率的要求,算法相對簡單、有效,硬件簡單易實現(xiàn),面積小,成本低。
文檔編號H04W48/16GK102769893SQ20111011668
公開日2012年11月7日 申請日期2011年5月6日 優(yōu)先權日2011年5月6日
發(fā)明者戴冠新, 黎立煌 申請人:中興通訊股份有限公司