国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于FPGA的浮點數(shù)線性排序器設計

2019-02-02 03:58李大琳陳濤
數(shù)字技術(shù)與應用 2019年11期
關(guān)鍵詞:浮點數(shù)

李大琳 陳濤

摘要:本文實現(xiàn)了一種基于FPGA的可重構(gòu)浮點數(shù)線性排序器。該排序器基于經(jīng)典的插入排序算法,將插入排序算法并行化,在比較操作的實現(xiàn)上,采用浮點數(shù)比較核,使排序器總體性能較現(xiàn)有實現(xiàn)有明顯提升。

關(guān)鍵詞:浮點數(shù);并行排序;可重構(gòu);插入排序

中圖分類號:TP312 文獻標識碼:A 文章編號:1007-9416(2019)11-0143-02

0 引言

排序是計算機應用領(lǐng)域中非常重要、研究和應用都非常廣泛的一類問題。例如,在數(shù)據(jù)處理、數(shù)據(jù)庫、數(shù)據(jù)壓縮、分布式計算、圖像處理和計算機圖形學中排序算法都有著非常廣泛的應用[1]。為了充分提升排序問題的解決效率,提升算法運行速度,研究人員除了設計出針對不同問題的各種排序算法之外,還結(jié)合排序問題的可并行性特點,結(jié)合具體處理器(CPUs,GPUs以及FPGAs)的結(jié)構(gòu)特點設計出了很多并行排序算法。其中,基于FPGAs的并行排序算法在性能、功耗比上表現(xiàn)得最優(yōu),但是現(xiàn)有排序器多數(shù)為定點數(shù)排序器,且在問題規(guī)模發(fā)生變化時,排序器適應性很差[2]。本文在插入排序算法的基礎(chǔ)上,針對數(shù)據(jù)庫研究中存在的大量浮點數(shù)排序問題,設計出一套基于Xilinx公司的FPGAs的可重構(gòu)浮點數(shù)線性排序器。

1 排序器設計

排序算法的基礎(chǔ)是待排序數(shù)據(jù)之間的比較。插入排序算法的基本原理是將新進數(shù)據(jù)與已有有序序列進行逐次比較,以獲得新數(shù)據(jù)在隊列中的位置,從而形成新的有序序列。本文將插入排序算法并行化,新的排序機制如圖1所示。圖中每一個節(jié)點代表一個比較/插入單元。單元的數(shù)量等于待排序數(shù)據(jù)的數(shù)量。新的待插入輸入數(shù)據(jù)被廣播到所有節(jié)點,用以和所有現(xiàn)有數(shù)據(jù)進行比較,并且找到新數(shù)據(jù)的正確位置。根據(jù)算法是要做升序排序或者降序排序,最右側(cè)的節(jié)點獲取最小或者最大值。待排數(shù)據(jù)從左側(cè)進入,從序列右側(cè)讀出。在這個排序操作過程中,排序操作和數(shù)據(jù)輸入操作同時進行。

以升序排序模式為例,在這種情況下,序列的最小值位于節(jié)點隊列的最右側(cè)節(jié)點。在其中任一個節(jié)點,得到一個從前序節(jié)點輸入的數(shù)據(jù)a,以及當前節(jié)點數(shù)據(jù)b。為實現(xiàn)升序排序,節(jié)點執(zhí)行條件判斷:b≤a。新的待插入數(shù)據(jù)與所有節(jié)點中的數(shù)據(jù)進行比較。通常情況下,數(shù)據(jù)a 一般不是最大值,因此序列中的每一個節(jié)點內(nèi)的數(shù)據(jù)關(guān)系可能是下面三個中的一個:

(1)c≥a: c被插入當前節(jié)點,a和其右側(cè)所有節(jié)點被向右移動。(2)c≥b:c被插入到a的右側(cè),并且b以及其右側(cè)所有節(jié)點右移。(3)c

2 排序器實現(xiàn)

2.1 浮點數(shù)排序節(jié)點設計

