• 沒有找到結果。

第三章 棘波分類系統架構

3.1 GHA 單元

GHA 單元的架構為 [13] 所提出的架構之延伸。GHA 單元主要由三項功能 單元所組成:記憶體 (Memory) 單元、突觸權重更新 (Synaptic Weight Updating , SWU) 單元、主成分計算 (Principal Components Computing , PCC) 單元。

Global Controller

GHA Circuit

FCM Circuit To/From

CPU x(n) , n=1,…,t fn , n=1,…,t

vj , j=1,…,c

3.1.1 突觸權重更新單元

突觸權重更新 (SWU) 單元主要是基於公式(6) 來設計,雖然直接採用公式(6) 來實作是可行的,但這將會造成大量硬體資源的消耗 [13]。一個可以降低硬體資 源消耗的辦法為將公式(6) 改寫如下:

𝑤𝑗 𝑖 𝑛 + 1 𝑤𝑗 𝑖 𝑛 + 𝜂𝑦𝑗 𝑛 𝑧𝑗 𝑖 𝑛 14 當

𝑧𝑗 𝑖 𝑛 𝑥𝑖 𝑛 − ∑ 𝑤𝑘 𝑖 𝑛 𝑦𝑘 𝑛 𝑗 1 … 𝑝 15

𝑗

𝑘=1

且 𝐳𝑗 𝑛 [𝑧𝑗 1 𝑛 … 𝑧𝑗 𝑚 𝑛 ]𝑇 。而根據下式 𝑧𝑗 𝑖 𝑛 可由 𝑧 𝑗−1 𝑖 𝑛 獲得,如下:

𝑧𝑗 𝑖 𝑛 𝑧 𝑗−1 𝑖 𝑛 − 𝑤𝑗 𝑖 𝑛 𝑦𝑗 𝑛 𝑗 2 … 𝑝 16 當 𝑗 1 時,根據公式(15) 與公式(16) 可得:

𝑧0 𝑖 𝑛 𝑥𝑖 𝑛 17 因此本論文實作了等價於公式(6) 的公式(14) 與公式(16),圖 3.2 描述了硬體當中 公式(14) 與公式(16) 的運作情形。如圖所述,SWU 單元一次計算一筆新的突觸 權重值,以 𝐳𝑗−1 𝑛 、 𝐲 𝑛 、 𝐰𝑗 𝑛 為輸入計算出第 𝑛 + 1 次迭代時的第 𝑗 筆權 重向量 𝐰𝑗 𝑛 + 1 ,同時 SWU 單元亦會計算出 𝐳𝑗 𝑛 供後續計算 𝐰𝑗+1 𝑛 + 1 時

使用,這樣的做法硬體資源消耗將可以有效地被降低。

第三章 棘波分類系統架構

圖 3.2 硬體實現論文公式(14) 與論文公式(16)

一個 SWU 單元的實現辦法為同時計算 𝐰𝑗 𝑛 + 1 與 𝐳𝑗 𝑛 。由於資料維度為 𝑚 ,因此必須使用 𝑚 個相同的模組來分別獨立計算,每個模組的內容如圖 3.3 所示,而 SWU 單元所需要的 area cost 將與 𝑚 呈線性成長關係。因此為了降低 area cost,每筆輸出向量 𝐰𝑗 𝑛 + 1 與 𝐳𝑗 𝑛 將被切割成 𝑏 個區塊,每個區塊中含有 𝑞 個元素。SWU 單元一次僅計算一個區塊的 𝐰𝑗 𝑛 + 1 與 𝐳𝑗 𝑛 。因此,經過 𝑏 個 循環後將可獲得完整的 𝐰𝑗 n + 1 與 𝐳𝑗 𝑛 。

圖 3.3 SWU 單元中每個模組其內部架構 SWU

zj-1(n) Reg.

yj(n)

wj(n) wj(n+1)

(The initial value of Reg. is x(n).)

zj(n)

×

×

+

×

wj,i(n) +

yj(n)

η

z(j-1),i(n) wj,i(n)

zj,i(n)

wj,i(n+1)

3.1.2 主成分計算單元

基於公式(3) 來設計主成分計算 (PCC) 單元架構,此架構中包含了加法器與 乘法器。因為乘法器數量將會根據向量維度 𝑚 而成長,因此當 𝑚 值較大時,直

接實作公式(3) 將會造成大量的資源消耗。為了降低 area cost,如同 SWU 單元一 般將資料切割成 𝑏 個區塊來分別計算。因此公式(3) 可以被改寫為:

𝑦𝑗 𝑛 ∑ ∑ 𝑤𝑗 𝑘−1 𝑞+𝑖 𝑛 𝑥 𝑘−1 𝑞+𝑖 𝑛 18

𝑞

𝑖=1 𝑏

𝑘=1

