• 沒有找到結果。

第二章 基礎理論介紹

2.2 SOPC 系統整合設計

隨著科技的進步,電子產品從設計到出廠受到很嚴厲的時間限制,因此如何 在短時間內開發出好的產品是很大的考驗。在傳統的系統設計上,因為軟體與硬 體是分開設計的,要同時兼顧軟體與硬體設計是相當艱難的,且如果在整合軟硬 體時出現錯誤,常常因為不知道錯誤在哪,而需花費大量的時間去檢查軟硬體,

也因此延遲了產品出產時間,降低了競爭力。為了改善軟硬體分開設計的缺點,

可程式化系統晶片設計(SOPC)是一種新的軟硬體整合設計技術,也是一種軟硬 體協同設計技術,能快速將硬體設計(如使用者邏輯電路、微處理器等)與軟體設

計放在單一個可重新規劃的晶片上,此種設計方式使系統具有重複修改等優點,

且整合驗證更加容易,大大降低設計的時間和成本。

Altera 公司根據不同使用者的需求,開發出許多不同系列的 FPGA 開發板,

本研究是在NIOS development kit 中的 Cyclone III 系統開發板上實現我們所提出 的硬體電路,在 NIOS 系統中提供了一套專門給 NIOS 處理器使用的匯流排 (Avalon bus),而使用者設計出的電路可以利用此匯流排上的各個訊號線,將電 路掛在Avalon bus 上與整個系統溝通,如圖 2-1 所示。

NIOS 系統擁有下列優點:

1. Altera 公司所提供的 NIOSⅡ IDE 是視窗介面的軟體開發工具,設計者可以在

第二章 基礎理論介紹

上面編寫程式碼、編譯、除錯及觀察程式執行結果。此開發工具除了包含 C 語言的函式庫外,還包含HAL(hardware abstraction layer)函式庫。其中 HAL 函 式 庫 提 供 設 計 者 一 個 呼 叫 系 統 相 關 裝 置 的 API(Application Program Interface),如圖 2-2 所示,所以設計者可以撰寫 C 語言程式並透過 HAL API 呼叫來讓特定的裝置運作。

2. 提供 Compact Flash 卡存取功能,讓設計者可以將資料置於 CF 卡中,設計者 可透過HAL API 進行讀取與寫入的動作。

3. 提供 DMA(direct memory access)機制讓設計者可加快資料在記憶體與系統周 邊元件的傳輸速度且不佔用CPU 資源。

4. lwIP 提供基本的網路功能,除了符合嵌入式系統最基本的簡單、快速、不佔

用過多系統資源之外,也讓設計者更容易修改或增刪想要的功能而不需有大 量的修改或變更程式。

5. 設計者可依自己的需求增減電路的功能,製作一個專屬的系統。如需增減裝 置時,只要重新build 系統並 compile 成硬體檔之後燒入板子即可。

整個系統的設計流程,如圖2-3 所示,首先使用 Altera 公司提供的 Quartus II 軟體,將以硬體描述語言編寫的原始程式進行邏輯電路合成之編譯,再利用SOPC

第二章 基礎理論介紹 Builder 將此電路掛載至 Avalon bus 上,之後再將整個系統燒入到 FPGA 板子上,

最後,利用NIOS II IDE 編譯軟體程式並觀看執行結果。

圖2-1 Avalon System

圖2-2 HAL API

第二章 基礎理論介紹

圖2-3 軟硬體共同設計流程圖

第三章 Fast CL 架構與硬體實現 一個星星圖示來代表贏家。

圖3-1 一般管線化架構的例子

到了第二個時脈週期,訓練向量 x1進到了第二個層級,與neuron 2 進行相

第三章 Fast CL 架構與硬體實現

設neuron 1 依然是目前最為相似的神經元,則 neuron 1 依然是目前的贏家,neuron 2 便失去了對訓練向量 x1的競爭,標示上叉叉符號以代表淘汰的神經元。

第三個時脈週期與第二個時脈週期一樣,neuron 3 依然無法打敗 neuron 1,

neuron 1 依然是目前的贏家。

到了第四個時脈週期,在訓練向量 x1 進行了最後一個神經元的相似度計算 並進行比較之後,我們獲得了最後真正的贏家─依舊是neuron 1,我們在此可以 觀察到一個情況,由於贏家通吃競爭式學習法則在神經元更新方面是屬於即時更 新,當獲勝的神經元尚未完成更新時,下一個訓練向量是無法與之進行相似度運 算,在我們的例子裡,很不湊巧的是獲勝神經元neuron 1 剛好位在管線化架構第 一個層級,導致了訓練向量 x2 始終無法進到我們的管線化架構裡進行訓練,而 neuron 2、neuron 3 和 neuron 4 雖然已經早已失去了對訓練向量 x1的競爭力,也

因為獲勝的神經元 neuron 1 擋在前面,無法進行和下一個訓練向量 x2的相似度 運算。

由以上的例子可以看到,贏家通吃競爭式學習法則實現在管線化架構上,當 遇到獲勝的神經元集中在前面的層級時,會造成阻擋(block)效應,整體的管線化 產能將會非常的低落,在最壞情況下,若贏家神經元剛好就位於管線化第一個層 級,則神經元數目為 N 時,每個訓練向量皆須等上 N 個時脈週期的找出贏家時

第三章 Fast CL 架構與硬體實現 間,以及一個時脈週期的神經元更新時間,也就是需整整等上(N+1)個時脈週期,

顯然這樣的情況,是我們極力想要去避免的。