浮點數(shù)排序節(jié)點設計如圖2所示。排序節(jié)點由浮點數(shù)比較器、多路選擇器、數(shù)據(jù)存儲寄存器和控制邏輯實現(xiàn)。在浮點數(shù)比較器的設計上,為了保證性能,本設計采用了Xilinx公司的浮點數(shù)比較IP核,該核可按照IEEE-754的數(shù)據(jù)標準實現(xiàn)32位標準浮點數(shù)和16位短浮點數(shù)比較,比較過程按浮點數(shù)格式分段進行,而不采用浮點數(shù)減法方式進行,因此在比較器構(gòu)成資源使用和最終實現(xiàn)的最高主頻上都比現(xiàn)有浮點數(shù)減法方案優(yōu)化很多。

2.2 浮點數(shù)排序器的設計

N個排序節(jié)點串聯(lián)構(gòu)成一個排序器,N為待排序數(shù)據(jù)數(shù)量,如圖3所示。有兩個系統(tǒng)狀態(tài)標簽以流水線工作方式互聯(lián)所有節(jié)點。排序器通過這兩個標簽來驅(qū)動節(jié)點內(nèi)的控制邏輯,以確定新數(shù)據(jù)的準確插入位置。一個標簽代表激活的節(jié)點,以進位標志(CY)的方式在節(jié)點中間傳遞。另外一個標簽(LE)反映新的待插入數(shù)據(jù)和節(jié)點當前已有數(shù)據(jù)之間的比較結(jié)果。如果新數(shù)據(jù)比當前數(shù)據(jù)大,則LE標簽復位,否者LE標簽置位。

2.3 可重構(gòu)排序器設計

本文所設計排序器使用SystemVerilog語言實現(xiàn),所有排序器位寬、排序器節(jié)點數(shù)定義部分均使用參數(shù)化設計,使用者可以根據(jù)實際問題的規(guī)模重新定義參數(shù)后實現(xiàn)排序器。

3 測試結(jié)果

本文測試環(huán)境使用xilinx公司的Zynq7020芯片,芯片內(nèi)包含兩個Arm A9內(nèi)核和Artex系列FPGA。試驗把運行在A9內(nèi)核上的標準插入排序算法和運行在Artex系列FPGA上的并行排序算法進行比較,時間結(jié)果顯示,并行算法相對于經(jīng)典算法的加速比達25倍。

4 結(jié)論

本文設計了一種基于FPGA的可重構(gòu)浮點數(shù)線性排序器,在浮點數(shù)比較環(huán)節(jié)使用了Xilinx公司系統(tǒng)的浮點數(shù)比較核,在系統(tǒng)在面積和頻率性能上都比現(xiàn)有使用浮點數(shù)減法運算的實現(xiàn)有明顯提升。

參考文獻

[1] Matai J,Richmond D,Lee D,et al.Resolve:Generation of High-Performance Sorting Architectures from High-Level Synthesis[C].the 2016 ACM/SIGDA International Symposium.ACM,2016.

[2] Marcelino R,Neto,Horácio,Cardoso,Joo M P.Sorting units for FPGA-Based embedded systems[J].Ifip International Federation for Information Processing,2008(271):11-22.

猜你喜歡
浮點數(shù)
數(shù)據(jù)存儲
四種Python均勻浮點數(shù)生成方法
基于FPGA的數(shù)字加速度計設計與實現(xiàn)
C++中的浮點數(shù)在機器中的存儲精度問題
單精度浮點數(shù)累積量異常分析及解決方案
在C語言中雙精度浮點數(shù)線性化相等比較的研究
非精確浮點數(shù)乘法器設計
基于FPGA 的浮點與整型數(shù)據(jù)混合運算實現(xiàn)*
基于FPGA的整數(shù)開方運算
Visual Basic處理浮點DSP芯片數(shù)據(jù)的方法
武陟县| 进贤县| 新野县| 吉安县| 容城县| 湖北省| 宁武县| 武冈市| 伊宁县| 英山县| 武宣县| 乌苏市| 堆龙德庆县| 德保县| 石门县| 黄平县| 库尔勒市| 苍山县| 南陵县| 临沂市| 光泽县| 敦化市| 延吉市| 阿克陶县| 巴里| 依兰县| 瓦房店市| 杭锦后旗| 陵水| 那坡县| 长治县| 定陶县| 元江| 开原市| 莱阳市| 福泉市| 中阳县| 辽阳市| 顺平县| 自贡市| 宾阳县|