• 沒有找到結果。

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

N/A
N/A
Protected

Academic year: 2021

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

Copied!
49
0
0

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

全文

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

(2) 中文摘要 本研究旨在完成一可植入式棘波分類晶片之電路設計與合成。由於植 入式晶片與大腦緊密接觸,晶片面積太大會壓迫腦部,功耗太大可能會導 致腦細胞受損,不可不慎。因此在設計時,晶片的面積與功耗會成為重要 考量。 本研究提出基於 NEO 演算法的棘波偵測器以及基於 GHA 演算法的特 徵擷取器,配合架構上的運算單元共享,設計出高效能、低功耗、低面積 的電路架構。本研究並且將電路實作於 ASIC 流程上,相對於 FPGA 開發, 可更有彈性的調整晶片的面積與功耗。本研究也導入了 clock gating 技術, 透過抑制記憶體單元的動態功耗,進一步降低晶片的耗電量。 本論文最後提出電路架構的瓶頸分析,並根據分析結果,選出數組最 佳參數進行進一步的面積、功耗分析。我們證明所設計出來的晶片比起其 他現有的架構,有更好的面積、功耗表現,並證明 clock gating 在節省功耗 上起了關鍵作用。本論文也簡短討論並說明 GHA 作為特徵擷取演算法, 與在此領域常用的 PCA 演算法的擷取效果相去不遠,實為一有效率之替 代方案。. 關鍵字:棘波分類、棘波偵測、特徵擷取、特殊應用積體電路、非線性能 量運算子、通用赫賓學習演算法. i.

(3) 英文摘要 This research aims to design an implantable spike sorting chip. To minimize possible damage to human brain, the chip area and power consumption specification should be planned carefully. A spike sorting circuit containing spike detection unit and feature extraction unit is developed. The spike detection unit implements the Nonlinear Energy Operator (NEO) algorithm, and the feature extraction unit is based on the Generalized Hebbian Algorithm (GHA). This work presents an architecture that shares one calculation unit across all channels, which minimizes area cost and power consumption greatly. The circuit is implemented on ASIC work flow, which gives extended flexibility on area and power adjustment. The circuit also incoporates clock gating technology so to lower power consumption by memory units. Last in this paper we present a method for parameter choosing. Based on the parameters chosen, a detailed area and power analysis is given. An analysis on GHA performance is also presented, which proved GHA to be an efficient substitution to the well-known PCA algorithm.. Keywords: Spike sorting, Spike detection, Feature extraction, ASIC, NEO, GHA. ii.

(4) 誌謝 我要利用此機會感謝多媒體通訊暨系統晶片實驗室的指導教授,黃文 吉教授。在這裡,我得到了充沛的資源,完整的時間,以及充分的訓練與 協助。因為有這些資源,才得以順利完成我的學位論文。不僅如此,當陷 入人生迷宮時,黃教授總是適時給予指引,引領我們步回軌道。我非常榮 幸能有機會加入黃教授的研究團隊。 再來,我要感謝我的家人。我是個追求完美的人,因此時而感到嚴重 挫折。家人常常花費時間為我做心理建設,如果沒有他們的幫忙,我的碩 士學位可能看不到盡頭。 我也要感謝我的研究夥伴們,包含同屆同學、已畢業的學長姐們、正 要開始研究之路的學弟妹們。我們時而嚴肅討論研究議題,時而打鬧成一 片。因為你們分給了我快樂與成就感,時而給我繼續推進的動力,才有今 天的我。 最後感謝所有幫助過我的人。受限於篇幅,無法一一列出,但我沒有 忘記你們曾經相助,讓我能走到這一步。. iii.

(5) 目錄 中文摘要. i. 英文摘要. ii. 誌謝. iii. 附表目錄. v. 附圖目錄. vi. 第 一 章 緒論 第 一 節 研究背景與動機 . . . . . . . . . . . . . . . . . . . . . . . . . . 第 二 節 研究目的 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 第 三 節 論文架構 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 1 1 5 6. 第 二 章 演算法介紹 第 一 節 棘波偵測演算法 . . . . . . . . . . . . . . . . . . . . . . . . . . 第 二 節 特徵擷取演算法 . . . . . . . . . . . . . . . . . . . . . . . . . .. 7 7 8. 第 三 章 電路架構與設計 第 一 節 整體架構 . . . . . . . . 第 二 節 NEO 棘波偵測單元 . . 第 三 節 棘波緩衝區 . . . . . . 第 四 節 GHA 特徵擷取單元 . . 第 五 節 Clock gating 省電設計 第 四 章 測試與數據分析 第 一 節 系統效能分析 . . . 第 二 節 開發環境 . . . . . . 第 三 節 晶片規格分析 . . . 第 四 節 其他現有系統比較 第 五 節 演算法效果分析 . .. . . . . .. . . . . .. . . . . . . . . . .. . . . . . . . . . .. . . . . . . . . . .. . . . . . . . . . .. . . . . . . . . . .. . . . . . . . . . .. . . . . . . . . . .. . . . . . . . . . .. . . . . . . . . . .. . . . . . . . . . .. . . . . . . . . . .. . . . . . . . . . .. . . . . . . . . . .. . . . . . . . . . .. . . . . . . . . . .. . . . . . . . . . .. . . . . . . . . . .. . . . . . . . . . .. . . . . . . . . . .. . . . . . . . . . .. . . . . . . . . . .. . . . . .. 11 11 12 13 16 20. . . . . .. 25 25 29 31 34 36. 第 五 章 結論. 38. 參考著作. 40. iv.

(6) 附表目錄 表 4.1 表 4.2 表 4.3 表 4.4 表 4.5 表 4.6 表 4.7 表 4.8 表 4.9 表 4.10. Q = 16 時的 Mmax 推算表 . . . . . . . . . . . . . . . . . . . . . Q = 32 時的 Mmax 推算表 . . . . . . . . . . . . . . . . . . . . . 各種 Q、L、rc 組合之 Mmax 分析 . . . . . . . . . . . . . . . .. 開發環境 . . . . . . . . . . . . . . . . . . 晶片與系統規格 . . . . . . . . . . . . . . 晶片面積分析(單位:µm2 ) . . . . . . 標準化晶片面積分析(單位:µm2 /ch.) 重要參數之晶片功耗分析 . . . . . . . . 與現有系統比較 . . . . . . . . . . . . . . GHA 與 PCA 之分類正確率 . . . . . . .. v. . . . . . . .. . . . . . . .. . . . . . . .. . . . . . . .. . . . . . . .. . . . . . . .. . . . . . . .. . . . . . . .. . . . . . . .. . . . . . . .. . . . . . . .. . . . . . . .. 27 28 29 31 32 33 33 34 35 36.