而實作公式(18) 只需要 𝑞 個乘法器與一個支援 𝑞 筆輸入的平行加法器與一個累 加器即可達成。

3.1.3 記憶體單元

記憶體單元由四個 Buffer 所組成:Buffer A,B,C,D,其中 Buffer A,B,C 為 shift

registers,Buffer D 為一個 two-port RAM。Buffer A 保存由主記憶體中獲得的棘波 訊號 𝐱 𝑛 ;Buffer B 存放 𝐳𝑗 𝑛 供 PCC 單元與 SWU 單元進行運算;Buffer C 存 放突觸權重值向量 𝐰𝑗 𝑛 ;最後,計算出來的特徵值向量 1𝑡 被放置於 Buffer

D 供後續 FCM 單元存取。

第三章 棘波分類系統架構

Buffer A Avalon BusFrom

To Buffer B

. . . . . .

To FCM Circuit

GHA 電路運作流程可區分為四個階段,如圖 3.5 所示,其中 PCC 於 State 3 運算,

SWU 於 State 4 運算,關於這兩項運算的詳細內容將於後續說明。

圖 3.5 GHA 電路運作流程圖

1. n <= 1

2. Buffer A ← x(1)

3. Buffer C ← initial w1(n),w2(n)

Buffer B ← Buffer A

Start to fill Buffer A with x(n+1)

1. Activate PCC Unit

2. Compute y1(n),…,yp(n) based on Buffer B and Buffer C

1. Activate SWU Unit

2. Compute w1(n+1),…,wp(n+1) based on Buffer B and Buffer C

Stop

n <= n+1 Initialization

State 1

State 2

State 3

State 4

Has Buffer A filled ? Stop GHA

training ?

No

No

Yes Yes

第三章 棘波分類系統架構

假定輸入向量 𝐱 𝑛 已存放於 Buffer B 當中,目前突觸權重向量 𝐰1 𝑛 𝐰2 𝑛 被放置於 Buffer C 中,根據 𝐱 𝑛 、 𝐰1 𝑛 、 𝐰2 𝑛 啟動 PCC 單元計算其輸出向 量 𝑦1 𝑛 𝑦2 𝑛 。圖 3.6 可看出由 Buffer B、Buffer C 所獲得的資料與 PCC 單元進

行運算後,該資料流會旋轉放置於 Buffer 尾端供後續 SWU 單元進行運算。圖 3.6 說明了 PCC 單元計算 𝑦1 𝑛 𝑦2 𝑛 時的運作流程,計算 𝑦𝑗 𝑛 被分為兩階段進行:

第一階段求 ∑32𝑖=1𝑤𝑗 𝑖 𝑛 𝑥𝑖 𝑛 ,第二階段計算出 ∑64𝑖=33𝑤𝑗 𝑖 𝑛 𝑥𝑖 𝑛 ,並將結果與 前一階段的輸出結果進行累加計算求得 𝑦𝑗 𝑛 ,這兩階段皆共享相同的一塊電路。

從圖 3.6 可看出 Buffer B 與 Buffer C 中的資料在進行 PCC 計算時資料流會旋轉放 回至 Buffer B 與 Buffer C 尾端。

(a) (b)

第三章 棘波分類系統架構

完成 PCC 運算後,SWU 單元將會於 State 4 被啟動。圖 3.7 說明了 SWU 單 元的運作流程,使用 𝐱 𝑛 𝑦𝑗 𝑛 與 𝐰𝑗 𝑛 𝑗 1 2 ,SWU 單元計算出新的突觸權 重向量 𝐰𝑗 𝑛 + 1 𝑗 1 2 ,並放置於 Buffer C 尾端供後續訓練過程使用。如同計 算 𝑦𝑗 𝑛 一般,計算 𝐰𝑗 𝑛 + 1 一樣被分成兩個階段來進行。第一個階段計算前半 部之 𝐰𝑗 𝑛 + 1 𝑖. 𝑒. 𝑤𝑗 1 𝑛 + 1 … 𝑤𝑗 32 𝑛 + 1 ,第二個階段則計算後半部內容,

兩個階段亦同樣使用相同一塊計算電路。除此之外,計算 𝐰1 𝑛 + 1 時所獲得的 𝐳1 𝑛 被放置於 Buffer B 尾端,如同圖 3.7 (c)與(d)所述,上一步驟所計算出來的 𝐳1 𝑛 將供後續計算 𝐰2 𝑛 + 1 時使用。

GHA 單元分為兩個運作模式:訓練模式、特徵擷取模式。訓練模式會依據輸 入的來源棘波訊號經由迭代計算後調整突觸權重值,而特徵擷取模式會計算出來 源棘波訊號所對應的前兩筆主成分值,特徵擷取模式的運作如圖 3.6 PCC 單元之 運算流程,而計算出來的特徵向量會被存放於 Buffer D 當中。

(a) (b)

第三章 棘波分類系統架構

相關文件