亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種除法運(yùn)算方法及裝置的制作方法

文檔序號(hào):6338295閱讀:313來源:國知局
專利名稱:一種除法運(yùn)算方法及裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種利用數(shù)制表示且應(yīng)用在半導(dǎo)體器件的非線性組合數(shù)字除法計(jì)算 方法以及實(shí)現(xiàn)這種運(yùn)算方法的除法裝置,更具體地,本發(fā)明涉及一種除法運(yùn)算方法及采用 該方法的運(yùn)算裝置。
背景技術(shù)
在工控領(lǐng)域內(nèi),微控制器近幾年的應(yīng)用越來越廣泛和重要,特別是在電子、航空航 天、家電、通信等領(lǐng)域已經(jīng)達(dá)到無可取代的程度。傳統(tǒng)的微控制器的設(shè)計(jì),在執(zhí)行除法運(yùn)算 指令時(shí)總是把相減和移位操作放在兩個(gè)不同的時(shí)鐘周期內(nèi),也就是移位操作必須在相減操 作完成之后的下一個(gè)時(shí)鐘周期內(nèi)來執(zhí)行。在對微控制器運(yùn)算速度要求不高的條件下,該除 法指令的實(shí)現(xiàn)方法也許能夠應(yīng)對。但是隨著科學(xué)技術(shù)的發(fā)展以及對控制技術(shù)要求的提高, 特別是在高端的嵌入式領(lǐng)域內(nèi),該種除法指令實(shí)現(xiàn)方法的速度慢性能低的缺點(diǎn)就嚴(yán)重的暴 露出來了。針對此問題,技術(shù)人員研究發(fā)展出各種能夠提高除法運(yùn)算效率的方法,其中公開 號(hào)為CN1423189,名稱為“一種除法器”的中國發(fā)明專利提出了一種采用移位運(yùn)算和減法運(yùn) 算的除法器,包括減法器、移位器1.比較器、移位器2.移位加法器,計(jì)數(shù)器和復(fù)選器;除數(shù) 經(jīng)過所述移位器1移位后與被除數(shù)一起輸入所述減法器,所述減法器的輸出連接到所述比 較器和所述計(jì)數(shù)器,所述比較器與所述移位加法器和所述移位器2相連,所述移位加法器 與所述移位器的輸出送至所述復(fù)選器,所述計(jì)數(shù)器控制所述復(fù)選器的輸出是否返回所述減 法器。上述專利文件中提出的除法運(yùn)算方法把一個(gè)除法運(yùn)算用減法和移位操作來實(shí)現(xiàn), 移位根據(jù)減法操作的結(jié)果來進(jìn)行相應(yīng)的操作。但是該方法仍把相減和移位放在了兩個(gè)時(shí)鐘 周期內(nèi)來完成,從根本上說依然沒有最大化的縮減一個(gè)除法運(yùn)算的時(shí)鐘周期數(shù),這樣就很 難達(dá)到各種狀況下對微控制器執(zhí)行指令的快速高效的要求。