(7) 附圖目錄 圖 1.1. 典型棘波分類系統流程 . . . . . . . . . . . . . . . . . . . . . .. 3. 圖 2.1. 單層類神經網路範例 . . . . . . . . . . . . . . . . . . . . . . .. 9. 圖 3.1 圖 3.2 圖 3.3 圖 3.4 圖 3.5 圖 3.6 圖 3.7 圖 3.8 圖 3.9 圖 3.10 圖 3.11 圖 3.12 圖 3.13 圖 3.14. 本論文系統流程圖 . . . . . . . . 本論文系統架構圖 . . . . . . . . 棘波偵測單元架構圖 . . . . . . 棘波緩衝區架構圖 . . . . . . . . SOP 電路運算資料流 . . . . . . SWU 權重計算模組 . . . . . . . SWU 單元運算資料流 . . . . . . 特徵擷取單元架構圖 . . . . . . 特徵擷取單元控制器 . . . . . . 降低動態功耗 . . . . . . . . . . 典型的 clock gating 電路元件 . 棘波偵測單元 clock gating 實做 棘波緩衝區 clock gating 實做 . 特徵擷取單元 clock gating 實做. . . . . . . . . . . . . . .. 11 12 14 15 17 18 19 21 21 22 23 23 24 24. 圖 4.1 圖 4.2. 典型 ASIC 開發流程示意圖 . . . . . . . . . . . . . . . . . . . GHA 與 PCA 特徵分佈比較 . . . . . . . . . . . . . . . . . . .. 30 36. vi. . . . . . . . . . . . . . .. . . . . . . . . . . . . . .. . . . . . . . . . . . . . .. . . . . . . . . . . . . . .. . . . . . . . . . . . . . .. . . . . . . . . . . . . . .. . . . . . . . . . . . . . .. . . . . . . . . . . . . . .. . . . . . . . . . . . . . .. . . . . . . . . . . . . . .. . . . . . . . . . . . . . .. . . . . . . . . . . . . . .. . . . . . . . . . . . . . .. . . . . . . . . . . . . . .. . . . . . . . . . . . . . .. . . . . . . . . . . . . . ..

(8) 第 一 章 緒論 第 一 章導引進入本論文主題。第 一 節介紹本研究的背景與動機,解 釋重要的背景知識,檢視現有的相關論文,探討優劣,並初步提出本論文 所開發的架構。第 二 節定義本論文研究目標。第 三 節列出本論文各章標 題與其內容。. 第一節. 研究背景與動機. 腦波應用是近年熱門的研究議題,此乃因人的思維與人的生活息息相 關。如有某種手段可得知人的思維,將會打開許多輔助性、實用性、娛樂 性應用的大門,實際上現今也已開始有相關的研究成果產出。 舉例來說,有些中風或重大災禍病患,因傷及神經系統或手腳等身體 部位,導致半身不遂。若病患腦部仍保有思維能力,則只要能夠判別其思 緒,配合外部的輔助手段(如:機械手臂、機械腳),就能協助病患恢復 一定生活機能。 再舉例來說,現在社會上有很多悲劇,是可以預防、事前阻止的。例. 1.

(9) 如每年因酒後駕車而死亡的人數居高不下,乃因沒有一有效機制可防止酒 後駕車。未來若車上可載有簡易腦波分析儀,在發動前快速分析駕駛的腦 波,就可以在發生悲劇前,以拒絕發動的方式防止酒醉駕駛開車。 由於其應用範圍之廣泛,以及上述相關應用有其迫切性,腦波研究在 近年蓬勃發展。雖相關演算法與系統成熟度還不到可量產階段,但已漸漸 有實驗室產品出現。 強力的棘波分類系統(Spike sorting system)[1] 是腦波應用中不可或 缺的環節。要了解棘波分類原理,必須先知道棘波的來龍去脈。 人腦運作,神經元傳導訊息時,會因內部離子作用產生微小的電位 差,而釋放出一個微小的訊號。如果用探針將這些訊號收集起來以波形表 示,會呈現出一個波動。像這樣由人腦動作所產生出的電位差與波形波 動,稱為「動作電位(Action Potential)」或「棘波(Spike) 」 。 人類進行思維時,由於腦內不同神經元交互作用,探針收集到的波形 也會有所不同。經由分析棘波的波形,可以得知訊號是由哪個神經元產 生。整理歸納出訊號與神經元的關聯,就能夠透過進一步的醫學資訊,分 析了解該訊號在人類思維上的意含。而這個進行腦波擷取與分析的系統, 一般稱之為棘波分類系統。 近代的腦機介面(Brain-computer Interface)相關研究,絕大多數是建 基於上述理論基礎。 此外,研究發現從多個區塊蒐集腦波(以裝有多隻探針的探針陣列蒐 集腦波),有助於提昇分析結果的鑑別度。因此,棘波分類系統已全面朝. 2.

(10) 向多通道(multi-channel)棘波分類系統 [2] 發展。 由前文敘述,可整理出如下列之典型棘波分類流程: 1. 輸入訊號:接收輸入腦波訊號 2. 棘波偵測:從腦波訊號中找出棘波訊號 3. 特徵擷取:擷取棘波特徵 4. 特徵分類:分類棘波特徵,歸類同一神經元發出之棘波訊號 圖1.1為上述流程示意圖。通常如圖1.1中示意的三個流程,會各由一 個演算法專責處理。演算法的選擇與實現,會對系統的效能造成深遠的影 響。 圖 1.1: 典型棘波分類系統流程 Neural Signal. Spike Detector. Spike Analyzer. Spike Classifier. Spike Classes. 本論文探討並設計包含棘波偵測與特徵擷取兩個單元之高效能棘波分 類系統硬體實做。擷取完成的特徵資料,可直接輸出給外部的分類器使 用。本節接下來探討棘波偵測與特徵擷取現有的方法,其優劣,以及本論 文採用的方法。 棘波偵測需要能夠從原生腦波訊號中,偵測並取出棘波訊號。達成此 目的最簡單的方法,就是對訊號的絕對電位值進行閥值比較 [3, 4]。該方法 雖簡易,但卻容易受到大雜訊(高過閥值的雜訊)影響。因此在本論文中, 選用非線性能量運算子(Nonlinear Energy Operator,簡稱 NEO)[5] 作為 棘波偵測的核心演算法。NEO 為一訊號能量估量運算式,其輸出值可視為. 3.

(11) 訊號經過高通濾波器後的瞬間能量 [6]。因此,NEO 可以有效發現訊號的 強烈變化,以達成棘波偵測的目的。此外,離散時間 NEO 的公式非常單 純,只需要乘法、減法以及閥值比較就可完成,適合實做於硬體電路。 特徵擷取是為從訊號中擷取出主要成份(有代表性的訊號描述)的 動作。在眾多特徵擷取方法中,現今最為著名的是主成份分析演算法 (Principal Component Analysis,簡稱 PCA)[7],且 PCA 已有現存的硬體架 構研究 [8, 9]。但 PCA 演算法中的共變異數矩陣(covariance matrix)以及 特徵值分解(eigenvalue decomposition)須佔用大量的硬體資源。尤其帶入 多通道棘波分類後,每個通道需要一組自己的記憶體單元,其硬體面積耗 用會相當可觀。因此本論文不選用 PCA 作為特徵擷取手段,而是選用類神 經網路中著名的通用赫賓學習演算法(Generalized Hebbian Algorithm,簡 稱 GHA)[10, 11]。GHA 可視為漸進更新式的 PCA。因 GHA 運算無須像 PCA 一般儲存巨大的共變異數矩陣,設計成硬體後,比起 PCA 可大幅減 省電路面積。 現存的 GHA 電路架構研究中,有部份架構如 [12, 13] 以單通道運算 為主。與本論文所提出之架構較相近的為 [14],該論文提出基於 NEO 與 GHA 演算法之棘波分類系統,最高可達 32 通道,並且每一通道僅須儲存 自己的 GHA 權重向量,運算單元則是所有通道共享,進一步減少晶片面 積。本論文實做之棘波分類系統比起 [14],由於系統運作時脈從 1 MHz 上 升至 2 MHz,系統吞吐量可接受的最高通道數一舉上升至 64 通道,大大 提昇了本系統實用面的價值。 另 外, 架 構 [12, 13] 將 電 路 實 做 於 現 場 可 程 式 化 閘 陣 列 (Field-. 4.

(12) programmable gate array,簡稱 FPGA)上。FPGA 開發流程好處為開發與 驗證過程快速,但晶片面積與功耗會強烈受制於選用的 FPGA 晶片。此限 制導致開發出來的系統難以植入人腦應用,此乃因植入式裝置為了減少對 人腦造成的壓迫與傷害,對於面積與功耗都有非常嚴苛的要求。本論文將 電路實做於特殊應用積體電路(Application-specific integrated circuit,簡稱 ASIC)開發流程上。ASIC 開發流程實做出來的是專門用途晶片,開發過 程對於晶片的面積與功耗都有較高程度的掌控權,因此更適合開發可植 入式的應用。比起同樣開發於 ASIC 流程上的 [14],本論文更全面地導入 clock gating 技術,以降低系統動態功耗,並提高系統穩定度。. 第二節. 研究目的. 總結前文說明,本論文提出一基於 NEO 與 GHA 之棘波分類系統電路 架構,並將該架構實做於 ASIC 流程上,以得到適合植入式應用的面積與 功耗。本架構優勢在於選擇 NEO 與 GHA 等較簡易的演算法,以降低電路 複雜度與晶片面積。本架構亦透過讓所有通道共享一組運算單元,進一步 降低面積與功耗。此外為了降低動態功耗,本架構導入了 clock gating 技 術,以達成更佳的功耗表現。. 5.

