水穎
(杭州應用聲學研究所,浙江 杭州310023)
可重構處理器結合了通用處理器與專用處理器這兩者的優勢,包括通用處理器(General purpose processor ,GPP)的靈活性與專用處理器(Applicationspecific integrated circuits ,ASIC)的高能效。可重構處理器分為兩種,即為細粒度可重構處理器FPGA 和粗粒度動態可重構處理器(Coarse-grained Reconfigurable Architecture, CGRA)。粗顆粒度可重構處理器最近成為研究熱門,由于它在配置文件大小,芯片功耗,配置時間長短以及工具優化時間等各方面都有優勢。
目前AI 領域中,圖像預處理的算法包括直方圖均衡,高斯噪聲,白化等,其中具有很多相同算子。粗顆粒度可重構架構提升架構中算子的利用率,降低了整體的功耗,以及算子的靈活性。本文提供基本CGRA 的映射方法,針對其中的不足,基于項目提出一種新型的粗顆粒度架構,此結構能使得降低芯片功耗,以及減少連線等問題。
粗顆粒度可重構架構的基本算子映射方法,如下圖1 所示。圖1(a)為一個計算程序,基本算子是由乘和加組成。圖1(b)為圖1(a)計算程序的映射DFG 圖(數據流圖)。結點(node)和邊(edge)是DFG 圖的基本組成部分。操作符在結點之中,數據依賴關系和數據流向則是通過邊來表示,即DFG 圖就可以表示算子的操作。標準CGRA 的基本單元為PE,即為基本算子結構,如圖1(c)。PE 可以包括多個計算符的結構,例如乘加或者乘除等,具體可根據應用的領域所定。多個PE 的時空圖,如下圖1(d)所示。CGRA 就是將計算程序的映射到基本的PE 時空圖中,將操作符映射到結點,將連接關系映射到邊。CGRA 映射過程可以擁有多條映射路徑,所以工具會進行優化,找到最優時序的路徑。所有PE 間連線為全交叉,雖然可能路徑增加,但同時會導致優化時間增加和整個網絡復雜,所以本文提出一種新型架構可以解決CGRA 中出現的這些問題。
本文提出的粗粒度可重構結構的基本思路和結構框圖如圖2 所示。

圖1 CGRA 的映射示例

圖2 基本思路以及結構框圖
本文根據媒體算法應用構建了新型可重構架構,算子單元(PE)與傳統的CGRA 中算子單元不完全一樣,傳統CGRA 的PE單元是統一的,但文中的PE 單元進行分類,這樣做的目的是能有效滿足資源的利用率。功能PE 單元分類為不同的算子單元,例如乘,加,比較等。基本思路就是將二維全交叉的結構,通過功能分類,將其分為4 類,每類為一個基本單元,基本單元之間進行全交叉輸出,最終單元簇之間再進行全交叉互聯的結構。在完成所需功能的基礎上,減少了編譯優化的時間,提升了gEDA圖層次清晰度。
根據上節的分析,本文提出一種新型粗顆粒度可重構結構。如圖2 所示,這種結構由兩部分組成:處理單元簇和簇間互連網絡。每個處理單元簇包含相近功能處理單元和1 個簇內互連網絡。簇間互連網絡和簇內互連網絡由相同結構的基本互連單元組成,這種基本互連單元具有交叉互連的特性,而且面積開銷較小,并且工具能更好識別。通過簇內和簇間互連網絡的結合,可以在整個陣列中實現任意一對PE 之間的全交叉建立連接和交換數據。以下二節將對各個模塊進行詳細地描述。
基本互連單元可以分為四大類,包括比較單元,乘加單元,動態選擇器單元以及移位器單元。每類基本單元內部為互聯網絡,進行數據交換。最終輸出一組數據作為整個類單元的輸出接口。
簇內和簇間互連網絡分別用于簇內處理單元之間的數據交換和簇與簇之間的數據交換,除此之外,簇內互連網絡還為每個處理單元提供兩個操作數,同時作為與其他簇進行數據交換的接口。簇內和簇間互連網絡均是由基本互連單元組成。二者的不同之處在于,簇內互連網絡需要兩個基本互連單元,而簇間互連網絡只需要一個。簇內互連網絡需要兩個基本互連單元是為了實現多種功能。
本文提出結構中的單元硬件電路通過Verilog HDL 語言描述實現,交叉互聯圖通過gEDA 工具進行連接,工具鏈進行了功能驗證、綜合、時序分析和功耗分析。交叉連線的對比如下表所示:

最終結果發現,工具鏈使用新型的結構,時序優化時間約為之前的50%,gEDA 工具圖交叉線不會達到軟件峰值,芯片功耗降低了23%。
本文提出了一種基于新型粗粒度可重構陣列結構。通過將所有功能特性分類交叉的基本互連單元,并基于這種單元構建了整個互連網絡,降低了互連網絡導致的連線復雜度且工具無法識別大規模線陣的問題,以及面積開銷和功耗,簡化了互連網絡的控制機制。除此之外,本文提出的結構將處理單元按簇劃分,提出了一種層次型的網絡拓撲結構,實現了陣列中任意一對處理單元均可以建立連接和交換數據。