第三章 棘波分類系統架構
3.2 Spike Buffer 單元
在 Spike Buffer 單元中,其有著與通道數量對等之記憶體單元,每一通道皆 有著專屬的記憶體單元,當 NEO 偵測到棘波時會將 Hit Event 訊號設為 1,並將
Channel Number 輸入 Decoder 後之結果做邏輯 AND,用此方法來控制哪一個通 道之專屬記憶體要來接收其被偵測到之棘波資料。而當 Global Controller 要將資 料送至 GHA 做運算時,則會透過多工器來將所指定之記憶體資料讀出,送至 Spike From NEO
M u x
Spike To GHA
From Global Controller
21
圖 3.5 Spike Buffer 中 Memory Unit 之電路架構圖 Reg Reg Reg ∙ ∙∙ Reg
Spike From NEO
Memory Unit
Number of spike Dimensions
To Mux
x
23
GHA 電路運作流程可區分為四個階段,如圖 3.7 所示,其中 PCC 於 State 2 運算,
SWU 於 State 3 運算,關於這兩項運算的詳細內容將於後續說明。
圖 3.7 GHA 電路運作流程圖
假定輸入向量 𝐱(𝑛) 已存放於 Spike Buffer 當中,目前突觸權重向量
𝐰1(𝑛), 𝐰2(𝑛) 被放置於 Buffer C 中,根據 𝐱(𝑛) 、 𝐰1(𝑛) 、 𝐰2(𝑛) 啟動 PCC 單 元計算其輸出向量 𝑦1(𝑛), 𝑦2(𝑛) 。圖 3.8 可看出由 Buffer B、Buffer C 所獲得的資
料與 PCC 單元進行運算後,該資料流會旋轉放置於 Buffer 尾端供後續 SWU 單 元進行運算。圖 3.8 說明了 PCC 單元計算 𝑦1(𝑛), 𝑦2(𝑛) 時的運作流程,計算 𝑦𝑗(𝑛) 被分為兩階段進行:第一階段求 ∑32𝑖=1𝑤𝑗,𝑖(𝑛)𝑥𝑖(𝑛) ,第二階段計算出 ∑64𝑖=33𝑤𝑗,𝑖(𝑛)𝑥𝑖(𝑛) ,並將結果與前一階段的輸出結果進行累加計算求得 𝑦𝑗(𝑛) , 這兩階段皆共享相同的一塊電路。從圖 3.8 可看出 Buffer B 與 Buffer C 中的資料 在進行 PCC 計算時資料流會旋轉放回至 Buffer B 與 Buffer C 尾端。
25
PCC Unit Reg.1
Reg.2
PCC Unit Reg.1
Reg.2
PCC Unit Reg.1
Reg.2
PCC Unit Reg.1
Reg.2
完成 PCC 運算後,SWU 單元將會於 State 3 被啟動。圖 3.9 說明了 SWU 單 元的運作流程,使用 𝐱(𝑛), 𝑦𝑗(𝑛) 與 𝐰𝑗(𝑛) , 𝑗 = 1,2 ,SWU 單元計算出新的突觸 權重向量 𝐰𝑗(𝑛 + 1) , 𝑗 = 1,2 ,並放置於 Buffer C 尾端供後續訓練過程使用。如 同計算 𝑦𝑗(𝑛) 一般,計算 𝐰𝑗(𝑛 + 1) 一樣被分成兩個階段來進行。第一個階段計 算前半部之 𝐰𝑗(𝑛 + 1) (𝑖. 𝑒. , 𝑤𝑗,1(𝑛 + 1), … , 𝑤𝑗,32(𝑛 + 1)),第二個階段則計算後 半部內容,兩個階段亦同樣使用相同一塊計算電路。除此之外,計算 𝐰1(𝑛 + 1) 時所獲得的 𝐳1(𝑛) 被放置於 Buffer B 尾端,如同圖 3.9 (c)與(d)所述,上一步驟所 計算出來的 𝐳1(𝑛) 將供後續計算 𝐰2(𝑛 + 1) 時使用。
27
3.4 Global Controller 單元
Global Controller 之運作流程,其主要分成兩個部分。第一部分控制 NEO 單 元來進行棘波偵測,第二部分則為控制 GHA 單元進行特徵擷取。圖 3.10 說明了
NEO 之運作流程,其會持續檢查 NEO 單元是否有偵測到棘波,若有則將偵測 到的棘波送至 Spike Buffer 中依據 channel number 所對應之記憶體單元儲存;若 無則 Spike Buffer 維持原本的資料不進行更新的動作。圖 3.11 則說明了 Global
Controller 如何調節 GHA 單元之運作時機。Global Controller 於調節 GHA 單元 時,其有 3 種狀況,第一種為 GHA 正在運算,若為此狀態,則不做任何動作使 其繼續運算。第二種為 GHA 已經運算完畢,需要將其狀態改為閒置。第三種為 處於閒置狀態,則會依據 channel number 由小到大搜尋 Spike Buffer,並將搜尋 到的第一筆棘波資料送至 GHA 進行運算。
圖 3.10 Global Controller 之 NEO 部分運作流程圖
29
圖 3.11 Global Controller 之 GHA 部分運作流程圖
3.5 Clock Gating 技術於電路中之實作
31
第四章 實驗數據與效能分析
本章節將呈現本論文所提出的棘波分類系統硬體架構之正確性、面積、功 率消耗與比較,以及實驗環境的介紹。
4.1 開發平台與實驗環境介紹
本論文所提出的棘波分類系統硬體架構是在 SYNOPSYS 公司的 Design
Compiler 下搭配 Verilog 硬體描述語言進行設計與開發。Design Compiler 是一套 專門用於數位電路合成之軟體,透過 Design Compiler 可以將事先設計好之
RTL-Level Verilog Code 或是 VHDL Code 轉換成 Gate-RTL-Level 的 Netlist 檔案。其有著 快速編譯、擁有多項合成電路時之最佳化策略以及簡易使用的圖型化操作介面 等諸多優點。
圖 4.1 Design Compiler 圖型化操作介面
Design Compiler 亦擁有多項工具可以降低使用者在設計數位電路時的負 擔,表 4.1 為其所包含之工具列表以及相關簡介。而 DC Ultra 則為本論文最常 使用之工具,其功能為對電路進行時序上的約束、所占面積以及功率消耗之最 佳化。
DC Explorer
Early RTL exploration to accelerate synthesis and place and route.
DC Ultra
Concurrent Timing, Area, Power and Test Optimization.
Design Compiler Graphical
Produces a better starting point for faster physical implementation.
Power Compiler
Provides complete solution for power synthesis & optimization.
Test Automation
Comprehensive test solution for SoC designs.
DesignWare IP
Reduce Risk and Speed Time-to-Market with High Quality IP.
Formality & Formality Ultra
Comprehensive, fast, intuitive equivalence checking.
Synphony C Compiler
High-level synthesis to accelerate design of image processing IP.
表 4.1 Design Compile 所包含之相關工具介紹
33
本論文使用 SYNOPSYS 公司的 PrimeTime 來進行功率消耗之量測。雖然
Design Compiler 已經包含 Power Compiler,可於電路合成後顯示功率消耗,但由 於 Power Compiler 主要功能為進行功率消耗之最佳化,在功率消耗分析這部分 過於陽春,只能藉由 RTL Design 顯示粗估之平均功率消耗,而 PrimeTime 則可 以使用 VCD (Value Change Dump)檔案來進行精確的功率消耗分析。圖 4.2 為將 數位電路設計經由 Design Compiler 編譯後再使用 ModelSim 進行時序模擬以及 產生 VCD File 最後再交給 PrimeTime 進行功率消耗分析之過程。
圖 4.2 功率消耗分析流程圖
圖 4.3 電路面積分析流程圖
實驗環境
Technology:
TSMC 90nm CMOS for general-purpose applications with a 1.0V core design and with 3.3V I/O.
Software:
SYNOPSYS Design Compiler H-2013.03-SP5 Version.
SYNOPSYS PrimeTime H-2013.06-SP3 Version.
Mentor ModelSim SE-64 10.2 , Revision 2013,02.
35
4.2 實驗數據呈現與討論
本論文所採用之棘波訊號為由 [21] 所開發用來產生神經元訊號的模擬器作 為測試資料來源,該模擬器提供了大量的參數以用來模擬不同的棘波活動情形,
在實驗中,棘波的採樣頻率為 1 秒 24000 採樣點/秒,而每個棘波訊號長度為 2.67 毫秒,這也代表著每個棘波訊號擁有 64 個取樣點。在本論文所實作的多通道棘波 分類系統中,最多可使用之通道數量(C)取決於棘波採樣頻率、GHA 於不同
Module (M)數量時計算一個突觸權重值所需要之時間(P)以及變數 Q,其中 Q 為相 同棘波訊號內棘波之間的最短間隔。
表 4.2 表示本論文針對不同的 C 和 M 來進行硬體電路之實現以及 Area Cost 的量測,可以觀察到當 M 和 C 增加時,所需要的硬體資源分別成線性成長,然而 在固定 M 增加 C 時,所成長的硬體資源卻會比固定 C 增加 M 來的多。由於在 硬體實作時,若要增加所能支援之通道數量,則必須使用更多的暫存器以及記憶 體單元(如圖 3.2、圖 3.4 以及圖 3.6 所示),其所需要之資源則比為了加快運算度 而增加 GHA 之 Module 時(如圖 3.6 所示)的硬體資源還要多出許多。圖 4.4 與圖
4.5 說明了當 GHA 單元由 M=8 C=8 增加通道數量到 M=8 C=16 時,暫存器在 GHA 單元中所佔用的硬體資源使用比例將會有所提升。
87 10
2 1
2 4 8 16 32
2 241904 390649 689482 1287690 2483062 4 282491 431283 731245 1331207 2526575 8 363625 513507 813617 1413502 2608955 16 537693 687519 987612 1587404 2783353
32 885829 1035578 1335712 1935539 3131483 表 4.2 於不同的 C 以及 M 時之硬體電路 Area Cost (μ𝑚2)
圖 4.4 M=8 C=8 時 GHA 單元中各單元所需之硬體資源比例圖
78 16
4 2
Register SWU Unit PCC Unit Other
37
圖 4.5 M=8 C=16 時 GHA 單元中各單元所需之硬體資源比例圖
假設 NEO 電路以及 GHA 電路均在 clk 的時脈下運作,並讓𝐿1為 clk 之週期,
我們稱之為工作週期,同時讓 L 代表採樣週期,亦即 L 為採樣速度(24000
Samples/sec)之倒數,接下來將討論棘波分類系統之通道數量與上述相關變數之關 係。本論文所提出之棘波分類系統中,其流程為將神經元訊號先通過 NEO 單元 做棘波偵測,再使用 GHA 單元進行特徵擷取。在多通道的架構下,NEO 單元將 利用同通道中,兩個採樣點之間的時間,先抓取本通道的採樣點,再利用剩餘的 時間抓取其他通道的採樣點,藉此來增加 NEO 單元的硬體利用率。NEO 單元為 一個時脈週期抓取一個採樣點,因此在𝐿1的工作週期下,其最多能抓取𝐿𝐿
1個不同
通道之採樣點。
在 GHA 單元中,其輸入之資料為 NEO 單元偵測到之棘波,由於 NEO 單每
𝐿
𝐿1個時脈週期抓取一個採樣點,因此最快將在𝑄 × (𝐿𝐿
1)個時脈週期後,偵測到棘波,
並將其傳送至 GHA 單元進行特徵擷取之計算。表 4.3 表示了實際電路運作時,使 用不同 GHA Module (M)數量,其所相對應之計算一個突觸權重值所需要之時間。
M 1 2 4 8 16 32
P 264 136 72 40 24 16
表 4.3 GHA 於不同 M 時,其所相對應之 P
而當 GHA 單元在工作週期為𝐿1時,其訓練一個通道之突觸權重值所需要的
39
為 2 的幂次方,因此本論文使用了 M=8 來實作架構一之硬體電路,並且使用了
16 個通道作為神經元之訊號輸入。
M 1 2 4 8 16 32
C 3 6 13 20 20 20
表 4.4 本論文之架構一於不同 M 時,其所相對應之 C
而本論文亦提出另一架構提供給需要更高的通道數量時使用,其與上個架 構不同之處為其有著更低的工作週期,使得此架構可以支援更多的通道數量,
在這裡我們所使用的工作週期為 1μs,而使用公式(9)即可以得到表 4.5,其說明 了此架構於不同 M 時,其所相對應之 C。而因為其硬體特性,所能支援輸入之 多工數量為 2 的幂次方,因此我們選擇了 M=8 來實作架構二之硬體電路,並且 使用了 32 個通道作為神經元之訊號輸入。
M 1 2 4 8 16 32
C 6 13 25 41 41 41
表 4.5 本論文之架構二於不同 M 時,其所相對應之 C
architecture 1 with clock gating
architecture 2 with clock gating Channels 16 32 Power per
channel
44.2μW 53.5μW
Area per channel
0.088 m𝑚2 0.081 m𝑚2
表 4.6 架構一與架構二之晶片面積與功率消耗之比較
表 4.6 說明了本論文所提出之架構一與架構二的晶片面積與功率消耗其實 際測量的比較結果,透過此表格可以發現,架構二雖然有著比架構一較高的通 道數量而在吞吐量這方便有著較佳的表現,但卻會在每通道之功率消耗這方面 有著較差的結果,因此本論文題出了兩個不同架構的棘波分類系統,使得我們 能有彈性的在不同的情況時選擇不同的棘波分類架構來因應需要高吞吐量或是 低功率消耗的情況。
41
[4] [5] [6] [7]
architecture 1 without clock gating
architecture 1 with 論文之系統每通道功率消耗為 50.9μW,在使用了 Clock Gating 後,其可以降低 至 44.2μW。因為本論文使用了較低之製程技術,電晶體的 Threshold Voltage 較 低,使得靜態功率較已往舊的製程為高。然而儘管在本論文中大約有 60%為靜 態功率消耗,但使用了 Clock Gating 後,仍能有效地降低動態功率,進而降低整 體大約 14%之功率消耗。
第五章 結論
近年來關於大腦活動情形的研究越來越熱門,目前也提出了許多針對腦波 訊號處理的相關研究。本論文於 ASIC 中實現了一棘波分類系統,並且使用了多 通道棘波輸入,因此就算於低時脈運作下本系統仍然能擁有著卓越的輸出產 能。同時,本系統在合理的資源消耗下,對於功率消耗、運算時間以及在通道 數量上的設計取得了一個較佳的平衡點
根據前一章比較的結果,可以知道本論文所提出的架構不論在晶片面積以 及功率消耗上與現有提出的設計 [4,5,6,7] 相較後皆都有著不錯的效能表現。以
ASIC 來設計雖然開發時間較以 FPGA 設計為長,但其可以比使用 FPGA 設計來
ASIC 來設計雖然開發時間較以 FPGA 設計為長,但其可以比使用 FPGA 設計來