(13) 第三節. 論文架構. 本論文劃五個章節,各章節內容如下列表說明。 第 一 章 緒論(本章) 說明此研究的研究背景、研究動機以及研究目的,協助讀者瞭解整個 研究之前因後果。 第 二 章 演算法介紹 介紹本論文中所使用之演算法(包含前文所提及之 NEO 與 GHA)概 念。 第 三 章 電路架構與設計 解釋本論文如何將第 二 章所提及的演算法概念,設計成電路架構,並 整合成一完整可運作的系統。 第 四 章 測試與數據分析 分析第 三 章所提出之電路參數與效能,並呈現實際合成出來的電路數 據。此章亦對於 GHA 的特徵擷取能力,作一簡短的實驗證明。 第 五 章 結論 論文總結。. 6.

(14) 第二章. 演算法介紹. 第 二 章介紹本論文提出架構所使用的演算法。本論文提出架構包含兩 個單元,棘波偵測與特徵擷取。兩個單元所採用的演算法分別為非線性能 量運算子 NEO,以及通用赫賓學習演算法 GHA。第 一 節與第 二 節分別介 紹 NEO 與 GHA,進行簡單的數學定義。. 第一節. 棘波偵測演算法. 本論文選用非線性能量運算子 NEO [5] 作為棘波偵測演算法。此方法 是由 H. M. Teager 提出,並由 J. F. Kaiser 首度在論文上正式推導而來,故 又名 Teager’s Energy Operator 或 Teager-Kaiser Energy Operator。 原始腦波經採樣量化後,形成一離散時間訊號序列。原生的腦波訊號 中,會摻雜許多對腦波分析無意義的資訊,如空白或純雜訊等非棘波成 份。棘波偵測就是擷取原生腦波訊號中重要資訊(棘波)的過程。NEO 是 一種訊號能量估量方法,可用於量化一個訊號序列在某一時間點的瞬間能 量。NEO 對訊號峰值(peak)尤其敏感,因此可用來進行訊號序列的峰值 偵測。由於棘波最顯著的特徵就是會產生一峰值,因此 NEO 用來進行棘. 7.

(15) 波偵測,可說是再也合適不過。 設 s(n) 為輸入的離散時間腦波訊號序列,在離散時間上的 NEO 能量 值定義為目前樣本訊號值平方減去前後一個訊號值(共兩個)相乘。若計 算出來之能量值高過某一既定之閥值 γ ,即可判斷偵測到棘波。此過程如 下式2.1列。 s2 (n) − s(n − 1)s(n + 1) > γ. (2.1). 由於棘波為高能量訊號,透過設定一合理的閥值,就可以準確定出棘 波的位置。設棘波訊號的長度為 m,則棘波訊號 x 定義如下式。 x = [x1 , ..., xm ]T. (2.2). 設 xP 為 x 中的峰值(亦即 xP 在 x 中為 NEO 偵測到高瞬間能量的樣 本)。假設在目前時間樣本 s(n) 偵測到棘波,則收集 xi = s(n − P + i), i = 1, ..., m,即可組成棘波訊號 x。此棘波訊號 x 可作為棘波偵測器的輸出,. 交由特徵擷取器進行特徵分析。 此外,從式2.1可看出 NEO 的簡單特性。實做 NEO 硬體僅須兩個乘法 器,一個減法器,以及一個比較器。同時擁有高偵測確率與低複雜度特性 的 NEO,實為合適硬體設計的演算法。. 第二節. 特徵擷取演算法. 本論文選用通用赫賓學習演算法 GHA [10] 作為特徵擷取核心。GHA 是由 T. D. Sanger 基於 D. O. Hebb 提出的赫賓學習理論(Hebbian Learning. 8.

(16) Theory),設計出的單層前向傳播式類神經網路(single-layer feedforward neural network),並且是非監督式(unsupervised learning)學習演算法。 類神經網路是一種機器學習方法,透過模擬人腦神經元的運作方式, 給予系統自我學習的能力。類神經網路架構完成後,須經過學習階段,就 好比人類接觸新事物,也需要經過一段學習過程。在此階段類神經網路會 透過輸入資料,自我調整內部權重,讓輸出的資料盡可能符合真實情況。 學習階段完成後進入實際使用階段,就可輸入一些資料,讓類神經網路透 過學習來的權重資訊,做出決策。 圖2.1為 典 型 的 單 層 類 神 經 網 路 架 構。 圖 中 架 構 接 收 m 維 向 量 x = [x1 , ..., xm ] 作為輸入資料。將 x 與權重向量 w = [w1 , w2 ] 作用後,輸 出二維向量 y = [y1 , y2 ]。這個將高維度資料經過運算,得到具代表性低 維度資料的過程,稱為降維(Dimension reduction)或特徵擷取(Feature extraction),輸出向量 y 稱為特徵值向量。 圖 2.1: 單層類神經網路範例 Input Layer. Output Layer. 類神經網路的特性由動作函式(Activation function,計算輸出的函式). 9.

(17) 與權重更新函式(Weight update function,更新權重向量的函式)決定。以 下透過定義這兩個函式,來介紹 GHA 演算法。 GHA 的動作函式定義如下式2.3列。 yj (n) =. m ∑. (2.3). wji (n)xi (n). i=1. 由式2.3可見,GHA 計算輸出向量 y 的方式,是將輸入向量 x 與權重 向量進行向量內積運算。 GHA 的權重更新函式定義如下式2.4列。 [ wji (n + 1) = wji (n) + η yj (n)xi (n) − yj (n). j ∑. ] wki (n)yk (n). (2.4). k=1. 式2.4為赫賓學習定律的實現。其中 η 為更新速率,調整 η 會影響權重 向量在訓練過程中變動的幅度。觀察式2.4,將 yj (n) 從中括號中提出,可 進一步簡化公式。 [ wji (n + 1) = wji (n) + ηyj (n) xi (n) −. j ∑. ] wki (n)yk (n). (2.5). k=1. 從式2.3與2.5可發現 GHA 的運算也相當簡單。式2.5雖然看起來較為複 雜,本論文在第 三 章第 四 節將提出一個簡單有效率的架構,實做該公式 的運算。. 10.