發(fā)明內(nèi)容
本發(fā)明的發(fā)明目的在于提供一種效率高、速度快且指令狀態(tài)進(jìn)行周期優(yōu)化的除法 運(yùn)算方法,同時(shí)還提供了采用這種運(yùn)算方法的除法運(yùn)算裝置。為了實(shí)現(xiàn)上述的發(fā)明目的,本發(fā)明采用如下的技術(shù)方案本發(fā)明所提供的除法的運(yùn)算方法概括來說包括如下的幾步運(yùn)算步驟(1)在寄存單元內(nèi)存入無符號(hào)整數(shù)的被除數(shù)、除數(shù),以及中間值;(2)對被除數(shù)以及中間值進(jìn)行聯(lián)合左移位操作,并計(jì)算中間值左移位操作后與除 數(shù)之間的差值;(3)在與步驟(2)同一時(shí)鐘周期內(nèi),如果步驟(2)中所述差值大于等于0,則將所 述的差值替代并作為所述的中間值,并將被除數(shù)最低位置1替代原有的被除數(shù);如果步驟 (2)中所述差值小于0,則將被除數(shù)最低位置0替代原有的被除數(shù);
3
(4)判斷移位次數(shù)是否等于所述被除數(shù)的存儲(chǔ)位數(shù),一般來說也是寄存單元的存 儲(chǔ)位數(shù),如果不是則返回步驟2重新執(zhí)行,如果是則結(jié)束運(yùn)算。優(yōu)選地,在步驟(1)中所述的被除數(shù)存儲(chǔ)在所述的累加器中,所述的除數(shù)存儲(chǔ)在 所述的寄存器中,所述的中間值存儲(chǔ)在所述的第二暫存器中;在步驟( 開始運(yùn)算之后,所 述的除數(shù)存儲(chǔ)在第一暫存器中,所述的被除數(shù)存儲(chǔ)在寄存器中并開始運(yùn)算。這樣,在整個(gè)運(yùn) 算方法運(yùn)算結(jié)束之后所述的寄存器內(nèi)存儲(chǔ)除法運(yùn)算的商,所述的第二暫存器內(nèi)存儲(chǔ)的是除 法運(yùn)算的余數(shù),當(dāng)然可以根據(jù)需要將上述的商或者余數(shù)轉(zhuǎn)移到累加器或者寄存器中方便調(diào) 用。另外,在整個(gè)除法運(yùn)算方法開始運(yùn)算之前,在步驟(1)中存入的中間值為整數(shù)0。為了優(yōu)化整個(gè)除法運(yùn)算方法的計(jì)算周期,在所述步驟O)中被除數(shù)以及中間值進(jìn) 行左移位操作,并且計(jì)算中間值左移位操作后與除數(shù)之間的差值,這兩步操作是在同一時(shí) 鐘周期內(nèi)完成的。同時(shí)需要說明的是,由于本除法運(yùn)算方法是基于無符號(hào)的整數(shù)之間的運(yùn) 算關(guān)系,因此上述的移位操作采用的是邏輯左移操作,避免符號(hào)位對整個(gè)運(yùn)算方法產(chǎn)生不 必要的影響。更具體地,通過在運(yùn)算邏輯單元內(nèi)設(shè)置的不同功能模塊,上述除法運(yùn)算方法中各 個(gè)計(jì)算步驟通過運(yùn)算邏輯單元內(nèi)的不同功能模塊完成。具體來說,所述步驟O)中的左移 位操作通過移位器完成,所述的差值運(yùn)算通過加法器完成,所述的整個(gè)運(yùn)算過程中的比較 運(yùn)算均通過比較器完成,所述的整個(gè)運(yùn)算過程中的計(jì)數(shù)均通過計(jì)數(shù)器完成。本發(fā)明還提供了采用上述無符號(hào)整數(shù)除法運(yùn)算方法的一種除法運(yùn)算裝置,所述的 除法運(yùn)算裝置包括用于進(jìn)行邏輯運(yùn)算的運(yùn)算邏輯單元,以及用于存儲(chǔ)數(shù)據(jù)以及中間運(yùn)算數(shù) 據(jù)的寄存單元,所述的寄存單元中的數(shù)據(jù)通過運(yùn)算邏輯單元控制進(jìn)行邏輯運(yùn)算。具體地,所述的寄存單元包括用于存儲(chǔ)被除數(shù)的累加器,以及用于存儲(chǔ)除數(shù)的寄 存器,所述的寄存單元還至少包括用于存儲(chǔ)邏輯運(yùn)算過程的中間過渡數(shù)據(jù)的第一暫存器以 及第二暫存器。當(dāng)然,寄存器單元可以根據(jù)實(shí)際情況包括更多的暫存器用于存儲(chǔ)邏輯運(yùn)算 中的產(chǎn)生的中間數(shù)據(jù),而不限于上述說明的兩個(gè)暫存器。一般來說,所述累加器、寄存器以及所述的第一暫存器和第二暫存器的存儲(chǔ)位數(shù) 相同,優(yōu)選為2指數(shù)倍,更優(yōu)選的是采用8位或者16位存儲(chǔ)單元。更具體的說,所述的運(yùn)算邏輯單元至少包括用于邏輯運(yùn)算的加法器,用于控制所 述的寄存單元中數(shù)據(jù)移位的移位器,用于比較運(yùn)算的比較器,用于統(tǒng)計(jì)數(shù)據(jù)的計(jì)數(shù)器以及 用于統(tǒng)一上述部件工作時(shí)序的晶振。這樣,通過采用上述的技術(shù)方案,本發(fā)明提供了一種運(yùn)算速度快,運(yùn)算效率高,并 且計(jì)算周期得到優(yōu)化的除法運(yùn)算方法,并且還提供了一種采用上述除法運(yùn)算方法的除法運(yùn)
算裝置。


