專利名稱:用于執(zhí)行浮點(diǎn)除法的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本公開大體上涉及一種用于執(zhí)行浮點(diǎn)除法的方法和裝置。
背景技術(shù):
針對(duì)如計(jì)算機(jī)圖形和非圖形計(jì)算機(jī)處理和計(jì)算的應(yīng)用,已經(jīng)在不同的計(jì)算機(jī)體系結(jié)構(gòu)中以各種方式處理浮點(diǎn)數(shù)除法。例如,浮點(diǎn)除法用于在三維(3D)圖形建模和繪制中計(jì)算逆矩陣以產(chǎn)生3D圖形對(duì)象供輸出到顯示屏,或由平均(均值)濾波器使用來(lái)使圖像數(shù)據(jù)平滑和消除噪聲。浮點(diǎn)除法也用于數(shù)值算法,例如,特征向量和特征值的計(jì)算、線性函數(shù)或多項(xiàng)式的插值以及超越函數(shù)、有理函數(shù)和偏微分方程式的計(jì)算。許多指令集體系結(jié)構(gòu)(ISA)定義了用于執(zhí)行浮點(diǎn)除法運(yùn)算的計(jì)算機(jī)指令。作為電氣和電子工程師協(xié)會(huì)(IEEE)浮點(diǎn)算術(shù)標(biāo)準(zhǔn)(IEEE754,下文稱為“IEEE標(biāo)準(zhǔn)754”)的一部分,浮點(diǎn)除法運(yùn)算在許多方面被定義。對(duì)于符合IEEE標(biāo)準(zhǔn)754的ISA,除對(duì)商進(jìn)行數(shù)值計(jì)算之外,浮點(diǎn)除法的特例(例如,分子的無(wú)限或不定值和分母的無(wú)限、不定或零值)必須被識(shí)別并適當(dāng)?shù)靥幚?,這可能需要實(shí)質(zhì)性的邏輯運(yùn)算??梢允褂眠壿嬰娐泛臀⒋a來(lái)完全實(shí)施用于浮點(diǎn)除法的這些指令。
圖1示出在中央處理單元(CPU) 100中執(zhí)行浮點(diǎn)除法運(yùn)算的實(shí)例。CPU100包括具有專用浮點(diǎn)除法器104的浮點(diǎn)算術(shù)邏輯單元(ALU) 102。浮點(diǎn)ALU102可以執(zhí)行存儲(chǔ)在存儲(chǔ)器108中的DIVPD(緊縮雙精度浮點(diǎn)除法)指令106,在由CPU100執(zhí)行時(shí)DIVPD指令106使浮點(diǎn)除法器104執(zhí)行浮點(diǎn)除法運(yùn)算??梢詮募拇嫫?10讀出浮點(diǎn)除法運(yùn)算的分子和分母,并且可以將結(jié)果寫入到寄存器110中。具體來(lái)說,商的數(shù)值計(jì)算和特例檢查和校正的功能全部由浮點(diǎn)除法器104以及Divro指令106實(shí)施。由于浮點(diǎn)除法比其他浮點(diǎn)運(yùn)算復(fù)雜的性質(zhì),故浮點(diǎn)除法器104由大量的晶體管組成,由此增加了 CPUlOO的成本和占模面積。尤其地,因?yàn)楦↑c(diǎn)除法器104的數(shù)量取決于CPUlOO中的“核心”的數(shù)量,所以在試圖將同一浮點(diǎn)除法器104和指令106應(yīng)用于圖形處理單元(GPU)或GPU上的通用計(jì)算(GPGPU)設(shè)計(jì)時(shí),由于與CPU相比GPU或GPGPU通常具有用于并行流處理的更大量的“核心”的事實(shí),這樣的問題會(huì)進(jìn)一步加劇。另一方面,在認(rèn)識(shí)到使用專用邏輯電路和指令完全實(shí)施浮點(diǎn)除法運(yùn)算的問題后,一些計(jì)算機(jī)體系結(jié)構(gòu)完全地省略了專用的浮點(diǎn)除法指令。這些計(jì)算機(jī)體系結(jié)構(gòu)轉(zhuǎn)而使用已知的迭代算法(例如,牛頓-拉弗森方法)而不使用專用浮點(diǎn)除法指令和浮點(diǎn)除法器來(lái)實(shí)施浮點(diǎn)除法運(yùn)算。例如,圖2示出使用存儲(chǔ)在存儲(chǔ)器202中的指令(包括至少一個(gè)浮點(diǎn)加法/減法指令204和浮點(diǎn)乘法指令206)以及不具有專用浮點(diǎn)除法器的一個(gè)或多個(gè)浮點(diǎn)ALU212中的一個(gè)或多個(gè)浮點(diǎn)加法器/減法器208和浮點(diǎn)乘法器210來(lái)在GPU200中實(shí)施浮點(diǎn)除法運(yùn)算的實(shí)例。在這個(gè)實(shí)例中,根據(jù)快速收斂的使用浮點(diǎn)加法/減法和乘法運(yùn)算的逐次近似計(jì)算法,對(duì)浮點(diǎn)除法的商進(jìn)行數(shù)值計(jì)算。與圖1中所示的專用浮點(diǎn)除法器104和指令106相比,圖2中的浮點(diǎn)加法器/減法器208和浮點(diǎn)乘法器210的設(shè)計(jì)不那么復(fù)雜。因此,這些計(jì)算機(jī)體系結(jié)構(gòu)就浮點(diǎn)除法運(yùn)算來(lái)說更具成本效益。然而,迭代算法只對(duì)浮點(diǎn)除法的商進(jìn)行數(shù)值計(jì)算。如上文所述,為了符合IEEE標(biāo)準(zhǔn)754,需要如條件指令(例如,條件移動(dòng)、條件轉(zhuǎn)移和條件陷阱)和邏輯指令214的額外的指令來(lái)識(shí)別和處理浮點(diǎn)除法的特例。在這種情況下,由于增加了特例檢查和校正的功能,浮點(diǎn)除法運(yùn)算的執(zhí)行時(shí)間從而大大增加。例如,圖2中的浮點(diǎn)除法運(yùn)算可能需要多達(dá)30個(gè)額外的條件和邏輯指令214,這些指令需要多達(dá)30個(gè)時(shí)鐘周期來(lái)執(zhí)行。因此,盡管在圖2中設(shè)計(jì)的復(fù)雜性和成本降低了,但是浮點(diǎn)除法運(yùn)算的執(zhí)行時(shí)間增加了,以便符合IEEE標(biāo)準(zhǔn)754中特例處理的要求。此外,除提供浮點(diǎn)除法結(jié)果之外,IEEE標(biāo)準(zhǔn)754也定義了在出現(xiàn)時(shí)應(yīng)通知的異常(例如,無(wú)效運(yùn)算、除數(shù)為零等)。信號(hào)為被通知的異常調(diào)用默認(rèn)或替代處理,例如,啟用陷阱序列的處理,這將中斷正常的指令執(zhí)行流。對(duì)于每種異常,實(shí)施方案應(yīng)提供對(duì)應(yīng)的狀態(tài)標(biāo)志。一些計(jì)算機(jī)體系結(jié)構(gòu)盡管具有特例檢查和校正的功能,但是缺少異常狀態(tài)標(biāo)志,因此不完全符合IEEE標(biāo)準(zhǔn)754。因此,需要用于執(zhí)行浮點(diǎn)除法的改進(jìn)的方法和裝置。附圖簡(jiǎn)述鑒于以下圖式隨附的以下描述,將更容易理解實(shí)施方案,其中相同的參考數(shù)字表示相同的元件,其中:圖1為圖示在中央處理單元中實(shí)施浮點(diǎn)除法運(yùn)算的一個(gè)實(shí)例的方框圖;圖2為圖示在圖形處理單元中實(shí)施浮點(diǎn)除法運(yùn)算的一個(gè)實(shí)例的方框圖;圖3為圖示根據(jù)本公開中陳述的一個(gè)實(shí)施方案的包括輸入檢查/輸出校正浮點(diǎn)除法邏輯的裝置的一個(gè)實(shí)例的方框圖;圖4為圖示圖3中所示的輸入檢查/輸出校正浮點(diǎn)除法邏輯的一個(gè)實(shí)例的方框圖;圖5為圖3中所示的浮點(diǎn)除法修復(fù)指令的示例性指令格式;圖6為圖3中所示的浮點(diǎn)除法修復(fù)指令的另一示例性指令格式;圖7為圖3中所示的任意位模式的示例性格式;圖8為圖示根據(jù)本公開中陳述的一個(gè)實(shí)施方案的用于執(zhí)行浮點(diǎn)除法的方法的一個(gè)實(shí)例的流程圖;圖9為圖示用于執(zhí)行浮點(diǎn)除法的方法的另一實(shí)例的流程圖;以及圖10為圖示用于執(zhí)行浮點(diǎn)除法的方法的又一實(shí)例的流程圖。
具體實(shí)施例方式簡(jiǎn)言之,在一個(gè)實(shí)例中,一種方法和裝置使用浮點(diǎn)除法修復(fù)指令(例如,指令、命令、信號(hào)或其他指示符)來(lái)執(zhí)行浮點(diǎn)除法,浮點(diǎn)除法修復(fù)指令使輸入檢查/輸出校正浮點(diǎn)除法邏輯檢查表示分子的第一輸入和表示分母的第二輸入以確定是否出現(xiàn)浮點(diǎn)除法的特例。另外,輸入檢查/輸出校正浮點(diǎn)除法邏輯基于所確定的浮點(diǎn)除法的特例和表示候選商的第三輸入提供表示浮點(diǎn)除法結(jié)果的輸出。例如,浮點(diǎn)除法修復(fù)指令可以是在一個(gè)時(shí)鐘周期中執(zhí)行的單一指令,或包含輸入檢查指令和輸出校正指令,其中每個(gè)指令在一個(gè)時(shí)鐘周期中執(zhí)行。輸入檢查/輸出校正浮點(diǎn)除法邏輯可以是例如圖形處理單元的一部分。除了其他的優(yōu)勢(shì),例如,用于執(zhí)行浮點(diǎn)除法的方法和裝置提供使浮點(diǎn)除法的實(shí)施能夠更短暫且更快速同時(shí)仍符合IEEE標(biāo)準(zhǔn)754的能力。仍使用現(xiàn)有的浮點(diǎn)加法器/減法器和乘法器以及對(duì)應(yīng)的指令通過迭代算法來(lái)計(jì)算浮點(diǎn)除法的數(shù)值部分,由此使本方法和裝置具有成本效益。另一方面,通過應(yīng)用輸入檢查/輸出校正浮點(diǎn)除法邏輯和對(duì)應(yīng)的浮點(diǎn)除法修復(fù)指令,可以替換用于識(shí)別和處理浮點(diǎn)除法的特例的多個(gè)耗時(shí)的條件和邏輯指令(多達(dá)30個(gè)指令),以便減少執(zhí)行時(shí)間。在一個(gè)實(shí)例中,裝置包括具有浮點(diǎn)算術(shù)邏輯單元的處理器,浮點(diǎn)算術(shù)邏輯單元包括輸入檢查/輸出校正浮點(diǎn)除法邏輯。輸入檢查/輸出校正浮點(diǎn)除法邏輯響應(yīng)于可由浮點(diǎn)算術(shù)邏輯單元執(zhí)行的浮點(diǎn)除法修復(fù)指令,浮點(diǎn)除法修復(fù)指令使輸入檢查/輸出校正浮點(diǎn)除法邏輯檢查表示分子的第一輸入和表示分母的第二輸入以確定是否出現(xiàn)浮點(diǎn)除法的特例。浮點(diǎn)除法修復(fù)指令也使輸入檢查/輸出校正浮點(diǎn)除法邏輯基于所確定的浮點(diǎn)除法的特例和表示候選商的第三輸入提供表示浮點(diǎn)除法結(jié)果的輸出。輸入檢查/輸出校正浮點(diǎn)除法邏輯可以包括多個(gè)特例檢測(cè)電路,其可操作以檢查表示分子的第一輸入和表示分母的第二輸入以確定是否出現(xiàn)浮點(diǎn)除法的特例。這多個(gè)特例檢測(cè)電路可以包括可操作以確定分子或分母是否為非數(shù)的非數(shù)檢測(cè)電路、可操作以確定分子或分母是否為零的零檢測(cè)電路以及可操作以確定分子或分母是否為無(wú)窮大的無(wú)窮大檢測(cè)電路。這多個(gè)特例檢測(cè)電路還可以包括溢出/下溢檢測(cè)電路,其可操作以基于分子和分母確定是否出現(xiàn)溢出或下溢。輸入檢查/輸出校正浮點(diǎn)除法邏輯還可以包括優(yōu)先級(jí)多路復(fù)用器,其可操作以基于所確定的浮點(diǎn)除法的特例和表示候選商的第三輸入提供表示浮點(diǎn)除法結(jié)果的輸出。處理器可以包括多個(gè)寄存器,其可操作以存儲(chǔ)分子、分母、候選商和浮點(diǎn)除法結(jié)果。浮點(diǎn)算術(shù)邏輯單元也可以包括至少一個(gè)浮點(diǎn)加法器/減法器和至少一個(gè)浮點(diǎn)乘法器。該至少一個(gè)浮點(diǎn)加法器/減法器和浮點(diǎn)乘法器響應(yīng)于可由浮點(diǎn)算術(shù)邏輯單元執(zhí)行的多個(gè)指令,這些指令使至少一個(gè)浮點(diǎn)加法器/減法器和浮點(diǎn)乘法器基于分子和分母對(duì)候選商進(jìn)行數(shù)值計(jì)算,而不考慮浮點(diǎn)除法的特例。輸入檢查/輸出校正浮點(diǎn)除法邏輯可以進(jìn)一步響應(yīng)于可由浮點(diǎn)算術(shù)邏輯單元執(zhí)行的浮點(diǎn)除法修復(fù)指令,浮點(diǎn)除法修復(fù)指令使輸入檢查/輸出校正浮點(diǎn)除法邏輯在不出現(xiàn)浮點(diǎn)除法的特例的情況下提供候選商作為表示浮點(diǎn)除法結(jié)果的輸出。輸入檢查/輸出校正浮點(diǎn)除法邏輯也可以響應(yīng)于可由浮點(diǎn)算術(shù)邏輯單元執(zhí)行的浮點(diǎn)除法修復(fù)指令,浮點(diǎn)除法修復(fù)指令使輸入檢查/輸出校正浮點(diǎn)除法邏輯在出現(xiàn)浮點(diǎn)除法的特例的情況下提供浮點(diǎn)除法的對(duì)應(yīng)的特殊值作為表示浮點(diǎn)除法結(jié)果的輸出。浮點(diǎn)除法的特殊值可以選自非數(shù)、零、無(wú)窮大、最大浮點(diǎn)常數(shù)和最小浮點(diǎn)常數(shù)中的至少一個(gè)。在一個(gè)實(shí)例中,輸入檢查/輸出校正浮點(diǎn)除法邏輯包括符號(hào)位設(shè)置邏輯,其可操作地與優(yōu)先級(jí)多路復(fù)用器連接且可操作以基于表示分子的第一輸入的符號(hào)位和表示分母的第二輸入的符號(hào)位設(shè)置表示浮點(diǎn)除法結(jié)果的輸出的符號(hào)位。在另一實(shí)例中,表示浮點(diǎn)除法結(jié)果的輸出為輸入檢查/輸出校正浮點(diǎn)除法邏輯的第一輸出。輸入檢查/輸出校正浮點(diǎn)除法邏輯也包括異常標(biāo)志邏輯,其可操作以基于表示分子的第一輸入和表示分母的第二輸入確定異常狀態(tài)標(biāo)志。異常標(biāo)志邏輯進(jìn)一步可操作以提供輸入檢查/輸出校正浮點(diǎn)除法邏輯的表示異常狀態(tài)標(biāo)志的第二輸出。在又一實(shí)例中,輸入檢查/輸出校正浮點(diǎn)除法邏輯包括任意位模式編碼器,其可操作以編碼指示是否出現(xiàn)浮點(diǎn)除法的特例的任意位模式。任意位模式編碼器進(jìn)一步可操作以將任意位模式存儲(chǔ)在多個(gè)寄存器中的一個(gè)中。除了其他的優(yōu)勢(shì),用于執(zhí)行浮點(diǎn)除法的本方法和裝置提供使浮點(diǎn)除法的實(shí)施能夠更短暫且更快速同時(shí)仍符合IEEE標(biāo)準(zhǔn)754的能力。仍使用現(xiàn)有的浮點(diǎn)加法器/減法器和乘法器以及對(duì)應(yīng)的指令通過迭代算法來(lái)計(jì)算浮點(diǎn)除法的數(shù)值部分,由此使本方法和裝置具有成本效益。另一方面,通過應(yīng)用輸入檢查/輸出校正浮點(diǎn)除法邏輯和對(duì)應(yīng)的浮點(diǎn)除法修復(fù)指令,可以替換用于識(shí)別和處理浮點(diǎn)除法的特例的多個(gè)耗時(shí)的條件和邏輯指令(多達(dá)30個(gè)指令),以便減少執(zhí)行時(shí)間。因此,提出的技術(shù)可以適合于并行流處理器,例如,單指令多數(shù)據(jù)(SMD)處理器,如用于計(jì)算機(jī)圖形和/或非圖形處理和計(jì)算的圖形處理單元(GPU)和/或GPU上的通用計(jì)算(GPGPU)。此外,用于執(zhí)行浮點(diǎn)除法的本方法和裝置可以符合IEEE標(biāo)準(zhǔn)754。因此,提出的技術(shù)可以保持較低的處理器設(shè)計(jì)和制造成本的益處以及迭代算法實(shí)施的靈活性的益處,同時(shí)具有低指令數(shù)和快的執(zhí)行速度。本領(lǐng)域普通技術(shù)人員將認(rèn)識(shí)到其他優(yōu)勢(shì)。圖3圖示包括集成電路302的裝置300的一個(gè)實(shí)例,集成電路302包括處理器304。例如,裝置300可以是(但不限于)膝上型計(jì)算機(jī)、臺(tái)式計(jì)算機(jī)、媒體中心、手持設(shè)備(例如,移動(dòng)或智能電話、平板計(jì)算機(jī)等)、藍(lán)光(Blu-ray )播放器、游戲控制臺(tái)、機(jī)頂盒、打印機(jī)或任何其他適合的設(shè)備。集成電路302可以是具有一個(gè)或多個(gè)處理器304的任何適合的電路。除處理器304之外,集成電路302也可以包括在本領(lǐng)域中已知的任何其他適合的電路,例如,高速緩沖存儲(chǔ)器和輸入/輸出(I/O)接口電路等。處理器304可以是(但不限于)GPU、中央處理單元(CPU)、GPGPU或加速處理單元(APU)、數(shù)字信號(hào)處理器(DSP)或任何其他適合的處理器。裝置300可以包括一個(gè)或多個(gè)顯示屏306或可操作地與一個(gè)或多個(gè)顯示屏306耦接。例如,處理器304可以是用于產(chǎn)生圖像數(shù)據(jù)308的GPU,圖像數(shù)據(jù)308表示顯示在顯示屏306上的圖像的至少一部分。處理器304可以包括浮點(diǎn)ALU310、寄存器312和存儲(chǔ)器314。寄存器312可以是處理器304上的處理器寄存器或通用寄存器,其內(nèi)容可以比從其他地方可獲得的存儲(chǔ)更快速地被訪問。優(yōu)選地,在這個(gè)實(shí)例中的寄存器312包括存儲(chǔ)浮點(diǎn)數(shù)(例如,浮點(diǎn)分子、分母和商)的浮點(diǎn)寄存器。寄存器312也可以包括存儲(chǔ)當(dāng)前正被執(zhí)行的指令的指令寄存器和用于存儲(chǔ)IEEE標(biāo)準(zhǔn)754所要求的異常狀態(tài)標(biāo)志的控制和狀態(tài)寄存器。浮點(diǎn)ALU310可以讀取或?qū)懭氪鎯?chǔ)在寄存器312中的數(shù)據(jù)。存儲(chǔ)器314可以是在本領(lǐng)域中已知的任何適合的存儲(chǔ)器,其永久或臨時(shí)地存儲(chǔ)可由浮點(diǎn)ALU310執(zhí)行的多個(gè)指令316-320(例如,指令、命令、信號(hào)或其他指示符)。在這個(gè)實(shí)例中,存儲(chǔ)器314為處理器304的指令高速緩存或指令緩沖器以加快可執(zhí)行指令獲取的速度。在其他實(shí)例中,存儲(chǔ)器314也可以是可操作地連接至處理器304的主存儲(chǔ)器。指令316-320包括浮點(diǎn)除法修復(fù)指令316、浮點(diǎn)加法/減法指令318和浮點(diǎn)乘法指令320,以及任何其他適合的指令(若需要)。在這個(gè)實(shí)例中,浮點(diǎn)ALU310為專用于執(zhí)行浮點(diǎn)運(yùn)算的ALU。如圖3中所示,處理器304可以包括執(zhí)行并行浮點(diǎn)運(yùn)算以進(jìn)行流處理的一個(gè)以上的浮點(diǎn)ALU310。浮點(diǎn)ALU310可以接收和執(zhí)行指令,并且根據(jù)指令的執(zhí)行來(lái)執(zhí)行浮點(diǎn)運(yùn)算。浮點(diǎn)ALU310可以包括至少一個(gè)浮點(diǎn)加法器/減法器322和至少一個(gè)浮點(diǎn)乘法器324,其可以響應(yīng)于包括浮點(diǎn)加法/減法指令318和乘法指令320的多個(gè)指令而對(duì)浮點(diǎn)除法的商進(jìn)行數(shù)值計(jì)算。如上所述,浮點(diǎn)加法器/減法器322和乘法器324不識(shí)別和處理浮點(diǎn)除法的特例;并且浮點(diǎn)加法/減法指令318和乘法指令320將分子和分母假設(shè)為正規(guī)數(shù)并執(zhí)行迭代算法以向輸入檢查/輸出校正浮點(diǎn)除法邏輯326提供候選商328。
浮點(diǎn)ALU310包括輸入檢查/輸出校正浮點(diǎn)除法邏輯326。本文中提及的“邏輯”為可以實(shí)現(xiàn)所需功能的任何適合的電路,并且可以是數(shù)字電路、模擬電路、混合模擬-數(shù)字電路或任何適合的電路。輸入檢查/輸出校正浮點(diǎn)除法邏輯326響應(yīng)于可由浮點(diǎn)ALU310執(zhí)行的浮點(diǎn)除法修復(fù)指令316。在這個(gè)實(shí)例中,浮點(diǎn)除法修復(fù)指令316的執(zhí)行使輸入檢查/輸出校正浮點(diǎn)除法邏輯326從寄存器312檢查浮點(diǎn)除法的分子和分母以確定是否出現(xiàn)浮點(diǎn)除法的特例,以及基于所確定的特例和由浮點(diǎn)加法器/減法器322和乘法器324計(jì)算的候選商328提供經(jīng)過校正的浮點(diǎn)除法結(jié)果。圖4圖示輸入檢查/輸出校正浮點(diǎn)除法邏輯326的一個(gè)實(shí)例。輸入檢查/輸出校正浮點(diǎn)除法邏輯326具有至少接收分子400的第一輸入、接收分母402的第二輸入和從寄存器312接收候選商328的第三輸入。必要時(shí),可以直接從浮點(diǎn)加法器/減法器322和乘法器324接收候選商328。分子400、分母402和候選商328為浮點(diǎn)數(shù),例如(但不限于)單精度(32位)浮點(diǎn)數(shù)、雙精度(64位)浮點(diǎn)數(shù)、單擴(kuò)展精度O 43位)浮點(diǎn)數(shù)和雙擴(kuò)展精度
79位)浮點(diǎn)數(shù)。另外,輸入檢查/輸出校正浮點(diǎn)除法邏輯326具有至少提供浮點(diǎn)除法結(jié)果404的第一輸出和向寄存器312或必要時(shí)直接向處理器304中的任何邏輯提供異常狀態(tài)標(biāo)志406的第二輸出。在這個(gè)實(shí)例中,輸入檢查/輸出校正浮點(diǎn)除法邏輯326包括多個(gè)特例檢測(cè)電路408-414,其可操作以檢查分子400和分母402以確定是否出現(xiàn)浮點(diǎn)除法的特例。這多個(gè)特例檢測(cè)電路408-414包括“非數(shù)”(NaN)檢測(cè)電路408、無(wú)窮大(inf)檢測(cè)電路410、零檢測(cè)電路412和溢出/下溢檢測(cè)電路414。特例檢測(cè)電路408-414中的每個(gè)可操作以檢查由IEEE標(biāo)準(zhǔn)754定義的浮點(diǎn)除法的一個(gè)或多個(gè)具體特例。輸入檢查/輸出校正浮點(diǎn)除法邏輯326也可以包括反向規(guī)格化數(shù)(denorm)檢測(cè)電路416,其可操作以檢查分子400或分母402是否為反向規(guī)格化數(shù)。在這個(gè)實(shí)例中,反向規(guī)格化數(shù)檢測(cè)電路416不用于提供浮點(diǎn)除法結(jié)果404,而是用于產(chǎn)生異常狀態(tài)標(biāo)志406??梢詧?zhí)行下文所述的功能的任何組合邏輯可以被用作特例檢測(cè)電路408-414和反向規(guī)格化數(shù)檢測(cè)電路416。例如,NaN檢測(cè)電路408檢查分子400和分母402的指數(shù)和分?jǐn)?shù)位以確定分子400是否為NaN和分母402是否為NaN。NaN檢測(cè)電路408的兩個(gè)輸出分別指 示分子400或分母402是否為NaN。這同樣將適用于inf檢測(cè)電路410和零檢測(cè)電路412。表I匯總了用來(lái)確定浮點(diǎn)數(shù)是否為NaN、inf、零或反向規(guī)格化數(shù)的條件。表I
權(quán)利要求
1.一種集成電路,其包含: 處理器,其包含: 浮點(diǎn)算術(shù)邏輯單元(ALU),其包含響應(yīng)于可由所述浮點(diǎn)ALU執(zhí)行的浮點(diǎn)除法修復(fù)指令的輸入檢查/輸出校正浮點(diǎn)除法邏輯,所述浮點(diǎn)除法修復(fù)指令使所述輸入檢查/輸出校正浮點(diǎn)除法邏輯: 檢查所述輸入檢查/輸出校正浮點(diǎn)除法邏輯的表示分子的第一輸入和表示分母的第二輸入以確定是否出現(xiàn)浮點(diǎn)除法的特例;以及 基于所確定的浮點(diǎn)除法的特例和所述輸入檢查/輸出校正浮點(diǎn)除法邏輯的表示候選商的第三輸入提供所述輸入檢查/輸出校正浮點(diǎn)除法邏輯的表示浮點(diǎn)除法結(jié)果的輸出。
2.如權(quán)利要求1所述的集成電路,其中所述輸入檢查/輸出校正浮點(diǎn)除法邏輯包含: 多個(gè)特例檢測(cè)電路,其可操作以檢查所述輸入檢查/輸出校正浮點(diǎn)除法邏輯的表示所述分子的所述第一輸入和表示所述分母的所述第二輸入以確定是否出現(xiàn)浮點(diǎn)除法的所述特例;以及 優(yōu)先級(jí)多路復(fù)用器,其可操作以基于所確定的浮點(diǎn)除法的特例和所述輸入檢查/輸出校正浮點(diǎn)除法邏輯的表示所述候選商的所述第三輸入提供所述輸入檢查/輸出校正浮點(diǎn)除法邏輯的表示所述浮點(diǎn)除法結(jié)果的所述輸出;且 其中所述處理器進(jìn)一步包含多個(gè)寄存器,其可操作地連接至所述輸入檢查/輸出校正浮點(diǎn)除法邏輯且可操作以存儲(chǔ)所述分子、所述分母、所述候選商和所述浮點(diǎn)除法結(jié)果。
3.如權(quán)利要求1所述的集 成電路,其中所述浮點(diǎn)除法修復(fù)指令為在一個(gè)時(shí)鐘周期中執(zhí)行的單一指令。
4.如權(quán)利要求1所述的集成電路,其中所述浮點(diǎn)除法修復(fù)指令包含輸入檢查指令和輸出校正指令;并且其中所述輸入檢查指令和輸出校正指令中的每個(gè)在一個(gè)時(shí)鐘周期中執(zhí)行。
5.如權(quán)利要求2所述的集成電路,其中所述浮點(diǎn)ALU進(jìn)一步包含至少一個(gè)浮點(diǎn)加法器/減法器和至少一個(gè)浮點(diǎn)乘法器;且 其中所述至少一個(gè)浮點(diǎn)加法器/減法器和浮點(diǎn)乘法器響應(yīng)于可由所述浮點(diǎn)ALU執(zhí)行的多個(gè)指令,所述指令使所述至少一個(gè)浮點(diǎn)加法器/減法器和浮點(diǎn)乘法器基于所述分子和所述分母對(duì)所述候選商進(jìn)行數(shù)值計(jì)算,而不考慮浮點(diǎn)除法的所述特例。
6.如權(quán)利要求5所述的集成電路,其中所述輸入檢查/輸出校正浮點(diǎn)除法邏輯進(jìn)一步響應(yīng)于可由所述浮點(diǎn)ALU執(zhí)行的所述浮點(diǎn)除法修復(fù)指令,所述浮點(diǎn)除法修復(fù)指令使所述輸入檢查/輸出校正浮點(diǎn)除法邏輯在不出現(xiàn)浮點(diǎn)除法的所述特例的情況下提供所述候選商作為所述輸入檢查/輸出校正浮點(diǎn)除法邏輯的表示所述浮點(diǎn)除法結(jié)果的所述輸出。
7.如權(quán)利要求2所述的集成電路,其中所述輸入檢查/輸出校正浮點(diǎn)除法邏輯進(jìn)一步響應(yīng)于可由所述浮點(diǎn)ALU執(zhí)行的所述浮點(diǎn)除法修復(fù)指令,所述浮點(diǎn)除法修復(fù)指令使所述輸入檢查/輸出校正浮點(diǎn)除法邏輯在出現(xiàn)浮點(diǎn)除法的所述特例的情況下提供浮點(diǎn)除法的對(duì)應(yīng)的特殊值作為所述輸入檢查/輸出校正浮點(diǎn)除法邏輯的表示所述浮點(diǎn)除法結(jié)果的所述輸出。
8.如權(quán)利要求7所述的集成電路,其中所述多個(gè)特例檢測(cè)電路包含: 非數(shù)(NaN)檢測(cè)電路,其可操作以確定所述分子或所述分母是否為NaN;零檢測(cè)電路,其可操作以確定所述分子或所述分母是否為零; 無(wú)窮大檢測(cè)電路,其可操作以確定所述分子或所述分母是否為無(wú)窮大;以及溢出/下溢檢測(cè)電路,其可操作以基于所述分子和所述分母確定是否出現(xiàn)溢出或下溢;且 其中浮點(diǎn)除法的所述特殊值選自NaN、零、無(wú)窮大、最大浮點(diǎn)常數(shù)和最小浮點(diǎn)常數(shù)中的至少一個(gè)。
9.如權(quán)利要求2所述的集成電路,其中所述輸入檢查/輸出校正浮點(diǎn)除法邏輯進(jìn)一步包含符號(hào)位設(shè)置邏輯,其可操作地連接至所述優(yōu)先級(jí)多路復(fù)用器,且可操作以基于所述輸入檢查/輸出校正浮點(diǎn)除法邏輯的表示所述分子的所述第一輸入的符號(hào)位和表示所述分母的所述第二輸入的符號(hào)位設(shè)置表示所述浮點(diǎn)除法結(jié)果的所述輸出的符號(hào)位。
10.如權(quán)利要求2所述的集成電路,其中表示所述浮點(diǎn)除法結(jié)果的所述輸出為所述輸入檢查/輸出校正浮點(diǎn)除法邏輯的第一輸出;且 其中所述輸入檢查/輸出校正浮點(diǎn)除法邏輯進(jìn)一步包含異常標(biāo)志邏輯,其可操作以:基于所述輸入檢查/輸出校正浮點(diǎn)除法邏輯的表示所 述分子的所述第一輸入和表示所述分母的所述第二輸入確定異常狀態(tài)標(biāo)志;以及 提供所述輸入檢查/輸出校正浮點(diǎn)除法邏輯的表示所述異常狀態(tài)標(biāo)志的第二輸出。
11.如權(quán)利要求2所述的集成電路,其中所述輸入檢查/輸出校正浮點(diǎn)除法邏輯進(jìn)一步包含任意位模式編碼器,其可操作以: 編碼指示是否出現(xiàn)浮點(diǎn)除法的所述特例的任意位模式;以及 將所述任意位模式存儲(chǔ)在所述多個(gè)寄存器中的一個(gè)中。
12.如權(quán)利要求1所述的集成電路,其中所述輸入檢查/輸出校正浮點(diǎn)除法邏輯為圖形處理單元(GPU)的部分。
13.如權(quán)利要求1所述的集成電路,其中所述處理器可操作以基于所述輸入檢查/輸出校正浮點(diǎn)除法邏輯的表示所述浮點(diǎn)除法結(jié)果的所述輸出產(chǎn)生圖像的至少一部分。
14.一種方法,其包含: 處理浮點(diǎn)除法修復(fù)指令;以及 基于所處理的浮點(diǎn)除法修復(fù)指令,促使輸入檢查/輸出校正浮點(diǎn)除法邏輯: 檢查所述輸入檢查/輸出校正浮點(diǎn)除法邏輯的表示分子的第一輸入和表示分母的第二輸入以確定是否出現(xiàn)浮點(diǎn)除法的特例;以及 基于所確定的浮點(diǎn)除法的特例和所述輸入檢查/輸出校正浮點(diǎn)除法邏輯的表示候選商的第三輸入提供所述輸入檢查/輸出校正浮點(diǎn)除法邏輯的表示浮點(diǎn)除法結(jié)果的輸出。
15.如權(quán)利要求14所述的方法,其中促使包含使所述輸入檢查/輸出校正浮點(diǎn)除法邏輯接收所述輸入檢查/輸出校正浮點(diǎn)除法邏輯的表示所述候選商的所述第三輸入,基于所述分子和所述分母對(duì)所述候選商進(jìn)行數(shù)值計(jì)算,而不考慮浮點(diǎn)除法的所述特例。
16.如權(quán)利要求14所述的方法,其中所述浮點(diǎn)除法修復(fù)指令為在一個(gè)時(shí)鐘周期中執(zhí)行的單一指令。
17.如權(quán)利要求14所述的方法,其中所述浮點(diǎn)除法修復(fù)指令包含輸入檢查指令和輸出校正指令;并且其中所述輸入檢查指令和輸出校正指令中的每個(gè)在一個(gè)時(shí)鐘周期中執(zhí)行。
18.如權(quán)利要求15所述的方法,其中促使包含使所述輸入檢查/輸出校正浮點(diǎn)除法邏輯在不出現(xiàn)浮點(diǎn)除法的所述特例的情況下提供所述候選商作為所述輸入檢查/輸出校正浮點(diǎn)除法邏輯的表示所述浮點(diǎn)除法結(jié)果的所述輸出。
19.如權(quán)利要求14所述的方法,其中促使包含使所述輸入檢查/輸出校正浮點(diǎn)除法邏輯在出現(xiàn)浮點(diǎn)除法的所述特例的情況下提供浮點(diǎn)除法的對(duì)應(yīng)的特殊值作為所述輸入檢查/輸出校正浮點(diǎn)除法邏輯的表示所述浮點(diǎn)除法結(jié)果的所述輸出。
20.如權(quán)利要求14所述的方法,其中促使包含使所述輸入檢查/輸出校正浮點(diǎn)除法邏輯基于所述輸入檢查/輸出校正浮點(diǎn)除法邏輯的表示所述分子的所述第一輸入的符號(hào)位和表示所述分母的所述第二輸入的符號(hào)位設(shè)置所述輸入檢查/輸出校正浮點(diǎn)除法邏輯的表示所述浮點(diǎn)除法結(jié)果的所述輸出的符號(hào)位。
21.如權(quán)利要求14所述的方法,其中表示所述浮點(diǎn)除法結(jié)果的所述輸出為所述輸入檢查/輸出校正浮點(diǎn)除法邏輯的第一輸出;且 其中促使包含使所述輸入檢查/輸出校正浮點(diǎn)除法邏輯: 基于所述輸入檢查/輸出校正浮點(diǎn)除法邏輯的表示所述分子的所述第一輸入和表示所述分母的所述第二輸入確定異常狀態(tài)標(biāo)志;以及 提供所述輸入檢查/輸出校正浮點(diǎn)除法邏輯的表示所述異常狀態(tài)標(biāo)志的第二輸出。
22.如權(quán)利要求14所述的方法,其中促使包含使所述輸入檢查/輸出校正浮點(diǎn)除法邏輯: 編碼指示是否出現(xiàn)浮點(diǎn)除法的所述特例的任意位模式;以及 將所述任意位模式存儲(chǔ)在寄存器中。
23.一種裝置,其包含: 浮點(diǎn)算術(shù)邏輯單元(ALU),其包含響應(yīng)于可由所述浮點(diǎn)ALU執(zhí)行的浮點(diǎn)除法修復(fù)指令的輸入檢查/輸出校正浮點(diǎn)除法邏輯,所述浮點(diǎn)除法修復(fù)指令使所述輸入檢查/輸出校正浮點(diǎn)除法邏輯: 檢查所述輸入檢查/輸出校正浮點(diǎn)除法邏輯的表示分子的第一輸入和表示分母的第二輸入以確定是否出現(xiàn)浮點(diǎn)除法的特例;以及 基于所確定的浮點(diǎn)除法的特例和所述輸入檢查/輸出校正浮點(diǎn)除法邏輯的表示候選商的第三輸入提供所述輸入檢查/輸出校正浮點(diǎn)除法邏輯的表示浮點(diǎn)除法結(jié)果的輸出;且 其中所述裝置可操作以基于所述輸入檢查/輸出校正浮點(diǎn)除法邏輯的表示所述浮點(diǎn)除法結(jié)果的所述輸出產(chǎn)生圖像的至少一部分。
24.一種計(jì)算機(jī)可讀介質(zhì),其存儲(chǔ)可由一個(gè)或多個(gè)集成電路設(shè)計(jì)系統(tǒng)執(zhí)行的指令,所述指令使所述一個(gè)或多個(gè)集成電路設(shè)計(jì)系統(tǒng)設(shè)計(jì)包含處理器的集成電路,所述處理器包含: 浮點(diǎn)算術(shù)邏輯單元(ALU),其包含響應(yīng)于可由所述浮點(diǎn)ALU執(zhí)行的浮點(diǎn)除法修復(fù)指令的輸入檢查/輸出校正浮點(diǎn)除法邏輯,所述浮點(diǎn)除法修復(fù)指令使所述輸入檢查/輸出校正浮點(diǎn)除法邏輯: 檢查所述輸入檢查/輸出校正浮點(diǎn)除法邏輯的表示分子的第一輸入和表示分母的第二輸入以確定是否出現(xiàn)浮點(diǎn)除法的特例;以及 基于所確定的浮點(diǎn)除法的特例和所述輸入檢查/輸出校正浮點(diǎn)除法邏輯的表示候選商的第三輸入提供所述輸入檢查/輸出校正浮點(diǎn)除法邏輯的表示浮點(diǎn)除法結(jié)果的輸出。
全文摘要
一種方法和裝置提供使用輸入檢查/輸出校正浮點(diǎn)除法邏輯和浮點(diǎn)除法修復(fù)指令(例如,指令、命令、信號(hào)或其他指示符)執(zhí)行浮點(diǎn)除法。在一個(gè)實(shí)例中,裝置包括具有浮點(diǎn)算術(shù)邏輯單元(ALU)的處理器,浮點(diǎn)算術(shù)邏輯單元包括輸入檢查/輸出校正浮點(diǎn)除法邏輯。輸入檢查/輸出校正浮點(diǎn)除法邏輯響應(yīng)于可由浮點(diǎn)ALU執(zhí)行的浮點(diǎn)除法修復(fù)指令,浮點(diǎn)除法修復(fù)指令使輸入檢查/輸出校正浮點(diǎn)除法邏輯檢查表示分子的第一輸入和表示分母的第二輸入以確定是否出現(xiàn)浮點(diǎn)除法的特例。浮點(diǎn)除法修復(fù)指令也使輸入檢查/輸出校正浮點(diǎn)除法邏輯基于所確定的浮點(diǎn)除法的特例和表示候選商的第三輸入提供表示浮點(diǎn)除法結(jié)果的輸出。
文檔編號(hào)G06F9/30GK103180820SQ201180051392
公開日2013年6月26日 申請(qǐng)日期2011年9月2日 優(yōu)先權(quán)日2010年9月3日
發(fā)明者詹姆斯·卡寧厄姆, 杰弗里·T·布雷迪, 克里斯托夫·L·斯潘塞 申請(qǐng)人:超威半導(dǎo)體公司