(18) 第 三 章 電路架構與設計 第 三 章說明本論文如何實現基於 NEO 與 GHA 之棘波偵測硬體架構。 第 一 節綜觀整個硬體的架構與資料流程。第 二 節與第 四 節分別介紹 NEO 與 GHA 的硬體電路實做。第 三 節解釋 NEO 與 GHA 之間的緩衝機制,以 防 NEO 偵測速度超出 GHA 處理能力,導致資料流失。第 五 節說明本論 文如何將 clock gating 省電設計帶入到電路中。. 第一節. 整體架構. 第 一 章的圖1.1展示了典型的棘波分類系統流程。本論文因集中討論 於棘波偵測與特徵擷取,故將流程圖修改如圖3.1所示。 圖 3.1: 本論文系統流程圖. Neural Signal. Spike Detection (NEO). Detected Spikes. Feature Extraction (GHA). Feature Vectors. 系統架構上,由於特徵擷取運算單元只有一套(詳見第 三 章第 四 節說 明),棘波偵測卻有 M 個通道的資料流量。為了避免資料流過大,導致. 11.

(19) GHA 單元來不及消化,實際的電路上會在棘波偵測單元與特徵擷取單元 之間,插入一個棘波緩衝區,儲存棘波偵測單元偵測到的棘波,供特徵 擷取單元取用。完整系統架構請見圖3.2。輸入的原生腦波訊號,會經由 NEO 電路進行棘波偵測。被判斷為是棘波的訊號,會放入棘波緩衝區儲 存。GHA 電路閒置時,就會從棘波緩衝區取得一筆棘波資料進行運算,並 將擷取出來的特徵值向量輸出供外部分類器使用。 圖 3.2: 本論文系統架構圖 Neural Signal. NEO Circuit. Spike Bu er. GHA Circuit. Feature Vectors. 底下章節將針對這三個電路,做詳細的說明。. 第二節. NEO 棘波偵測單元. 如前文討論,棘波偵測單元能夠從腦波訊號中偵測並取出棘波。因 此,棘波偵測單元中需要有空間可儲存腦波訊號,並且需要有棘波偵測核 心電路來完成棘波判斷邏輯。當 NEO 判斷偵測到棘波時,必須先進行訊 號對齊動作(決定要將訊號的哪一段作為棘波),最後再把整理出來的完 整棘波訊號,送到棘波緩衝區儲存。 圖3.3示意棘波偵測單元的完整架構圖,圖中符號 M 為通道個數,m 為棘波維度。圖3.3(a)可見 m × M 大小的蛇狀圖(snake path)暫存器陣列, 該陣列是用來儲存腦波樣本。 腦波資料會從圖3.3(a)左上方進入,前方電路每個時脈會提供一個通道. 12.

(20) 的一個腦波樣本。腦波樣本進入到蛇狀圖暫存器陣列後,會先往下填滿 欄,再往右填滿列。在這個設計之下,觀察圖中每一橫列,在任意時間點 儲存的都是某一通道的 m 個相鄰樣本,電路只要針對某一列的樣本進行資 料處理即可。在圖3.3(a)中,取出的是最底下一列資料,並將該列資料送入 NEO 棘波偵測運算單元進行棘波偵測。如運算結果判斷此通道發現棘波, 則會將完整的棘波訊號經過峰值對齊,搭配通道編號(由底下的通道記數 器 Channel Counter 紀錄)一齊送到棘波緩衝區做儲存。 圖3.3(b)的 NEO 棘波偵測運算單元,實做的是式2.1的運算。運算後閥 值比較結果,即可判斷輸入的樣本是否為棘波,此判斷結果輸出給後方電 路(峰值對齊)決定是否要將此樣本處理並儲存到棘波緩衝區。 觀察圖3.3,會發現架構中只有一組棘波偵測運算單元。此乃因本架構 蛇狀圖一次推送一個通道資料給運算單元運算,達成對每個通道逐一進行 棘波偵測的目的,因此本架構僅須設計一組棘波偵測單元,由 M 個通道 共享,可減少晶片的面積。. 第三節. 棘波緩衝區. 由於棘波的出現速度有可能會超出 GHA 特徵擷取的處理能力(例:同 一個時間點,有兩個或以上的通道偵測到棘波,亦即 M 個時脈以內出現 超過一個棘波),導致資料遺失,因此,在兩者之間設計一個緩衝機制是 有其必要性。 本論文提出的棘波緩衝區,提供每個通道一個棘波的緩衝空間。如. 13.

(21) 圖 3.3: 棘波偵測單元架構圖 (a). hit. (b). X -. >. X. 此,同一時間點如果偵測到超過一個棘波,就可以依序存入緩衝區,得有 效緩解出現一個以上棘波導致特徵擷取單元忙不過來的情形。 棘波緩衝區以先進先出的方式處理棘波訊號,亦即先偵測到的棘波, 會優先送到特徵擷取單元處理。棘波緩衝區架構如圖3.4所示。棘波偵測單. 14.

(22) 圖 3.4: 棘波緩衝區架構圖. 元偵測到棘波,會連同該棘波所屬的通道編號一同送至緩衝區。通道編號 會先被推入架構圖上方的先進先出緩衝區(FIFO),以作為棘波到來順序 的識別,並且電路會解碼通道編號,並且啟動該通道記憶體單元,讓棘波 訊號存入。 輸出端會持續輸出最先來到但未處理的棘波通道編號,並且該通道編 號會控制多工器,選擇輸出相應通道的棘波訊號。當後端的特徵擷取單元 完成處理一筆棘波時,會發出 next 訊號告知可繼續處理下一筆棘波,棘波 緩衝區就會從 FIFO 尾端推出下一筆資料,並且選擇輸出該通道的棘波訊 號,讓特徵擷取單元可處理下一筆棘波資料。. 15.

(23) 第四節. GHA 特徵擷取單元. 特徵擷取單元實做 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 頭. 16.

(24) 端存放,並送出 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 ∑. wki (n)yk (n), j = 1, ..., p. (3.2). k=1. 觀察上式,發現 zji (n) 可由 z(j−1)i (n) 推得: zji (n) = z(j−1)i (n) − wji (n)yj (n), j = 2, ..., p. 17. (3.3).

(25) 當 j = 1 時,由式3.2與式3.3可推得: (3.4). z0i (n) = xi (n). 上述推導給了一個疊代運算過程,再也無須為得到一筆權重資料,而 重新計算整個累加過程(. j ∑. wki (n)yk (n)) 。同理可證,電路設計中也可運. k=1. 用到此疊代的特性。圖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 頭端, 並且將下一回計算 w2 所需的 z1 = [z1,1 (n), ..., z1,m (n)] 存回 Buffer Z。. 18.

