大數據與即時處理需求
隨著大數據時代的來臨,數據量呈指數性增長,這對數據壓縮技術提出了更高的實時處理要求。傳統基於 FPGA 的硬體加速方法雖利用了並行和流水線技術,但往往只適用於特定的壓縮演算法,而且在 FPGA 與 CPU 之間的資料傳輸上會遇到 I/O 瓶頸問題。
現有方法的限制
由於常見壓縮演算法中存在大量可並行化的迴圈,因此利用向量化技術來加速數據壓縮成為一個可行的方向。然而,針對帶有數據依賴的迴圈(如類似前綴和計算的結構),傳統的 RISC-V 向量擴充(RVV)無法直接有效地向量化,這就需要新的硬體支援機制和指令擴展來解決這一問題。
針對數據壓縮算法的分析與優化
作者分析了五種主流的數據壓縮算法(7z、Bzip2、Gzip、Zstd 與 Lz4),找出了在 RVV 向量化中無法處理的熱點迴圈特點,這些迴圈中存在簡單的循環數據依賴關係。
提出向量鄰接指令
針對這類因數據依賴而無法被標準 RVV 向量化的迴圈,作者設計了一組“向量鄰接指令”(如 vandadj.vx、vaddadj.vx、voradj.vx、vxoradj.vx)。這些指令具體實現方式是:
硬體架構設計:解耦向量算術單元
為了支持上述擴展指令,設計了一種解耦的向量算術單元。關鍵設計特點包括:
性能提升
在實驗中,作者將熱點函數(來自於上述數據壓縮算法中的無法向量化部分)重寫為使用擴展向量指令的版本,並對比優化前後的時鐘周期數。結果表明:
硬體實現與資源利用
採用開源向量處理器 Ara 作為平台,在 Alveo U50 FPGA 上完成合成與實現。文中提供了不同通道數配置下的資源使用(LUT、FF、BRAM、DSP)與功耗數據,表明在2、4及更高通道數配置下,系統均能達到超過 100MHz 的時鐘頻率,並且在更高通道數配置時時鐘頻率仍能超過 10MHz。
總結來說,該文獻提出了一種基於擴展 RISC-V 向量指令(特別是向量鄰接指令)的硬體加速方案,通過專用硬體架構設計,成功應用於數據壓縮算法中,大幅提高了運算效率並克服了傳統 FPGA 加速中的 I/O 與數據依賴挑戰。