• 沒有找到結果。

多通道棘波分類系統之低功率ASIC電路設計

N/A
N/A
Protected

Academic year: 2021

Share "多通道棘波分類系統之低功率ASIC電路設計"

Copied!
51
0
0

加載中.... (立即查看全文)

全文

(1)國立臺灣師範大學 資訊工程研究所碩士論文. 指導教授: 黃文吉 博士. 多通道棘波分類系統之低功率 ASIC 電路設計 Efficient ASIC Architecture for Low-Power Multi-Channel Spike Sorting System. 研究生:. 柯奇恩. 撰. 中華民國 一百零三 年 六 月.

(2) 中文摘要. 中文摘要 本論文針對目前現有的棘波分類系統設計架構,並使用 ASIC 電路設計方式 來實現此架構。本論文採用 Nonlinear Energy Operator (NEO) 來偵測棘波,並搭 配 Generalized Hebbian Algorithm (GHA)演算法將偵測到的棘波進行特徵擷取。 為了減少硬體資源的消耗,GHA 架構中在計算調整不同組權重值時皆共享相同 一塊計算電路。因此,本論文所提出的架構同時擁有較低的晶片面積,以即使用 了台積電 90 奈米製程和對於功率消耗優化之技術,使得在功率消耗的這部分也 有良好的表現。最後由於使用了多通道的訊號輸入,本論文在棘波分類系統的吞 吐量能有大幅的提升。. 關鍵字:棘波分類、棘波偵測、特徵擷取、ASIC、NEO、GHA i.

(3) 誌謝. 誌謝 首先,要非常感謝我的指導教授 黃文吉 教授,在碩士班求學期間對我不 辭辛勞地指導,讓我有機會去學習研究的方法以及待人處世的態度,當我遇到 困難時與我討論並引導我通往正確方向,使得我在這段學習的時間獲得了許多 的成長與寶貴的經驗,在此獻上最誠摯的謝意。同時也感謝國立台北科技大學 資訊工程學系楊士萱 教授與尤信程 副教授撥冗來參加我的碩士論文口試,並 給予論文上的評閱與建議。. 接著,很榮幸能夠來到國立臺灣師範大學資訊工程研究所就讀,並在多媒 體通訊暨系統晶片實驗室這個大家庭和大家一起學習成長。我要感謝已經畢業 的學長們以及人都很好的學弟們的幫忙,讓我在學業這條路上都很順利。. 最後,更要感謝家人與所有關心我的朋友,有了你們的支持、關懷與鼓 勵,讓我有勇氣去面對各種的挫折與壓力,並順利地完成學業。謹將此論文成 果獻給所有關心我的人,希望大家與我分享這份喜悅與榮耀。. ii.

(4) 目錄. 目錄 第一章 緒論............................................................................................................................... 1 1.1. 研究背景與動機目的 ............................................................................................... 1. 1.2. 全文架構 ................................................................................................................... 5. 第二章 棘波分類之基礎介紹與演算法則 ............................................................................... 6 2.1 棘波分類的介紹............................................................................................................... 6 2.2 棘波偵測演算法則.......................................................................................................... 8 2.3 特徵擷取演算法則.......................................................................................................... 9 2.4 多通道棘波輸入............................................................................................................ 11 第三章 棘波分類系統架構 ..................................................................................................... 17 3.1 NEO 單元 ....................................................................................................................... 18 3.2 Spike Buffer 單元 ........................................................................................................... 20 3.3 GHA 單元 ....................................................................................................................... 22 3.4 Global Controller 單元 .................................................................................................. 28 3.5 Clock Gating 技術於電路中之實作 .............................................................................. 30 第四章 實驗數據與效能分析 ................................................................................................. 31 4.1 開發平台與實驗環境介紹 ............................................................................................ 31 4.2 實驗數據呈現與討論 .................................................................................................... 35 第五章 結論............................................................................................................................. 42 參考文獻....................................................................................................................................43. iii.

(5) 附圖目錄. 附圖目錄 圖 2.1 棘波分類流程圖……………………………………………………………… 6 圖 2.2 本論文所使用之棘波分類流程圖……………………………………….…....7 圖 2.3 使用單通道棘波輸入………………………………………………………...11 圖 2.4 單通道棘波輸入時序示意圖…………………………………………………12 圖 2.5 使用多通道棘波輸入…………………………………………………………12 圖 2.6 多通道棘波輸入時序示意圖…………………………………………………13 圖 2.7 Clock Gating 運用於 D-Type flip-flop 之關係圖.…………………………....15 圖 2.8 Clock Gating 之時序運作圖…………………………………………………..16 圖 3.1 本論文提出之棘波分類硬體系統架構概觀圖……………………………...17 圖 3.2 NEO 電路架構 (𝑚 = 64, c = 16)……………………………………………18 圖 3.3 NEO 電路運作流程…………………………………………………………...19 圖 3.4 Spike Buffer 單元架構圖……………………………………………………...20 圖 3.5 Spike Buffer 中 Memory Unit 之電路架構圖……………………..………….21 圖 3.6 GHA 電路架構 (𝑚 = 64, 𝑝 = 2, 𝑏 = 8, 𝑞 = 8, c = 16)……………………..22 圖 3.7 GHA 電路運作流程圖………………………………………………………...23 圖 3.8 GHA 電路中 Stage 3 PCC 單元運作流程……………………………………25 圖 3.9 GHA 電路中 Stage 4 SWU 單元運作流程…………………………………...27 圖 3.10 Global Controller 之 NEO 部分運作流程圖………………………………...30 圖 3.11 Global Controller 之 GHA 部分運作流程圖………………………………..29 圖 3.12 Clock Gating 實現方法電路架構圖………………………………………...30 圖 4.1 Design Compiler 圖型化操作介面…………………………………………..31 圖 4.2 功率消耗分析流程圖......................................................................................33 圖 4.3 電路面積分析流程圖.......................................................................................34. iv.

(6) 附表目錄. 附表目錄 表 4.1 Design Compile 所包含之相關工具介紹.....................................................31 表 4.2 於不同的 C 以及 M 時之硬體電路 Area Cost (μ𝑚2 )......................................35 表 4.3 GHA 於不同 M 時,其所相對應之 P.............................................................36 表 4.4 本論文之架構一於不同 M 時,其所相對應之 C...........................................39 表 4.5 本論文之架構二於不同 M 時,其所相對應之 C..........................................39 表 4.6 架構一與架構二之晶片面積與功率消耗之比較…………………………...40 表 4.7 本論文實作硬體電路之相關規格與其他文獻比較表格................................41. v.

