對於所提出之硬體架構與實驗結果進行總結。
第二章 基礎理論與背景介紹
本章節將介紹本論文所使用的基礎理論與技術背景,針對電路所使用之 GHA 與 FCM 演算法做說明,以及如何應用至棘波分類系統和運作流程。
2.1 GHA 演算法
令
𝐱(𝑛) = [𝑥1(𝑛), … , 𝑥𝑚(𝑛)]𝑇 , 𝑛 = 1, … , 𝑡 (1)
𝐲(𝑛) = [𝑦1(𝑛), … , 𝑦𝑝(𝑛)]𝑇 , 𝑛 = 1, … , 𝑡 (2) 分別為 GHA 第 𝑛 筆輸入與輸出向量。而 m,p 以及 t 分別為向量維度、主成分個 數、輸入與輸出向量個數。而輸出向量 𝐲(𝑛) 與輸入向量 𝐱(𝑛) 關係如下:
𝑦𝑗(𝑛) = ∑ 𝑤𝑗,𝑖(𝑛)𝑥𝑖(𝑛)
𝑚
𝑖=1
(3)
其中 𝑤𝑗,𝑖(𝑛) 代表第 𝑛 次迭代過程中第 𝑗 個神經元的第 𝑖 筆突觸權重值。
令
𝐰𝑗(𝑛) = [𝑤𝑗,1(𝑛), … , 𝑤𝑗,𝑚(𝑛)]𝑇 , 𝑗 = 1, … , 𝑝 (4) 為第 𝑗 筆突觸權重向量。每筆突觸權重向量 𝐰𝑗(𝑛) 根據赫賓學習法則 (Hebbian
𝑤𝑗,𝑖(𝑛 + 1) = 𝑤𝑗,𝑖(𝑛) + 𝜂 [𝑦𝑗(𝑛)𝑥𝑖(𝑛) − 𝑦𝑗(𝑛) ∑ 𝑤𝑘,𝑖(𝑛)𝑦𝑘(𝑛)
反覆迭代計算至 J 值收斂為止。
2.4 GHA 與 FCM 電路架構簡介
本論文之電路主要是引用論文[11]所設計之電路,針對棘波分類系統架構可分
為三大單元,分別是 GHA 單元、FCM 單元以及 Global 控制器,GHA 單元被用 來做特徵擷取,計算 𝐰𝑗 , 𝑗 = 1, … , 𝑝 以及 𝐟𝑛 , 𝑛 = 1, … , 𝑡 ,接著 FCM 負責分群,
FCM 單元會計算分類過後的質量中心點 𝐯𝑗 , 𝑗 = 1, … , 𝑐 供後續分類判斷使用,
Global 控制器則是負責操控本架構中 GHA 與 FCM 電路的運作。圖 2.1 說明了此 棘波分類架構。
圖 2.1 棘波分類系統架構
GHA 單元又可分為三部分:記憶體 (Memory) 單元、突觸權重更新 (Synaptic Weight Updating , SWU) 單元、主成分計算 (Principal Components Computing , PCC) 單元。GHA 有兩個運作模式:訓練模式、特徵擷取模式。訓練模式會依據
輸入的棘波訊號經由迭代計算後調整突觸權重值,而特徵擷取模式會計算出來源
而 FCM 單元架構中包含了六個子單元:pre-computation 單元、membership coefficients updating 單元、center updating 單元、cost function computation 單元、
FCM memory 單元以及 FCM 控制單元。下圖 2.3 則是 FCM 電路的方塊圖。
圖 2.3 FCM 單元之方塊圖
最後,棘波分類電路利用 Global 控制器 (Global Controller) 來操控 GHA 與 FCM 電路間的資料傳輸。圖 2.2 為由 Global 控制器來控制棘波分類系統的流程圖,輸 入棘波訊號傳送至 GHA 電路訓練出權重向量,待訓練完畢後相同的棘波訊號再 度被傳送至 GHA 電路當中計算出其特徵向量。直到 GHA 電路計算完所有特徵向
Pre-computation Unit
Membership coefficients updating Unit
Cost function computation Unit
Center updating Unit
On-Chip Center RAM
量後 FCM 電路才會被啟動,特徵向量由 GHA 電路一次傳送一筆至 FCM 單元中 訓練出新的質心,持續重複傳送相同的特徵向量,直到 FCM 訓練完畢,最後 FCM 單元訓練完成後所獲得的質量中心點將被用來分類棘波訊號。關於棘波分類的詳 細內部電路架構及運作情形可參見論文[11]
圖 2.4 Global 控制器單元運作流程圖
Deliver x(n),n=1,…,t,from Onchip RAM to GHA Unit repeatedly for GHA training until GHA training process has completed
Deliver fn,n=1,…,t,from GHA Unit to FCM Unit repeatedly for FCM training until FCM training process has completed
1. Deliver x(n),n=1,…,t,from Onchip RAM to GHA Unit for GHA feature extraction
2. GHA Unit compute feature vector fn,n=1,…,t
Return the center vi,i=1,…,c to NIOS CPU
第三章 系統架構
本章會詳細介紹本論文所提出之以 NOC(Network on chip)技術實現棘波分類硬 體系統,將詳細介紹 NOC 的發展,工作原理,系統架構以及與傳統 SOPC 架構 做比較。
3.1 SOC 架構
System on chip(SOC)[12]是將各式的功能模組整合在單一晶片中,也因此可以提 升系統效能、降低功率消耗、縮小面積等優點。由於 IC 與半導體技術的快速發 展,嵌入式電子產品的功能也越來越複雜,SOC 已漸漸的不能滿足需求,原因有 以下幾點,可擴展性差,傳統 SOC 採用了匯流排(bus)結構,而該結構限制了可 連接的資源數目,且 bus 的地址空間不能無限制的擴張。而 SOC 是使用共享匯流 排(shared bus)的概念,如圖 3.2 所示,然而,當單一晶片上的功能與元件愈來愈 多時並且需要大量的連線(interconnection)作為連接時,雖然匯流排可由多個元件
(component)共享,但是一條 bus 無法支持一對以上的元件同時通訊,也就是所謂 的專線專送。當一方以廣播方式傳送資料時,各端皆能接收到資料,但這也會讓 不需要資料的元件也同樣接收到,這個狀況會造成系統資源上不必要的浪費。這 種通訊方法為現在的通訊瓶頸,此架構不再符合現今需求,其擴展性受到了限制。
除此此外,system on chip 可含有數量龐大的矽智財(Silicon IP; SIP)模組,而在匯
流排傳輸模式下,傳輸資料延遲、電路同步、雜訊和功率消耗的問題,均隨著製 程縮小而需要大幅度改進。另一方面,當單一晶片內可擺放電晶體總數量急遽增 加而愈來愈複雜時,晶片內部的通訊傳輸將影響晶片處理效率, 傳統的匯流排 傳輸已經漸漸地不敷使用。
圖 3.1 共享匯流排圖示
3.2 NOC 架構
由於傳統的SOC逐漸地不敷使用,新一代的技術NOC(Network on chip)被提了 出來,NOC可以說是SOC的升級版、加強版。為了確保各個元件之間資料傳輸與 訊號溝通的正確性,將網路封包傳輸概念應用於晶片上,以進行不同矽智財模組 間的資料交換。這種將單晶片系統內部的傳輸介面轉換成由網路模式傳輸的方式 及為NOC( Network-on-Chip) ,NOC系統內通常包括IP cores、網路介面(Network
interface,NI)、和路由器(Router),圖3.2是NOC的基本架構圖[13]。
不同元件間的通訊採用以封包的方式,NI取代了以往的匯流排,其功能是將資 料做壓縮與解壓縮以及建立起各元件之間的連線。Router在NOC當中是最重要的 角色,可由某些特定的元件來當router,在NOC架構中並不侷限Router的個數,他 能將封包化後的資料正確傳送到目的地。採用NOC架構各元件間可以獨立運作,
傳遞資料也不像傳統SOC模式造成資源浪費,速度也能夠提升。除此此外,NOC 對於實現多核心嵌入式系統也比傳統SOC具有良好的效能,如圖3.3、圖3.4所示
SOC因為共用匯流排,同一時間只允許一個處理器存取,而記憶體存取速度遠遠 超越處理器的處理速度,所以當處理器數目變多,整個系統的效率將會低下,而
NOC架構則改善了這個問題,更適合多核心的系統開發。
圖 3.2 NOC 架構圖
圖 3.3 SOC 架構下的多核心系統示意圖
本論提出以 NOC 技術之棘波分類系統是採用 Altera 公司提供的 Altera Quartus II 12.1 來開發,由 Qsys System[15]來建立此客製化系統,Qsys 為傳統 SOPC Build 的下一代系統開發工具,具有下列優點:
1 Faster development 使用方便的 GUI 介面提供給設計者,讓 IP 與子系統快速的 整合,且能自動產生內部邏輯電路以及系統 HDL (Hardware Description Language),
也可將原本 SOPC Builder 設計移植到 Qsys 上。
2. Faster timing closure 基於 NOC 架構之 Qsys 高效能連接和自動管線化傳輸,其 效能高出了傳統 SOPC Builder 互聯系統架構兩倍以上。
3 Faster verification 利用自動產生 testbench 的功能並使用通過驗證的 IP 套件能夠 快速地開始模擬。
3.3 NOC-Based 棘波分類系統
本論文所提出之架構為建置在NOC系統中使用者客製化邏輯電路(custom user logic)系統中主要包含了NIOS CPU[16]、DMA(Direct Memory Access) controller和 on-chip RAM,如圖3.5所示。使用NOC技術解決了傳統匯流排架構問題如通訊效 率、延遲問題以及單一時脈同步化(single clock synchronization)[17]。在典型的棘 波分類系統中,必須傳送輸入的棘波訊號、特徵向量和分類結果,因此,NOC對 於本架構的傳輸速度和產能(throuput)能夠有效的提高。
圖 3.5 以 NOC 為基礎的棘波分類系統
如圖3.6所示,在典型的棘波分類系統中可分為三部分運作:棘波偵測,特徵擷
CPU上運作之軟體來實現棘波偵測,本論文所提出之架構為後兩者,也就是棘波 偵測與特徵擷取的部分,在這兩部分,所有被偵測到的棘波訊號將儲存在on-chip
RAM中然後再傳送至本論文提出之棘波分類電路,且利用DMA為基礎傳遞訓練 資料可使得本系統對於記憶體存取的overhead最小化。在NOC中NIOS軟核CPU能 協調不同的元件,也負責電路的運作和控制。最後,特徵擷取和分類的結果將存 放於GHA和FCM電路中的記憶體單元供之後的操作。
圖 3.6 以 NOC 為基礎的棘波分類系統運作流程
第四章 實驗數據與效能比較
本章節將呈現本論文所提出的棘波分類系統硬體架構之正確性、實際效能量測 與比較,以及實驗環境的介紹
4.1 開發平台與實驗環境介紹
本論文所提出的棘波分類硬體架構是以 Altera 公司所設計的 Cyclone IV GX EP4CGX150DF31 開發板,如圖 4.1 所示。其特點為低功率消耗以及低開發成本,
非常符合棘波分類晶片的需求。同時,拜製程進步所賜 Cyclone IV FPGA 採用 65 奈米製程,使得功率消耗較以往 FPGA 降低約 30%。而利用 FPGA 可重複修改硬 體電路設計與快速驗證的優點使得棘波分類晶片可以快速且容易的更新演算法 則,同時低開發成本也使 FPGA 變得更具優勢。
表 4.1 為本實驗開發板中所提供的相關硬體資源,也因其提供大量的硬體資源 及與周邊元件豐富的溝通介面,使得使用者能將許多複雜的演算法則整合至開發 板中,成為一套完整且獨立的嵌入式系統。
Feature Cyclone IV Device GX EP4CGX150DF31
Process 65nm
LEs 149760
Embedded Memory(Kbits) 6480 18-bit x 18-bit Multipliers 360
User I/O 475
Transceivers 8
PLLs 8
Package Type 896-pin
表 4.1 Altera Cyclone IV GX EP4CGX150DF31 開發板規格表
本論文使用 Altera Quartus II 12.1 版本搭配 Verilog 硬體描述語言進行設計與開 發,由 Qsys System 建立客製化系統,於 Qsys 中加入 CPU,DMA-Controller,on-chip
memory 及客製化電路(棘波分類電路)。並透過 Quartus II 提供的語法檢查、時序
分析、邏輯元件的配置等等強大功能,可以快速建立出系統架構,且藉著模擬訊 號的波型圖來驗證其正確性。同時,使用 Altera 公司也提供了以 Eclipse 為基礎的
NIOS II IDE 軟體供使用者使用,所有在系統中的軟體開發都可以在 NIOS II IDE 下完成,設計者需撰寫 C 語言程式碼,利用其所提供的應用程式、函式庫及驅動 程式來與 FPGA 開發板溝通,加速 Qsys 系統的開發。圖 4.2 為 Qsys 系統開發流 程圖。本論文除了使用 Verilog 來實作所提出之硬體電路架構外,也會以 MATLAB 軟體來來實現 GHA 與 FCM 演算法,並運作於 CPU Intel i7-930 當中,以相同的 演算法則來和硬體電路架構的執行結果相互做比較。
硬體實驗環境
Device: Altera Cyclone IV EP4CGX150DF31 CPU: NIOS II 1GHz
Memory: 128-MB DDR2 SDRAM 軟體實驗環境
Cpu :Intel®Core™ i7 CPU [email protected]
Memory: DDR III 8.0G
4.2 實驗數據呈現與討論
為了量測針對棘波分類本論文所提出的電路架構之實際效能,本論文採用由[18]
所開發用來產生神經元訊號的模擬器做為測試棘波資料來源,該模擬器提供了各
所開發用來產生神經元訊號的模擬器做為測試棘波資料來源,該模擬器提供了各