專利名稱:一種浮點除法部件中提前終止循環(huán)計算的方法及電路的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及微處理器體系結(jié)構(gòu)技術(shù)領(lǐng)域,特別涉及一種浮點除法部件中提前終止循環(huán)計算的方法及電路,尤其是微處理器中浮點除法部件的處理方法。
背景技術(shù):
浮點除法是處理器(包括一些DSP和嵌入式芯片)中的非常重要功能部件,該部件的性能是影響處理器性能的一個重要方面(參照文獻S.Oberman with M.Flynn Design Issues in High PerformanceFloating Point Arithmetic Units PhD Thesis,Stanford,Jan.1997)。浮點除法的實現(xiàn)方法比較多,本發(fā)明涉及的領(lǐng)域主要是針對使用SRT算法(參照文獻M.D.Ercegovac and T.Lang,Division and Square RootDigit Recurrence Algorithms and Implementations,Kluwer AcademicPublishers,Norwell,Mass.,1994.)實現(xiàn)的浮點除法部件。
SRT算法是一種數(shù)字循環(huán)算法,該算法是采用減法方法進行循環(huán)計算得到結(jié)果。在每次循環(huán)過程中,該算法得到最后的商結(jié)果中固定的位數(shù)。SRT算法除法的循環(huán)算法,可以由下面的表達式來定義w[j+1]=rw[j]-dqj+1w
=x其中,X表示被除數(shù);w[j+1]表示第j次循環(huán)之后的部分余數(shù)和;r表示SRT算法的基;d表示除數(shù);qj+1表示第j次循環(huán)得到的商。從上述定義中,可以看出qj+1值由d,rw[j]組成的函數(shù)決定,這個函數(shù)稱為商選擇函數(shù),其表達式如下qj+1=SEL(w[j],d)
一般采用SRT算法的浮點除法部件,是采用固定循環(huán)次數(shù)的處理方法,嚴(yán)格按照算法來實現(xiàn)。例如采用基4的SRT算法,每次循環(huán)得到2位結(jié)果,對于單精度的浮點除法來說至少需要12次循環(huán)才能得到最后結(jié)果;而對于雙精度的浮點除法來說,至少需要循環(huán)26次才能得到最后結(jié)果。
然而,在實際運算中,根據(jù)以上所述可以知道,如果當(dāng)部分余數(shù)(w[j])為0時,那本次循環(huán)得到固定位數(shù)的值為0,同時可以得到下一次循環(huán)開始的部分余數(shù)(w[j+1])也為0。所以在SRT算法執(zhí)行過程中,如果發(fā)現(xiàn)部分余數(shù)為0時,就可以停止循環(huán)算法,并且得出此后每次循環(huán)得到固定位數(shù)的值都為0,并且最后的商為精確值。
發(fā)明內(nèi)容
發(fā)明的技術(shù)方案一種浮點除法部件中提前終止循環(huán)計算的一種新型處理方法其特征在于,對使用SRT算法的浮點除法部件來說,在執(zhí)行浮點除法循環(huán)計算過程中,如果發(fā)現(xiàn)部分余數(shù)為零,則立即停止循環(huán);然后直接給出最后商同時判斷出該商為浮點除法的精確結(jié)果,在循環(huán)計算過程中,為了得到每次循環(huán)后的商值,采用從高位到低位形成商的方法。從而達到減小循環(huán)次數(shù),加快浮點除法速度同時降低功耗的目的。
本發(fā)明就是利用以上特點,提出一種浮點除法部件中提前終止循環(huán)計算的方法,其步驟如下在執(zhí)行循環(huán)計算過程中,判斷部分余數(shù)是否為0,如果部分余數(shù)為0,則立即停止循環(huán)計算,同時給出停止循環(huán)計算和最后商為精確值的信號;如果部分余數(shù)不為0,則繼續(xù)循環(huán)計算,直到本次循環(huán)次數(shù)等于需要循環(huán)的次數(shù)。這種優(yōu)化有利于減少浮點除法循環(huán)的次數(shù),提高浮點除法部件的性能。
圖1是現(xiàn)有技術(shù)的在線商形成的結(jié)構(gòu)圖;圖2是本發(fā)明改進后的商形成結(jié)構(gòu)圖。
圖1中,該結(jié)構(gòu)主要由兩部分組成,包括本次循環(huán)后需要裝入QM,Q,QP寄存器值的形成電路;以及各值的裝入電路。每次循環(huán)后,商結(jié)果QM,Q,QP值的形成基本原理是在每次循環(huán)時把原來的商值從低位移向高位移動,而把本次循環(huán)得到的位數(shù)值放在寄存器的末尾。
圖2是改進后的商形成結(jié)構(gòu)圖。
該結(jié)構(gòu)主要由兩部分組成,包括本次循環(huán)后需要裝入QM,Q,QP寄存器值的形成電路;各值的裝入控制電路;以及移位控制電路?;驹硎敲看窝h(huán)產(chǎn)生的結(jié)果按從高位到低位的次序保存在Q,QM,QP寄存器中,而低位一直保持0。而本次循環(huán)產(chǎn)生結(jié)果在Q,QM,QP寄存器中的位置由移位控制寄存器決定。以基4的SRT算法除法為例,假如Q,QM,QP寄存器為56位。我們先設(shè)置一個56位移位寄存器k(每次向右移動兩位)來存放本次循環(huán)結(jié)果應(yīng)在Q,QM,QP寄存器的位置(初始值即開頭兩位的數(shù)值為1,其它位的數(shù)值為0);同時把得到的本次循環(huán)結(jié)果Qk+1,循環(huán)結(jié)果加1的值QPk+1,以及循環(huán)結(jié)果減1的值QMk+1為單位的兩位值擴充為56位,即28個2位結(jié)果。然后把三個擴充后的56位結(jié)果分別和上述的移位寄存器做與運算,得出本次循環(huán)各結(jié)果值以及結(jié)果所在的位置,最后把這三個值和各自原來的Q,QM,QP值做或運算就得到本次循環(huán)后Q,QM,QP結(jié)果。
對于SRT算法來說,每次循環(huán)得到的值有可能是負(fù)數(shù),在形成每次循環(huán)后的商時需要使用進位加法器,實現(xiàn)該電路需要較長的時間延遲,這可能會成為整個設(shè)計的關(guān)鍵路徑。另外,在得到最后的商時,由于不同舍入模式,可能需要對最后結(jié)果做加1處理,這也需要使用時間延遲較長的進位加法器。為了縮短這些電路時間延遲,可以通過在線舍入(onthe fly rounding)方法(參照文獻M.D.Ercegovac and T.Lang,″On-the-flyConversion from Redundant into Conventional Representation,″IEEETransactions on Computers,vol.C-36,pp.895-897,July 1987)來得到每次循環(huán)后的商以及最后的商。該方法的基本原理就是在每次循環(huán)之后就產(chǎn)生三個值,其中一個是前面所有循環(huán)產(chǎn)生商的值Q,一個是比該商小1的值QM,而另外一個比該商大1的值QP。這樣,只要根據(jù)每次循環(huán)得到固定位數(shù)的值,做簡單的移位處理就可以得到每次循環(huán)計算后的商。而在確定最后的商時,也只需要根據(jù)最后的Q值,余數(shù)的符號和舍入模式,利用簡單的選擇電路在這三個值中選擇其中一個就可以得到正確結(jié)果。一般浮點除法部件中的每次循環(huán)后商的形成實現(xiàn)結(jié)構(gòu)如圖1所示。該結(jié)構(gòu)中寄存器Q,QM,QP每一位在每次循環(huán)后都需要移動,寄存器的每位數(shù)值也經(jīng)常改變,這顯然對電路低功耗設(shè)計不利。
而本發(fā)明提出了一種優(yōu)化結(jié)構(gòu),既能滿足利用SRT算法特點減少循環(huán)次數(shù)的目的,又能消除上述三個寄存器因為需要移位帶來每位的值經(jīng)常變化的情況。
我們對原來商形成的結(jié)構(gòu)進行修改,給出了不采用移位方法得到三個商值Q,QM,QP的結(jié)構(gòu)。其結(jié)構(gòu)圖如圖2所示在圖中包括移動控制寄存器分別連接于三個裝入控制電路,三個裝入控制電路再分別連接于寄存器Q、寄存器QM和寄存器QP。并輸出三個商值Q,QM,QP。
比較本發(fā)明與一般浮點除法部件的處理方法,我們顯然可以看出本發(fā)明有以下優(yōu)點1)加快計算速度;一般浮點除法采用固定循環(huán)次數(shù)的方法,這樣不能充分利用SRT算法部分余數(shù)和為0的特性加快除法的計算速度。實際情況中,有一部分?jǐn)?shù)符合以上描述的特點,即得到的商為精確結(jié)果。本發(fā)明可以減小這類數(shù)的循環(huán)次數(shù),從而加快計算速度,而不象一般浮點除法部件中對待任何數(shù)都需要固定的循環(huán)次數(shù)。
2)減小功耗;因為加快計算速度,減少了需要循環(huán)次數(shù),所以同時能減少浮點除法部件的功耗。另外,本發(fā)明中得到商結(jié)果的結(jié)構(gòu)可以減少因為原來結(jié)構(gòu)中頻繁移位造成寄存器的每一位電路翻轉(zhuǎn)而帶來功耗。
本發(fā)明的方法對使用SRT算法的浮點除法部件來說,在執(zhí)行浮點除法循環(huán)計算過程中,如果發(fā)現(xiàn)部分余數(shù)為零,則立即停止循環(huán);然后直接給出最后商同時判斷出該商為浮點除法的精確結(jié)果。在循環(huán)計算過程中,為了得到每次循環(huán)后的商值,采用從高位到低位形成商的方法。為當(dāng)代微處理器加快浮點除法部件的計算速度同時降低該部件功耗提供了一種新型的處理方法。
本發(fā)明可應(yīng)用在“龍芯”2處理器中。
權(quán)利要求
1.一種浮點除法部件中提前終止循環(huán)計算的一種新型處理方法其特征在于,對使用SRT算法的浮點除法部件來說,在執(zhí)行浮點除法循環(huán)計算過程中,如果發(fā)現(xiàn)部分余數(shù)為零,則立即停止循環(huán);然后直接給出最后商同時判斷出該商為浮點除法的精確結(jié)果,在循環(huán)計算過程中,為了得到每次循環(huán)后的商值,采用從高位到低位形成商的方法。
2.一種浮點除法部件中提前終止循環(huán)計算的方法,其步驟如下在執(zhí)行循環(huán)計算過程中,判斷部分余數(shù)是否為0,如果部分余數(shù)為0,則立即停止循環(huán)計算,同時給出停止循環(huán)計算和最后商為精確值的信號;如果部分余數(shù)不為0,則繼續(xù)循環(huán)計算,直到本次循環(huán)次數(shù)等于需要循環(huán)的次數(shù)。
3.一種浮點除法部件中提前終止循環(huán)計算的電路,包括移動控制寄存器分別連接于裝入控制電路,裝入控制電路再分別連接于寄存器Q、寄存器QM和寄存器QP,并輸出三個商值Q,QM,QP。
全文摘要
本發(fā)明涉及微處理器體系結(jié)構(gòu)技術(shù)領(lǐng)域,為當(dāng)代微處理器加快浮點除法部件的計算速度同時降低該部件功耗提供了一種新型的處理方法。該方法對使用SRT算法的浮點除法部件來說,在執(zhí)行浮點除法循環(huán)計算過程中,如果發(fā)現(xiàn)部分余數(shù)為零,則立即停止循環(huán);然后直接給出最后商同時判斷出該商為浮點除法的精確結(jié)果。在循環(huán)計算過程中,為了得到每次循環(huán)后的商值,采用從高位到低位形成商的方法。從而達到減小循環(huán)次數(shù),加快浮點除法速度同時降低功耗的目的。
文檔編號G06F7/52GK1487407SQ0315504
公開日2004年4月7日 申請日期2003年8月26日 優(yōu)先權(quán)日2003年8月26日
發(fā)明者劉華平, 胡偉武 申請人:中國科學(xué)院計算技術(shù)研究所