專利名稱:一種冗余碼高速陣列除法器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及到一種冗余碼高速陣列除法器,適用于計(jì)算機(jī)高速運(yùn)算及高速實(shí)時信號處理等技術(shù)領(lǐng)域。
在用計(jì)算機(jī)從事科學(xué)計(jì)算及日益推廣的數(shù)字信號處理等技術(shù)領(lǐng)域中,除法運(yùn)算被大量地應(yīng)用于解決各種實(shí)際問題,因此,幾乎所有的計(jì)算機(jī)、單片機(jī)都為用戶提供了除法功能或特殊設(shè)計(jì)指令,這些除法功能和指令使用戶可以方便地進(jìn)行除法運(yùn)算。一般計(jì)算機(jī)、單片機(jī)的除法功能是由軟件編程來實(shí)現(xiàn)的。然而在高速計(jì)算、高速實(shí)時信號處理等應(yīng)用領(lǐng)域,這種用軟件實(shí)現(xiàn)除法功能的辦法就難以滿足速度的要求,為此,研制高速除法器已為本領(lǐng)域的科技人員所關(guān)注。目前陣列除法器是高速除法器中的一種,由于其電路采用陣列處理,避免了多周期迭代,使其速度有所提高,但這種陣列除法器仍有不足之處由于陣列除法器通常是采用恢復(fù)余數(shù)算法或不恢復(fù)余數(shù)算法設(shè)計(jì)的陣列形式,在電路實(shí)現(xiàn)中均采用一般加法單元組成陣列,這使得每一次減法運(yùn)算都包含一個長度為N(N為除數(shù)位數(shù)寬度,為方便其見,設(shè)被除數(shù)、除數(shù)及商的位數(shù)寬度均為N)的進(jìn)位鏈的形成過程,所以其運(yùn)算時間(在產(chǎn)生N位商時)正比于N,使除法器速度仍不能滿足實(shí)際應(yīng)用的需要。附圖1給出的是一種以不恢復(fù)余數(shù)算法設(shè)計(jì)的除法陣列,它由普通的二進(jìn)制加法單元1-1構(gòu)成,R0R1R2……Rn為被除數(shù),D0D1D2……Dn為除數(shù),Q0Q1Q2……Qn為商。每個加法單元均含有一個二進(jìn)制全加器和一個異或門(“計(jì)算機(jī)數(shù)學(xué)-原理、結(jié)構(gòu)與設(shè)計(jì)”第267至270頁,黃凱著,1979年出版(Kai Huang“Computer Arithmetic-Principles,Architecture and Design”John Wiley & Son,1979,P267~270))。若以冗余碼加法單元代替普通加法單元并采用SRT算法就可消除進(jìn)位鏈帶來的延遲,這是因?yàn)槿哂啻a加法器的通常算法是將二個采用冗余碼表示的數(shù)相加而得到一個冗余碼的和。
如A=a0a1……an,B=b0b1……bn
A、B均由冗余碼表示,即ajbj∈{-1,0,1}當(dāng)計(jì)算S=A+B時,計(jì)算需分三步進(jìn)行(1)S1j+2C1j=aj+bjS1j∈{0,-1,-2} C1j∈{0,1}(2)S2j+2C2j=S1j+C1j+1S2j∈{0,1} C2j∈{0,-1}(3)S3j=S2j+C2j+1S3j∈{-1,0,1}由上述三步計(jì)算可知,每一位“和”僅由三位輸入決定(Sj由aj、bj;aj+1、bj+1;aj+2、bj+2決定),即進(jìn)位鏈長度為2,與A、B的位數(shù)N無關(guān),這時的輸出延遲對于各位來說都是一樣的,不存在從低位一直延伸至最高位的串行進(jìn)位鏈,其電路構(gòu)成如附圖2所示(美國電氣電子工程師協(xié)會出版的《計(jì)算機(jī)設(shè)計(jì)與超大規(guī)模集成電路會議錄》1987年刊載的“采用冗余碼的高速乘法器”第414至417頁,作者歐默·卡爾(Omer Kal“High Speed Multiplier Design Using Redundant Signed Digit Number”IEEE Conference on Computer DesignIn VLSI,1987 P414-417))。但是,采用冗余碼加法器,使商成為以冗余碼表示的數(shù),最后需用一個N位加法器將冗余碼表示的商轉(zhuǎn)換為普通二進(jìn)制數(shù),即由{1,0,-1}表示的商轉(zhuǎn)換為{0,1}表示。因此使除法器又需增加一個N位加法器的延遲,使除法器的速度受到影響。
本發(fā)明的目的是針對現(xiàn)有陣列除法器存在之不足,設(shè)計(jì)一種新型除法器,消除進(jìn)位鏈帶來的延遲,提高運(yùn)算速度。
本發(fā)明的技術(shù)要點(diǎn)是在電路上采用式為(1)S1j+2C1j=ri-1,j+djri-1,j∈{-1,0,1} dj∈{0,1}S1j∈{0,-1} c1j∈{0,1}(2)ri,j=s1j+c1j+1ri,j∈{-1,0,1}(其中 D=d0d1……dN為除數(shù)Ri-1=ri-1,0ri-1,1…ri-1,N為i-1級余數(shù)輸出Ri=ri,0ri,1…ri,N為i級余數(shù)輸出)的二級運(yùn)算構(gòu)成冗余碼與二進(jìn)制混合使用的冗余碼加法單元組成N行N列除法陣列,每一行冗余碼加法器的輸出端均接有一個商選擇器,商選擇器的輸出端接有將冗余碼表示的商直接轉(zhuǎn)換成二進(jìn)制的商的陣列轉(zhuǎn)換電路,陣列轉(zhuǎn)換電路是由二選一的轉(zhuǎn)換單元組成的;在算法上采用基-2SRT算法,商選擇器以冗余碼加法器運(yùn)算所得的余數(shù)的最高三位有效位為電路輸入,邏輯判斷后產(chǎn)生一位冗余碼表示的予測商,一路送下一級冗余碼加法器,使其完成一次以上一級余數(shù)和除數(shù)為操作數(shù)的加法(或減法)運(yùn)算并得出余數(shù),另一路送相應(yīng)排轉(zhuǎn)換電路最低位的輸入端和其它各位的控制端,使最低位轉(zhuǎn)換單元完成對予測商的轉(zhuǎn)換,使其它各位轉(zhuǎn)換單元進(jìn)行一次對上一排轉(zhuǎn)換單元輸出的調(diào)整,將冗余碼表示的商轉(zhuǎn)換成二進(jìn)制表示的商,第一行冗余碼加法器輸入的除數(shù)、被除數(shù)均為二進(jìn)制,在算法上強(qiáng)令最高位予測商為1。
下面結(jié)合附圖對本發(fā)明進(jìn)行詳細(xì)描述本發(fā)明由冗余碼與二進(jìn)制混合使用的冗余碼加法單元3-11、3-12、商選擇器3-21、二選一的轉(zhuǎn)換單元3-31、3-32組成的陣列轉(zhuǎn)換電路構(gòu)成,如附圖3所示。D0D1…DN為除數(shù),R0R1…RN為被除數(shù),Q0Q1……QN為商,除數(shù)、被除數(shù)及商均以二進(jìn)制表示。本發(fā)明在算法上采用基-2SRT算法。
3-12是采用式為(1)S1j+2C1j=ri-1,j+djri-1,j∈{-1,0,1} dj∈{0,1}s1j∈{0,-1} c1j∈{0,1}(2)ri,j=s1j+c1j+1ri,j∈{-1,0,1}(其中D=d0d1…dN為除數(shù)Ri-1=ri-1,0ri-1,1…ri+1,N為i-1級余數(shù)輸出Ri=ri,0ri,1…ri,N為i級余數(shù)輸出)的二級運(yùn)算構(gòu)成的冗余碼與二進(jìn)制混合使用的冗余碼加法單元,用它組成除法陣列。由上式可見,電路僅需二級,進(jìn)位鏈長度僅為1,與除數(shù)和被除數(shù)的位數(shù)N無關(guān),因此,以它構(gòu)成的除法陣列與普通的加法單元構(gòu)成的除法陣列相比,消除了由進(jìn)位鏈帶來的延遲,使運(yùn)算速度大大提高;與普通冗余碼加法單元構(gòu)成的除法陣列相比,省掉了一個N位加法器,不僅速度加快,而且節(jié)省三分之一的器件,引線也大為減少,這在VLSI實(shí)現(xiàn)中有很大意義。
3-11是除法陣列第一行單元電路,由于輸入的被除數(shù)R0R1…RN和除數(shù)D0D1…DN均為二進(jìn)制數(shù)據(jù),其輸出的余數(shù)是冗余碼,所以這一級電路可簡化為簡單的門電路。如果進(jìn)一步對冗余碼編碼進(jìn)行調(diào)整,這一級電路可以省掉,使被除數(shù)與除數(shù)直接連至下一級。
3-21商選擇器。
由于SRT除法中商qi有三種{1,0,-1}可能的取值,也就有三種可能出現(xiàn)的余數(shù)Ri
對應(yīng)三種余數(shù)的取值,商q的取值分別是
由上式可見,商的選擇是由上一級的余數(shù)Ri與除數(shù)D共同決定的,這使求商的時間遠(yuǎn)遠(yuǎn)大于冗余碼加法運(yùn)算所用的時間,在電路實(shí)現(xiàn)上也比較復(fù)雜,為提高速度和簡化電路,本發(fā)明采用下列公式來確定商q
其中ri,0ri,1ri,2為上一級余數(shù)的最高三位,使商選擇器簡化成不超過二級門電路,由上式還可看出商qi+1決定后,才能進(jìn)行減法以求出本級余數(shù)Ri+1,故本發(fā)明說明書中稱此商為予測商。
3-31、3-32轉(zhuǎn)換單元組成的陣列轉(zhuǎn)換電路是針對SRT除法需引入加法器而帶來的附加延遲問題,提供的一種將冗余碼的商直接轉(zhuǎn)換為二進(jìn)制形式的陣列轉(zhuǎn)換電路。
設(shè)QN=q0q1…q為冗余碼的商,在計(jì)算中商是由高位產(chǎn)生,即由最高位q0至最低位qN依次得出,令Qi=q0q1…qN為冗余碼形式的商Q1i=q10q11…q1N為轉(zhuǎn)換后的二進(jìn)制表示的商。
i=0,1,2……N在歸一化小數(shù)除法中q0=1所以Q10=1當(dāng)qi求出后,由Q1i=Q1i-1+qi·2-i得qi=1時 Q1i=Q1i-1+2-iqi=0時 Q1i=Q1i-1qi=-1時 Q1i=Q1i-1-2-i由上述轉(zhuǎn)換可見,如出現(xiàn)qi=-1時,就可能會有-2-i,即可能出現(xiàn)進(jìn)位,這是SRT除法中必須引入加法器的原因所在,而在qi=1或qi=0時,就不會出現(xiàn)進(jìn)位,本發(fā)明利用這一特點(diǎn),引入一輔助商Q2,令Q2i=Q1i-1-2-iQ20=0經(jīng)公式轉(zhuǎn)換,可得到Q1與Q2的迭代關(guān)系
由此可見-2-i被消除了,商Qi隨著每一位qi的產(chǎn)生均可直接由Q1i-1Q2i-1轉(zhuǎn)換得到二進(jìn)制對應(yīng)的結(jié)果,當(dāng)qN產(chǎn)生后Q1N即為轉(zhuǎn)換結(jié)果,同時可見,高位商不必由低位向上逐位計(jì)算,而是隨每一位商的產(chǎn)生,對高位商進(jìn)行選擇調(diào)整,電路實(shí)現(xiàn)僅是二選一的選擇器。
本發(fā)明的優(yōu)點(diǎn)是1.采用了二級運(yùn)算構(gòu)成的冗余碼與二進(jìn)制混合使用的冗余碼加法單元組成的除法陣列,消除了進(jìn)位鏈帶來的延遲,提高了運(yùn)算速度,并節(jié)省了1/3器件,引線大大減少,易于集成,降低了成本;2.采用不超過二級的門電路構(gòu)成商選擇器,簡化了電路,提高了運(yùn)算速度;3.采用二選一的選擇器構(gòu)成將冗余碼表示的商直接轉(zhuǎn)換成二進(jìn)制表示的商的陣列轉(zhuǎn)換電路,消除了SRT除法由加法器引入的附加延遲,提高運(yùn)算速度。
實(shí)施例附圖4是一個4位(N=4)的歸一化小數(shù)除法器,它由冗余碼與二進(jìn)制混合使用的冗余碼加法單元4-11、4-12組成的除法陣列、3個商選擇器4-21、轉(zhuǎn)換單元4-31、4-32組成的陣列轉(zhuǎn)換電路構(gòu)成。在電路中,冗余碼余數(shù)的表示方法采用每位冗余碼用2條數(shù)據(jù)線表示,“01”表示+1,“10”表示-1,00表示0,“11”表示任意項(xiàng),除數(shù)則采用補(bǔ)碼表示(當(dāng)然也可表示為符號+絕對值形式),R0R1…R6為被除數(shù),D0D1…D3為除數(shù),Q0Q1…Q3為商。被除數(shù)、除數(shù)及商均為二進(jìn)制表示形式。
4個冗余碼與二進(jìn)制混合使用的冗余碼加法單元4-11組成除法陣列的第一行,其輸入的被除數(shù)、除數(shù)均為普通二進(jìn)制數(shù),其輸出為冗余碼表示的余數(shù)。電路如附圖5所示,r為被除數(shù),d為除數(shù),r1r2為冗余碼表示的余數(shù)。12個冗余碼與二進(jìn)制混合使用的冗余碼加法單元4-12組成除法陣列的第二、三、四行,其電路如附圖6所示。P、n為上一級余數(shù)高三位經(jīng)商選擇器形成的予測商,d為除數(shù),a1a2為上一級產(chǎn)生的余數(shù),r1r2為本級運(yùn)算所得余數(shù),Ci為進(jìn)位輸入,Co為進(jìn)位輸出。由電路可知Co不由Ci決定,不存在串行進(jìn)位鏈。本電路采用回復(fù)余數(shù)形式。
3個商選擇器4-21分別接在除法陣第一行至第三行的冗余碼加法器的輸出端,其電路為附圖7所示的一級與或門構(gòu)成,輸入信號為冗余碼加法器輸出余數(shù)的高三位ah、am、al,其中ah1、ah2為最高位,am1、am2為次高位,al1、al2、為第三位,其輸出為所形成的予測商P和n,P=1表示商為+1,n=1則表示商為-1。
P=ah1am2al1+ah2(am1+al1)n=ah2am1al2+ah1(am2+al2)予測商p、n一路送下一級冗余碼加法器使其完成一次以上一級余數(shù)和除數(shù)為操作數(shù)的加法(或減法)運(yùn)算并得出余數(shù),另一路送陣列轉(zhuǎn)換電路進(jìn)行調(diào)整,使冗余碼表示的商轉(zhuǎn)換成二進(jìn)制表示的商。
二選一的轉(zhuǎn)換單元4-31、4-32構(gòu)成陣列轉(zhuǎn)換電路,陣列轉(zhuǎn)換電路的第一排僅含一個轉(zhuǎn)換單元,而后三排自上而下每排包含的轉(zhuǎn)換單元個數(shù)依次加一,每排各轉(zhuǎn)換單元的輸出分別接下一排各轉(zhuǎn)換單元的輸入,第一排轉(zhuǎn)換單元的輸入強(qiáng)令為1,其后各排最低位轉(zhuǎn)換單元的輸入接相應(yīng)商選擇器的輸出,而其它各位轉(zhuǎn)換單元的控制端接商選擇器的輸出。每排轉(zhuǎn)換電路的最低位轉(zhuǎn)換單元4-31電路如附圖8所示。最低位轉(zhuǎn)換單元的輸入信號為商選擇器輸出的予測商p、n,輸出信號為a0、a′0(a0對應(yīng)商,a′0對應(yīng)商減去2-i)。每排轉(zhuǎn)換電路的其它位的轉(zhuǎn)換單元4-32如附圖9所示。ai、a′i為上一級轉(zhuǎn)換結(jié)果,其中ai對應(yīng)商,a′i對應(yīng)商減去2-i(i為第幾級的級號),p、n為商選擇器輸出的予測商,ao,ao′為本級轉(zhuǎn)換輸出。對于第一排轉(zhuǎn)換電路只包含一個如附圖8所示的轉(zhuǎn)換單元電路,其輸入強(qiáng)令為1。
附圖1 不恢復(fù)余數(shù)算法的除法陣列電路框圖1-1 二進(jìn)制加法單元R0R1…RN被除數(shù)D0D1…DN除數(shù)Q0Q1…QN商附圖2 普通冗余碼加法陣列框圖2-1 冗余碼加法單元aj、bj冗余碼表示的數(shù)sj冗余碼表示的和cj進(jìn)位附圖3 本發(fā)明電路框圖3-11、3-12 冗余碼與二進(jìn)制混合使用的冗余碼加法單元3-21 商選擇器3-31、3-32 轉(zhuǎn)換單元R0R1…HN被除數(shù)D0D1…DN除數(shù)Q0Q1…QN商附圖4 4位的歸一化小數(shù)除法器電路框圖4-11、4-12 冗余碼與二進(jìn)制混合使用的冗余碼加法單元4-21 商選擇器4-32、4-32 轉(zhuǎn)換單元
R0R1…R6被除數(shù)D0D1D2D3除數(shù)Q0Q1Q2Q3商ah、am、al 冗余碼加法器輸出最高三位P、n 予測商附圖5 冗余碼與二進(jìn)制混合使用的冗余碼加法單元電路(4-11)r 被除數(shù)d 除數(shù)r1r2余數(shù)附圖6 冗余碼與二進(jìn)制混合使用的冗余碼加法單元電路(4-12)P、n 予測商d 除數(shù)a1a2上一級產(chǎn)生的余數(shù)r1r2本級運(yùn)算所得余數(shù)Ci進(jìn)位輸入Co進(jìn)位輸出附圖7 商選擇器電路圖ah1、ah2余數(shù)最高位am1、am2余數(shù)次高位al1、al2余數(shù)第三位P、n 予測商附圖8 轉(zhuǎn)換單元電路(4-31)P、n 予測商a0、a0輸出信號附圖9 轉(zhuǎn)換單元電路(4-32)
ai、a′i上一級轉(zhuǎn)換結(jié)果P、n 予測商a0、a′0本級轉(zhuǎn)換結(jié)果
權(quán)利要求
1.一種冗余碼高速陣列除法器,其特征是在電路上采用式為(1)S1j+2C1j=ri-1,j+d; rj-1,j∈{-1,0,1} dj∈{0,1}S1j∈{0,-1} c1j∈{0,1}(2)ri,j=s1j+c1j+1ri,j∈{-1,0,1}(其中D1=d0d1……dN為除數(shù)Ri-1=ri-1,Ori-1,1…ri-1,N為i-1級余數(shù)輸出Ri=i,Ori,1…ri,N為i級余數(shù)輸出)的二級運(yùn)算構(gòu)成的冗余碼與二進(jìn)制混合使用的冗余碼加法單元組成N行N列除法陣列,每一行冗余碼加法器的輸出端均接有一個商選擇器,商選擇器的輸出端接有將冗余碼表示的商直接轉(zhuǎn)換成二進(jìn)制商的陣列轉(zhuǎn)換電路;陣列轉(zhuǎn)換電路是二選一的轉(zhuǎn)換單元組成;在算法上采用基-2SRT算法,商選擇器以冗余碼加法器運(yùn)算所得余數(shù)的最高三位有效位為電路輸入,邏輯判斷后產(chǎn)生一位冗余碼表示的予測商,一路送下一級冗余碼加法器,使其完成一次以上一級余數(shù)和除數(shù)為操作數(shù)的加法(或減法)運(yùn)算并得出余數(shù),另一路送相應(yīng)排的轉(zhuǎn)換電路最低位輸入端和其它各位的控制端,使最低位轉(zhuǎn)換單元完成對予測商的轉(zhuǎn)換,使其它各位進(jìn)行一次對上一排轉(zhuǎn)換單元輸出的調(diào)整,將冗余碼表示的商轉(zhuǎn)換成二進(jìn)制表示的商,第一行冗余碼加法器輸入的被除數(shù)、除數(shù)均為二進(jìn)制,在算法上強(qiáng)令最高位予測商為1。
2.按照權(quán)利要求1所說的冗余碼高速陣列除法器,其特征在于所說的商選擇器可按布爾式P=ah1am2al1+ah2(am1+al1)n=ah2am1al2+ah1(am2+al2)構(gòu)成的一級與或門電路,輸入信號ah1,ah2是冗余碼加法器輸出余數(shù)的最高位,am1,am2是次高位,al1、al2是第三位,其輸出P、n為予測商。
3.按照權(quán)利要求1和2所說的冗余碼高速陣列除法器,其特征在于所說的陣列轉(zhuǎn)換電路的第一排僅含一個轉(zhuǎn)換單元,而后自上而下每排包含的轉(zhuǎn)換單元個數(shù)依次加一,每排各轉(zhuǎn)換單元的輸出分別接下一排各轉(zhuǎn)換單元的輸入,第一排轉(zhuǎn)換單元的輸入強(qiáng)令為1,其后各排最低位轉(zhuǎn)換單元的輸入接相應(yīng)商選擇器的輸出,而其它各位的轉(zhuǎn)換單元的控制端接商選擇器的輸出。
全文摘要
本發(fā)明涉及到一種冗余碼高速陣列除法器,適用于計(jì)算機(jī)高速計(jì)算及高速實(shí)時信號處理等技術(shù)領(lǐng)域,由于采用了二級運(yùn)算構(gòu)成的冗余碼與二進(jìn)制混合使用的冗余碼加法單元組成除法陣列并采用二選一的選擇器構(gòu)成將冗余碼的商直接轉(zhuǎn)換成二進(jìn)制形式的陣列轉(zhuǎn)換電路,使本發(fā)明具有速度高、電路簡單、便于集成等優(yōu)點(diǎn)。
文檔編號G06F7/52GK1049922SQ8910662
公開日1991年3月13日 申請日期1989年9月2日 優(yōu)先權(quán)日1989年9月2日
發(fā)明者任紅戈, 茅榆海 申請人:清華大學(xué)