一種基於FPGA的數據處理方法、裝置及系統與流程
2023-10-09 00:13:04 1
本發明實施例涉及數據處理
技術領域:
,特別是涉及一種基於fpga的數據處理方法。本發明實施例還涉及一種基於fpga的數據處理裝置及系統。
背景技術:
:當前,lz77壓縮是常用的一種壓縮方法,為了提高對數據壓縮的效率,採用fpga(fieldprogramablegatearray,現場可編程與門陣列)的opencl(opencomputinglanguage,開放運算語言)實現lz77壓縮,並且在基於fpga的opencl實現lz77壓縮的過程中,匹配有效位置的計算是一個關鍵過程,該過程直接影響到整個系統的壓縮性能。現有技術中,在對多個輸入進行匹配有效位置計算時採用的是串行計算的方式(如圖1所示,圖1為現有技術中所提供的串行計算函數模型),每一級的兩個或多個輸入經計算後將其計算結果用於下一級的運算,一級執行完以後將其計算結果輸入至下一級,並進行下一級的計算,直至串行計算結束。因為最終的匹配有效位置的結果需要在完成所有級運算後才能得到,所以在fpga實現的過程中造成時鐘頻率下降,降低了數據處理的速度,影響了整個系統的性能。綜上所述可以看出,如何提供一種解決上述技術問題的基於fpga的數據處理方法、裝置及系統是目前有待解決的問題。技術實現要素:本發明實施例的目的是提供一種基於fpga的數據處理方法,在使用過程中大大縮短了計算過程中的時間延遲,提高了數據處理的速度和系統性能。為解決上述技術問題,本發明實施例提供了一種基於fpga的數據處理方法,包括:接收多個輸入,並採用超前進位計算方法並行計算出每個輸入的選擇路徑結果;對各個所述選擇路徑結果進行判斷分析,並得出計算結果。可選的,採用超前進位計算方法計算出每個輸入的選擇路徑結果的過程具體為:將每個輸入均分別與位於其後面的各個輸入做布爾函數運算,得到多個相應的運算結果;依據各個所述運算結果得到與每個輸入相應的選擇路徑結果。可選的,所述對各個選擇路徑結果進行判斷分析,並得出計算結果的過程具體為:依據各個選擇路徑結果得出相應的布爾序列;將所述布爾序列作為輸出的判斷條件,並依據所述布爾序列得出計算結果。可選的,所述布爾函數運算為比較運算;所述將每個輸入均分別與位於其後面的各個輸入做布爾函數運算,得到多個相應的運算結果的過程為:將每個輸入均分別與位於其後面的各個輸入做比較運算,得到多個相應的運算結果。為解決上述技術問題,本發明實施例提供了一種基於fpga的數據處理裝置,包括:計算模塊,用於接收多個輸入,並採用超前進位計算方法並行計算出每個輸入的選擇路徑結果;判斷分析模塊,用於對各個所述選擇路徑結果進行判斷分析,並得出計算結果。可選的,所述計算模塊,包括:布爾函數計算單元,用於將每個輸入均分別與位於其後面的各個輸入做布爾函數運算,得到多個相應的運算結果;選擇路徑計算單元,用於依據各個所述運算結果得到與每個輸入相應的選擇路徑結果。可選的,所述判斷分析模塊,包括:布爾序列計算單元,用於依據各個選擇路徑結果得出相應的布爾序列;分析判斷單元,用於將所述布爾序列作為輸出的判斷條件,並依據所述布爾序列得出計算結果。可選的,所述布爾函數計算單元包括比較運算單元,用於將每個輸入均分別與位於其後面的各個輸入做比較運算,得到多個相應的運算結果。為解決上述技術問題,本發明實施例提供了一種基於fpga的數據處理系統,包括如上述所述的基於fpga的數據處理裝置。本發明實施例提供了一種基於fpga的數據處理方法、裝置及系統,包括:接收多個輸入,並採用超前進位計算方法並行計算出每個輸入的選擇路徑結果;對各個選擇路徑結果進行判斷分析,並得出計算結果。可見,本發明實施例採用超前進位計算方法同時對多個輸入進行並行計算,計算出每個輸入對應的選擇路徑結果,再通過對各個選擇路徑結果進行判斷分析後得出計算結果,以完成匹配有效位置的計算。本發明在使用過程中大大縮短了計算過程中的時間延遲,提高了數據處理的速度和系統性能。附圖說明為了更清楚地說明本發明實施例中的技術方案,下面將對現有技術和實施例中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對於本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。圖1為現有技術中所提供的一種串行計算函數模型;圖2為本發明實施例提供的一種基於fpga的數據處理方法的流程示意圖;圖3為本發明實施例提供的一種並行計算的函數模型;圖4為本發明實施例提供的一種基於fpga的數據處理裝置的結構示意圖。具體實施方式本發明實施例提供了一種基於fpga的數據處理方法,在使用過程中大大縮短了計算過程中的時間延遲,提高了數據處理的速度和系統性能。為使本發明實施例的目的、技術方案和優點更加清楚,下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發明一部分實施例,而不是全部的實施例。基於本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬於本發明保護的範圍。請參照圖2,圖2為本發明實施例提供的一種基於fpga的數據處理方法的流程示意圖。該方法包括:s11:接收多個輸入,並採用超前進位計算方法並行計算出每個輸入的選擇路徑結果;s12:對各個選擇路徑結果進行判斷分析,並得出計算結果。具體的,本發明實施例對於接收的多個輸入,可以同時對其進行並行計算,採用超前進位計算方法可以並行處理多個輸入,並得到每個輸入的選擇路徑結果,然後依據各個輸入的選擇路徑結果得出最終的計算結果。在實際應用中對於多級選擇器採用超前計算方法計算出每個輸入的選擇路徑結果,即超前計算完成各個輸入的選擇路徑結果,然後通過多級選擇器輸出最終的計算結果。具體請參照圖3,圖3為本發明實施例提供的一種並行計算的函數模型,在實際應用中可以將現有技術中串行的電路結構轉化為與本發明實施例對應的並行計算的電路結構,以實現對多個輸入的並行計算,提高計算速度,並在一定程度上提升系統的性能。本發明實施例提供了一種基於fpga的數據處理方法、裝置及系統,包括:接收多個輸入,並採用超前進位計算方法並行計算出每個輸入的選擇路徑結果;對各個選擇路徑結果進行判斷分析,並得出計算結果。可見,本發明實施例採用超前進位計算方法同時對多個輸入進行並行計算,計算出每個輸入對應的選擇路徑結果,再通過對各個選擇路徑結果進行判斷分析後得出計算結果,以完成匹配有效位置的計算。本發明在使用過程中大大縮短了計算過程中的時間延遲,提高了數據處理的速度和系統性能。本發明實施例公開了一種基於fpga的數據處理方法,相對於上一實施例,本實施例對技術方案做了進一步的說明和優化。具體的:在上一實施例s11中,採用超前進位計算方法計算出每個輸入的選擇路徑結果的過程具體可以包括下面的s110和s111:s110:將每個輸入均分別與位於其後面的各個輸入做布爾函數運算,得到多個相應的運算結果;s111:依據各個運算結果得到與每個輸入相應的選擇路徑結果。需要說明的是,在實際應用中,多個輸入並行計算時,採用一個選擇器即可,每一級的功能可以分解為兩個部分,第一部分是選擇器,第二部分是決定選擇器開關狀態的布爾函數運算,布爾函數運算可以用f(x,y)表示。對於n級計算,共有n+1個輸入,為了避免當n過大時,並行計算的電路過於複雜,所以採用超前計算方法對多個輸入進行並行計算,在展開布爾函數運算的同時,可以針對性的優化電路模型,並計算出每個輸入對應的選擇路徑結果。對於現有技術中的串行計算,與圖1中的函數模型對應的布爾函數方程可以表示如下:本發明實施例中採用超前計算的思想將該布爾函數展開,以對多個輸入同時進行並行計算。可以理解的是,n級計算中共有n+1個輸入,在具體計算過程中,將第一個輸入和與位於其後的每一個輸入做布爾函數運算,得到並保存各個相應的運算結果。例如,第一個輸入與第二個輸入做布爾函數運算後得到的運算結果可以用f1,2表示,第一個輸入與第三個輸入做布爾函數運算後得到的運算結果可以用f1,3表示,…第一個輸入與第n+1個輸入做布爾函數運算得到的運算結果可以用f1,n+1表示;當第一個輸入與其後面的各個輸入計算完畢後,對第二個輸入與位於其後面的各個輸入(第三個輸入至第n+1個輸入)分別進行布爾函數運算,直至第n個輸入與第n+1個輸入做布爾函數運算,並得到相應的計算結果,該計算結果可以用fn,n+1表示。所以的輸入均做布爾函數運算完畢後,可以將所得到的各個運算結果以矩陣的形式表示出了,並得到路徑轉移的狀態矩陣,由該矩陣可以得出各個輸入對應的選擇路徑結果。具體可以參照表1,表1為n級計算對應的路徑轉移狀態矩陣表,其中,fi,j表示第i個輸入和第j個輸入對應的布爾函數運算的運算結果,f=0或1表示選擇本級的兩個輸入中的某一個。表1b2b3bn+1b1f1,2f1,3-f1,n+1b2.f2,3-f2,n+1b3..-f3,n+1---fi,j-bnfn,n+1進一步,上一實施例s12中,對各個選擇路徑結果進行判斷分析,並得出計算結果的過程具體可以包括下面s120和s121:s120:依據各個選擇路徑結果得出相應的布爾序列;s121:將布爾序列作為輸出的判斷條件,並依據布爾序列得出計算結果。具體的,可以依據各個輸入分別對應的選擇路徑得到關於每個輸入對應的布爾函數序列s=(s1,s2,…sn),並且將各個布爾函數序列作為多路選擇器判斷的輸入條件,決定多路選擇器的最終輸出結果。對於n級計算的布爾序列可以表示為s=(s1,s2,…sn),則可以得到:其中,s表示多路選擇器的開光狀態,也即各個選擇器的開光狀態的集合,即為一個布爾序列;si為第i個選擇器的開光狀態。可以證明關係式與關係式是等價的,並且在實際應用中(即採用硬體實現時),的具體形式可以根據實際實現的n的長度適度進行調整迭代展開的情況,較小複雜度。可選的,布爾函數運算為比較運算;將每個輸入均分別與位於其後面的各個輸入做布爾函數運算,得到多個相應的運算結果的過程為:將每個輸入均分別與位於其後面的各個輸入做比較運算,得到多個相應的運算結果。可以理解的,採用比較運算可以是計算更加簡單,當也可以採用其他的布爾函數運算,具體採用哪種運算可以根據實際情況而定,本發明實施例對此不做特殊的限定,能實現本發明實施例的目的即可。請參照圖4,圖4為本發明實施例提供的一種基於fpga的數據處理裝置的結構示意圖。在上述實施例的基礎上:該裝置包括:計算模塊1,用於接收多個輸入,並採用超前進位計算方法並行計算出每個輸入的選擇路徑結果;判斷分析模塊2,用於對各個選擇路徑結果進行判斷分析,並得出計算結果。具體的,上述計算模塊1,可以包括布爾函數計算單元和選擇路徑計算單元,其中:布爾函數計算單元,用於將每個輸入均分別與位於其後面的各個輸入做布爾函數運算,得到多個相應的運算結果;選擇路徑計算單元,用於依據各個運算結果得到與每個輸入相應的選擇路徑結果。進一步,上述判斷分析模塊2,包括布爾序列計算單元和分析判斷單元,其中:布爾序列計算單元,用於依據各個選擇路徑結果得出相應的布爾序列;分析判斷單元,用於將布爾序列作為輸出的判斷條件,並依據布爾序列得出計算結果。更具體的,本實施例中,上述布爾函數計算單元包括比較運算單元,用於將每個輸入均分別與位於其後面的各個輸入做比較運算,得到多個相應的運算結果。可見,本發明實施例採用超前進位計算方法同時對多個輸入進行並行計算,計算出每個輸入對應的選擇路徑結果,再通過對各個選擇路徑結果進行判斷分析後得出計算結果,以完成匹配有效位置的計算。本發明在使用過程中提高了數據處理的速度和系統性能。另外,對於本發明實施例中所涉及到的數據處理方法的具體介紹,請參照上述方法實施例,本申請在此不再贅述。在上述實施例的基礎上,本發明實施例提供了一種基於fpga的數據處理系統,包括如上述的基於fpga的數據處理裝置。需要說明的是,本發明實施例採用超前進位計算方法同時對多個輸入進行並行計算,計算出每個輸入對應的選擇路徑結果,再通過對各個選擇路徑結果進行判斷分析後得出計算結果,以完成匹配有效位置的計算。本發明在使用過程中提高了數據處理的速度和系統性能。另外,對於本發明實施例中所涉及到的數據處理方法的具體介紹,請參照上述方法實施例,本申請在此不再贅述。還需要說明的是,在本說明書中,諸如術語「包括」、「包含」或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設備所固有的要素。在沒有更多限制的情況下,由語句「包括一個……」限定的要素,並不排除在包括所述要素的過程、方法、物品或者設備中還存在另外的相同要素。對所公開的實施例的上述說明,使本領域專業技術人員能夠實現或使用本發明。對這些實施例的多種修改對本領域的專業技術人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發明的精神或範圍的情況下,在其他實施例中實現。因此,本發明將不會被限制於本文所示的這些實施例,而是要符合與本文所公開的原理和新穎特點相一致的最寬的範圍。當前第1頁12