本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,尤其涉及一種除法運(yùn)算方法及裝置。
背景技術(shù):
在實(shí)現(xiàn)除法器的除法運(yùn)算時(shí),通常是通過(guò)調(diào)用專用的數(shù)字信號(hào)處理單元或者使用查找表(LUT,Look Up Table)資源實(shí)現(xiàn)除法器的功能,但如果除法器的位寬較大時(shí),直接調(diào)用內(nèi)置的芯片進(jìn)行除法運(yùn)算,則需要消耗大量的芯片資源。一般將位寬較大的除法器稱為大位寬除法器,大位寬是相對(duì)于芯片的處理能力而定的,例如中高端芯片處理能力較強(qiáng),位寬高于某個(gè)值才算大位寬,即對(duì)位寬不敏感;而低端芯片處理能力較弱,一般位寬大于20位(bits)便很敏感,處理速度就會(huì)很慢,則可稱之為大位寬。
在很多應(yīng)用場(chǎng)景中,大位寬除法器對(duì)精度的要求有限,對(duì)芯片的處理能力要求高,故在實(shí)現(xiàn)除法器運(yùn)算時(shí),需要消耗數(shù)量龐大的報(bào)警器和寄存器,導(dǎo)致芯片資源消耗極大。
技術(shù)實(shí)現(xiàn)要素:
本申請(qǐng)?zhí)峁┮环N除法運(yùn)算方法及裝置,能夠解決大位寬除法器在運(yùn)算時(shí),需要消耗較多芯片資源的問(wèn)題。
第一方面,提供一種除法運(yùn)算方法,包括:
在第一被除數(shù)不大于第一除數(shù)時(shí),將所述第一被除數(shù)輸入移位器,所述第一被除數(shù)和所述第一除數(shù)為二進(jìn)制數(shù);
對(duì)輸入所述移位器的所述第一被除數(shù)進(jìn)行左移操作,得到第二被除數(shù);
從所述第二被除數(shù)和所述第一除數(shù)中移除連續(xù)為0的比特,得到第三被除數(shù)和第二除數(shù);
將所述第三被除數(shù)與所述第二除數(shù)進(jìn)行除法運(yùn)算,得到實(shí)際運(yùn)算值。
通過(guò)從除數(shù)和被除數(shù)中移除連續(xù)為0的比特,實(shí)現(xiàn)了對(duì)除數(shù)和被除數(shù)位寬的壓縮,從而實(shí)現(xiàn)將大位寬除法器壓縮為小位寬除法器,有效減少原大位寬除法器在運(yùn)算時(shí)所需消耗的芯片資源,進(jìn)而提高運(yùn)算效率和提升芯片性能。
結(jié)合第一方面,在第一方面的第一種可能的實(shí)現(xiàn)方式中,從所述第二被除數(shù)中移除連續(xù)為0的比特,得到第三被除數(shù),以及從所述第一除數(shù)中移除連續(xù)為0的比特,得到第二除數(shù),包括:
步驟A:按照二進(jìn)制位的從高至低的順序,從所述第二被除數(shù)中選擇連續(xù)t個(gè)比特作為第一待壓縮比特集,以及按照二進(jìn)制位的從高至低的順序,從所述第一除數(shù)中選擇連續(xù)t個(gè)比特作為第二待壓縮比特集,其中t為第一閾值,用于指示單次壓縮的比特?cái)?shù);
步驟B:在判斷所述第一待壓縮比特集中的每一比特均為0,且判斷所述第二待壓縮比特集中的每一比特均為0時(shí),則將所述第一待壓縮比特集從所述第二被除數(shù)中移除,得到壓縮后的所述第二被除數(shù),以及將所述第二待壓縮比特集從所述第一除數(shù)中移除,得到壓縮后的所述第一除數(shù)。通過(guò)每次選擇一個(gè)第一待壓縮比特集和一個(gè)第二待壓縮比特集,實(shí)現(xiàn)可以將原數(shù)據(jù)中連續(xù)為0的比特壓縮掉,可以不用一次壓縮一個(gè)為0的比特,在保證滿足壓縮精度前提下,有效減少壓縮次數(shù)。
結(jié)合第一方面的第一種可能的實(shí)現(xiàn)方式,在第一方面的第二種可能的實(shí)現(xiàn)方式中,在得到所述壓縮后的第二被除數(shù)和所述壓縮后的第一除數(shù),所述方法還包括:
步驟C:判斷所述壓縮后的第二被除數(shù)和所述壓縮后的第一除數(shù)是否滿足預(yù)設(shè)壓縮條件;
若不滿足所述預(yù)設(shè)壓縮條件,則將所述壓縮后的第二被除數(shù)作為新的第二被除數(shù),將所述壓縮后的第一除數(shù)作為新的第一除數(shù),重復(fù)所述步驟A、所述步驟B及所述步驟C;
若滿足所述預(yù)設(shè)壓縮條件,則將所述壓縮的第二被除數(shù)作為所述第三被除數(shù),將所述壓縮后的第一除數(shù)作為第二除數(shù),結(jié)束壓縮操作。
可選的,所述預(yù)設(shè)壓縮條件包括以下之一:
所述壓縮后的第一除數(shù)的位寬Q小于或等于第二閾值,其中位寬Q為正整數(shù),所述第二閾值用于指示當(dāng)前的壓縮精度是否滿足預(yù)設(shè)壓縮精度;
所述第一除數(shù)中不存在每一比特均為0的第二待壓縮比特集;
所述壓縮后的第一除數(shù)的位寬Q小于或等于第二閾值,且所述壓縮后的 第一除數(shù)中的下一個(gè)連續(xù)t個(gè)比特不均為0。本實(shí)現(xiàn)方式中,根據(jù)預(yù)設(shè)壓縮條件判斷是否結(jié)束壓縮操作,在保證除法運(yùn)算結(jié)果精度的前提下,可以提高運(yùn)算效率。
結(jié)合第一方面,在第一方面的第三種可能的實(shí)現(xiàn)方式中,從所述第二被除數(shù)中移除連續(xù)為0的比特,得到第三被除數(shù),以及從所述第一除數(shù)中移除連續(xù)為0的比特,得到第二除數(shù),具體包括:
按照二進(jìn)制位的從高至低的順序以及第一閾值t,依次從所述第二被除數(shù)中選擇N個(gè)第一待壓縮比特集,每個(gè)所述第一待壓縮比特集包括連續(xù)為0的t個(gè)比特,其中,N為正整數(shù),所述第一閾值t用于指示單次壓縮的比特?cái)?shù);
按照二進(jìn)制位的從高至低的順序以及所述第一閾值t,依次從所述第一除數(shù)中選擇N個(gè)第二待壓縮比特集,每個(gè)所述第二待壓縮比特集包括連續(xù)為0的t個(gè)比特;
將所述N個(gè)第一待壓縮比特集從所述第二被除數(shù)中移除,得到所述第三被除數(shù),以及將所述N個(gè)第二待壓縮比特集從所述第一除數(shù)中移除,得到所述第二除數(shù)。
結(jié)合第一方面的第一至第三種可能的實(shí)現(xiàn)方式中的任一種,在第一方面的第四種可能的實(shí)現(xiàn)方式中,所述第一閾值t滿足如下條件:1≤t≤Q’*1/2,其中,滿足如下條件:Q’為所述第一除數(shù)的有效位寬,Q’為正整數(shù)。
在進(jìn)行壓縮操作前,根據(jù)第一除數(shù)的有效位寬Q’計(jì)算單次壓縮的比特?cái)?shù),即第一閾值t,可以精確地進(jìn)行壓縮。
結(jié)合第一方面的第四種可能的實(shí)現(xiàn)方式,在第一方面的第五種可能的實(shí)現(xiàn)方式中,在選擇所述第一待壓縮比特集和所述第二待壓縮比特集之前,所述方法還包括:
按照二進(jìn)制位的從高至低的順序,判斷所述第一除數(shù)的第一個(gè)不為0的比特和所述第一除數(shù)的最后一個(gè)為0的比特,并計(jì)算從所述第一個(gè)不為0的比特至所述最后一個(gè)為0的比特的有效位寬Q’,根據(jù)所述有效位寬Q’確定所述第一閾值t。
結(jié)合第一方面的第二至第五種可能的實(shí)現(xiàn)方式中的任一種,在第一方面的第六種實(shí)現(xiàn)方式中,在滿足所述預(yù)設(shè)壓縮條件,結(jié)束壓縮操作之后,所述 方法還包括:
判斷預(yù)設(shè)的理論運(yùn)算值與所述實(shí)際運(yùn)算值之差是否小于壓縮精度,所述預(yù)設(shè)的理論運(yùn)算值為所述第二被除數(shù)與所述第一除數(shù)進(jìn)行除法運(yùn)算得到的值;
若小于,則結(jié)束操作;若不小于,則重復(fù)執(zhí)行選擇和移除待壓縮比特集的操作,直至所述理論運(yùn)算值與所述實(shí)際運(yùn)算值之差小于壓縮精度。
本申請(qǐng)通過(guò)進(jìn)一步的判斷經(jīng)過(guò)壓縮操作后的除法運(yùn)算結(jié)果是否達(dá)到要求的壓縮精度,從而決定是否需要再次進(jìn)行壓縮操作,提高壓縮精度,以保證除法運(yùn)算結(jié)果的精準(zhǔn)度。
第二方面,提供一種除法運(yùn)算裝置,具有實(shí)現(xiàn)上述除法運(yùn)算方法的功能。所述功能可以通過(guò)硬件實(shí)現(xiàn),也可以通過(guò)硬件執(zhí)行相應(yīng)的軟件實(shí)現(xiàn)。硬件或軟件包括一個(gè)或多個(gè)與上述功能相對(duì)應(yīng)的模塊。
一種可能的實(shí)現(xiàn)方式中,所述除法運(yùn)算裝置包括輸入器,移位器,計(jì)算器和處理器,其中:
所述輸入器,用于在第一被除數(shù)不大于除數(shù)時(shí),將所述第一被除數(shù)輸入移位器,所述第一被除數(shù)和所述第一除數(shù)為二進(jìn)制數(shù);
所述移位器,用于對(duì)所述第一被除數(shù)進(jìn)行左移操作,得到第二被除數(shù);
所述處理器,用于從移位器得到的所述第二被除數(shù)中移除連續(xù)為0的比特,得到第三被除數(shù),以及從移位器得到的所述第一除數(shù)中移除連續(xù)為0的比特,得到第二除數(shù);
所述計(jì)算器,用于將處理器得到的所述第三被除數(shù)與所述第二除數(shù)進(jìn)行除法運(yùn)算,得到實(shí)際運(yùn)算值。
另一種可能的實(shí)現(xiàn)方式中,所述除法運(yùn)算裝置包括:
輸入模塊,用于在第一被除數(shù)不大于第一除數(shù)時(shí),將所述第一被除數(shù)輸入移位模塊,所述第一被除數(shù)和所述第一除數(shù)為二進(jìn)制數(shù);
所述移位模塊,用于對(duì)所述第一被除數(shù)進(jìn)行左移操作,得到第二被除數(shù);
處理模塊,用于從所述第二被除數(shù)中移除連續(xù)為0的比特,得到第三被 除數(shù),以及從所述第一除數(shù)中移除連續(xù)為0的比特,得到第二除數(shù);
運(yùn)算模塊,用于將所述第三被除數(shù)與所述第二除數(shù)進(jìn)行除法運(yùn)算,得到實(shí)際運(yùn)算值。
從以上技術(shù)方案可以看出,本發(fā)明中,通過(guò)先將第一被除數(shù)左移,然后將第二被除數(shù)和第一除數(shù)中為0的比特移除,從而實(shí)現(xiàn)將大位寬除法器壓縮為小位寬除法器,有效減少原大位寬除法器在運(yùn)算時(shí)所需消耗的芯片資源,進(jìn)而提高運(yùn)算效率和提升芯片性能。
附圖說(shuō)明
圖1為本實(shí)施例中一種除法運(yùn)算方法的流程示意圖;
圖2為本實(shí)施例中一種除法運(yùn)算裝置的結(jié)構(gòu)示意圖;
圖3為本實(shí)施例中一種除法運(yùn)算裝置的另一結(jié)構(gòu)示意圖。
具體實(shí)施方式
本發(fā)明的說(shuō)明書和權(quán)利要求書及上述附圖中的術(shù)語(yǔ)“第一”、“第二”等是用于區(qū)別類似的對(duì)象,而不必用于描述特定的順序或先后次序。應(yīng)該理解這樣使用的數(shù)據(jù)在適當(dāng)情況下可以互換,以便這里描述的實(shí)施例能夠以除了在這里圖示或描述的內(nèi)容以外的順序?qū)嵤?。此外,術(shù)語(yǔ)“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或模塊的過(guò)程、方法、系統(tǒng)、產(chǎn)品或設(shè)備不必限于清楚地列出的那些步驟或模塊,而是可包括沒(méi)有清楚地列出的或?qū)τ谶@些過(guò)程、方法、產(chǎn)品或設(shè)備固有的其它步驟或模塊,本文中所出現(xiàn)的模塊的劃分,僅僅是一種邏輯上的劃分,實(shí)際應(yīng)用中實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)模塊可以結(jié)合成或集成在另一個(gè)系統(tǒng)中,或一些特征可以忽略,或不執(zhí)行,另外,所顯示的或討論的相互之間的耦合或直接耦合或通信連接可以是通過(guò)一些接口,模塊之間的間接耦合或通信連接可以是電性或其他類似的形式,本文中均不作限定。并且,作為分離部件說(shuō)明的模塊或子模塊可以是也可以不是物理上的分離,可以是也可以不是物理模塊,或者可以分不到多個(gè)電路模塊中,可以根據(jù)實(shí)際的需要選擇其中的部分或全部模塊來(lái)實(shí)現(xiàn)本發(fā)明實(shí)施例方案的目的。
通常情況下,除法器的位寬較大時(shí),需要消耗大量的芯片資源,為此本發(fā)明實(shí)施例提供了一種除法運(yùn)算方法及裝置,能夠解決大位寬除法器在運(yùn)算時(shí),需要消耗較多芯片資源的問(wèn)題。
該方法應(yīng)用在被除數(shù)小于等于除數(shù)的場(chǎng)景下,可以節(jié)約更多資源,獲得更顯著的效果。
本申請(qǐng)?zhí)峁┑某ㄟ\(yùn)算過(guò)程如下:
1、將被除數(shù)左移X位,左移的位數(shù)根據(jù)實(shí)際要求精度和原除法器的位寬決定。
2、確定左移后的被除數(shù)中為0的比特,以及除數(shù)中為0的比特;
這些為0的比特為比特位連續(xù)為0的n個(gè)比特,即比特位連續(xù)的比特集,包含至少一個(gè)比特,其中比特位連續(xù)的比特集是指二進(jìn)制中,按照位的順序,相鄰且不間隔的多個(gè)比特,例如,10110011中的1011,這4個(gè)比特為比特位連續(xù)的關(guān)系。
3、分別將被除數(shù)和除數(shù)中為0的比特移除,將大位寬除法器壓縮為小位寬除法器;
本申請(qǐng)中,將被除數(shù)或除數(shù)中為0的比特移除理解為對(duì)被除數(shù)或除數(shù)進(jìn)行壓縮操作。
其中,單次移除為0的比特?cái)?shù)(即單次壓縮的比特?cái)?shù))為t,t≥1,且為正整數(shù),具體應(yīng)用時(shí),t可以根據(jù)被除數(shù)的位寬、除數(shù)的位寬、計(jì)算機(jī)硬件的實(shí)際處理能力、所要求的運(yùn)算效率以及所要求的壓縮精度k而定,壓縮精度k根據(jù)實(shí)際需求來(lái)定。例如,t=1時(shí),壓縮精度最高,所要求硬件處理能力也更高,壓縮的次數(shù)也最多,消耗時(shí)間最長(zhǎng);另外,每次所壓縮的t可相同或不同,例如,在t較大時(shí),越靠后的壓縮,按照t選擇的待壓縮比特集為0的幾率越小,由于沒(méi)有為0的待壓縮比特集時(shí)便不能進(jìn)行移除操作,故可以根據(jù)實(shí)際場(chǎng)景靈活動(dòng)態(tài)的改變t值。
舉例來(lái)說(shuō),在一次完整的壓縮操作中,可以按照壓縮的次序,將每次壓縮的t取值逐漸變小以提高壓縮的精度;或者在兩次以上的完整壓縮操作中,將越靠后的一次完整壓縮操作時(shí)的t值減小(即將后續(xù)的每一次完整的壓縮操 作所設(shè)定的t值逐漸減小)。但考慮到實(shí)際運(yùn)算時(shí)硬件的處理速度較快,一般將t設(shè)置為固定值,具體的t取值本文不作限定。
可以理解的是,本方法主要通過(guò)兩種手段實(shí)現(xiàn):
1、通過(guò)使用芯片實(shí)現(xiàn),如可編程邏輯器件(Field Programmable Gate Array,F(xiàn)PGA)等硬件,即針對(duì)原除法器增加移除為0的比特的處理過(guò)程。
2、通過(guò)中央處理器調(diào)用現(xiàn)有的小位寬除法器來(lái)實(shí)現(xiàn),即在將除數(shù)和被除數(shù)輸入除法器之前,中央處理器中的預(yù)處理單元通過(guò)對(duì)被除數(shù)和除數(shù)進(jìn)行移位、移除比特為0的比特的預(yù)處理,從而實(shí)現(xiàn)在實(shí)際芯片的處理能力較弱的情況下,通過(guò)預(yù)處理使得處理能力較弱的芯片也能實(shí)現(xiàn)大位寬除法器的除法運(yùn)算,可以減少升級(jí)硬件的成本,具體不贅述。
請(qǐng)參照?qǐng)D1,為本發(fā)明實(shí)施例提供的一種除法運(yùn)算方法,包括:
101、在第一被除數(shù)不大于第一除數(shù)時(shí),將所述第一被除數(shù)輸入移位器;其中,所述第一被除數(shù)和所述第一除數(shù)為二進(jìn)制數(shù)。
102、對(duì)輸入所述移位器的所述第一被除數(shù)進(jìn)行左移操作,得到第二被除數(shù);
103、從所述第二被除數(shù)中移除連續(xù)為0的比特,得到第三被除數(shù),以及從所述第一除數(shù)中移除連續(xù)為0的比特,得到第二除數(shù);
其中,移除連續(xù)為0的比特的數(shù)目為n,n大于等于1,對(duì)于第二被除數(shù)和第一除數(shù)的單次壓縮,兩者選擇的n相同,每次壓縮選擇的n可以不同,可以以遞減的模式選擇,即可以根據(jù)要求的壓縮精度和壓縮效率等設(shè)置單次移除比特的數(shù)目t,單次壓縮通過(guò)對(duì)第二被除數(shù)和第一除數(shù)進(jìn)行移除為0的比特后,得到壓縮后的除法器,即小位寬除法器。
可以理解的是,第二被除數(shù)和除數(shù)為同時(shí)壓縮。
104、將所述第三被除數(shù)與所述第二除數(shù)進(jìn)行除法運(yùn)算,得到實(shí)際運(yùn)算值。
本發(fā)明實(shí)施例中,通過(guò)現(xiàn)將第一被除數(shù)左移,然后將第二被除數(shù)中為連續(xù)為0的比特和第一除數(shù)中為連續(xù)0的比特移除,從而實(shí)現(xiàn)將大位寬除法器壓縮為小位寬除法器,有效減少原大位寬除法器在運(yùn)算時(shí)所需消耗的芯片資源,進(jìn)而提高運(yùn)算效率和提升芯片性能。
可選的,在一些發(fā)明實(shí)施例中,在移除上述第二被除數(shù)以及第一除數(shù)中比特連續(xù)為0的n個(gè)比特時(shí),可以先按照單次壓縮的比特?cái)?shù)t(t為固定的第一閾值)分別從上述第二被除數(shù)和第一除數(shù)中選取待壓縮比特集,然后再進(jìn)行壓縮。具體的,上述步驟103具體包括:
步驟A:按照二進(jìn)制位的從高至低的順序,從所述第二被除數(shù)中選擇連續(xù)t個(gè)比特作為第一待壓縮比特集,以及按照二進(jìn)制位的從高至低的順序,從所述第一除數(shù)中選擇連續(xù)t個(gè)比特作為第二待壓縮比特集,其中t為第一閾值,用于指示單次壓縮的比特?cái)?shù);可選的,在執(zhí)行壓縮操作之前,根據(jù)第一除數(shù)的有效位寬Q’確定t的取值范圍,可以精確地進(jìn)行壓縮。具體的,所述第一閾值t滿足如下條件:1≤t≤Q’*1/2,其中,Q’為正整數(shù)。
并判斷所述第一待壓縮比特集中的每一位是否為0,且判斷所述第二待壓縮比特集中的每一位是否為0;
步驟B:在判斷所述第一待壓縮比特集中的每一比特均為0,且判斷所述第二待壓縮比特集中的每一比特均為0時(shí),將所述第一待壓縮比特集從所述第二被除數(shù)中移除,得到壓縮后的第二被除數(shù)(即已移除所述第一待壓縮比特集的所述第二被除數(shù));以及將所述第二待壓縮比特集從所述第一除數(shù)中移除,得到壓縮后的第一除數(shù)(即已移除所述第二待壓縮比特集的第一除數(shù))。
通過(guò)每次選擇一個(gè)第一待壓縮比特集和一個(gè)第二待壓縮比特集,最終得到步驟104中的第三被除數(shù)和第二除數(shù),實(shí)現(xiàn)可以將原數(shù)據(jù)中連續(xù)為0的比特壓縮掉,可以不用一次壓縮一個(gè)為0的比特,在保證滿足壓縮精度前提下,有效減少壓縮次數(shù)。
可選的,在得到所述壓縮后的第二被除數(shù)和所述壓縮后的第一除數(shù)之后,上述步驟103還可以包括:
步驟C:判斷所述壓縮后的第二被除數(shù)和所述壓縮后的第一除數(shù)是否滿足預(yù)設(shè)壓縮條件;
若不滿足所述預(yù)設(shè)壓縮條件,則將所述壓縮后的第二被除數(shù)作為新的第二被除數(shù),將所述壓縮后的第一除數(shù)作為新的第一除數(shù),重復(fù)所述步驟A、所述步驟B及所述步驟C;
若滿足所述預(yù)設(shè)壓縮條件,則將所述壓縮的第二被除數(shù)作為所述第三被 除數(shù),將所述壓縮后的第一除數(shù)作為第二除數(shù),結(jié)束壓縮操作。通過(guò)判斷壓縮后的第一除數(shù)的位寬小于或等于所述第二閾值時(shí),則表明已達(dá)到所要求的精度,可以不用繼續(xù)壓縮,在滿足預(yù)設(shè)精度要求的前提下,進(jìn)一步提高壓縮效率。
可選的,上述預(yù)設(shè)壓縮條件包括以下之一:
所述壓縮后的第一除數(shù)的位寬Q小于或等于第二閾值,其中位寬Q為正整數(shù),所述第二閾值用于指示當(dāng)前的壓縮精度是否滿足預(yù)設(shè)壓縮精度;
所述第一除數(shù)中不存在每一比特均為0的第二待壓縮比特集;
所述壓縮后的第一除數(shù)的位寬Q小于或等于第二閾值,且所述壓縮后的第一除數(shù)中的下一個(gè)連續(xù)t個(gè)比特不均為0。
舉例來(lái)說(shuō),在得到所述壓縮后的所述第二被除數(shù)和所述壓縮后的所述第一除數(shù)之后,上述步驟C包括以下之一:
1、判斷所述已移除所述第二待壓縮比特集的所述第一除數(shù)的位寬是否小于或等于第二閾值,若小于或等于所述第二閾值,則結(jié)束壓縮操作。通過(guò)判斷壓縮后的第一除數(shù)的位寬小于或等于所述第二閾值時(shí),則表明已達(dá)到所要求的精度,可以不用繼續(xù)壓縮,例如,后續(xù)所選擇的待壓縮比特集多次不為0的情況下,繼續(xù)壓縮后得到的精度一定會(huì)更高,但實(shí)質(zhì)上當(dāng)前已經(jīng)達(dá)到所要求的壓縮精度,即可終止壓縮,一定程度上提高運(yùn)算效率。
2、在判斷所述第一除數(shù)中不存在為0的待壓縮比特集時(shí),則結(jié)束壓縮操作。通過(guò)該判斷,減少后續(xù)不必要操作,能夠提高運(yùn)算效率。
3、若壓縮后的第一除數(shù)的位寬小于或等于所述第二閾值,且該壓縮后的第一除數(shù)中的下一連續(xù)t個(gè)比特不均為0時(shí),則表明已達(dá)到所要求的精度,可以不用繼續(xù)壓縮,例如,后續(xù)所選擇的待壓縮比特集多次不為0的情況下,繼續(xù)壓縮后得到的精度一定會(huì)更高,但實(shí)質(zhì)上當(dāng)前已經(jīng)達(dá)到所要求的壓縮精度,即可終止壓縮,一定程度上提高運(yùn)算效率。
可選的,采用上述步驟A、步驟B及步驟C對(duì)第二被除數(shù)和第一除數(shù)進(jìn)行壓縮時(shí),主要有兩種方式進(jìn)行壓縮,具體操作如下:
一、按照二進(jìn)制位的順序依次選擇為0的比特集,并依次壓縮為0的比 特集。
1、對(duì)第二被除數(shù)進(jìn)行壓縮:
所述按照二進(jìn)制位的從高至低的順序,從所述第二被除數(shù)中選擇連續(xù)t個(gè)比特的第一待壓縮比特集,包括:
a1、按照二進(jìn)制位的從高至低的順序和所述第一閾值,從已移除所述第一待壓縮比特集的被除數(shù)中選擇下一第一待壓縮比特集;
b1、判斷所述下一第一待壓縮比特集是否為0;
c1、若為0,則將所述下一第一待壓縮比特集從所述已移除第一所述待壓縮比特集的被除數(shù)中移除;若不為0,則按照二進(jìn)制位的從高至低的順序和所述第一閾值,從所述已移除所述第一待壓縮比特集的被除數(shù)中選擇下一第一待壓縮比特集,并重復(fù)執(zhí)行步驟b1和步驟c1,直至已移除所述第一待壓縮比特集的被除數(shù)的位寬小于或等于所述第二閾值。在循環(huán)壓縮的每一次選擇下一第一待壓縮比特集之前,通過(guò)判斷當(dāng)前被除數(shù)的的位寬是否小于等于第二閾值,可以判斷當(dāng)前的壓縮結(jié)果是否已滿足精度要求,若滿足則結(jié)束壓縮操作,在保證除法運(yùn)算結(jié)果精度的前提下,進(jìn)一步提高運(yùn)算效率。
2、對(duì)第一除數(shù)進(jìn)行壓縮:
所述按照二進(jìn)制位的從高至低的順序,從所述第一除數(shù)中選擇連續(xù)t個(gè)比特的第二待壓縮比特集,包括:
a2、按照二進(jìn)制位的從高至低的順序和所述第一閾值,從已移除所述第二待壓縮比特集的除數(shù)中選擇下一第二待壓縮比特集;
b2、判斷所述下一第二待壓縮比特集是否為0;
c2、若為0,則將所述下一第二待壓縮比特集從所述已移除所述待壓縮比特集的除數(shù)中移除;若不為0,則按照二進(jìn)制位的從高至低的順序和所述第一閾值,從所述已移除所述第二待壓縮比特集的除數(shù)中選擇下一第二待壓縮比特集,并重復(fù)執(zhí)行步驟b2和步驟c2,直至已移除第二待壓縮比特集的除數(shù)的位寬小于或等于所述第二閾值。在循環(huán)壓縮的每一次選擇下一第二待壓縮比特集之前,通過(guò)判斷當(dāng)前除數(shù)的的位寬是否小于等于第二閾值,可以判斷當(dāng)前的壓縮結(jié)果是否已滿足精度要求,若滿足則結(jié)束壓縮操作,在保證除法運(yùn)算結(jié)果精度的前提下,進(jìn)一步提高運(yùn)算效率。
這種情況下,按照二進(jìn)制位的順序,每選取t位比特集,若該t位比特集為0,則移除,繼續(xù)選擇下一個(gè)t位比特集;若該t位比特集不為0,則不移除,則繼續(xù)選擇下一個(gè)t位比特集,在下一個(gè)t位比特集為0時(shí)便移除該比特集,若不為0,則繼續(xù)選擇,以此類推。
另外,還可以通過(guò)以下手段進(jìn)一步提高運(yùn)算效率:在除數(shù)的某t位比特集不為0時(shí),也可以判斷此時(shí)的除數(shù)的位寬是否小于或等于上述第二閾值,若是,則表明當(dāng)前的壓縮精度已達(dá)到所要求的精度,即可以停止后續(xù)還未完成的壓縮操作,實(shí)現(xiàn)既滿足壓縮精度有保證運(yùn)算效率較高,具體不再贅述。
二、先判斷第二被除數(shù)和第一除數(shù)中為0的待壓縮比特集,再一同壓縮。
1、按照二進(jìn)制位的從高至低的順序以及第一閾值t,依次從所述第二被除數(shù)中選擇N個(gè)第一待壓縮比特集,每個(gè)所述第一待壓縮比特集包括連續(xù)為0的t個(gè)比特,其中,N為正整數(shù),所述第一閾值t用于指示單次壓縮的比特?cái)?shù);
2、按照二進(jìn)制位的從高至低的順序以及所述第一閾值t,依次從所述第一除數(shù)中選擇N個(gè)第二待壓縮比特集,每個(gè)所述第二待壓縮比特集包括連續(xù)為0的t個(gè)比特;
3、將所述為0的N個(gè)第一待壓縮比特集從所述第二被除數(shù)中移除,得到所述第三被除數(shù),以及將所述為0的N個(gè)第二待壓縮比特集從所述第一除數(shù)中移除,得到所述第二除數(shù)。
可選的,若在第一除數(shù)中不存在為0的t位比特集,但第二被除數(shù)中仍存在為0的t位比特集,可以繼續(xù)壓縮第二被除數(shù),也可以結(jié)束壓縮操作。
可選的,在一些發(fā)明實(shí)施例中,在選擇所述第一待壓縮比特集和所述第二待壓縮比特集之前,所述方法還包括:
按照二進(jìn)制位的從高至低的順序,判斷所述第一除數(shù)的第一個(gè)不為0的比特和所述第一除數(shù)的最后一個(gè)為0的比特,并計(jì)算從所述第一個(gè)不為0的比特至所述最后一個(gè)為0的比特的有效位寬,根據(jù)所述有效位寬確定所述第一閾值,具體為,所述第一閾值t滿足如下條件:1≤t≤Q’*1/2,其中,Q’為所述第一除數(shù)的有效位寬,Q’為正整數(shù)。
可選的,在一些發(fā)明實(shí)施例中,在滿足所述預(yù)設(shè)壓縮條件,結(jié)束壓縮操作之后,即若所述已移除所述第二待壓縮比特集的所述第一除數(shù)的位寬小于或等于第二閾值時(shí),則結(jié)束壓縮操作之后;或者,在判斷所述第一除數(shù)中不存在為0的待壓縮比特集時(shí),則結(jié)束壓縮操作之后;或者,在壓縮后的第一除數(shù)的位寬小于或等于所述第二閾值,且該壓縮后的第一除數(shù)中的下一個(gè)t位比特集不為0時(shí),則結(jié)束壓縮操作之后,所述方法還包括:
判斷預(yù)設(shè)的理論運(yùn)算值與所述實(shí)際運(yùn)算值之差是否小于壓縮精度,所述預(yù)設(shè)的理論運(yùn)算值為所述第二被除數(shù)與所述第一除數(shù)進(jìn)行除法運(yùn)算得到的值;
若小于,則結(jié)束操作;若不小于,則重復(fù)執(zhí)行選擇待壓縮比特集和移除為0的待壓縮比特集的操作(包括上述步驟a1、b1、及c1,a2、b2、及c2),直至所述理論運(yùn)算值與所述實(shí)際運(yùn)算值之差小于壓縮精度??蛇x的,若經(jīng)過(guò)一次完整的壓縮操作后,仍未達(dá)到精度要求,可以重復(fù)執(zhí)行壓縮操作,則可以繼續(xù)使用上述第一閾值,也可以選擇更小的第三閾值,具體重復(fù)的次數(shù)不作限定。
本實(shí)施例中,通過(guò)進(jìn)一步的判斷經(jīng)過(guò)壓縮操作后的除法運(yùn)算結(jié)果是否達(dá)到要求的壓縮精度,從而決定是否需要再次進(jìn)行壓縮操作,提高壓縮精度,以保證除法運(yùn)算結(jié)果的精準(zhǔn)度。
為便于理解,下面以一具體應(yīng)用場(chǎng)景對(duì)本發(fā)明實(shí)施例中的一種除法運(yùn)算方法進(jìn)行舉例說(shuō)明:
計(jì)算除法器A/B,A為50bits的數(shù)據(jù):0x0000021385271,B為50bits的數(shù)據(jù):0x0003245145483,要求壓縮精度k為0.001,單次壓縮的比特?cái)?shù)t為5bits,壓縮前除法計(jì)算理論結(jié)果為0.0025813818444914,以下為具體的壓縮過(guò)程:
201、將A左移10bits,變?yōu)?x0000084E149C400,則除法器A/B變?yōu)橐粋€(gè)60bits除以50bits的除法器A’/B,即0x0000084E149C400/0x0003245145483。
202、將除法器A’/B壓縮為一個(gè)25bits除以15bits的除法器,即按照二 進(jìn)制位的順序,按每5位選取待壓縮比特集,具體如下:
1、第一輪壓縮:
選擇,A’的59-55位即[59:55],以及B的49-45位即[49:45],在判斷B[49:45]=0且A’[59:55]=0時(shí),將A’[59:55]從A’中移除,以及將B[49:45]從B中移除,則除法器A’/B壓縮為A’[54:0]/B[44:0]。
2、第二輪壓縮:
選擇,A’[54:50],以及B[44:40],在判斷B[44:40]=0且A’[54:50]=0時(shí),將A’[54:50]從A’中移除,以及將[44:40]從B中移除,則除法器A’/B壓縮為A’[54:0]/B[44:0]。
3、第三輪壓縮:
選擇,A’[49:45],以及B[39:35],在判斷B[39:35]≠0時(shí),結(jié)束壓縮操作,則除法器A’/B壓縮為A’[49:25]/B[39:25]。
通過(guò)上述三輪壓縮,將60bits除以50bits的除法器壓縮為25bits除以15bits的除法器,壓縮后的計(jì)算結(jié)果為0.0025815,則精度誤差delt=理論除法器計(jì)算值-壓縮后的除法計(jì)算值=0.0025813818444914-0.0025815=0.0000001,由此可見(jiàn),壓縮后的除法器滿足精度0.001的要求。
又舉例來(lái)說(shuō),若k要求為0.0001,則需要將被除數(shù)A左移14Bits,將除法器A/B變?yōu)橐粋€(gè)64bits除以50bits的除法器A’/B,再通過(guò)相同的壓縮算法可以將除法器A’/B壓縮為一個(gè)29bits除以15bits的除法器,整個(gè)過(guò)程所消耗的芯片資源比k=0.001時(shí)所消耗多,即壓縮精度要求越低,則壓縮算法所節(jié)省的資源越明顯。要能達(dá)到所要求的壓縮精度k,上述精度誤差delt只需滿足小于1/2k。
參閱圖2,為本發(fā)明提供一種除法運(yùn)算裝置,所述裝置包括:
輸入模塊201,用于在第一被除數(shù)不大于第一除數(shù)時(shí),將所述第一被除數(shù)輸入移位模塊,所述第一被除數(shù)和所述第一除數(shù)為二進(jìn)制數(shù);
所述移位模塊202,用于對(duì)所述第一被除數(shù)進(jìn)行左移操作,得到第二被除數(shù);
處理模塊203,用于從所述第二被除數(shù)中移除連續(xù)為0的比特,得到第三 被除數(shù),以及從所述第一除數(shù)中移除連續(xù)為0的比特,得到第二除數(shù);
運(yùn)算模塊204,用于將所述第三被除數(shù)與所述第二除數(shù)進(jìn)行除法運(yùn)算,得到實(shí)際運(yùn)算值。
本發(fā)明實(shí)施例中,通過(guò)移位模塊202先將第一被除數(shù)左移,然后通過(guò)處理模塊203將第二被除數(shù)中為連續(xù)為0的比特和第一除數(shù)中為連續(xù)0的比特移除,從而實(shí)現(xiàn)將大位寬除法器壓縮為小位寬除法器,有效減少原大位寬除法器在運(yùn)算時(shí)所需消耗的芯片資源,進(jìn)而提高運(yùn)算效率和提升芯片性能。
可選的,在一些發(fā)明實(shí)施例中,所述處理模塊203具體用于執(zhí)行以下步驟:
步驟A:按照二進(jìn)制位的從高至低的順序,從所述第二被除數(shù)中選擇連續(xù)t個(gè)比特作為第一待壓縮比特集;按照二進(jìn)制位的從高至低的順序,從所述第一除數(shù)中選擇連續(xù)t個(gè)比特作為第二待壓縮比特集,其中t為第一閾值,用于指示單次壓縮的比特?cái)?shù);
步驟B:若所述第一待壓縮比特集中的每一比特均為0,且所述第二待壓縮比特集中的每一比特均為0,則將所述第一待壓縮比特集從所述第二被除數(shù)中移除,得到壓縮后的第二被除數(shù),以及將所述第二待壓縮比特集從所述第一除數(shù)中移除,得到壓縮后的第一除數(shù)。
可選的,在一些發(fā)明實(shí)施例中,所述處理模塊203在得到所述壓縮后的第二被除數(shù)和所述壓縮后的第一除數(shù)之后,還用于執(zhí)行以下步驟:
步驟C:判斷所述壓縮后的第二被除數(shù)和所述壓縮后的第一除數(shù)是否滿足預(yù)設(shè)壓縮條件;
若不滿足所述預(yù)設(shè)壓縮條件,則將所述壓縮后的第二被除數(shù)作為新的第二被除數(shù),將所述壓縮后的第一除數(shù)作為新的第一除數(shù),重復(fù)所述步驟A、所述步驟B及所述步驟步驟C;
若滿足所述預(yù)設(shè)壓縮條件,則將所述壓縮的第二被除數(shù)作為所述第三被除數(shù),將所述壓縮后的第一除數(shù)作為第二除數(shù),結(jié)束壓縮操作。通過(guò)判斷壓縮后的第一除數(shù)的位寬小于或等于所述第二閾值時(shí),則表明已達(dá)到所要求的 精度,可以不用繼續(xù)壓縮,在滿足預(yù)設(shè)精度要求的前提下,進(jìn)一步提高壓縮效率。
可選的,所述預(yù)設(shè)壓縮條件包括以下之一:
所述壓縮的第一除數(shù)的位寬Q小于或等于第二閾值,其中位寬Q為正整數(shù),所述第二閾值用于指示當(dāng)前的壓縮精度是否滿足預(yù)設(shè)壓縮精度;
所述第一除數(shù)中不存在每一比特均為0的第二待壓縮比特集;
所述壓縮的第一除數(shù)的位寬Q小于或等于第二閾值,且所述壓縮后的第一除數(shù)中的下一連續(xù)t個(gè)比特不均為0。
可選的,在一些發(fā)明實(shí)施例中,所述處理模塊203具體用于:
1、對(duì)第二被除數(shù)進(jìn)行壓縮:
a1、按照二進(jìn)制位的從高至低的順序和所述第一閾值,從已移除所述第一待壓縮比特集的被除數(shù)中選擇下一第一待壓縮比特集;
b1、判斷所述下一第一待壓縮比特集是否為0;
c1、若為0,則將所述下一第一待壓縮比特集從所述已移除第一所述待壓縮比特集的被除數(shù)中移除;若不為0,則按照二進(jìn)制位的從高至低的順序和所述第一閾值,從所述已移除所述第一待壓縮比特集的被除數(shù)中選擇下一第一待壓縮比特集,并重復(fù)執(zhí)行步驟b1和步驟c1,直至已移除所述第一待壓縮比特集的被除數(shù)的位寬小于或等于所述第二閾值。
2、對(duì)第一除數(shù)進(jìn)行壓縮:
a2、按照二進(jìn)制位的從高至低的順序和所述第一閾值,從已移除所述第二待壓縮比特集的除數(shù)中選擇下一第二待壓縮比特集;
b2、判斷所述下一第二待壓縮比特集是否為0;
c2、若為0,則將所述下一第二待壓縮比特集從所述已移除所述待壓縮比特集的除數(shù)中移除;若不為0,則按照二進(jìn)制位的從高至低的順序和所述第一閾值,從所述已移除所述第二待壓縮比特集的除數(shù)中選擇下一第二待壓縮比特集,并重復(fù)執(zhí)行步驟b2和步驟c2,直至已移除第二待壓縮比特集的除數(shù)的位寬小于或等于所述第二閾值。
可選的,在一些發(fā)明實(shí)施例中,所述處理模塊203具體用于:
按照二進(jìn)制位的從高至低的順序以及所述第一閾值,依次從所述第二被除數(shù)中選擇N個(gè)第一待壓縮比特集,每個(gè)所述第一待壓縮比特集包括連續(xù)為0的t個(gè)比特,N為正整數(shù);
按照二進(jìn)制位的從高至低的順序以及所述第一閾值,依次從所述第一除數(shù)中選擇N個(gè)第二待壓縮比特集,每個(gè)所述第二待壓縮比特集包括連續(xù)為0的t個(gè)比特;
將所述N個(gè)第一待壓縮比特集從所述第二被除數(shù)中移除,得到所述第三被除數(shù),以及將所述N個(gè)第二待壓縮比特集從所述第一除數(shù)中移除,得到所述第二除數(shù)。
可選的,在一些發(fā)明實(shí)施例中,為進(jìn)一步提高運(yùn)算效率,所述處理模塊203在所述按照二進(jìn)制位的從高至低的順序,從所述第二被除數(shù)中選擇比特連續(xù)且位數(shù)為第一閾值的第一待壓縮比特集之前還用于:
按照二進(jìn)制位的從高至低的順序,判斷所述第一除數(shù)的第一個(gè)不為0的比特和所述第一除數(shù)的最后一個(gè)為0的比特,并通過(guò)運(yùn)算模塊204計(jì)算從所述第一個(gè)不為0的比特至所述最后一個(gè)為0的比特的有效位寬,根據(jù)所述有效位寬確定所述第一閾值??蛇x的,在進(jìn)行壓縮操作前,根據(jù)第一除數(shù)的有效位寬Q’對(duì)第一閾值t進(jìn)行計(jì)算,所述第一閾值t滿足如下條件:1≤t≤Q’*1/2,其中,Q’為所述第一除數(shù)的有效位寬,Q’為正整數(shù)。
可選的,在一些發(fā)明實(shí)施例中,在判斷滿足所述預(yù)設(shè)壓縮條件,結(jié)束壓縮操作之后,所述處理模塊203還用于執(zhí)行:
判斷預(yù)設(shè)的理論運(yùn)算值與所述實(shí)際運(yùn)算值之差是否小于壓縮精度;
若小于,則結(jié)束操作;若不小于,則重復(fù)執(zhí)行選擇待壓縮比特集和移除為0的待壓縮比特集的操作,直至所述理論運(yùn)算值與所述實(shí)際運(yùn)算值之差小于所述壓縮精度。
本發(fā)明還提供一種計(jì)算機(jī)存儲(chǔ)介質(zhì),該介質(zhì)存儲(chǔ)有程序,該程序執(zhí)行時(shí)包括上述除法運(yùn)算裝置執(zhí)行一種除法運(yùn)算方法中的部分或者全部步驟。
本發(fā)明實(shí)施例提供一種除法運(yùn)算裝置30,用于實(shí)現(xiàn)降低除法器在運(yùn)算時(shí)所需消耗的芯片資源的功能,如圖3所示,除法運(yùn)算的裝置30包括輸入器31,移位器32、處理器33和計(jì)算器34,其中,所述輸入器31,移位器32、處理器33和計(jì)算器34之間通過(guò)總線35相互連接。
所述輸入器31,用于在第一被除數(shù)不大于除數(shù)時(shí),將所述第一被除數(shù)輸入移位器,所述第一被除數(shù)和所述第一除數(shù)為二進(jìn)制數(shù);
所述移位器32,用于對(duì)輸入所述移位器32的所述第一被除數(shù)進(jìn)行左移操作,得到第二被除數(shù);
所述處理器33,用于從所述第二被除數(shù)中移除連續(xù)為0的比特,得到第三被除數(shù),以及從所述第一除數(shù)中移除連續(xù)為0的比特,得到第二除數(shù);
所述計(jì)算器34,用于將處理器33得到的所述第三被除數(shù)與所述第二除數(shù)進(jìn)行除法運(yùn)算,得到實(shí)際運(yùn)算值。
所述處理器33可以是通用處理器,包括中央處理器(Central Processing Unit,CPU)、網(wǎng)絡(luò)處理器(Network Processor,NP)等;還可以是數(shù)字信號(hào)處理器(DSP)、專用集成電路(ASIC)、現(xiàn)場(chǎng)可編程門陣列(FPGA)或者其他可編程邏輯器件等。
所述處理器33為CPU時(shí),所述除法運(yùn)算裝置30還可以包括:存儲(chǔ)器,用于存儲(chǔ)程序。具體地,程序可以包括程序代碼,所述程序代碼包括計(jì)算機(jī)操作指令。存儲(chǔ)器可能包含隨機(jī)存取存儲(chǔ)器(random access memory,RAM),也可能還包括非易失性存儲(chǔ)器(non-volatile memory),例如至少一個(gè)磁盤存儲(chǔ)器。所述處理器33執(zhí)行所述存儲(chǔ)器中存儲(chǔ)的程序代碼,實(shí)現(xiàn)上述功能。
在一些發(fā)明實(shí)施例中,所述處理器33還用于執(zhí)行以下步驟:
步驟A:按照二進(jìn)制位的從高至低的順序,從所述第二被除數(shù)中選擇連續(xù)t個(gè)比特作為第一待壓縮比特集;按照二進(jìn)制位的從高至低的順序,從所述第一除數(shù)中選擇連續(xù)t個(gè)比特作為第二待壓縮比特集,其中t為第一閾值,用于指示單次壓縮的比特?cái)?shù);
步驟B:若所述第一待壓縮比特集中的每一比特均為0,且所述第二待壓縮比特集中的每一比特均為0,則將所述第一待壓縮比特集從所述第二被除數(shù) 中移除,得到壓縮后的第二被除數(shù),以及將所述第二待壓縮比特集從所述第一除數(shù)中移除,得到壓縮后的第一除數(shù)。
在一些發(fā)明實(shí)施例中,所述處理器33在得到所述壓縮后的第二被除數(shù)和所述壓縮后的第一除數(shù)之后,還用于執(zhí)行以下步驟:
步驟C:判斷所述壓縮后的第二被除數(shù)和所述壓縮后的第一除數(shù)是否滿足預(yù)設(shè)壓縮條件;
若不滿足所述預(yù)設(shè)壓縮條件,則將所述壓縮后的第二被除數(shù)作為新的第二被除數(shù),將所述壓縮后的第一除數(shù)作為新的第一除數(shù),重復(fù)所述步驟A、所述步驟B及所述步驟步驟C;
若滿足所述預(yù)設(shè)壓縮條件,則將所述壓縮的第二被除數(shù)作為所述第三被除數(shù),將所述壓縮后的第一除數(shù)作為第二除數(shù),結(jié)束壓縮操作。
可選的,所述預(yù)設(shè)壓縮條件包括以下之一:
所述壓縮的第一除數(shù)的位寬Q小于或等于第二閾值,其中位寬Q為正整數(shù),所述第二閾值用于指示當(dāng)前的壓縮精度是否滿足預(yù)設(shè)壓縮精度;
所述第一除數(shù)中不存在每一比特均為0的第二待壓縮比特集;
所述壓縮的第一除數(shù)的位寬Q小于或等于第二閾值,且所述壓縮后的第一除數(shù)中的下一連續(xù)t個(gè)比特不均為0。
在一些發(fā)明實(shí)施例中,所述處理器33還用于執(zhí)行以下步驟:
按照二進(jìn)制位的從高至低的順序以及所述第一閾值,依次從所述第二被除數(shù)中選擇N個(gè)第一待壓縮比特集,每個(gè)所述第一待壓縮比特集包括連續(xù)為0的t個(gè)比特,N為正整數(shù);
按照二進(jìn)制位的從高至低的順序以及第一閾值t,依次從所述第一除數(shù)中選擇為0的N個(gè)第二待壓縮比特集,每個(gè)所述第二待壓縮比特集包括連續(xù)為0的t個(gè)比特,所述第一閾值t用于指示單次壓縮的比特?cái)?shù);
將所述N個(gè)第一待壓縮比特集從所述第二被除數(shù)中移除,得到所述第三被除數(shù),以及將所述N個(gè)第二待壓縮比特集從所述第一除數(shù)中移除,得到所述第二除數(shù)。
其中,所述第一閾值t滿足如下條件:1≤t≤Q’*1/2,其中,Q’為所述第一除數(shù)的有效位寬,Q’為正整數(shù)。
在一些發(fā)明實(shí)施例中,所述處理器33在選擇所述第一待壓縮比特集和所述第二待壓縮比特集之前還用于執(zhí)行以下步驟:
按照二進(jìn)制位的從高至低的順序,判斷所述第一除數(shù)的第一個(gè)不為0的比特和所述第一除數(shù)的最后一個(gè)為0的比特,并計(jì)算從所述第一個(gè)不為0的比特至所述最后一個(gè)為0的比特的有效位寬,根據(jù)所述有效位寬確定所述第一閾值t。
在一些發(fā)明實(shí)施例中,所述處理器33在通過(guò)所述判別器35判斷滿足所述預(yù)設(shè)壓縮條件,結(jié)束壓縮操作之后還用于執(zhí)行以下步驟:
判斷預(yù)設(shè)的理論運(yùn)算值與所述實(shí)際運(yùn)算值之差是否小于壓縮精度;
若小于,則結(jié)束操作;若不小于,則重復(fù)執(zhí)行選擇待壓縮比特集和移除為0的待壓縮比特集的操作,直至所述理論運(yùn)算值與所述實(shí)際運(yùn)算值之差小于壓縮精度。
所述除法運(yùn)算裝置30也可以是專用集成電路(ASIC)、現(xiàn)場(chǎng)可編程門陣列(FPGA)或者其他可編程邏輯器件實(shí)現(xiàn),完成本申請(qǐng)圖1所示的除法運(yùn)算功能。
在上述實(shí)施例中,對(duì)各個(gè)實(shí)施例的描述都各有側(cè)重,某個(gè)實(shí)施例中沒(méi)有詳述的部分,可以參見(jiàn)其他實(shí)施例的相關(guān)描述。
所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡(jiǎn)潔,上述描述的系統(tǒng),裝置和單元的具體工作過(guò)程,可以參考前述方法實(shí)施例中的對(duì)應(yīng)過(guò)程,在此不再贅述。
在本申請(qǐng)所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的系統(tǒng),裝置和方法,可以通過(guò)其它的方式實(shí)現(xiàn)。例如,以上所描述的裝置實(shí)施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)單元或組件可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過(guò)一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機(jī)械或其它的形式。
所述作為分離部件說(shuō)明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方, 或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部單元來(lái)實(shí)現(xiàn)本實(shí)施例方案的目的。
另外,在本發(fā)明各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中。上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能單元的形式實(shí)現(xiàn)。
所述集成的單元如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述方法的全部或部分步驟。而前述的存儲(chǔ)介質(zhì)包括:U盤、移動(dòng)硬盤、只讀存儲(chǔ)器(ROM,Read-Only Memory)、隨機(jī)存取存儲(chǔ)器(RAM,Random Access Memory)、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
以上對(duì)本發(fā)明所提供的一種除法運(yùn)算方法及裝置進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體個(gè)例對(duì)本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說(shuō)明只是用于幫助理解本發(fā)明的方法及其核心思想;同時(shí),對(duì)于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實(shí)施方式及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本說(shuō)明書內(nèi)容不應(yīng)理解為對(duì)本發(fā)明的限制。