(7) 第一章 緒論. 第一章 緒論 本章節主要探討本論文的研究背景與動機、研究目的與方法,並簡單說明 各章節的主要內容。. 1.1. 研究背景與動機目的 棘波(Spike)又稱作動作電位(Action Potential),為當細胞膜內鈉鉀離子產生. 變化時所造成的電位差,而棘波序列(Spike train)則是由神經元細胞在連續時間 上所發出的動作電位訊號。通常會透過在人體內植入的微電極探針來進行訊號 採樣,採樣到的訊號為探針周圍神經元細胞所發出的訊號總和,而棘波分類的 目的就是將這些來自不同神經元發出的混合訊號加以分類、使用。棘波分類可 應用在腦機介面(Brain Machine Interface,BMI)[1]或是提供給身體四肢癱瘓之患 者行動的能力,若肢體障礙人士想藉由腦部控制人工義肢來運動,則此系統必 須具備即時且快速計算棘波分類結果的能力,因為一般正常人操縱四肢軀幹神 經元間的訊號傳遞大約都在數百個毫秒以內[2]。此外,晶片大小、功率消耗以 及散熱都必須在設計的考量範圍。. 一個普遍的硬體設計做法是將電路設計於現場可程式化邏輯閘陣列 (Field Programmable Gate Array , FPGA) [3],其可經由簡單的合成繞線佈局,快速重複 地燒錄至 FPGA 晶片上進行驗證,使得可以大幅降低 NRE (Non-Recurring 1.

(8) 第一章 緒論. Engineering) cost 進而縮短研究開發時間。然而棘波分類系統之晶片需要植入人 體,對於晶片的面積以及功率消耗有著嚴苛的要求,若使用特殊應用積體電路 (Application Specific Intergrated Circuit, ASIC)來進行設計,則可以得到比使用 FPGA 設計還要更好的表現。 以 ASIC 來設計雖然開發時間較以 FPGA 設計為 長,但其有著比使用 FPGA 設計更小的體積、重量更輕、功耗更低、性能較 高、成本較低等等諸多優點,用於有需要植入人體用途之晶片為在適當不過。. 目前也有許多以 ASIC 為基礎的硬體架構提出,如架構[4,5,6,7]等。其中架 構[4]使用高低峰值來進行棘波偵測。[5]使用(Nonlinear Energy Operator , NEO)法 則進行棘波偵測,並加上 Maximum-minimum 法則來進行特徵擷取。[6]實作了 一類比數位之混合系統來進行棘波分類。[7]則使用了傳統主成分分析法則 (Principal Component Analysis , PCA)。這些架構普遍有著使用了過舊的製程,導 致晶片面積和功率消耗表現不佳[4,5],或著是通道數量不足[7],導致運算吞吐 量過低等等缺陷。本論文使用了台積電 90nm 製程,其有著低靜態功率消耗的特 性,並且在合成後之晶片面積也有著良好的表現。. 本論文所提出之棘波分類架構包括了棘波偵測與特徵擷取這兩部分,此架 構可以即時的方式對輸入的棘波序列進行棘波之偵測,並對偵測到的棘波進行 特徵擷取、計算主成分等等。棘波偵測的部分本論文採用 Nonlinear Energy 2.

(9) 第一章 緒論. Operator , NEO)[8]來進行偵測,其有著高精確率與低資源消耗等特性,為近年來 棘波偵測之主流。接著會將偵測到的棘波經由 Generalized Hebbian Algorithm, GHA)來進行特徵擷取,與傳統主成分分析法則 (Principal Component Analysis , PCA)相比,GHA 有著較高的效能是因為避免了需要計算共變異數矩陣 (covariance matrix) 的複雜過程。在特徵擷取這部分本論文為將[12]所提出之以 FPGA 為基礎的棘波分類硬體架構修改為以 ASIC 為基礎的即時棘波分類硬體架 構之設計,進而在晶片面積以及功率消耗上獲得更好的表現。. 目前已有提出許多針對棘波偵測應用的 NEO 架構,其最早被提出於[8], NEO 有著簡單實作同時又能維持著高精確度的表現,因此被廣泛運用於棘波偵 測[9,10,11]。然而上述之架構皆為單通道棘波輸入,在實際應用時少則 3、4 根 微電極探針多則 7,8 根探針之情況實在不敷使用,本論文提出使用 NEO 法則 並且支援多通道棘波數入,對於實際情況上有著顯著的幫助。. 此外除了 NEO 架構,亦有許多針對紋理圖辨認與臉部辨識應用的 GHA 架 構 [12,13,14]。雖然有些架構可能可以直接被應用在棘波分類領域當中,但部分 架構因為高 area cost 或較長的 latency,使得其並不適用於棘波分類當中。架構 [15] 於 GHA 訓練過程中可同時計算所有輸入向量所對應的輸出結果,雖然其可 提供較高的產量輸出,但也造成該架構隨著輸入向量維度增加,area cost 將呈線 3.

(10) 第一章 緒論. 性成長。相反地,架構 [16] 提出一次只傳送一筆輸入向量。雖然該作法能讓該 架構有著較低的 area cost,但隨著輸入向量維度增加其 latency 亦將呈現線性成 長。架構 [17] 將輸入向量切成幾個較小的區塊,一次僅運算一個區塊,該架構 設計有著低 area cost 與高速計算兼具的優點。然而為了支援本論文之多通道棘 波數入,需要增加許多記憶體單元的硬體使用,而造成了高 area cost 的結果。. 因此,若要將 NEO 與 GHA 整合使用於多通道之設計中,勢必要想辦法降 低 area cost。本論文採用 [18] 提出的辦法,可逐步地計算權重係數,有效地降 低了 area cost。此外,不同權重係數間所需的共同因子將使用同一塊電路事先運 算好,這亦能降低硬體資源的消耗,也因為這個事先運算的步驟讓後續權重係 數的計算得以加快。. 最後為了實際驗證本論文之棘波分類硬體系統架構的有效性,本論文將在 SYNOPSYS Design Compiler[19]上實作一套棘波分類系統,並使用 Mentor ModelSim 來進行 RTL-level 與 Gate-level 時序上的模擬,最後再使用 SYNOPSYS PrimeTime 來進行功率的量測。本論文亦會使用 Matlab 來進行軟體上的實做,用以確定硬體模擬結果與軟體模擬結果正確一致符合我 們的預期,經過實驗之後,實驗結果也確實證明本架構對於棘波分類有著較高 效能、較低的晶片面積以及較低的功率消耗。 4.

