實現(xiàn)高效除法性能的裝置和方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)處理系統(tǒng)領(lǐng)域。特別地,本發(fā)明涉及一種被配置為響應(yīng)除法命令來執(zhí)行除法操作的數(shù)據(jù)處理系統(tǒng)。
【背景技術(shù)】
[0002]已知提供了響應(yīng)除法指令來執(zhí)行除法操作的數(shù)據(jù)處理系統(tǒng)。這種數(shù)據(jù)處理系統(tǒng)被配置為對指定分子和分母的除法指令進(jìn)行響應(yīng),并執(zhí)行除法操作以產(chǎn)生分子除以分母的結(jié)果。這種數(shù)據(jù)處理系統(tǒng)通常具有被配置為執(zhí)行除法的專用除法電路。例如,可以提供被配置為響應(yīng)整數(shù)除法指令來執(zhí)行整數(shù)除法的專用整數(shù)除法電路。
【發(fā)明內(nèi)容】
[0003]從第一方面來看,本發(fā)明提供一種用于數(shù)據(jù)處理的裝置,該裝置被配置為響應(yīng)除法指令以執(zhí)行除法操,其中,除法操作被設(shè)置為通過將除法指令指定的輸入分子除以除法指令制定的輸入分母來產(chǎn)生結(jié)果值,其中輸入分子和輸入分母是二進(jìn)制值,該裝置包括:除法電路,被配置為通過執(zhí)行除法操作來產(chǎn)生結(jié)果值;及二的冪次方檢測電路,被配置為當(dāng)輸入分母是±2%合定的值時發(fā)出旁路條件信號,其中N是整數(shù);及旁路電路,被配置為響應(yīng)旁路條件信號,使得除法電路被旁路并且使得所述結(jié)果值被產(chǎn)生為輸入分子被移動N位。
[0004]本技術(shù)認(rèn)識到數(shù)據(jù)處理系統(tǒng)執(zhí)行的除法操作是相對高成本的操作(例如從時間和能源開支來講)。此外,本技術(shù)認(rèn)識到在分母是二的冪次方的情況下可以避免運(yùn)行專用除法電路的開銷,因為在這種情況下,可以通過把分子移動N位位置來快速返回除法結(jié)果,其中分子可被表示成±2\這種移動通常(盡管不總是,見下文)是分子的右移。因此,在分子確實是二的冪次方的情況下,可以通過旁路除法電路(例如,通過向除法電路發(fā)出信號使其響應(yīng)除法指令停止進(jìn)一步活動),并且輸出上文所述的通過對輸入分子進(jìn)行移位產(chǎn)生的結(jié)果值來避免運(yùn)行除法電路的開銷。
[0005]二的冪次方檢測電路可以有多種配置方式,但在一些實施例中,二的冪次方檢測電路包括異位檢測電路,異位檢測電路被配置為當(dāng)輸入分子只有一個位被設(shè)置而所有其它位未被設(shè)置時,異位發(fā)出旁路條件信號。因為輸入分子和輸入分母是二進(jìn)制值,只有一個位被設(shè)置表示輸入分母是2的冪次方(至少對于無符號的二進(jìn)制值或正符號的二進(jìn)制值)的事實(例如輸入分母可表示為2N,其中被設(shè)置的一位是輸入分母的第Nth位,輸入分母的位從最低有效位起從0開始編號)。應(yīng)該注意的是位的“設(shè)置”通常是給這位值1的動作,盡管也應(yīng)該認(rèn)識到用值1代表“設(shè)置”位的選擇是任意的,且可以被“0”替代。根據(jù)普通約定,盡管本發(fā)明用具有值1的設(shè)置位進(jìn)行說明,但本技術(shù)并不限制于一種表示或其他表示。
[0006]在一些實施例中,旁路電路被配置為使得結(jié)果值被生成為輸入分子被移動輸入分母中設(shè)置的所述一位后的未設(shè)置位的位數(shù)。因此,輸入分子被移動以產(chǎn)生結(jié)果值的位位置數(shù)可以從異位檢測電路發(fā)現(xiàn)設(shè)置的位之后(在較低有效位位置處)的未設(shè)置位的數(shù)量來確定異位。
[0007]在數(shù)據(jù)處理裝置中可以有這樣的情況,該裝置包括還提供了前導(dǎo)零確定電路的除法電路,因為就除法電路而言,兩個操作數(shù)(分子和分母)的前導(dǎo)零計數(shù)可以有不同方式使用。例如,除法電路被配置為通過操作數(shù)各自的前導(dǎo)零計數(shù)把操作數(shù)都左移,從而對齊它們各自的最高有效設(shè)置位。該數(shù)據(jù)處理裝置也可被配置為確定兩個前導(dǎo)零計數(shù)之間的差,等等。
[0008]因此,在一些實施例中包括被配置為確定輸入分母的前導(dǎo)零計數(shù)的前導(dǎo)零確定電路,二的冪次方檢測電路被配置為通過對輸入分母的前導(dǎo)零計數(shù)的二進(jìn)制表示取反來從輸入分母的前導(dǎo)零計數(shù)確定N。這可以通過舉例進(jìn)行很好的說明,如果分母是二進(jìn)制00010000,前導(dǎo)零計數(shù)是3,即011。對前導(dǎo)零計數(shù)的二進(jìn)制表示取反產(chǎn)生二進(jìn)制100,即4。所以N是第四位,從最低有效位起從零開始對分母位數(shù)編號。于是,可以利用已有的前導(dǎo)零確定電路來判定N。
[0009]應(yīng)該注意的是,這種方法只適用于2A位的二進(jìn)制值,其中A是整數(shù),例如,8位、16位和32位的二進(jìn)制值。
[0010]還應(yīng)該注意的是,為了使這種方法運(yùn)作,前導(dǎo)零計數(shù)的二進(jìn)制表示應(yīng)該是A位值。也就是說,在上述示例中,分母是8位值,所以A = 3(23= 8)。因此前導(dǎo)零計數(shù)的二進(jìn)制表示也應(yīng)該是3位值(A = 3)。
[0011]然而,在不提供前導(dǎo)零確定電路的實施例中,拖尾零計數(shù)能夠更好的更直接的確定N,因此一些實施例包括拖尾零確定電路,拖尾零確定電路被配置為確定輸入分母的拖尾零計數(shù),其中二的冪次方檢測電路被配置為將N確定為輸入分母的拖尾零計數(shù)。
[0012]異位檢測電路可以有多種配置方式,但在一些實施例中,異位檢測電路包括多個二進(jìn)制門樹,每個二進(jìn)制門樹都包括多個層級,其中每個二進(jìn)制樹的一個層級包括X0R門,而二進(jìn)制樹的所有其他層級包括0R門,且多個二進(jìn)制樹的每個二進(jìn)制樹與多個二進(jìn)制樹的其它二進(jìn)制樹不同的層級具有其X0R門,并且多個二進(jìn)制樹的輸出的AND組合指示旁路條件。因而這種X0R門和0R門(此處應(yīng)該理解為對應(yīng)于它們的邏輯功能,因此可以通過分別提供X0R和0R門功能的任意邏輯門組合實施)的排列能夠?qū)崿F(xiàn)判定輸入分母是否只包括一個設(shè)置位,借助這個事實,每個二進(jìn)制樹被配置為指示是否在輸入分母的各自不同粒度的層級內(nèi)找到異位,例如,是否發(fā)現(xiàn)某位與其鄰近位置相異,是否斷言的一對位中的一個或多個位具有未被設(shè)置的一對鄰近位,是否含有至少一個設(shè)置位的四個位的集合與四個未設(shè)置位的集合鄰近等等。因此組合這些條件(例如通過最終AND門)可允許判定是否在整個輸入分母中只有一個位被相異地設(shè)置。
[0013]在一些實施例中,異位檢測電路包括邏輯門網(wǎng)絡(luò),該邏輯門網(wǎng)絡(luò)被配置為把輸入分母作為測試值,以及:
[0014]A)判定在測試值的第一半位中是否沒有位被設(shè)置,且在測試值的第二半位中是否至少有一個位被設(shè)置,當(dāng)判定為真時:
[0015]B)將測試值的第二半的位作為測試值并重復(fù)A)中的判定,知道測試值的第二半的位只有一位,并且如果這一位被設(shè)置,就發(fā)出旁路條件信號。
[0016]因此,可以通過查看輸入分母的每一半以判定這些一半中是否只有一個包含任意設(shè)置位來執(zhí)行迭代過程,且含有設(shè)置位的一半接下來會被分成兩半以在過程的下一個迭代中考慮。一旦認(rèn)為只有單個位時,可以最終判定輸入分母是否只包含一個被設(shè)置的位。
[0017]輸入分子和輸入分母可以是無符號二進(jìn)制值。
[0018]在一些實施例中,輸入分子和輸入分母是利用二補(bǔ)數(shù)表不的有符號二進(jìn)制值。由于在正符號二進(jìn)制值和負(fù)符號二進(jìn)制值表示上的不同,本技術(shù)認(rèn)識到雖然能為正符號二進(jìn)制值提供專用二的冪次方檢測電路以及為負(fù)符號二進(jìn)制值提供專用二的冪次方檢測電路,或者甚至是能夠操作有符號的二進(jìn)制值的兩種極性的更復(fù)雜的二的冪次方檢測電路,如果能夠采用這些表示中的一個以使同一個二的冪次方檢測電路可用于兩種極性,那么就提供了的一種更高效的配置。因此在一些實施例中,輸入分子和輸入分母是帶符號二進(jìn)制值,且二的冪次方檢測電路包括預(yù)處理電路,該預(yù)處理處理電路被配置為如果輸入分母是負(fù)值時對分母進(jìn)行預(yù)處理以產(chǎn)生經(jīng)預(yù)處理的輸入分母,且二的冪次方檢測電路被配置為當(dāng)經(jīng)預(yù)處理的輸入分母表示二的冪次方時檢測出旁路條件。
[0019]預(yù)處理可以有多種形式,但在一些實施例中,預(yù)處理電路被配置為把輸入分母左移一位并添加未設(shè)置位作為最低有效位以產(chǎn)生中間值,預(yù)處理電路還被配置為對中間值和輸入分母執(zhí)行X0R以產(chǎn)生經(jīng)預(yù)處理的輸入分母。這種配置有利地產(chǎn)生了經(jīng)預(yù)處理的分母,其中,在在與負(fù)值輸入分母相同的位位置上設(shè)置有正等值位。雖然也有可能產(chǎn)生輸入分母的正等值,這個過程通常包括對輸入值的位取反和加一,這會導(dǎo)致需要實現(xiàn)起來更昂貴的進(jìn)位操作。
[0020]因此,在一些實施例中,二的冪次方檢測電路被配置為檢測是否預(yù)處理輸入分母只有一個設(shè)置位而其他所有位都是未設(shè)置位的旁路條件。然而,在一些實現(xiàn)方案中可以判定是否值得產(chǎn)生輸入分母的正等值,例如,因為該值已經(jīng)因為別的原因被確定過了,因此在一些實施例中,預(yù)處理電路被配置為產(chǎn)生輸入分母的正等值作為經(jīng)預(yù)處理的輸入分母。
[0021]可以提供多種方式產(chǎn)生正等值,但在一些實施例中,預(yù)處理電路被配置為對輸入分母的位取反且加一位來產(chǎn)生經(jīng)預(yù)處理的輸入分母。
[0022]輸入分子和輸入分母可以米用若干不同的形式。例如在一些實施例中,輸入分子和輸入分母是二進(jìn)制整數(shù)。因此在這類實施例中裝置可被配置為響應(yīng)整數(shù)除法指令以執(zhí)行整數(shù)除法操作,且裝置可包括被配置為通過執(zhí)行整數(shù)除法操作產(chǎn)生結(jié)果值的整數(shù)除法電路。在其它實施例中,輸入分子和輸入分母是定點二進(jìn)制值,因而在這類實施例中,裝置可被配置為響應(yīng)定點除法指令以執(zhí)行定點除法操作,且該裝置可包括配置為通過執(zhí)行定點除法操作產(chǎn)生結(jié)果值的定點除法電路。
[0023]通常執(zhí)行除法操作需要的移位是右移,也就是說,N為正。因此旁路電路可被配置為當(dāng)二的冪次方檢測電路指示N是