專利名稱:支持ieee浮點(diǎn)運(yùn)算飛速舍入裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種飛速舍入裝置,特別涉及支持IEEE浮點(diǎn)運(yùn)算飛速舍入裝置。 在采用位迭代算法來進(jìn)行浮點(diǎn)除法,開方根運(yùn)算和其他一些在線操作時(shí),為了簡 化倍商的生成,對商經(jīng)常采用冗余形式表示。文獻(xiàn)l "A new class of digital division methods, IRETrans. Electron. Comput. , EC_7 (3) :88-92, Sept.1958.禾口文獻(xiàn)Techniques of multiplication anddivision for automatic binary computers, Quarterly J. of Mechanics and Applied Mathematics, 1958, 11 (3) :364-384."公開了一種經(jīng)典的SRT方
法,該方法的選商范圍為{_a, _a+l, ... , -l,O,l, ...a-l, a},其中^ ^ " < ^ ' r為SRT方法
的基。冗余形式的商有正有負(fù),而最終的商需要常規(guī)下的形式,如補(bǔ)碼或者原碼形式。傳統(tǒng) 的方法是在迭代中,將每步生成的商位保存在正負(fù)兩個(gè)寄存器中,其中正商放在正寄存器 中,負(fù)商放在負(fù)寄存器中。然后在迭代結(jié)束后,將兩個(gè)寄存器的值相加,產(chǎn)生常規(guī)形式下的 結(jié)果。這種方法在硬件電路上需要一個(gè)全位寬的進(jìn)位傳播加法器,時(shí)延上也需要一個(gè)加法 操作的時(shí)延。無論是電路面積和時(shí)延都是代價(jià)昂貴的。 文 獻(xiàn)2 "0n_the_Fly Conversion of Redundant into Conventional Representations, IEEETransactions on Computers, Vol. C_36, No. 7, July 1987,
pp. 895-897."公開了一種飛速轉(zhuǎn)換的方法,使用Q和QM寄存器代替?zhèn)鹘y(tǒng)方法的正,負(fù)寄存 器。其中Q為商值,QM為Q減去1。采用如下公式進(jìn)行商的飛速轉(zhuǎn)換<formula>formula see original document page 4</formula> 其中,Q[k]為第k次迭代時(shí)Q寄存器中的值,QM[k]為第k次迭代時(shí)QM寄存器中 的值,qk為第k次生成的商。 采用文獻(xiàn)2方法,可以在迭代運(yùn)算一結(jié)束就獲得結(jié)果,而且不需要進(jìn)位傳播加法
器,極大地節(jié)省了硬件和時(shí)延。同時(shí)這種方法還提供了額外的好處在位迭代中,余數(shù)有可
能負(fù)。這是,就需要對商減去l來進(jìn)行結(jié)果矯正。而這種方法剛好也提供了商減去1的值,
即QM的值。從而不再需要一個(gè)減1器來執(zhí)行矯正操作,節(jié)省了硬件和時(shí)延。 但是,浮點(diǎn)運(yùn)算還需要進(jìn)行舍入操作,這就可能會(huì)向商的最后位進(jìn)位,這就需要一
個(gè)加1器來執(zhí)行。為了消除這個(gè)加1器帶來的面積和時(shí)延上的影響。 參照圖9。文獻(xiàn)3"0n-the-fly rounding, IEEE Trans. Computer, ,vol.41,no. 12,
pp. 1497-1503, Dec. 1992."公開了一種飛速舍入方法,在文獻(xiàn)2的基礎(chǔ)上增加了一個(gè)寄存
器QP,用來保存Q+l的值,計(jì)算方法為
背景技術(shù):
OT"1]=
、 這種飛速舍入方法很好地解決了舍入時(shí)的加1問題。但是對于IEEE754浮點(diǎn)標(biāo)準(zhǔn) 的舍入操作卻很難提供完全的支持。原因如下 對于IEEE754標(biāo)準(zhǔn)的舍入操作的執(zhí)行,還需要有警戒位,舍入位,粘貼位來支持舍 入操作。其中,粘貼位主要是通過對余數(shù)的計(jì)算來獲得,而警戒位和舍入位需要算術(shù)單元額 外地迭代來產(chǎn)生。例如在SRT2算法下,如果需要n位商結(jié)果,則除了迭代n次外,還需要再 迭代2次來產(chǎn)生警戒位和舍入位。迭代結(jié)束后的商(見圖10a)中,msb是指商的最高位, lsb是指商的最低位,g為警戒位,r為舍入位,總共為n+2位。 考慮在位迭代結(jié)束后的操作。首先進(jìn)行商的矯正,設(shè)矯正完后的結(jié)果為result—c。
則有
, fQ-l , 如果余數(shù)為負(fù) result c - 乂
一1q,如果余數(shù)為正或者零 然后進(jìn)行舍入操作,如果舍入判斷邏輯沒有產(chǎn)生向上進(jìn)位信號(hào),則最終結(jié)果 result_f = result_C。如果舍入判斷邏輯產(chǎn)生向上進(jìn)位信號(hào),因?yàn)樯讨挥衝位有效位,則 當(dāng)msb = 1時(shí),進(jìn)位加在lsb處,艮卩result_f = result_c+4 ;當(dāng)msb = 0時(shí),進(jìn)位加在g處, 即result_f = result—c+2(具體情況見圖10b和圖10c)。再考慮result_c本身有可能是 Q-l或者Q,則最終的商可能存在六種可能Q-1, Q, Q+l, Q+2, Q+3, Q+4。而上述飛速舍入方 法只能生成Q-l, Q, Q+l來供最后的商選擇,顯然無法滿足IEEE754的舍入要求。
再進(jìn)一步對高基迭代算法和不同計(jì)算位寬的情況進(jìn)行分析,可以發(fā)現(xiàn),經(jīng)過矯正 和舍入操作,最終結(jié)果的六種可能形式為Q-l,Q,Q+a-l,Q+a,Q+2a-l,Q+2a。其中Q為迭代 完后的中間結(jié)果,a是大于1的常數(shù),通常是以2為底的指數(shù),其具體大小取決于迭代算法 的基數(shù)和最終結(jié)果位寬的關(guān)系。而文獻(xiàn)3公開的飛速舍入方法無法全部提供這六種可能結(jié) 果供最后的選擇。 綜上,在執(zhí)行位迭代算法的舍入時(shí),公知的飛速舍入裝置只能生成3種可能結(jié)果, 不能適用于基于IEEE754標(biāo)準(zhǔn)的舍入,也無法滿足在高基迭代算法和不同計(jì)算位寬下的舍 入要求。
發(fā)明內(nèi)容
為了克服現(xiàn)有技術(shù)飛速舍入方法有局限性的不足,本發(fā)明提供一種支持IEEE浮
點(diǎn)運(yùn)算飛速舍入裝置,通過改進(jìn)寄存器更新電路和寄存器文件,以及增加拼接電路,可以快
速生成6種滿足IEEE754標(biāo)準(zhǔn)舍入要求的結(jié)果,且這6個(gè)結(jié)果可以覆蓋高基迭代算法和不
同位寬情況下的所有可能的舍入結(jié)果,對這6種結(jié)果進(jìn)行選擇,獲得最終的舍入結(jié)果,可以
滿足高基迭代算法和不同計(jì)算位寬情況下的基于IEEE754標(biāo)準(zhǔn)的飛速舍入要求。 本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案一種支持IEEE浮點(diǎn)運(yùn)算飛速舍入裝
置,包括寄存器,其特點(diǎn)是還包括寄存器文件、寄存器更新電路、余數(shù)網(wǎng)絡(luò)電路、拼接電路、
選商器以及舍入判斷電路;
寄存器文件包括六個(gè)m2位寬的寄存器第一寄存器,第二寄存器,第三寄存器,第 四寄存器,第五寄存器,第六寄存器;五個(gè)1位寬的標(biāo)記寄存器第七寄存器,第八寄存器, 第九寄存器,第十寄存器,第十一寄存器;二個(gè)ml位寬的寄存器第十二寄存器和第十三寄 存器;寄存器位寬為n,則有ml+m2 = n+3,且有m2 = 2+log2a ; 寄存器更新電路根據(jù)迭代每拍的商qk+1生成該拍對應(yīng)的Q-l值,保存至第十二寄 存器和第一寄存器中,其中第一寄存器存放數(shù)據(jù)的低m2位部分,第十二寄存器存放數(shù)據(jù)的 高位部分,且生成該高位部分加1的值,存放至第十三寄存器中,生成Q的低m2位部分,更 新到第二寄存器中;生成Q+a-l的低m2位部分,更新到第三寄存器中;生成Q+a的低m2位 部分,更新到第四寄存器中;生成Q+2a-l的低m2位部分,更新到第五寄存器中;生成Q+2a 的低m2位部分,更新到第六寄存器中;對標(biāo)記寄存器的更新電路功能為如果Q-1的低m2 位為全l,則將第七寄存器置l,否則置0 ;如果Q的低m2位部分加上a-l產(chǎn)生向m2+l位的 進(jìn)位,則將第八寄存器置1,否則置0 ;如果Q的低m2位部分加上a產(chǎn)生向m2+l位的進(jìn)位, 則將第九寄存器置1,否則置0 ;如果Q的低m2位部分加上2a-l產(chǎn)生向m2+l位的進(jìn)位,則 將第十寄存器置1,否則置0 ;如果Q的低m2位部分加上2a產(chǎn)生向m2+l位的進(jìn)位,則將第 十一寄存器置1,否則置0; 拼接電路根據(jù)寄存器文件中各寄存器的值,產(chǎn)生六種可能結(jié)果Q-l,Q,Q+a-l,Q+a, Q+2a-l, Q+2a,第十二寄存器和第一寄存器聯(lián)合拼接為Q-l的值;第二寄存器的值為Q的低 m2位,第三寄存器的值為Q+a-l的低m2位,第四寄存器的值為Q+a的低m2位,第五寄存器 的值為Q+2a-l的低m2位,第六寄存器的值為Q+2a-l的低m2位;當(dāng)?shù)谄呒拇嫫鳛?時(shí),Q的 高ml位為第十三寄存器的值,否則為第十二寄存器的值;當(dāng)?shù)谄呒拇嫫鳛?或者第八寄存 器為1時(shí),Q+a-l的高ml位為第十三寄存器的值,否則為第十二寄存器的值;當(dāng)?shù)谄呒拇嫫?為1或者第八寄存器為1或者第九寄存器為1時(shí),Q+a的高ml位為第十三寄存器的值,否則 為第十二寄存器的值;當(dāng)從第七寄存器到第十寄存器中有1時(shí),Q+2a-l的高ml位為第十三 寄存器的值,否則為第十二寄存器的值;當(dāng)從第七寄存器到第十一寄存器中有1時(shí),Q+2a的 高ml位為第十三寄存器的值,否則為第十二寄存器的值; 余數(shù)網(wǎng)絡(luò)電路的輸入為余數(shù)的冗余表達(dá)式,輸出矯正信號(hào),如果計(jì)算余數(shù)為負(fù),則 矯正信號(hào)為1,否則為0; 舍入判斷電路的輸入包括來自余數(shù)網(wǎng)絡(luò)電路的矯正信號(hào),來自寄存器文件的Q-1 和Q,以及舍入類型;其輸出為向上舍入信號(hào)和最高位信號(hào),根據(jù)矯正信號(hào)選擇最高位信 號(hào),如果矯正信號(hào)為l,就選擇Q-l的次高位為最高位信號(hào),否則,就選擇Q的次高位為高位 信號(hào);同時(shí)根據(jù)舍入類型生成向上舍入信號(hào); 選商器以向上舍入信號(hào),最高位信號(hào),矯正信號(hào)為控制信號(hào),從拼接電路生成的六 種可能結(jié)果中選出最終結(jié)果; 在迭代之前,各寄存器的值初始化為第十二寄存器全l,第十三寄存器全O,第一 寄存器全l,第二寄存器全O,第三寄存器為a-l,第四寄存器為a,第五寄存器為2a-l,第六 寄存器為2a,第七寄存器為l,第八寄存器為l,第九寄存器為l,第十寄存器為l,第十一寄 存器為1 ; 在每拍迭代執(zhí)行時(shí),將迭代計(jì)算生成的qw和各寄存器值輸入到寄存器更新電路, 生成新的寄存器值,本拍結(jié)束時(shí)存入寄存器文件;
在迭代結(jié)束后,拼接電路根據(jù)寄存器文件中的值產(chǎn)生六個(gè)可能的結(jié)果,由余數(shù)網(wǎng) 絡(luò)電路產(chǎn)生矯正信號(hào),舍入部件生成向上舍入信號(hào),將矯正信號(hào)和向上舍入信號(hào)作為控制 信號(hào),由拼接電路待選數(shù)據(jù)給選商器,進(jìn)行選擇,獲得最后的舍入結(jié)果。 本發(fā)明的有益效果是本發(fā)明通過改進(jìn)寄存器更新電路和寄存器文件,以及增加 拼接電路,可以快速生成6種滿足IEEE754標(biāo)準(zhǔn)舍入要求的結(jié)果,且這6個(gè)結(jié)果可以覆蓋高 基迭代算法和不同位寬情況下的所有可能的舍入結(jié)果,對這6種結(jié)果進(jìn)行選擇,獲得最終 的舍入結(jié)果,可以滿足高基迭代算法和不同計(jì)算位寬情況下的基于IEEE754標(biāo)準(zhǔn)的飛速舍 入要求。 下面結(jié)合附圖和實(shí)施例對本發(fā)明作詳細(xì)說明。
圖1是本發(fā)明的結(jié)構(gòu)示意圖。 圖2是本發(fā)明實(shí)施例的舍入判斷電路示意圖。 圖3是本發(fā)明實(shí)施例的拼接電路示意圖。 圖4(a)是本發(fā)明實(shí)施例中對Q1寄存器的更新電路示意圖。 圖4(b)是本發(fā)明實(shí)施例中對Q2寄存器的更新電路示意圖。 圖5(a)是本發(fā)明實(shí)施例中對QM寄存器的更新電路示意圖。 圖5(b)是本發(fā)明實(shí)施例中對QPO, T0寄存器的更新電路示意圖。 圖6(a)是本發(fā)明實(shí)施例中對QP1, Tl寄存器的更新電路示意圖。 圖6(b)是本發(fā)明實(shí)施例中對QP2, T2寄存器的更新電路示意圖。 圖7(a)是本發(fā)明實(shí)施例中對QP3, T3寄存器的更新電路示意圖。 圖7(b)是本發(fā)明實(shí)施例中對QP4, T4寄存器的更新電路示意圖。 圖8是本發(fā)明實(shí)施例的選商器示意圖。 圖9是現(xiàn)有技術(shù)飛速舍入結(jié)構(gòu)示意圖。 圖10是IEEE754標(biāo)準(zhǔn)下舍入的位操作示意圖。
具體實(shí)施例方式
參照圖1 8。本發(fā)明裝置包括寄存器文件、寄存器更新電路、余數(shù)網(wǎng)絡(luò)電路、拼接 電路、選商器、舍入判斷電路。 其中,寄存器文件包括6個(gè)m2位寬的寄存器第一寄存器,第二寄存器,第三寄存 器,第四寄存器,第五寄存器,第六寄存器;5個(gè)1位寬的標(biāo)記寄存器第七寄存器,第八寄 存器,第九寄存器,第十寄存器,第十一寄存器;2個(gè)ml位寬的寄存器第十二寄存器和第 十三寄存器。這些寄存器位寬的關(guān)系為設(shè)最終商的位寬為n,則有ml+m2 = n+3,且有m2
=2+log2a。 寄存器的更新電路是根據(jù)每拍迭代生成的商qk+1對各個(gè)寄存器進(jìn)行更新,其特征 為根據(jù)迭代每拍的商qk+1生成該拍對應(yīng)的Q-l值,保存至第十二寄存器和第一寄存器中, 其中第一寄存器存放數(shù)據(jù)的低m2位部分,第十二寄存器存放數(shù)據(jù)的高位部分,且生成該高 位部分加l的值,存放至第十三寄存器中。生成Q的低m2位部分,更新到第二寄存器中。生 成Q+a-l的低m2位部分,更新到第三寄存器中。生成Q+a的低m2位部分,更新到第四寄存
7器中。生成Q+2a-l的低m2位部分,更新到第五寄存器中。生成Q+2a的低m2位部分,更新 到第六寄存器中。對標(biāo)記寄存器的更新電路功能為如果Q-1的低m2位為全l,則將第七 寄存器置l,否則置0。如果Q的低m2位部分加上a-l產(chǎn)生向m2+l位的進(jìn)位,則將第八寄 存器置1,否則置0。如果Q的低m2位部分加上a產(chǎn)生向m2+l位的進(jìn)位,則將第九寄存器 置l,否則置0。如果Q的低m2位部分加上2a-l產(chǎn)生向m2+l位的進(jìn)位,則將第十寄存器置 l,否則置0。如果Q的低m2位部分加上2a產(chǎn)生向m2+l位的進(jìn)位,則將第十一寄存器置1, 否則置0。 拼接電路根據(jù)寄存器文件中各寄存器的值,產(chǎn)生6種可能的結(jié)果Q-1, Q, Q+a-l, Q+a, Q+2a-l, Q+2a。其特征為第十二寄存器和第一寄存器聯(lián)合拼接為Q_l的值。第二寄 存器的值為Q的低m2位,第三寄存器的值為Q+a-l的低m2位,第四寄存器的值為Q+a的低 m2位,第五寄存器的值為Q+2a-l的低m2位,第六寄存器的值為Q+2a-l的低m2位。當(dāng)?shù)?七寄存器為1時(shí),Q的高ml位為第十三寄存器的值,否則為第十二寄存器的值。當(dāng)?shù)谄呒?存器為1或者第八寄存器為1時(shí),Q+a-l的高ml位為第十三寄存器的值,否則為第十二寄 存器的值。當(dāng)?shù)谄呒拇嫫鳛?或者第八寄存器為1或者第九寄存器為1時(shí),Q+a的高ml位 為第十三寄存器的值,否則為第十二寄存器的值。當(dāng)從第七寄存器到第十寄存器中有1時(shí), Q+2a-l的高ml位為第十三寄存器的值,否則為第十二寄存器的值。當(dāng)從第七寄存器到第 十一寄存器中有1時(shí),Q+2a的高ml位為第十三寄存器的值,否則為第十二寄存器的值。
余數(shù)網(wǎng)絡(luò)電路的輸入為余數(shù)的冗余表達(dá)式,輸出矯正信號(hào)。功能是如果計(jì)算余數(shù) 為負(fù),則矯正信號(hào)為l,否則為O。 舍入判斷電路的輸入包括來自余數(shù)網(wǎng)絡(luò)電路的矯正信號(hào),來自寄存器文件的Q-1 和Q,以及舍入類型;其輸出為向上舍入信號(hào)和最高位信號(hào)。功能為根據(jù)矯正信號(hào)選擇最 高位信號(hào),如果矯正信號(hào)為1,就選擇Q-l的次高位為最高位信號(hào),否則,就選擇Q的次高位 為高位信號(hào)。同時(shí)根據(jù)舍入類型生成向上舍入信號(hào)。 選商器以向上舍入信號(hào),最高位信號(hào),矯正信號(hào)為控制信號(hào),從拼接電路生成的6 種可能結(jié)果中選出最終結(jié)果。 1.在迭代之前,將各寄存器的值初始化為第十二寄存器全l,第十三寄存器全O, 第一寄存器全l,第二寄存器全O,第三寄存器為a-l,第四寄存器為a,第五寄存器為2a-l, 第六寄存器為2a,第七寄存器為l,第八寄存器為l,第九寄存器為l,第十寄存器為l,第 十一寄存器為1。 2.在每拍迭代執(zhí)行時(shí),將迭代計(jì)算生成的qk+l和各寄存器值輸入到寄存器更新 電路,生成新的寄存器值,本拍結(jié)束時(shí)存入寄存器文件。 3.在迭代結(jié)束后,拼接電路根據(jù)寄存器文件中的值產(chǎn)生6個(gè)可能的結(jié)果。由余數(shù)
網(wǎng)絡(luò)電路產(chǎn)生矯正信號(hào),舍入部件生成向上舍入信號(hào),將矯正信號(hào)和向上舍入信號(hào)作為控
制信號(hào),由拼接電路待選數(shù)據(jù)給選商器,進(jìn)行選擇,獲得最后的舍入結(jié)果。 本發(fā)明設(shè)進(jìn)行尾數(shù)為n位的除法運(yùn)算,n為偶數(shù)。最終的商結(jié)果為n位,根據(jù)IEEE
舍入的要求需要算術(shù)運(yùn)算器迭代產(chǎn)生n+2位的商。設(shè)采用位迭代的基為r,即每拍產(chǎn)生L二
log2r個(gè)商位。設(shè)每拍由算術(shù)運(yùn)算器生成的商為qk+1。如采用SRT2算法,則r = 2, L = 1。
要飛速生成的6個(gè)可能結(jié)果為Q-l, Q, Q+l, Q+2, Q+3, Q+4。 寄存器文件包括n位寄存器Ql, n位寄存器Q2,3位寬寄存器QM, QP0, QP1, QP2,QP3, QP4, 1位寬的標(biāo)記寄存器T0, Tl, T2, T3, T4。 Ql寄存器和QM寄存器聯(lián)合保存商減去1 的值。Q2寄存器保存Ql+1的值。QP0寄存器保存商的低三位。QP1寄存器保存的是商加1 的低三位。QP2寄存器保存的是商加2的低三位的值。QP3寄存器保存的是商加上3的低 三位。QP4寄存器保存的是商加4的低三位。標(biāo)記寄存器TO為0時(shí),表明商的高位部分為 Ql寄存器的值,當(dāng)為1時(shí),表明商的高位部分為Q2寄存器的值。標(biāo)記寄存器Tl或者T0為 1時(shí),表明商加1的高位部分為Q2寄存器的值,否則表明商加1的高位部分為Ql寄存器的 值。標(biāo)記寄存器T2或者Tl或者T0為1時(shí),表明商加2的高位部分為Q2寄存器的值,否則 表明商加2的高位部分為Ql寄存器的值。標(biāo)記寄存器T3或者T2或者Tl或者T0有1時(shí), 表明商加3的高位部分為Q2寄存器的值,否則表明商加3的高位部分為Ql寄存器的值。標(biāo) 記寄存器T4或者T3或者T2或者Tl或者T0有1時(shí),表明商加4的高位部分為Q2寄存器 的值,否則表明商加4的高位部分為Ql寄存器的值。 對Q1寄存器的更新電路結(jié)構(gòu)包括第一比較器,第一選擇器,第二選擇器。每次迭 代時(shí),將qk+1和0送入第一比較器,計(jì)算qk+1是否大于0。將比較結(jié)果作為控制信號(hào)送入第 一選擇器和第二選擇器。第一選擇器同時(shí)受TO寄存器控制,其數(shù)據(jù)輸入為Ql和Q2的低 (n-L)位,具體的選擇為當(dāng)qk+1 > 0且TO = 1時(shí),選擇輸出Q2的低(n_L)位,否則選擇輸 出Ql的低(n-L)位。設(shè)QM寄存器的高L位值為V1,QP0寄存器的高L位值為V2。第二選 擇器的數(shù)據(jù)輸入為VI和V2,當(dāng)qk+1 > 0時(shí),選擇輸出V2,否則輸出VI。將第一選擇器和第 二選擇器在本拍迭代結(jié)束時(shí)送入Ql寄存器。 對Q2寄存器的更新電路結(jié)構(gòu)包括兩個(gè)加1器,第二比較器和第三比較器,第三選 擇器,第四比較器。在每次迭代時(shí),將VI和V2送入兩個(gè)加1器,產(chǎn)生Vl+1和V2+2的結(jié)果, 作為待選擇數(shù)據(jù)送入第四選擇器。同時(shí),將VI和V2送入第二比較器和第三比較器,同常數(shù) r-1進(jìn)行比較。兩個(gè)比較結(jié)果和T0,以及第一比較器的輸出一起作為控制信號(hào)送入第三選 擇器和第四選擇器。第三選擇器的數(shù)據(jù)輸入為Ql和Q2的低(n-L)位,具體的選擇為在 滿足(qk+1 >0iT0 = 0iV2< r-1)或者(qk+1《0且VI < r_l)時(shí),選擇輸出Ql的低 (n-L)位;否則,輸出Q2的低(n-L)位。第四選擇器的數(shù)據(jù)輸入為V1+1,V2+1,及常數(shù)0。其 具體的選擇為在滿足(qk+1《0且VI < r-1)時(shí),選擇輸出Vl+1 ;如果滿足(qk+1 > 0且TO =0iV2<r-l)或者(qk+1>0iT0 = 1且V2 < r_l)時(shí),輸出V2+1 ;否則輸出0。將第 三選擇器和第四選擇器在本拍迭代結(jié)束時(shí)送入Q2寄存器。 對QM寄存器的更新電路結(jié)構(gòu)包括第一運(yùn)算器,第二運(yùn)算器,第五選擇器。在每拍 迭代時(shí),首先將qk+1送入第一運(yùn)算器和第二運(yùn)算器。第一運(yùn)算器輸出qk+1_l的值,第二運(yùn)算 器輸出r+qk+1-l的值。然后將QP0的低(3-L)位和第一運(yùn)算器的輸出拼接,作為待選數(shù)據(jù) 送入第五選擇器的左邊輸入;將QM的低(3-L)位和第二運(yùn)算器的輸出拼接,作為待選數(shù)據(jù) 送入第五選擇器的右邊輸入。第一比較器的輸出作為控制信號(hào)送入第五選擇器。當(dāng)?shù)谝槐?較器的輸出為真時(shí),即qk+1 > 0時(shí),選擇輸出左邊的輸入信號(hào),否則,選擇輸出右邊的輸出信 號(hào)。本拍迭代結(jié)束時(shí)將選擇結(jié)果送入QM寄存器。 對QP0寄存器和TO寄存器的更新電路結(jié)構(gòu)見包括第三運(yùn)算器,第四運(yùn)算器,第四 比較器,第六選擇器,與門邏輯。在每拍迭代時(shí),首先將qk+1送入第三運(yùn)算器和第四運(yùn)算器。 第三運(yùn)算器輸出qk+1的絕對值,第四運(yùn)算器輸出r+qk+1的值。同時(shí),將qk+1和常數(shù)0送入第 四比較器,如果qk+i X),輸出為l,否則為O。然后將QP0的低(3-L)位和第三運(yùn)算器的輸
9出拼接,作為待選數(shù)據(jù)送入第六選擇器的左邊輸入;將QM的低(3-L)位和第四運(yùn)算器的輸 出拼接,作為待選數(shù)據(jù)送入第六選擇器的右邊輸入。第四比較器的輸出作為控制信號(hào)送入 第六選擇器。當(dāng)?shù)谒谋容^器的輸出為真時(shí),選擇輸出左邊的輸入信號(hào),否則,選擇輸出右邊 的輸出信號(hào)。將第六選擇器的輸出送入與門邏輯,進(jìn)行按位與操作。本拍迭代結(jié)束時(shí)將第 六選擇器的輸出送入QPO寄存器,將與門的輸出送入TO寄存器。 對QP1寄存器和Tl寄存器的更新電路結(jié)構(gòu)見包括第五運(yùn)算器,第六運(yùn)算器,第五 比較器,第六比較器,第七選擇器,與門邏輯。首先,將qk+1送入第三運(yùn)算器,第四運(yùn)算器,第 五比較器,第六比較器。第三運(yùn)算器輸出qk+1+l的值。第四運(yùn)算器輸出r+qk+,l的值。第 五比較器比較和-1的大小,如果小于,輸出為l,否則為O。第六比較器比較和r-l的大小, 如果相等,輸出為l,否則為O。將第五比較器和第六比較器的輸出作為選擇控制信號(hào),送入 第七選擇器。第七選擇器有三路數(shù)據(jù)輸入,左路為QPO的低(3-L)位和第五運(yùn)算器輸出的 拼接,中路為QM的低(3-L)位和第六運(yùn)算器輸出的拼接,右路為QP1的低(3-L)位和0的 拼接。具體的選擇為如果第五比較器輸出為真,選擇輸出中路數(shù)據(jù);如果第六比較器輸出 為真,選擇輸出右路數(shù)據(jù);其他情況選擇輸出左路數(shù)據(jù)。第七選擇器的輸出送入與門邏輯。 本拍迭代結(jié)束時(shí)將第七選擇器的輸出送入QP1寄存器,將與門的輸出送入T1寄存器。
對QP2寄存器和T2寄存器的更新電路結(jié)構(gòu)見包括第八選擇器,與門邏輯。在每拍 迭代時(shí),將第四比較器的輸出作為選擇控制信號(hào),送入第八選擇器。第八選擇器有兩路數(shù)據(jù) 輸入,左路為QP1的低(3-L)位和第三運(yùn)算器輸出的拼接,右路為QPO的低(3-L)位和第四 運(yùn)算器輸出的拼接。具體的選擇為如果第四比較器輸出為l,選擇輸出左路數(shù)據(jù);否則選 擇輸出右路數(shù)據(jù)。然后將第八選擇器的輸出送入與門邏輯。本拍迭代結(jié)束時(shí)將第八選擇器 的輸出送入QP2寄存器,將與門的輸出送入T2寄存器。 對QP3寄存器和T3寄存器的更新電路結(jié)構(gòu)包括第九選擇器,與門邏輯。將第五比 較器和第六比較器的輸出作為選擇控制信號(hào),送入第九選擇器。第九選擇器有三路數(shù)據(jù)輸 入,左路為QP1的低(3-L)位和第五運(yùn)算器輸出的拼接,中路為QPO的低(3-L)位和第六運(yùn) 算器輸出的拼接,右路為QP2的低(3-L)位和0的拼接。具體的選擇為如果第五比較器輸 出為真,選擇輸出中路數(shù)據(jù);如果第六比較器輸出為真,選擇輸出右路數(shù)據(jù);其他情況選擇 輸出左路數(shù)據(jù)。第九選擇器的輸出送入與門邏輯。本拍迭代結(jié)束時(shí)將第九選擇器的輸出送 入QP3寄存器,將與門的輸出送入T3寄存器。 對QP4寄存器和T4寄存器的更新電路結(jié)構(gòu)包括第十選擇器,與門邏輯。在每拍迭 代時(shí),將第四比較器的輸出作為選擇控制信號(hào),送入第十選擇器。第十選擇器有兩路數(shù)據(jù)輸 入,左路為QP2的低(3-L)位和第三運(yùn)算器輸出的拼接,右路為QP1的低(3-L)位和第四運(yùn) 算器輸出的拼接。具體的選擇為如果第四比較器輸出為l,選擇輸出左路數(shù)據(jù);否則選擇 輸出右路數(shù)據(jù)。然后將第十選擇器的輸出送入與門邏輯。本拍迭代結(jié)束時(shí)將第十選擇器的 輸出送入QP4寄存器,將與門的輸出送入T4寄存器。 在迭代結(jié)束后,拼接電路根據(jù)寄存器文件中各寄存器的值,產(chǎn)生Q-1, Q, Q+l, Q+2, Q+3,Q+4。首先生成拼接控制信號(hào)tl,t2,t3,t4。其中,tl是TO和Tl的邏輯或,t2是TO, Tl, T2的邏輯或,t3是TO, Tl, T2, T3的邏輯或,t4是TO, Tl, T2, T3, T4的邏輯或。然后 根據(jù)拼接控制信號(hào)和寄存器文件中保存的數(shù)值產(chǎn)生6種結(jié)果的高ml位第十三選擇器,第 十四選擇器,第十五選擇器,第十六選擇器,第十七選擇器分別受t4, t2, t3, tl, TO控制,當(dāng)
10控制信號(hào)為0時(shí),選擇輸出Ql,否則輸出Q2。最后產(chǎn)生拼接的結(jié)果Q1和QM寄存器中的數(shù)
值拼接產(chǎn)生Q-1值;第十七選擇器的輸出和QPO寄存器拼接產(chǎn)生Q值;第十六選擇器的輸出
和QP1寄存器拼接產(chǎn)生Q+l值;第十四選擇器的輸出和QP2寄存器拼接產(chǎn)生Q+2值;第十五 選擇器的輸出和QP3寄存器拼接產(chǎn)生Q+3值;第十三選擇器的輸出和QP4寄存器拼接產(chǎn)生 Q+4值。 同時(shí),迭代結(jié)束后,將迭代算術(shù)單元的冗余余數(shù)表達(dá)式輸入余數(shù)網(wǎng)絡(luò),生成矯正信 號(hào)。 舍入判斷電路根據(jù)拼接電路產(chǎn)生的Q-l值和Q值,和余數(shù)網(wǎng)絡(luò)產(chǎn)生的矯正信號(hào),以 及舍入類型,產(chǎn)生最高位信號(hào)和向上舍入信號(hào)。具體為根據(jù)矯正信號(hào)控制第十一選擇器,如 果矯正信號(hào)為l,就選擇Q-l作為輸出,否則就選擇Q作為輸出。將第十一選擇器的輸出的 次高位就是最高位信號(hào)。將第十一選擇器的輸出和舍入類型送入舍入邏輯,產(chǎn)生向上舍入 信號(hào)。選商器根據(jù)最高位信號(hào),向上舍入信號(hào),矯正信號(hào),從拼接電路產(chǎn)生的Q-1,Q,Q+1,
Q+2, Q+3, Q+4中選出最終結(jié)果。 本發(fā)明實(shí)施例采用如下的執(zhí)行步驟 1.在迭代之前,將各寄存器的值初始化為:Q1全1,Q2全0,QM二 1112,QP0 = 0002, QP1 = 0012, QP2 = 0102, QP3 = 0112, QP4 = 1002, TO = 1, Tl = 1, T2 = 1, T3 = 1, T4 =1。 2.在每拍迭代執(zhí)行時(shí),將迭代計(jì)算生成的qk+1和各寄存器值輸入到寄存器更新電 路,生成新的寄存器值,本拍結(jié)束時(shí)存入寄存器文件。 3.在迭代結(jié)束后,由余數(shù)網(wǎng)絡(luò)產(chǎn)生矯正信號(hào),舍入部件生成向上舍入信號(hào),將矯正
信號(hào)和向上舍入信號(hào)作為控制信號(hào)送入選商器,由選商器選擇出最后的商結(jié)果。 本發(fā)明并不局限于前述實(shí)施例中,如對IEEE754中的各種浮點(diǎn)格式的舍入,其他
非IEEE754數(shù)據(jù)格式但采用IEEE舍入模式的情況,各種高基的除法,開方根及其他位迭代
算法和在線算法,本發(fā)明也同樣適用。
權(quán)利要求
一種支持IEEE浮點(diǎn)運(yùn)算飛速舍入裝置,包括寄存器,其特征在于還包括寄存器文件、寄存器更新電路、余數(shù)網(wǎng)絡(luò)電路、拼接電路、選商器以及舍入判斷電路;寄存器文件包括六個(gè)m2位寬的寄存器第一寄存器,第二寄存器,第三寄存器,第四寄存器,第五寄存器,第六寄存器;五個(gè)1位寬的標(biāo)記寄存器第七寄存器,第八寄存器,第九寄存器,第十寄存器,第十一寄存器;二個(gè)m1位寬的寄存器第十二寄存器和第十三寄存器;寄存器位寬為n,則有m1+m2=n+3,且有m2=2+log2 a;寄存器更新電路根據(jù)迭代每拍的商qk+1生成該拍對應(yīng)的Q-1值,保存至第十二寄存器和第一寄存器中,其中第一寄存器存放數(shù)據(jù)的低m2位部分,第十二寄存器存放數(shù)據(jù)的高位部分,且生成該高位部分加1的值,存放至第十三寄存器中,生成Q的低m2位部分,更新到第二寄存器中;生成Q+a-1的低m2位部分,更新到第三寄存器中;生成Q+a的低m2位部分,更新到第四寄存器中;生成Q+2a-1的低m2位部分,更新到第五寄存器中;生成Q+2a的低m2位部分,更新到第六寄存器中;對標(biāo)記寄存器的更新電路功能為如果Q-1的低m2位為全1,則將第七寄存器置1,否則置0;如果Q的低m2位部分加上a-1產(chǎn)生向m2+1位的進(jìn)位,則將第八寄存器置1,否則置0;如果Q的低m2位部分加上a產(chǎn)生向m2+1位的進(jìn)位,則將第九寄存器置1,否則置0;如果Q的低m2位部分加上2a-1產(chǎn)生向m2+1位的進(jìn)位,則將第十寄存器置1,否則置0;如果Q的低m2位部分加上2a產(chǎn)生向m2+1位的進(jìn)位,則將第十一寄存器置1,否則置0;拼接電路根據(jù)寄存器文件中各寄存器的值,產(chǎn)生六種可能結(jié)果Q-1,Q,Q+a-1,Q+a,Q+2a-1,Q+2a,第十二寄存器和第一寄存器聯(lián)合拼接為Q-1的值;第二寄存器的值為Q的低m2位,第三寄存器的值為Q+a-1的低m2位,第四寄存器的值為Q+a的低m2位,第五寄存器的值為Q+2a-1的低m2位,第六寄存器的值為Q+2a-1的低m2位;當(dāng)?shù)谄呒拇嫫鳛?時(shí),Q的高m1位為第十三寄存器的值,否則為第十二寄存器的值;當(dāng)?shù)谄呒拇嫫鳛?或者第八寄存器為1時(shí),Q+a-1的高m1位為第十三寄存器的值,否則為第十二寄存器的值;當(dāng)?shù)谄呒拇嫫鳛?或者第八寄存器為1或者第九寄存器為1時(shí),Q+a的高m1位為第十三寄存器的值,否則為第十二寄存器的值;當(dāng)從第七寄存器到第十寄存器中有1時(shí),Q+2a-1的高m1位為第十三寄存器的值,否則為第十二寄存器的值;當(dāng)從第七寄存器到第十一寄存器中有1時(shí),Q+2a的高m1位為第十三寄存器的值,否則為第十二寄存器的值;余數(shù)網(wǎng)絡(luò)電路的輸入為余數(shù)的冗余表達(dá)式,輸出矯正信號(hào),如果計(jì)算余數(shù)為負(fù),則矯正信號(hào)為1,否則為0;舍入判斷電路的輸入包括來自余數(shù)網(wǎng)絡(luò)電路的矯正信號(hào),來自寄存器文件的Q-1和Q,以及舍入類型;其輸出為向上舍入信號(hào)和最高位信號(hào),根據(jù)矯正信號(hào)選擇最高位信號(hào),如果 矯正信號(hào)為1,就選擇Q-1的次高位為最高位信號(hào),否則,就選擇Q的次高位為高位信號(hào);同時(shí)根據(jù)舍入類型生成向上舍入信號(hào);選商器以向上舍入信號(hào),最高位信號(hào),矯正信號(hào)為控制信號(hào),從拼接電路生成的六種可能結(jié)果中選出最終結(jié)果;在迭代之前,各寄存器的值初始化為第十二寄存器全1,第十三寄存器全0,第一寄存器全1,第二寄存器全0,第三寄存器為a-1,第四寄存器為a,第五寄存器為2a-1,第六寄存器為2a,第七寄存器為1,第八寄存器為1,第九寄存器為1,第十寄存器為1,第十一寄存器為1;在每拍迭代執(zhí)行時(shí),將迭代計(jì)算生成的qk+1和各寄存器值輸入到寄存器更新電路,生成新的寄存器值,本拍結(jié)束時(shí)存入寄存器文件;在迭代結(jié)束后,拼接電路根據(jù)寄存器文件中的值產(chǎn)生六個(gè)可能的結(jié)果,由余數(shù)網(wǎng)絡(luò)電路產(chǎn)生矯正信號(hào),舍入部件生成向上舍入信號(hào),將矯正信號(hào)和向上舍入信號(hào)作為控制信號(hào),由拼接電路待選數(shù)據(jù)給選商器,進(jìn)行選擇,獲得最后的舍入結(jié)果。
全文摘要
本發(fā)明公開了一種支持IEEE浮點(diǎn)運(yùn)算飛速舍入裝置,用于解決現(xiàn)有技術(shù)不能適用于基于IEEE754標(biāo)準(zhǔn)的舍入的技術(shù)問題,其技術(shù)方案包括寄存器文件、寄存器更新電路、余數(shù)網(wǎng)絡(luò)電路、拼接電路、選商器以及舍入判斷電路。本發(fā)明通過改進(jìn)寄存器更新電路和寄存器文件,以及增加拼接電路,可以快速生成6種滿足IEEE754標(biāo)準(zhǔn)舍入要求的結(jié)果,且這6個(gè)結(jié)果可以覆蓋高基迭代算法和不同位寬情況下的所有可能的舍入結(jié)果,對這6種結(jié)果進(jìn)行選擇,獲得最終的舍入結(jié)果,可以滿足高基迭代算法和不同計(jì)算位寬情況下的基于IEEE754標(biāo)準(zhǔn)的飛速舍入要求。
文檔編號(hào)G06F7/57GK101782844SQ20091025463
公開日2010年7月21日 申請日期2009年12月31日 優(yōu)先權(quán)日2009年12月31日
發(fā)明者姚濤, 張盛兵, 張萌, 樊曉椏, 王黨輝, 鄭然 , 高德遠(yuǎn), 魏廷存, 黃小平 申請人:西北工業(yè)大學(xué)