專利名稱:具有可選擇的子精確度的浮點處理器的制作方法
技術(shù)領(lǐng)域:
無
背景技術(shù):
浮點處理器是高速執(zhí)行例如乘法、除法、三角函數(shù)和指數(shù)函數(shù)等某些數(shù)學運算的專 門的計算單元。因此,功能強大的計算系統(tǒng)通常并入有浮點處理器,作為主處理器的一 部分或作為協(xié)處理器。數(shù)字的浮點表示形式通常包含符號分量、指數(shù)和尾數(shù)。為了求出 浮點數(shù)的值,使尾數(shù)乘以升高到指數(shù)的冪的基數(shù)(在計算機中通常為2)。將符號應(yīng)用于 所得的值。
浮點處理器的精確度由用于表示尾數(shù)的位的數(shù)目界定。尾數(shù)中的位越多,精確度越 大。浮點處理器的精確度通常取決于特定應(yīng)用。舉例來說,ANSI/正EE-754標準(幾乎 所有現(xiàn)代計算機都遵循所述標準)規(guī)定具有1位符號、8位指數(shù)和24位尾數(shù)的32位單 一格式。在32位編碼中僅存儲尾數(shù)的23個分數(shù)位,直接位于二進制小數(shù)點左側(cè)的整數(shù) 位是隱含的。IEEE-754還規(guī)定具有1位符號、11位指數(shù)和53位尾數(shù)的64位雙重格式。 與單一編碼類似,在64位編碼中僅存儲尾數(shù)的52個分數(shù)位,直接位于二進制小數(shù)點左 側(cè)的整數(shù)位是隱含的。較高精確度導致較高準確性,但計算量較大從而導致功率消耗增 加。
浮點算術(shù)運算的性能可能會伴有計算上的低效率,因為浮點處理器通常限于單一格 式或單一和雙重格式兩者所提供的精確度。雖然一些應(yīng)用可能需要這些類型的精確度, 但其它應(yīng)用可能并非如此。舉例來說, 一些圖形應(yīng)用可能僅需要16位尾數(shù)。對于這些圖 形應(yīng)用,超過16位的精確度的任何準確性都趨向于導致不必要的功率消耗。這在例如無 線電話、個人數(shù)字助理(PDA)、膝上型計算機、游戲控制臺、尋呼機和相機(僅舉幾例) 等功率對其來說極為重要的電池操作的裝置中尤其受到關(guān)注。如果知道應(yīng)用總是需要某
一減小的精確度,那么可根據(jù)所述減小的精確度來設(shè)計和建構(gòu)浮點處理器。然而,對于 大多數(shù)通用處理器,典型的情況是對于某些應(yīng)用(例如,產(chǎn)生3D圖形),減小的精確度是可接受的,且對于其它應(yīng)用(例如,實施全球定位系統(tǒng)(GPS)功能),需要較大的精 確度。因此,此項技術(shù)中需要一種在其中可選擇浮點格式的減小的精確度或子精確度的 浮點處理器。
發(fā)明內(nèi)容
在浮點處理器的一個實施例中,所述浮點處理器包含浮點寄存器,其經(jīng)配置以按 照一個或一個以上浮點格式來存儲多個位;控制器;以及至少一個浮點運算器。所述控 制器經(jīng)配置以選擇浮點運算的指定精確度的子精確度。所述控制器進一步經(jīng)配置以根據(jù) 選定的子精確度來確定所述多個位的子集。所述浮點運算器經(jīng)配置以僅使用所述多個位 的所述子集來執(zhí)行所述浮點運算。
在執(zhí)行浮點運算的方法的一個實施例中,所述方法包含選擇浮點運算的子精確度。 所述方法包含根據(jù)選定的子精確度來確定存儲在浮點寄存器中的多個位的子集。所述方 法包含僅使用所述多個位的所述子集來執(zhí)行所述浮點運算。
應(yīng)了解,所屬領(lǐng)域的技術(shù)人員從以下具體實施方式
中將容易明白浮點處理器和執(zhí)行 浮點運算的方法的其它實施例,在以下具體實施方式
中,以說明的方式展示和描述浮點 處理器和執(zhí)行浮點運算的方法的各個實施例。如將了解,浮點處理器和執(zhí)行浮點運算的 方法的其它以及不同的實施例是可能的,且用于描述這些實施例的細節(jié)能夠在許多方面 進行修改。因此,附圖和具體實施方式
應(yīng)認為本質(zhì)上是說明性而不是限制性的。
圖1是說明具有可選擇的子精確度的浮點處理器的實例的功能框圖; 圖2示意性地說明具有可選擇的子精確度的浮點處理器中所使用的浮點寄存器文件 的實例;
圖3A是說明使用具有可選擇的子精確度的浮點處理器來執(zhí)行的浮點加法的實例的 概念圖
圖3B是說明使用具有可選擇的子精確度的浮點處理器來執(zhí)行的浮點乘法的實例的 概念圖。
具體實施例方式
下文結(jié)合附圖陳述的具體實施方式
希望描述本發(fā)明的各個實施例,而不希望表示可實踐本發(fā)明的僅有實施例。
具體實施方式
包含特定細節(jié),以便允許對本發(fā)明的全面理解。 然而,所屬領(lǐng)域的技術(shù)人應(yīng)了解,可在沒有這些特定細節(jié)的情況下實踐本發(fā)明。在一些 情況下,為了更清楚地說明本發(fā)明的概念,以框圖形式展示眾所周知的結(jié)構(gòu)和組件。
在浮點處理器的至少一個實施例中, 一個或一個以上浮點運算的精確度可從規(guī)定格 式的精確度減小。向浮點處理器提供以執(zhí)行數(shù)學運算的指令可包含可編程的控制字段。 所述控制字段可用于選擇浮點格式的子精確度。通過將浮點格式的子精確度恰好選擇為 特定運算所需的精確量,可實現(xiàn)較大效率以及顯著的功率節(jié)省。
圖l是說明具有可選擇的子精確度的浮點處理器(FPP) 100的實例的功能框圖。浮 點處理器100包含浮點寄存器文件(FPR) 110;浮點控制器(CTL) 130;以及浮點數(shù)學 運算器(FPO) 140。浮點處理器100可實施為主處理器的一部分、協(xié)處理器或通過總線 或其它信道連接到主處理器的單獨實體。
浮點寄存器文件110可以是任何合適的存儲媒體。在圖1所示的實施例中,浮點寄 存器文件110包含若干可尋址寄存器位置115-1 (REG1)、 115-2 (REG2)、 . . . 115-N (REGN),其每一者經(jīng)配置以存儲用于浮點運算的運算數(shù)。所述運算數(shù)可包含來自主存儲 器的數(shù)據(jù)和/或先前浮點運算的結(jié)果。向浮點處理器提供的指令可用于將運算數(shù)移動到主 存儲器以及從主存儲器移出運算數(shù)。
圖2示意性地說明如結(jié)合圖1描述的具有可選擇的子精確度的浮點處理器100中所 使用的浮點寄存器文件110的數(shù)據(jù)結(jié)構(gòu)的實例。在圖2中所說明的實施例中,浮點寄存 器文件110包含十六個可尋址寄存器位置,在圖2中為了方便起見用參考標號200來表 示每個寄存器位置。每個寄存器位置200經(jīng)配置以按照正EE-754 32位單一格式存儲32 位二進制浮點數(shù)。明確地說,每個寄存器位置200含有1位符號202、 8位指數(shù)204和 23位分數(shù)206。然而,當然應(yīng)了解,浮點處理器100的其它實施例可包含以與IEEE 32 位單一格式(包含但不限于IEEE64位雙重格式)不同的方式格式化且/或含有不同數(shù)目 的寄存器位置的浮點寄存器文件210。
返回參看圖1,浮點控制器130可用于選擇浮點運算的子精確度。控制寄存器137 可加載有在一個或一個以上指令的控制字段中傳輸?shù)淖泳_度選擇位。以稍后將更詳細 描述的方式,浮點控制器130可使用子精確度選擇位來減小運算數(shù)的精確度,并指導浮 點處理器100內(nèi)的各個組件的操作。
浮點運算器140可包含經(jīng)配置以執(zhí)行浮點運算的一個或一個以上組件。這些組件可 包含(但不限于)計算單元,例如經(jīng)配置以執(zhí)行浮點加法和減法指令的浮點加法器(ADD)142,和經(jīng)配置以執(zhí)行浮點乘法指令的浮點乘法器(MUL) 144。如圖l中看出,浮點運 算器140中的計算單元ADD 142和MUL 144的每一者以允許運算數(shù)在計算單元之間以 及在每一計算單元與浮點寄存器文件110之間轉(zhuǎn)移的方式彼此耦合,并耦合到浮點寄存 器文件110。在浮點處理器100的至少一個實施例中,計算單元(ADD 142和MUL 144) 的任一者的輸出可以是任何其它計算單元的輸入。浮點寄存器文件110可用于存儲中間 結(jié)果,以及從浮點運算器140輸出的結(jié)果。
加法器142可以是經(jīng)配置以按照浮點格式執(zhí)行標準算術(shù)運算的常規(guī)浮點加法器。乘 法器144可以是經(jīng)配置以執(zhí)行浮點乘法的常規(guī)浮點乘法器。乘法器144可以(舉例來說) 布思(Booth)算法或經(jīng)修改的布思算法來實施,且可包含產(chǎn)生部分乘積的部分乘積產(chǎn)生 邏輯,和若干使所述部分乘積相加的進位存儲加法器。
雖然圖1中為了簡單起見僅展示加法器142和乘法器144,但浮點運算器140還可 包含此項技術(shù)中己知的且經(jīng)配置以執(zhí)行其它類型的浮點數(shù)學運算的其它計算單元(未圖 示)。這些計算單元可包含(但不限于)浮點除法器,其經(jīng)配置以執(zhí)行浮點除法指令; 浮點平方根提取器,其經(jīng)配置以執(zhí)行浮點平方根提取指令;浮點指數(shù)運算器,其經(jīng)配置 以執(zhí)行浮點指數(shù)指令;浮點對數(shù)運算器,其經(jīng)配置以執(zhí)行用于計算對數(shù)函數(shù)的指令;以 及浮點三角運算器,其經(jīng)配置以執(zhí)行用于計算三角函數(shù)的指令。
浮點處理器100的不同實施例可包含上文列舉的計算單元中的僅一者、或一些或全 部。舉例來說,浮點運算器140還可包含用于執(zhí)行例如比較和轉(zhuǎn)換等更多基本運算的其 它單元(未圖示)。此類單元是此項技術(shù)中眾所周知的,且可使用任何合適的市售單元。 舉例來說,加法器142和乘法器144每一者可包含一個或一個以上眾所周知的常規(guī)子單 元,例如使輸入運算數(shù)對齊的對齊器、將結(jié)果轉(zhuǎn)變成標準格式的規(guī)范器,和基于指定的 舍入模式對結(jié)果進行舍入的舍入器。例如位反相器(bit inverter)、多路復用器、計數(shù)器 和組合邏輯電路等眾所周知的電路元件也包含在加法器142和乘法器144中。
如圖1中所說明,浮點運算器140連接到浮點寄存器文件110,使得針對所請求的浮 點運算的每個指令,相關(guān)計算單元(即,加法器142或乘法器144)可從浮點寄存器文 件110接收存儲在寄存器位置REG1、. . . ,REGN中的一者或一者以上中的一個或一個以 上運算數(shù)。從寄存器文件110選擇并接收運算數(shù)且將接收到的運算數(shù)轉(zhuǎn)換成計算單元認 可的內(nèi)部數(shù)據(jù)格式的常規(guī)浮點格式轉(zhuǎn)換器(未圖示)可耦合到浮點寄存器文件110且耦 合到每個計算單元(ADD 142或MUL 144)。
在從浮點寄存器文件110接收到運算數(shù)之后,浮點運算器140中的一個或一個以上
10計算單元立即可以浮點控制器130所選擇的子精確度對接收到的運算數(shù)執(zhí)行所請求的浮 點運算的指令??蓪⑤敵霭l(fā)送回到浮點寄存器文件iio以供存儲,如圖1所示。
在浮點處理器100的至少一個實施例中,可使用軟件可選擇模式來減小浮點運算的 精確度。如上文所闡釋,向浮點處理器100提供的指令可包含用于傳輸子精確度選擇位 的可編程的控制字段。將子精確度選擇位寫入到控制寄存器137,所述控制寄存器137 又控制浮點運算期間每個運算數(shù)的尾數(shù)的位長度?;蛘?,可將子精確度選擇位直接從任 何合適的用戶界面寫入到控制寄存器137,所述用戶界面包含(但不限于)圖1所示的 監(jiān)視屏/鍵盤/鼠標組合150。在浮點處理器100的另一實施例中,可將子精確度選擇位直 接從主處理器或其操作系統(tǒng)寫入到控制寄存器137。浮點控制器130中所示的控制寄存 器137可作為獨立實體駐存在別處,集成到另一實體中,或分布在多個實體上。
可使用子精確度選擇位來減小浮點運算的精確度。這可以多種方式實現(xiàn)。在至少一 個實施例中,控制器130可致使浮點運算器140僅從寄存器文件IIO中讀出滿足子精確 度選擇位所指定的精確度所需的分數(shù)的最高有效位(MSB)。精確度越高,所需的分數(shù)位 越多。舉例來說,如果寄存器文件中的每個位置都含有23位分數(shù),且浮點運算所需的子 精確度為10位,那么僅需要所述分數(shù)的9個MSB;隱藏的或整數(shù)位為第十位。如果一 個或一個以上指令的子精確度增加到16位,那么將需要尾數(shù)的15個MSB。在后一種情 況下,可簡單地忽略分數(shù)的8個最低有效位(LSB)?;蛘?,控制器130可關(guān)閉對應(yīng)于過 剩位224的存儲寄存器元件。
當以動態(tài)讀取邏輯實施浮點寄存器文件110時,可實現(xiàn)額外的功率節(jié)省。與靜態(tài)讀 取邏輯不同,動態(tài)讀取邏輯通過對位線進行預(yù)充電且接著基于選定的存儲器位置中的數(shù) 據(jù)對其進行放電,來實現(xiàn)較快的讀取時間。因此,利用動態(tài)讀取邏輯可節(jié)省功率,因為 不需要對對應(yīng)于過剩尾數(shù)位的讀取邏輯進行預(yù)充電。在浮點處理器100的一些實施例中, 浮點運算器140讀取每個運算數(shù)的整個分數(shù)。控制器130接著可致使浮點運算器140在 執(zhí)行浮點運算之前對過剩尾數(shù)位進行舍位。在浮點處理器100的其它實施例中,控制器 130可提示浮點運算器140的前端中的額外處理(未圖示)以將每個運算數(shù)的尾數(shù)舍入 到所需精確度。
另一可能的方法是控制器130提示浮點運算器140以迫使每個運算數(shù)的過剩尾數(shù)位 進入低泄漏狀態(tài)。許多電子組件(一般來說)和半導體裝置(具體來說)都經(jīng)歷漏電流。 漏電流是寄生電流,例如流經(jīng)金屬氧化物半導體(MOS)晶體管的柵極氧化物區(qū)域的電 流。隨著晶體管的尺寸持續(xù)縮減,且集成到芯片中的晶體管的數(shù)目增加,漏電流受到更多關(guān)注。視由多個晶體管組成的邏輯柵極的特定配置而定,往往一個狀態(tài)中的漏電流將 比另一狀態(tài)中的漏電流多。由于浮點運算器140的特定邏輯柵極配置是已知的,所以浮 點運算器140可用于迫使過剩尾數(shù)位進入低泄漏狀態(tài),即導致最少漏電流的狀態(tài)。如稍 后將針對此配置更詳細地闡釋i浮點運算器140經(jīng)配置以防止被迫使進入低泄漏狀態(tài)的 過剩尾數(shù)位影響浮點運算的結(jié)果。
圖3A是說明使用如上所述具有可選擇的子精確度的浮點處理器執(zhí)行的浮點加法的 概念圖。為了簡單起見,說明加法器300中兩個浮點數(shù)302和304的相加。并且,為了 簡單起見,假定兩個浮點數(shù)302和304已對齊,因此不需要進行任何移位。展示浮點數(shù) 302和304具有用于加法運算的選定位(即,尾數(shù)的MSB)和將不會在加法運算中使用 的若干過剩位(即,尾數(shù)的LSB)。使用點來說明選定位,且對于浮點數(shù)302,用參考標 號312來指示選定位,且對于浮點數(shù)304,用參考標號314來指示選定位。使用交叉來 說明不在加法中使用的過剩位,且對于浮點數(shù)302,用參考標號313來指示過剩位,且 對于浮點數(shù)304,用參考標號315來指示過剩位。
在迫使過剩位為零(0)的情況下,可在不影響結(jié)果的情況下執(zhí)行浮點加法運算。然 而,在針對加法器迫使過剩位進入低泄漏狀態(tài)的情況下,應(yīng)采取某些步驟來防止過剩位 影響結(jié)果。舉例來說,如果低泄漏狀態(tài)為一 (1),那么過剩位的加法可能產(chǎn)生到選定位 的進位輸出。在至少一個實施例中,浮點運算器可經(jīng)配置以在對選定位進行相加時,阻 止從過剩位的加法產(chǎn)生的任何進位輸出,或忽略此進位輸出。或者,可將充分數(shù)目的最 高有效過剩位設(shè)置為零(0),以確保過剩位的加法不導致進位輸出。
返回參看圖1,浮點加法運算可產(chǎn)生具有最大精確度的結(jié)果。控制器130可用于提 示浮點運算器140在將結(jié)果回寫到寄存器文件110中之前將結(jié)果的精確度減小到適當?shù)?級。這可通過將結(jié)果舍入到控制寄存器137中的子精確度選擇位所需的精確度來實現(xiàn)。 或者,可對從浮點加法運算得出的過剩尾數(shù)位進行舍位。如果輸入到浮點運算器140的 運算數(shù)中的過剩尾數(shù)位被設(shè)置為零(0),那么浮點加法運算還將產(chǎn)生在過剩尾數(shù)位中具 有零的結(jié)果。然而,如果運算數(shù)中的過剩分數(shù)位未被舍位或設(shè)置為低泄漏狀態(tài),那么從 浮點加法運算得出的過剩分數(shù)位可能不全為零(0)。在那種情況下,控制器130可提示 浮點運算器140在將結(jié)果回寫到寄存器文件110中之前執(zhí)行某一處理(未圖示),以將所 有過剩分數(shù)位設(shè)置為零(0)。在浮點運算器的至少一個實施例中,可在將過剩分數(shù)位設(shè) 置為低泄漏狀態(tài)的情況下,將結(jié)果回寫到寄存器文件。并且,在至少一個實施例中,可 阻止過剩分數(shù)位更新寄存器文件,借此節(jié)省寄存器文件中的功率。圖3B是說明使用如上所述具有可選擇的子精確度的浮點處理器100來執(zhí)行的乘法器 (MUL) 400中的浮點乘法的概念圖。眾所周知,二進制數(shù)乘法基本上是經(jīng)移位值的一系 列加法。如果用戶選擇的子精確度提供N個尾數(shù)位,那么從兩個浮點數(shù)(每一者具有N 個尾數(shù)位)的乘法得出的乘法器原始輸出值可具有至多達2N個輸出尾數(shù)位。在來自乘法 器的2N個所得尾數(shù)位的情況下,可在將結(jié)果回寫到寄存器文件之前去除N個過剩位。 控制器可以多種方式執(zhí)行此功能。舉例來說,控制器可提示浮點運算器將結(jié)果舍位到所 需精確度?;蛘撸刂破骺商崾靖↑c運算器將結(jié)果舍入到所需N位精確度。在任一情況 下,可在過剩分數(shù)位位置中具有或沒有零的情況下,將N-1個分數(shù)位寫入到寄存器文件。 在浮點運算器的至少一個實施例中,可在將過剩分數(shù)位設(shè)置為低泄漏狀態(tài)的情況下,將 結(jié)果回寫到寄存器文件。
結(jié)合本文所揭示的實施例而描述的各種說明性邏輯單元、區(qū)塊、模塊、電路、元件 和/或組件可在作為通用處理器、數(shù)字信號處理器(DSP)、專用集成電路(ASIC)、現(xiàn)場 可編程門陣列(FPGA)或其它可編程邏輯組件、離散門或晶體管邏輯、離散硬件組件或 其經(jīng)設(shè)計以執(zhí)行本文所描述的功能的任一組合的一部分的浮點處理器中實施或執(zhí)行。通 用處理器可以是微處理器,但在替代實施例中,處理器可以是任何常規(guī)處理器、控制器、 微控制器或狀態(tài)機。處理器還可實施為計算組件的組合,例如DSP與微處理器的組合、 多個微處理器、結(jié)合DSP核心的一個或一個以上微處理器,或任何其它此類配置。
結(jié)合本文所揭示的實施例而描述的方法或算法可直接實施在硬件中、由處理器執(zhí)行 的軟件模塊中或上述兩者的組合中。軟件模塊可駐存在RAM存儲器、快閃存儲器、ROM 存儲器、EPROM存儲器、EEPROM存儲器、寄存器、硬盤、可移動磁盤、CD-ROM或 此項技術(shù)中已知的任何其它形式的存儲媒體中。存儲媒體可耦合到處理器,使得處理器 可從存儲媒體讀取信息并向存儲媒體寫入信息。在代替實施例中,存儲媒體可與處理器 成一體式。
提供所揭示的實施例的先前描述是為了使所屬領(lǐng)域的技術(shù)人員能夠制造或使用本發(fā) 明。所屬領(lǐng)域的技術(shù)人員將容易明白對這些實施例的各種修改,且本文所定義的一般原 理可在不脫離本發(fā)明的精神或范圍的情況下應(yīng)用于其它實施例。因此,不希望將本發(fā)明 限制于本文所展示的實施例,而是希望賦予本發(fā)明與權(quán)利要求書一致的完整范圍,其中 不希望以單數(shù)形式對元件的提及表示"一個且僅一個"(除非明確地這樣陳述),而是希 望其表示"一個或一個以上"。所屬領(lǐng)域的技術(shù)人員已知的或以后將知道的本發(fā)明全文中
所描述的各種實施例的元件的所有結(jié)構(gòu)和功能等效物都特意以引用的方式并入本文中,且希望其由權(quán)利要求書所涵蓋。此外,不希望本文所揭示的任何內(nèi)容貢獻給公眾,不管 權(quán)利要求書中是否明確敘述了此類揭示內(nèi)容。任何權(quán)利要求項要素都不應(yīng)在35 U.S.C. §112第六段的條款下進行解釋,除非特意使用短語"用于……的裝置"來敘述所述要素, 或在方法項的情況下使用短語"用于……的步驟"來敘述所述要素。
權(quán)利要求
1.一種執(zhí)行浮點運算的方法,其包括選擇浮點運算的格式,以及選擇所述浮點運算的子精確度;根據(jù)所述選定的子精確度來確定存儲在浮點寄存器中的多個位的子集,且其中所述浮點寄存器包括經(jīng)配置以存儲指數(shù)位的指數(shù)區(qū)和經(jīng)配置以存儲分數(shù)位的分數(shù)區(qū),且其中過剩位包括分數(shù)位;以及僅使用所述多個位的所述子集來執(zhí)行所述浮點運算。
2. 根據(jù)權(quán)利要求1所述的方法,其中確定所述多個位的所述子集包括從所述子集中排 除一個或一個以上過剩位。
3. 根據(jù)權(quán)利要求2所述的方法,其進一步包括迫使所述過剩位進入低泄漏狀態(tài)。
4. 根據(jù)權(quán)利要求2所述的方法,其中執(zhí)行所述浮點運算包括僅從所述寄存器讀取所述子集內(nèi)所包含的所述位,且不讀取所述過剩位的任一 者,以產(chǎn)生由所述選定的子精確度表征的輸入數(shù);以及對所述輸入數(shù)執(zhí)行所述浮點運算,以產(chǎn)生具有多個輸出位的輸出數(shù)。
5. 根據(jù)權(quán)利要求4所述的方法,其進一步包括從所述輸出數(shù)舍位超過所述選定的子精 確度的所述輸出位的任一者,借此產(chǎn)生由所述選定的子精確度表征的經(jīng)舍位的輸出 數(shù)。
6. 根據(jù)權(quán)利要求4所述的方法,其進一步包括將所述輸出數(shù)舍入到所述選定的子精確 度。
7. 根據(jù)權(quán)利要求4所述的方法,其中讀取所述子集內(nèi)的所述位包括對所述子集內(nèi)的所 有位線進行預(yù)充電,以及使所有所述過剩位處于經(jīng)放電狀態(tài)。
8. 根據(jù)權(quán)利要求2所述的方法,其中執(zhí)行所述浮點運算包括從所述寄存器讀取所有所述多個位;從己被讀取的所述位舍位所有所述過剩位,借此產(chǎn)生由所述選定的子精確度表征 的經(jīng)舍位的輸入數(shù);以及對所述經(jīng)舍位的輸入數(shù)執(zhí)行所述浮點運算,以產(chǎn)生具有多個輸出位的輸出數(shù)。
9. 根據(jù)權(quán)利要求8所述的方法,其進一步包括從所述輸出數(shù)舍位超過所述選定的子精 確度的所述輸出位的任一者。
10. 根據(jù)權(quán)利要求8所述的方法,其進一步包括將所述輸出數(shù)舍入到所述選定的子精確 度。
11. 根據(jù)權(quán)利要求2所述的方法,其中執(zhí)行所述浮點運算包括迫使所有所述過剩位為零。
12. 根據(jù)權(quán)利要求2所述的方法,其中所述寄存器包括多個寄存器元件,每個寄存器元 件對應(yīng)于所述多個位中的個別一個位;且其中執(zhí)行所述浮點運算包括關(guān)閉對應(yīng)于所 述過剩位中的一者的所述寄存器元件的任一者。
13. 根據(jù)權(quán)利要求2所述的方法,其中執(zhí)行所述浮點運算包括阻止從所述過剩位的任一 者到所述子集內(nèi)的所述位的任一者的進位輸出。
14. 根據(jù)權(quán)利要求l所述的方法,其中所述浮點格式包括以下各項中的至少一者單一格式,其包含l個符號位、8個指數(shù)位和23個分數(shù)位; 雙重格式,其包含l個符號位、11個指數(shù)位和52個分數(shù)位;以及 擴展格式,其包含l個符號位、15個指數(shù)位和64個尾數(shù)位。
15. 根據(jù)權(quán)利要求l所述的方法,其中所述浮點運算包括以下各項中的至少一者浮點 加法;浮點減法;浮點乘法;浮點除法;浮點平方根提??;浮點三角函數(shù)計算;浮 點指數(shù)函數(shù)計算;和浮點對數(shù)函數(shù)計算。
16. —種浮點處理器,其包括寄存器,其經(jīng)配置以按照浮點格式來存儲多個位;控制器,其經(jīng)配置以選擇浮點運算的子精確度,且進一步經(jīng)配置以根據(jù)所述選定 的子精確度來確定所述多個位的子集;以及浮點運算器,其經(jīng)配置以僅使用所述多個位的所述子集來執(zhí)行所述浮點運算。
17. 根據(jù)權(quán)利要求16所述的浮點處理器,其中所述控制器進一步經(jīng)配置以響應(yīng)于用戶 輸入而選擇所述子精確度。
18. 根據(jù)權(quán)利要求16所述的浮點處理器,其中所述控制器進一步經(jīng)配置以通過從所述 子集中排除一個或一個以上過剩位來確定所述位的所述子集。
19. 根據(jù)權(quán)利要求18所述的浮點處理器,其中所述浮點寄存器包括經(jīng)配置以存儲指數(shù) 位的指數(shù)區(qū)和經(jīng)配置以存儲分數(shù)位的分數(shù)區(qū),且其中所述過剩位包括分數(shù)位。
20. 根據(jù)權(quán)利要求18所述的浮點處理器,其中所述控制器進一步經(jīng)配置以迫使所述過 剩位進入低泄漏狀態(tài)。
21. 根據(jù)權(quán)利要求16所述的浮點處理器,其中所述浮點運算器包括以下各項中的至少 一者浮點加法器,其經(jīng)配置以執(zhí)行浮點加法和減法; 浮點乘法器,其經(jīng)配置以執(zhí)行浮點乘法; 浮點除法器,其經(jīng)配置以執(zhí)行浮點除法; 浮點平方根提取器,其經(jīng)配置以執(zhí)行浮點平方根提取; 浮點指數(shù)運算器,其經(jīng)配置以計算浮點指數(shù)函數(shù); 浮點對數(shù)運算器,其經(jīng)配置以計算浮點對數(shù)函數(shù);以及 浮點三角運算器,其經(jīng)配置以計算浮點三角函數(shù)。
22. 根據(jù)權(quán)利要求18所述的浮點處理器,其中所述浮點運算器進一步經(jīng)配置以僅從所述寄存器讀取所述子集內(nèi)的所述位, 且不讀取所述過剩位的任一者,以便接受由所述選定的子精確度表征的一個或一個 以上浮點數(shù)作為輸入;以及其中所述浮點運算器進一步經(jīng)配置以對所述一個或一個以上輸入浮點數(shù)執(zhí)行所述浮點運算,以便產(chǎn)生具有多個輸出位的輸出數(shù)。
23. 根據(jù)權(quán)利要求22所述的浮點處理器,其中所述浮點運算器進一步經(jīng)配置以從所述 輸出數(shù)舍位超過所述選定的子精確度的所述輸出位的任一者,借此產(chǎn)生由所述選定 的子精確度表征的經(jīng)舍位的輸出數(shù)。
24. 根據(jù)權(quán)利要求22所述的浮點處理器,其中所述浮點運算器進一步經(jīng)配置以將所述 輸出數(shù)舍入到所述選定的子精確度。
25. 根據(jù)權(quán)利要求22所述的浮點處理器,其中所述浮點運算器進一步經(jīng)配置以對所述 子集內(nèi)的所有所述位進行預(yù)充電,且使所有所述過剩位處于經(jīng)放電狀態(tài)。
26. 根據(jù)權(quán)利要求18所述的浮點處理器,其中所述浮點運算器進一步經(jīng)配置以從所述 寄存器讀取所述寄存器中所存儲的所有所述多個位;其中所述浮點運算器進一步經(jīng)配置以從已被讀取的所述位中舍位所有所述過剩 位,借此產(chǎn)生由所述選定的子精確度表征的經(jīng)舍位的輸入數(shù);以及其中所述浮點運算器進一步經(jīng)配置以對所述經(jīng)舍位的輸入數(shù)執(zhí)行所述浮點運算, 以產(chǎn)生具有多個輸出位的輸出數(shù)。
27. 根據(jù)權(quán)利要求26所述的浮點處理器,其中所述浮點運算器進一步經(jīng)配置以從所述 輸出數(shù)舍位超過所述選定的子精確度的所述輸出位的任一者。
28. 根據(jù)權(quán)利要求26所述的浮點處理器,其中所述浮點運算器進一步經(jīng)配置以將所述 輸出數(shù)舍入到所述選定的子精確度。
29. 根據(jù)權(quán)利要求18所述的浮點處理器,其中所述控制器進一步經(jīng)配置以迫使所有所 述過剩位為零。
30. 根據(jù)權(quán)利要求18所述的浮點處理器,其中所述寄存器包括多個寄存器元件,每個 寄存器元件對應(yīng)于所述多個位中的個別一個位;且其中所述控制器進一步經(jīng)配置以 關(guān)閉對應(yīng)于所述過剩位中的一者的所述寄存器元件的任一者。
31.根據(jù)權(quán)利要求18所述的浮點處理器,其中所述控制器經(jīng)配置以阻止所述過剩 位的任一者進位到所述子集內(nèi)的所述位中的一者。
全文摘要
一種具有可選擇的子精確度的浮點處理器包含寄存器,其經(jīng)配置以按照浮點格式來存儲多個位;控制器;以及浮點數(shù)學運算器。所述控制器經(jīng)配置以響應(yīng)于用戶輸入而選擇浮點運算的子精確度。所述控制器經(jīng)配置以根據(jù)所述選定的子精確度來確定所述位的子集。所述浮點運算器經(jīng)配置以僅使用所述位的所述子集來執(zhí)行所述浮點運算??善仁顾龈↑c運算中未使用的過剩位進入低泄漏狀態(tài)。從所述浮點運算得出的輸出值被舍位或舍入到所述選定的子精確度。
文檔編號G06F7/483GK101317152SQ200680044466
公開日2008年12月3日 申請日期2006年10月4日 優(yōu)先權(quán)日2005年10月5日
發(fā)明者肯尼思·艾倫·多克塞爾 申請人:高通股份有限公司