(11) 第一章 緒論. 1.2. 全文架構. 本篇論文共分五個章節,以下為各章節之內容概述: 【第一章】緒論 說明本論文的研究背景、動機、目的、方法以及全文架構。 【第二章】棘波分類之基礎介紹與演算法則 本章將介紹棘波分類之基本流程以及本論文所使用之相關演算法。 【第三章】系統架構 介紹本論文提出之多通道棘波分類系統,並詳細說明電路架構、工作原理以 及整個運作流程。 【第四章】實驗數據與效能比較 包括實驗環境說明、相關的實驗數據分析、硬體效能以及與其他現有演算法 架構做比較。 【第五章】結論 對於所提出之硬體架構與實驗結果進行總結。. 5.

(12) 第二章 棘波分類之基礎介紹與演算法. 第二章 棘波分類之基礎介紹與演算法則 2.1 棘波分類的介紹 傳統的棘波分類演算法主要包含了棘波偵測 (Spike Detection)、特徵擷取 (Feature Extraction) 與棘波分類 (Clustering) 三大步驟,詳見圖 2.1。棘波分類法 則會先將輸入的神經元訊號 (Neural signal) 經由棘波偵測法則來偵測神經元訊 號中各種棘波發生的位置,進而將其截取出來並做校準的動作。這些校準過後的 棘波會經由特徵擷取的步驟擷取出所有棘波的特徵值,最後再經由棘波分類的法 則根據特徵值來進行分類。 棘波分類最常碰到的問題是,一旦輸入訊號受到大量雜訊的干擾,其原本的 波形就會嚴重被破壞,使得分類效能大幅下降。棘波分類經常被用於醫學上或是 大腦研究,一般來說我們會以植入式的微電極探針或是外接裝置來進行腦波的偵 測,在偵測過程中都會受到雜訊的干擾,尤其是外接裝置受到的影響更是顯著, 所以要將棘波從大量雜訊干擾的環境中擷取出來,是所有研究棘波分類者共同面 臨的最大問題。. 1 Neural signal. 2. Spike Detection. 3. Feature Extraction. 圖 2.1 棘波分類流程圖. 6. Clustering.

(13) 第二章 棘波分類之基礎介紹與演算法. 圖 2.2 說明了本論文所提出之棘波分類架構中,棘波偵測與特徵擷取之整體 資料流動過程。一開始先將神經源訊號透過 (Nonlinear Energy Operator , NEO)法 則來進行棘波偵測,再將偵測到之棘波透過 (Generalized Hebbian Algorithm, GHA) 法則來進行特徵擷取。在章節 2.2 和 2.3 中,將詳細的介紹在本論文提出之棘波 分類系統中,所用到的棘波偵測與特徵擷取演算法則。. Neural Signal. Spike Detection (NEO). Detected Spike. Feature Extraction (GHA). 圖 2.2 本論文所使用之棘波分類流程圖. 7. Principal Component.

(14) 第二章 棘波分類之基礎介紹與演算法. 2.2 棘波偵測演算法則 如本論文於 1.1 章節中所討論,(Nonlinear Energy Operator , NEO)是一個用來進 行棘波偵測之簡單架構,其有著高精確率與低資源消耗等特性,為近年來棘波 偵測之主流。本節我們將更詳細的說明其核心動作,以及在一些會使用到之符 號加以定義。NEO 的核心動作為將由神經元採樣到之採樣點進行計算後,再與 預先所設定之閥值進行比較,若計算結果大於閥值,則此時就可以說偵測到棘 波。以下我們將定義一些符號;假設s(𝑚) 為輸入之神經元訊號中的第 m 個樣本 (sample),令 𝑇. 𝐱(𝑛) = [𝑥1 (𝑛), … , 𝑥𝑞 (𝑛)] , 𝑛 = 1, … , 𝑡. (1). 為 NEO 第 𝑛 筆輸出向量,q 為棘波向量維度,t 為輸出向量個數。在離散時間的 狀況下,energy operator (ψ)定義如下式: ψ[𝑠(𝑚)] = 𝑠 2 (𝑚) − 𝑠(𝑚 + 1) ∙ 𝑠(𝑚 − 1). (2). 當棘波出現時,常伴隨著輸入訊號會產生較大的頻率以及能量由小變大的的現 像,使用此種現像來進行棘波偵測會優於只觀察能量升冪現像或只觀察振幅, 而當能量運算子 ψ 大於 Threshold 時,則就產生偵測到棘波之事件,此時會同時 將𝑠(𝑚 − (𝑞 − 1))、𝑠(𝑚 − (𝑞 − 2))…、𝑠(𝑚 − (𝑞 − 𝑞))等 q 個採樣點作為𝐱(𝑛)輸 出,其中第 i 個位置的元素可以如下表示: 𝑥𝑖 (𝑛) = 𝑠(𝑚 − (𝑞 − 𝑖)) , 𝑖 = 1, … , 𝑞. (3). 且在進行特徵擷取時,將會以𝐱(𝑛)作為輸入資料來進行計算。 8.

(15) 第二章 棘波分類之基礎介紹與演算法. 2.3 特徵擷取演算法則 在 2.2 討論完了棘波偵測的法則後,本節我們將會討論 GHA 其核心流程,以 及對一些會使用到之符號加以定義。如本論文於 1.1 章節中所討論,Generalized Hebbian Algorithm, GHA)是一個用來進行特徵擷取之演算法則,其避免了傳統主 成分分析法則 (Principal Component Analysis , PCA) 需要計算共變異數矩陣 (covariance matrix) 的複雜過程,且因為 PCA 需要儲存所有的運算係數,大大的 增加了硬體資源的使用。本論文改用了[18] 所提出的辦法,利用逐步地迭代計算 權重係數,有效地降低硬體使用資源,使得系統的功率消耗上也有大幅度的降低。 GHA 的主要流程分為兩個階段,第一個階段為將突觸權重值和由棘波偵測單 元所偵測到之棘波做主成分的計算,第二個階段為在主成分計算完成後,利用此 主成分,以及第一階段所用到之棘波數據和舊的突觸權重值來突觸權重值的更新。 之後就不斷地重複第一階段以及第二階段,直到突觸權重值的訓練結束,最後再 使用訓練完成的突觸權重值來計算最終之主成分結果。GHA 即是以此方法來進行 上述之迭代動作。以下我們將做一些符號上的定義;𝐲(𝑛)為 GHA 主成分輸出之 向量,其可以使用下式來表示: 𝑇. 𝐲(𝑛) = [𝑦1 (𝑛), … , 𝑦𝑝 (𝑛)] , 𝑛 = 1, … , 𝑡. (4). 而 p 以及 t 分別為主成分個數、輸出向量個數。而輸出向量 𝐲(𝑛) 與輸入向量 𝐱(𝑛) 關係如下: 𝑚. 𝑦𝑗 (𝑛) = ∑ 𝑤𝑗,𝑖 (𝑛)𝑥𝑖 (𝑛). (5). 𝑖=1. 9.

