專利名稱:一種基于多核處理器的矩陣數(shù)據(jù)按bit旋轉的裝置及方法
技術領域:
本發(fā)明屬于印花打印技術領域,具體涉及ー種基于多核處理器的矩陣數(shù)據(jù)按bit 旋轉的裝置及方法。
背景技術:
在數(shù)碼印花打印機的結構中,對于數(shù)據(jù)的旋轉處理通常使用通用計算機來完成, 但是由于通用計算機對數(shù)據(jù)按bit旋轉的操作效率不高,無法滿足數(shù)碼印花機高速打印所需的數(shù)據(jù)吞吐量和數(shù)據(jù)處理能力,因此數(shù)據(jù)按bit旋轉操作的速度就成為了數(shù)碼印花機提高打印速度的關鍵所在,數(shù)據(jù)旋轉的效率直接影響著數(shù)碼印花機的產(chǎn)能。申請?zhí)枮?01010039580. 7的中國專利公開了ー種基于FPGA(現(xiàn)場可編程門陣列) 的矩陣數(shù)據(jù)按bit旋轉的裝置及方法技術,該裝置包含數(shù)據(jù)輸入?yún)g元、數(shù)據(jù)矩陣単元、數(shù)據(jù)存儲單元和數(shù)據(jù)合成単元,分別完成矩陣數(shù)據(jù)的劃分、旋轉、存儲和合成;其使數(shù)據(jù)矩陣單元分為左數(shù)據(jù)矩陣単元和右數(shù)據(jù)矩陣単元,從而實現(xiàn)了ニ級流水處理方法,一定程度上提高了矩陣數(shù)據(jù)旋轉效率;但是由于受FPGA時序和DDR操作效率的影響,該裝置的數(shù)據(jù)吞吐量相對較小。近年來,單核處理器的發(fā)展受到了物理定律的限制,性能的提高已經(jīng)到達了瓶頸期。但人們對處理能力和存儲能力要求不斷提高,多核處理技術的迅速發(fā)展為人們找到了解決方案。多核處理技術在保證每個核高速度的處理能力的同吋,同時能高效的處理每個核之間的數(shù)據(jù)交互以及數(shù)據(jù)之間的同步問題,同時提高了 DDR和每個核的交互能力,使得 DDR的訪問能力并沒有因為核數(shù)的增多而成為瓶頸。其中Tilera公司推出的Tilera系列芯片為多核處理器中的佼佼者。
發(fā)明內(nèi)容
針對現(xiàn)有技術所存在的上述技術缺陷,本發(fā)明提供了一種基于多核處理器的矩陣數(shù)據(jù)按bit旋轉的裝置及方法,能夠提高數(shù)據(jù)的旋轉效率以及吞吐量,從而實現(xiàn)數(shù)碼印花機的高效能產(chǎn)出。一種基于多核處理器的矩陣數(shù)據(jù)按bit旋轉的方法,包括如下步驟(1)將待旋轉的64bitX64bit的矩陣數(shù)據(jù)劃分為N個(64/N) bit X 64bit的矩陣數(shù)據(jù)塊;N為能被64整除且滿足2 < N < M的自然數(shù),M為多核處理器的核個數(shù);(2)利用多核處理器的N個核分別并行對N個矩陣數(shù)據(jù)塊進行旋轉,將N個旋轉后的矩陣數(shù)據(jù)塊依次寫入緩存;C3)從緩存中讀取N個旋轉后的矩陣數(shù)據(jù)塊,將N個旋轉后的矩陣數(shù)據(jù)塊進行合并后輸出。所述的步驟( 中,對矩陣數(shù)據(jù)塊進行旋轉是將(64/N)bitX64bit的矩陣數(shù)據(jù)塊通過核的寄存器進行移位轉變成為64bitX (64/N)bit的矩陣數(shù)據(jù)塊。一種基于多核處理器的矩陣數(shù)據(jù)按bit旋轉的裝置,包括一數(shù)據(jù)接收単元、一數(shù)據(jù)劃分單元、N個數(shù)據(jù)處理單元、一數(shù)據(jù)存儲單元和一數(shù)據(jù)合成單元;其中所述的數(shù)據(jù)接收單元,用于接收待旋轉的64bitX64bit的矩陣數(shù)據(jù);所述的數(shù)據(jù)劃分單元,用于將待旋轉的64bitX64bit的矩陣數(shù)據(jù)劃分為N個(64/N)bitX64bit的矩陣數(shù)據(jù)塊;所述的N個數(shù)據(jù)處理單元,用于分別并行對N個矩陣數(shù)據(jù)塊進行旋轉;所述的數(shù)據(jù)存儲單元,用于存放N個數(shù)據(jù)處理單元分別輸出的N個旋轉后的矩陣數(shù)據(jù)塊;所述的數(shù)據(jù)合成單元,用于從數(shù)據(jù)存儲單元中讀取N個旋轉后的矩陣數(shù)據(jù)塊,并將N個旋轉后的矩陣數(shù)據(jù)塊進行合并后輸出。所述的數(shù)據(jù)處理單元為多核處理器的核,處理大小為(64/N)bitX64bit的矩陣數(shù)據(jù)塊,其將(64/沁13^\6413^的矩陣數(shù)據(jù)塊旋轉為6413^\ (64/N) bit的矩陣數(shù)據(jù)塊;一個數(shù)據(jù)處理單元對應一個核,可以實現(xiàn)并行對N個矩陣數(shù)據(jù)塊進行旋轉操作;相比單核處理器,性能提升N倍。所述的數(shù)據(jù)存儲單元為多核處理器的DDR。結合本發(fā)明裝置,本發(fā)明方法的實現(xiàn)是通過數(shù)據(jù)接收、數(shù)據(jù)按核數(shù)劃分、數(shù)據(jù)處理及存儲和數(shù)據(jù)合成這4個步驟步驟A 以Byte為單位,接收從網(wǎng)絡或其他傳輸介質(zhì)中傳輸過來的數(shù)據(jù),并將數(shù)據(jù)按照接收順序進行存儲;步驟B 采用塊矩陣的方法,將接收到的待旋轉的64bitX64bit的矩陣數(shù)據(jù)劃分為N個(64/N)bitX64bit的矩陣數(shù)據(jù)塊;步驟C JfNf (64/N)bitX64bit的矩陣數(shù)據(jù)塊分別輸入至N個核中,然后將N個(64/N)bitX64bit的矩陣數(shù)據(jù)塊通過每個核的寄存器進行移位轉變成為N個64bit X (64/N) bit的矩陣數(shù)據(jù)塊,并存入DDR中;步驟D 由數(shù)據(jù)合成單元通過對DDR中旋轉后的矩陣數(shù)據(jù)塊按照地址跳變的算法取得數(shù)據(jù),并合成8bit的數(shù)據(jù)形式輸出。結合具體技術領域,本發(fā)明還提供了一種基于多核處理器的數(shù)碼印花機掃描行按bit旋轉的方法,包括如下步驟(1)將數(shù)碼印花機的掃描行(現(xiàn)有數(shù)碼印花技術中,根據(jù)印花機的噴頭數(shù)目將完整的圖像分割為若干個掃描行)劃分為若干個大小為64bitX64bit的待旋轉的矩陣數(shù)據(jù)塊,再將每個待旋轉的矩陣數(shù)據(jù)塊劃分為N個(64/N)bitX64bit的子矩陣數(shù)據(jù)塊;(2)分配N個核,分別并行對一個矩陣數(shù)據(jù)塊的N個子矩陣數(shù)據(jù)塊進行旋轉,將N個旋轉后的子矩陣數(shù)據(jù)塊依次寫入緩存;所述的旋轉是將(64/N)bitX64bit的子矩陣數(shù)據(jù)塊通過核的寄存器進行移位轉變成64bitX (64/N)bit的子矩陣數(shù)據(jù)塊;(3)從緩存中讀取N個旋轉后的子矩陣數(shù)據(jù)塊,進行合并后輸出;(4)根據(jù)步驟( 和(3),遍歷所有待旋轉的矩陣數(shù)據(jù)塊,以完成整個掃描行的數(shù)據(jù)旋轉。本發(fā)明方法及裝置能夠大大提高數(shù)據(jù)的旋轉效率以及吞吐量,從而實現(xiàn)數(shù)碼印花機的高效能產(chǎn)出。
圖1為本發(fā)明裝置的結構示意圖。圖2為本發(fā)明方法的步驟流程圖。圖3為本發(fā)明裝置實現(xiàn)的功能示意圖。圖4為本發(fā)明方法的數(shù)據(jù)劃分示意圖。圖5為四塊數(shù)據(jù)分塊的旋轉示意圖。圖6為本發(fā)明方法的數(shù)據(jù)旋轉流程圖。
具體實施例方式為了更為具體地描述本發(fā)明,下面結合附圖及具體實施方式
對本發(fā)明的技術方案及其方法進行詳細說明。如圖1所示,一種基于多核處理器的矩陣數(shù)據(jù)按bit旋轉的裝置,包括一數(shù)據(jù)接收單元、一數(shù)據(jù)劃分單元、4個核、一 DDR和一數(shù)據(jù)合成單元;其中數(shù)據(jù)接收單元接收從網(wǎng)絡或其他傳輸介質(zhì)中傳輸過來的數(shù)據(jù),并將數(shù)據(jù)按照接收順序進行存儲;數(shù)據(jù)劃分單元與數(shù)據(jù)接收單元相連,其用于將接收到的待旋轉的64bitX64bit的矩陣數(shù)據(jù)劃分為4個16bitX64bit的矩陣數(shù)據(jù)塊;核與數(shù)據(jù)劃分單元相連,4個核分別并行對4個16bitX64bit矩陣數(shù)據(jù)塊進行旋轉,得到4個64bitX16bit矩陣數(shù)據(jù)塊;DDR與核相連,其用于存放4個核分別輸出的4個64bitX 16bit矩陣數(shù)據(jù)塊;數(shù)據(jù)合成單元與DDR,其用于從DDR中讀取4個64bit X 16bit矩陣數(shù)據(jù)塊,并將這4個64bit X 16bit矩陣數(shù)據(jù)塊進行合并后輸出。本實施例中多核處理器采用Tilera公司的Tilefoc系列多核處理器(Tile_Gx9),處理器具有9個核,主頻為1. 2GHz ;DDR主頻為1333MHZ。如圖3所示,本實施例裝置需要完成的工作是將一個64bitX64bit的矩陣數(shù)據(jù)實現(xiàn)旋轉。如圖2所示,本實施例裝置將64bitX64bit的矩陣數(shù)據(jù)進行旋轉的方法,包括如下步驟(1)將數(shù)據(jù)劃分成數(shù)據(jù)塊。將待旋轉的64bitX64bit的矩陣數(shù)據(jù)劃分為4個16bitX64bit的矩陣數(shù)據(jù)塊,如圖4所示。(2)對數(shù)據(jù)塊進行旋轉。利用多核處理器的4個核分別并行對4個16bitX64bit的矩陣數(shù)據(jù)塊進行旋轉,旋轉得到4個64bitX 16bit的矩陣數(shù)據(jù)塊,如圖5所示;將這4個64bitX 16bit的矩陣數(shù)據(jù)塊依次寫入DDR。64bit X 64bit的矩陣數(shù)據(jù)被劃分為垂直的4個條帶G個16bit X 64bit的矩陣數(shù)據(jù)塊),每個核處理一個條帶的數(shù)據(jù),每個核的處理過程是相同的;如圖6所示,旋轉處理的具體操作過程為1、每次從DDR讀取一個BYTE的數(shù)據(jù),通過移位操作獲取每一位的數(shù)值;2、再次對這8個bit分別進行移位操作,通過按位或操作存儲到相應的8個轉置后結果寄存器中的對應位中;3、每完成8行原始數(shù)據(jù)的轉置,就可以得到一列轉置好的BYTE數(shù)據(jù),然后將其存儲至Ij DDR中相應的buffer中;4、根據(jù)步驟1-3,遍歷所有需要處理的數(shù)據(jù)。(3)將數(shù)據(jù)塊合成后輸出。從DDR中讀取4個旋轉后的64bit X 16bit的矩陣數(shù)據(jù)塊,將這4個64bit X 16bit的矩陣數(shù)據(jù)塊進行合并后輸出。經(jīng)實施驗證,采用現(xiàn)有技術基于FPGA的矩陣數(shù)據(jù)按bit旋轉的裝置及方法對64bitX64bit的矩陣數(shù)據(jù)進行旋轉輸出,其數(shù)據(jù)吞吐量為40MB/s,而采用本實施方式對64bitX64bit的矩陣數(shù)據(jù)進行旋轉輸出,數(shù)據(jù)吞吐量為140MB/S ;數(shù)據(jù)對比即能表明本實施方式能夠大大提高數(shù)據(jù)的旋轉效率以及吞吐量,從而實現(xiàn)數(shù)碼印花機的高效能產(chǎn)出。
權利要求
1.一種基于多核處理器的矩陣數(shù)據(jù)按bit旋轉的方法,包括如下步驟(1)將待旋轉的64bitX64bit的矩陣數(shù)據(jù)劃分為N個(64/N)bitX64bit的矩陣數(shù)據(jù)塊;N為能被64整除且滿足2 < N < M的自然數(shù),M為多核處理器的核個數(shù);(2)利用多核處理器的N個核分別并行對N個矩陣數(shù)據(jù)塊進行旋轉,將N個旋轉后的矩陣數(shù)據(jù)塊依次寫入緩存;(3)從緩存中讀取N個旋轉后的矩陣數(shù)據(jù)塊,將N個旋轉后的矩陣數(shù)據(jù)塊進行合并后輸
2.根據(jù)權利要求1所述的基于多核處理器的矩陣數(shù)據(jù)按bit旋轉的方法,其特征在于 所述的步驟( 中,對矩陣數(shù)據(jù)塊進行旋轉是將(64/N)bitX64bit的矩陣數(shù)據(jù)塊通過核的寄存器進行移位轉變成為64bitX (64/N)bit的矩陣數(shù)據(jù)塊。
3.一種基于多核處理器的矩陣數(shù)據(jù)按bit旋轉的裝置,其特征在干,包括一數(shù)據(jù)接收単元、一數(shù)據(jù)劃分単元、N個數(shù)據(jù)處理單元、一數(shù)據(jù)存儲単元和ー數(shù)據(jù)合成単元;其中所述的數(shù)據(jù)接收単元用于接收待旋轉的64bitX64bit的矩陣數(shù)據(jù); 所述的數(shù)據(jù)劃分単元用于將待旋轉的64bitX64bit的矩陣數(shù)據(jù)劃分為N個(64/N) bitX64bit的矩陣數(shù)據(jù)塊;所述的N個數(shù)據(jù)處理單元用于分別并行對N個矩陣數(shù)據(jù)塊進行旋轉; 所述的數(shù)據(jù)存儲単元用于存放N個數(shù)據(jù)處理單元分別輸出的N個旋轉后的矩陣數(shù)據(jù)塊;所述的數(shù)據(jù)合成単元用于從數(shù)據(jù)存儲単元中讀取N個旋轉后的矩陣數(shù)據(jù)塊,并將N個旋轉后的矩陣數(shù)據(jù)塊進行合并后輸出。
4.根據(jù)權利要求3所述的基于多核處理器的矩陣數(shù)據(jù)按bit旋轉的裝置,其特征在于 所述的數(shù)據(jù)處理單元為多核處理器的核。
5.根據(jù)權利要求3所述的基于多核處理器的矩陣數(shù)據(jù)按bit旋轉的裝置,其特征在于 所述的數(shù)據(jù)存儲單元為多核處理器的DDR。
6.一種基于多核處理器的數(shù)碼印花機掃描行按bit旋轉的方法,包括如下步驟(1)將數(shù)碼印花機的掃描行劃分為若干個大小為64bitX64bit的待旋轉的矩陣數(shù)據(jù)塊,再將每個待旋轉的矩陣數(shù)據(jù)塊劃分為N個(64/N)bitX64bit的子矩陣數(shù)據(jù)塊;(2)分配N個核,分別并行對一個矩陣數(shù)據(jù)塊的N個子矩陣數(shù)據(jù)塊進行旋轉,將N個旋轉后的子矩陣數(shù)據(jù)塊依次寫入緩存;(3)從緩存中讀取N個旋轉后的子矩陣數(shù)據(jù)塊,進行合并后輸出;(4)根據(jù)步驟( 和(3),遍歷所有待旋轉的矩陣數(shù)據(jù)塊,以完成整個掃描行的數(shù)據(jù)旋轉。
全文摘要
本發(fā)明公開了一種基于多核處理器的矩陣數(shù)據(jù)按bit旋轉的裝置,包括數(shù)據(jù)接收單元、數(shù)據(jù)劃分單元、N個數(shù)據(jù)處理單元、數(shù)據(jù)存儲單元和數(shù)據(jù)合成單元。本發(fā)明還公開了一種基于多核處理器的矩陣數(shù)據(jù)按bit旋轉的方法,包括(1)將數(shù)據(jù)劃分成數(shù)據(jù)塊;(2)對數(shù)據(jù)塊進行旋轉;(3)將數(shù)據(jù)塊合成后輸出。相比現(xiàn)有技術,本發(fā)明方法及裝置能夠大大提高數(shù)據(jù)的旋轉效率以及吞吐量,從而實現(xiàn)數(shù)碼印花機的高效能產(chǎn)出。
文檔編號G06K15/02GK102567746SQ201110455909
公開日2012年7月11日 申請日期2011年12月30日 優(yōu)先權日2011年12月30日
發(fā)明者汪鵬君, 田翔, 陳耀武 申請人:浙江大學