(26) 圖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 單元運算資料流 (b). (a). 圖3.8呈現特徵擷取電路的全貌,圖中可見前文討論到的 Buffer Z、 Buffer W、SOP Circuit 以 及 SWU Unit 等 功 能 區 塊。 該 圖 示 意 棘 波 維 度 m = 64,通道個數 M = 16,權重更新單元模組個數 L = 8,主成份個數. (權重向量元素個數)P = 2 時的特徵擷取單元架構。 圖中可見 SWU Unit 中,含有八個權重更新運算模組(模組內容請見. 19.

(27) 圖3.6)。因此此電路一次的計算,都是以八組資料為單位,因此圖中可見 Buffer Z 與 Buffer W 一次都是送出八組數值循環運算。此為本電路的一大特 色,透過資料的分批運算,可顯著減少運算單元的個數,而達到降低面積 之效。雖然乍看之下,效能方面會產生疑慮。本論文在第 四 章第 一 節會 對系統的效能進行分析,說明推論模組個數以及其他系統參數選取的方 式,與其對效能的影響。 類神經網路有兩種運作模式,訓練模式與服務模式。本架構亦支援兩 種模式的運作。訓練模式中,SOP Circuit 完成特徵值運算後,啟動 SWU Unit 更新權重向量,即可完成一輪訓練。服務模式中由於無須更新權重向 量,只要將權重更新的程序取消即可。 前 文 所 述 的 特 徵 值 運 算、 權 重 向 量 更 新 以 及 運 作 模 式 的 控 制, 均 由 一 個 GHA 控 制 器 掌 控。 圖3.9顯 示 控 制 器 的 功 能 方 塊 圖。 該 控 制 器 從第 三 章第 三 節所介紹的棘波緩衝區取得棘波樣本後開始運作。運作時, 控制器會根據運算進度與棘波通道編號,控制圖3.8中的電路運作(主要是 控制多工器)。運算完畢後,控制器會發出訊號給棘波緩衝區,通知送出 下一筆棘波訊號,繼續運算。. 第五節. Clock gating 省電設計. 本論文為降低系統功耗,引入 clock gating 省電技術,以達降低動態功 耗之效。 動態功耗是因電路邏輯切換所造成。依此類推,正反器(Flip-flop)的. 20.

(28) 圖 3.8: 特徵擷取單元架構圖. X + X. 圖 3.9: 特徵擷取單元控制器. 21.

(29) 時脈不斷運作,也會造成動態功耗的產生,如圖3.10(a)所示。由於正反器 只有在值變動時,需要由時脈來驅動值變更,如果正反器不工作時,時脈 仍一直切換,就會造成可觀的浪費。 由上文說明可推論,倘若透過某種機制,當正反器靜止時,可以抑制 時脈的產生,如3.10(b)所示,就可以省去不必要的動態功耗。這種透過抑 制時脈訊號降低動態功耗的技術,稱為 clock gating。 一種典型的 clock gating 電路設計如圖3.11所示。觀察圖3.11(b)的波形 圖,會發現只有在外部啟動訊號 en 拉起時,外部時脈 clk 才會對正反器時 脈 clken 有所作用。此種 clock gating 元件設計,比起許多純 AND/OR 閘的 clock gating 設計,更不易受到組合電路的轉換態時差所造成的脈衝影響。 圖 3.10: 降低動態功耗 (a) 正反器運作,造 成動態功耗. D. Q. (b) 抑制時脈,降低動態功耗. D. Q. EN. EN. clk clk_en. clk. clk. 本電路中有許多通道暫存器。由於電路一次只能運算一個通道的資 料,剩餘 M − 1 個通道相關暫存器的動態功耗浪費將會相當可觀。因此, 本電路適合使用 clock gating 技術降低動態功耗。 套用 clock gating 元件於棘波偵測單元如圖3.12所示。有時電路內部時 脈會比外部採樣速率高,儲存棘波樣本的蛇狀圖會有休息的空間,此時就 可以用 clock gating 技術來省去休息時間的動態功耗。. 22.

(30) 圖 3.11: 典型的 clock gating 電路元件 (a) 電路元件圖. en. D. Q. enl. Q. D. EN. Latch. clken. DFF. clk (b) 波形圖 clk en enl clken. 圖 3.12: 棘波偵測單元 clock gating 實做. 套用 clock gating 元件於棘波緩衝區如圖3.13所示。由於偵測到棘波出 現時,才需要寫入資料,此時就可以使用 clock gating 技術省去無棘波訊號. 23.

(31) 時的動態功耗。此外,棘波訊號出現時,只須啟用棘波相對應通道的記憶 體單元,如有 clock gating 技術,其他通道就可以保持低功耗狀態。 圖 3.13: 棘波緩衝區 clock gating 實做. 套用 clock gating 元件於特徵擷取單元如圖3.14所示。此處主要影響動 態功耗的是儲存各通道權重向量的記憶體單元。由於一次棘波運算只會牽 連到一個通道,其他非運作中的通道,就可保持在低功耗模式。 圖 3.14: 特徵擷取單元 clock gating 實做. clk. clk. clk. 24.

(32) 第 四 章 測試與數據分析 第 四 章呈現本論文的研究成果。第 一 節從架構面分析系統效能,並 定義系統限制,以助於接下來討論電路規格。第 二 節介紹電路開發環境。 第 三 節展示電路規格並分析電路面積與功耗。第 四 節比較本架構與其他 現有架構的差異。第 五 節就實驗結果討論使用 GHA 演算法進行特徵擷取 的效果與可用性。. 第一節. 系統效能分析. 本節就前文所提出之電路架構,分析系統參數選取對運作效能所造成 的影響。相關分析結果有助於瞭解後文選取參數的意涵。 如前文所述,本論文所提出之電路有二重要參數,分別為「通道數 (M )」與「權重更新模組個數(m)」 。降低權重更新模組個數可降低總體 晶片面積,但也會影響 GHA 電路的運算速度。GHA 的運算速度會直接影 響到系統整體的吞吐量,當運算速度低於棘波偵測的速度,就會發生資料 遺失,進而影響系統的準確性。. 25.

(33) 因此,估量電路處理能力與分析資料流量,對瞭解此電路特性有深遠 的重要性。在本論文提出的架構中,通道數將會主宰整體資料流量。以下 對於通道數與運算速度的關聯提出分析,並證明此電路的可用性。 根據上述討論,可得知 GHA 電路的運算速度必需快過於棘波出現的 速度,才可保證不會發生任何資料遺失。假設 M 為通道數,GHA 的運算 延遲為 P ,電路時脈為 Tc ,並設兩個棘波的最小間隔為 Q 個樣本,腦波訊 號的採樣週期為 Ts 。在此假設最糟的可能狀況,也就是 spike buffer 已放 滿,如再出現下一個棘波,就只能丟棄之。根據上述假設,可得出以下關 係式。 M P Tc ≤ QTs. (4.1). 式4.1之左式為處理完 spike buffer 中所有棘波資料的所需時間,右式為 下一棘波出現的時間。該式所代表的就是,在下一棘波到來之前,電路必 需完成所有 spike buffer 中資料之計算,下一棘波出現才能保證有空間存 放。 由於輸入端需從 M 個通道收集腦波樣本,電路需要在下一個樣本到來 之前,將全 M 個通道的樣本收集完畢。由以上敘述,可得下式。 M Tc ≤ Ts. (4.2). 式4.2之左式為電路端收集完成一次 M 個通道樣本的所需時間,右式 為樣本的採樣時間。電路端收集完一次樣本的時間需小於樣本的採樣時 間,才能保證不會遺失資料。. 26.

