特徵擷取單元實做 GHA 演算法,分析擷取輸入棘波訊號的特徵,並 輸出分析完成的特徵值供後端使用。為方便討論,本文假設特徵擷取的輸 出向量皆為二維向量,亦即 y= [y1, y2]。
實做 GHA 演算法,須實做式2.3與式2.5。以下先討論實做此二公式之 資料流,最後再將兩個公式的架構拼起來,說明整個系統的大架構。
GHA 的動作函式如第 二 章第 二 節的式2.3,為棘波樣本向量與權重向 量之內積運算,也就是積項之和運算(sum of product),運算完畢後會產 生出特徵值向量 y= [y1, y2]。
圖3.5演示本電路演算特徵值向量的過程。圖中的 Buffer Z 為棘波訊號 緩衝區,Buffer W 為權重向量緩衝區(每個通道都有自己的權重向量緩衝 區,在此為簡化說明,暫時只顯示一組),Sum of Product 為積項之和運算 單元(內包含一些乘法器、加法器與累加器),Reg 1 與 Reg 2 為運算完成 的特徵值向量暫存器。在此須注意 Buffer Z、Buffer W 以及 Reg 1& 2 均設 計為迴旋暫存器(rotation register),如此一來如有需循序提供部份資料,
就可以迴旋(rotate)的方式將資料一筆一筆推出,並且不會遺失舊資料。
觀察圖3.5(a),Buffer Z 提供 x(n) = [x1(n), ..., xm(n)],搭配 Buffer W 提 供 w1(n) = [w1,1(n), ..., w1,m(n)] 送 至 Sum of Product 運 算 單 元, 計 算 結 果 y1(n)會傳送至 Reg 1 儲存,至此完成y1(n)的運算。
接下來為了運算y2(n),Buffer W 會將 w1迴旋(rotate)至 Buffer W 頭
端存放,並送出 w2(n) = [w2,1(n), ..., w2,m(n)],如圖3.5(b)所示。如此,Sum of Product 電路便可取得棘波樣本與計算特徵值 y2(n) 所需的權重向量。
y2(n)計算完成後,會存至 Reg 1,並且原先的y1(n)會被旋轉至 Reg 2。至 此,特徵值向量 y 的計算完成。
圖 3.5: SOP 電路運算資料流
(a) (b)
GHA 的權重更新函式如第 二 章第 二 節的式2.5。為方便討論,在此先 將該式簡化,過程如下。
wji(n + 1) = wji(n) + ηyj(n)zji(n) (3.1) 其中:
zji(n) = xi(n)−
∑j k=1
wki(n)yk(n), j = 1, ..., p (3.2) 觀察上式,發現zji(n)可由z(j−1)i(n)推得:
zji(n) = z(j−1)i(n)− wji(n)yj(n), j = 2, ..., p (3.3)
當j = 1時,由式3.2與式3.3可推得:
z0i(n) = xi(n) (3.4)
上述推導給了一個疊代運算過程,再也無須為得到一筆權重資料,而 重新計算整個累加過程(∑j
k=1
wki(n)yk(n))。同理可證,電路設計中也可運 用到此疊代的特性。圖3.6示意實作式3.1與式3.3的電路架構。由上一輪的 z(j−1)i 可計算出該輪 z(j−1)i 之新權重值 wji(n + 1)以及下一輪疊代要用的 zji(n)。
圖 3.6: SWU 權重計算模組
+ X X
X
-圖3.6的計算模組一次只能計算一個權重值,若要完成一個權重向量,
需耗費相當時間。若考慮到系統運作速度,可使用多個模組進行平行運 算,提高吞吐量。
使用圖3.6的計算單元,即可建構完整的權重更新流程。請見圖3.7示 意的計算流程。圖3.7(a)中,由 Buffer Z 提供 x= [x1(n), ..., xm(n)](即 z0 = [z0,1(n), ..., z0,m(n)]),由 Buffer W 提供 w1(n) = [w1,1(n), ..., w1,m(n)],並由特 徵值向量暫存器 Reg 1 提供已計算完成的特徵值y1(n),讓 SWU Unit 計算 出新的權重向量 w1(n + 1) = [w1,1(n + 1), ..., w1,m(n + 1)]存入 Buffer W 頭端,
圖3.7(b)演示計算第二個新權重 w2(n + 1)的過程。Buffer W 將 w1(n + 1) 資料存入頭端後,尾端會推出 w2(n) = [w2,1(n), ..., w2,m(n)],並且在這裡也 會指示特徵值向量暫存器進行旋轉,送出y2(n)。此時由 w2(n)以及 Reg 1 提供之y2(n),搭配 Buffer Z 所送出的 z1(n),SWU Unit 即可計算出第二個 權重向量的更新值 w2(n + 1) = [w2,1(n + 1), ..., w2,m(n + 1)]。至此,權重向量 更新完畢。
圖 3.7: SWU 單元運算資料流
(a) (b)
圖3.8呈現特徵擷取電路的全貌,圖中可見前文討論到的 Buffer Z、
Buffer W、SOP Circuit 以 及 SWU Unit 等 功 能 區 塊。 該 圖 示 意 棘 波 維 度
m = 64,通道個數M = 16,權重更新單元模組個數 L = 8,主成份個數
(權重向量元素個數)P = 2時的特徵擷取單元架構。
圖中可見 SWU Unit 中,含有八個權重更新運算模組(模組內容請見
圖3.6)。因此此電路一次的計算,都是以八組資料為單位,因此圖中可見 Buffer Z 與 Buffer W 一次都是送出八組數值循環運算。此為本電路的一大特
色,透過資料的分批運算,可顯著減少運算單元的個數,而達到降低面積 之效。雖然乍看之下,效能方面會產生疑慮。本論文在第 四 章第 一 節會 對系統的效能進行分析,說明推論模組個數以及其他系統參數選取的方 式,與其對效能的影響。
類神經網路有兩種運作模式,訓練模式與服務模式。本架構亦支援兩 種模式的運作。訓練模式中,SOP Circuit 完成特徵值運算後,啟動 SWU Unit 更新權重向量,即可完成一輪訓練。服務模式中由於無須更新權重向
量,只要將權重更新的程序取消即可。
前 文 所 述 的 特 徵 值 運 算、 權 重 向 量 更 新 以 及 運 作 模 式 的 控 制, 均 由 一 個 GHA 控 制 器 掌 控。 圖3.9顯 示 控 制 器 的 功 能 方 塊 圖。 該 控 制 器 從第 三 章第 三 節所介紹的棘波緩衝區取得棘波樣本後開始運作。運作時,
控制器會根據運算進度與棘波通道編號,控制圖3.8中的電路運作(主要是 控制多工器)。運算完畢後,控制器會發出訊號給棘波緩衝區,通知送出 下一筆棘波訊號,繼續運算。