針對長係數有限脈衝響應濾波器硬體實現且符合成本效益的摺疊技巧
86
0
0
全文
(2) 針對長係數有限脈衝響應濾波器硬體實現 且符合成本效益的摺疊技巧 A Cost-Efficient Folding Technique for Long-Length FIR Filter Implementation. 研 究 生:楊明峰. Student:Ming-Feng Yang. 指導教授:董蘭榮. Advisor:Lan-Rong Dung. 國 立 交 通 大 學 電 機 與 控 制 工 程 學 系 碩 士 論 文. A Thesis Submitted to Department of Electrical and Control Engineering College of Electrical Engineering and Computer Science National Chiao Tung University in partial Fulfillment of the Requirements for the Degree of Master in Electrical and Control Engineering July 2005 Hsinchu, Taiwan, Republic of China. 中華民國九十四年七月.
(3) 針對長係數有限脈衝響應濾波器硬體實現 且符合成本效益的摺疊技巧. 學生:楊明峰. 指導教授:董蘭榮 博士. 國立交通大學電機與控制工程研究所. 摘. 要. 本篇論文針對有限資源實現長係數有限脈衝響應濾波器提出了兩種有效率 摺疊硬體的演算法,其所採用的摺疊演算法是根據處理速率( Throughput )條件來 做評估。在架構中使用少量的運算器,規劃其運作時序,就可分時完成工作,如 此一來可以減少硬體中乘加運算器的數目,縮小硬體的面積。摺疊演算法非常適 合於處理速率不需要很高的陣列硬體架構,尤其是對於陣列的運算單元個數會因 規格的不同而有數目上變化的應用。利用推導成本函數來比較各種摺疊演算法在 硬體實現上面積與功率消耗優劣,發現 Parallel-In 摺疊演算法在兩方面效能表現 皆是最佳,並透過 WCDMA 規格實際實現各種摺疊演算法得到證明;最後,使 用 UMC 0.18μm 1P6M CMOS 製程完成晶片下線。. I.
(4) A Cost-Efficient Folding Technique for Long-Length FIR Filter Implementation. Student:Ming-Feng Yang. Advisor:Dr. Lan-Rong Dung. Department of Electrical and Control Engineering National Chiao Tung University. ABSTRACT This thesis presents two hardware efficient folding techniques for limited-resource implementation of long-length FIR filtering. Under the requirement of the throughput rate, we fold the FIR with the minimal number of processing elements (PEs) while the complexity of scheduler is low. The proposed folded architecture is highly scalable as the application parameters change.Cost functions are derived and these are used to address two related issues. The first issue focuses on memory requirements in folded architectures. The second is power consumption. The result of memory requirements and power estimation show that Parallel-In folding technique can turn out less memory area and power dissipation than do other folding techniques. Finally, the chip is implemented by using the UMC 0.18 μm 1P6M CMOS technology.. II.
(5) 目錄 中 文 摘 要 …………………………………………………………………………… Ⅰ 英 文 摘 要 …………………………………………………………………………… Ⅱ 目錄……………………………………………………………………………..……Ⅲ 圖目錄…………………………………………………………………………….….Ⅴ 表目錄……………………………………………………………………………..…Ⅶ 第一章 緒論 ...............................................................................................................1 1.1 研究動機.........................................................................................................1 1.2 論文摘要.........................................................................................................4 第二章 研究背景 .......................................................................................................6 2.1 摺疊技術.......................................................................................................6 2.2 時序規劃.......................................................................................................7 2.2.1 單一節點時序規劃............................................................................9 2.2.2 切集合時序規劃..............................................................................10 2.3 第一篇系統化摺疊演算法[9].................................................................... 11 2.4 摺疊位元平面有限脈衝響應濾波器[6]....................................................13 2.4.1 位元平面濾波器架構......................................................................14 2.4.2 位元平面濾波器轉換公式推導......................................................15 2.4.3 實現位元平面摺疊架構..................................................................16 第三章 新摺疊演算法之推演與建立 .....................................................................18 3.1 新摺疊演算法的硬體架構推導.................................................................19 3.2 以摺疊演算法實現硬體之方法與特色.....................................................25 3.3 新摺疊演算法一( Parallel-In ) ………...………………………………...26 3.3.1 雛型轉換..........................................................................................26 3.3.2 排程矩陣..........................................................................................29 3.4. 新摺疊演算法二( Serial-In )……………………………………………..34. 第四章 硬體實現架構 .............................................................................................36 4.1 新摺疊演算法一硬體實現.........................................................................37 4.1.1 處理器陣列......................................................................................38 4.1.2 暫存器檔案......................................................................................39 4.1.3 控制單元..........................................................................................40 4.2 新摺疊演算法二硬體實現...........................................................................41 4.2.1 處理器陣列......................................................................................43 4.2.2 暫存器檔案......................................................................................43 III.
(6) 4.2.3 控制單元..........................................................................................45 4.3 硬體實現成本函數.....................................................................................45 4.3.1 面積成本函數..................................................................................46 4.3.2 功率消耗成本函數..........................................................................50 4.4 摺疊演算法實現 WCDMA 規格並比較...................................................53 4.4.1 原始架構及各種摺疊架構實現......................................................53 4.4.2 軟體模擬面積大小及功率消耗情形..............................................56 4.4.3 結果分析..........................................................................................58 第五章 設計流程與模擬結 設計流程與模擬結果 果 .................................................................................60 5.1 設計流程.....................................................................................................60 5.2 功能驗證.....................................................................................................62 5.3 電路合成.....................................................................................................65 5.3.1 測試電路..........................................................................................65 5.3.2 邏輯閘合成......................................................................................67 5.4 晶片規格與佈局設計.................................................................................68 5.5 DRC&LVS 驗證與佈局後模擬 .................................................................70 第六章 結論 .............................................................................................................72 6.1 主要貢獻.....................................................................................................72 6.2 未來展望.....................................................................................................73. 參考文獻……………………………………………………………………………..75 參考文獻. IV.
(7) 圖目錄 圖 2.1. 時序規劃範例………………………………………………………………..8. 圖 2.2. 單一節點時序規劃…….…………………………………………………….9. 圖 2.3. 切集合時序規劃範例………………………………………………………10. 圖 2.4. 乘加器實現五階有限脈衝響應濾波器…………………………….………11. 圖 2.5. 圖 2.4 的摺疊架構……………………………………………….………….12. 圖 2.6. 位元平面架構資料流程圖(K=3 ,b=4)………………………….………….14. 圖 2.7. 轉換資料流程圖使能應用摺疊技術………………………….…………...16. 圖 2.8. 位元平面濾波器摺疊架構圖………………………………….…………...16. 圖 2.9. 位元平面摺疊架構…………………………………………….…………...17. 圖 3.1. 基本運算單元轉換乘加點…………………………………………………20. 圖 3.2. 運算單元陣列………………………………………………………………21. 圖 3.3. 運算單元陣列時序規劃……………………………………………………22. 圖 3.4. 運算單元陣列摺疊架構……………………………………………………23. 圖 3.5. 摺疊架構之乘加器與暫存器規劃…………………………………………23. 圖 3.6. 摺疊架構暫存器定址規劃…………………………………………………24. 圖 3.7 K-1 階有限脈衝響應濾波器架構..…………………………………………26 圖 3.8. 雛型轉換步驟-Scaling………....…………………………………………27. 圖 3.9. 雛型轉換步驟-Retiming..……....…………………………………………28. 圖 3.10. 雛型轉換步驟-Replacing...……………………………………………...28. 圖 3.11 MAC 操作時序………….....……………………………………………...31 圖 3.12 Serial-In 演算法( K=12, r=3 )…………………………………………......34 圖 3.13. 圖 3.12 摺疊架構實現…………………………………………………......35. 圖 4.1. 新摺疊演算法實現架構概念圖……………………………………………37. 圖 4.2 Parallel-In 處理器陣列………..……………………………………………38 圖 4.3 Parallel-In 暫存器檔案………..……………………………………………39 圖 4.4 Parallel-In 控制單元…………..……………………………………………40 圖 4.5 Serial-In 演算法…..…………..………………………………………….…41 圖 4.6 Serial-In 摺疊架構實現……..………………………………………….…..42 圖 4.7 Serial-In 的 MAC 運作內容時序……………………………………….…..42 圖 4.8 Serial-In 處理器陣列………..………………………………………………43 V.
(8) 圖 4.9 Serial-In 暫存器檔案………..………………..……………………………..44 圖 4.10 Serial-In 控制單元…………..……………..………………………………45 圖 4.11. 面積成本函數……………………………..……………………………….49. 圖 4.12. 功率消耗成本函數……………………….……………………………….52. 圖 4.13. 原始架構………………………………….……………………………….53. 圖 4.14 [9]實現規格架構…...……………….….………………………………….54 圖 4.15 [6]實現規格架構…...……………….……….…………………………….55 圖 4.16 Parallel-In 實現規格架構…...…….……....……………………………….55 圖 4.17 Serial-In 實現規格架構…...……….…....…………………………………56 圖 5.1. 設計流程圖………………………….……………………………………...61. 圖 5.2. 量化係數及其頻率響應圖………….……………………………………...63. 圖 5.3. Impulse Response 驗證結果圖…..….…………….………………………...64. 圖 5.4 sin(w1t) + sin(w2t)驗證結果圖…..….………….…………………………...64 圖 5.5. 正反器置換為可掃描正反器……….………….…………………………..65. 圖 5.6 Design Compiler 合成電路圖……………….……………………………..68 圖 5.7. 晶片佈局圖………………………….…….………………………………..69. 圖 5.8 DRC 驗證………………………….……...…………………………………70 圖 5.9 LVS 驗證………………………….……...………………………………….71 圖 5.10. 佈局後驗證……………………..….…..………………………………….71. VI.
(9) 表目錄 表 2.1. 圖 2.5 時序操作表…………………………………………………..………13. 表 3.1 Data Matrix….......………………………………………………..…………30 表 3.2 Coefficient Matrix….......…………………………………..………………..30 表 3.3 Feedback Matrix….......………………………………….………………….30 表 3.4 Accumulator Matrix….......……………………………….…………………30 表 3.5. 暫存器內容.............….......…………………………………………………32. 表 3.6 Data Matrix….......………………………………………..…………………33 表 3.7 Coefficient Matrix….......………………………………..…………………..33 表 3.8 Feedback Matrix….......………………………………….………………….33 表 3.9 Accumulator Matrix….......……………………………….…………………33 表 4.1. 成本函數符號意義........................................................................................46. 表 4.2 WCDMA 規格................................................................................................53 表 4.3 Design Compiler 模擬面積大小....................................................................57 表 4.4 PrimePower 模擬功率消耗............................................................................57 表 5.1. 符合規格量化係數........................................................................................62. 表 5.2. 測試涵蓋率評估............................................................................................67. 表 5.3. 各單元面積統計............................................................................................68. 表 5.4. 晶片規格列表................................................................................................69. 表 5.5 PAD 使用列表................................................................................................69. VII.
(10) 第一章. 緒論. 1.1 研究動機 隨著科技的日新月異與物質生活水準的提昇,科技生活的來臨,更是拉近了 人與人之間的距離,除了追求生活上的便利,更重視聽覺與視覺等感官上的享 受,這些全都依賴具有高效能、高精確度、高可靠度與可晶片化等多項優點之數 位訊號處理器的輔助,舉凡 3 D 動畫、行動電話、虛擬實境、語音辨識、DVD 等 語音、音效、影像的應用,都可以利用數位訊號處理器來實現。. 今日的寬頻無線通訊與多媒體應用更是如此地蓬勃發展,消費性電子產品更 如雨後春筍般出現在每個人的生活中,也因此造成數位訊號處理器被廣泛的採 用。隨著製程技術的進步,特殊應用積體電路(ASIC)具有體積小與低功率消耗等 特性,正符合可攜式元件的市場需求,而由於電池材質無法突破,所以數位訊號 處理器(DSP Processor)的設計除了高速外,為了能延長產品的使用時間,低功率 消耗也成為目前數位訊號處理器的發展研究重點。 1.
(11) 而在數位訊號處理系統中,有限脈衝響應濾波器( FIR filter )是最基本的函數 功能及元件,例如在通訊與多媒體系統中,有限脈衝響應濾波器可以保證其系統 的穩定性且實現的架構不需要太複雜,所以有限脈衝響應濾波器成為移除訊號中 不需要部份的熱門技術。在品質要求很高的( Quality-Sensitive )應用中,有限脈 衝響應濾波器的 taps 數通常要很大,taps 的範圍從數十到數百之間。然而,越高 階的有限脈衝響應濾波器將會導致越大的硬體面積,同時,也有著嚴重的功率消 耗問題。. 數十年來,建議使用許多方法來減少有限脈衝響應濾波器的硬體複雜度 [1]-[12],可以歸類成三大方向:乘法器的減少( Multiplier Reduction )、去乘法器 化的實現( Multiplierless Realization )、資源重複使用( Resource Sharing )。相關減 少有限脈衝響應濾波器硬體複雜度,列出幾個常見的做法如下:. 1. 線性相位有限脈衝響應濾波器[3][8]推薦來減少乘法器個數,利用線性相位有 限脈衝響應濾波器係數的對稱特性,可以減少二分之一的乘法器個數,大約 可減少一半的硬體面積;. 2. 區塊化( Block )有限脈衝響應濾波器設計[4][11]使用[13]中的 Overlap-Add 方 法來減少區塊化有限脈衝響應濾波器中乘法的複雜度,但必須做一些犧牲, 就是需要增加一些額外的加法器;. 3. 使用分散式運算( Distributed Arithmetic, DA)技術來完成有限脈衝響應濾波器 的 乘 累 加 動 作 , 由 於 分 散 式 運 算 是 位 元 串 流 的 去 乘 法 器 化 ( Bit-Serial Multiplierless )的計算操作,主要是用在計算向量內積上,而分散式運算是利 用查表法來縮短乘法動作所耗費時間,藉著儲存全部可能的中間計算值在查 表( Look-Up-Table )記憶體中,而藉由乘數的位元值來選擇正確的中間計算 值,然後做累加移位的動作來完成向量內積的動作[1][5][12];然而,減少計 算複雜度可能會導致設計本身的效能( Performance )變差,使得成本最佳化 (Cost-Optimization )成為另一重要議題。. 2.
(12) 當應用所需的資料處理速度( Throughput )小於實際電路本身可操作的速度 時,這時候可以使用上一種技術-摺疊( Folding )技術也是一種有效率資源共用 ( Resource Sharing ) 的 技 術 , 此 技 術 允 許 以 犧 牲 電 路 可 操 作 的 最 大 速 度 ( Throughput )來交換減少硬體實現的面積( Silicon Area ),但同時也減少了功率的 消耗,原因是假設完成一件工作的總能量不變,但執行時間延長,所以,功率消 耗減少了。. K. K. Parhi 在[2][9]中推導了第一個對任意數位訊號處理演算法的對稱摺疊 轉換技術,此技術可用來系統化地決定控制電路及摺疊架構。這時候發展了一管 線操作技術( Pipelining )理論來確保重複( Iteration )可獨立於控制電路中的暫存 器,同時並藉著此理論,發展出一種摺疊的位元平面( Folded Bit-Plane )有限脈衝 響應濾波器架構[6],他們發展的摺疊架構能夠保證可改變的摺疊因數在位元層 次(Bit-Level)的可合成性。當摺疊技術使用在時間上時,可以用來減少電路的邏 輯閘數 (Gate Count),亦可減少總漏電流( Leakage )的產生,當漏電流能夠大量 地避免重複使用,這對降低總功率消耗是一很重要的技術,這也是未來 CMOS 技術的重要特徵之一。. 為了完成上述的想法,在本篇論文中提出一個新的摺疊有限脈衝響應濾波器 硬體架構,不僅可以達到程式化的目的,並可以大幅降低功率上不必要的損失。 主要是根據給定的處理速率(Throughput)條件的評估,找到最佳的摺疊硬體架 構,減少硬體面積及功率消耗。. 本篇論文所設計的新摺疊有限脈衝響應濾波器硬體架構特色如下:. . 新摺疊硬體架構主要分為三部分: . 摺疊架構中處理乘累加動作(Processing Element). . 規劃地管理暫存器位址(Register Bank). . 管理暫存器的儲存及讀取(Control Unit). 其主要貢獻在於找到一套可系統化的暫存器定址方法,並對摺疊過程中所需 的暫存器個數做到最佳化管理。. 3.
(13) . 在已給定規格條件下,當確定規格的速度( Throughput )小於實際電路可操作 的 速 度 時 , 可 以 找 到 摺 疊 因 數 (Folding Factor) 及 其 相 對 應 的 排 程 矩 陣 ( Scheduling Matrix )來達到給定的規格,並兼有減少硬體面積及功率消耗的 優點。. 1.2 論文摘要 在此小節中先對本篇整個論文架構作個概略性的介紹。. 第一章. 緒論. 提出論文主題、想要解決的問題及其主要應用所在。. 第二章. 研究背景. 介紹摺疊技術出現背景,及其基本運作原理-時序規劃( Retiming ),並以簡 單的例子講解時序規劃的方法。接著,介紹現今關於有限脈衝響應濾波器的摺疊 演算法[6][9]。. 第三章. 摺疊演算法之推演與建立. 提出一套摺疊演算法之理論,經由排程矩陣( Scheduling Matrix )上的推導, 讓人擁有明確的流程可以遵循,並簡單地交代採用新摺疊演算法後的架構。. 第四章. 硬體實現. 先對整個硬體架構運作與操作流程作介紹,之後再對摺疊架構中的個別方塊 加以詳細解說,並推導其摺疊之硬體架構。最後,推導各種不同的摺疊演算法硬 體實現的成本函數,成本函數包括了面積的推導,及功率消耗的推導,再透過 WCDMA 規格實現各種摺疊演算法來印證新摺疊演算法 Parallel-In 確實為低成本 及低功率架構。. 4.
(14) 第五章. 設計流程與模擬結果. 主要描述電路設計流程與模擬驗證之結果,所提出的電路都使用VHDL硬體 描述語言來實現,再使用SYNOPSYS公司發展的Design Compiler軟體進行邏輯合 成;然後採用Cadence公司的SOC Encounter來做下線晶片的佈局與繞線設計 ( Place&Route )並配合UMC 0.18μm 1P6M CMOS製程技術來自動合成出晶片電 路;最後使用Mentor Graphics公司的Calibre軟體做DRC&LVS驗證。. 第六章. 結論. 本篇論文之結語與未來展望。. 5.
(15) 第二章. 研究背景. 在深入探討本篇論文研究之前,本章先來介紹一些摺疊技術的相關資訊及其 技術重要性。接著,介紹應用摺疊技術的理論基礎-時序規劃( Retiming ),對時 序規劃的方法有深入了解後,接著就可以很容易用來推導各種摺疊演算法的推 演。最後,特別舉兩個摺疊演算法來介紹:一是[9]第一篇提出系統化的摺疊演 算法,二是[6]位元平面的摺疊演算法,而選擇這兩篇的原因是因其摺疊演算法 與我們提出的新摺疊演算法較為相似,特別提出一起討論,在第四章末節將會再 次提出並依起比較彼此的成本函數。. 2.1. 摺疊技術. 現今,數位訊號處理廣泛地使用在即時( Real-Time )應用上,並且在數位革 命上亦佔有非常重要的地位;然而,在這當中有限脈衝響應( FIR )濾波器是數位 訊號處理中最基本的構成要素,因它有著穩定性良好且容易實現的優點,但是, 在品質要求很高的( Quality-Sensitive )應用中,有限脈衝響應濾波器的 taps 數目 6.
(16) 通常需要很多,其 taps 的範圍從數十到數百之間,然而,過多的 taps 將會導致 硬體面積過度地增加。. 而當應用規格所需資料處理速度( Throughput )小於實際電路可以操作的速 度時,[9]-[11]推薦了許多摺疊演算法來以犧牲資料處理速度的方式,進而來達 到節省硬體面積的目的。然而,有限脈衝響應濾波器本身是非常適合用來探討研 究並實現摺疊演算法的實際應用,因其只是一直重複做乘累加的動作。. 在同步設計中一個很重要的議題是如何去避免時脈歪曲( Clock- Skew )的問 題,而在大部分的非同步架構[14][15]針對此問題的解決方法是再多做一塊額外 的硬體來避免時脈歪曲的問題;然而,摺疊的有限脈衝響應濾波器架構的其中一 項重要優點便是:它們一方面可以減少硬體面積(與不做摺疊的架構相比),而同 時另一方面又不會有時脈歪曲的問題,因此,可以不用多做一塊額外的非同步硬 體電路來避免時脈歪曲的問題。. 摺疊技術允許執行在資料流上幾乎相同的操作,可以在同一電路上利用時間 上的多路傳輸( Time-Multiplexed )技巧來進行切換操作;然而,為了可以完成摺 疊演算法的動作,摺疊架購內部時脈頻率就必須是未摺疊前的時脈頻率的倍數, 所以,摺疊演算法是一種以提高處理速度來換取硬體面積的方法,因此,犧牲功 率來換取面積;然而,在應用規格可允許的範圍內,讓摺疊演算法架構的面積盡 量逼近最佳,且不希望犧牲太多功率的情況下,本篇論文在以此為目標的前提 下,在下一章中提出新摺疊演算法。. 2.2. 時序規劃. 時序規劃( Retiming )是一種在不改變演算法輸入輸出之時序關係的狀況 下,改變演算法中記憶元件位置的一種技巧。時序規劃的主要應用範圍在於將演 算法利用同步電路來實現時,利用移動演算法中記憶元件位置的方法,達到縮小. 7.
(17) 電路時脈週期,減少暫存器數量,以及降低功率消耗的目的。在本論文中,我們 利用其可以移動演算法中記憶元件位置的特性,來完成我們的新摺疊演算法架 構,以圖 圖 2.1 來說明一個簡單的時序規劃例子。. x[n]. h0 y[n]. x +. h1 D. x +. h2 D. x +. h3 D. x +. 0. 原始演算法架構圖 x[n]. h0 y[n]. x +. h1 2D. x +. h2 2D. x +. h3 2D. x +. 0. D放大為2D. D. x[n]. h0 y[n]. x +. h1 2D. x +. h2 D. x +. h3 2D. x +. 0. D轉移為可以摺疊的架構. 時序規劃範例. 圖 2.1 為時序規劃的簡單範例,(a)為有限脈衝響應濾波器演算法原始資料流 程圖( DFG );(b)顯示可以將資料流程圖中全部的 D 一起放大( Scaling )成任意倍 數,其顯示為放大兩倍,推論其輸入輸出的時序關係仍維持一致;(c)移動係數 h1 與 h2 之間下方的 2D,並將其移動 1D 到係數 h1 與 h2 之間的上方,而係數 h1 與 h2 之間下方只遺留下 1D,此時,便能執行摺疊演算法從 h1 與 h2 中間切斷成 兩個部份,而其切斷的 D 便是用來實現切斷兩部分的資料傳遞橋樑,如此在實 8.
(18) 現摺疊摺疊演算法時,便能確保不會讓傳遞的資料遺失。. 實現任何摺疊演算法都是比照此模式進行資料流程圖( DFG )的轉換,因 此,許多時序規劃技巧對於摺疊演算法就顯得相當重要[19][20],以下章節就幾 種常見的時序規劃技巧做說明。. 2.2 .1 單一節 單一節點時序規劃. 在試著對一個完整的系統做時序規劃之前,首先得了解如何對單一節點做時 序規劃的工作,而節點轉換( Nodal Transfer )提供了最單純時序規劃的方法。考 慮一個資料流程圖上的單一節點,則此節點輸入及輸出連線上的記憶元件,可在 不改變資料進出總時間的前提下做移動,也就是若單一節點所有的輸入端上均增 加或減少 n 個記憶元件,則其所有的輸出端點上也須同時減少或增加 n 個記憶元 件,以確保在針對單一端點做時序規劃考量時,不會影響到系統的輸入輸出關 係,下圖 圖 2.2 為一個簡單的節點轉換的例子。. D. V1. D. 2D. V1. 2D. D. 單一節點時序規劃. 如上圖所示,若我們在節點 V1 的兩個輸入端分別各減少一個記憶元件(D), 則必須在節點 V1 的輸出端加回一個記憶元件,以確保系統輸入輸出時序的正確 性,此即為節點轉換的時序規劃方法。. 9.
(19) 2.2 .2 切集合時序 切集合時序規劃. 延續上一節節點轉換的概念,當我們要替一個由多個節點所組成的系統做時 序規劃時,只要可以正確的將系統切分為多個小系統,每個小系統都可以視為一 個單一節點,接著利用節點轉換的概念針對單一節點(切分後的小系統)做時序規 劃,即可正確地轉移系統內的記憶元件而不會改變原本系統輸入輸出的時序關 係;這種將系統切分為小系統的方法並且用超節點的觀點來做時序規劃的方法稱 之為切集合時序規劃(Cut Set Retiming)。圖 圖 2.3 為切集合時序規劃的轉換說明, 圖中的虛橢圓線可視為此系統的超節點,而虛直線可視為切集合。. H1. x[n]. x. h0. h1. +. y[n]. 2D. x +. H2 h2 2D. +. x. h3. x. 2D. +. 0. 原始資料流程圖 D. H2. H1. D. 2D. 超節點時序規劃. D. x[n]. h0 y[n]. H2. H1. x +. h1 2D. x +. h2 D. x +. h3 2D. x +. 0. 切集合時序規劃 切集合時序規劃範例. 10.
(20) 2.3. 第一篇系統化摺疊 第一篇系統化摺疊演算法 摺疊演算法[9] 演算法. [9]這篇提出系統的摺疊轉換演算法來對任意數位訊號處理演算法的資料流 程圖進行摺疊動作,其中的摺疊集合( Folding Set )規劃了處理器( Processor ,此處 指摺疊架構中最基本的運算單元,通常為乘加器 )在哪個摺疊集合中且在哪個時 脈中該執行哪件工作,而其摺疊集合的產生是利用對演算法資料流程圖進行執行 排程( Scheduling )及資源配置( Resource Allocation )來規劃的。. [9]提出了許多他們如何使用時脈規劃去針對各種類型的數位訊號處理架構 進行摺疊的方法,其討論的數位訊號類型包括有單一時脈( Single Clock )與多時 脈( Multiple Clock )及向前路徑( Forward Path )與含迴圈( Loop )等類型電路;以下 介紹其如何對有限脈衝響應濾波器(單一時脈且向前路徑)執行摺疊架構轉換, 如圖 圖 2.4 及圖 圖 2.5 所示-. 圖 2.4 顯示了以乘加( Multiply-Add )運算器來實現五階有限脈衝響應濾波器 圖 2.5 為圖 圖 2.4 使用 架構,圖中的 D 表示 z-1 代表著 1 個 clock 的延滯(Delay),而圖 時序規劃( Retiming )後,[9]推演出來的摺疊演算法架構圖,且圖 圖 2.5 為其摺疊因 數( 摺疊因數見式子(3.1) )為 3 的摺疊架構圖,圖中所示的摺疊集合 S1 = { MA5 , MA4 ,MA3 }為 MAC1 所執行的工作內容,而 S0 = { MA2 , MA1 , MA0 }為 MAC0 所執行的工作內容。. 11.
(21) 接著簡易說明圖 圖 2.5 其運作方式:它是將圖 圖 2.4 的工作量等量切成兩段,MAC1 執行圖 圖 2.4 的前半工作量,剩下的後半工作量利用多工器與暫存器配合時序並透 過切換開關而傳給 MAC0 正確的值來執行累加。每個 MAC 詳細工作情形請參見 表 2.1 的說明,表 2.1 中 MAC1 欄位為紀錄該時脈 MAC1 執行乘累加的運算結果, 箭號為提示該值將在 4D 後透過多工器切換再被讀出而執行累加。. 觀察圖 圖 2.5 中的暫存器個數似乎有機會可以再化簡,原因是如果以直接方式 實現圖 圖 2.4 的架構(指未運用摺疊演算法),就單純考慮中間運算暫存器的個數只 需要 6 個(等於 taps 數目),然而使用其摺疊演算法,中間運算暫存器個數卻增加 到 8 個(圖中兩個 MAC 的輸出端 D 加起來有 8 個),所以,發現有機會可以朝此 方向來發展新摺疊演算法並降低中間運算暫存器個數亦即節省架構面積。. 12.
(22) Clock. x[n]. MAC1 MAC0. 0. x0. x0h5. 0. 0. 1. x0. x0h4. 0. 0. 2. x0. x0h3. 0. 0. 3. x1. x1h5. x0h2. 0. 4. x1. x0h1. 0. 5. x1. x0h0. y[0]. 6. x2. 7. x2. 8. x2. 9. x3. x3h5. 10. x3. x3h4+ x2h5. x1h4+ x0h5 x1h3+ x0h4 x2h5 x2h4+ x1h5 x2h3+ x1h4+ x0h5. y[n]. x1h2+ x0h3 x1h1+ x0h2 x1h0+ x0h1. y[1]. x2h2+ x1h3+ x0h4 x2h1+ x1h2+ x0h3. 圖2.5時序操作表. 2.4. 摺疊位元平面有限脈衝響應濾波器[6] 摺疊位元平面有限脈衝響應濾波器. 本節將仔細介紹另一現今摺疊演算法[6],此篇將摺疊技術應用到心脈式位 元平面的有限脈衝響應濾波器( Bit-Plane Systolic FIR )架構上,並詳細介紹位元 平面摺疊演算法的公式推導,而提出了如何去摺疊轉換位元平面架構的資料流程 圖( Data Flow Graph ),最後成功地實現其位元平面摺疊演算法架構。. 13.
(23) 2.4 .1 位元平面濾波器架構. 因為有限脈衝濾波器的輸出公式如下: K -1. y[n] = ∑ h[i]x[n - i]. (2.1). i =0. 式子(2.1)中的 h[i]為濾波器係數,K-1 為濾波器的階數(Order),y[n]為濾波器 輸出訊號,x[n]為濾波器輸入訊號。. 位元平面濾波器架構圖如圖 圖 2.6 所示,其中,K-1 為濾波器階數,b 為係數 圖 2.6 顯示為一個二階有 的位元長度,hij 為係數 hi 的第 j 個位元( 其權重為 2j ),圖 限脈衝響應濾波器且其係數位元長度等於 4 的位元平面架構圖。. x h20. h10. h00. h21. h11. h01. 1/2. 1/2. 0. h22. h12. h02. h23. h13. h03. 1/2 y. 位元平面架構資料流程圖(K=3 ,b=4). 圖 2.6 是先做每一個係數的最低位元的乘加運算,然後依序做到每一係數最 x 代表 1 位元的乘法器也就是 AND 邏輯閘,而○ + 代 高位元的乘加運算;圖中的○. 表 1 位元的全加法器(Full Adder,注意其輸出端將會有 Sum ,Carry 兩位元);當 乘上 1/2 時,代表資料右移一位。. 14.
(24) 2.4 .2 位元平面濾波器轉換公式推導. 根據圖 圖 2.6 推導轉換公式(Transfer Function)如下: G(z) = Y(z)/X(z) = z-1(h0323z-9+ z-1(h1323z-9+ z-1(h2323z-9+ z-1(h0222z-6+ z-1(h1222z-6+ z-1(h2222z-6 + z-1(h0121z-3+ z-1(h1121z-3+ z-1(h2121z-3+ z-1(h0020. + z-1(h1020. + z-1(h2020)...) (2.2). 將式子(2.2)推展成濾波器為 K-1 階,且係數為 b 位元長度的通式: G(z) = z-1(h0b-12b-1z-(b-1)K+ z-1(h1b-12b-1z-(b-1)K+ ...+z-1(hK-1b-12b-1z-(b-1)K + z-1(h0b-22 b-2z-(b-2)K+ z-1(h1 b-22 b-2z-(b-2)K+...+ z-1(hK-1 b-22 b-2z-(b-2)K +... + z-1(h0020. + z-1(h1020. +...+ z-1(hK-1020)...). (2.3). 然後再將式子(2.3)去括號並重新整理得下列式子:. G(z) = z-1h0b-12b-1z-(b-1)K + z-2h1b-12b-1z-(b-1)K. +...+ z-KhK-1b-12b-1z-(b-1)K. + z-(k+1)h0b-22b-2z-(b-2)K+ z-(K+2)h1b-22b-2z-(b-2)K+...+ z-2KhK-1b-22b-2z-(b-2)K +... + z-[(b-1)K+1] (h0020 + z-[(b-1)K+2] (h1020. + ... + z-bK (hK-1020)...). (2.4). 發現式子(2.4)中有共同的 z-[(b-1)K+1]因數,將之提出得下列式子 G1(z): G(z) = z-[(b-1)K+1]G1(z),所以 G1(z)為- G1(z) = z0(h0b-12b-1+ h0b-22b-2+...+ h0020+ z-1(h1b-12b-1+ h1b-22b-2+...+ h1020+... + z-1(hK-1b-12b-1+ hK-1b-22b-2+...+ hK-1020)...). (2.5). 由式子(2.5)推論出位元平面的濾波器可以摺疊的架構圖如圖 圖 2.7 所示:. 15.
(25) 2.4 .3 實現位元平面 實現位元平面摺疊 位元平面摺疊架構 摺疊架構. 實現摺疊位元平面濾波器架構如圖 圖 2.8 所示,假設為 K-1 階有限脈衝濾波 器,且其係數長度為 b 位元,所以,圖中虛線矩形總共會有 K 個,且其摺疊因. 16.
(26) 數為 b,原因是它分成 b 回合來完成一次 K-1 階有限脈衝濾波器運算;{}中的數 字代表 b 回合中的第幾回合。觀察圖 圖 2.8 並初步估計其暫存器個數應該為 K 個, 但又因為最基本的運算器是一個全加器( Full Adder ),推論要有兩倍的記憶儲存 元件( Sum ,Carry ),所以,中間運算的暫存器個數顯然亦未達到最佳化,仍然有 機會可朝向減少中間運算暫存器的方向來發展一套新摺疊演算法。. 資料輸入、係數輸入與資料輸出實際操作流程圖,請參考圖 圖 2.9,將會有更 清楚的概念,(a)中的 Processor Array 那塊即是執行圖 圖 2.8 的摺疊架構;(b)顯示為 位元平面摺疊演算法中基本構成元件-位元處理器,由兩個多工器、兩個記憶元 件(正反器)及全加器所組成,其連線方式如圖所示;(c)以(b)圖為基本元件搭配多 工器、移位暫存器及 VMA 完成(a)架構圖。. …. …. …. …. 17.
(27) 第三章. 新摺疊演算法之推演與建立. 現今有許多的硬體設計為了追求簡單化以及規律性,大多採用運算單元陣列 的形式,其中最著名的就是心脈式( Systolic )陣列。心脈式陣列是由 Kung [16] 在 1980 年提出來的一種硬體架構,這種架構是由一些簡單的基本運作單元( PE )所 連接組成,所以其架構擁有規則且簡單的特性,適合用在超大型積體電路的設計 上。此外,心脈式陣列用到了大量的管線化( Pipelining )以及多重運作( MultiProcessing ),因此,它可以達到高速的運作效能以及維持很高的資料處理速率 ( Throughput )。. 當應用所需資料處理速度( Throughput )小於實際電路可以操作的速度時,[9] -[11]推薦了一些摺疊演算法來減少硬體實現面積。然而,有限脈衝響應濾波器是 非常適合用來討論及實現摺疊技術的應用,因為其基本上只是一直在做重複乘累 加的動作。. 從另一個角度來看,倘若在整個系統中,有限脈衝響應濾波器方塊的下一級 若不需要很高的處理速率( Throughput ),那麼此高處理速率的優點,勢必可以拿 18.
(28) 來交換一些其他的好處。摺疊硬體就是一個以降低處理速率而獲得硬體面積減少 的一個方法,將一連串基本運作單元的陣列透過摺疊演算法,進而使用少量的運 算單元,而使用分時來完成原本的工作,雖然完成工作的時脈加長,但運算單元 卻減少,對於不必要很高處理速率的系統,不失為一個好方法,而其最大的好處 除了以時間上的優勢取得空間上的改善外,摺疊後的架構也有可重覆使用性,增 加了硬體的彈性。. 3.1. 新摺疊演算法的硬體架構推導. 對於硬體摺疊的好處,是讓人顯而易見的,但是對於摺疊方式的推導,卻沒 有一個非常明確的流程讓人遵循,所以在這一個章節中,首要的目的就是介紹硬 體摺疊的步驟,並將其稱為新摺疊演算法,只要依照步驟實行,整個過程是相當 有規劃地進行,且摺疊後的架構在時脈上也不至於出錯。. 一般傳統運算單元陣列,對於訊號傳遞的路徑,可分為兩類:向前路徑 ( Forward Path )以及回授路徑( Feedback Path )。向前路徑上的訊號,在兩兩相鄰 的運算單元之間互有關係;而回授路徑上的訊號,則只有在本體運算單元中有影 響。. 對於陣列中的每個基本運作單元,主要區分成乘法器與加法器兩部分;而陣 列中儲存資料的暫存器,則將之抽離開資料路徑( Data Path ),另外再規劃一個區 塊稱為暫存器檔案( Register File ),專門負責暫存器資料儲存與更新,並有技巧 性地對其暫存器定址,成立此一區塊的目的是:希望讓本篇推導的新摺疊演算法 架構與其他現今相關摺疊演算法架構相比,有較佳成本效益即希望能有較少的硬 體面積與較低的功率消耗。. 19.
(29) 圖 3.1 所示即為一個基本運算處理單元-乘加器( MAC ),為了讓新摺疊演 算法推導表示上方便,本篇將乘加器視為一個乘加點( MA Node ),往後在運算 單元的表示上,也都以乘加點的方式呈現。. MA node h0. x. h0. +. 基本運算單元轉換乘加點. 現在就以一個串接 12 個基本運作單元的有限脈衝響應濾波器為例子,說明 新摺疊演算法的推導。一開始在摺疊之前,首先考慮所需要使用的運算單元個 數,假設採用 3 個運算單元,於是可以將 12 個基本運作單元分成 4 列,每一列 的運算單元必須完整的排列對齊,這樣的目的是打算將原本一個回合內完成的資 料計算,分成 4 個的時間點來運作,每一列各分配到一個時間點進行。圖 圖 3.2 所 示就是運算單元的排列方式。. 20.
(30) x[n] y[n]. D h0 D h1 D h2 D h3 D h4 D h5 D h6 D h7 D h8 D h9 D h10 D h11. 0. 運算單元陣列. 接著,對整體的架構開始作一些簡單的推導轉換。將每個暫存器(為圖中所 示的 D)放大成( Scaling )4 倍,接著在列與列的每個向前路徑上加入資料銜接的 暫存器(位於每列最後的深色 D),這麼一來,在每回合的第一個時間點時,x[n] 送入資料,僅第一列的三個乘加器( h0 ,h1 ,h2 )開始動作,且將其乘加運算後的 結果存入該列各暫存器的第一個位置,同時,向前路徑上第一列最後一個暫存器 的值,也會傳遞至第一列與第二列的銜接暫存器中,而第二列、第三列及第四列 的運算單元則沒有動作;到了第二個時間點,第二列的第一個乘加器就讀入銜接 暫存器的值,第二列的運算單元開始運作,並且將結果存入該列各暫存器的第二 個位置,其餘三列的運算單元均不動作,當然向前路徑上第二列最後一個暫存器 的值也傳至下一個銜接暫存器;到了第三個時間點,第三列的運算單元會開始計 算並將結果存到各暫存器的第三個位置,第一、二、四列則無動作;到了第四個 時間點,第四列的運算單元會開始計算並將結果存到各暫存器的第四個位置,而 第一、二、三列則無動作;之後進入下一個新的回合,如此一直反覆循環。圖 圖 3.3 說明了上述的動作。. 21.
(31) x[n] y[n]. 4D. h0. 4D. h1. 4D. h3. 4D. h2. 4D. h4. 4D. h5. 4D. h6. 4D. h7. 4D. h8. 4D. h9. 4D. h10. 4D. h11. D. D. D. 0. 運算單元陣列時序規劃. 由此可知,這四列中的第一個乘加器,在每回合的四個動作時間點中是不重 疊的,也就是每列的第一個乘加器不會在同一個時間點同時動作,而每列的第 二、三個乘加器亦然。由於在每列中相對位置的乘加器的工作時間點是兩兩互斥 的,也就是工作的時機互相不衝突,所以可以將四列的運算單元壓縮成一列,成 為圖 圖 3.4 所展示的。於是,只要在一個回合中,送入一個 x[n]資料,並且在這個 回合裡,根據不同時間點,調整每個乘加器各自所需輸入的來源暫存器,以及將 每個乘加器輸出所需儲存的計算結果存入正確的暫存器位置,就可得到正確的運 算。這個方法把整體的運算時間拉長了,但卻減少四分之三的乘加器數目,這就 是目的所在。. 22.
(32) x[n]. D 4D. MAC. 4D. MAC. 4D. MAC. 運算單元陣列摺疊架構. 原先 12 個運算單元的陣列,經過摺疊演算法調整後,可以明確的分出乘加 器群(MAC Group)及暫存器檔案(Register File) ,要使整個運算流程正確的動 作,只需要在每個時刻點調整暫存器檔案所需輸出及儲存的資料,並由外部 x[n] 輸入至銜接暫存器,然後都是讀取銜接暫存器,就可以完成工作,至於乘加器群 只要不停的運算就可以了。圖 圖 3.5 是經過摺疊演算法所產生的架構圖。. 23.
(33) 值得一提的是,在暫存器檔案中每一行( Column )共有四個暫存器,就是先 前推導過程中四倍暫存器(4D)大小所代表的意思。另外,暫存器檔案每一列 ( Row )中也有三個暫存器,同一列的三個暫存器是必須在同一時刻送到乘加器群 運算,因此將每一列的三個暫存器一起作捆綁,給予同一個定址名稱,往後只需 要正確控制暫存器位址,架構就能夠正常地運作。圖 圖 3.6 即為暫存器捆綁及定址 的示意圖,注意讀取與更新暫存器兩邊的解碼器對於暫存器位址的捆綁定義並不 相同,而其捆綁的定義會錯開一個用來表示資料有向前傳遞的意思,原因在之後 的排程矩陣( Scheduling Matrix )章節會有更詳細地介紹。. 摺疊演算法最主要的精神就是在於時脈上的規劃,將每個回合的動作分時完 成,而依此演算法所推演出的硬體架構,擁有可重複使用的特性。在下一節中主 要說明套用摺疊演算法時運算單元個數的選擇,以及摺疊硬體架構的好處。. R0 R1 R2 R3. Acc0. R4. F0. R5. Acc1 Acc2. R6 R7. F1 F2. R8 R9 R10. Write_Addr. R11. 0 Read_Addr 摺疊架構暫存器定址規劃. 24.
(34) 3.2. 以摺疊演算法實現硬體之方法與特色. 在使用摺疊演算法之前,首要的工作就是決定要使用的乘加器個數。假設現 在系統中有一個方塊,其硬體架構由 K 個相同運算單元( 例如:硬體架構為 K-1 階有限脈衝響應濾波器 )所組成,且其實際硬體電路可以實現到的最大處理速度 ( Throughput )為 xputmax,而這個方塊的規格所需的處理速率為 xputspec,於是若 使用 r 個乘加器來實現摺疊架構,則摺疊因數( Folding Factor ) f 為:. xput max K f = ≥ xput spec r. (3.1). 藉由上列的式子計算,可以估算出新摺疊演算法架構採用的乘加器數目 r, 且將原本一回合中的計算量,分為 f 個時間點來達成,而摺疊後的架構不僅能夠 符合規格要求的資料處理速度,而在乘加器個數方面也比較原先的少,讓硬體實 現面積可以減少。. 摺疊演算法非常適合於處理速率不需要很高的陣列硬體,尤其是對於陣列的 運算單元個數會因規格不同而有數目上變化的架構。以有限脈衝響應濾波器架構 為例,整個濾波器主要是由乘加器與暫存器所構成,非常適合來做摺疊演算法的 應用。當對於這種硬體架構來實行摺疊時,則以最差狀況的處理速率及陣列長度 來估計所採用的運算單元個數,摺疊之後的架構可視有無面積上的限制而來調整 需幾個乘加器來實現為恰當,舉例說明,若在符合規格的條件下(指摺疊後的處 理速度夠快),r=3 比 r=6 所需較少的硬體面積,但處理速度卻需要再快 2 倍,相 對地,功率消耗可能亦會隨之上升,必須視實際規格的需求來做變化應用,但前 提是摺疊後的處理速度必須符合規格情形下,這樣的硬體架構便能展現了可重複 使用的特性,亦可彈性地調整摺疊架構。. 25.
(35) 3.3. 新摺疊演算法一 摺疊演算法一( Parallel-In ). 在介紹新摺疊演算法之前,讓我們先從推導有限脈衝濾波器的轉移函數 ( Transfer Function )開始,K 為有限脈衝濾波器的 taps 數,r 為摺疊演算法架構中 乘加器的個數:. G(z) =. f -1 Y(z) K -1 = ∑ h i z -i = ∑ (z - jr (h jr + h jr +1 z -1 + ... + h jr +(r -1) z -(r -1) )) X(z) i =0 j= 0. (3.2). 再來介紹有限脈衝響應濾波器架構,如圖 圖 3.7 所示為一調換形式( Transposed Form )的 K-1 階有限脈衝響應濾波器,觀察可以區分出 K 個相同操作單元(指乘 加器),且每個操作單元之間都有暫存器儲存乘加運算結果,發現其非常適合做 為摺疊演算法的應用場景。. K -1. y[n] = ∑ x[n − i ]h[i ] i =0. 3.3.1 雛型轉換. 新摺疊演算法一( Parallel-in )即是以 r MACs 平行處理一 Short-Length (r taps) FIR 重複執行 f 次運算來實現一 Long-Length ( K taps ) FIR 的濾波效果;以 K =. 26.
(36) 12,而 r = 3(以 3 個乘加器來實現摺疊演算法)為例說明如何做雛型轉換,而新摺 疊演算法一的雛型轉換步驟如下-. 1.將有限脈衝響應濾波器中間的每一乘加動作轉換為基本運算操作單位 MA 乘 加點如圖 圖 3.1 所示;. 2.再來將圖 圖 3.7 中的 D 放大( Scaling )成摺疊架構所需倍數(倍數依摺疊因數 f 而 定, 若 K = 12,r = 3,則 f = 4)如圖 圖 3.8 所示;. 3.有了足夠倍數的 D,便能使用時序規劃( Retiming )技術來做移轉摺疊架構所需 的暫存器規劃如圖 圖 3.9 所示;. 4.最後再將圖 圖 3.9 所示的 D 位置置換( Replacing )為實際使用的暫存器,而暫存器 必須與下一小節新摺疊演算法的排程矩陣( Scheduling Matrix )搭配使用,則便 能夠使得新摺疊演算法架構在記憶體管理方面達到最佳化如圖 圖 3.10 所示,而圖 圖 3.10 中的 RX 將會共用同一個暫存器來實現它,暫存器 RX 的目的為確保摺疊 架構輸入輸出端有暫存器保護。. 27.
(37) Retiming x[n]. D. y[n]. 3D. D 3D. D 3D. D 3D. h0. 4D. h1. 4D. h2. h3. 4D. h4. 4D. h5. h6. 4D. h7. 4D. h8. h9. 4D. h10. 4D. h11. 0. 雛型轉換步驟- Retiming. Replacing x[n]. RX. y[n]. R0. h0. R1. h1. R2. h2. h3. R4. h4. R5. h5. h6. R7. h7. R8. h8. h9. R10. h10. R11. h11. RX. R3. RX. R6. RX. R9. 0. 雛型轉換步驟- Replacing. 28.
(38) 3.3.2 排程矩陣. 將有限脈衝響應濾波器架構轉換為我們的新摺疊演算法應用雛型後,再來就 是要將 r 個最小基本運算操作單元 MAC 的每一輸入、輸出端做好管理,就能完 成有限脈衝響應濾波器的運算功能,以下介紹 4 個排程矩陣( Scheduling Matrix ) 如何應用其來完成排程動作,並且達到記憶體管理的最佳化(即暫存器個數減到 最少):. 1.資料輸入矩陣( Data Matrix )-輸入資料 x[n]訊號到 MAC 的乘法器輸入端;. 2.係數輸入矩陣( Coefficient Matrix )-輸入係數 h[n]到 MAC 的另一乘法器輸入 端;. 3.讀取前一級運算結果矩陣( Feedback Matrix )-讀取前一級運算結果到 MAC 的 加法器輸入端;. 4.更新運算結果矩陣( Accumulator Matrix )-讀取 MAC 輸出端的運算結果數值並 更新到所選取的目的暫存器。 ( 操作原理: Accumulator = Data * Coefficient + Feedback ;). 29.
(39) r. clock MAC0 MAC1 MAC2. clock MAC0 MAC1 MAC2. 1. R1. R2. R3. 1. R0. R1. R2. 2. R4. R5. R6. 2. R3. R4. R5. 3. R7. R8. R9. 3. R6. R7. R8. 4. R10. R11. 0. 4. R9. R10. R11. 5. R1. R2. R3. 5. R0. R1. R3. 6. R4. R5. R6. 6. R3. R4. R5. 7. R7. R8. R9. 7. R6. R7. R8. 8. R10. R11. 0. 8. R9. R10. R11. f. Feedback Matrix. 4D. 3D. Accumulator Matrix. 30.
(40) 解讀排程矩陣 解讀排程矩陣: 排程矩陣:. 1.當 clock=1 時,3 個 MAC 皆同時動作,操作時序參考圖 圖 3.11,而 R1(ta)為 R1 在 ta 時刻的儲存值, MAC0 在 ta 時執行 x0*h0+R1(ta)的運算,到 tb 時才更新 R0(tb)為 x0*h0+R1(ta), MAC1 在 ta 時執行 x0*h1+R2(ta)的運算,到 tb 時才更新 R1(tb)為 x0*h1+R2(ta), MAC2 在 ta 時執行 x0*h2+R3(ta)的運算,到 tb 時才更新 R2(tb)為 x0*h2+R3(ta); 所以,在操作時序的規劃上是可執行的,並不會有無限迴圈的情況出現。. 2.當 clock=2 ,3 ,4 時,與 clock=1 同理,注意當 clock=4 時,MAC2 的 feedback 值為 0,原因是此時 MAC2 為代表有限脈衝響應濾波器的最後一級乘加運算, 所以其加法器的輸入端給 0。. 3.當 clock=5~8 時,重複 clock=1~4 的動作,只是 Data Matrix 的 x0 換成 x1,表 示輸入下一筆資料。. 4.當 clock=1 時,寫入新的值到 R1 中,而要到 clock=5 時,才會讀取儲存在 R1 中的值,此時的 R1 實現 4D 的效果(指暫存器每隔 4 clocks 才做一次讀取更新 值的動作,所以 1D 指的是每隔 1 clock 做一次讀取更新值動作的暫存器),所 以,R2 也是實現 4D 效果的暫存器;而 R3 是在 clock=2 時,寫入新值,而到 clock=5 時,才做讀取值的動作,所以,R3 是實現 3D 效果的暫存器。. 31.
(41) 5.就實現角度而言,R0~R11 都是可以用 1D 的暫存器去實現,每個暫存器透過類 似圖 圖 3.6 捆綁的定址方式,就能以 1D 去直現上述 4.的效果。. 6.根據 Feedback Matrix 得知,在 clock=1 時,只會讀取 R1,R2,R3,而 clock=2 時, 只讀取 R4,R5,R6,而 clock=3 讀取 R7,R8,R9,而 clock=4 讀取 R10,R11,0,每 隔 4 clocks 重複一樣動作;而根據 Accumulator Matrix 得知,在 clock=1 時,只 需更新 R0,R1,R2,而 clock=2 時,只更新 R3,R4,R5,而 clock=3 更新 R6,R7,R8, 而 clock=4 只更新 R9,R10,R11,也是每隔 4 clocks 重複一樣動作,所以,只要 小心把特定的 3 個暫存器位址做捆綁的話,可以簡化更新與讀取暫存器內容的 解碼器的控制訊號。. 7.根據排程矩陣,推演出每個時刻中暫存器內容的變化情形,如表 表 3.5 所示,注 意 R0 每次更新的值即為 y[n],所以,y[n]只需每隔 f = 4 clocks 讀取一次 R0 值。. 32.
(42) 8.以上 1.~7.介紹整除案例(K = rf),以下介紹不整除案例,K = 12,r = 5,則 f = 3, 其排程矩陣如下所示。. 9.不整除案例的排程矩陣運作方式請參考上述 1.~7.的運作方式,需注意的是表 表 3.9 中空白的框框代表空(Null)動作,表示不寫到任何暫存器中,主要是為了平 衡摺疊週期每個 MAC 的工作量。. 33.
(43) 3.4. 新摺疊演算法二 摺疊演算法二( Serial-In ). 在介紹新摺疊演算法二之前,讓我們先從推導有限脈衝濾波器的轉移函數 ( Transfer Function )開始介紹,改寫式子(3.2)為(3.3)式:. G(z) =. r -1 Y(z) K -1 = ∑ h i z -i = ∑ (z - jf (h jf + h jf +1z -1 + ... + h jf +(f -1) z -(f -1) )) X(z) i =0 j= 0. (3.3). 根據式子(3.3)推導出新摺疊演算法二-Serial-In,最主要與 Parallel-In 不同 的地方是係數輸入方式,以 3 MACs 來摺疊 12taps 的有限脈衝響應濾波器(即 K = 12、r = 3、f = 4 )為例來說明,Parallel-In 方法的 MAC0 將執行工作內容為{h0 , h3 , h6 , h9}見表 表 3.2,而 Serial-In 方法的 MAC0 執行工作內容為{h0 , h1 , h2 , h3}, 其實現方式見下圖 圖 3.12 描述可以有更清楚的概念。. 圖 3.12 中每一長方形框可視為一 short-length (4-tap) FIR,且共有 3 條(代表 有 3 個 MACs),此為 Serial-In 演算法的精隨;接著推導圖 圖 3.12 演算法的硬體架 構圖如圖 圖 3.13 所示,圖 圖 3.12 中長方形框實現方式為 1 MAC 加上 1 暫存器,而圖 + 以一多工器再配合上拉線來實現見圖 中的○ 圖 3.13,而圖 圖 3.13 中 x 輸入端的 4D 暫. 存器實現方式為圓形定址(Circular Addressing),暫存每一 short-lengh 所需 4 個 x 值。. 34.
(44) 35.
(45) 第四章. 硬體實現架構. 在介紹摺疊理論推導之後,再來就是考慮新摺疊演算法硬體實現的部分。有 些在演算法上看似簡單的問題,在硬體實現上不見得相對單純,在接下來的內容 之中,會作較為詳盡的探討;但主要焦點會集中在比較各種摺疊演算法在硬體實 現部分的成本(指面積與功率消耗)分析討論。. 首先,會先概括地介紹整個新摺疊演算法的完整電路架構,然後再個別介紹 摺疊硬體實現的每一部分結構與操作,而實現摺疊演算法架構都是由三塊模組所 構成見圖 圖 4.1:一是處理器陣列( Processor Array ,PA )主要由 MAC 所組成,負責 有限脈衝響應濾波器的乘累加運算;二是暫存器檔案( Register File ,RF )主要是由 暫存器所組成,負責有限脈衝響應濾波器中間運算轉移資料的儲存與更新;三是 控制單元( Control Unit ,CU )主要是由計數器所組成,負責摺疊架構中處理器陣 列與暫存器檔案的溝通,後面的章節都會一一作仔細的介紹。. 接著討論各種摺疊演算法硬體實現架構的成本函數(Cost Function),其一成 本函數是討論硬體面積,另一是討論功率消耗;最後再以 IS-95 WCDMA Pulse Shaping 33 taps FIR Filter 見表 表 4.2 所列電路規格來實現各種摺疊演算法以及原始 36.
(46) 架構,並且以 SYNOPSYS 公司的 Design Compiler 與 PrimePower 軟體來分析討 論各種摺疊演算法以及原始架構的面積與功率消耗情形是否符合成本函數預期 估計結果。. 4.1. 新摺疊演算法一 新摺疊演算法一硬體實現. 實現的摺疊架構如圖 圖 4.1 所示由三個模組所構成:處理器陣列、暫存器檔案、 控制單元,以下三小節有更詳細的描述功能與實現方式。處理器陣列( Processor Array ,PA )主要由 MAC 所組成,負責有限脈衝響應濾波器的乘加運算,觀察 PA 有外部輸入 Xn 與 Hn,並與 RF 之間有資料互傳,且接受 CU 的控制;暫存器檔 案( Register File ,RF )主要是由暫存器所組成,負責有限脈衝響應濾波器中間轉移 資料的儲存與更新,觀察 RF 與 PA 有互傳資料的活動,並接受 CU 的控制,在 預定的時序吐出 Yn 的輸出;控制單元( Control Unit ,CU )由計數器和一些數位邏 輯閘所組成,負責摺疊架構中處理器陣列與暫存器檔案的溝通,觀察 CU 有 clk 與 reset 輸入訊號控制著 CU 的狀態( State ),並送出控制訊號到 PA 與 RF,及一 輸出訊號 valid 為宣告此時 Yn 為有效值。. 37.
(47) 4.1.1. 處理器陣列. 處理器陣列的實現如圖 圖 4.2 所示,每個處理器元素( Processor Element ,PE ) 都是由一組乘法器與加法器構成亦稱為 MAC 共 r 個,圖 4.2 中符號 Xn 為一個 m x 位元的輸入訊號,H0 ,H1 ,… ,Hr-1 為 b 位元的係數輸入訊號,所以,MAC 中的○. 為 m+b 位元的乘法器。. Xn m. Xn. H0 F0 Xn m. H1 F1. .... Xn L. b. X m+b. m. Xn L. b. MAC0. m+b. m. .... X +. Hr-1 Fr-1. +. MAC1. b. L. X m+b. +. MACr-1. L. L. Acc0. Acc1. L. .... Accr-1. Parallel-In處理器陣列. 圖 4.2 中的 L 是代表設計規格所規定的精確度來決定暫存器的位元長度,其 中,F0 ~ Fr-1 與 Acc0 ~ Accr-1 都是 L 位元長度的訊號,代表著與中間移轉暫存器進 行傳遞資料動作,亦即是代表處理器陣列與暫存器檔案間互相溝通的訊號;F0 ~ Fr-1 為由暫存器檔案所輸入的訊號(為前一刻暫存的運算結果),並與 MAC0 ~ MAC r-1 一起做加法運算,而 Acc0 ~ Accr-1 為這一刻 MAC0 ~ MAC r-1 的運算結果 儲存回暫存器檔案中;圖 圖 4.2 中虛線小方塊 MAC0 簡易敘述其操作原理為:Acc0 = Xn * H0 + F0 ;而其他 MAC 的操作同理。. 38.
(48) 4.1.2. 暫存器檔案. R_w clk f. reset L. rL. L. lf. R0 R1. ... L. L. R2r-1. rL. L. Rf(r-1) Rf(r-1)+1. ... L. Rfr-1. 0. L. F0. rL. L L L L. rL. L L. L. y[n]. rL. L. F1. …. L. Rr+1. L. … …. … Accr-1. rL. L. Rr. L. L. Read Reg Decoder. Acc1. L. rL. Rr-1. .... L. Write Reg Decoder. Acc0. L. R_r. L. Fr-1. L L L. rL. L L. Parallel-In暫存器檔案. Acc0 ~ Accr 為由處理器陣列輸入到暫存器檔案的資料訊號線(亦即乘加器 的輸出中間運算結果需被暫存,將其送到暫存器檔案中特定的暫存器儲存),用 來寫入如圖 圖 4.3 所示左半邊的 f ( f 為摺疊因數)群暫存器其中一群(分群的方法請 參考第三章所敘述的排程矩陣原理),而寫入暫存器的解碼器由控制單元輸入的 控制訊號線 R_w 來選擇欲更新到哪一群(r 個)暫存器中。 39.
(49) F0 ~ Fr 為輸出到處理器陣列的資料訊號線( 用來做為 MAC 中的加法輸入 端,即代表為加上前一刻的中間運算結果 ),用來讀取圖 圖 4.3 中所示右半邊的 f 群暫存器其中一群( 分群的方法請參考第三章所敘述的排程矩陣原理 )的儲存 值,而讀取暫存器的解碼器由控制單元輸入的控制訊號線 R_r 來選擇讀取哪一群 暫存器。. R_w 與 R_r 訊號線並不等長,因為寫讀暫存器解碼器的實現方式並不一樣, 寫暫存器解碼器的輸入與輸出關係是一對多,必須以每群為單位增加 enable 訊 號線,所以, f 群必須有 f 位元長度的訊號線,即 R_w 為 f 位元的訊號線;而 讀暫存器解碼器可以使用多工器來實現(原因是輸入與輸出的關係是多對一),所 以,R_r 長度為 lf = ceil( log2 f)位元。. 圖 4.3 中 reset 與 clk,為由外部輸入的訊號,reset 負責工作為控制每一暫存 器何時該清為 0 並且暫存器同時亦開始動作,而 clk 負責工作是暫存器每隔多久 更新一次內容;然而其連線方式僅為示意,由於 reset 與 clk 都必須連接到每一 暫存器上,為了避免讓圖 圖 4.3 看起來太過於複雜,所以,僅以簡單的兩個箭號表 示。因此,暫存器檔案只需一組暫存器的讀取、寫入的控制訊號( R_r、R_w ), 便能完成在該時脈中 r 個乘加器該讀取哪 r 個暫存器以及將運算結果更新到哪 r 個暫存器上;最後,圖中 y[n]為摺疊架構的輸出訊號。. 4.1.3. 控制單元. 40.
(50) clk、reset 為由外部輸入的時脈訊號與重置訊號,兩者負責整個控制單元目 前處於哪一個狀態( State );valid 為輸出訊號告知此刻暫存器檔案的輸出訊號 y[n] 值為有效輸出;而 R_w、R_r 為輸出到暫存器檔案的訊號,用來控制寫入或讀取 哪一個中間運算暫存器。因為暫存器檔案中每一個暫存器的位置已經過精心安排 而定址過,所以,只需依照排程矩陣的安排,在每一時序送出一組所需控制訊號 ( R_w、R_r )管理哪個暫存器該做讀取、哪個該做更新。. 控制單元實現上應該是由一個 ceil(log2 f)位元長度的計數器,f 為摺疊因數, 並加上由邏輯合成軟體(如:Design Compiler)對每個狀態送出的控制訊號所合出 的數位邏輯(此一部分不是本篇研究範圍,未加以詳細描述)所構成,且其控制單 元整體佔整個折疊演算法架構比例甚小。. 4.2 新摺疊演算法二 新摺疊演算法二硬體實現. X(z). Y(z). h0+ h1z-1+ h2z-2+ …+ hf-1z-(f-1). +. hf+ hf+1z-1+ hf+2z-2+ …+ h2f-1z-(f-1). +. z-f. h(r-1)f+ h(r-1)f+1z-1+ …+ hrf-1z-(f-1). +. z-f. 0. Serial-In演算法. 新摺疊演算法二如圖 圖 4.5 所示由 r 個長方形框所構成,而每一長方形框執行 一小段連續係數乘加,其硬體實現見圖 圖 4.6 所示,其每一 MAC 運作時序見圖 圖 4.7 41.
(51) 所示;然後再將圖 圖 4.6 的硬體實現架構圖以圖 圖 4.1 的概念再區分出三個工作區 塊:處理器陣列、暫存器檔案、控制單元,以下三小節有更詳細的描述功能與實 現方式。. 42.
(52) 依據圖 圖 4.7MAC 運作內容 Clock=1 ~ f 時,x 輸入端的 fD 圓形定址暫存器存 放內容為( x-(f-1) , …, x-1, x0 ),而 Clock=f+1 ~ 2f 時,x 輸入端存放內容為( x-(f-2) , …, x0, x1 ),每個 MAC 負責 1 short-length FIR 運算。. 4.2.1. 處理器陣列. 處理器陣列的實現如圖 圖 4.8 所示,每個處理器元素( Processor Element , PE ) 都是由一組乘法器與加法器構成亦稱為 MAC 共 r 個,其操作原理及描述請參考 4.1.1 小節,而 x 輸入端增加一 fD 暫存器為圓形定址模式。. 4.2.2. 暫存器檔案. 暫存器檔案架構如圖 圖 4.9 所示,圖中的 Acc0 ~ Accr-1 為由處理器陣列輸入到 暫存器檔案的資料訊號線(亦即乘加器的輸出中間運算結果需被暫存,將其送到. 43.
(53) 暫存器檔案中移位暫存器來儲存);F0 ~ Fr-1 為輸出到處理器陣列的資料訊號線 (用來做為 MAC 中的加法輸入端,即代表為加上前一刻的中間運算結果),而 F0 的來源( Source )見圖 圖 4.9 有暫存器的輸出及前一級 fD 的輸出,利用 FS 控制訊號 線來管理;FC 為由 CU 輸出的除頻訊號管理圖 圖 4.9 中 fD 的時脈輸入;clk 為由 外部輸入的訊號,負責工作是暫存器每隔多久更新一次內容;Rst 負責工作為控 制每一暫存器何時該清為 0 並且暫存器同時亦開始動作,然而其連線方式僅為示 意,由於 Rst 與 clk 都必須連接到每一暫存器上,為了避免讓圖 圖 4.9 看起來太過 於複雜,所以,僅以簡單的兩個箭號表示;最後,圖中 y[n]為摺疊架構的輸出訊 號。. 44.
(54) 4.2.3. 控制單元. clk、reset 為由外部輸入的時脈訊號與重置訊號,兩者負責整個控制單元目 前處於哪一個狀態( State );而 FS、FC、Rst 為輸出到暫存器檔案的訊號,用來 控制 F0 ~ Fr 以及 y(n)的輸出是否為正確值。因為暫存器檔案中在做寫入的動作 不像 Parallel-In 那樣複雜,只會寫入固定的移位暫存器中,所以,只需做好 FS 與 FC 控制訊號的管理,便能正確地操作 Serial-In 摺疊演算法。. 而控制單元實現上應該是由一個 ceil( log2 f)位元長度的計數器,f 為摺疊因 數,並加上由邏輯合成軟體(如:Design Compiler)對每個狀態送出的控制訊號所 合出的數位邏輯(此一部分不是本篇研究範圍,未加以詳細描述)所構成,且其控 制單元整體佔整個折疊演算法架構比例甚小。. 4.3. 硬體實現成本函數 硬體實現成本函數. 在介紹完現今的摺疊演算法-第一篇系統化摺疊演算法[9]與位元平面摺疊 演算法[6],以及新摺疊演算法-Parallel-In 與 Serial-In 摺疊演算法後,再來便是 討論分析各種摺疊演算法架構在硬體實現方面孰能較佔優勢,亦即何者演算法在 45.
(55) 面積、功率消耗兩方面可以有較佳的表現;然而在成本函數中沒有考慮到執行時 間的因素,原因是假設討論比較的前提是彼此都是使用相同的製程,並且彼此的 資料處理速度( Throughput )皆以相同速度實現,所以,執行時間變得大家都一 樣,因此,本篇的成本函數純粹就架構方面來討論功率消耗與面積大小的問題, 展示各種摺疊演算法的面積與功率消耗的成長趨勢,並希望藉此凸顯何者演算法 可以有最佳的表現;在以下的章節將藉由推論出的面積及功率消耗成本函數來分 析新摺疊演算法與現今理論演算法[6][9]的成長趨勢,同時並假設彼此的電路是 以單一時脈來實現的;表 表 4.1 列出我們在推導各種摺疊演算法實現架構的成本函 數過程中會使用到的各種參數符號說明。. 4.3.1. 面積成本函數. 在推論成本函數之前,我們先假設大家使用的乘法器與加法器是使用相同的 技術( Technology )來實現的並且摺疊個數一樣,所以,並不將之列入成本函數中 考慮;因此,簡化問題為討論彼此摺疊演算法硬體實現架構會使用到的記憶體來 當作面積成本函數的評估,評估方式是以正反器( Flip-Flop )為記憶體面積的最小 單位,而來估計其演算法所含正反器個數多寡。. 46.
(56) (a) 第一篇系統化摺疊 第一篇系統化摺疊演算法 摺疊演算法[9] 演算法. 摺疊架構圖請參考圖 圖 2.4 與圖 圖 2.5,並使用表 表 4.1 的參數,來推理其整個摺疊 演算法架構會使用到的記憶體基本元件正反器個數,即其面積成本函數推導應如 下列公式所示:. r(f+1)L + (K-f)m + ceil(log2 f) + Kb. (4.1). 其中,若 i = ceil(j), i∈integer, j∈real number,則 i 為最小整數大於或等於 j。. 式子(4.1)中的 L 為乘加動作會使用到的中間運算暫存器的長度,而 L 需視 規格規定的精確度來決定,且 L 亦會隨著 m、b、K 成長,在 Matlab 模擬中以全 精確度來模擬 L = m + b+ ceil(log2 K),觀察圖 圖 2.5( r = 2 ,f = 3 )中發現有 8 個中間 運算暫存器,所以,估計它的暫存器檔案(RF)總共需要 r(f+1) 個。. 而式子(4.1)中的 (K-f)m 為代表圖 圖 2.5 上方的 x 輸入訊號多工取樣( Input Sample Multiplexing )行為會使用到的正反器個數,( K-f )是因為只有第一級的 x 輸入訊號不需要卡 f 個輸入訊號暫存器,其他級在實現演算法上皆需卡輸入訊號 暫存器;ceil(log2 f)為表示控制單元會合成出的正反器個數;式子中最後的 Kb 為 估計係數多工會使用到的正反器個數,b 為係數位元長度,K 為 FIR 的 taps 數。. (b) 位元平面摺疊演算 位元平面摺疊演算法 演算法[6]. 摺疊架構圖請參考圖 圖 2.8 及圖 圖 2.9,並使用表 表 4.1 的參數,來推理其整個摺疊 演算法架構會使用到的記憶體基本元件正反器個數,即其面積成本函數推導應如 下列公式所示:. (2K+1)L + ceil(log2 b) + Kb. (4.2). 47.
數據
相關文件
設計了正立方體框架的組合,在計算方塊個數與框架的差異性可透過等差數列的概念作 結合;而作品「腳踏實地」
注意本文引用的語句典實及其內容。所有典實,不但須說明其意義 來歷,而且須說明其用法之巧拙…
進而能自行分析、設計與裝配各 種控制電路,並能應用本班已符 合機電整合術科技能檢定的實習 設備進行實務上的實習。本課程 可習得習得氣壓-機構連結控制
注意本文引用的語句典實及其內容。所有典實,不但須說明其意義
這是一張 白色的(例︰顏色) 、半透明 的不織布。它本來有手掌般大,但包裝
2.「情境」創設對非華語學生學中文的影響 3.應用「調適架構」配合情境訂立教學目標 二、 第二語言教學流派..
本論文結合了 GPU-FPM 以及 Bitmap 的優點,並利用 Multi-GPU 架構提出 Multi-GPU CSFPM 的演算法,由於 CSFPM 如同 GPU-FPM
本章將對 WDPA 演算法進行實驗與結果分析,藉由改變實驗的支持度或資料 量來驗證我們所提出演算法的效率。實驗資料是以 IBM synthetic data generator