專利名稱:精度受控的迭代算術(shù)邏輯單元的制作方法
技術(shù)領(lǐng)域:
本揭示案大體上涉及處理器,且特定來說,涉及在處理器中執(zhí)行亞精度迭代算術(shù)運(yùn)算。
MM
常規(guī)的處理器包括用于執(zhí)行例如除法、平方根和超越(例如,SIN、 COS)運(yùn)算的 迭代運(yùn)算的一個(gè)或一個(gè)以上算術(shù)邏輯單元。常規(guī)上執(zhí)行迭代算術(shù)運(yùn)算,直到產(chǎn)生具有固 定、經(jīng)定義的位精度的結(jié)果為止。B卩,以迭代方式處理運(yùn)算數(shù)以產(chǎn)生具有全精度(即, 例如與結(jié)果寄存器相關(guān)聯(lián)的精度或與開始運(yùn)算數(shù)相關(guān)聯(lián)的精度的目標(biāo)精度)的結(jié)果。舉 例來說,電氣電子工程師學(xué)會(huì)(正EE)己定義了與二進(jìn)制浮點(diǎn)算術(shù)相關(guān)聯(lián)的標(biāo)準(zhǔn),常被 稱為IEEE 754。IEEE 754標(biāo)準(zhǔn)規(guī)定關(guān)于單精度和雙精度浮點(diǎn)運(yùn)算的數(shù)字格式、基本運(yùn)算、 轉(zhuǎn)換和異常條件。
IEEE 754相符的浮點(diǎn)數(shù)包括三個(gè)基本成分符號位、指數(shù)和尾數(shù)。所述尾數(shù)進(jìn)一步 被分解為整數(shù)部分和小數(shù)部分。僅小數(shù)位以編碼方式存儲。對于正規(guī)數(shù)來說,整數(shù)部分 隱含地等于值l。 IEEE 754相符的單精度數(shù)由符號位、8位指數(shù)和23位小數(shù)表示,而雙 精度數(shù)由符號位、11位指數(shù)和52位小數(shù)表示。同樣,IEEE 754相符的浮點(diǎn)數(shù)的迭代處 理產(chǎn)生具有24位精度(對于單精度運(yùn)算數(shù)來說)和53位精度(對于雙精度運(yùn)算數(shù)來說) 的結(jié)果。舉例來說,裝備有單精度IEEE 754相符的ALU的處理器產(chǎn)生具有24位的全 精度的結(jié)果。然而,某些應(yīng)用(例如openGL相符的圖形應(yīng)用)可不要求具有全24位的 單精度的結(jié)果。同樣,對于可容許小于全單精度的精度(例如,16位精度)的應(yīng)用來說 將結(jié)果計(jì)算到全24位單精度引起不必要的功率和處理循環(huán)消耗。
一些常規(guī)處理器產(chǎn)生具有小于目標(biāo)格式的精度的精度的結(jié)果。然而,僅在所作用于 的運(yùn)算數(shù)具有小于目標(biāo)格式的精度時(shí),這些處理器才終止達(dá)不到目標(biāo)格式的迭代算術(shù)運(yùn) 算。舉例來說,即使在目標(biāo)寄存器格式為雙精度值的格式時(shí),雙精度處理器也可對單精 度運(yùn)算數(shù)執(zhí)行單精度運(yùn)算,從而產(chǎn)生單精度結(jié)果。同樣, 一些常規(guī)算術(shù)處理是視運(yùn)算數(shù) 精度而定的,且因此,產(chǎn)生具有等效于運(yùn)算數(shù)的精度的全精度的結(jié)果。結(jié)果,可能會(huì)不 必要地消耗功率和處理器循環(huán)以產(chǎn)生具有大于某些應(yīng)用可容許或可接受的精度的精度的結(jié)果。
發(fā)明內(nèi)容
根據(jù)本文所教示的方法和裝置,包括在處理器中的精度受控的迭代算術(shù)邏輯單元 (IALU)產(chǎn)生亞精度結(jié)果,即,具有小于全精度的位精度的結(jié)果。在一個(gè)或一個(gè)以上實(shí) 施例中,精度受控的IALU包含算術(shù)邏輯電路和精度控制電路。所述算術(shù)邏輯電路經(jīng)配 置而以迭代方式處理第一位精度的運(yùn)算數(shù)以獲得一結(jié)果。所述精度控制電路經(jīng)配置以在 所述結(jié)果實(shí)現(xiàn)小于所述第一位精度的經(jīng)編程第二位精度時(shí)終止所述迭代運(yùn)算數(shù)處理。如 對于全精度運(yùn)算的情況,降低的精度運(yùn)算可產(chǎn)生多于最終結(jié)果中所需的位的位以實(shí)現(xiàn)適 當(dāng)?shù)纳崛搿_@些"舍入位"通常被稱為保護(hù)、舍入和粘性位。在一實(shí)施例中,響應(yīng)于由 所述控制電路接收到的指示符,所述精度控制電路致使算術(shù)邏輯電路終止迭代運(yùn)算數(shù)處 理。精度受控的IALU進(jìn)-一步包含舍入邏輯,所述舍入邏輯經(jīng)配置以基于舍入模式、亞 精度結(jié)果的最低有效位(LSB)和舍入位在所述LSB處有條件地遞增所述結(jié)果。在-一實(shí) 施例中,舍入邏輯經(jīng)配置以通過使舍入值與所述結(jié)果的LSB對準(zhǔn)和有條件地將所述對準(zhǔn) 的舍入值加到所述結(jié)果而舍入所述結(jié)果。
因此,在至少一實(shí)施例中,在處理器中通過以迭代方式處理第一位精度的運(yùn)算數(shù)以 獲得一結(jié)果且在所述結(jié)果實(shí)現(xiàn)小于所述第一位精度的經(jīng)編程第二位精度時(shí)終止迭代運(yùn) 算數(shù)處理來產(chǎn)生亞精度結(jié)果。此外,可通過填補(bǔ)所述結(jié)果而調(diào)整所述亞精度結(jié)果的寬度, 使得所述經(jīng)填補(bǔ)的結(jié)果具有對應(yīng)于所述第一位精度的位寬度。
在另一實(shí)施例中, 一種處理器包含精度受控的IALU。所述處理器進(jìn)一歩包含經(jīng)配 置以將所述經(jīng)編程第二位精度存儲為固定值或存儲為動(dòng)態(tài)可變值的存儲元件。如果將所 述經(jīng)編程第二位精度存儲為動(dòng)態(tài)可變值,則可響應(yīng)于由所述處理器接收到的一個(gè)或一個(gè) 以上指令而對其進(jìn)行修改。所述精度受控的IALU經(jīng)配置以響應(yīng)于由所述處理器接收到 的指示符而終止迭代運(yùn)算數(shù)處理。在一實(shí)施例中,所述指示符為存儲于包括在所述處理 器中的寄存器中的旗標(biāo)位。
當(dāng)然,本揭示案不限于上述特征。所屬領(lǐng)域的技術(shù)人員在閱讀以下詳細(xì)描述后和檢 視附圖后將認(rèn)識到額外特征。
圖1為說明包括精度受控的迭代算術(shù)邏輯單元(IALU)的處理器的一實(shí)施例的方框圖。圖2為說明圖1的精度受控的IALU的一實(shí)施例的方框圖。
圖3為說明用于執(zhí)行迭代算術(shù)運(yùn)算的程序邏輯的一實(shí)施例的邏輯流程圖。
圖4為說明進(jìn)一步包含舍入電路的圖1的精度受控的IALU的一實(shí)施例的方框圖。
圖5為說明用于舍入由圖4的精度受控的IALU產(chǎn)生的亞精度結(jié)果的程序邏輯的一
實(shí)施例的邏輯流程圖。
圖6為說明用于舍入由圖4的精度受控的IALU產(chǎn)生的亞精度結(jié)果的程序邏輯的另
一實(shí)施例的邏輯流程圖。
具體實(shí)施例方式
圖1說明包括一個(gè)或一個(gè)以上精度受控的迭代算術(shù)邏輯單元(IALU) 12的處理器 10的一實(shí)施例。在包括于IALU 12中的或與IALU 12相關(guān)聯(lián)的精度控制電路14的控制 下,精度受控的IALU 12經(jīng)配置以在由IALU 12產(chǎn)生的結(jié)果獲得全精度之前終止迭代算 術(shù)處理。即,響應(yīng)于由精度控制電路14接收到的經(jīng)編程位精度(PBP)值,控制電路 14致使IALU 12產(chǎn)生亞精度結(jié)果,即,具有小于例如與結(jié)果寄存器相關(guān)聯(lián)的精度或與開 始運(yùn)算數(shù)相關(guān)聯(lián)的精度的目標(biāo)精度的位精度的結(jié)果。所述PBP值指示與由IALU 12產(chǎn) 生的結(jié)果相關(guān)聯(lián)的所要位精度。同樣,響應(yīng)于所述PBP值,精度控制電路14可致使IALU 12在所述結(jié)果獲得全精度之前終止運(yùn)算數(shù)處理。由IALU 12產(chǎn)生的亞精度結(jié)果因此具有 對應(yīng)于所述PBP值且非全精度的位精度。所述PBP值可保存在包括于處理器IO中的存 儲元件中,例如,專用或通用寄存器16或數(shù)據(jù)高速緩沖存儲器18。在一實(shí)施例中,所 述PBP值為硬連線的且因此不可重新編程。在另一實(shí)施例中,所述PBP值為存儲在PBP 寄存器16或數(shù)據(jù)高速緩沖存儲器18中的動(dòng)態(tài)可變值,且因此是可修改的??蓪⑺鯬BP 值提供到處理器IO作為一指令或指令系列的部分,例如,作為超長指令字的部分。
不管所述PBP值如何產(chǎn)生、存儲或修改,精度控制電路14使用所述PBP值以控制 精度受控的IALU12是否較早地(即,在結(jié)果實(shí)現(xiàn)全精度之前)終止迭代算術(shù)運(yùn)算。不 像常規(guī)技術(shù),精度控制電路14可致使IALU 12不管運(yùn)算數(shù)精度而在結(jié)果獲得全精度之 前終止迭代算術(shù)運(yùn)算。而是,精度控制電路14使其較早終止邏輯基于所述PBP值,此 與運(yùn)算數(shù)的精度并非直接相關(guān)聯(lián)。因此,精度受控的IALU 12能夠產(chǎn)生與運(yùn)算數(shù)精度無 關(guān)的亞精度結(jié)果,借此減少功率消耗且在處理器10執(zhí)行可容許亞精度結(jié)果的應(yīng)用(例 如,圖形應(yīng)用)時(shí)改進(jìn)處理器10的性能。
處理器10進(jìn)一步包括指令單元20、 一個(gè)或一個(gè)以上載入/存儲單元22和指令高速
緩沖存儲器24。指令單元20提供對到例如載入/存儲單元22和精度受控的IALU 12的各種執(zhí)行單元的指令流的集中式控制。所述執(zhí)行單元可并行執(zhí)行多個(gè)指令。同樣,處理 器10可為超標(biāo)量和/或超管線化的。指令和數(shù)據(jù)高速緩沖存儲器18、 24啟用系統(tǒng)寄存器
(未圖示)和執(zhí)行單元以快速地存取指令和數(shù)據(jù)。此外,可經(jīng)由執(zhí)行單元中的一者(例
如,載入/存儲單元22)而在數(shù)據(jù)高速緩沖存儲器18與系統(tǒng)寄存器之間移動(dòng)數(shù)據(jù)。
圖2說明精度受控的IALU12的一實(shí)施例。在此實(shí)施例中,IALU12包括算術(shù)邏輯 電路26。算術(shù)邏輯電路26經(jīng)配置以執(zhí)行例如除法、平方根和超越函數(shù)的迭代算術(shù)運(yùn)算。 算術(shù)邏輯電路26從包括于處理器10中的寄存器28、 30接收運(yùn)算數(shù)。在一實(shí)例中,所 述運(yùn)算數(shù)為正EE 754單精度相容,且因此,每一寄存器28、 30存儲一符號位、一8位 指數(shù)和一23位小數(shù)。在另一實(shí)例中,所述運(yùn)算數(shù)為IEEE 754雙精度相容,且因此,每 一寄存器28、 30存儲一符號位、一 11位指數(shù)和一 52位小數(shù)。在其它實(shí)例中,所述運(yùn) 算數(shù)具有不同于IEEE 754標(biāo)準(zhǔn)的全精度,例如足夠用于叩enGL標(biāo)準(zhǔn)或自定義應(yīng)用的運(yùn) 算數(shù)。
僅為便于解釋,接下來參考具有對應(yīng)于IEEE 754單精度(本文中通常被稱為單精 度)的全精度的運(yùn)算數(shù)來描述精度受控的IALU 12的詳細(xì)操作。然而,所屬領(lǐng)域的技術(shù) 人員將易于理解,精度受控的IALU 12的一個(gè)或一個(gè)以上實(shí)施例完全能夠處理具有任何 位精度的運(yùn)算數(shù),且因此,可在達(dá)不到全精度的情況下終止迭代算術(shù)運(yùn)算,無不管哪一 精度界定全精度。
返回到圖2,算術(shù)邏輯電路26以迭代方式處理從運(yùn)算數(shù)寄存器28、 30接收到的單 精度運(yùn)算數(shù),如圖3的步驟100所示。響應(yīng)于PBP寄存器16的內(nèi)容或者一個(gè)或一個(gè)以 上的指令,精度控制電路14將允許算術(shù)邏輯電路26不中斷地完成迭代處理,或?qū)⑷鐖D 3的步驟102所示,通過在獲得全精度結(jié)果之前終止迭代處理來致使算術(shù)邏輯電路26執(zhí) 行"提早終止"。作為從PBP寄存器16接收的信息的一部分或由一個(gè)或一個(gè)以上指令提 供時(shí),精度控制電路14接收確定算術(shù)邏輯電路26是否較早終止處理(即,產(chǎn)生亞精度 結(jié)果)的指示符(RDP)。在一實(shí)施例中,所述指示符為設(shè)定于PBP寄存器16中的旗標(biāo) 位。如果所述指示符未經(jīng)設(shè)定,則如圖3的步驟104所示,精度控制電路14允許算術(shù) 邏輯電路26迭代到全單精度,借此產(chǎn)生全精度結(jié)果。然而,如果所述指示符經(jīng)設(shè)定, 則精度控制電路14啟動(dòng)控制信號(CTRL),從而致使算術(shù)邏輯電路26在為所要亞精度 產(chǎn)生包括所需的任何舍入位在內(nèi)的足夠位時(shí)停止迭代,借此產(chǎn)生亞精度結(jié)果,如圖3的 步驟106所示。
PBP值指示精度控制電路14致使算術(shù)邏輯電路26終止處理時(shí)所述結(jié)果的位精度。
舉例來說,如果PBP值指示16位的位精度,則精度控制電路14致使算術(shù)邏輯電路26在中間結(jié)果具有足夠位以產(chǎn)生具有16位的位精度的經(jīng)適當(dāng)舍入的結(jié)果時(shí)停止迭代。
在一實(shí)施例中,使用不具有PDP值的RDP位來產(chǎn)生預(yù)定大小的亞精度結(jié)果。在一 替代實(shí)施例中,使用所述不具有RDP位的PDP值以也實(shí)現(xiàn)降低精度的運(yùn)算。
在一實(shí)施例中,精度控制電路14包含狀態(tài)機(jī)或計(jì)數(shù)器以跟蹤所執(zhí)行的算術(shù)迭代的 數(shù)目。同樣,精度控制電路14監(jiān)控算術(shù)邏輯電路處理。在算術(shù)邏輯電路26產(chǎn)生具有足 夠位以產(chǎn)生具有匹配PBP值的位精度的經(jīng)適當(dāng)舍入的結(jié)果的中間結(jié)果時(shí),精度控制電路 14啟動(dòng)控制信號,借此使算術(shù)邏輯電路26終止處理。舉例來說,精度控制電路14計(jì)數(shù) 由算術(shù)邏輯電路26執(zhí)行的處理循環(huán)的數(shù)目,從而使算術(shù)邏輯電路26在計(jì)數(shù)指示最終結(jié) 果的位精度將匹配PBP值的位精度時(shí)終止處理。
精度受控的IALU 12將所產(chǎn)生的結(jié)果存儲于包括在處理器10中的結(jié)果寄存器32中。 結(jié)果寄存器32具有足夠用于存儲全精度結(jié)果的位寬度。對于單精度結(jié)果來說,寄存器 32含有用于存儲全精度小數(shù)結(jié)果的23位位置(其中x-23)。算術(shù)邏輯電路26在將結(jié)果 存儲于寄存器32中時(shí)可填補(bǔ)亞精度結(jié)果,因此確保寄存器32的內(nèi)容具有對應(yīng)于全精度 的經(jīng)填補(bǔ)位寬度。在一實(shí)施例中,算術(shù)邏輯電路26通過將足夠數(shù)量的邏輯0位附加到 亞精度結(jié)果而填補(bǔ)所述結(jié)果,使得所述經(jīng)填補(bǔ)的亞精度結(jié)果具有等效于全精度的位寬 度。IALU12可將亞精度結(jié)果存儲在結(jié)果寄存器32中,然而,x-n寄存器位將并非有效 的,其中11=大于PBP值的有效位的位位置。或者,IALU 12將亞精度結(jié)果存儲在另一 結(jié)果寄存器(未圖示)中,其中另一寄存器的位寬度對應(yīng)于PBP值。
算術(shù)邏輯電路26可舍位一個(gè)或一個(gè)以上運(yùn)算數(shù)最低有效位(LSB),使得經(jīng)舍位的 運(yùn)算數(shù)具有小于全運(yùn)算數(shù)精度且大于或等于與PBP值相關(guān)聯(lián)的精度的位精度。算術(shù)邏輯 電路26響應(yīng)于從精度控制電路14接收的舍位值(TRUNC)而舍位一個(gè)或一個(gè)以上運(yùn)算 數(shù)LSB。精度控制電路14從PBP寄存器16或從一個(gè)或一個(gè)以上指令獲得舍位值。在一 實(shí)例中,算術(shù)邏輯電路26通過掩蔽一個(gè)或一個(gè)以上運(yùn)算數(shù)LSB來舍位所述運(yùn)算數(shù)LSB。
圖4說明精度受控的IALU 12的另一實(shí)施例,其中IALU 12進(jìn)一步包括用于舍入由 算術(shù)邏輯電路26產(chǎn)生的舍入結(jié)果的舍入邏輯34。在此實(shí)施例中,算術(shù)邏輯電路26包含 單精度除法器36和用于臨時(shí)保持商結(jié)果的商寄存器38。常規(guī)舍入邏輯實(shí)施用于刪除結(jié) 果的LSB并調(diào)整所保留位的一個(gè)或一個(gè)以上舍入算法。舉例來說,常規(guī)舍入邏輯實(shí)施以 下舍入算法中的一者或一者以上舍入到最接近的偶數(shù)、舍入到0、向上舍入和/或向下 舍入。保護(hù)、舍入和粘性位可用于輔助舍入過程。然而,常規(guī)舍入電路難以舍入亞精度 結(jié)果。在與亞精度結(jié)果相關(guān)聯(lián)的位精度改變(例如,響應(yīng)于PBP值的動(dòng)態(tài)變化)、因此 致使所述結(jié)果的LSB、保護(hù)、舍入和粘性位移動(dòng)位置時(shí),此尤其如此。包括于精度受控的IALU 12中的舍入邏輯34通過識別特定亞精度結(jié)果的LSB來計(jì) 及包括動(dòng)態(tài)可變位精度在內(nèi)的與亞精度結(jié)果相關(guān)聯(lián)的位精度。舍入邏輯34通過使舍入 值與亞精度結(jié)果的LSB對準(zhǔn),因此實(shí)現(xiàn)所述結(jié)果的適當(dāng)舍入來計(jì)及所述LSB。舍入邏輯 34包括舍入電路40和加法器42。舍入電路40處理PBP值以確定與特定結(jié)果相關(guān)聯(lián)的 哪一位位置將被有條件地遞增。舉例來說,響應(yīng)于PBP值,舍入電路40識別存儲于商 寄存器38中的將被有條件地遞增的結(jié)果的LSB。在一實(shí)施例中,舍入電路40包含移位 器。如圖5的步驟200所說明,所述移位器移動(dòng)或移位舍入值,使得所述舍入值與特定 亞精度結(jié)果的LSB對準(zhǔn)??赏ㄟ^將邏輯1值移位到對應(yīng)于PBP值的LSB的位位置而對 準(zhǔn)所述舍入值。同樣,所述舍入值包含除了對應(yīng)于對應(yīng)結(jié)果的LSB的位位置以外具有所 有邏輯0的位模式。接著將經(jīng)移位的舍入值提供到加法器42作為運(yùn)算數(shù)。由算術(shù)邏輯 電路26產(chǎn)生的亞精度結(jié)果充當(dāng)另一運(yùn)算數(shù),例如,存儲于商寄存器38中的結(jié)果。如圖 5的步驟202所說明,加法器42有條件地將經(jīng)移位的舍入值加到由算術(shù)邏輯電路26產(chǎn) 生的結(jié)果以產(chǎn)生精確舍入的結(jié)果。所屬領(lǐng)域的技術(shù)人員將了解,可基于LSB、保護(hù)、舍 入和粘性位結(jié)合使用各種已知有條件遞增技術(shù)中的一者的舍入模式來對結(jié)果進(jìn)行舍入, 所述有條件遞增技術(shù)中的每一者屬于本文所揭示的實(shí)施例的范圍內(nèi)。
在另一實(shí)施例中,舍入電路40包含用于使舍入值與亞精度結(jié)果的LSB對準(zhǔn)因此實(shí) 現(xiàn)所述結(jié)果的適當(dāng)舍入的解碼器。如圖6的步驟300所說明,所述解碼器接收PBP值并 產(chǎn)生對應(yīng)于PBP值的舍入值。在一實(shí)施例中,舍入值包含除了對應(yīng)于PBP值的LSB的 位位置外具有所有邏輯0的位模式。對應(yīng)子PBP值的LSB的舍入值的位位置包含邏輯1。 接著將所述舍入值提供到加法器42作為運(yùn)算數(shù),F(xiàn)l由算術(shù)邏輯電路26產(chǎn)生的結(jié)果充當(dāng) 另一運(yùn)算數(shù)。如圖6的步驟302所說明,加法器42有條件地將所述舍入值加到由算術(shù) 邏輯電路26產(chǎn)生的結(jié)果以產(chǎn)生精確舍入結(jié)果。因此,通過適當(dāng)?shù)匾莆簧崛胫祷蚪獯aPBP 值以產(chǎn)生舍入運(yùn)算數(shù)且有條件地將所述舍入運(yùn)算數(shù)加到對應(yīng)結(jié)果,精度受控的IALU 12 能夠產(chǎn)生精確的亞精度結(jié)果。
牢記上述范圍的變化和應(yīng)用,應(yīng)理解,本揭示案不受前述描述限制,也不受附圖限 制。而是,本揭示案僅受所附權(quán)利要求書和其法定等效物限制。
權(quán)利要求
1. 一種在處理器中執(zhí)行迭代算術(shù)運(yùn)算的方法,其包含以迭代方式處理第一位精度的運(yùn)算數(shù)以獲得一結(jié)果;以及在所述結(jié)果實(shí)現(xiàn)小于所述第一位精度的經(jīng)編程第二位精度時(shí)終止所述迭代處理。
2. 根據(jù)權(quán)利要求1所述的方法,其進(jìn)一步包含填補(bǔ)所述結(jié)果,使得所述經(jīng)填補(bǔ)的結(jié)果 具有對應(yīng)于所述第一位精度的位寬度。
3. 根據(jù)權(quán)利要求2所述的方法,其中填補(bǔ)所述結(jié)果以使得所述經(jīng)填補(bǔ)的結(jié)果具有對應(yīng) 于所述第一位精度的位寬度包含將一個(gè)或一個(gè)以上邏輯O位附加到所述結(jié)果。
4. 根據(jù)權(quán)利要求1所述的方法,其進(jìn)一步包含將所述結(jié)果存儲在具有小于所述第一位 精度的位寬度的寄存器中。
5. 根據(jù)權(quán)利要求1所述的方法,其進(jìn)一步包含在開始所述迭代處理之前舍位所述運(yùn)算 數(shù)的一個(gè)或一個(gè)以上最低有效位(LSB),使得所述經(jīng)舍位的運(yùn)算數(shù)具有小于所述 第一位精度且大于或等于所述經(jīng)編程第二位精度的位精度。
6. 根據(jù)權(quán)利要求5所述的方法,其中舍位所述運(yùn)算數(shù)LSB中的一者或一者以上包含 掩蔽所述運(yùn)算數(shù)LSB中的一者或一者以上。
7. 根據(jù)權(quán)利要求1所述的方法,其進(jìn)一步包含舍入所述結(jié)果。
8. 根據(jù)權(quán)利要求7所述的方法,其中舍入所述結(jié)果包含-使舍入值與所述結(jié)果的最低有效位(LSB)對準(zhǔn);以及 有條件地將所述經(jīng)對準(zhǔn)的舍入值加到所述結(jié)果。
9. 根據(jù)權(quán)利要求8所述的方法,其中使所述舍入值與所述結(jié)果的所述LSB對準(zhǔn)包含 移位所述舍入值以使得所述舍入值具有位于對應(yīng)于所述結(jié)果的所述LSB的位位置 處的邏輯1。
10. 根據(jù)權(quán)利要求8所述的方法,其中使所述舍入值與所述結(jié)果的所述LSB對準(zhǔn)包含 解碼所述第二經(jīng)編程位精度以產(chǎn)生舍入運(yùn)算數(shù)。
11. 根據(jù)權(quán)利要求1所述的方法,其進(jìn)一步包含響應(yīng)于包括在所述處理器中的寄存器的 內(nèi)容的改變來修改所述經(jīng)編程第二位精度。
12. 根據(jù)權(quán)利要求1所述的方法,其進(jìn)一步包含響應(yīng)于由所述處理器接收到的一個(gè)或一 個(gè)以上指令來修改所述經(jīng)編程第二位精度。
13. —種用于處理器中的迭代算術(shù)邏輯單元,其包含算術(shù)邏輯電路,其經(jīng)配置而以迭代方式處理第一位精度的運(yùn)算數(shù)以獲得一結(jié)果;以及精度控制電路,其經(jīng)配置以在所述結(jié)果實(shí)現(xiàn)小于所述第一位精度的經(jīng)編程第二位 精度時(shí)終止所述迭代處理。
14. 根據(jù)權(quán)利要求13所述的迭代算術(shù)邏輯單元,其中所述算術(shù)邏輯電路進(jìn)一步經(jīng)配置 以填補(bǔ)所述結(jié)果,使得所述經(jīng)填補(bǔ)的結(jié)果具有對應(yīng)于所述第一位精度的位寬度。
15. 根據(jù)權(quán)利要求14所述的迭代算術(shù)邏輯單元,其中所述算術(shù)邏輯電路經(jīng)配置以通過 將一個(gè)或一個(gè)以上邏輯O位附加到所述結(jié)果而填補(bǔ)所述結(jié)果,使得所述經(jīng)填補(bǔ)的結(jié) 果具有對應(yīng)于所述第一位精度的位寬度。
16. 根據(jù)權(quán)利要求13所述的迭代算術(shù)邏輯單元,其中所述算術(shù)邏輯電路進(jìn)一步經(jīng)配置 以舍位所述運(yùn)算數(shù)的一個(gè)或一個(gè)以上最低有效位(LSB),使得所述經(jīng)舍位的運(yùn)算 數(shù)具有小于所述第一位精度且大于或等于所述經(jīng)編程第二位精度的位精度。
17. 根據(jù)權(quán)利要求16所述的迭代算術(shù)邏輯單元,其中所述算術(shù)邏輯電路經(jīng)配置以通過 掩蔽所述運(yùn)算數(shù)LSB中的一者或一者以上來舍位所述運(yùn)算數(shù)LSB中的一者或一者 以上。
18.根據(jù)權(quán)利要求13所述的迭代算術(shù)邏輯單元,其進(jìn)一步包含經(jīng)配置以舍入所述結(jié)果 的舍入邏輯。
19. 根據(jù)權(quán)利要求18所述的迭代算術(shù)邏輯單元,其中所述舍入邏輯經(jīng)配置以通過使舍 入值與所述結(jié)果的最低有效位(LSB)對準(zhǔn)以及有條件地將所述經(jīng)對準(zhǔn)的舍入值加 到所述結(jié)果來舍入所述結(jié)果。
20. 根據(jù)權(quán)利要求19所述的迭代算術(shù)邏輯單元,其中所述舍入邏輯經(jīng)配置以通過移位 所述舍入值來使所述舍入值與所述結(jié)果的所述LSB對準(zhǔn),使得所述舍入值具有位 于對應(yīng)于所述結(jié)果的所述LSB的位位置處的邏輯1。
21. 根據(jù)權(quán)利要求19所述的迭代算術(shù)邏輯單元,其中所述舍入邏輯經(jīng)配置以通過解碼 所述第二經(jīng)編程位精度以產(chǎn)生舍入運(yùn)算數(shù)來使所述舍入值與所述結(jié)果的所述LSB 對準(zhǔn)。
22. 根據(jù)權(quán)利要求13所述的迭代算術(shù)邏輯單元,其中所述精度控制電路經(jīng)配置以響應(yīng) 于由所述精度控制電路接收到的指示符而終止所述迭代處理。
23. —種處理器,其包含迭代算術(shù)邏輯單元,所述迭代算術(shù)邏輯單元經(jīng)配置而以迭代方 式處理第一位精度的運(yùn)算數(shù)以獲得一結(jié)果,且在所述結(jié)果實(shí)現(xiàn)小于所述第一位精度 的經(jīng)編程第二位精度時(shí)終止所述迭代處理。
24. 根據(jù)權(quán)利要求23所述的處理器,其中所述迭代算術(shù)邏輯單元進(jìn)一步經(jīng)配置以填補(bǔ) 所述結(jié)果,使得所述經(jīng)填補(bǔ)的結(jié)果具有對應(yīng)于所述第一位精度的位寬度。
25. 根據(jù)權(quán)利要求23所述的處理器,其進(jìn)一步包含用于存儲所述結(jié)果的寄存器,所述 寄存器具有小于所述第一位精度的位寬度。
26. 根據(jù)權(quán)利要求23所述的處理器,其中所述迭代算術(shù)邏輯單元進(jìn)一步經(jīng)配置以舍入 所述結(jié)果。
27. 根據(jù)權(quán)利要求26所述的處理器,其中所述迭代算術(shù)邏輯單元經(jīng)配置以通過使舍入 值與所述結(jié)果的最低有效位(LSB)對準(zhǔn)以及有條件地將所述經(jīng)對準(zhǔn)的舍入值加到 所述結(jié)果而舍入所述結(jié)果。
28. 根據(jù)權(quán)利要求27所述的處理器,其中所述迭代算術(shù)邏輯單元經(jīng)配置以通過移位所 述舍入值來使所述舍入值與所述結(jié)果的所述LSB對準(zhǔn),使得所述舍入值具有位于 對應(yīng)于所述結(jié)果的所述LSB的位位置處的邏輯1。
29. 根據(jù)權(quán)利要求27所述的處理器,其中所述迭代算術(shù)邏輯單元經(jīng)配置以通過解碼所 述第二經(jīng)編程位精度以產(chǎn)生舍入運(yùn)算數(shù)來使所述舍入值與所述結(jié)果的所述LSB對 準(zhǔn)。
30. 根據(jù)權(quán)利要求23所述的處理器,其進(jìn)一步包含存儲元件,所述存儲元件經(jīng)配置以 將所述經(jīng)編程第二位精度存儲為固定值或存儲為動(dòng)態(tài)可變值。
31. 根據(jù)權(quán)利要求30所述的處理器,其中響應(yīng)于由所述處理器接收到的一個(gè)或一個(gè)以 上指令而修改所述存儲的動(dòng)態(tài)可變值。
32. 根據(jù)權(quán)利要求23所述的處理器,其中所述算術(shù)邏輯單元響應(yīng)于由所述處理器接收 到的指示符而終止所述迭代處理。
33. 根據(jù)權(quán)利要求32所述的處理器,其中所述指示符包含存儲于包括在所述處理器中 的寄存器中的旗標(biāo)位。
全文摘要
一種包括在處理器中的精度受控的迭代算術(shù)邏輯單元(IALU)產(chǎn)生亞精度結(jié)果,即,具有小于全精度的位精度的結(jié)果。在一實(shí)施例中,所述精度受控的IALU包含算術(shù)邏輯電路和精度控制電路。所述算術(shù)邏輯電路經(jīng)配置而以迭代方式處理第一位精度的運(yùn)算數(shù)以獲得一結(jié)果。所述精度控制電路經(jīng)配置以在所述結(jié)果達(dá)到小于所述第一位精度的經(jīng)編程第二位精度時(shí)終止所述迭代運(yùn)算數(shù)處理。在一實(shí)施例中,所述精度控制電路響應(yīng)于由所述控制電路接收到的指示符而致使所述算術(shù)邏輯電路終止所述迭代運(yùn)算數(shù)處理。所述精度受控的IALU進(jìn)一步包含經(jīng)配置以舍入所述亞精度結(jié)果的舍入邏輯。
文檔編號G06F7/499GK101432689SQ200780015639
公開日2009年5月13日 申請日期2007年4月20日 優(yōu)先權(quán)日2006年5月5日
發(fā)明者肯尼思·艾倫·多克塞爾 申請人:高通股份有限公司