(34) 聯立式4.1以及式4.2,可推導出如下規則。      Q Ts      P Tc. Mmax =.       Ts    Tc. if Q < P (4.3) if Q ≥ P. 因此,要得知在某一參數下可接受的最大通道數 Mmax ,只要做好 Q 值假設,便可根據式4.3推算出。 舉例來說,假設棘波最小間隔 Q = 16,棘波採樣頻率 rs = 24000 樣本 /秒(採樣週期 Ts =. 1 ) ,可整理歸納出表4.1。表中的計算時間 P 是由電 rs. 路架構與區段長度推知。從表4.1可見,雖然增加區段長度會增加晶片面 積,但可以有效減少計算時間,提升電路可處理的通道數。 表 4.1: Q = 16 時的 Mmax 推算表 區段長度. 計算時間. 最大通道數 Mmax. L. P. rc =0.5MHz j k Ts Tc = 20. rc =1MHz j k Ts Tc = 41. rc =2MHz j k Ts Tc = 83. 1. 264. 1. 2. 5. 2. 136. 2. 4. 9. 4. 72. 4. 9. 18. 8. 40. 8. 16. 33. 16. 24. 13. 27. 55. 32. 16. 20. 41. 83. 假設棘波最小間隔 Q = 32,棘波採樣頻率 rs = 24000 樣本/秒(採樣 週期 Ts =. 1 ),可整理歸納出表4.2。從表4.2可觀察到,放寬棘波最小間 rs. 隔為兩倍,最大通道數也增長到大約兩倍。可是當區段長度成長到一個地. 27.

(35) 步,導致計算時間 P 小於棘波間隔 Q,問題就會變成電路時脈是否夠多, 足以應付採樣頻率。由此可見,一味增加區段長度,未必對電路的處理能 力有正面影響。 表 4.2: Q = 32 時的 Mmax 推算表 區段長度. 計算時間. 最大通道數 Mmax. L. P. rc =0.5MHz j k Ts Tc = 20. rc =1MHz j k Ts Tc = 41. rc =2MHz j k Ts Tc = 83. 1. 264. 2. 5. 10. 2. 136. 4. 9. 19. 4. 72. 9. 18. 37. 8. 40. 16. 33. 66. 16. 24. 20. 41. 83. 32. 16. 20. 41. 83. 表4.3 呈現各種 Q、L 以及 rc 組合對於 Mmax 的影響(棘波採樣頻率同 設為 rs = 24000 樣本/秒)。從表中可發現,L 與 rc 的提升,在 Q < P 時對 Mmax 有線性關係。放寬 Q 值時,Mmax 的值也會有線性的提升。. 另 外, 從 表4.3可 觀 察 到, 在 Q = 32,L = 8,rc =2MHz 時,Mmax 值 始 到 達 66。 因 此, 如 果 要 將 通 道 個 數 提 升 到 64 的 話, 就 必 需 在 Q = 32, L = 8, rc = 2MHz 這組參數下討論才有意義。. 28.

(36) 表 4.3: 各種 Q、L、rc 組合之 Mmax 分析 最大通道數 Mmax rc =0.5MHz j k Ts Tc = 20. rc =1MHz j k Ts Tc = 41. rc =2MHz j k Ts Tc = 83. L=4. 4. 9. 18. L=8. 8. 16. 33. L=4. 9. 18. 37. L=8. 16. 33. 66. L=4. 13. 27. 55. L=8. 20. 41. 83. L=4. 18. 37. 74. L=8. 20. 41. 83. Q = 16. Q = 32. Q = 48. Q = 64. 第二節. 開發環境. 本 論 文 將 所 提 出 之 電 路 架 構 實 作 於 ASIC 開 發 流 程 上。ASIC 是 Application-specific Integrated Circuit 的縮寫。不同於 FPGA 開發流程在已 製造量產的晶片上燒寫電路邏輯,ASIC 開發流程完成後的結果,是可下 線製作晶片的佈局資料。 典型的 ASIC 開發流程如圖 4.1 所示。 開發者完成電路設計後,先以硬體描述語言(Hardware Description Language)描述電路行為,並以模擬器確認所描述的電路邏輯正確無誤。 因在此階段描述的是較高階而綜觀的電路行為,所以一般稱該描述為「暫. 29.

(37) 圖 4.1: 典型 ASIC 開發流程示意圖. Functional Veri cation. RTL Description Logic Synthesizer. ,. Timing Veri cation. Technology Netlist Place & Route. ,,. Post-Layout Veri cation. Netlist + Layout Info Tapeout. Chip. 存器傳輸級(Register Transfer Level,下稱 RTL) 」描述。 完成 RTL 描述的開發與模擬後,開發者會使用 RTL 描述檔,搭配邏 輯合成器(logic synthesizer)以及所選之標準元件庫(standard cell library) , 合成出電路網絡描述(下稱 netlist)。其中標準元件庫含有晶片製程供應廠 所提供之邏輯元件(AND 閘、OR 閘等)之規格說明。合成器會根據元件 庫所提供的元件規格、開發者的 RTL 描述檔、以及開發者指定之重要電路 參數等資訊,將高階的邏輯描述轉化為邏輯元件與其連接的描述。這個階 段產生出來的描述檔,即為 netlist。. 30.

(38) 此時因已導入實際電路元件,電路的一些重要特性較為明朗化,因此 從合成報告中,可看到初步的晶片面積與時序分析。開發者也會拿 netlist, 配合合成器所計算出的電路延遲規格,再進行一次模擬,得到合成後的時 序正確性驗證結果,並進一步進行電路功耗計算。 流程推進至此,已確定晶片中所含的電路元件及其連接關係。接下來 的繞線佈局(place and route)動作會確認電路元件以及導線在晶片中的擺 放位置。因此完成這個階段後,就確立了晶片的規格。若這個階段的最後 驗證也安然通過,就可將產生出來的電路佈局等資料交付給晶片製造商, 下線製作出實際的晶片。 本論文完成電路設計,並且完成 ASIC 開發流程中的 netlist 合成與模 擬。使用的開發軟體由國家晶片系統設計中心(CIC)提供,平台與軟體 的名稱及詳細資訊如表 4.4 列。 表 4.4: 開發環境 開發平台 CIC EDA Cloud 邏輯合成 Synopsys Design Compiler 2013.03-SP4 模擬. Synopsys VCS-MX 2013.06. 功耗估量 Synopsys PrimeTime 2013.06-SP2. 第三節. 晶片規格分析. 本論文實驗合成的晶片與系統規格如表 4.5 列。由於面積與功耗有多 組資料討論,請參見後表分析。如假設 Q = 32,並固定區段度 L = 8,本. 31.

(39) 電路經測可以正常運作於 500KHz、1MHz、2MHz 三種時脈,通道數可上 升到 64 通道,是不錯的參數選擇。惟 64 通道因電路處理速度需求較高, 需要採用 2MHz 時脈才能正常運作。 表 4.5: 晶片與系統規格 製程. TSMC 90 nm. 面積. 見表 4.6 與表 4.7. 功耗. 見表 4.8. 時脈 rc. 500 KHz/1 MHz/2 MHz. 最小棘波間隔 Q 32 棘波維度. 64. 區段長度 L. 8. 通道數 M. 8/16/32/641. 表4.6為不同區段長度與通道數組合下所合成出來的晶片面積分析。從 表中可發現增加通道數 M 會導致面積大幅上升,這是因為本實驗所設計 之晶片,絕大多數的面積是由儲存各通道資料之記憶體單元所佔據。 表4.7為標準化的面積分析(平均每通道晶片面積)。從表中可發現, 通道數越高,每通道所佔平均面積值就越小。這是因為 M 個通道共用一 組 GHA 運算單元的緣故。 從表4.6中觀察可發現,降低區段長度所造成的面積減省沒有降低通道 數來得多,但從實用面來講,通道數是重要功能,因此本實驗採取固定通 道數,調整區段長度與時脈的參數選取準則,並選出如表4.8所呈現之重要 1. 64 通道組態只能搭配 2MHz 時脈運作。詳請見第 四 章第 一 節討論。. 32.