(16) 第二章 棘波分類之基礎介紹與演算法. 其中 𝑤𝑗,𝑖 (𝑛) 代表第 𝑛 次迭代過程中第 𝑗 個神經元的第 𝑖 筆突觸權重值。 令 𝑇. 𝐰𝑗 (𝑛) = [𝑤𝑗,1 (𝑛), … , 𝑤𝑗,𝑚 (𝑛)] , 𝑗 = 1, … , 𝑝. (6). 為第 𝑗 筆突觸權重向量。每筆突觸權重向量 𝐰𝑗 (𝑛) 根據赫賓學習法則 (Hebbian learning rule) 進行調整,如下: 𝑗. 𝑤𝑗,𝑖 (𝑛 + 1) = 𝑤𝑗,𝑖 (𝑛) + 𝜂 [𝑦𝑗 (𝑛)𝑥𝑖 (𝑛) − 𝑦𝑗 (𝑛) ∑ 𝑤𝑘,𝑖 (𝑛)𝑦𝑘 (𝑛)]. (7). 𝑘=1. 其中 𝜂 為學習率。經過多次迭代計算調整後 𝐰𝑗 (𝑛) 將趨近於輸入向量之共變異數 矩陣的第 𝑗 筆特徵值 λ𝑗 。為了降低計算時的複雜度,公式(7) 可以改寫成公式 (8): 𝑗. 𝑤𝑗,𝑖 (𝑛 + 1) = 𝑤𝑗,𝑖 (𝑛) + 𝜂𝑦𝑗 (𝑛) [𝑥𝑖 (𝑛) − ∑ 𝑤𝑘,𝑖 (𝑛)𝑦𝑘 (𝑛)] 𝑘=1. 更多關於 GHA 細節的討論可詳見 [22,23]。. 10. (8).

(17) 第二章 棘波分類之基礎介紹與演算法. 2.4 多通道棘波輸入 在棘波分類系統中,神經元訊號之採樣頻率往往使用較低的頻率,其普遍 使用了 1 秒 24000 個採樣點為其採樣頻率。使用較低的採樣頻率有著較低的硬 體資源使用量,且在棘波偵測這部分也仍然能維持著高精確度的結果,然而由 於 GHA 電路的運算時間較採樣時間短,導致系統大部分的時間皆維持著閒置的 狀況。為了更加善用硬體資源以及增加對神經源訊號的處理能力,而有了多通 道棘波輸入的提出,多通道棘波輸入能夠使系統同時接收多隻探針所收到的神 經源訊號,並加以計算處理。 接下來我們將以舉例的方式來說明單通道棘波輸入與多通道棘波輸入的差 別;首先需要對一些會使用到的符號來做定義。如本論文 2.3 章節所說,𝐱(𝑛)為 GHA 第 n 筆輸入棘波,本章節假設𝑇ℎ 為第ℎ通道中𝐱(𝑛)與𝐱(𝑛 + 1)所相差之時 間,P 為 GHA 訓練一個突觸權重值所需要之時間。而因為𝑇ℎ 是由 NEO 單元何 時偵測到棘波來決定其值,因此並不是一個固定的時間,但由於 GHA 單元的運 算速度極快,在單通道棘波輸入的情況下(如圖 2.3 所示),𝑇ℎ 將會遠大於𝑃,而 導致 GHA 電路大部分時間皆為閒置的狀態,如圖 2.4 中表示。. channel 1. Sampling. NEO. 圖 2.3 使用單通道棘波輸 11. GHA.

(18) 第二章 棘波分類之基礎介紹與演算法. x(n). x(n+1). 𝑇1. P. idle. GHA for ch1 x(n). 圖 2.4 單通道棘波輸入時序示意圖 為了增加硬體資源的使用率,而使用了多通道棘波輸入(如圖 2.5 所示)。我 們假設通道 3 為參考通道,且通道 5、通道 8 也在時間𝑇3 之內被偵測出棘波, 由於 GHA 單元一次計算一個通道,所以此時只能計算通道 3 的資料,但在完 成通道 3 的運算後,即可將剩下的閒置時間(𝑇3 − 𝑃)拿來運算通道 5 和通道 8 的 棘波資料(如圖 2.6 所示)。本論文藉此方式來增加硬體的資源使用率。. channel 1 channel 2. ∙∙ ∙. Sampling. NEO. channel 16. 圖 2.5 使用多通道棘波輸入. 12. GHA.

(19) 第二章 棘波分類之基礎介紹與演算法. x(n). P GHA for ch3 x(n). idle. 𝑇3. x(n+1). P. P. GHA for ch5 x(n). idle. GHA for ch8 x(n). 圖 2.6 多通道棘波輸入時序示意圖. 13.

(20) 第二章 棘波分類之基礎介紹與演算法. 2.5 Clock Gating 人類控制四肢之神經元間的訊號傳遞大約都在數百個毫秒以內[3],因此棘 波分類系統必須要具備著即時且有高速運算的能力。而因為棘波分類系統為植 入人體之設計,在高速的運算下其系統所產生之廢熱 會嚴重的影響到人體之細胞,為了使系統功率消耗能夠降低,本論文使用了台 積電 90 奈米的製程技術,其在靜態漏電方面有著良好的表現,然若想再降低整 體功率消耗,則可以使用 Clock Gating 之方法來降低動態功率消耗,進而降低整 體功率消耗。 Clock Gating 常被用於同步式的電路設計中,其主要目的為降低動態功率消 耗(dynamic power dissipation)。Clock Gating 藉由增加控制單元與邏輯電路來調 整 clock 於系統中的電位高低,進而達到降低動態功率消耗之目的。若將此技術 用於 D-Type flip-flop,當沒有時脈之電位變化時,則 D-Type flip-flop 不會去檢 查其自身狀態。由於 D-Type flip-flop 檢查自身狀態會產生動態功率消耗,因此 當不檢查狀態時,即只剩下靜態功率消耗(leakge power dissipation),Clock Gating 藉此方式來降低整體電路之功率消耗。. 14.

