[go: up one dir, main page]

TWI351640B - Exponent processing systems and related methods - Google Patents

Exponent processing systems and related methods Download PDF

Info

Publication number
TWI351640B
TWI351640B TW096138468A TW96138468A TWI351640B TW I351640 B TWI351640 B TW I351640B TW 096138468 A TW096138468 A TW 096138468A TW 96138468 A TW96138468 A TW 96138468A TW I351640 B TWI351640 B TW I351640B
Authority
TW
Taiwan
Prior art keywords
integer
index
value
register
mentioned
Prior art date
Application number
TW096138468A
Other languages
English (en)
Other versions
TW200907793A (en
Inventor
Hussain Zahid
Original Assignee
Via Tech Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Via Tech Inc filed Critical Via Tech Inc
Publication of TW200907793A publication Critical patent/TW200907793A/zh
Application granted granted Critical
Publication of TWI351640B publication Critical patent/TWI351640B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/02Digital function generators
    • G06F1/03Digital function generators working, at least partly, by table look-up
    • G06F1/0307Logarithmic or exponential functions
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/556Logarithmic or exponential functions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Optimization (AREA)
  • Complex Calculations (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Image Generation (AREA)
  • Executing Machine-Instructions (AREA)

Description

1351640 • 九、發明說明: 、 【發明所屬之技術領域】 本發明關於一種處理系統’特別係有關於一種指數處 理之方法與系統。 【先前技掏·】 指數運算時常出現於圖形與科學的應用。一般指數函 φ 數可定義成ax=a〗X af,其中x=I+f ’ 1為整數部分而f為分 • 數部分。除此之外,ax可為一正規化的浮點數’例如 aLl.aoaA…an X 2E。以2為基底的指數X=I+Z(Z取代f)可 以表示為2X=2! x2z。像是中央處理器或是數位處理器的處 理系統,可藉由多項式運算實現指數運算。一種多項式運 算的方法是使用單一浮點運算的近似多項式(例如 0.9999998927+(0.6931547484+(0.2401397582+0.558660842 9e-l+(0.8943041620e-2+0.1896367540e-2*x)*x)*x)*x)*x) • 。此計算方法的最大誤差為1.073000000e-7。此方法的一 個優點在於它僅需使用一般浮點單元所用的硬體即可實 . 現。然而’此方法的缺點在於指令數(instructions)需求量以 及所需的延遲時間。 另一只現4曰數運异的方法為泰勒級數(Tayi〇j· series)近 似,其可表示為下列公式: y = T=f (z0) + (z, x/'(2〇)) + χyn(z〇)j (Eq. 1) 上述指數函數2Z可以被表示成一基底函數f(z。),一一
Client's Docket No.: S3U05-0001I00-TW TT's Docket N〇:0608D-A41314-TW/Final/LukeLee 6 1351640 . 次微分函數f’(ZQ)以及一二次微分函數f’’(Z〇),再加上誤差 項以得到f(Z〇的近似(例如具有於Z〇之已知值之差異的脈 衝函數6 (Zi))。此方法的優點在於可在每一指令用管線的 方式產生一結果。然而,相較於多項式方法,此方法需要 額外的硬體元件。 此外,泰勒級數近似通常需要專用硬體,而不是單純 使用一中央處理器,因為這些運算並非通用的,而且許多 特定的查值表需加至處理器中。若是指數函數的計算不常 出現的話,使用專用處理單元可能造成投資成本的效益低 落。因此,本領域需要一種可實現指數運算的架構,以提 供比傳統系統更好的使用頻率,並且擁有最佳化的指令數 目。 【發明内容】 本發明揭露數種指數處理系統與方法。一種指數處理 方法用以計算一指數函數包括一整數成分和一分數成分。 ^ 上述分數成分包括一第一部分、一第二部分、以及一第三 部分。該指數處理方法包括執行使用一第一位址之一第一 • 查值表以提供一第一值對應至上述第一部分。設定一整數 . 指數以提供一整數基底值對應至上述整數成分。執行使用 一第二位址和一第三位址之一第二查值表以提供一第二值 和一第三值分别對應至上述第二部分和上述第三部分。展 開並正規化上述第二和第三值以提供展開且正規化的上述 第二和第三值。結合展開且正規化的上述第二和第三值以 產生一第一乘積。最後結合上述第一值、上述整數基底值、
Client's Docket No.: S3U05-OOO1IOO-TW TT's Docket N〇:0608D-A41314-TW/Final/LukeLee 7 1351640 以及上述第一乘積以計算上述指數函數。 此實施例可使用標準硬體可支援的基本指令且具有最 佳化的指令數目。此實施例額外的技術特徵包括對一源暫
存器存放之一尾數值(mantissa)執行移位(shift)運算以取得 一分數部分和一整數部分,當執行第一查值表時使用取得 的整數部分以設定指數,實現1之補數(ls_c〇mplement)計 算以簡化負值計算,以及/或者藉用降低派送率(issue rate),例如使用大型的單指令多資料(single instructi〇n nmltlple-data,SIMD)平行機器。這些實施例可使用標準的 可編程硬體,像是可編程著色處理單元等。 在另-些實施例中,指數計算的減少可藉由更大的查 值表以及更大的位址空間的使用㈣除結合運算而實現。 這些查值表可利用已知的二部表法(Mpartlte table method ’ BPTM)而降低其大小。餅於低精準度的實作而今, 單一查值表可能已足夠並且可減少計算量。 σ 其它本發明的系統、方法、技術特徵、以及優 藉由下列說明文字以及所附圖示而使熟習本領域者 其餘所有本發明額外的系統、方法、以及優附 申請專利範圍為準。 斤附 【實施方式】 本說明書包括許多指數處理系鍊與方法的實 些指數處理线用以降低㈣計翱數函數(例如= 用邏輯電路❹量,並且使錢存科標特點 (fused multiply-add,FMAD)硬體的可編程處理單_。加
Client's Docket No.: S3U05-O0O1IO0-TW ^ 〇 為了 TT*s Docket N〇:0608D-A41314-TW/Final/LukeLee 8 1351640 達成此目的,可使用標準積和熔加硬體支援的一個或多個 包含基元(primitive)運算的指令組。此外,亦可使用最小的 指令組可符合現存處理管線(pipeline)的時間要求。積和炫 加硬體用來正規化輸入值並將其設定成標準格式的浮點 數’例如IEEE-754浮點格式。雖然此處使用正規化、單精 準(single-precision)的IEEE-754格式來描述本發明之實施 例’熟習本領域者仍可知雙精準(double-precision)或更高精 準的格式可用於這些實施例中’像是延伸查值表及/或欄位 的大小。 一種可實現指數處理系統的處理環境揭露如了,並伴 隨實現指數函數的糸統與方法實施例的敛述,以及這此實 施例不同部分的分析。雖然此處僅提供圖形處理環境的計 算核心’這些實施例仍可整合至任何計算指數函數的處理 環境。舉例而言’這些貫施例可用於或連結至中央處理器 (central processing unit,CPU),數位訊號處理器(digitai signal processor,DSP) ’或是其它應用的運算單元。 某些指數處理系統的實施例包括使用查值表以儲存一 指數的分數成分的許多部分,或僅儲存單純的指數函數。 舉例而言,這些實施例可計算以2為基底之指數函數2χ, 其中 2Χ=2Χ X 2y,21 對應至一整數成分(integer component), 2y對應至一分數成分(fractional component)。上述分數成分 可依指數函數的特性而被分解成許多部分,像是2y=2y0 X 2yl x2y2,其中2yG、2yl、2y2分別對應至上述分數成分的第 一部分、第二部分、以及第三部分。藉由為每個部分提供
Client’s Docket No·: S3U05-0001IOO-TW TT's Docket No:0608D-A41314-TW/Final/LukeLee !35164〇 查值表,以及執行不同 成分可與上述整數成分結合二=(例如乘法),上述分數 數成分可分解成數個部分,11异上述指數函數 。由於分 的查值表。對應第二部分此可以比傳統系統提供更小 用壓縮格·式儲存,並二)以及第三部分(#)的數值可 (wire-〇R cireuitry),可用':邏輯電路’例如或線電路 供至計算指數函數的 規,且展開這些麗縮值以提 統’這些實施例操作於較小^炫加硬體。相較於傳統系 使用。 夕、私令集並且減小專用硬體的 舉例而言,在一會#办,上 值,並且對此尾數值‘移位二得—尾數 分數部分。上述分數 ^以美供一整數部分和_ 至少兩數 1 來填入儲存部分值的查值矣 藉由儲存這麵縮形式的數值,健存。 運算可以平行方式執行,減值的查值表 此外,如此的壓縮值可以讓查 曰令數)。 器裡。這些塵縮值可以加入:此數單-暫存 毕的積㈣加早凡,以利計算指數函數的結合 軚 法運算)。將壓縮值格式化成展開並正規化的格式(例如乘 IEEE-754,可以避免或至少減輕專用硬體的需求,^如 用硬體時常用於傳統的系統與方法中。 ”卞專 在稍後的說明中,-個結合運算的結果(例如 可與另一個結合運异的結果(例如21 X 2y0)纟士入/· ) j、”。口任一起以計
Client's Docket No.: S3U05-0001I00-TW TT's Docket No:0608D-A41314-TW/Final/LukeLee 1351640 算一指數函數(例如2X)。利用上述的移位功能對取得的尾 數進行移位以提供整數和分數的部分,整數部分用以設定 對應第一部分(2y0)查值表的整數指數。在一實施例中,1 之補數運算可提供指數的負值運算,而傳統機制計算是先 算出絕對值後再取其倒數。此外,出現於整數部分的溢位
(overflow)或欠位(underflow)可由例外處理器選擇符合這 些條件的既定值,或是在一計算值與一數值(對應一演算法 之一查值表)之間作決定。因此,這樣運算的結果便是從2y〇 查值表中取一數值並與指數函數的整數部分(21)作結合。最 後,結合21 X 2yG的乘積與2yl X 2y2的乘積來計算指數函 數。標準積和熔加單元可應用於此結合運算。 在一第二方法實施例中,較大的查值表可用以移除上 述結合運算其中之一。這些查值表可使用已知的二部表法 (bipartite table methods,BPTM)對查值表的大小作最佳化 處理。雖然此實施例的整數部分處理相似於前述實施例, 但分數部分是不相同的,因為此處使用單一的二部表法杳
值表。計算方式是利用對應2k0的第一查值表的數值以I 對應來自苐--部表法查值表的2kl,而以~標準積矛… 單元作單一結合運算,。 、炼加 此外’第三個方法實施例可包括第二方法實施例的 數處理部分以提供一低精準值(例如12位元尾數),以 、 簡便計算。 W利於 在這些實施例中’基本指令組的最佳化數月可鹿用 維持管線時序限制下使用標準硬體。上述分數部分所严理
Client's Docket No.: S3U05-OOO1IOO-TW TT's Docket No:0608D-A41314-TW/Final/LukeLee 1351640 的壓縮值可減少查值表的數目或是增進查值運算的效率, 並且這些壓縮值的格式化可以使用允許標準硬體。 第1圖為一圖形處理單元(graphics processing unit, GPU)的計算核心i〇5。雖然第1圖未顯示圖形處理單元的 所有元件,但顯示於第1圖的元件已足夠讓熟習本領域者 了解此圖形處理器和指數處理系統實施例的一般功能與架 構。如第1圖所示,計算核心105包括一記憶體存取單元 107耦合至第二階(level 2 ’ L2)快取11〇。舉例而言,記憶 體存取單元107從一記憶體介面單元(圖未顯示)接收第二 階預讀(prefetch)和溢出(spill)。第二階快取1丨〇從一輸入暫 存器(圖未顯示)接收預先轉換之頂點(pre_transf〇rm vertices,輸入資料j)並且提供後置轉換之頂點 (post-transform vertices,輸出資料η)至三角屬性單元 (triangular attribute units,圖未顯示)。 計算核心105也包括一執行單元(executi〇n unit,EU) 庫130 ’其包含數個執行單元140和執行單元控制與區域 記憶體145。在一實施例中,每個執行單元14〇包含一指 數處理系統200,並且每個執行單元14〇可在單一時脈週 期中處理多重指令。在另一些實施例中,指數處理系統2〇0 可包含顯示於第1圖中的額外元件,或未顯示於第1圖的 其他元件。此外’雖然第1圖僅顯示八個執行單元(EU〇至 EU7) ’然而執行單元的數目並不限制於此,其它實施例可 多於或少於此數目。 計算核心105更包括執行單元輸入裝置us和執行單
Client’s Docket No.: S3U05-OO01IOO-TW TT^ Docket No:0608D-A41314-TW/Final/LukeLee 12 1351640 元輸出裝置〗20,可各自提供輸入至執行單元庫13〇以及 接收執行單元庫130的輸出。執行單元輸入裝置135和執 行單元輸出裝置12〇可為交又開關矩陣(cr〇ssbar)、匯流排 (bus)、或是其它已知的輸入輪出裝置。 執行單元輸入裝置135從一私λ 之頂點(輸入資料Β),並提供此資=^存器接收預先轉換 行單元Μ0處理。此外,執行執行單元庫130供執 封包(pixel packets,輸入資料〇疋别入裝置135接收像素 ^ t,, D), 二_。再者,執行單元輸入裝置 4 =取U〇的資料並提供至執行單元庫—這= 貢料可由第二階快取110、執杆置- — 七A义 仃早兀輪入裝置135、和/或 產生的資料提供。指數計算後的數值 至母個執行單元140内的暫存器中。 卞 執行輸出早元120接收執杆显-θ ΤΤΛ7ϋ„ 钒仃早兀庫130的輸出值,像 是UVRQ以及RGBA。這此輪屮可〇 ; ^ Η 一掏出可回存至第二階快取110 或疋從计鼻核心、105輸出(輪出資㈣)至一寫回單元( 顯示),或是輸出(輸出資料F)i 一、 )至不同的紋理單元(圖未顯 不)。 計算核心105也包括任務分 —壯。。 配仲裁器125,用以從封 匕裝配器(圖未顯示)接收標籤或同步 、、 j 乂 讯戒(tag/synchro)。任 務分配仲裁器125使用這此輪入如:A| 0 , ―钿入控制執行單元輸入裝置 135和執行單元輸出裝置12〇。 佚刁話說,任務分配仲裁哭 125分別控制流過執行單元輸 符刀呷萩口口 训八裝置135和執行單元輸出
Client's Docket No.: S3U05-OOO1IOO-TW TT’s Docket No:〇6〇8D-A41314-TW/Final/LukeLee 13 1351640 裝置120的輸入内谷和輸出内容。位於每個指數處理系统 2〇〇(對應於每個EU0-EIJ7)内的硬體皆可執行指令運算' 第2-6圖表示指數處理系統200的不同實施例,可改 進一函數f(x)的指數計算處理。假設給定一指數函數2X , 其中 2X=2l x 2y。2y=2y〇 x # x 2y2,y=y〇+yi+y2。指數處 理系統200可執行2X的計算。第2_6圖出現的區塊或元^
所代表的功能可能包括一個或數個硬體元件,像是算術邏 輯單元(arithmetic logic unit,ALU)或是其它電路、暫存哭^ 連結元件(例如繞線、匯流排等)等。在第2圖中,指處 理系統200a包括暫存器212(R0 ’源暫存器)、214(g^時暫 存器)、218(移位暫存器)、220(整數暫存器)、222(分^暫 存器)、228(分數暫存器)、236(Rd2,或稱臨時暫存器)、 238(第-暫存器)、240(第二暫#器,或單純稱為暫存哭)、 244(Rd3)、250(整數暫存器)、以及256(Rdl),減法器(減法 邏輯電路)216,反向器224和248,多工器(Μυχ)226、246、 和254,用以分別儲存2y0、2yl、2y2的查值表23〇—234(例 如查值表230(第一查值表)、查值表232(第二查值表)、和 查值表236(第三查值表)),乘法器242和258(可單獨使用 或者配合臨時暫存器如244和/或256,亦稱為結合邏輯電 路),以及例外處理器252。例外處理器252和多工器254 可個別或合併稱作例外處理邏輯電路。暫存器222和228 多工器226、以及反向器224可個別或合併稱為暫存邏輯 電路。此外,整數暫存器220和250、多工器246和254、 反相器248、以及例外處理器252可個別或合併稱為設定
Client’s Docket No.: S3U05-00〇1I〇〇-X\V TT^ Docket No:0608D-A41314-TW/FinayLukeLee 14 1351640 邏輯電路。暫存器238和240可個別或合併稱為格式設定 邏輯電路。在一實施例中,查值表230、232、和234可為 唯 5賣 s己憶體(read-only-memory ,ROM)。 指數處理系統200a的操作可以下面的指令集作例子, 稱為演算法1。 演算法1 : (1) FRC Rfrac := R0 - floor (R0) (2) EXPTL1 Rtbl := T ableLookup 1 [Rfrac] (3) EXPTL2 Rtb2 := TableLookup2[Rfrac] (4) EXPTL3 Rtb3 := T ableLookup3 [Rfrac] (5) FMUL Rtmp := Rtbl * Rtb2 (6) FMUL Rtmp := Rtb3 * Rtmp ⑺ EXPEXT Rq := floor(RO), Rr = 2ARq (8) FMUL Rdest := Rr * Rtmp 暫存器212(源暫存器r〇)儲存欲處理的數值。暫存器 φ 212可存放單精準(32位元)IEEE浮點格式的一指數函數資 料,δ亥指數函數資料包括符號位元(丨位元)、指數位元(8 位元)、以及分數或尾數位元(23位元)。在指令(1)中,取出 存在暫存器212的尾數的分數部分(或簡稱為尾數),並且 .以一非正規化的格式將該尾數、一個引數l(leading0ne)、 以及八個〇儲存至暫存器214(r:={〇〇〇〇〇〇〇〇1,r〇[22,〇D, 其中R為一臨時暫存器,如暫存器214)。暫存器212儲存 的指數部分用於減法器216,減法器216可將該指數部分 減去127(亦即N:=R0[30:23]-127)並且儲存至暫存器218。
Client's Docket No.: S3U05-OOO1IOO-TW TT’s Docket No:〇6〇8D-A41314-TW/Final/LukeLee 15 m的數值(R)傳送至暫存器218,並執行一左/右移 异。右N為負數,則m:=R[31:0]>>n。若N大於23, =出所有位元,並且輸入值為〇,輸出結果將為ι 〇。若 N 為正數 ’ M:=R[31:〇]«N。 暫存器218存放的數值M較低的二十四個位元傳送至 存器222(FRAQ ’其械分數部分。數值M較高的八個 位兀傳送至暫存器22〇(INT),其存放整數部分。若是右移 大於七個位元則不需執行移位動作,因為這表示輸入不是 太大就是太小。若移位大於2+m,則結果為正益限大 移位小於2·⑵’縣果為Q。若⑽叫叫)(亦即輸入值為 負值),則暫存II 222(FRAC)所存放的值需要經過反向号 224作負數化。 σ 在指令⑵-⑷中,暫存器228被分成數個8位元區段 並分別作為查值表230、232、和234的位址,並分別 數值炉、#、272。查值表232和234提供數值至暫存器 236(Rd2)。儲存於暫存器236數值(了此化〗和丁北丨^)接著 分別儲存至暫存器238和240。 在才a令(5)_,儲存於暫存器24〇和238的數值在乘法 β 242中相乘,並將乘積儲存於暫存器244(Rd3)。 在指令(6)中,來自暫存器256(Rdl)的數值與來自暫存 器244(Rd3)的數值相乘以計算2X。在多工器246中,肋 的符號位το用以選擇存放於暫存器22〇的正值輸出,或是 執打1之補數運算的反向器248的負值輸出。若暫存器218 執打的左移運算已經飽和(或稱溢位),則設定一最大值(例
Clients Docket No.: S3U05-0001IOO-TW TTys Docket No:0608D-A41314-TW/Finai/LukeLee 1351640 如255)。在暫存器25〇中,封六„σ 197 ^ 暫存益250儲存的數值可加入 偏=127,用以偏移該指數,因此ex”·. 的話,可以設定尾數為 特別值’否驗設定尾數為查值表23Qn =供整數成分21並且與〜結合,完成指㈣Ϊ
—從上述的演算法1指令集中可以觀察到幾點。對昭演 法1和第2圖,分數部分㈣合處料讀隨著錄表 的應用。查值表回傳介於[1,2)的正規化數值(亦即此數值大 ,或等於U)且小於2.0,也就是1χχχχχχ的二位元^ )而般IEEE-754格式的數值亦在此範圍中(亦即 1.紙‘*2 )’因此無需執行指令⑻的乘法。於是,該整數 部分可設定為該指數並利用第—查值表作查值(演算^的 指令⑺)。這兩個最佳化方法可以移除演算法〗的指令⑴、 (7)、和(8)的必要性。 此外,因為指令⑺的第-查值表回傳-正規化24位元 的數值介於[1,2),因此Μ要儲存符號位元、指數位元、 以及引數1。因此在-實施例中,只有23位元尾數需要儲 存。相同地,指令(3)和(4)(第二查值表和第三查值表的查 值)回傳正規化24位元的數值介於,因此也不需要儲 存符號位元、指數位元、以及引數1。 再者,第二查值表的數值格式為 Ι.ΟΟΟΟΟΟΟΟχΜΧυ.,.Χο ’且第三查值表的數值格式為 1.00000000000000〇〇Χ6Χ5.·.Χ。,因此引數叩eadingzer〇s)不
Client's Docket No.: S3U05-O001IO0-TW TT,s Docket N〇:0608D-A41314-TW/Final/LukeLee 17 1351640 用儲存於查值表中。在一實施例中,因為查值表232和查 值表234分別只有15和7位元寬,因此可以用平行方式查 值並將結果儲存至單一暫存器中。 根據上述觀察,我們可以減少演算法1的指令,並產 生另一指令集實施例(演算法2)如下: 演算法2 (1) EXPTL1 Rdl,R0 (2) EXPTL2 Rd2, R0 (3) CFMUL Rd3, Rd2 (4) FMUL Rd, Rd3, Rdl 指數處理系統200a可用上述四個指令計算指數函數 2X=2Z x2y。此指數函數可定義指數為正數或負數。一般而 言,過去在處理指數部分正負值時會先以指數部分的絕對 值計算,若指數部分為負,則對輸出的指數函數執行倒數 運算。 指數處理系統200a避免上述的倒數運算是因為當 2^^=21 X 2y的X為負值時,X可以表示成x=(I-1)+(1 -y),其 中分數部分y永遠為正值。舉例而言,若x=-4.75,則 χ=_4·75=-5+0·25=-101·000+0.01(二進位)。因此,(l_y)的計 算簡化可由檢查X是否為負值而進行1之補數運算。換言 之,這樣可以加速2y的計算,因為完整的計算方法只需要 計算21以及執行一最終乘法即可。 對於EXPTL1和EXPTL2指令而言(亦即指令(1)和指令 (2)),取出儲存於暫存器212的尾數的分數部分以對查值表
Client's Docket No.: S3U05-OOO1IOO-TW TT5s Docket No:0608D-A41314-TW/Final/LukeLee 1351640 230、232、和234定址。因此在—實施例中,EXpTL1和 EXPTL2可以依序執行,而暫存器(FRAC)222和228可以 • 於上述兩個運算中共用。 第3-5圖包括第2圖中指數處理系統2〇〇a的不同部分 (200a-l、200a-2、和200a-3) ’用以解釋上述四個指令的每 一個指令。在第3圖中’指數處理系統200a-l可實現 EXPTL1指令(指令⑴)的運算。EXpTL1指令用作2ι X 2y〇 • 的部分計算。也就是使用暫存器218的分數位元 鲁 (FRAC[23:16])執行查值表230的查值運算。平行於此運算 的是計算整數指數(I)和對應整數成分(2ι)的整數基底值。舉 例而言’從暫存器218中取出整數部分,並設定成指數, 而多工器246產生的數值為標號過(2之補數)的8位元數 值,此8位元數值再加上偏差值127後產生一整數指數值 並存放至暫存器250。存於暫存器250的整數指數接著輸 入至例外處理器252。例外處理器252實現下述方法(以虛 擬碼表示) • (i) e=0; (ϋ) ifnINT+127 > 255, then e=l, exp=255, sp=0; (iii) ifnINT+127 < 0, then e=l, exp=0, sp =0; (iv) if ((R0[30..23]= = OxFF) && (R0[22:0] !=0)), then e=l, exp=255,sp=0x400000 根據位元e是否設定,可選擇一數值介於一特別值與 查值表的輸出(查值表230的數值)之間。換言之,上述虛 擬碼用以處理特別情況。在虛擬碼(ii)中,若是INT>127,
Client's Docket No.: S3U05-0001IOO-TW TT's Docket No:0608D-A41314-TW/Final/LukeLee 19 1351640 則輸出值設為無限大。在虛擬碼(iii)中,若是ΙΝΤ<-127, 則輸出值設為0。在虛擬碼(iv)中,若是輸入為非數值(not a number ’ NaN) ’則輸出值亦設為非數值。在上述三種特殊 情況中’位元e可設定為1,否則便設定為〇。輸出特殊尾 數值或是正常查值表輸出(2y0)是由位元e控制多工器254 而選擇。因此,例外處理器252可執行上述演算法而計算 正確的整數指數。 指數處理系統200a用以處理EXPTL2指令(指令(2)) 的部分表示於第4圖’並且標號為指數處理系統2〇〇a_2。 EXPTL2指令用以計算部分的/ x2y2。暫存器228的位元 [15:8]和[7:0]分別用以定位查值表232和查值表234。暫 存器228的位元[15:0]可表示有效的〇.〇〇〇〇〇〇〇〇,因此查 值表232的回傳值為ΐ.〇〇〇〇〇0〇〇χι,以及當輸入是 〇.〇〇〇〇〇〇〇〇〇〇〇〇〇〇00y2(亦即暫存器228的位元[7:〇]可表示 的有效數值)時’查值表234的輸出為 1.0000000000000000X2。然而,引數 L(y^o 1〇M6 並未保 留在這些查值表中。因此,查值表232和234储存的是壓 縮格式。舉例而言’查值表232和234各可儲存256個^ 值,查值表232可儲存15位元的數值,而查值表234可儲 存7位元的數值。指數和符號位元並未儲存於查值表Μ] 和234,因為其對應值各為127和〇,而且是弓旧叫列如 1 .ΟΟΟΟΟΟΟΟχχχχχχχχχχχχχχχ L〇〇〇〇〇〇〇〇〇〇〇〇〇〇〇〇XXXXXXX)。於是在一實施例中,指: EXPTL2的輸出值為查值表232和234的22伤-& h曰7 仅疋輸出,並
Client's Docket No.: S3U05-OOO1IOO-TW TT’s Docket No:0608D-A41314-TW/Final/LukeLee
1JD104U 考Rd2 a^輪出暫存器236(32位元暫存器,亦稱為暫存 輸出值二Γ有二)’並仍以壓縮格式存在’其中兩個 符㈣元(數值等於t)為指數位元(數值等於127)和 ⑽戶表不指令CFMUL(指令(3))和指令FMUL(指令 數,乘(指令EXPTL2儲存至暫存器 一茂 π χ 2 。如上所述,暫存器230的值為 插Γ式。在暫存器238和240中,其存放的數值為正 規化^展開過的(或稱解壓縮過的)。因此,執行展開和正 Ϊ Γ更體或邏輯電路包括線或(職,運算並插入偏 和引數0(亦即加人引數〇至尾數,並設定指^ 存器240 引數◦數目有八個,而加入暫 mi 數0有十,、個。因為暫存器238和240的值 :二過的IEEE格式,因此這些數值可饋入積和溶加單 並將產^果送至暫存器糾。對應至積和溶加單 =士”溶力口運算(指令(4))將兩個正規化的浮點數相乘, :一個浮點數來自暫存器244(2yl x2y2),另一個浮 ^暫存a 256(21)^0^積和炫加單元242和258可能勺 括單一的積和熔加單元,亦可能使用分離的積㈣加單2 —由上料知’―實施例的減處理线使用四個運 具:兩個查值表運算(三個查值表,其中有—個查值 是平行進行)和兩個乘法運算,料仍有可有額外的最佳: 之處。若使用更大查值表的話,例如用2y= 2k〇 χ 2kl替代
Client's Docket No.: S3U05-O001I00-TW TT's Docket N〇:0608D-A41314-TW/Final/LukeLee 21 I351640 • 2 =2yGx2yl x2y2,演算法2中的乘法指令(FMul)是可以移 .除的。因此,kO和kl各自為較大的12位元和^位元。 然而,一種已經的二部表法可用以減少查值表的大小。第 6圖提供另一種指數處理系統2〇〇b,其中有許多元件與第 2圖相同,於此不再贅敘。此處,除了查值表63〇(第一二 4表法表)額外使用二部表法之外,保留指令ExptlI如先 前所述。指令EXPTL2使用單一查值表634(第二二部表法 鲁· 表)’且查值表634亦使用二部表法,而引數丨和十二個引 •數〇亦不需要儲存。於是,演算法3可以表示成如下所述: 演算法3 : (1) EXPTL1 Rdl, R〇 (2) EXPTL2 Rd2, R〇 (3) CFMUL Rd,Rd2, Rdl 演算法3使用兩個查值表和一個CFMUL指令。演算 法2和演算法3的最大不同處在於CFMUL·指令。在演算 • 法3中,CFMUL使用兩個源運算子。第一源運算子,Rdl, 為來自第一查值表(查值表630)的正規化浮點值。第二源運 算子,Rd2,為對應查值表634的一壓縮格式數值,並且 可利用加入十二個引數0至尾數和設定偏差指數127至暫 存器240以格式化此值。因此,此兩源運算子可饋入一標 準的浮點乘法單元242。 值得注意的是,第6圖的方法(12位元低精準尾數)可 只單獨使用EXPTL1指令。舉例而言,若exi>tl1指令使 用12位元的查值表,則一低精準的结果便不需要演算法3
Client’s Docket No.: S3U05-OOO1IO0-TW TT's Docket No:0608D-A41314-TW/Final/LukeLee 22 1351640 .的步驟(2)和(3),這對於許多圖形應用在計算乘方函數 .(P〇wer function)時是種優點。故上述的設定邏輯電路以及 暫存器256可用以提供一低精準數值。 在一些實施例中’因為以2為基底的指數運用對於積 和炫加型式的運算是相對較低的,因此查值表的數目可以 藉由限制派送率(issue rate)而減少。舉例而言,演算法2 需要四個指令。但若EXPTL1/2的派送率限制為每N個週 •期一個指令,則單一個EXPTL1/2單元可共享於N個單#
. 數多資料單元中。 S 第7圖為一指數處理方法的實施例2〇〇c,可用以計瞀 以2為基底之一指數函數2S其中2y,21為整數成 分 ’ 2y 為分數成分。2y=2y0 X 2yl X 2y2,其中 2y0、2yl、2y2 分別逼至2y的第一部分、第二部分、以及第三部分。步驟 702執行使用一第一位址之一第一查值表以提供一第—值 對應至上述第一部分(2yG)。步驟7〇4設定一整數指數以提 • 供一整數基底值對應至上述整數成分。步驟706執行使用 一第二位址和一第三位址之一第二查值表以提供一第二值 和一第二值分别對應至第二部分和第三部分。步驟展 開並正規化上述第二和第三值以提供展開且正規化的上述 '第二和第三值。步驟710結合展開且正規化的上述第二和 第二值以產生第一乘積。步驟712結合第一值、整數基底 值、以及第一乘積以計算上述指數函數。
第8圖為一指數處理方法的實施例2⑻d,可使用一雙 分表格法計异以2為基底之一指數函數2X。其中2X=2! X
Client's Docket No.: S3U05-OOO1IOO-TW TT's Docket No:0608D-A41314-TW/Final/LukeLee 23 1351640 .2y ’ 2對應至一整數成分,2y對應至一分數成分。2y=2yl x 2y,其中2yl、2y2分別對應至上述分數成分之一第一部分 和一第二部分。步驟8〇2執行使用一第一位址之一第一查 值表以提供一第一值對應至上述第一部分。步驟804設定 一整數指數以提供一整數基底值對應至上述整數成分。步 驟806執行使用一第二位址之一第二查值表以提供一第二 值對應至上述第二部分。步驟808展開並正規化上述第二 •值以提供展開且正規化的上述第二值。步驟810結合上述 _ 第一值、上述整數基底值、以及展開且正規化的上述第二 值以計算上述指數函數。 第9圖為一指數處理方法的實施例2〇〇e,可使用一二 部表法計算以2為基底之一指數函數2X。其中2x=2Ix2y, 2對應至一整數成分,2y對應至一分數成分。2L 2yG,2y0 對應至上述分數成分之一第一部分。步驟9〇2執行使用— 第一位址之一第一查值表以提供一數值對應至上述第一部 籲分,其中上述第一位址是從一源暫存器中獲得的一尾數1 一第一部分中取得。步驟904根據上述尾數之另一部分, 設定一整數指數以提供一整數基底值對應至上述整數 •分。步驟906指派上述整數基底值以及上述整數指數作 • 上述指數函數之一解答。 今 任何對應第7、8、9圖的流程圖的程序敘述或區塊可 以表不成模組、區段、或是一部分的程式碼包括一個或 個可執行的指令以實現程序中特定的邏輯功能或步驟: 變本發明的上述較佳實施例,例如根據上述的功能而變動
Client's Docket No.: S3U05-0001IOO-TW TT's Docket N〇:0608D-A41314-TW/Final/LukeLee 24 1351640 執行順序,同時執行或是倒序執行,都是熟習本領域者可 理解的。 指數處理系統200(200a-200e)可實現於硬體、軟體、以 及勒體,或是上述三者的任一組合。在上述的較佳實施例 中,指數處理系統200使用硬體實現,並可實現於任一下 述的已知技術或是其組合中:具有邏輯閘以依據輸入資料 實現邏輯功能的離散邏輯電路(discrete logic circuits),具有 合適組合邏輯閘的特殊應用積體電路(application specific integrated chip,ASIC),可編程邏輯閘陣列(programmable gate array,PGA),現場可編程場邏輯閘陣列(field programmable gate array,FPGA)等。 雖然本發明已以數個實施例揭露如上,然其並非用 以限定本發明,任何熟悉此項技藝者,在不脫離本發明 之精神和範圍内,當可做些許更動與潤飾,因此本發明 之保護範圍當視後附之申請專利範圍所界定者為準。 【圖式簡單說明】 第1圖為一圖形處理單元的計算核心; 第2圖為一指數處理系統的實施例方塊圖; 第3圖為第2圖的一部分,用以執行EXPTL1指令; 第4圖為第2圖的一部分,用以執行EXPTL2指令; 第5圖為第2圖的一部分,用以執行CFMUL和FMUL 指令; 第6圖為另一指數處理系統的實施例方塊圖; 第7圖為使用兩個乘法單元的指數處理方法流程圖;
Client's Docket No.: S3U05-O001IO0-TW TT's Docket N〇:0608D-A41314-TW/Final/LukeLee 25 1351640 第8圖為使用一個乘法單元的指數處理方法流程圖 以及 第9圖為未使用乘法單元的一指數處理方法流程圖。 【主要元件符號說明】
125 135 145 200 105〜計算核心 110〜第二階快取 任務分配仲裁器 107〜記憶體存取單元 120〜執行單元輸出裝置 130〜執行單元庫 執行單元輸入裝置140〜執行單元 執行單元控制與區域記憶體 指數處理系統 216〜減法器 212、214、218、220、222、228、236、238、240、244 250、256〜暫存器 224、248〜反向器 226、246、254〜多工器 230、232、234、630、634〜查值表 242、258〜乘法器 252〜例外處理器
Client’s Docket No.: S3U05-OOO1IOO-TW TT’s Docket No:0608D-A41314-TW/Final/LukeLee 26

Claims (1)

  1. 丄 案號 096138468 100 年 4 月 28 a 修正本 十、申請專利範園·· ― …種/曰數處理方法’藉由實體之-處理器執 仃以计异以2為基底之一指數函數2X,苴中2X=2】 2χ=Λ對應至2—整數成分,2}'對應至—分數成分, n x2 x2 ’2yG、2yl、2y2分別對應至上述分數 成分之一第一部分、一筮-AR八 、 該指數處理方法包括:…77 H第三部分’ 猎由上述處理器執行使用一第一位址之一第一杳 值表^,供—第—值對應至上述第—部分; — 整數$二整數指數以提供—整數基底值對應至上述 藉由上述處理器執行使用一第二位址和一第三位 址之一第二查值表以提#一筮-禮‘咕 捉伢弟一值和一第三值分别對 W至上述第二部分和上述第三部分,· 和第三值 藉由上述處理斋展開並正規化上述第 以提供展開且正規化的上述第二和第三值; 〃結合展開且正規化的上述第二和第三值以產生 第一乘積;以及 藉由上述處理器結合上述第一值、上述整數基底 值、以及上述第-乘積以計算上述指數函數。 2·如申請專利範㈣i項所述之指數處理方法, 更包括從存有-尾數值之—移位暫㈣巾取得一分數 部分和-整數料,其中上述尾數值係從—源暫存器 0608-A4I314TWF] 27 1351640 獲得。 3.如ΐ請專利範圍第2項所述之 =上述取得方法更包括對存於上述移位暫存^上 述尾數值執行一移位運算。
    請專利範㈣3項所述之指數處理方法, 上述移位運算更包括執行對存於上述移位暫 子m上述尾數值執行一 1之補數運算。 5.如ΐ請專利範㈣4項所述之指數處理方法, ==上述!之補數運算更包括使用從上述源暫存 為取件之一偏移指數位元。 如t請專利關第2賴述之減處理方法, 更包括當上述源暫存器包含—符號位元指出 時,負數化上述分數部分並儲存至一分數暫存器,、或 是當上述源暫存器包含上述符號位^指出—正數時二 藉由上述處理盗不負數化且儲存上述分數部卜 分數暫存器。 通 7. 如t凊專利範圍第6項所述之指數處理方法, 其中執行上述第—和第二查值表更包括分別使用上述 分數暫存器之一第一區段、一第二區段、以及—第三 區段作為上述第一、第二、以及第三位址。 8. 如申請專利範圍第2項所述之指數處理方法, 其中設定上述整數指數更包括: 當上述源暫存器包含一符號位元指出—負數時, 0608-A41314TWFJ 28 負數化後的整數部 整數部分至一整數 負數化上述整數部分並偏移上述 分,再儲存負數化且偏移過的上述 暫存器;或是 :上述源暫存器包含上述符號位元指 二,移未負純的上㈣數部分,絲存未負數2 且偏和過的上述整數部分至上述整數暫存器。 1二^請專利範圍第8項所述之指數處理方法, 述心括指派上述整數指數成上 • Μ請專利範圍第9項所述之指數處理方 m:、中^上述整數指數更包括處理溢位與欠位的 上®例外事件,其中處理上述例外事件包括判斷館 H上述整數暫存器之上述整數指數是否對應至一溢 位條件或一欠位條件。 中請專利範圍帛1G〗所述之指數處理方 、、'二:叹定上述整數指數更包括重設上述整數指數 成汁#值,其中上述計算值對應至上述溢位條件或 上述欠位條件。 、、丨2’如申請專利範圍第1項所述之指數處理方 法’其中展開並正規化的方法更包括格式化成 IEEE-754浮點格式。 、I3.如申請專利範圍第1項所述之指數處理方 法,更包括分別儲存展開並正規化的上述第二和第三 0608-A41314TWF] 29 41351640 C; 值至一第一暫存器和一第二暫存器。 - 二如申請專利範圍第13項所述之指數處理方 /、中展開並正規化的方法更包括 :暫存器分別加入複數個引數“及-偏:指= =·如申請專利第丨項所述之指數處理方 括在/、:結合展開且正規化的上述第二和第三值更包 括^^和炫加單元將展開且正規化的上述第二 2相乘,並儲存相乘後的上述第—乘積至—臨時暫 16.如申請專利範圍第丨項 :派::5述第—和第二查值表更包括藉:二 指令元個指令,在對應n個單 二查值表之—早一查值表中執行上述第一和第 π·如申請專利範圍第i :表其―查值表更包括平行執=: 法 行 ^申請專利範圍第1項所述之指數處理方 二包括:二上述第二和第三值至一單—暫存器。 使用丄1處理方法’藉由實體之-處理器執 呈中2〇格5计异以2為基底之-指數函數 '、 2對應至一整數成分,27對應至 0608-A413M丁 WF1 30 1351640
    一分數成分,2y= 2y1 x 2y2,2y] ' 2y2分別對應至上述 分數成分之一第一部分和一第二部分,該指數處理方 法包括: 藉由上述處理器執行使用一第一位址之一第一查 值表以提供一第一值對應至上述第一部分; 藉由上述處理器設定一整數指數以提供一整數基 底值對應至上述整數成分;
    藉由上述處理器執行使用一第二位址之一第二查 值表以提供一第二值對應至上述第二部分; 展開並正規化上述第二值以提供展開且正規化的 上述第二值;以及 藉由上述處理器結合上述第一值、上述整數基底 值、以及展開且正規化的上述第二值以計算上述指數 函數。
    20. 如申請專利範圍第19項所述之指數處理方 法,更包括從存有一尾數值之一移位暫存器中取得一 分數部分和一整數部分,其中上述尾數值係從一源暫 存器獲得。 21. 如申請專利範圍第20項所述之指數處理方 法,其中上述取得方法更包括對存於上述移位暫存器 之上述尾數值執行一移位運算。 22. 如申請專利範圍第21項所述之指數處理方 法,其中執行上述移位運算更包括執行對存於上述移 0608-A41314TWF1 31 ---- 年月曰修jj聲換頁I 位暫存器之上述尾數值執行叫之補數運算。 :申請專利範圍第22項所述之指數處理方 暫存上述1之抛運算更包括使用從上述源 暂存取仵之一偏移指數位元。 、丄如申4專利範圍第2〇項所述之指數處理方 二更包括當上述源暫存器包含一符號位元指出一負 :負數化上迷分數部分並儲存至—分數暫存哭, ^疋當上述源暫存11包含上述符號位元指出-i數 ^不負數化存上述分數部分至上述分數暫存器、 25.如申請專利範圍第24項所述之指數處理方 、:其中執行上述第—和第二查值表更包括分別使用 ^分數暫存H之-第—區段和—第二區段作為上述 第一和第二位址。 、、26.如申請專利範圍第2〇項所述之指數處理方 法其中5又定上述整數指數更包括: 當上述源暫存器包含-符號位元指出—負數時, ^數化上4整數部分並偏移上述負數化後的整數部 刀再儲存負數化且偏移過的上述整數部分至一敫备 暫存器;或是 & 士當上述源暫存器包含上述符號位元指出一正數 時’偏移未貞數化的上述整數部分,鋪存未負數化 且偏移過的上述整數部分至上述整數暫存器。 如申吻專利範圍第26項所述之指數處理方 0608-A41314TWF1 32 1351640 法,其中設定上述整數指數更包括指派上述整數指數 成上述整數暫存器儲存之一數值。 28. 如申請專利範圍第27項所述之指數處理方 法,其中設定上述整數指數更包括處理溢位與欠位的 複數個例外事件,其中處理上述例外事件包括判斷儲 存於上述整數暫存器之上述整數指數是否對應至一溢 位條件或一欠位條件。 29. 如申請專利範圍第28項所述之指數處理方 法,其中設定上述整數指數更包括重設上述整數指數 成一計算值,其中上述計算值對應至上述溢位條件或 上述欠位條件。 30. 如申請專利範圍第19項所述之指數處理方 法,其中展開並正規化的方法更包括格式化成 IEEE-754浮點格式。 31. 如申請專利範圍第19項所述之指數處理方 法,更包括儲存展開並正規化的上述第二值至一暫存 器。 32. 如申請專利範圍第31項所述之指數處理方 法,其中展開並正規化的方法更包括在上述暫存器加 入複數個引數〇以及一偏移指數部分。 33. 如申請專利範圍第19項所述之指數處理方 法,其中上述結合方法更包括在一積和溶加單元裡將 上述第一值、上述整數基底值、以及展開且正規化的 0608-A41314TWF1 - •厂' 上述第二值相乘。 34.如申請專利範圍第μ 法,其中執行上述第一和第—杳信…,數處理方 -派送率為每N個時J —查值表更包括藉由限制 令多-_=:!^^—指令,在對應N個單指 查值表。 早—值表中執行上述第一和第二 行㈣t法,#由實體之-處理器執 2X,並中9χ / 、去计异以2為基底之一指數函數 一分數“ y 〇對應至-整數成分,2y對應至 一 jH2 ’23"對應至上述分數成分之-第 邻为,該指數處理方法包括: 藉由上述處理器執行使用一第一位址之一第一杳 值表以提供—數值對應至上述第—部分,其中上述^ 一位^是從—源暫存器中獲得的-尾數之-第-部分 藉由上述處理器根據上述尾數之另一部分,設定 一整數指數以提供—整數基底值對應至上述整 分;以及 藉由上述處理器指派上述整數基底值以及上述整 數指數作為上述指數函數之一解答。 正 6. 種4曰數處理糸統,設置於實體之一處理|| 硬體】中,用以計算以2為基底之一指數函數2χ,其^ X ,2]對應至一整數成分,2y對應至一分數成 0608-A41314TWF1 厂Ί日f換 分,2y=2y() x 2yl x 2y2,2y()、2yl、2y2 分別對應至上述 分數成分之一第一部分、一第二部分、以及一第三部 分,該指數處理系統包括: 暫存邏輯電路,設置於上述處理器硬體中,用以 從一尾數取得一整數部分和一分數部分; 一記憶體,用以根據上述分數部分提供一第一值 對應上述第一部分,一第二值對應上述第二部分,以 及一第三值對應上述第三部分; 一設定邏輯電路,設置於上述處理器硬體中,用 以根據上述整數部分設定一整數指數以提供一整數基 底值對應至上述整數成分; 一格式設定邏輯電路,設置於上述處理器硬體 中,用以展開並正規化上述第二和第三值以提供展開 且正規化的上述第二和第三值;以及 一結合邏輯電路,設置於上述處理器硬體中,用 以結合展開且正規化的上述第二和第三值以產生一第 一乘積,並且結合上述第一值、上述整數基底值、以 及上述第一乘積以計算上述指數函數。 37. 如申請專利範圍第36項所述之指數處理系 統,更包括一源暫存器用以儲存上述尾數和一指數位 元。 38. 如申請專利範圍第37項所述之指數處理系 統,更包括一減法邏輯電路設置於上述處理器硬體 0608-A41314TWF1 35 1JD104U :、用以偏移上述指數位元,其中上述暫存邏輯 以接收偏移後之上述指數位元並對上 移位運算和—1之觀科。 執订一 如
    T印寻刊乾圍第36項所述之指數處理系 二符^述輯電路更用以當上述源暫存器包 :付^出—負數時,負數化並儲存上述分數 ^刀:或是當上述源暫存器包含上述符號位元指出一 正數時,不負數化並儲存上述分數部分。 後如申請專利範圍第36項所述之指數處 統’其中上述記憶體包括一第一查值表、一第二查值 表、以及一第三查值表。 一
    .如申μ專利範圍第36項所述之指數處理系 統,其中上述設定邏輯電路包括一整數暫存器,上述 設f邏輯電路用以當上述源暫存ϋ包含-符號位元指 出-負數時’負數化並偏移上述整數部分,再儲存負 f化且偏移社上述錄部分至上述整數暫存器,或 疋^上述源暫存$包含上述符號位元指出—正數時, 偏移並儲存上述整數部分至上述整數暫存器。 42. 如申請專利範圍第41項所述之指數處理系 統其中上述設定邏輯電路用以設定上述整數指數以 指派上述签數指數成上述整數暫存器儲纟之一數值。 43. 如申請專利範圍第42項所述之指數處理系 統’其中上述設定邏輯電路更包括一例外處理邏輯電 0608-A4I314TW1F1 36 路,上述例外處理邏輯電路用以藉由判斷儲存於上述 整數暫存器之上述整數指數是否對應至一溢位條件或 一欠位條件而處理溢位與欠位的複數個例外事件,並 且重設上述整數指數成為對應至上述溢位條件或上述 欠位條件之一計算值。 44. 如申請專利範圍第36項所述之指數處理系 統,其中上述格式設定邏輯電路包括一線或邏輯電路 用以展開並正規化成IEEE-754浮點格式。 45. 如申請專利範圍第44項所述之指數處理系 統,其中上述格式設定邏輯電路更包括一第二暫存器 和一第三暫存器,用以分別加入複數個引數0和偏移 一指數部分以儲存展開並正規化的上述第二和第三 值。 46. 如申請專利範圍第36項所述之指數處理系 統,其中上述結合邏輯電路更包一積和溶加單元和一 臨時暫存器,上述積和熔加單元用以將展開並正規化 的上述第二和第三值相乘,上述臨時暫存器用以儲存 上述積和溶加單元產生之上述第一乘積。 47. 如申請專利範圍第36項所述之指數處理系 統,其中上述記憶體包含一單一查值表用作N個單指 令多資料運算。 48. 如申請專利範圍第36項所述之指數處理系 統,更包含一單一暫存器用以儲存上述第二和第三值。 0608-A41314TWF1 37 1351640 49. 一種扣數處理系統,設置於實體之一處理器 硬體中,使用一二部表法計算以2為基底之—指數函 數2X,其中2一2、2^,2】對應至一整數成分,^對應 至一分數成分’ 2:= 2” X βf分別對應至 述分數成分之一第一部分、一第二部分,該指數處理 系統包括.
    暫存邏輯電路,設置於上述處理器硬體中,用以 從一尾數取得一整數部分和一分數部分; 一一部表法記憶體,用以根據上述分數部分提供 -第-值對應上述第-部分,以及—第二值對應上述 第二部分; -設定邏輯電路,設置於上述處理器硬體中,用 以根據上述整數部分設定—整數指數以提供—整數基 底值對應至上述整數成分; -格式設定邏輯電路’設置於上述處理器硬體
    中’用以展開並正規化上述第二值以提供展開且正規 化的上述第二值;以及 一結合邏輯電路,設置於上述處理器硬體中,用 以結合上述第-值、上述整數基底值、以及展開且正 規化的上4第二值料算上述指數函數。 50.如申請專利範圍第49項所述之指數處理系 、'先’更包括—神存㈣叫存上述尾數和-指數位 0608-A413J4TWF] 38 ^如申請專㈣圍第5Q項所述之指數處理系 中,用減法邏輯電路設置於上述處理器硬體 以偏移上述指數位元,其中上述暫存邏輯電路 :=移?之上述指數位元並對上述尾= 移位運α和一1之補數運算。
    餘β申料利範㈣49項所述之指數處理系 二::上述暫存邏輯電路更用以當上述源暫存器包 :付唬位兀指出一負數時’負數化並儲存上述分數 心刀’或是當上述源暫存器包含上述符號位元指出一 正數時,不負數化並儲存上述分數部分。 认如中請專利範圍第49項所述之指數處理系 統’其中上述記憶體包括—第—二部表法表和一第二 一部表法表。
    Μ.如申請專利範圍第49項所述之指數處理系 統,其中上述設定邏輯電路包括一整數暫存器,上述 設定邏輯電路用以當上述源暫存器包含-符i位元指 出一負數時,負數化並偏移上述整數部分,再儲存負 數化且偏移過之上述整數部分至上述整數暫存器,或 是當上述源暫存器包含上述符號位元指出一正數時, 偏移並儲存上述整數部分至上述整數暫存器。 55.如申5奢專利範圍第54項所述之指數處理系 統,其中上述設定邏輯電路用以設定上述整數指數以 指派上述整數指數成上述整數暫存器儲存之一數值。 0608-A4J314TWF1 39 k 2S .. 統:中第55項所述,處理系 r上述a又疋邂軻電路更包括_ 于 路,上述例外處理邏輯電 邏輯電 整數暫存器之上述整數指數是否對=斷=述 二:=成為對應至上述溢位條件或上述 57.如申請專利範圍第49項 中上述格式設定邏輯電路包括—線 展開並正規化成IEEE-754浮點格式。 統,申請專利範圍第57項所述之指數處理系 加入複數個ίΓ式設定邏輯電路更包括一暫存器用以 規化的上:偏移—指數部分以儲存展開並正 規化的上述第二值。 站,^如中請專利範圍第49項所述之指數處理系 、/、結合邏輯電路更包-積和溶加單元。 60. 如申請專利範圍第49項所述之指數處理系 、、,,/、上述二部表法記憶體包含一單一查值表用作 N個單指令多資料運算。 矿用作 61. -種指數處理系統,設置於實體之一處理器 硬二中’使用-二部表法計算以2為基底之—指數函 數 八申2 *~2 x2y,21對應至一整數成分,2y對應 至一分數成分H。,對應至上述分數成分之 0608-A41314TWFI 1351640 重 t.28-- 年月日绔.Π轻換 一第一部分,該指數處理系統包括: 暫存邏輯電路,設置於上述處理器硬體中,用以 從一尾數取得一整數部分和一分數部分; 一記憶體,用以根據上述分數部分提供一數值對 應上述第一部分; 一設定邏輯電路,設置於上述處理器硬體中,用 以根據上述整數部分設定一整數指數以提供一整數基 底值對應至上述整數成分,並且指派上述整數基底值 以及上述數值作為上述指數函數之一解答。
    0608-A41314TWF1 41
TW096138468A 2007-08-02 2007-10-15 Exponent processing systems and related methods TWI351640B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/832,689 US7912883B2 (en) 2007-08-02 2007-08-02 Exponent processing systems and methods

Publications (2)

Publication Number Publication Date
TW200907793A TW200907793A (en) 2009-02-16
TWI351640B true TWI351640B (en) 2011-11-01

Family

ID=39516833

Family Applications (1)

Application Number Title Priority Date Filing Date
TW096138468A TWI351640B (en) 2007-08-02 2007-10-15 Exponent processing systems and related methods

Country Status (3)

Country Link
US (1) US7912883B2 (zh)
CN (1) CN101201644B (zh)
TW (1) TWI351640B (zh)

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7644116B2 (en) * 2006-05-31 2010-01-05 Via Telecom Co., Ltd. Digital implementation of fractional exponentiation
US8275821B2 (en) * 2007-09-07 2012-09-25 International Business Machines Corporation Area efficient transcendental estimate algorithm
US7848142B2 (en) * 2007-10-31 2010-12-07 Micron Technology, Inc. Fractional bits in memory cells
US8244789B1 (en) * 2008-03-14 2012-08-14 Altera Corporation Normalization of floating point operations in a programmable integrated circuit device
US8352708B2 (en) 2009-01-16 2013-01-08 Teleputers, Llc Parallel read functional unit for microprocessors
US9207910B2 (en) * 2009-01-30 2015-12-08 Intel Corporation Digital signal processor having instruction set with an xK function using reduced look-up table
US9128790B2 (en) * 2009-01-30 2015-09-08 Intel Corporation Digital signal processor having instruction set with an exponential function using reduced look-up table
US8706789B2 (en) * 2010-12-22 2014-04-22 Intel Corporation Performing reciprocal instructions with high accuracy
US9141131B2 (en) * 2011-08-26 2015-09-22 Cognitive Electronics, Inc. Methods and systems for performing exponentiation in a parallel processing environment
EP2783492B1 (en) 2011-10-27 2020-05-27 Intel Corporation Block-based crest factor reduction (cfr)
US9792087B2 (en) 2012-04-20 2017-10-17 Futurewei Technologies, Inc. System and method for a floating-point format for digital signal processors
US9146743B2 (en) 2012-07-11 2015-09-29 International Business Machines Corporation Generalized bit manipulation instructions for a computer processor
US9552189B1 (en) * 2014-09-25 2017-01-24 Altera Corporation Embedded floating-point operator circuitry
CN105224283B (zh) * 2015-09-29 2017-12-08 北京奇艺世纪科技有限公司 一种浮点数处理方法及装置
CN105224284B (zh) * 2015-09-29 2017-12-08 北京奇艺世纪科技有限公司 一种浮点数处理方法及装置
US20170169132A1 (en) * 2015-12-15 2017-06-15 Analog Devices, Inc. Accelerated lookup table based function evaluation
US10713013B1 (en) * 2016-02-24 2020-07-14 Xilinx, Inc. Apparatus and method for an exponential operator for a half-precision floating-point format
CN106787789B (zh) * 2016-11-10 2019-04-02 易事特集团股份有限公司 太阳能电池阵列模拟器输出电网外环控制中的输出电压外环计算方法和装置
US10771237B2 (en) 2017-01-20 2020-09-08 Enveil, Inc. Secure analytics using an encrypted analytics matrix
US10880275B2 (en) 2017-01-20 2020-12-29 Enveil, Inc. Secure analytics using homomorphic and injective format-preserving encryption
US11196541B2 (en) 2017-01-20 2021-12-07 Enveil, Inc. Secure machine learning analytics using homomorphic encryption
US11507683B2 (en) 2017-01-20 2022-11-22 Enveil, Inc. Query processing with adaptive risk decisioning
US11290252B2 (en) 2017-01-20 2022-03-29 Enveil, Inc. Compression and homomorphic encryption in secure query and analytics
US11777729B2 (en) 2017-01-20 2023-10-03 Enveil, Inc. Secure analytics using term generation and homomorphic encryption
EP3379407B1 (en) * 2017-03-20 2020-05-27 Nxp B.V. Embedded system, communication unit and method for implementing an exponential computation
CN108123907B (zh) * 2017-11-24 2020-08-25 浙江天则通信技术有限公司 一种用于单载波频域均衡信道的低复杂度均衡方法
US10732929B2 (en) * 2018-01-09 2020-08-04 Samsung Electronics Co., Ltd. Computing accelerator using a lookup table
US11995448B1 (en) 2018-02-08 2024-05-28 Marvell Asia Pte Ltd Method and apparatus for performing machine learning operations in parallel on machine learning hardware
US10970080B2 (en) 2018-02-08 2021-04-06 Marvell Asia Pte, Ltd. Systems and methods for programmable hardware architecture for machine learning
US12112175B1 (en) 2018-02-08 2024-10-08 Marvell Asia Pte Ltd Method and apparatus for performing machine learning operations in parallel on machine learning hardware
US10929778B1 (en) 2018-05-22 2021-02-23 Marvell Asia Pte, Ltd. Address interleaving for machine learning
US11016801B1 (en) 2018-05-22 2021-05-25 Marvell Asia Pte, Ltd. Architecture to support color scheme-based synchronization for machine learning
US10929779B1 (en) 2018-05-22 2021-02-23 Marvell Asia Pte, Ltd. Architecture to support synchronization between core and inference engine for machine learning
US10997510B1 (en) * 2018-05-22 2021-05-04 Marvell Asia Pte, Ltd. Architecture to support tanh and sigmoid operations for inference acceleration in machine learning
US10902133B2 (en) 2018-10-25 2021-01-26 Enveil, Inc. Computational operations in enclave computing environments
US10817262B2 (en) 2018-11-08 2020-10-27 Enveil, Inc. Reduced and pipelined hardware architecture for Montgomery Modular Multiplication
GB2582145B (en) * 2019-03-11 2021-03-10 Graphcore Ltd Execution Unit for Determining a Result of an Exponential Function in a Processor
US11163533B2 (en) * 2019-07-18 2021-11-02 International Business Machines Corporation Floating point unit for exponential function implementation
US11275584B2 (en) * 2019-08-14 2022-03-15 Jerry D. Harthcock Universal floating-point instruction set architecture for computing directly with decimal character sequences and binary formats in any combination
US11601258B2 (en) 2020-10-08 2023-03-07 Enveil, Inc. Selector derived encryption systems and methods
CN114442993B (zh) * 2020-10-30 2025-04-11 北京晶视智能科技有限公司 浮点数函数运算查表计算装置
US11625244B2 (en) * 2021-06-22 2023-04-11 Intel Corporation Native support for execution of get exponent, get mantissa, and scale instructions within a graphics processing unit via reuse of fused multiply-add execution unit hardware logic
CN117422807B (zh) * 2023-12-15 2024-03-08 摩尔线程智能科技(北京)有限责任公司 颜色值的确定方法及装置、电子设备、计算机存储介质
CN120631440B (zh) * 2025-08-12 2025-11-14 中国海洋大学 一种基于Posit数据格式的运算方法及运算器

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5604691A (en) * 1995-01-31 1997-02-18 Motorola, Inc. Logarithm/inverse-logarithm converter utilizing a truncated Taylor series and method of use thereof
US6178435B1 (en) * 1998-06-30 2001-01-23 International Business Machines Corporation Method and system for performing a power of two estimation within a data processing system
US6910059B2 (en) * 2002-07-09 2005-06-21 Silicon Integrated Systems Corp. Apparatus and method for calculating an exponential calculating result of a floating-point number

Also Published As

Publication number Publication date
CN101201644A (zh) 2008-06-18
TW200907793A (en) 2009-02-16
US20090037504A1 (en) 2009-02-05
CN101201644B (zh) 2011-11-23
US7912883B2 (en) 2011-03-22

Similar Documents

Publication Publication Date Title
TWI351640B (en) Exponent processing systems and related methods
CN110383237B (zh) 可重新配置的矩阵乘法器系统和方法
US6691143B2 (en) Accelerated montgomery multiplication using plural multipliers
US20130073599A1 (en) Hardware for performing arithmetic operations
CN119166099A (zh) 浮点动态范围扩展
US6108682A (en) Division and/or square root calculating circuit
US9760110B2 (en) Lookup table sharing for memory-based computing
US20090132628A1 (en) Method for Performing Decimal Division
KR102581403B1 (ko) 공유 하드웨어 로직 유닛 및 그것의 다이 면적을 줄이는 방법
Jaiswal et al. Area-efficient architecture for dual-mode double precision floating point division
US7711764B2 (en) Pipelined real or complex ALU
US7519646B2 (en) Reconfigurable SIMD vector processing system
CN100378651C (zh) 单指令多数据数据处理系统内的结果分割
TWI235328B (en) Logic network and methods of computing
US7600104B2 (en) Method and system for parallel vector data processing of vector data having a number of data elements including a defined first bit-length
US20040128335A1 (en) Fast fourier transform (FFT) butterfly calculations in two cycles
US11625225B2 (en) Applications of and techniques for quickly computing a modulo operation by a Mersenne or a Fermat number
EP3358460B1 (en) Systems and methods for computing mathematical functions
JP4728392B2 (ja) 大数乗算方法およびデバイス
Jaiswal et al. Taylor series based architecture for quadruple precision floating point division
JP2002157114A (ja) 乗算器及びそれを搭載した集積回路装置
US20060004903A1 (en) CSA tree constellation
JP2004070524A5 (zh)
Jaiswal et al. Taylor series based architecture for Quadruple Precision
JPH1165823A (ja) 多桁整数と単桁整数との乗算方法