(40) 表 4.6: 晶片面積分析(單位:µm2 ) 區段長度. 通道數 M. L. 2. 4. 8. 16. 32. 64. 2. 241,090. 395,565. 701,479. 1,318,032 2,548,962 5,010,148. 4. 268,776. 423,957. 731,167. 1,350,163 2,586,267 5,057,620. 8. 324,509. 480,852. 790,654. 1,414,494 2,661,096 5,152,185. 16. 435,478. 594,419. 909,403. 1,543,228 2,810,642 5,341,566. 32. 658,196. 822,560. 1,148,565 1,802,752 3,114,285 5,728,802. 表 4.7: 標準化晶片面積分析(單位:µm2 /ch.) 區段長度. 通道數 M. L. 2. 4. 8. 16. 32. 64. 2. 120,545. 98,891. 87,685. 82,377. 79,655. 78,284. 4. 134,388. 105,989. 91,396. 84,385. 80,821. 79,025. 8. 162,255. 120,213. 98,832. 88,406. 83,159. 80,503. 16. 217,739. 148,604. 113,675. 96,452. 87,833. 83,462. 32. 329,098. 205,640. 143,571. 112,672. 97,321. 89,513. 參數,進行進一步的功耗分析。 表4.8呈現本實驗選出具指標性參數,有無 clock gating 之功耗估量。 從表中可見,clock gating 技術著實對本電路功耗有顯著影響。隨著通道數 上升,可關閉的記憶體單元增多,功耗減省的幅度也越大。因此,對於有 許多記憶體單元的電路,clock gating 確實有其必要性。. 33.

(41) 表 4.8: 重要參數之晶片功耗分析 通道數 M. 時脈 rc. 通道平均功耗 無 CG. 有 CG. 功耗減省. 8. 1 MHz. 156.1 µW/ch.. 114.3 µW/ch.. 26.78%. 16. 1 MHz. 133.1 µW/ch.. 91.4 µW/ch.. 31.33%. 32. 1 MHz. 120.5 µW/ch.. 78.7 µW/ch.. 34.69%. 8. 2 MHz. 215.4 µW/ch.. 152.4 µW/ch.. 29.20%. 16. 2 MHz. 179.1 µW/ch.. 115.5 µW/ch.. 35.50%. 32. 2 MHz. 159.3 µW/ch.. 95.3 µW/ch.. 40.18%. 64. 2 MHz. 150.0 µW/ch.. 85.8 µW/ch.. 42.80%. 第四節. 其他現有系統比較. 表4.9比較本論文提出的系統與其他功能類似系統的規格。表中的標準 化面積為每通道平均面積(µm2 /ch.),標準化功耗為每通道平均功耗(µW/ ch.)。 論文 [8] 實做了基於 PCA 演算法的特徵擷取電路,但是該電路沒有棘 波偵測功能。該系統採用了與本論文相近的 90 奈米製程,製作出來的晶 片,標準化面積約為本架構 2 的 3.17 倍,標準化功耗約為本架構 2 的 6.07 倍。論文 [9] 實做了包含 NEO 棘波偵測與 PCA 特徵擷取之棘波分類系統, 功能與本論文類似。該系統採用較大的 350 nm 製程,唯運作時脈與棘波 維度未詳細提供。比起本架構 2,標準化面積約為 21.98 倍,標準化功耗 約為 2.99 倍。論文 [4] 實做基於絕對閥值比較(Absolute value threshold). 34.

(42) 演算法之棘波偵測晶片,但該電路沒有實做特徵擷取功能。該系統亦採用 較大的 180 nm 製程,製作完成的晶片,標準化面積約本架構 2 的 1.44 倍, 標準化功耗約為本架構 2 的 1.11 倍。論文 [15] 採用 EC-PC 演算法實作棘 波偵測系統,無特徵擷取功能。該系統採用 130 奈米製程,其晶片面積為 本架構 2 的 5.09 倍,功耗表現與本架構 2 相近。 基於上述比較可以總結,雖然本論文提出的電路架構通道數較多,但 因 NEO 與 GHA 運算單元結構單純,本論文提出的多通道運算單元共享機 制又起資源重複利用之效,本架構之標準化面積與功耗得以遠低於其他現 有的系統。 表 4.9: 與現有系統比較 [8]. [9]. [4]. [15]. 本架構 1. 本架構 2. 標準化. 255,495. 1,770,000. 116,000. 410,000. 83,159. 80,524. 面積. µm2 /ch.. µm2 /ch.. µm2 /ch.. µm2 /ch.. µm2 /ch.. µm2 /ch.. 標準化. 521. 256.875. 95.6. 85. 78.719. 85.828. 功耗. µW/ch.. µW/ch.. µW/ch.. µW/ch.. µW/ch.. µW/ch.. 時脈. 1 MHz. N/A. 16 MHz. N/A. 1 MHz. 2 MHz. 通道數. 1. 16. 16. 16. 32. 64. 棘波維度. 64. N/A. 64. 64. 64. 64. 製程. 90 nm. 350 nm. 180 nm. 130 nm. 90 nm. 90 nm. 棘波偵測. 無. NEO. Absolute. EC-PC. NEO. NEO. 特徵擷取. PCA. PCA. 無. 無. GHA. GHA. 35.

(43) 第五節. 演算法效果分析. 本節探討 GHA 特徵擷取演算法的效果,以模擬結果證明 GHA 不僅架 構簡單,其特徵擷取效果也不輸其他常見特徵擷取演算法。 本節討論選取 PCA 演算法為比較標的。PCA 全名為 Principal Component Analysis,是一常見的特徵擷取演算法。作為測試資料使用的腦波訊 號是由 [16] 所提出之棘波訊號產生器產生。圖4.2顯示 SNR = 4 之三腦神 經元腦波訊號分別由 GHA 以及 PCA 進行特徵擷取,所擷取出的特徵分佈 圖。該圖並以棘波產生器所提供之真實資料(ground truth) ,分別對三個神 經元所產生的資料進行顏色標記。從圖4.2可發現兩者擷取出來的特徵值非 常相近。 圖 4.2: GHA 與 PCA 特徵分佈比較 (b) PCA 特徵分佈. (a) GHA 特徵分佈 Feature Vectors Produced by GHA and Their Ground Truth. Feature Vectors Produced by PCA and Their Ground Truth. 200. 100. 100. 50. 50. 0. 0. −50. −50. −100. −100. −150. −150. −200 −300. −200. Neuron 1 Neuron 2 Neuron 3. 150. y2. y2. 150. 200 Neuron 1 Neuron 2 Neuron 3. −100. 0. 100. −200 −300. 200. −200. −100. y1. 0. 100. 200. y1. 表 4.10: GHA 與 PCA 之分類正確率 SNR (db). 1. 4. 6. 8. 10. GHA. 84.92%. 94.30%. 95.78%. 96.74%. 96.77%. PCA. 84.21%. 94.08%. 95.72%. 96.69%. 96.72%. 36.