圖1中顯示的是本發(fā)明所采用的除法運(yùn)算裝置實(shí)施例的示意圖;圖2中顯示的是本發(fā)明的除法運(yùn)算方法實(shí)施例的流程示意圖;圖3中顯示的是本發(fā)明的除法運(yùn)算方法實(shí)施例的時(shí)序圖。
具體實(shí)施例方式本發(fā)明在于提供一種運(yùn)算速度快,運(yùn)算效率高的除法運(yùn)算方法以及采用這種運(yùn)算 方法的除法運(yùn)算裝置。下面結(jié)合說明書附圖對本發(fā)明的具體實(shí)施例進(jìn)行詳細(xì)的說明。圖1中顯示的是本發(fā)明所采用的除法運(yùn)算裝置實(shí)施例的示意圖。在本實(shí)施例中的 除法運(yùn)算裝置包括用于進(jìn)行邏輯運(yùn)算的運(yùn)算邏輯單元ALU,以及用于存儲(chǔ)數(shù)據(jù)以及中間運(yùn) 算數(shù)據(jù)的寄存單元,所述的寄存單元中的數(shù)據(jù)通過運(yùn)算邏輯單元ALU控制進(jìn)行邏輯運(yùn)算。 本實(shí)施例中的寄存單元包括用于存儲(chǔ)被除數(shù)的累加器Acc,以及用于存儲(chǔ)除數(shù)的寄存器B, 所述的寄存單元還至少包括用于存儲(chǔ)邏輯運(yùn)算過程的中間過渡數(shù)據(jù)第一暫存器Tmpl以及 第二暫存器Tmp2。上述的運(yùn)算邏輯單元ALU以及上述的累加器Acc,寄存器B,第一暫存器 Tmpl和第二暫存器Tmp2均與除法運(yùn)算裝置的總線連接。在本實(shí)施例中的累加器Acc、寄存 器B以及所述的第一暫存器Tmpl和第二暫存器Tmp2的存儲(chǔ)位數(shù)相同,均為8位存儲(chǔ)位寬。更具體的說,在所述的運(yùn)算邏輯單元包括用于邏輯運(yùn)算的加法器,用于控制所述 的寄存單元中數(shù)據(jù)移位的移位器,用于比較運(yùn)算的比較器,用于統(tǒng)計(jì)數(shù)據(jù)的計(jì)數(shù)器以及用 于統(tǒng)一上述部件工作時(shí)序的晶振。另外該除法運(yùn)算裝置內(nèi)還包括用于存儲(chǔ)操作數(shù)以及其它數(shù)據(jù)的外部隨機(jī)數(shù)據(jù)存 儲(chǔ)器Ram,該隨機(jī)數(shù)據(jù)存儲(chǔ)器Ram通過數(shù)據(jù)總線DB與數(shù)據(jù)寄存器DR、指令寄存器頂、指令譯 碼器ID以及控制器Ctrl順次連接對指令以及數(shù)據(jù)進(jìn)行傳輸和執(zhí)行,同時(shí)該隨機(jī)數(shù)據(jù)存儲(chǔ) 器Ram通過地址總線AB與地址寄存器以及程序計(jì)數(shù)器PC順次連通,用于對隨機(jī)數(shù)據(jù)存儲(chǔ) 器Ram進(jìn)行尋址。除此之外,算術(shù)邏輯單元ALU通過程序狀態(tài)寄存器PSW與總線連通用于 確定整個(gè)除法裝置的程序狀態(tài)。這樣,整個(gè)除法運(yùn)算裝置具有完成本發(fā)明除法運(yùn)算算法的 所有功能模塊,進(jìn)一步地能夠高效率,高速度的執(zhí)行本發(fā)明除法運(yùn)算方法。圖2中顯示的是本發(fā)明的除法運(yùn)算方法的具體實(shí)施例的流程示意圖。其中所采用 的除法運(yùn)算方法是基于圖1中顯示的除法運(yùn)算裝置的基礎(chǔ)之上進(jìn)行運(yùn)算的。本發(fā)明所采用的除法運(yùn)算方法的除法指令針對的是無符號(hào)整數(shù),所采用的算法 是”移位減”的方法。細(xì)化起來說,是在累加器Acc中存儲(chǔ)被除數(shù),寄存器B中存儲(chǔ)除數(shù)。第 二暫存器Tmp2清零;然后,寄存器B中的除數(shù)導(dǎo)入第一暫存器Tmpl中作為除數(shù),隨后將累 加器Acc中的被除數(shù)導(dǎo)入寄存器B。而在運(yùn)算邏輯單元ALU中的加法器的運(yùn)算模式保持為 第二暫存器Tmp2減去第一暫存器Tmpl。在具體的操作過程中,首先,在同一時(shí)鐘周期內(nèi)將聯(lián)合第二暫存器Tmp2以及寄存 器B中的數(shù)據(jù)邏輯左移一位(其中B的最高位B [7]移入Tmp2的最低位Tmp2
,此時(shí)B的 最低位懸空),然后在運(yùn)算邏輯單元ALU中執(zhí)行第二暫存器Tmp2與第一暫存器Tmpl的相減 操作,再使得上述兩個(gè)暫存器的結(jié)果相減之后與0作比較。如果判斷的結(jié)果大于或等于0則執(zhí)行如下操作將寄存器B中數(shù)據(jù)的最低位置1, 將第二暫存器Tmp2與第一暫存器Tmpl相減之后的結(jié)果導(dǎo)入第二暫存器Tmp2中;但是如果 判斷的結(jié)果小于0,則將寄存器B中的最低位置零。然后再判斷上述對寄存器B以及第二緩存器Tmp2中的數(shù)據(jù)是否進(jìn)行移位操作已 經(jīng)移滿8次(本實(shí)施例中的除數(shù)存儲(chǔ)位數(shù)以及除法裝置的數(shù)據(jù)存儲(chǔ)位寬均為8)。倘若判斷 上述移位操作的次數(shù)小于8次則跳轉(zhuǎn)到圖1中所示的對寄存器B以及第二暫存器Tmp2中 的數(shù)據(jù)進(jìn)行移位操作的位置,依次循環(huán)進(jìn)行相應(yīng)的操作直到上述移位操作滿8次為止,停
5止移位操作。最后一步將寄存器B中的數(shù)據(jù)導(dǎo)入累加器Acc中,將第二緩存器Tmp2中的數(shù) 據(jù)導(dǎo)入到寄存器B中,即最終累加器Acc內(nèi)存放的是除法運(yùn)算的商,而寄存器B內(nèi)存放的是 余數(shù)。為更進(jìn)一步清晰地說明本設(shè)計(jì)方案是如何把除法指令的相減和移位操作在同一 個(gè)時(shí)鐘周期內(nèi)完成的,舉例說明把減法指令的每一個(gè)狀態(tài)周期所執(zhí)行的微操作及相應(yīng)控制 信號(hào)列入下表。這里執(zhí)行一個(gè)除法運(yùn)算一共用了十一個(gè)時(shí)鐘周期,分別用Sl-Sll表示。特 別是在下表中的在S2時(shí)鐘周期狀態(tài)所描述的微操作過程中,很巧妙的把除法操作S2中的 步驟( 和移位操作C3)通過組合邏輯電路在一個(gè)時(shí)鐘周期內(nèi)實(shí)現(xiàn),這樣的相減和移位操 作要執(zhí)行8次,所以S3至S9的操作步驟和S2基本相同,這里不再贅述了。顯然,如果把相 減和移位操作用兩個(gè)時(shí)鐘周期來完成的話,則執(zhí)行一條減法指令至少要用19個(gè)時(shí)鐘周期, 而本發(fā)明設(shè)計(jì)的這種方法只要用11個(gè)時(shí)鐘周期就足夠了,這樣一來提高除法運(yùn)算裝置執(zhí) 行除法運(yùn)算的速度是顯而易見的。下面表格中顯示的是在本發(fā)明的除法裝置中完成一次除法運(yùn)算所采用的典型的 運(yùn)算指令,具體如下
Sta teOperat ionSl(1):Tmp2_clr (Tmp2 清零標(biāo)志)=1;清零 Tmp2; (2) B2D_calu (寄存器 B 到 databus 控制信號(hào))=1; Tmpl.en (Tmpl 使能信號(hào))=1,將B寄存器值傳給Tmpl.(3): Acc2BbusA(Acc 到 BbusA 控制信號(hào))=1; BbusA2B_calu (BbusA到B的控制信號(hào))二 1;把Acc寄存器值傳給B。S2(1):aluain—sel (aluain 選擇信號(hào))=001,選擇 divshift — aluain(即 Tmp2 [6: 0] & B [7])進(jìn)入 ALU 參與運(yùn)算。
(2) aluop-subb (減法控制信號(hào)),alubuf-wr (ALU寫入操作),執(zhí) 行Tmp2-T^mpl操作,影響cyout (借位標(biāo)志),相減的結(jié)果輸出 Sdatabus (數(shù)據(jù)總線)。
(3):shift (移位信號(hào))=1,mill (相乘信號(hào))=0 (B寄存器輸入選 #divshift-B_in,而 divshift_B_in 又居 cyout 為 1 或 0選 擇β寄存器的最低位移入0還是1); Shift=I, div-Ι (即Tmp2 寄存器輸入選擇 divshif t_Tmp2-in,而 divshif t—Tmp2_ in 又根 據(jù)cyout為1或0選擇Tmp2為{Tmp2[6:0], B [7] }還是為 dbus in)。
(4):在此狀態(tài)下,數(shù)據(jù)就寫入B,Tmp2.S3同S2S4同S2S5同S2S6同S2S7同S2S8同S2S9同S2SlO取下一指令。SllB2d-calu, Acc.en , Trap22BbusA , BbusA2b—calu
權(quán)利要求
1.一種除法運(yùn)算方法,其特征在于,該運(yùn)算方法包括(1)在寄存單元內(nèi)存入被除數(shù)、除數(shù),以及中間值;(2)在同一個(gè)時(shí)鐘周期內(nèi)對被除數(shù)以及中間值聯(lián)合進(jìn)行左移操作,同時(shí)計(jì)算進(jìn)行左移 操作后的中間值與除數(shù)之間的差值;(3)在與步驟O)同一時(shí)鐘周期內(nèi),如果所述差值大于等于0,則將所述的差值替代并 作為新的中間值,并將被除數(shù)最低位置1 ;如果所述差值小于0,則將被除數(shù)最低位置0 ;(4)判斷移位次數(shù)是否等于被除數(shù)在寄存單元的存儲(chǔ)位數(shù),如果不是則返回步驟2重 新循環(huán)執(zhí)行,如果是則結(jié)束運(yùn)算。
2.根據(jù)權(quán)利要求1所述的除法運(yùn)算方法,其特征在于,在步驟(1)中所述的被除數(shù)存儲(chǔ) 在所述的累加器中,所述的除數(shù)存儲(chǔ)在所述的寄存器中,所述的中間值存儲(chǔ)在所述的第二 暫存器中;在步驟( 開始運(yùn)算之后,所述的除數(shù)存儲(chǔ)在第一暫存器中,所述的被除數(shù)存儲(chǔ) 在寄存器中并開始運(yùn)算。
3.根據(jù)權(quán)利要求2所述的除法運(yùn)算方法,其特征在于,在整個(gè)運(yùn)算方法運(yùn)算結(jié)束之后 所述的寄存器內(nèi)存儲(chǔ)本運(yùn)算方法產(chǎn)生的商,所述的第二暫存器內(nèi)存儲(chǔ)的是本運(yùn)算算法產(chǎn)生 的余數(shù)。
4.根據(jù)權(quán)利要求1所述的除法運(yùn)算方法,其特征在于,在步驟(1)中存入的中間值為0。
5.根據(jù)權(quán)利要求1所述的除法運(yùn)算方法,其特征在于,在步驟( 中對被除數(shù)以及中間 值進(jìn)行的左移操作為邏輯左移。
6.根據(jù)權(quán)利要求1所述的除法運(yùn)算方法,其特征在于,所述步驟(2)中的左移位操作通 過移位器完成,所述的差值運(yùn)算通過加法器完成,所述的整個(gè)運(yùn)算過程中的比較運(yùn)算均通 過比較器完成,所述的整個(gè)運(yùn)算過程中的計(jì)數(shù)均通過計(jì)數(shù)器完成。
7.一種采用根據(jù)權(quán)利要求1-6任意一項(xiàng)權(quán)利要求所述的運(yùn)算方法的裝置,其特征在 于,所述的運(yùn)算裝置包括用于進(jìn)行邏輯運(yùn)算的運(yùn)算邏輯單元,以及用于存儲(chǔ)數(shù)據(jù)的寄存單 元,所述的寄存單元中的數(shù)據(jù)通過運(yùn)算邏輯單元控制進(jìn)行邏輯運(yùn)算。
8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述的寄存單元包括用于存儲(chǔ)被除數(shù)的 累加器,以及用于存儲(chǔ)除數(shù)的寄存器,所述的寄存單元還至少包括用于存儲(chǔ)邏輯運(yùn)算過程 中的中間過渡數(shù)據(jù)的第一暫存器以及第二暫存器。
9.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述累加器、寄存器以及所述的第一暫存 器和第二暫存器的存儲(chǔ)位數(shù)相同。
10.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述的運(yùn)算邏輯單元至少包括用于邏輯 運(yùn)算的加法器,用于控制所述的寄存單元中數(shù)據(jù)移位的移位器,用于比較運(yùn)算的比較器,用 于統(tǒng)計(jì)數(shù)據(jù)的計(jì)數(shù)器以及用于統(tǒng)一上述部件工作時(shí)序的晶振。
全文摘要
本發(fā)明涉及一種利用數(shù)制表示且應(yīng)用在半導(dǎo)體器件的非線性組合數(shù)字除法計(jì)算方法以及實(shí)現(xiàn)這種運(yùn)算方法的除法裝置,更具體地,本發(fā)明涉及一種除法運(yùn)算方法及采用該方法的運(yùn)算裝置。本發(fā)明的除法運(yùn)算方法采用“移位減”的方法,并通過將移位以及減法同時(shí)在一個(gè)周期內(nèi)執(zhí)行達(dá)到減少整個(gè)除法運(yùn)算方法的運(yùn)算周期,優(yōu)化整個(gè)除法運(yùn)算算法的目的,同時(shí)本發(fā)明還提供了一種采用上述除法運(yùn)算方法的除法裝置。通過采用上述的技術(shù)方案,本發(fā)明提供了一種運(yùn)算速度快,運(yùn)算效率高,并且計(jì)算周期得到優(yōu)化的除法運(yùn)算方法,以及一種采用上述除法運(yùn)算方法的除法運(yùn)算裝置。
文檔編號(hào)G06F7/52GK102063284SQ20101058408
公開日2011年5月18日 申請日期2010年12月13日 優(yōu)先權(quán)日2010年12月13日
發(fā)明者趙興朋 申請人:青島海信信芯科技有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
1