(21) 第二章 棘波分類之基礎介紹與演算法. output. input DFF. clk. clk_gating. enable. clk. 圖 2.7 Clock Gating 運用於 D-Type flip-flop 之關係圖. 圖 2.7、圖 2.8 中有 clk、enable、clk_gating 等訊號,clk 為系統之時脈,enable 為由控制單元所發出之控制訊號,clk_gating 則是經過處理之後給 D-Type flipflop 所用之時脈訊號。. 圖 2.8 表示了 Clock Gating 之運作時序圖: (1) 當 clk 訊號正緣觸發時,因為 enable 訊號維持於低電位,所以 clk_gating 訊 號也維持於低電位。 (2) 當 clk 訊號正緣觸發時,因為 enable 訊號維持於高電位,此時 clk_gating 訊 號即隨著 clk 訊號做高低電位的變化。 (3) 當 clk 訊號正緣觸發時,因為此時 enable 訊號已經切換為低電位,所以 clk_gating 訊號固定於低電位,不隨著 clk 訊號電位的高低起伏變換而有切換 的動作。. 15.

(22) 第二章 棘波分類之基礎介紹與演算法. (1). (2). (3). clk. enable. clk_gating. 圖 2.8 Clock Gating 之時序運作圖. 16.

(23) 第三章 棘波分類系統架構. 第三章 棘波分類系統架構 本章會詳細介紹本論文所提出之多通道棘波分類硬體系統,將詳細介紹系 統架構、工作原理以及各部件詳細介紹。圖 3.1 說明了本論文針對棘波分類所提 出的架構,本架構中包含了四大單元,分別為 NEO 單元、GHA 單元、 Spike Buffer 單元以及 Global Controller 單元。NEO 單元是用來對輸入之神經元 訊號進行棘波偵測。Spike Buffe 單元內有 c 組記憶體單元,c 為通道數量, Channel Number 為 1 至 c,當 NEO 單元有偵測到棘波時,即會依照所偵測到的 Channel Numbe 將資料送到所對應的 Spike Buffe 單元中進行儲存。Global Controller 單元則會檢查目前 Spike Buffe 單元內所有通道的資料狀態,若有準備 好的棘波資料,且 GHA 單元無在運作,則就會將 Spike Buffe 單元中已經準好 的資料送至 GHA 單元中進行特徵擷取,計算完成之後再將主成分輸出。以上四 大單元之詳細運作流程以及實作之硬體架構請參考本論文第 3.1、3.2、3.3 以及 3.4 章節。. Global Controller. NEO. Spike Buffer. GHA. 圖 3.1 本論文提出之棘波分類硬體系統架構概觀圖 17.

(24) 第三章 棘波分類系統架構. 3.1 NEO 單元 在棘波偵測的硬體實作中,輸入的資料為神經元訊號,採樣頻率為 1 秒 24000 個採樣點,每一個時脈週期由多工器選擇一個通道來源之資料,循序輸入 一個採樣點進行偵測,其輸出為 Hit Event 訊號以及s1 (m)至sℎ (m-63),sℎ (m)為第 h 個通道輸入之神經元訊號中的第 m 個樣本(sample),ℎ = 1, … , 𝑐,c 為通道數 量。圖 3.2 說明了 NEO 電路在 16 個通道下(c=16)且棘波維度為 64 個取樣點 (m=64)時的電路架構。 Neural signal from each channels NEO Buffer. Reg. Reg. Reg. Reg. Reg. Reg. Reg. ∙∙ ∙. ∙∙ ∙. ∙∙ ∙. ∙∙ ∙. Reg. Reg. Reg. Reg. ∙ ∙∙. Reg. Number of channels. 𝑠ℎ (𝑚 + 1) 𝑠ℎ (𝑚) 𝑠ℎ (𝑚 − 1) 𝑠ℎ (𝑚 − 63) To Spike Buffer A. B. C NEO Detector Unit. B. Thre shold Reg. x B -. <. Hit Event. A x. Channel Number. C. 圖 3.2 NEO 電路架構 (𝑚 = 64, c = 16) 18.

(25) 第三章 棘波分類系統架構. 圖 3.2 中說明了 NEO 單元的組成,其由 NEO Buffer 單元和 NEO Detector 單 元組成。NEO Buffer 橫軸暫存器數量為棘波維度加 1,縱軸暫存器數量為通道數 量,其為典型之蛇狀圖設計(snake path)。蛇狀圖常用於影像處理,特形為循序輸 入平行輸出(serial-in parallel out,SIPO),所以當各個不同來源之神經元訊號以循 序輸入時,NEO Buffer 單元即會平行輸出同通道之棘波訊號給 Spike Buffer, Spike Buffer 是否要更新記憶體單元之資料則由 NEO Detector 所發出之 Hit Event 控制。令 𝜓[𝑠ℎ (𝑚)] = 𝑠ℎ 2 (𝑚) − 𝑠ℎ (𝑚 + 1) ∙ 𝑠ℎ (𝑚 − 1). (9). Hit Event 之計算為判斷𝜓[𝑠ℎ (𝑚)]是否大於預先所設定之閥值(Thresold),若 計算結果大於閥值時,則就觸發 Hit Event,使得 Spike Buffer 會依據目前的 channel number 來更新相對應通道的記憶體單元之資料。. 圖 3.3 NEO 電路運作流程 19.

(26) 第三章 棘波分類系統架構. 3.2 Spike Buffer 單元 在 Spike Buffer 單元中,其有著與通道數量對等之記憶體單元,每一通道皆 有著專屬的記憶體單元,當 NEO 偵測到棘波時會將 Hit Event 訊號設為 1,並將 Channel Number 輸入 Decoder 後之結果做邏輯 AND,用此方法來控制哪一個通 道之專屬記憶體要來接收其被偵測到之棘波資料。而當 Global Controller 要將資 料送至 GHA 做運算時,則會透過多工器來將所指定之記憶體資料讀出,送至 GHA 做特徵擷取之計算。圖 3.4 說明了 Spike Buffer 之電路架構,而圖 3.5 則說 明了每個記憶體單元之更細部之架構。. Spike From NEO. Memory unit for CH1 en. Mux. Spike To GHA. ∙∙∙. Memory unit for CH16 en. ∙ ∙∙. From Global Controller. Hit Event Channel Number. Decoder. 圖 3.4 Spike Buffer 單元架構圖. 20.

(27) 第三章 棘波分類系統架構. Memory Unit. Spike From NEO Reg. Reg. ∙ ∙∙. Reg. Reg To Mux. Number of spike Dimensions. 圖 3.5 Spike Buffer 中 Memory Unit 之電路架構圖. 21.