我們可以歸納出一個重點,一般的管線化架構之下,效能取決於贏家神經元 的分布,當贏家神經元集中在管線化層級的後半段,便能擁有不錯的效能,但是 若不幸的贏家神經元集中在管線化層級前半段,效能將會非常低落,可惜的是,

贏家神經元的分布根本無法事先預知,因為若不和所有的神經元進行完相似度運 算,又如何得知真正的贏家神經元位在何處,所以如何將這種缺點去除掉,並使 管線化架構始終維持在最高的產能上,便是我們的目標。

第三章 Fast CL 架構與硬體實現

3.2 交換機制 (Swapping)

我們提出一個簡單、有效的方法來巧妙解決贏家神經元的分布問題以及其帶 來的阻擋效應問題,這方法便是─神經元交換機制(swapping),此機制核心圍繞

著“贏家帶著走"的概念,我們在此一樣以一些簡單的圖表,來詳細呈現此機制 是如何運作,並解決了問題。

如圖3-2 所示,我們一樣給予兩個訓練向量 x1、x2以及四個神經元,分別為 neuron 1 到 neuron 4,在第一個時脈週期時,訓練向量 x1 一樣進到了第一個管線

化層級,與neuron 1 進行相似度計算,隨之 neuron 1 也理所當然的成為了目前贏 家神經元。這裡的步驟都與一般的管線化架構一模一樣。

當來到了第二個時脈週期,訓練向量 x1一樣進到了第二個層級,與neuron 2 進行相似度運算,再將計算結果與目前的贏家(neuron 1)進行比較,我們一樣假 設neuron 1 是最為相似的神經元,所以 neuron 1 依然是目前的贏家,neuron 2 便 失去了對訓練向量 x1的競爭,並標示上叉叉符號。

第三章 Fast CL 架構與硬體實現

圖3-2 交換機制運作的例子

到了以上的步驟之前,皆與一般的管線化架構無異,但此時才是我們交換機

第三章 Fast CL 架構與硬體實現

在被淘汰的神經元前面,我們便將這兩個神經元的位置做交換,我們可以清楚看 到原先位在管線化第一個層級的neuron 1 與位在管線化第二個層級的 neuron 2,

此時已經彼此交換了位置,這樣交換的好處,將會在下一個時脈週期顯現出來。

在第三個時脈週期我們可以看到,已經被淘汰的神經元neuron 2,由於已經 失去對訓練向量 x1 的競爭,同時前方也沒有獲勝神經元所阻擋,此時新的訓練 向量 x2便可順利的進到管線化層級中第一個層級,與neuron 2 進行相似度運算,

而如同之前所說的,neuron 2 也理所當然的成為了訓練向量 x2目前的贏家神經元。

一樣的時間點,訓練向量 x1也來到了第三個層級,進行與neuron 3 的相似度運 算以及和目前贏家的比較,在這我們依然假設neuron 1 成為了贏家,因此交換機 制再度啟動,將neuron 1 及 neuron 3 的位置彼此交換。

在第二與第三兩個時脈週期,我們都展示了交換機制的運作方法,到了第四 個時脈週期,我們將展示出一些不一樣的情況。當訓練向量 x2 來到了管線化層 級中的第二個層級,進行與neuron 3 的相似度運算與比較,發現到 neuron 3 擁有 比neuron 2 更高的相似度,此時的動作非常簡單,不需要任何交換,我們只須標 記上neuron 3 成為了獲勝神經元,neuron 2 成為了被淘汰的神經元即可。此時訓 練向量 x1的動作就如同往常一般,我們就不再重複敘述。

透過以上的範例,我們可以清楚看到整個交換機制的運作方式,是伴隨著其

第三章 Fast CL 架構與硬體實現

核心想法“贏家帶著走",當訓練向量走到哪,贏家神經元就跟到哪,如此一來 我們可以完全避免掉獲勝神經元的阻擋效應問題,而原本屬於靜態的神經元分布,

也透過我們動態的交換機制,始終將獲勝神經元往後帶,讓整體的管線化效能達 到最大化。

3-3 在神經元數目 N=8 下之管線化層級縮圖,以陰影表示訓練向量所存 在的層級,空白代表未有訓練向量存在的層級

同時我們也可以注意到,訓練向量之間需要間隔一個時脈週期,換言之,假 設訓練向量 xk目前位在管線化層級i,則訓練向量 xk+1此時必不能位在管線化層 級i-1,這樣的間隔是合理且必須要的,因為對 xk來說,其目前贏家候選神經元

yj*會待在管線化層級i-1 中直到交換機制執行完成。而在競爭式學習法則中,贏 家神經元在更新之前是不能參與下一個訓練向量的競爭,因此當 xk來到管線化 層級i 時,若 xk+1也來到管線化層級i-1,這樣就會造成 xk目前的贏家候選神經

第三章 Fast CL 架構與硬體實現

為例,訓練向量在管線化層級之中的分布,會如圖3-3 所示,彼此之間會間隔至 少一個層級。所以一個 (N+1) 層級的管線化架構,能夠同一時間允許 () 個神 經元競爭平行去運算。

第三章 Fast CL 架構與硬體實現

3.3 Fast CL 架構與硬體實現

透過範例我們清楚了解到交換機制對本論文管線化架構的重要性及必要性,

在此我們便更進一步的詳細定義交換機制的運作情形:

假設訓練向量 xk目前位在管線化層級i,我們令 yi代表位在層級i 的神經元 相對應權重向量,Dmin代表在管線化層級 1 到層級 i-1 之中,xk與其所選出的目

假設訓練向量 xk目前位在管線化層級i,我們令 yi代表位在層級i 的神經元 相對應權重向量,Dmin代表在管線化層級 1 到層級 i-1 之中,xk與其所選出的目

相關文件