4.3 硬體實現成本函數
4.3.1 面積成本函數
在推論成本函數之前,我們先假設大家使用的乘法器與加法器是使用相同的 技術( Technology )來實現的並且摺疊個數一樣,所以,並不將之列入成本函數中 考慮;因此,簡化問題為討論彼此摺疊演算法硬體實現架構會使用到的記憶體來 當作面積成本函數的評估,評估方式是以正反器( Flip-Flop )為記憶體面積的最小 單位,而來估計其演算法所含正反器個數多寡。
(a) 第一篇系統化第一篇系統化第一篇系統化第一篇系統化摺疊摺疊摺疊摺疊演算法演算法演算法[9] 演算法
摺疊架構圖請參考圖圖圖圖 2.4 與圖圖圖 2.5,並使用表圖 表表表 4.1 的參數,來推理其整個摺疊 演算法架構會使用到的記憶體基本元件正反器個數,即其面積成本函數推導應如 下列公式所示:
r(f+1)L + (K-f)m + ceil(log2 f) + Kb (4.1)
其中,若 i = ceil(j), i∈integer, j∈real number,則 i 為最小整數大於或等於 j。
式子(4.1)中的 L 為乘加動作會使用到的中間運算暫存器的長度,而 L 需視 規格規定的精確度來決定,且 L 亦會隨著 m、b、K 成長,在 Matlab 模擬中以全 精確度來模擬 L = m + b+ ceil(log2 K),觀察圖圖圖圖 2.5( r = 2 ,f = 3 )中發現有 8 個中間 運算暫存器,所以,估計它的暫存器檔案(RF)總共需要 r(f+1) 個。
而式子(4.1)中的 (K-f)m 為代表圖圖圖圖 2.5 上方的 x 輸入訊號多工取樣( Input Sample Multiplexing )行為會使用到的正反器個數,( K-f )是因為只有第一級的 x 輸入訊號不需要卡 f 個輸入訊號暫存器,其他級在實現演算法上皆需卡輸入訊號 暫存器;ceil(log2 f)為表示控制單元會合成出的正反器個數;式子中最後的 Kb 為 估計係數多工會使用到的正反器個數,b 為係數位元長度,K 為 FIR 的 taps 數。
(b) 位元平面摺疊位元平面摺疊位元平面摺疊位元平面摺疊演算演算演算演算法法法法[6]
摺疊架構圖請參考圖圖圖圖 2.8 及圖圖圖 2.9,並使用表圖 表表表 4.1 的參數,來推理其整個摺疊 演算法架構會使用到的記憶體基本元件正反器個數,即其面積成本函數推導應如 下列公式所示:
(2K+1)L + ceil(log2 b) + Kb (4.2)
式子(4.2)中的 L 為表示中間運算暫存器的長度,而( 2K+1 )為估計其摺疊架 構的暫存器檔案會使用到的 L 位元長度的暫存器個數,2K+1 的原因是每個位元 處理器中估計要有 sum 及 carry 這兩個位元,而全部共有 K 個位元處理器,加 上 1 個 L 位元長度移位暫存器來保存 x 端的輸入值; ceil(log2 b)為估計控制單元 所需正反器個數,因其摺疊因數為 b;式子最後的 Kb 為估計係數多工會使用到 的正反器個數。
(c) Parallel-In 摺疊摺疊摺疊摺疊演算演算演算演算法法法法
摺疊架構圖請參考圖圖圖圖 4.1 ~ 圖圖圖圖 4.4,並使用表表表 4.1 的參數,來推理其整個摺疊表 演算法架構會使用到的記憶體基本元件正反器個數,即其面積成本函數推導應如 下列公式所示:
KL + ceil(log2 f) + rb (4.3)
其中,L 為每一個中間運算暫存器的位元長度,K 代表著 Parallel-In 摺疊演 算法架構中的暫存器檔案所包含的暫存器個數,其詳情請參考圖圖圖圖 4.3,利用本篇 論文在第三章提出的排程矩陣原理,讓中間暫存器個數達到最少的實現方式;
ceil(log2 f)代表 Parallel-In 摺疊演算法架構中的控制單元會合出的正反器個數;式 子最後的 rb 為 Parallel-In 摺疊演算法架構係數多工會使用到的正反器個數。
(d) Serial-In 摺疊演算摺疊演算摺疊演算摺疊演算法法法法
摺疊架構圖請參考圖圖圖圖 4.8 ~ 圖圖圖 4.10,並使用表圖 表表 4.1 的參數,來推理其整個摺表 疊演算法架構會使用到的記憶體基本元件正反器個數,即其面積成本函數推導應 如下列公式所示:
(r + (r - 1)f)L + ceil(log2 f) + rb + fm (4.4)
其中,L 為每一個中間運算暫存器的位元長度,(r + (r - 1)f)代表著 Serial-In 摺疊演算法架構中的暫存器檔案所包含的暫存器個數詳情見圖圖圖圖 4.9,r 為 MAC 中 暫存器個數,而(r-1)f 為 MAC 之間溝通暫存器個數;ceil(log2 f)代表 Serial-In 摺 疊演算法架構中的控制單元會合出的正反器個數;rb 為 Serial-In 摺疊演算法架構 係數多工會使用到的正反器個數;式子最後的 fm 為 x 輸入端所需正反器個數。
(e) 模擬面積成本函數成長趨勢模擬面積成本函數成長趨勢模擬面積成本函數成長趨勢模擬面積成本函數成長趨勢
當我們固定 K=256,m=8,b=16 然後,使用 Matlab 來模擬面積成本函數(4.1)
~ (4.4),進而來探討當摺疊因數 f 越大(即表示相對實現的基本運算單元(MAC) 越少的情況下),各種演算法其正反器個數的成長趨勢為何,模擬結果如圖圖圖 4.11圖 所示。觀察各種摺疊演算法的面積成本函數的成長趨勢,發現兩種新摺疊演算法 在正反器個數的成長趨勢方面較現今摺疊演算法有明顯的優勢,而當摺疊因數 f 越大,Serial-In 演算法架構在面積節省上更加明顯。