(28) 第三章 棘波分類系統架構. 3.3 GHA 單元 典型棘波分類實作中 [20,21],每個棘波被取樣為 64 個取樣點,並由這 64 個 取樣點中擷取出 2 筆特徵值以滿足棘波特徵擷取的需求 [1]。為了符合一般棘波 分類的需求,定 GHA 單元維度 𝑚 = 64 ,主成分個數 𝑝 = 2 。GHA 單元中每筆 訓練向量被分成八個區塊,每個區塊維度為 8,通道數量為 16。圖 3.6 說明了 GHA 電路當 𝑚 = 64, 𝑝 = 2, 𝑏 = 8, q = 8 與 𝑐 = 16 時的電路架構. Buffer B ∙∙∙. ∙∙ ∙. ∙∙ ∙. ∙∙ ∙. ∙∙∙. Buffer C Channel 1. ∙∙∙. ∙∙ ∙. ∙∙ ∙. ∙∙ ∙. ∙∙∙. Mux. ∙ ∙ ∙ Channel 16. ∙∙∙. ∙∙ ∙. ∙∙ ∙. ∙∙ ∙. ∙∙∙. PCC Unit. SWU Unit Module 1. x. Reg 2. ∙ ∙ ∙. Reg 1. ACC. +. ∙ ∙ ∙. Module 8. x. 圖 3.6 GHA 電路架構 (𝑚 = 64, 𝑝 = 2, 𝑏 = 8, 𝑞 = 8, c = 16) 22.

(29) 第三章 棘波分類系統架構. GHA 電路運作流程可區分為四個階段,如圖 3.7 所示,其中 PCC 於 State 2 運算, SWU 於 State 3 運算,關於這兩項運算的詳細內容將於後續說明。. 圖 3.7 GHA 電路運作流程圖. 23.

(30) 第三章 棘波分類系統架構. 假定輸入向量 𝐱(𝑛) 已存放於 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 尾端。. 24.

(31) 第三章 棘波分類系統架構. x1(n). ~. ~. x32(n). x33(n). Buffer B. x64(n). Buffer C. Buffer C. w1,1(n). w1,33(n). PCC Unit. w1,64(n) PCC Unit. Reg.1. (a) x1(n). y1(n). Reg.1. (b) x33(n). Buffer B. ~. ~. x32(n). Reg.2. ~. ~. Reg.2. w1,32(n). Buffer B. x64(n). Buffer B. Buffer C. Buffer C. y1(n) w2,1(n). w2,33(n). w2,32(n) PCC Unit. Reg.2. ~. ~. Reg.2. w2,64(n) PCC Unit. Reg.1. y2(n). y1(n). (c). (d). 圖 3.8 GHA 電路中 Stage 3 PCC 單元運作流程: (a) 計算 𝑦1 (𝑛) 第一階段. (b) 計算 𝑦1 (𝑛) 第二階段. (c) 計算 𝑦2 (𝑛) 第一階段. (d) 計算 𝑦2 (𝑛) 第二階段. 25. Reg.1.

(32) 第三章 棘波分類系統架構. 完成 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) 時使用。. 26.

(33) 第三章 棘波分類系統架構. x1(n). x33(n). x32(n). x64(n) w1,1(n+1). Reg.1. w1,33(n). y1(n) SWU Unit. w1,64(n) z1,1(n). ~. z1,64(n). (b) z1,33(n) ~. z1,64(n) w2,1(n+1) w2,32(n+1). w2,64(n+1). Reg.2 y1(n). Reg.1. w2,33(n) ~. y2(n) SWU Unit. w2,33(n+1) ~. ~. ~. w2,32(n). Buffer B. Buffer C. Reg.2 y1(n) w2,1(n). z1,33(n). ~. ~. Buffer C. y1(n). z1,32(n). Buffer B. z1,32(n). Reg.1. SWU Unit. (a) z1,1(n). w1,64(n+1). Reg.2 y2(n) ~. ~. w1,32(n). w1,33(n+1) ~. w1,32(n+1). Reg.2 y2(n) w1,1(n). Buffer B. Buffer C. ~. Buffer C. ~. ~. Buffer B. w2,64(n) z2,1(n). Reg.1 y2(n) SWU Unit. z2,33(n). ~. ~. z2,32(n). z2,64(n). (c). (d). 圖 3.9 GHA 電路中 Stage 4 SWU 單元運作流程: (a) 計算 𝐰1 (𝑛 + 1) 第一階段. (b) 計算 𝐰1 (𝑛 + 1) 第二階段. (c) 計算 𝐰2 (𝑛 + 1) 第一階段. (d) 計算 𝐰2 (𝑛 + 1) 第二階段 27.

(34) 第三章 棘波分類系統架構. 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 部分運作流程圖 28.

(35) 第三章 棘波分類系統架構. 圖 3.11 Global Controller 之 GHA 部分運作流程圖. 29.

(36) 第三章 棘波分類系統架構. 3.5 Clock Gating 技術於電路中之實作 本論文所提出之架構使用了台積電 90 奈米之製程技術,其有著低靜態功率 消耗之特性,然而為了能夠再降低整體之功率消耗,使用 Clock Gating 不失為一 個好辦法。為了同時接收不同來源之神經元訊號,本論文使用了多通道架構使 之能夠同時處理各來源訊號,但隨著通道數量增加,所需之硬體資源也隨之成 長(如圖 3.2 以及圖 3.6 之記憶體單元部分),進而影響到了系統在功率消耗上的 表現。然而由於本論文之特徵擷取部分設計為一次計算一個通道的主成分,在 此同時,其它通道之記憶體單元皆為 idle 的狀況,若在此時停止這些記憶體單 元的 Clock 訊號,則就可以減少因為增加了硬體通道數量而額外增加之功率消 耗。圖 3.12 表示了 Clock Gating 於本論文實現之電路架構圖。. Spike Buffer Global Controller. clk. clk. enable. clk. Memory unit for CH1. clk. Memory unit for CH16. ∙ ∙ ∙. ∙ ∙ ∙. ∙ ∙ ∙ enable. 圖 3.12 Clock Gating 實現方法電路架構圖 30.

(37) 第四章 實驗數據與效能分析. 第四章 實驗數據與效能分析 本章節將呈現本論文所提出的棘波分類系統硬體架構之正確性、面積、功 率消耗與比較,以及實驗環境的介紹。. 4.1 開發平台與實驗環境介紹 本論文所提出的棘波分類系統硬體架構是在 SYNOPSYS 公司的 Design Compiler 下搭配 Verilog 硬體描述語言進行設計與開發。Design Compiler 是一套 專門用於數位電路合成之軟體,透過 Design Compiler 可以將事先設計好之 RTLLevel Verilog Code 或是 VHDL Code 轉換成 Gate-Level 的 Netlist 檔案。其有著 快速編譯、擁有多項合成電路時之最佳化策略以及簡易使用的圖型化操作介面 等諸多優點。. 圖 4.1 Design Compiler 圖型化操作介面 31.