(44) 兩者所擷取出來的特徵經由 FCM(Fuzzy C-Means)分類,所得到的分 類正確率如表4.10所呈現。由表可見 GHA 與 PCA 的特徵擷取能力相仿。 以上討論說明了 GHA 演算法不僅電路化架構較簡單,與 PCA 也有相 近的特徵擷取能力。由此可證,GHA 可以作為 PCA 的有力替代演算法。. 37.

(45) 第 五 章 結論 本論文提出、設計並實做一低面積、低功耗之棘波分類硬體電路,並 將該硬體電路實做於 ASIC 流程上。低面積、低功耗的特性,讓本電路更 適合用於植入式應用。 本論文採用 NEO 作為棘波偵測演算法。NEO 為簡單的能量估量方式, 其硬體設計包含儲存腦波樣本的蛇狀圖架構,進行棘波偵測的運算單元, 以及整理棘波訊號的峰值對齊電路。透過蛇狀圖逐一送出各通道腦波訊號 的架構,可達成運算單元共享的目的,減少晶片面積。 本架構之特徵擷取單元實做 GHA 演算法。GHA 是一種簡單的類神經 網路,透過一些公式的變換,可推導出適合高速運算的硬體設計。特徵擷 取單元包含棘波樣本以及權重向量的儲存單元,主成份運算單元,以及權 重更新單元。同棘波偵測單元,在特徵擷取單元中,也透過讓所有通道共 享一組運算單元,來達成降低晶片面積的目的。 為了避免資料流量過大,電路來不及運算,導致資料流失,本架構在 棘波偵測單元與特徵擷取單元中間,設置了一塊緩衝區,提供一定程度的 緩衝空間。本論文亦針對此種緩衝設定下,各參數與系統最大吞吐量的關. 38.

(46) 聯進行詳細分析,以作為電路處理能力與參數選取的依據。 為了降低晶片的整體功耗,本論文介紹並導入 clock gating 技術,透過 中止正反器的時脈供應,降低電路的動態功耗。本架構中因為有許多常時 靜止的記憶體單元(例:特徵擷取單元的權重向量記憶體單元,只有在屬 於該通道的棘波進行運算時,才需啟用),觀察第 四 章所整理的表格可發 現,導入 clock gating 技術後的功耗下降非常明顯。 本論文最後提出實際合成數據,證實本電路的面積/功耗,比起其他 類似功能的電路,有一定程度的競爭力。另外,本論文也提出實驗數據證 實 GHA 與特徵擷取常用的 PCA 演算法相比,擷取能力相去不遠。. 39.

(47) 參考著作 [1] Sarah Gibson, Jack W. Judy, and Dejan Markovic. Spike Sorting: The first step in decoding the brain. IEEE Signal Processing Magazine, 29(1):124– 143, January 2012. [2] D. N. Hill, D. Kleinfeld, and S. B. Mehta. Spike Sorting. In Partha Mitra and Hemant Bokil, editors, Observed Brain Dynamics, chapter 9, pages 257–270. Oxford University Press, 2007. [3] R. Quian Quiroga, Z. Nadasdy, and Y. Ben-Shaul. Unsupervised spike detection and sorting with wavelets and superparamagnetic clustering. Neural Computation, 16(8):1661–1687, August 2004. [4] B. Gosselin, A.E. Ayoub, J.-F. Roy, M. Sawan, F. Lepore, A. Chaudhuri, and D. Guitton. A Mixed-Signal Multichip Neural Recording Interface With Bandwidth Reduction. Biomedical Circuits and Systems, 3(3):129–141, May 2009. [5] J.F. Kaiser. On a simple algorithm to calculate the ‘energy’ of a signal. In Acoustics, Speech, and Signal Processing, volume 1, pages 381–384. IEEE, April 1990. [6] S. Mukhopadhyay and G.C. Ray. A new interpretation of nonlinear energy operator and its efficacy in spike detection. Biomedical Engineering, 45(2): 180–187, February 1998.. 40.

(48) [7] I.T. Jolliffe. Principal Component Analysis. Springer-Verlag New York, 2nd edition, 2002. [8] Tung-Chien Chen, Wentai Liu, and Liang-Gee Chen. VLSI architecture of leading eigenvector generation for on-chip principal component analysis spike sorting system. In Engineering in Medicine and Biology Society, pages 3192–3195. IEEE, August 2008. [9] Tung-Chien Chen, Kuanfu Chen, Zhi Yang, K. Cockerham, and Wentai Liu. A biomedical multiprocessor SoC for closed-loop neuroprosthetic applications. In Solid-State Circuits Conference – Digest of Technical Papers, pages 434–435,435a. IEEE, February 2009. [10] Terence D. Sanger. Optimal unsupervised learning in a single-layer linear feedforward neural network. Neural Networks, 2(6):459–473, April 1989. [11] Simon O. Haykin. Neural Networks and Learning Machines. Prentice Hall, 3rd edition, 2008. [12] B. Yu, T. Mak, X. Li, F. Xia, A. Yakovlev, Y. Sun, and C.-S. Poon. RealTime FPGA-Based Multichannel Spike Sorting Using Hebbian Eigenfilters. Emerging and Selected Topics in Circuits and Systems, 1(4):502–515, January 2012. [13] Wen-Jyi Hwang, Wei-Hao Lee, Shiow-Jyu Lin, and Sheng-Ying Lai. Efficient Architecture for Spike Sorting in Reconfigurable Hardware. Sensors, 13(11):14860–14887, November 2013. [14] Chi-En Ke. Efficient ASIC Architecture for Low-Power Multi-Channel Spike Sorting System. Master’s thesis, National Taiwan Normal University, 2014. [15] Yin Zhou, Tong Wu, Amir Rastegarnia, Cuntai Guan, Edward Keefer, and Zhi Yang. On the robustness of EC-PC spike detection method for online neural recording. Journal of Neuroscience Methods, 235:316–330, Septem-. 41.

(49) ber 2014. [16] Leslie S. Smith. A tool for synthesizing spike trains with realistic interference. Journal of Neuroscience Methods, 159(1):170–180, January 2007.. 42.

(50)

參考文獻

相關文件

在直流馬達控制系統中,為了減少流經馬達繞線電流及降低功率消耗等 目的,常常使用脈波寬度調變信號 (PWM)

[r]

定義為∣G(jω)∣降至零頻率增益(直流增益)值之 0.707 倍 時之頻率或-3dB 時頻率。.

單晶片電路接受到 A/D 轉換器的信號後,即將此數位信號由顥示器 顯示。此時單晶片 IC 並將此一 A/D 轉換器與指撥設定開關做比較,A/D 轉換器的信號高於設定值時,即由 OUT CONTROL

數位計算機可用作回授控制系統中的補償器或控制

表 6.3.2 為不同電壓下,驅動整個系統運作所需電流。圖 6.3.2 為 測試情形。其中紅燈代表正常工作。結果證明只要太陽能板能夠提供

 檢核表中的相關項度包含:主動工作、準時上下 班、不任意請假、工作專注、遵循操作程序、承 受壓力、接受工作變異等 7 項。對照職重系統來 看,主動工作可由表

由圖可以知道,在低電阻時 OP 的 voltage noise 比電阻的 thermal noise 大,而且很接近電阻的 current noise,所以在電阻小於 1K 歐姆時不適合量測,在當電阻在 10K