高效能對數轉換器的研究與實作
43
0
0
全文
(2) 摘要 本篇論文的重點在於提出一種高效能的二區段對數轉換器,它能夠以低面積與低 延遲的硬體架構來達到高精確度的對數轉換。在精確度的分析中,本篇提出的方法可 以使誤差區間與誤差百分比區間降至 0.0319 與 2.337%,比起以往的單區段及二區段 近似方法要來的精準,甚至優於四區段而僅略低於六區段的近似方法。同時,本篇提 出的方法有著簡單與易於實現的硬體架構優勢,比起 shift-and-add 這類方法更能避免 多餘的運算,有效的減少誤差區間與硬體成本。 在本篇論文中,將先敘述對數運算單元的重要性以及它是如何的運作,並依序將 整個運算單元拆解成各個小單元來介紹。但最重要的著眼點仍然在於對數轉換單元, 因為這個部份的轉換如果產生太大的誤差,將會嚴重影響對數反轉換的結果。接著介 紹並分析前人提出的方法以及本篇所新提出的方法,並且將這些方法產生的誤差、硬 體成本與時間延遲彙整與比較。 此篇論文以 MATLAB 做為誤差分析的模擬工具,由模擬結果得知與真實對數曲 線的誤差百分比區間為 2.337%,與比較的其他方法相比最多可改善 59.6%的誤差。 硬體架構的實作是以 Verilog 硬體描述語言來進行模擬,並利用 Synopsys 公司所開發 的 Design Vision 做為合成的工具,以進行面積與延遲的分析。在 TSMC 0.18μm 製程 下,delay=0.79ns 時,面積為 1989μm2。. I.
(3) 致謝 在這論文完成之際,首先我得感謝一路從大學專題指導我到碩士論 文的指導教授莊作彬老師,在這三年半裡伴我挺過挫折與失落的低潮, 最終得以完成此論文。這段時間裡,共同經歷並見證了高速運算實驗室從 無到有的成長與茁壯,並且隨著實驗室成員的逐年增加,老師的負擔也 與日俱增。雖然有時我們會私下抱怨老師倉促間突然說要投稿論文,但 我們心裡知道同時要負責多篇論文的老師其實更為辛苦。 此外,我也非常感謝已畢業的陳昇宏學長,做為實驗室在對數轉換 器研究領域中的開路先鋒,讓我在撰寫論文時能有一個明確的方向,同 時我也依然清楚記得學長對我的鼓勵。實驗室的兩位好夥伴邱敬捷與彭 信豪,以及同學林義貴,你們都是我從大學時期至今的好朋友,六年來 不論是課業上的互助或是日常瑣碎的分憂解勞,這份情誼都將長存在我 心中。 最後,我深深感謝我的父母,多年來含辛茹苦的工作以供我求學所 需,並一路支持著我迎向這一刻。. II.
(4) 目錄 摘要 ................................................................................................................... I 目錄 ................................................................................................................ III 圖目錄 .............................................................................................................. V 表目錄 .............................................................................................................VI 第一章 緒論 ..................................................................................................... 1 1.1 動機與目的 ................................................................................................................. 1 1.2 前人的作法與演變 ..................................................................................................... 2 1.3 研究工具介紹 ............................................................................................................. 3 1.4 論文架構 ..................................................................................................................... 3. 第二章 對數算術單元..................................................................................... 5 2.1 對數算術單元之重要性 ............................................................................................ 5 2.2 對數算術單元架構 .................................................................................................... 7 2.3 對數轉換器 ................................................................................................................ 9. 第三章 對數轉換單元文獻回顧................................................................... 14 3.1 Mitchell的一區段近似方法..................................................................................... 14 3.2 Combet的四區段近似方法...................................................................................... 16 3.3 SanGregory的二區段近似方法 .............................................................................. 17 3.4 Abed的二區段及六區段近似方法 .......................................................................... 19 3.5 Juang的二區段近似方法......................................................................................... 21. 第四章 研究方法........................................................................................... 22 4.1 研究步驟 .................................................................................................................. 22 4.2 提出方法[17] ........................................................................................................... 25. III.
(5) 第五章 比較與分析....................................................................................... 27 5.1 對數轉換器之誤差比較與分析 .............................................................................. 27 5.2 對數轉換器之面積與延遲的比較與分析 .............................................................. 31 5.3 對數轉換器之架構比較與分析 .............................................................................. 32. 第六章 結論 ................................................................................................... 34 第七章 參考文獻........................................................................................... 35. IV.
(6) 圖目錄 圖 1- 1:3-D運算中各種運算的比例[14] ........................................................................... 2 圖 2- 1:對數算術單元架構[14] ......................................................................................... 8 圖 2- 2:輸入項N固定寬度格式表示圖 [14] .................................................................... 9 圖 2- 3:log2(N)的固定寬度格式表示圖(Q6.26 範例) [14]............................................... 9 圖 2- 4:對數轉換單元架構圖[14] ................................................................................... 10 圖 2- 5:4 位元LZD架構圖[16] ........................................................................................ 11 圖 2- 6:16 位元LZD架構圖[16] ...................................................................................... 12 圖 3- 1:Mitchell的對數近似值與真實對數值之比較(N=2 to 4).................................... 15 圖 3- 2:Combet的對數近似值與真實對數值之比較(N=2 to 4) .................................... 17 圖 3- 3:SanGregory的對數近似值與真實對數值之比較(N=2 to 4).............................. 18 圖 3- 4:Abed’s 2-Region的對數近似值與真實對數值之比較(N=2 to 4) ...................... 19 圖 3- 5:Abed’s 6-Region的對數近似值與真實對數值之比較(N=2 to 4) ...................... 20 圖 3- 6:Juang的對數近似值與真實對數值之比較(N=2 to 4)........................................ 21 圖 4- 1:Mitchell近似方法的近似值與其值加上Error(3)後之比較 ............................... 23 圖 4- 2:Mitchell近似方法的誤差與誤差百分比之比較 ................................................ 24 圖 4- 3:提出的對數轉換器的對數近似值與真實對數值之比較(N=2 to 4) ................. 26 圖 5- 1:提出的方法與[12-13 and 15]的誤差百分比比較(N=2 to 4) ............................. 29 圖 5- 2:提出的方法與[11 and 13]的誤差百分比比較(N=2 to 4)................................... 30 圖 5- 3:Juang的對數轉換單元的架構 ............................................................................ 32 圖 5- 4:提出的對數轉換單元的架構.............................................................................. 33. V.
(7) 表目錄 表 2- 1:對數系統運算轉換表[14] ..................................................................................... 6 表 2- 2:4 位元LZD真值表[16] ........................................................................................ 11 表 4- 1:x-1=0 (0≤x<0.5)所對應的修正值......................................................................... 24 表 4- 2:x-1=1 (0.5≤x<1)所對應的修正值......................................................................... 25 表 5- 1: 提出的方法與 [10,12-13 and 15]的精確度比較 ................................................ 28 表 5- 2: 提出的方法與 [10-11 and 13]的精確度比較 ..................................................... 29 表 5- 3: 提出的方法與[11-13 and 15]在delay為 1.59ns時的面積比較........................... 31 表 5- 4: 提出的方法與[11-13 and 15]在最小延遲下的面積資訊 ................................... 32. VI.
(8) 第一章. 緒論. 在現今的時代中,舉凡個人電腦、行動通訊設備乃至智慧家電,只要涉及資料 的處理程序都與算術邏輯運算單元相關,這些運算單元包括了基本邏輯閘、加法器、 減法器、乘法器、除法器乃至其他更為複雜的單元。然而在面對不同的應用時,這 眾多的運算單元之中,必定會有一部分是使用率較高的單元,而有些則使用率較低。 因此,當應用的方向指定後,若能簡化高使用率運算單元的複雜度並以簡單的方法 整合其餘低使用率運算單元,總體而言可以獲得效能的提升。 同一種算術邏輯可以透過許多種不同的方法來實現,以乘除法為例,我們知道 在計算機中是透過一連串的加減法來達成,但這種迴圈式的累計方式會產生長時間 的運算成本,因此有了許多針對乘除法器進行改良的方法出現。在眾多的改良方法 中,其中一種方式便是運用對數算術來實現運算,對數算術單元能夠在速度較慢或 是面積較小的硬體上發揮其架構精簡的優勢,因此廣泛應用於數位信號處理(Digital Signal Process)。在對數算術單元的演進上,最早於 1965 年就有對數轉換的概念被 提出,至今仍不斷有新的改良方式被提出[1-15]。 本篇論文提出一個低誤差且省面積的高效能對數轉換器。在論文的架構上,我 們將先說明對數算術單元的優點及其重要性,並描述對數算術單元的原理及架構, 接著介紹前人所提出的改良方法,並將這些方法與我們所提出的方法進行多方面的 比較。. 1.1 動機與目的 隨著科技的演進,人們對於影像的要求已經不是 2-D圖學所能滿足的,因此 3-D 圖學的運算就變成了一個很重要的議題。由於 3-D圖學需要大量且複雜運算,其中 又以除法與乘法的使用最為頻繁,圖 1- 1顯示這兩種運算就佔了約 86%。這些複雜. 1.
(9) 的運算若改以對數算術系統來運算,大部分的運算都能被加快處理。 SQRT 2.65%. OTHER 7.11%. ADD/SUB 4.18%. DIV MUL 5.11%. MUL ADD/SUB SQRT OTHER DIV 80.95%. 圖 1- 1:3-D 運算中各種運算的比例[14]. 1.2 前人的作法與演變 使用對數轉換器進而改變運算形式來實現較複雜運算的方式,最早可追溯至 1962 年由 Mitchell 提出的不使用唯讀記憶體的對數近似方法[10],只利用簡單的移 位方式便創造出最早的對數轉換器。這種方法的最大好處在於架構簡單,非常的節 省面積花費與延遲,但也因為近似方式太過簡單導致產生的誤差非常的大。接著在 1965 年由 Combet 提出四個區段的近似方法[11]來改良 Mitchell 的方法,雖然使用四 個區段修正誤差所得到的對數近似值比起原本的方法要精確許多,但相對的使用了 愈多方程式就必須付出愈多的硬體成本。到了 1999 年,SanGregory 注意到了這個 問題,於是以較少的二區段近似方法[12]進行改良,雖然在精確度的改善方面比不 上四區段的方法,但相對的節省了許多硬體成本。而在 2003 年,Abed 提出了針對 節省面積的二區段近似方法和以提升精確度為目標的六區段近似方法[13]。到了近 期,Juang 於 2009 年發表了一種利用 Mitchell 近似方程式的斜率及垂直關係做為二 區段近似方法[15]的理論依據,在二區段的方法中精確度有重大的突破,但必須付. 2.
(10) 出龐大的硬體成本。對數轉換的問題至今仍持續的被研究與發表,可見這是個歷久 不衰且值得研究的主題。. 1.3 研究工具介紹 此篇論文以 MATLAB 做為誤差分析的模擬工具,硬體架構的實作是以 Verilog 硬體描述語言來進行模擬,並利用 Synopsys 公司所開發的 Design Vision 做為合成 的工具,以進行面積與延遲的分析。 在誤差分析方面選擇以 MATLAB 做為工具,主要是有以下三點原因: (1)本身為數學運算軟體,對各類研究與應用提供許多函數與演算法。 (2)語法簡單易於使用,大部分和我們常用的數值運算式相同。 (3)強大且易於使用的繪圖功能,能輕易的將對數轉換的結果以圖形表示。 在面積與延遲的分析中,選擇以 Synopsys 公司所開發的 Design Vision 做為工 具,主要有以下兩點原因: (1)可以透過 Design Ware 選擇各種不同的套件及運用元件:像是加法器從一般的 ripple adder、 select adder 到 look ahead adder 等。 (2)具有時序分析、面積分析等各類分析功能,例如:分析 setup、hold time 的違規, 以及硬體面積的估算,提供詳細資訊並可透過指令來追蹤 critical path。. 1.4 論文架構 此篇論文將依照以下的次序來說明我們的研究成果:在第二章將先介紹對數算 術單元的重要性以及整體架構,接著介紹對數算術單元中最為重要的對數轉換器, 這個部份就是我們最重視且投入研究要改良的地方。而第三章的部份,進行對數轉 換單元的文獻回顧,共列舉了五篇參考文獻所提出的方法。到了第四章,詳細的說. 3.
(11) 明我們所提出的方法是如何推演而成。第五章會將我們提出的方法與第三章所提到 的方法進行精確度、面積與延遲的比較,以及與二區段的對數轉換方法中精確度最 高的一種做架構方面的比較。最後,在第六章的部份做出總結。. 4.
(12) 第二章. 對數算術單元. 對數算術單元可以將多種運算單元以對數運算的方式實現,即以一套硬體來執 行多種運算。在此章節中,我們將解釋為何對數算術有其重要性,並描述對數算術 單元的整體架構。而此論文的核心主題—對數轉換器的概括輪廓也將在此章節有個 初步的說明,詳細的對數轉換方法留在第三章討論。. 2.1 對數算術單元之重要性 在眾多的算術邏輯單元中,較為簡單的如加法器及減法器,較為複雜的有乘法 器、除法器、平方器及開根號器等,每種單元都有其代表性的方法。這些改良的方 法在總體的效能上一定是遠遠優於最傳統的方法,將這些高效能的單元一一集結各 展所長固然是追求效能的最佳方法。然而,所謂的最佳效能則依應用領域的不同在 定義上會有所差異,例如在硬體面積小的設備上,就存在著低面積的需求,這時候 在設計上我們就不一定會選擇那些速度快但面積大的算術邏輯單元。更進一步的, 我們會想何不把這些用途單一的單元全部去掉,使用一種能夠應付這些運算需求的 單一算術單元。 我們知道,所謂的乘法其實是一種連續加法的概念,例如 4 乘以 8 表示共有八 個四連續相加,其結果為 32。但在對數系統中,將數值轉為以二為底的對數形式後, 可以表示為 22+3(22×23),只有一個簡單的 2 加 3 的動作。而除法則相對於乘法, 在對數系統中變成了簡單的減法動作。甚至連平方與開根號的複雜動作也變得僅需 透過簡單的移位即可達成。表 2- 1為對數系統運算轉換表,列出各種運算所對應的 對數算術運算。. 5.
(13) 表 2- 1:對數系統運算轉換表[14] Operation Multiplication. MUL. Normal Arithmetic z = x⋅ y. Logarithmic Arithmetic. Division. DIV. z = x/ y. X −Y. Reciprocal. RCP. z = 1/ x. −X. Square Root. SQRT. z= x. X >> 1. Reciprocal. RSQ. z = 1/ x. -X >> 1. Square. SQR. z = x2. X << 1. Powering. POW. Y + log 2 X. Addition. ADD. Subtraction. SUB. z = xy z=x+ y z=x− y. X +Y. X + log 2 (1 + 2Y − X ) X + log 2 (1 − 2Y − X ). 表 2- 1中,小寫字母x及y表示要進行運算的運算元,大寫字母X及Y表示以二為底的 x及y所得出的對數。第一個欄位為運算的類型,即運算子,如除法;第二個欄位為 該運算的一般形式,如z = x / y;第三個欄位則為該運算的對數算術形式,如z = 2X-Y。 在此舉兩個例子來說明運算轉換的流程: 範例一:設 x=64,求開根號的結果。 先將數值 x=64 進行以二為底的對數轉換,得 X = log2(64) = 6;接著進行對數算術形 式的運算,開根號對應的動作為右移一位,在二進制數字系統中右移一位代表除以 二的意思(01102 → 00112),因此得出 3;然而到目前為止的動作只是將轉換後的 對數進行調整,必須再透過對數反轉換的動作才能得到真正的結果,即 23(8)才 會是 64 開根號的結果。 範例二:設 x=64,y=4,求 x 除以 y 的結果 先將數值 x 及 y 進行以二為底的對數轉換,得 X = log2(64) = 6,Y = log2(4) = 2;接 著進行對數算術形式的運算,除法對應的動作為減法,因此得出 X – Y = 4;同樣的, 到目前為止都還只是對數形式的結果,必須透過對數反轉換的動作才能得到真正的. 6.
(14) 結果,即 24(16)才會是 64 除以 4 的結果。 透過對數算術我們能將這些乘法、除法、平方及開根號等較複雜的運算簡化為 加法、減法及移位,使得原本必須花費的冗長運算時間及龐大硬體成本得以節省。 同時,當所需要的運算單元種類愈多時,若改以對數算術單元取代,則愈能夠表現 出對數算術單元將多種運算整合於一體的優勢。 上面兩個例子反映出使用對數算術來取代一般的運算形式所必須經過的步驟為: (1)將輸入值進行對數轉換 (2)進行對數算術 (3)將運算完的結果進行對數反轉換 於章節 2.2 將對整體架構作進一步的說明。. 2.2 對數算術單元架構 經由章節 2.1 的說明,已得知整個對數算術單元的運作流程共分為三個步驟,圖 2- 1即為其架構圖。整個架構可以分為兩層(1st Stage及 2nd Stage),第一層為兩個 對數轉換器LOG2,目的是將我們所輸入的兩個運算元x及y轉換成以二為底的對數形 式log2x及log2y,如此才能繼續下一層級的處理。而另一項輸入資料i-1 則是做為輸入 項x及y的固定寬度格式,決定了一筆資料中的整數部分與小數部分的區域,這個部 分將留在章節 2.3 來說明。 第二層的部分包含了兩個單元,簡易計算單元 SCU(Simple Calculation Unit) 以及對數反轉換器 EXP2(Anti-log)。簡易計算單元透過控制信號 op(operation) 的傳入選擇對應的動作,例如我們若要進行兩數相除的運算,則透過控制信號讓此 單元執行對數轉換後的兩筆資料相減的運算。簡易計算單元共有加法、減法、移位 以及反相四種動作。另一個單元為對數反轉換器,這個部分則是將簡易計算單元運 算完的結果,從對數的形式反轉回原本的形式,得到與一般形式相同的運算結果。. 7.
(15) 圖 2- 1:對數算術單元架構[14] 從圖 2- 1中明顯看出,輸入的運算元在經由簡易計算單元運算前必須先經過對 數轉換器的轉換。然而對數轉換器的作法並不只有一種,共有三大類的方法(資料 遞迴、查表、移位及加法) ,詳細的說明留待第三章討論,在此只先提到由於考量了 硬體面積的節省以及延遲時間的縮短,因此在進行對數轉換時可能會捨棄一部分的 精確度。也就是說,運算元在一開始經過對數轉換器的轉換後便產生了誤差,假使 一開始產生的誤差就非常的嚴重,又經過簡易計算單元的運算後誤差會再放大一 次,那麼最終的對數反轉換部分不論有多麼的精確,也無法得到一個精確的結果, 更何況對數反轉換器本身也存在著造成誤差的問題。正所謂失之毫釐差之千里,因 此,本篇論文的研究將核心置於第一層的對數轉換器部分。. 8.
(16) 2.3 對數轉換器 前一章節中,介紹了對數算術單元的整體架構,並且了解到對數轉換器對於最 終輸出的結果有著重大影響,是整個架構中極為重要的角色。 圖 2- 4為對數轉換器的架構圖,在說明架構之前,首先要了解資料輸入端的格式, 也就是運算元的資料格式。輸入端的N(Q i.f )表示數值N的固定寬度格式為高位元前 i-bit為整數部分,其餘的部分(f-bit)則表示小數,如圖 2- 2。. 圖 2- 2:輸入項 N 固定寬度格式表示圖 [14] 這樣的設計讓我們可以經由不同的格式設定來調整小數點的位置,圖 2- 3為格 式Q 6.26 的範例,表示資料的寬度總共為 32 位元,其中高位元處以 6 位元表示整數, 其餘的 26 個位元則用來表示小數。舉例說明,有一筆 32 位元資料如下: 0011_0010_1000_0000_0000_0000_0000_00002,在此格式下其值為 12.625。但若固 定寬度格式設為Q 8.24,則其值代表 50.5。. 圖 2- 3:log2(N)的固定寬度格式表示圖(Q6.26 範例) [14] 在固定寬度格式的設定上,本篇論文所提出的方法與其他參考文獻比較時所用 的格式皆是使用 Q 6.26,皆在同樣格式下進行比較。使用固定寬度的系統取代浮點 數系統主要有兩個原因:第一,較浮點數系統易於在硬體上實現,因為固定寬度系 統只需使用整數的資料分析。第二,可在高時脈頻率下運算,因應各階段 3D 圖形. 9.
(17) 管線化所需之數字寬度範圍來做精確度最佳化,因此隨著輸入寬度的要求而進行動 態變化是必須的。. 圖 2- 4:對數轉換單元架構圖[14] 對數轉換器包含了 32-bit 前導零偵測計數器 CLZ(Count Leading Zero)、移位 器 BSH、整數部分產生器 IntGen(Integer Generator)以及浮點數部分產生器 FPGen (Fractional Part Generator)四個部分,以下將逐一介紹各個單元。 (1) 32-bit 前導零偵測計數器(CLZ) 此單元是用來計算運算元的前導零個數,所謂的前導零指的是從最高位元開始 算,在遇到第一個非零值之前共有幾個位元為零。在浮點數運算當中需要利用到這 個元件來偵測 0 的個數以做正規化的動作。 舉例如下,運算元 0001_1010_1000_0000_0000_0000_0000_00002 從最高位元算 起共有 3 個前導零,此為目測結果,實際做法如下說明。 在設計 32 位元的前導零偵測計數器之前,先以 4 位元的LZD做為說明,其架構 如圖 2- 5。B3~0 為輸入的運算元,P1~0 表示前導零個數,V(valid)為有效值偵測,. 10.
(18) 0 表示目前仍未偵測到任何一個非零值,無法決定連續零值的數目,需要根據更低 位元的資料才能決定出正確的數量。. 圖 2- 5:4 位元 LZD 架構圖[16] 表 2- 2列出了 4 位元的前導零偵測計數器所可能發生的五種情況,即前導零的個數 分別為 0 個至 3 個,以及 4 位元全為零的無效狀況。 表 2- 2:4 位元 LZD 真值表[16] Pattern(B3~0). Position. Position(Binary). Valid. 1011. 0. 00. Yes. 0100. 1. 01. Yes. 0011. 2. 10. Yes. 0001. 3 ╳. 11 ╳. Yes. 0000. No. 經由 4 位元的CLZ,我們可以逐步將其擴充。圖 2- 6為 16 位元CLZ的架構圖, 其中包含了 8 位元的架構圖,並可依照使用兩組 8 位元CLZ結合成 16 位元CLZ的方 法擴充至 32 位元。其中的LZD4 即為圖 2- 5的架構,LZD8 的運算流程稍後會做說 明。. 11.
(19) 圖 2- 6:16 位元 LZD 架構圖[16] 以圖2- 6中左半部的LZD8為例,VV0=V0 ∨ V1( ∨ 表示logic-OR), PP0的最 高位元(PP0[2])為V0的反相,因為V0若為無效,則表示至少有4個前導零存在。PP0[1:0] 的輸出同樣由V0決定,當V0=1時表示在前四個位元之中已出現非零位元,這時不論 後頭還有多少個零值都不影響前導零的個數,因此PP0[1:0]=P0的值;而當V0為無效 狀況時,則P[1:0]=P1的值。 以下為執行範例,運算元為000011112,左邊的LZD4會輸出V0=0,P0=11;右邊 的LZD4會輸出V1=1, P1=00,LZD8接收兩端的輸入後,VV0=V0 ∨ V1=1,PP0[2]=1 (V0的反相),因V0=0使得PP0[1:0]會輸出P1的值,最後得出的PP0=100表示運算元 有4個前導零。 (2) 移位器(BSH) 透過前一步驟所計算出的前導零個數,移位器將利用這項參數將運算元進行左 移位(left-shift)的動作,直到將第一個非零位元以前的零值全部移除為止,目的為 取得對數轉換小數部分初步的近似值。但要注意的是,第一個非零位元並不算在小 數部分之內,從此值右一位開始才屬於小數,依固定寬度格式的小數寬度來取值。 舉例如下,承上一步驟運算元 0001_1010_1000_0000_0000_0000_0000_00002, 固定寬度格式為 Q 6.26,前導零為 3 個,因此將運算元進行 3 個位元的左移後得到. 12.
(20) 1_1010_1000_0000_0000_0000_0000_0000_0002,排除第一個非零位元不算,依照固 定寬度格式的小數寬度取值,得到 1010_1000_0000_0000_0000_0000_002。 (3) 整數部分產生器(IntGen) 此單元為計算對數轉換的整數部分之值,與小數部分不同並不會產生任何誤 差。將固定寬度格式中的小數寬度轉為一補數,並將此值與前導零個數兩者相減即 為整數部分之值。 舉例如下,運算元同為 0001_1010_1000_0000_0000_0000_0000_00002,固定寬 度格式為 Q 6.26,前導零為 3 個,將固定寬度格式中的小數寬度 26 轉為一補數得到 5(110102 → 001012) ,再將此值與前導零個數相減得到整數部分之值為 2(5 - 3)。 由於這個部分並不會產生誤差,因此我們在此進行簡易的驗算比對,固定寬度格式 整數寬度為 6,從運算元中得到整數為 0001_102,此值大於 22 小於 23,故取以二為 底的對數其整數部分為 2。 (4) 浮點數部分產生器(FPGen) 此單元將移位器所產生的對數轉換小數部分的近似值做進一步的修正,得到更 為精確的小數部分近似值。 在整個對數轉換器中,除了此單元外其餘的三個單元做法皆大同小異,對整體 而言影響甚微,主要的差異點聚焦在會造成誤差的小數近似上。因此,關於浮點數 部分產生器的詳細介紹將於第三章以全章來說明,並在第四章提出我們的方法。. 13.
(21) 第三章. 對數轉換單元文獻回顧. 對數轉換單元大致分為三大類方法,即資料遞迴、查表、移位及加法。使用資 料遞迴的方式[1-3]具有低面積高精確度的優點,但是延遲時間比起其他兩種方法要 來得長。而查表的方式[4-9]則是在速度上有很好的表現,但在硬體面積上必須花費 較多成本。移位及加法的方式[10-15]兼容了面積、速度與精確度,是以一些簡單的 方程式對小數部分進行近似值的修正。而本篇論文所提出的方法,以及所用來比較 的其他方法皆是歸類於移位及加法中,此章將介紹前人提出的方法以供後續數據之 比較。. 3.1 Mitchell 的一區段近似方法 最早於 1962 年,Mitchell 提出了一種介於 2 的次方的線性內插近似方法[10], 此方法的最大優點是簡單易於計算。 令一數值 N 可表示成式子(3.1)的形式,其中 2k≤N<2k+1,0≤x<1。 N = 2k(1+x). .......... .......... .......... .......... ......... (3. 1). 例如,N = 3.25,以二進制表示為 011.012,最高位的非零值為 010.02,因此它 的二的次方項 k 為 1。接著將最高位的非零位元以下的值(1.012)移位至小數點之後, 這個調整後的小數位之值即為 x。因此,N 可以表示為 3.5 = 21(12+0.1012)。 若將套入式子(3.1)的輸入值 N 做以二為底的對數運算,可以得到式子(3.2)。 log2(N) = k + log2(1+x). .......... .......... .......... .......... ......... (3. 2). Mitchell 的方法就是將複雜的 log2(1+x)直接以 x 來近似,省去了所有繁雜的計 算,僅以 k 與 x 這兩個容易取得的數來做對數的近似,如式子(3.4)。在原式(3.2)中, log2(3.25) = 12 + log2(12+0.1012),而以 Mitchell 的方法轉換則會得到 log2(3.25) ’ = 12 + 0.1012 的近似值。. 14.
(22) log 2 (1 + x) ' = x. .......... .......... .......... .......... ......... (3. 3). log 2 ( N ) ' = k + log 2 (1 + x) ' = k + x. .......... .......... .......... .......... ......... (3. 4). 要取得對應於N的k與x這兩個數值,只需要用到移位與計數而已,這種方法易 於理解而且在硬體上也能簡單的實現。但由於這個方法僅是單純的將輸入值N調整 後的小數位x加上k,因此從式子(3.4)可以輕易的看出對數轉換的結果與N呈線性關 係,如圖 3- 1。. 圖 3- 1:Mitchell 的對數近似值與真實對數值之比較(N=2 to 4) 利用式子(3.5)可以計算 N 的真實對數與近似值的誤差 Error(N),再將此誤差除 以真實的對數值並乘上 100%即為誤差百分比 Percent Error(N)。從式子(3.2)及(3.4) 可以得知 k 的值並不影響誤差,真正影響誤差的部份為 log2(1+x)’。又因為 x 會被調 整為 0≤x<1,如 N=11.02 與 N=110.02 兩者的 x 是相同的,皆為 0.102,在 x 相同的情 況下當 N 愈大時,得到的誤差百分比會愈小,因此我們將 N 的範圍指定在 2≤N<4, 以避免較大的分母使誤差相對變小。 Error( N ) = log 2 ( N ) − log 2 ( N ) ' = log 2 (1 + x) − x. 15. ......... .......... ......... (3. 5).
(23) Percent Error( N ) =. log ( N ) − log2 ( N )' Error( N ) ×100% = 2 ×100% log2 ( N ) log2 ( N ). …..... .......... ......... (3. 6). 透過 MATLAB 的模擬,Mitchell 的近似方法在 x=0.442 的時候會產生最大正誤 差 0.086,當 x=0.359 時產生最大的誤差百分比 5.791%,同時式子(3.3)也反映出 Mitchell 的方法求得的近似值永遠小於等於真實對數值。這個方法雖然簡單且易於 實現,但只用一個線性方程式來進行近似會產生極大的誤差,因此往後改良的方法 皆是以 Mitchell 的方法為基礎並分為數個區段分別修正。. 3.2 Combet 的四區段近似方法 早在 1965 年,Combet 就針對 Mitchell 的對數近似方法提出改良[11],將 N=2k 到 N=2k+1 之間的數均等的分成四個區段,每個區段各自進行不同程度的誤差修正。 實際的修正方式如式子(3.7),第一項 x 代表是以 Mitchell 近似方法為基礎來做 改良,其餘在四個區段中的 x、 x 及常數項皆是額外的修正值。在額外修正值 x 及 x 取全精度的時候,誤差百分比可大幅降低至約 1%,但如此一來則必須付出非常龐 大的硬體成本。因此,在與其他方法比較時,為了避免因面積過於龐大導致無法比 較,我們只取 x 及 x 的前 4 位元為最高有效位元(most significant bits) 進行額外修正。. ⎧ x + (5 /16) x, 0 ≤ x < 0.25 ⎪ x + 5 / 64, 0.25 ≤ x < 0.5 ⎪ log 2 (1 + x) ' = ⎨ ⎪ x + (1/ 8) x + 3 /128, 0.5 ≤ x < 0.75 ⎪⎩ x + (1/ 4) x , 0.75 ≤ x < 1. ......... .......... ......... (3. 7). 圖 3- 2為Combet的四區段近似方法得到的對數近似值與真實對數值的比較。. 16.
(24) 圖 3- 2:Combet 的對數近似值與真實對數值之比較(N=2 to 4). 3.3 SanGregory 的二區段近似方法 SanGregory 於 1999 年提出了一個以 Mitchell 的方法為基礎的二區段近似方法 [12],將 N=2k 到 N=2k+1 之間的數均等的分成兩半,並且各自以不同的修正值進行額 外修正。 在Mitchell的方法中,當N的值為 2k和 2k+1 時,產生的近似誤差為 0,而當N的 值離這兩點愈遠時,誤差值也會隨之增加。在章節 3.1 中提到,當x為 0.442 的時候 會產生最大的正誤差 0.086,也就是說,修正值的範圍必須介於 0.125 (0.0012)與 0.0625(0.00012)才是最合理的。將圖 3- 1以N=3 (k=1, x=0.5)為中點分成 2≤N<3 與 3≤N<4 兩部分來觀察,可以發現第一段的誤差大致上與N呈正向關係,在第一段的 最後N=2.999 時,誤差為 0.085,而第二段的誤差則是呈現反向關係,當N=3.0 的時 候誤差為 0.085,隨著N的增加誤差會逐漸降低。 為了進一步修正 Mitchell 的方法所造成的誤差,SanGregory 以隨著 N 改變而變 動的 x 做為額外修正的依據,並將 x 分為兩個區段進行修正。第一區段 0≤x<0.5 中,. 17.
(25) 由於修正值必須小於 0.125 (0.0012),因此必須先將 x 右移 2 位元。而在第二區段 0.5≤x<1 中,由於誤差與 N 及 x 呈反向關係,以及修正值同樣必須小於 0.125 (0.0012) 的關係,因此得將 x 小數位的部分先反相後再右移 2 位元。同時,為了節省面積而 只取 x 前 4 位元為最高有效位元(most significant bits) 進行額外修正,以 x4MSBits 表 示,得到式子(3.8)。 −2 ⎪⎧ x + 2 x4 MSBits , 0 ≤ x < 0.5 log 2 (1 + x) ' = ⎨ −2 ⎪⎩ x + 2 x4 MSBits , 0.5 ≤ x < 1. ......... .......... ......... (3. 8). 同樣的以 N=3.25 為例,x=0.1012 ≥ 0.5 落在第二區段,因此額外修正的 x 小數 位部分必須反相並取前 4 位元,得到 x 4MSBits = 0.01012。乘以 2-2 也就是右移 2 bits 後 與 Mitchell 的方法求得的近似值相加,得到 log2(3.25) ’ = 12 + 0.1012 + 0.0001012 = 1.1011012。. 圖 3- 3:SanGregory 的對數近似值與真實對數值之比較(N=2 to 4) 使用SanGregory的方法修正後,得到的近似值與真實對數值的比較如圖 3- 3, 使誤差百分比區間從 5.791%降至 4.207%。雖然精確度提升了,但從比較圖可以看. 18.
(26) 出近似的結果產生了負的誤差,而原本Mitchell的方法是不會產生負誤差的。也因為 進行了額外的修正使得近似值更為精確,因此必須付出額外的硬體成本來實現這種 架構。. 3.4 Abed 的二區段及六區段近似方法 Abed 在 2003 年,提出了二區段及六區段的近似方法[13]來改良 Mitchell 的方 法。其中,二區段的方法是以面積為考量,而六區段的方法則是以精確度為考量。 在二區段的近似方法中,大致上與SanGregory的方法相同,唯一的差別在於額 外修正的x尾數減少了 1 bit,如式子(3.9)。由於尾數的使用數比起SanGregory的方法 要少 1 bit,因此在面積方面可以有更好的表現,但也因為尾數取的較少,因此誤差 會因此變大。圖 3- 4為Abed的二區段近似結果與真實對數值的比較。. ⎧⎪ x + 2−2 x3MSBits , 0 ≤ x < 0.5 log 2 (1 + x) ' = ⎨ −2 ⎪⎩ x + 2 x3MSBits , 0.5 ≤ x < 1. ......... .......... ......... (3. 9). 圖 3- 4:Abed’s 2-Region 的對數近似值與真實對數值之比較(N=2 to 4). 19.
(27) 而在六區段的近似方法中,是以提升精確度為主要目的,因此不再是均等的將 N=2k 到 N=2k+1 分為兩區段或四區段,而是將 Mitchell 的誤差做分析後分為六個不同 大小的區段各自修正,如式子(3.10)。. ⎧ x + 2−2 x6 MSBits , 0 ≤ x < 0.0625 ⎪ −2 −6 ⎪ x + 2 x6 MSBits + 2 , 0.0625 ≤ x < 0.25 ⎪ x + (2−4 + 2−7 + 2−8 ), 0.25 ≤ x < 0.375 ⎪ log 2 (1 + x) ' = ⎨ −4 −6 −7 ⎪ x + (2 + 2 + 2 ), 0.375 ≤ x < 0.625 ......... .......... ......... (3. 10) ⎪ x + (2−4 + 2−7 ), 0.625 ≤ x < 0.75 ⎪ ⎪⎩ x + 2−2 x6 MSBits , 0.75 ≤ x < 1.0 由於區段數高達六段,而且尾數的使用數也高達 6 bits,因此在精確度方面有非 常好的表現,如圖 3- 5所示。但大量的提高區段數及尾數必須支付龐大的硬體成本, 在面積的表現上依然存在著改善的空間。. 圖 3- 5:Abed’s 6-Region 的對數近似值與真實對數值之比較(N=2 to 4). 20.
(28) 3.5 Juang 的二區段近似方法 在 2009 年,Juang 提出了一種以 Mitchell 對數近似方法的線性方程式的斜率來 推導二區段修正的近似方法[15],同樣是將 N=2k 到 N=2k+1 之間的數均等的分成兩個 區段。 雖然同樣為二區段的方法,但與 SanGregory 及 Abed 的方法有明顯的差異性, 除了推導方式不同外,這個方法使用了兩組的 x4MSBits 做為額外修正,並且在第二區 段的部份使用了常數項來修正,如式子(3.11)。 −3 −4 ⎪⎧ x + (2 + 2 ) x4 MSBits , 0 ≤ x < 0.5 log 2 (1 + x) ' = ⎨ −3 −5 −3 −5 ⎪⎩ x − (2 + 2 ) x4 MSBits + (2 + 2 ), 0.5 ≤ x < 1 ..... .......... ......... (3. 11). 由於比起其他的方法多使用了一組x4MSBits做為額外修正,因此即使只將N=2k到 N=2k+1 分為兩個區段依然能有相當良好的近似結果,如圖 3- 6。但也由於多使用了 一組x4MSBits,因此必須額外花費龐大的硬體成本在修正值的加總上。. 圖 3- 6:Juang 的對數近似值與真實對數值之比較(N=2 to 4). 21.
(29) 第四章. 研究方法. Mitchell 的方法雖然簡單,但對數轉換後得到的近似值卻不夠精確。雖然後來 有許多不同的改良方式能大幅的降低誤差,如 Combet 的四區段近似法與 Abed 的六 區段近似法,但相對的必需以高面積與高延遲做為代價。而在二區段的近似方法中, Abed 所提出的方法與 SanGregory 的非常相似,差別只在於 x 的尾數長度不同,兩 者同樣都有低面積與低延遲的優點,但在精確度的改善上效果並不是很顯著。而同 樣為二區段近似法的還有 Juang 於 2009 年所提出的方法,與前述兩項二區段近似法 有明顯的不同,以斜率來求得修正方程式的係數,可以得到更為精確的近似值,但 同時也會大幅的增加硬體成本。 因此,能否找出一種方法同時具備二區段的低成本與多區段的高精確度這兩項 優勢,便是一個值得探究的目標。. 4.1 研究步驟 在進行改良前,首先要了解精確度的評估方式,我們同樣也是使用式子(4.1)的 誤差百分比區間做為誤差的評估。從這個式子可以了解到,影響誤差百分比區間的 關鍵就在於最大的正誤差百分比以及取絕對值的負誤差百分比的最大值。 Percent error range = Maximum positive percent error + Maximum negative percent error. (4. 1) 同樣的,我們也是以 Mitchell 提出的對數轉換方法為基礎進行改良,而我們也 知道 Mitchell 的方法所造成的誤差全部都大於等於 0。既然如此,如果能在不造成 負誤差的前提下進行改良,理論上誤差百分比區間以及硬體的花費都會減少。因為 當負誤差為零的時候,我們所要關注的部分就只在減少正誤差,如果正誤差百分比 比起其他方法所產生的要小,就代表誤差百分比區間也一定比較低。也因為 Mitchell. 22.
(30) 的方法只產生正的誤差,當修正後導致負誤差的出現,這就表示這項修正方案有多 餘的地方。 此外,式子(3.6)顯示誤差百分比的計算方式為真實對數值減去近似值後再除以 真實對數值,這個式子透露出一個重要的訊息,當兩筆誤差相同的時候,N的值如 果愈大則它所對應的真實對數值也會愈大,相對的誤差百分比就會愈小。圖 4- 1為 Mitchell的對數近似值以及加上Error(3) 0.085 的Mitchell對數近似值兩者與真實對數 的比較,前者產生的誤差百分比為 5.36% (100% * 0.085 / 1.585),後者為-8.5% (100% * -0.085 / 1),取絕對值比較後證實前者會有較佳的結果。後者因為分母為 1,因此 誤差百分比的大小等於誤差的大小。這表示,若我們以x的尾數長度m將x分為 2m個 小區塊,並且同一區塊中的輸入值N皆以同一個數來修正時,不論x的尾數m取多長, 第一個區塊 0≤x<2-m都不該進行修正,因為修正後只會使誤差百分比變大。. 圖 4- 1:Mitchell 近似方法的近似值與其值加上 Error(3)後之比較 在Mitchell的對數轉換方法中,只有當N=2k及N=2k+1 時誤差為 0,單純的將整體 結果加上一個常數,會使這兩點產生不必要的誤差。因此,當以多區段的方式進行 額外修正時,第一區段及最後一區段要避免使用常數做為修正值。這也表示,當我. 23.
(31) 們採用二區段的近似方式時,不會使用到常數。另一方面,我們從圖 4- 2中發現到, 當N的值愈大時,Mitchell的誤差百分比與誤差的差距也會愈大,雖然在過了中點以 後這個現象會逐漸趨緩,但整體而言中點以後的誤差百分比是低於前半部的,並且 曲線的起伏也不像前半部那麼劇烈。因此,第二區段的修正可以不必像第一區段那 麼嚴謹。此外,前面提到過第一個區塊 0≤x<2-m是無法進行修正的,若我們在尾數 的部份取 4 bits將x分為 16 個區塊,則圖 4- 2的第一區塊 2≤N<2.125 會產生一個固定 的誤差 2.29%。因此,我們在分析每個區塊所對應的修正值時,只需要將目標誤差 百分比設在 2.29%以下即可,操作後的結果如表 4- 1表 4- 2。. 圖 4- 2:Mitchell 近似方法的誤差與誤差百分比之比較 表 4- 1:x-1=0 (0≤x<0.5)所對應的修正值 x-2x-3x-4 000 001 010 011 100 101 110 111. Corrected values 2-5. 2-6. 2-7. 0 0 1 1 1 1 1 1. 0 1 0 1 1 1 1 1. 0 1 0 1 1 1 1 1. 24.
(32) 表 4- 2:x-1=1 (0.5≤x<1)所對應的修正值 x-2x-3x-4 000 001 010 011 100 101 110 111. Corrected values 2-5. 2-6. 2-7. 1 1 1 1 1 1 0 0. 1 1 1 1 0 0 0 0. 1 1 1 1 0 0 0 0. 4.2 提出方法[17] 式子(4.2)為將表 4- 1表 4- 2簡化後的結果,只需用到簡單的邏輯電路即可實 現,不需要真的使用到ROM。從兩張表中,我們可以看出當 0.25≤x<0.75 時,進行 了最大程度的修正,這是因為當x愈接近 0.5 的時候誤差會愈大,而其他部分修正的 考量則朝向使百分比誤差低於 2.29%以及簡化電路這兩個方面。實際上,表 4- 1欄 位x-2x-3x-4 為 010 所對應的欄位 2-7 其值原本為 1,但此值對於整體的影響不大,我們 為了減少硬體成本而犧牲此部分的修正,使得最後得到的百分比誤差略高於第一區 塊的固定誤差 2.29%,達到 2.337%。但也因為操作性的調整,使得修正值 2-7 與 2-6 兩個欄位相同,因此只需要使用同一套硬體,有效的減少面積與延遲。. ⎧ x−2 ∨x−3 x−2 ∨x−4 x−2 ∨x−4 ⎪⎪x+ 32 + 64 + 128 ,0≤ x <0.5 log2(1+ x)' = ⎨ ⎪x+ x−2 ∧x−3 + x−2 + x−2 ,0.5≤ x <1 ⎪⎩ 32 64 128. 25. ∨ : logic-OR ∧ : logic-AND ......... .......... .........(4. 2).
(33) 圖 4- 3為我們所提出的方法得到的對數近似結果與真實對數值的比較,將誤差 平均的分散在兩個區段,並且近似的結果並不產生負的誤差。. 圖 4- 3:提出的對數轉換器的對數近似值與真實對數值之比較(N=2 to 4). 26.
(34) 第五章. 比較與分析. 此章節將就對數轉換器做三方面的比較,第一部分為精確度方面的比較;第二 部分為面積與速度的比較;最後則是對於架構的比較。. 5.1 對數轉換器之誤差比較與分析 在第二章討論對數轉換器各架構時有提到,除了浮點數部分產生器(FPGen) 以外,其他的單元皆是大同小異並不足以影響比較,並且也只有在小數部分的近似 上會產生誤差,因此我們所要比較的部份便是透過浮點數部分產生器所修正後的小 數值精確度。 我們使用 MATLAB 做為計算各個方法的誤差的工具,詳細的數據如表 5-1 所 示。在此篇論文中,Error 的定義為真實的對數值減去近似的對數值,其中 Maximum negative error 所指的是最大程度的負誤差(即 error 偏離 0 愈遠的值) ,而 Error range 的意義為 Maximum positive error 加上取絕對值的 Maximum negative error,表示誤 差的最大波動範圍;Percent error 的定義為誤差除以真實的對數值後乘以 100%,其 中 Maximum negative percent error 所指的並非直接以最大負誤差作為計算的基點, 而是將每一筆誤差都轉為 percent error 後重新比較出最大程度偏離 0 的值,Maximum positive percent error 也是同樣的道理。Percent error range 的意義為 Maximum positive percent error 加上取絕對值的 Maximum negative percent error,表示誤差百分比的最 大波動範圍。 此外,在運算元的範圍選擇中,我們也依照了參考文獻[18]提出的觀點來決定 輸入值 N 的範圍。在章節 3.1 已提過,在 x 相同的情況下當 N 愈大時,得到的誤差 百分比會愈小,因此我們將 N 的範圍指定在 2≤N<4,以避免較大的分母使誤差相對 變小。. 27.
(35) 表 5- 1: 提出的方法與 [10,12-13 and 15]的精確度比較 [10]. [12]. [13]. [15]. Proposed. Number of partitioned regions. 1. 2. 2. 2. 2. MSBits of x Maximum positive error Maximum negative error Error range Maximum positive percent error. 0.086 0 0.086 5.791. 4 0.0292 -0.028 0.0572 2.503. 3 0.0449 -0.0183 0.0632 3.838. 4 0.0369 -0.0097 0.0466 2.963. 4 0.0319 0 0.0319 2.337. Maximum negative percent error Percent error range Reduction of the Percent error range (%). 0 5.791. -1.704 4.207. -1.076 4.914. -0.487 3.45. 0 2.337. -. -27.3%. -15.1%. -40.4%. -59.6%. 表 5- 1所列的方法皆為二區段以下,參考文獻[10]所提出的方法架構非常簡單,並 沒有使用浮點數部分產生器來進行額外的近似值修正,且本篇論文中所提出的方法 與所比較的方法皆是以[10]做為基礎再額外加上浮點數部分產生器修正,因此在誤 差的比較上自然是以[10]所產生的誤差來做為比較的基準點。[10]的方法是將 log2(1+x)直接以x做為近似結果,使得誤差皆大於等於 0,即原本並不會有任何的負 誤差。參考文獻[12]及[13]兩者幾乎相同,唯一的差別在於尾數取的長度不同,因此 尾數取 4 bits的[12]在精確度上略高於只取 3 bits的[13],然而這兩種方法都太過簡 略,在誤差的改善方面並無顯著的表現。參考文獻[15]同樣為二區段的近似方法, 但因其多使用了一組x4MSBits,因此雖然在精確度上有良好的表現,但卻必須付出龐 大的硬體成本做為代價。 而本論文所提出的方法,在浮點數部分產生器的部分同樣也只使用了兩個區段 進行修正,但與其他方法不同之處在於我們並不直接使用一組固定長度的尾數(例 如 x4MSBits)做為修正值,而是經由分析並切割[10]所產生的誤差來擬訂適合的修正 值,將 x4MSBits 打散後經由一套簡單的邏輯電路,把不同程度的修正值安置在同一個 區段之中,因此在近似的效果上比起其他二區段的方法要來的好。. 28.
(36) 圖 5- 1:提出的方法與[12-13 and 15]的誤差百分比比較(N=2 to 4) 圖 5- 1為二區段近似方法的誤差百分比之整體比較,本篇所提出之方法在正的誤差 百分比中為最低,同時又不造成任何負誤差百分比,因此為二區段方法中最好的一 種。[12]因為比[13]多使用 1 bit的尾數,因此修正值也會比較大,造成了[12]在負誤 差百分比上有著最不好的表現,而[13]因為修正值比較小,因此負誤差也比[12]要來 的小,但正誤差百分比的部分也因此變大。[15]在正誤差百分比上有良好的表現, 但在N接近 2k+1 時卻產生負誤差。 表 5- 2: 提出的方法與 [10-11 and 13]的精確度比較 [10]. [11]. [13]. Proposed. Number of partitioned regions. 1. 4. 6. 2. MSBits of x Maximum positive error Maximum negative error Error range Maximum positive percent error Maximum negative percent error. 0.086 0 0.086 5.791 0. 4 0.0253 -0.0062 0.0315 2.293 -0.468. 6 0.0132 -0.0129 0.0261 1.216 -0.716. 4 0.0319 0 0.0319 2.337 0. Percent error range Reduction of the Percent error range (%). 5.791. 2.761. 1.932. 2.337. -. -52.3%. -66.6%. -59.6%. 29.
(37) 表 5- 2所要比較的對象是四區段及六區段的近似方法,參考文獻[11]的浮點數部分 產生器原本是以全精度的x進行均等的四個區段的修正,使用全精度的x固然可以大 幅降低誤差,但卻必須付出龐大到無法與其他方法做比較的面積成本做為代價,因 此於本篇論文中將其尾數長度設為 4 bits,以求公平性與可比較性。而參考文獻[13] 則是以不均等的六個區段進行修正,且尾數長度達 6 bits,因此可以非常細膩的修正 誤差。 本篇論文提出的方法,雖然只使用了兩個區段進行修正,但卻可以在同一區段 中給予不同程度的修正。但由於尾數長度只取 4 bits(將 2k~2k+1 分為 24 個區塊) ,因 此並無法像[13]一般修正的非常細膩(將 2k~2k+1 分為 26 個區塊)。而單就表 5- 2的 結果而言,本篇所提出的方法其精確度介於四區段的[11]與六區段的[13]之間;但就 圖 5- 2所示,可看出本篇所提出的方法在正的誤差百分比部分整體而言表現的比[11] 差,之所以能拿來與四區段及六區段的方法來比較,是因為在負的誤差百分比方面 本篇論文所提出的方法能有最佳的表現,以及在章節 5.2 將提到的面積與延遲時間 方面的優勢。. 圖 5- 2:提出的方法與[11 and 13]的誤差百分比比較(N=2 to 4). 30.
(38) 5.2 對數轉換器之面積與延遲的比較與分析 此章節將在面積與延遲這兩方面進行比較,我們是使用 Synopsys 公司所開發的 Design Vision 做為合成的工具,結果顯示在以下兩個表格中。 表 5- 3列出了當delay設為 1.59ns時,參考文獻[11-13 and 15]與本篇論文所提出的方 法之面積比較。由於[10]並沒有使用浮點數部分產生器進行額外的修正,因此無法 列入比較;而[13]的二區段方法與[12]的方法近乎相同,差別只在於[13]所使用的尾 數少了 1 bit,且[13]同時也提出了六區段的方法,因此我們不將它列入比較。在此 條件下,參考文獻[12]具有最低的面積成本,因為它區段數少、方法簡單,且使用 的尾數短,但相對必須付出高誤差的代價。而[11]與[13]因為區段數較高,因此面積 會比[12]要來的高。[15]雖然是二區段的方法,但面積卻比前兩項所提的多區段近似 方法要來的高,主要是因為它使用了兩組尾數來進行額外修正。 而我們所提出的方法,由於只有二區段且只使用了一組尾數,同時這組尾數並 非直接做移位後相加的修正,而是透過簡單的邏輯電路對同一區段內進行不同程度 的修正,因此在面積成本方面,比起[12]的方法只增加了 4.8%,但我們卻有更為良 好的近似效果。 表 5- 3: 提出的方法與[11-13 and 15]在 delay 為 1.59ns 時的面積比較 Methods. Area for the conversion of log2(1+x)’. Area Savings (%) over [12]. [11] [12] [13], 6-Regions [15] Proposed. 2587 854 2481 3339 895. +202.9 +190.5 +290.9 +4.8. 0.18 μm CMOS technology.. unit of area : μm2. 表 5- 4為參考文獻[11-13 and 15]與本篇論文所提出的方法各自在最低延遲下的面積 比較,我們延續將[12]做為比較的基準。ADP所指的是area-delay product,為面積與 延遲的乘積,因為這兩項一般而言呈現反向關係,即延遲愈小則面積愈大,因此我. 31.
(39) 們可以不必在相同延遲下做比較(如表 5- 3) ,而是將各自最低延遲下的ADP拿來做 比較。我們可以看見,比起表 5- 3的比較結果,在ADP的比較上所有方法與[12]的 差距都縮小了,本篇論文所提出的方法甚至比[12]要節省了 9.4%。 表 5- 4: 提出的方法與[11-13 and 15]在最小延遲下的面積資訊 Methods. Delay(ns). Area(μm2). ADP. [11]. 0.97. 4350. 4219.50. ADP savings (%) over [12] +143.1. [12]. 0.85. 2042. 1735.70. -. [13], 6-Regions [15] Proposed. 1.59 1.43 0.79. 2481 3612 1989. 3944.79 5165.16 1571.31. +127.2 +197.5 -9.4. 0.18 μm CMOS technology.. unit of area : μm2. unit of delay : ns. 5.3 對數轉換器之架構比較與分析 此章節將進行對數轉換器中的浮點數部分產生器架構進行比較與分析,但只取 參考文獻[15]及本論文所提之方法做代表性的比較,同時[15]的架構與原著略有不 同,為架構修正後的結果,如圖 5- 3。圖中直接輸入最底層加法器的x-1~-9 及圖 5- 4的 x-1~-7 代表的是利用[10]所求得的小數部分近似值x,而其餘的部分則是各方法對它進 行的額外修正。. 圖 5- 3:Juang 的對數轉換單元的架構. 32.
(40) 圖 5- 4為本論文所提出之方法的架構圖,與[15]及其他方法不同之處在於,我們並 不採用固定寬度的尾數移位後相加這種修正方式,因此在架構中並不會出現尾數(例 如x-1~-4)經過移位後直接被相加或是進入多工器的情形,而是經過一些簡單的邏輯 電路後將結果與x相加。此外,我們的方法也完全沒有使用多工器,只是使用了一些 簡單的邏輯電路。基於前兩項的差異點,比起其他方法在同一區段中只能以一種修 正值進行修正,我們的方法可在同一區段中進行不同程度的修正,而這正是為何本 篇論文提出的方法可以比其他方法要來得精確但又如此精簡快速的原因。. 圖 5- 4:提出的對數轉換單元的架構. 33.
(41) 第六章. 結論. 在此篇論文中,我們提出了一個以 Mitchell 的對數轉換方法為基礎的二區段近 似方法。由於 Mitchell 的方法只會產生正誤差,若進行額外修正後造成負誤差的產 生,表示這個方法有多餘的修正,不但降低精確度同時也增加了硬體成本的花費。 因此,在以不產生負誤差的前提下,藉由觀察誤差與誤差百分比的變化逐步進行修 正,可以得到更精確更精簡的修正方法。 在精確度方面,我們所提出的方法比起原有的一區段[10]和改良後的二區段 [12-13 and 15]近似方法更為精確,甚至超越四區段[11]而僅略低於六區段[13]的近似 方法。而在硬體成本方面,我們的方法有著簡單易於實現的硬體架構,比起其他多 區段[11,13 and 15]的方法能大幅減少面積與延遲。. 34.
(42) 第七章. 參考文獻. [1]. J.-A. Pineiro, “Algorithm and architecture for logarithm, exponential, and powering computation,” IEEE Transaction on Computers, vol. 53, no. 9, pp. 1085–1096, Sep. 2004.. [2]. J. A. Pineiro, M. D. Ercegovac, and J. D. Bruguera, “High-radix logarithm with selection by rounding: algorithm and implementation,” Journal of VLSI Signal Processing Systems, vol. 40, pp. 109–123, May 2005.. [3]. D. K. Kostopoulos, “An algorithm for the computation of binary logarithms,” IEEE Transaction on Computers, vol. 40, no. 11, pp. 1267–1270, Nov. 1991.. [4]. M. J. Schulte and J. E. E. Swartzlander, “Hardware designs for exactly rounded elementary functions,” IEEE Transaction on Computers, vol. 43, no. 8, pp. 964–973, Aug. 1994.. [5]. P. T. P. Tang, “Table-lookup algorithms for elementary functions and their error analysis,” Proc. 10th Symp. Comput. Arithmetic, pp. 232–236. Jun. 1991,. [6]. J. E. Stine and M. J. Schulte, “The symmetric table addition method for accurate function approximation,” Journal of VLSI Signal Procesing Systmes, vol. 21, pp. 167–177, Jun. 1999.. [7]. M. J. Schulte and J. E. Stine, “Approximating elementary functions with symmetric bipartite tables,” IEEE Transactions on Computers, vol. 48, no. 8, pp. 842–847, Aug. 1999.. [8]. K. Johansson, O. Gustafsson and L. Wanhammar, “Implementation of elementary functions for logarithmic number systems,” IET Computer & Digital Techniques, vol. 2, no. 4, pp. 295-304, July 2008.. [9]. S. Paul, N. Jayakumar, and S. P. Khatri, “A Fast Hardware Approach for Approximate, Efficient Logarithm and Antilogarithm Computations,” IEEE Transactions on VLSI Systems, vol. 17, no. 2 pp. 269-277, February 2009.. [10] J. N. Mitchell, Jr., “Computer multiplication and division using binary logarithms,” IRE Transanstions on Electronics Computers, vol. 11, no. 11, pp. 512–517, Nov. 1962. [11] M. Combet, H. V. Zonneveld and L. Verbeek, “Computation of the base two logarithm of binary numbers,” IEEE Transactions on Electronic Computers, vol. 14, no. 6, pp. 863–867, June 1965. [12] S. L. SanGregory, R.E. Siferd, C. Brother, and D. Gallagher, “A fast, low-power logarithm approximation with CMOS VLSI implementation,” Proc. IEEE Midwest Symp. Circuits and Systems (MWSCAS), vol. 1, pp. 388-391, Aug. 1999.. 35.
(43) [13] K. H. Abed and R. E. Siferd, “CMOS VLSI implementation of a low-power logarithmic converter,” IEEE Transactions on Computers, vol. 52, no. 11, pp. 1421–1433, Nov. 2003. [14] H. Kim, B. –G. Nam, J. –H. Sohn, J. –H. Woo, and H. –J. Yoo, “A 231-MHz, 2.18-mW 32-bit Logarithmic Arithmetic Unit for Fixed-Point 3-D Graphics System”, IEEE Journal of Solid-State Circuits (JSSC), Vol. 41, No. 11, pp.2373-2381, Nov. 2006. [15] T. –B. Juang, S. –H. Chen and H. –J. Cheng, “A lower-error and ROM-free logarithmic converter for digital signal processing applications,” IEEE Transactions on Circuits and Systems II, vol. 56, no. 12, pp. 931-935, December 2009. [16] Vojin G. Oklobdzija, “An Algorithmic and Novel Design of a Leading Zero Detector Circuit: Comparison with Logic Synthesis,” IEEE Transactions on Vera Large Scale Integration System, Vol. 2 , pp. 124 - 128, March 1994. [17] T. –B. Juang, P. K. Meher and K. –S. Jan, “High-Performance Logarithmic Converters Using Novel Two-Region Bit-Level Manipulation Schemes,” Proc. of 2011 VLSI-DAT (VLSI Symposium on Design, Automation, and Testing), pp.390-393, April 2011.. [18] 陳昇宏,莊作彬,2009,使用對稱二區段為基礎的低誤差及無唯讀記憶體之 對數轉換器超大型積體電路設計,國立屏東商業技術學院資訊工程系碩士論 文。. 36.
(44)
數據
+7
Outline
相關文件
具備 (凌陽格式 ) 串列 SRAM 介面. 7 通道10位元電壓類比/數位轉換器 (ADC) 單通道聲音類比/數位轉換器
[r]
MOV reg,data reg ← data 轉移立即資料(data)到暫存器 reg 內 MOV dreg,sreg dreg ← sreg 轉移暫存器 sreg 的內容到暫存器 dreg MOV segreg,reg segreg ← reg
理解並欣賞幾何的性質可以透過坐標而轉化成數與式的 關係,而數與式的代數操作也可以透過坐標產生對應的
//Structural description of design example //See block diagram
在設計九階段管線式類比數位轉換器中,除了第九級之外,第一到第八級皆 要用到
Singleton,”A methd for computing the fast Fourier Transform with auxiliary memory and limited high-speed storage”, IEEE Trans. Audio
本研究探討空氣流量及轉爐石量對於 Chlorella sp.生長之表面物 化特及釋出有機物性質影響,可透過傅立葉轉換紅外線光譜(Fourier transform