(38) 第四章 實驗數據與效能分析. Design Compiler 亦擁有多項工具可以降低使用者在設計數位電路時的負 擔,表 4.1 為其所包含之工具列表以及相關簡介。而 DC Ultra 則為本論文最常 使用之工具,其功能為對電路進行時序上的約束、所占面積以及功率消耗之最 佳化。 Early RTL exploration to accelerate DC Explorer synthesis and place and route. Concurrent Timing, Area, Power and DC Ultra Test Optimization. Produces a better starting point for Design Compiler Graphical faster physical implementation. Provides complete solution for power Power Compiler synthesis & optimization. Comprehensive test solution for SoC Test Automation designs. Reduce Risk and Speed Time-toDesignWare IP Market with High Quality IP. Comprehensive, fast, intuitive Formality & Formality Ultra equivalence checking. High-level synthesis to accelerate Synphony C Compiler design of image processing IP. 表 4.1 Design Compile 所包含之相關工具介紹 32.

(39) 第四章 實驗數據與效能分析. 本論文使用 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 功率消耗分析流程圖. 33.

(40) 第四章 實驗數據與效能分析. 圖 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.. 34.

(41) 第四章 實驗數據與效能分析. 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 單元中所佔用的硬體資源使用比例將會有所提升。. 35.

(42) 第四章 實驗數據與效能分析. 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. 2. 16 78 Register. SWU Unit. PCC Unit. Other. 圖 4.4 M=8 C=8 時 GHA 單元中各單元所需之硬體資源比例圖. 2. 1. 10. 87 Register. SWU Unit 36. PCC Unit. Other.

(43) 第四章 實驗數據與效能分析. 圖 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 37.

(44) 第四章 實驗數據與效能分析. 而當 GHA 單元在工作週期為𝐿1 時,其訓練一個通道之突觸權重值所需要的 時間即為𝑃,因此在不超過 NEO 單元所能支援的最高通道數量為前提下,本論文 所提出之多通道棘波分類系統於不同 GHA Module 數量時,可使用之最大通道數 量即為公式(9)之第一種情況,而當超過 NEO 單元所能支援的最高通道數量時, 其即為下式第二種情況。. 𝐿 [𝑄 × ( )] /𝑃 𝐿1 𝐶= 𝐿 {𝐿1. 𝐿 𝐿1 𝐿 , 𝑤ℎ𝑒𝑛 𝐶 > 𝐿1 , 𝑤ℎ𝑒𝑛 𝐶 <. (9). 以下將以舉例的方式來說明於實際情況中,在特定的工作週期下,本論文 所提出之架構可以使用的最大通道數量。我們先假設𝐿1 和𝐿2 皆為 2μs,且 𝐿. Q=45,則 NEO 的最高通道數為⌊𝐿 ⌋ = 20,在套用公式(9)之後,可以得到表 4.4 1. 之內容,經由觀察我們可以發現若使用上述之條件,則在 M>=8 時,C 皆為最 高通道數量 20,換言之,雖然於 GHA 單元中使用了更多的 Module 數量來進行 特徵擷取,但因為 NEO 單元運算速度較低,導致無法使用更多的通道數量來增 加硬體資源的使用率。透過上述之結果,我們可以了解到當 NEO 單元與 GHA 單元之工作週期皆為 2μs 時,於 GHA 中使用 8 個 Module 可以使棘波分類系統 擁有最高通道數量 20。但由於使用多通道棘波輸入時,須於 NEO 單元之前端增 加多工器來循序輸入棘波資料,而因為其硬體特性,所能支援輸入之多工數量. 38.

(45) 第四章 實驗數據與效能分析. 為 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. 39.

(46) 第四章 實驗數據與效能分析. Channels. architecture 1 with clock gating. architecture 2 with clock gating. 16. 32. 44.2μW. 53.5μW. 0.088 m𝑚2. 0.081 m𝑚2. Power per channel Area per channel 表 4.6 架構一與架構二之晶片面積與功率消耗之比較. 表 4.6 說明了本論文所提出之架構一與架構二的晶片面積與功率消耗其實 際測量的比較結果,透過此表格可以發現,架構二雖然有著比架構一較高的通 道數量而在吞吐量這方便有著較佳的表現,但卻會在每通道之功率消耗這方面 有著較差的結果,因此本論文題出了兩個不同架構的棘波分類系統,使得我們 能有彈性的在不同的情況時選擇不同的棘波分類架構來因應需要高吞吐量或是 低功率消耗的情況。. 40.

(47) 第四章 實驗數據與效能分析. [4]. [5]. [6]. [7]. architecture 1. architecture 1. without. with. clock gating. clock gating. Spike √. √. √. √. √. √. √. √. √. √. √. 32. 128. 16. 1. 16. 16. 75μW. 100μW. 95.6μW. 521μW. 50.9μW. 44.2μW. 0.11 m𝑚2. 1.58 m𝑚2. 0.11 m𝑚2. 0.25 m𝑚2. 0.088 m𝑚2. 0.088 m𝑚2. 500. 350. 180. 90. 90. 90. Detection Feature Extraction Channels Power per channel Area per channel Process. 表 4.7 本論文實作硬體電路之相關規格與其他文獻比較表格. 表 4.7 表示了本論文所提出之架構一其相關之晶片面積、功率消耗與和其他 論文之比較。本論文為了降低整體功率消耗使用了 Clock Gating 技術,其能如本 論文第 2.5 章節中所說,降低系統動態功率消耗。在沒使用 Clock Gating 時,本 論文之系統每通道功率消耗為 50.9μW,在使用了 Clock Gating 後,其可以降低 至 44.2μW。因為本論文使用了較低之製程技術,電晶體的 Threshold Voltage 較 低,使得靜態功率較已往舊的製程為高。然而儘管在本論文中大約有 60%為靜 態功率消耗,但使用了 Clock Gating 後,仍能有效地降低動態功率,進而降低整 體大約 14%之功率消耗。 41.

(48) 第五章 結論. 第五章 結論 近年來關於大腦活動情形的研究越來越熱門,目前也提出了許多針對腦波 訊號處理的相關研究。本論文於 ASIC 中實現了一棘波分類系統,並且使用了多 通道棘波輸入,因此就算於低時脈運作下本系統仍然能擁有著卓越的輸出產 能。同時,本系統在合理的資源消耗下,對於功率消耗、運算時間以及在通道 數量上的設計取得了一個較佳的平衡點. 根據前一章比較的結果,可以知道本論文所提出的架構不論在晶片面積以 及功率消耗上與現有提出的設計 [4,5,6,7] 相較後皆都有著不錯的效能表現。以 ASIC 來設計雖然開發時間較以 FPGA 設計為長,但其可以比使用 FPGA 設計來 得到更小的面積以及功率消耗,用於有需要植入人體用途之晶片為在適當不 過。. 總結來說,本論文所提出針對棘波分類的應用之電路架構對於該領域的確 是有其助益,與現有的架構相比後更有著不少的優勢。因此,可以說本論文所 設計的棘波分類系統是一項有實際需求且有效率的電路架構設計。. 42.

(49) 參考文獻. 參考文獻 [1]M.A. Lebedev and M.A.L. Nicolelis, “Brainmachine interfaces: past, present and future,” Trends in Neurosciences, Vol.29, pp.536-546, 2006. [2] E.E. Fetz, “Real-time control of a robotic arm by neuronal ensembles,” Natural Neural Science,Vol. 2, 00.583-584, 1999. [3] S. Hauck and A. Dehon, Reconfigurable Computing: The Theory and Practice of FPGA-Based Computing, Morgan Kaufmann: San Fransisco, CA, USA, 2008. [4] Roy H. Olsson III ,” A Three-Dimensional Neural Recording Microsystem With Implantable Data Compression Circuitry” IEEE Journal of solid-state circuits, Vol. 40, No. 12, December 2005 [5] Moo Sung Chae, Zhi Yang, Mehmet R. Yuce, Linh Hoang, and Wentai Liu,” A 128Channel 6 mW Wireless Neural Recording IC With Spike Feature Extraction and UWB Transmitter” IEEE Transactions On Nerual Systems And Rehabillitation Egineering, Vol. 17, No. 4, Augest 2009 [6] Benoit Gosselin, Amer E. Ayoub, Jean-François Roy, Mohamad Sawan, FellowFranco Lepore, Avi Chaudhuri, andDaniel Guitton” A Mixed-Signal Multichip Neural Recording Interface With Bandwidth Reduction” IEEE Transactions On Biomedical Circutts And Systems, Vol. 3, No. 3, June 2009 [7] T.-C. Chen, W. Liu and L.-G. Chen,“VLSI Architecture of Leading Eigenvector Generation for On-chip Principal Component Analysis Spike Sorting System,” Proc. 30th Annual International IEEE EMBS Conference Vancouver, British Columbia, Canada, pp.3192-3195, 2008.. [8] J. F. Kaiser, “On a simple algorithm to calculate the ‘energy’ of a signal,” in Proc. IEEE Int. Conf. Acoust., Speech, Signal Process. (ICASSP ’90), Albuquerque, NM, Apr. 1990, vol. 1, pp. 381–384.. 43.

(50) 參考文獻. [9] S. Mukhopadhyay and G. Ray, “A new interpretation of nonlinear energy operator and its efficacy in spike detection,” IEEE Trans. Biomed. Eng., vol. 45, no. 2, pp. 180–187, Feb. 1998. [10] K. H. Kim and S. J. Kim, “Neural spike sorting under nearly 0-db signal-to-noise ratio using nonlinear energy operator and artificial neural-network classifier,” IEEE Trans. Biomed. Eng., vol. 47, no. 10, pp. 1406–1411, Oct. 2000. [11] I. Obeid and P. D. Wolf, “Evaluation of spike-detection algorithms for a brainmachine interface application,” IEEE Trans. Biomed. Eng., vol. 51, no. 6, pp. 905–911, Jun. 2004.. [12] S.-J. Lin, Y.-T. Hung, and W.-J. Hwang, “Efficient hardware architecture based on generalized Hebbian algorithm for texture classification,” Neurocomputing, pp.32483256, 2011. [13] N. Sudha, A.R. Mohan, P.K. Meher, “A self-configurable systolic architecture for face recognition system based on principal component neural network,” IEEE Trans. Circuits Syst. Video Technol, Vol. 21, pp.1071-1084, 2011. [14] S. -J. Lin, W. -J. Hwang, andW. -H. Lee, “FPGA Implementation of Generalized Hebbian Algorithm for Texture Classification,” Vol. 12, pp.6244-6268, Sensors, 2012.. [15]S.-J. Lin, Y.-T. Hung, and W.-J. Hwang, “Efficient hardware architecture based on generalized Hebbian algorithm for texture classification,” Neurocomputing, pp.32483256, 2011.. [16] N. Sudha, A.R. Mohan, P.K. Meher, “A self-configurable systolic architecture for face recognition system based on principal component neural network,” IEEE Trans. Circuits Syst. Video Technol, Vol. 21, pp.1071-1084, 2011. [17] S. -J. Lin, W. -J. Hwang, andW. -H. Lee, “FPGA Implementation of Generalized Hebbian Algorithm for Texture Classification,” Vol. 12, pp.6244-6268, Sensors, 2012.. 44.

(51) 參考文獻. [18] Y.-J. Yeh, H.-Y. Li, C.-Y. Yang, and W.-J. Hwang, ”Fast Fuzzy C-Means Clustering Based on Low-Cost High-Performance VLSI Architecture in Reconfigurable Hardware,” pp.112-118, IEEE International Conference on Computational Science and Engineering, 2010.. [19] Design Compiler® User Guide Version H-2013.03, March 2013. [20] Y. Sun, S. Huang, J. J. Oresko, and A. C. Cheng, “Programmable Neural Processing on a Smartdust for Brain-Computer Interfaces,” IEEE Trans. Biomedical Circuits and Systems, Vol. 4, pp.265-273, 2010. [21] L. S. Smith and N. Mtetwa, “A tool for synthesizing spike trains with realistic interference,” Vol. 159, pp.170-180, Journal of Neuroscience Methods, 2007. [22] S. Haykin, Neural Networks and Learning Machines, 3rd ed.; Pearson: Upper Saddle River, NJ, USA, 2009. [23] T.D. Sanger, “Optimal unsupervised learning in a single-layer linear feedforward neural network,” Neural Network, Vol. 12, pp.459-473, 1989.. 45.

(52)

參考文獻

相關文件

可程式控制器 (Programmable Logic Controller) 簡稱 PLC,是一種具有微處理機功能的數位電子 設備

在現行的 99

圖4 1 整合資訊系統風險 圖4.1 整合資訊系統風險..

必修 必修 部分 部分 學習 學習 單元 單元

計畫撰寫技巧,並進行部分執行單位成果分享,以提升提案

一、依據財政部「公益彩券回饋金運用及管理作業要點」第 4 點第 1 項第 1 款及第 2

(1)如果說有部是第二結集後由上座部所分出,則其戒條次第 應接近五分律

進而能自行分析、設計與裝配各 種控制電路,並能應用本班已符 合機電整合術科技能檢定的實習 設備進行實務上的實習。本課程 可習得習得氣壓-機構連結控制