版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
§2.2定點加法、減法運算1、補碼加法
任意兩個數(shù)的補碼之和,等于該兩數(shù)和的補碼。[X+Y]補=[X]補+[Y]補(mod2n+1或2)兩個數(shù)不管正負,均用補碼表示,符號位應(yīng)當做數(shù)值參加運算,符號位相加所產(chǎn)生的進位要丟掉,結(jié)果為補碼?!?.2定點加法、減法運算1、補碼加法可以證明:[X+Y]補=[X]補+[Y]補[X-Y]補=[X]補+[-Y]補[-Y]補的求法:將[Y]補連同符號位求反加1。例11:X=+1001Y=+0101,求X+Y=?解:[X]補=01001[Y]補=00101[X+Y]補=[X]補+[Y]補=01001+00101=01110 所以X+Y=+1110可以證明:解:[X]補=01001定點運算器——定點加減法例12:X=+0.1011Y=-0.0101,
求X+Y=?解:[X]補=0.1011[Y]補=1.1011+011010.丟失1[X]補+[Y]補=0.0110X+Y=0.0110定點運算器——定點加減法例12:X=+0.1011Y定點運算器——定點加減法例(補充):X=-11001,Y=-00011,求X+Y=?解:[X]補=100111[Y]補=111101+001011丟失1
[X]補+[Y]補=100100X+Y=-111000由以上兩例看到,補碼加法的特點:一是符號位要作為數(shù)的一部分一起參加運算。二是要在模2或2n+1的意義下相加,即超過2或2n+1的進位要丟掉!定點運算器——定點加減法例(補充):X=-11001定點運算器——定點加減法2、補碼減法:
[X]補-[Y]補=[X+(-Y)]補=[X]補+[-Y]補(-Y)的補碼稱為[Y]補的機器負數(shù),由[Y]補求[-Y]補的過程稱為將[Y]補“變補”或?qū)Y]補求補,由[Y]補求[-Y]補的方法是,不管Y的真值為正或為負,都是將[Y]補的各位連同符號位在內(nèi)全變反后,最低位加1。定點運算器——定點加減法2、補碼減法:定點運算器——定點加減法例:X=-0.1011Y=-0.0110,求X-Y=?解:[X]補=1.0101[-Y]補=0.0110+11011.[X-Y]補=1.1011X-Y=-0.0101定點運算器——定點加減法例:X=-0.1011Y=-3、溢出及其判別方法:在計算機中,由于機器碼的尾數(shù)通常是給定的(如16位字長,32位字長),因此,在計算機中數(shù)的表示范圍是有限的,若兩數(shù)進行加減運算的結(jié)果超出了給定的取值范圍,就稱為溢出。一旦出現(xiàn)溢出,必須及時處理,否則會出現(xiàn)錯誤。3、溢出及其判別方法:在計算機中,由于機器碼的尾數(shù)通常是給定(1)、溢出例15:X=1011Y=1001求X+Y解:[X]補=01011+[Y]補=0100110100例2:X=-1010Y=-1011求X+Y解:[X]補=10110+[Y]補=1010101011較大正數(shù)相加產(chǎn)生進位,影響符號位較大的負數(shù)對應(yīng)較小的正數(shù)補碼相加無進位,符號位自己相加(1)、溢出例15:X=1011Y=1001(2)溢出原因:之所以發(fā)生錯誤,是因為運算結(jié)果產(chǎn)生了溢出。兩個正數(shù)相加,結(jié)果大于機器所能表示的最大正數(shù),稱為上溢。而兩個負數(shù)相加,結(jié)果小于機器所能表示的最小負數(shù),稱為下溢。
兩異號數(shù)相加或兩同號數(shù)相減是否會產(chǎn)生溢出?僅當兩同號數(shù)相加或兩異號數(shù)相減時才有可能產(chǎn)生溢出?問題:決不會產(chǎn)生溢出正確(2)溢出原因:兩異號數(shù)相加或兩同號數(shù)相減是否問題:決不會為了判斷“溢出”是否發(fā)生,可采用兩種檢測的方法。第一種方法是采用雙符號位法,這稱為“變形補碼”或“模4補碼”。從而可使模2補碼所能表示的數(shù)的范圍擴大一倍。為了判斷“溢出”是否發(fā)生,可采用兩種檢測的方法。第一定點運算器——定點加減法1)采用雙符號位的判斷方法每個操作數(shù)的補碼符號用兩個二進制數(shù)表示,稱為變形補碼,用“00”表示正數(shù),“11”表示負數(shù),左邊第一位叫第一符號位,右邊第一位稱為第二符號位,兩個符號位同時參加運算,如果運算結(jié)果兩符號位相同,則沒有溢出發(fā)生。如果運算結(jié)果兩符號位不同,則表明產(chǎn)生了溢出?!?0”表示負溢出(下溢出),說明運算結(jié)果為負數(shù),“01”表示正溢出(上溢出),說明運算結(jié)果為正數(shù)。定點運算器——定點加減法1)采用雙符號位的判斷方法定點運算器——定點加減法采用雙符號位的判斷方法
高符號位低符號位
結(jié)果00正01上溢10下溢11負定點運算器——定點加減法采用雙符號位的判斷方法高符號例17:X=+0.1100Y=+0.1000,求X+Y=?解:[X]補=00.1100[Y]補=00.1000+01.0100正數(shù)太大了,向前有進位,而符號位向前無進位;兩個符號位:01,表示正溢出例17:X=+0.1100Y=+0.1000,求X例:X=-0.1100Y=-0.1000,求X+Y=?解:[X]補=11.0100[Y]補=11.1000+10.1100負數(shù)絕對值太大了對應(yīng)的補碼小,向前無進位,而符號位向前有進位;兩個符號位:10,表示負溢出溢出邏輯表達式為:V=Sf1⊕Sf2
(其中Sf1為最高符號位,Sf2為第二符號位)例:X=-0.1100Y=-0.1000,求X+Y由此可以得出如下結(jié)論:1.當以模4補碼運算,運算結(jié)果的二符號位相異時,表示溢出;相同時,表示未溢出。2.模4補碼相加的結(jié)果,不論溢出與否,最高符號位始終指示正確的符號。第二章_運算方法和運算器2《計算機組成原理課件》例:X=-0.100Y=-0.101,求X+Y=?解:[X]補=1.100[Y]補=1.011+11110.丟失1兩負數(shù)相加,結(jié)果應(yīng)為負數(shù),但運算結(jié)果為正數(shù),表明有溢出發(fā)生。數(shù)據(jù)向前無進位,符號位向前有進位2)采用單符號位的判斷方法例:X=-0.100Y=-0.101,求X+Y=?例:X=100,Y=-110,求X-Y=?解:[X]補=0100[-Y]補=0110+011一個正數(shù)減去一個負數(shù),結(jié)果為正數(shù),但計算結(jié)果為負數(shù),表明有溢出發(fā)生,出錯數(shù)據(jù)向前有進位,符號位向前無進位0溢出邏輯表達式為:V=Cf⊕C0
(其中Cf為符號位產(chǎn)生的進位,C0為最高有效位產(chǎn)生的進位)例:X=100,Y=-110,求X-Y=?[X]補=4、基本的二進制加法/減法器1、一位全加器FAAiBiCiCi+1Si向高位進位本位輸出結(jié)果輸入輸出AiBiCiSiCi+10000000110010100110110010101011100111111表2.2一位全加器真值表兩個輸出端的邏輯表達式:Si=Ai⊕Bi⊕CiCi+1=AiBi+BiCi+CiAi4、基本的二進制加法/減法器1、一位全加器FAAiBiCiCSi=Ai⊕Bi⊕CiCi+1=AiBi+BiCi+CiAi按此表達式組成的一位全加器示圖:Ci+1=(Ai⊕Bi)CiAiBi1位全加器Si時間延遲為6T,Ci+1延遲為5T(書本錯誤,圖2.3(a)錯誤)Si=Ai⊕Bi⊕Cin個1位的全加器(FA)可級聯(lián)成一個n位的行波進位加減器。M為方式控制輸入線,當M=0時,作加法(A+B)運算;當M=1時,作減法(A-B)運算,在后一種情況下,A-B運算轉(zhuǎn)化成[A]補+[-B]補運算,求補過程由B+1來實現(xiàn)。時間延遲ta=n×2T+9T動畫演示n個1位的全加器(FA)可級聯(lián)成一個n位的行波進位加減器。M十進制加法器N位數(shù)字的行波進位BCD加法器一位BCD加法器單元的邏輯結(jié)構(gòu)十進制加法器N位數(shù)字的行波進位BCD加法器定點運算器——定點乘法1、原碼并行乘法設(shè)被乘數(shù)[X]原=XfXn-1Xn-2……X1X0乘數(shù)[Y]原=YfYn-1Yn-2……Y1Y0乘積[X]原=ZfZ2n-1Z2n-2……Z1Z0運算原則:同號相乘為正,異號相乘為負,符號可按:異或運算得到,數(shù)值部分的運算方法與普通的十進制乘數(shù)相類似。定點運算器——定點乘法1、原碼并行乘法定點運算器——定點乘法手工算法0.11010.1011×1101110100001101+100011110.l
兩個n位數(shù)相乘,其積為2n位,則需要2n位長的加法器,這不適用于定點機的形式。l
機器一次只能進行兩個數(shù)的相加,不能進行多個數(shù)據(jù)的加法。l
手工計算中,乘數(shù)的每一位是0還是1都可直接看見,而在計算機中,采用放乘數(shù)的寄存器的每一位直接決定本次相加數(shù)是被乘數(shù)還是0是很不方便的,若采用該寄存器的最低一位來執(zhí)行這種判斷就簡便了。定點運算器——定點乘法手工算法0.11010.1定點運算器——定點乘法運算法則:
計算機中執(zhí)行乘法時,積的符號位由被乘數(shù)和乘數(shù)的符號位通過一個半加器實現(xiàn)。數(shù)值部分的運算規(guī)則是:從最低位Y0開始,當乘數(shù)Yi為1時,將上次部分積加上被乘數(shù)的絕對值,然后右移一位,得到新的部分積;當Yi為0時,則寫下全0。然后再對乘數(shù)Y的高一位進行類似乘法運算。重復“加—右移”操作N次,可得到最后的乘積。定點運算器——定點乘法運算法則:定點運算器——定點乘法例:X=0.1101,Y=0.1011,求X*Y=?解:|X|=00.1101|Y|=00.1011部分積乘數(shù)說明00.000000.1101+Yf101100.110100.011000.1101→+01.001100.100100.0000+00.100100.010000.110101.000100.1000→→+→1Yf10111Yf10111Yf11111YfY0=1,+XY1=1,+XY2=0,+0Y3=1,+X右移,得Z1=1右移,得Z2=1右移,得Z3=1右移,得Z4=1定點運算器——定點乘法例:X=0.1101,Y=0.1011定點運算器——定點乘法結(jié)果:
X*Y=0.10001111X*Y=1.01001110計算:X=-0.1101Y=0.0110,求X*Y?定點運算器——定點乘法結(jié)果:X*Y=0.10001111X*定點運算器——定點乘法(了解)原碼一位乘法的邏輯電路圖R0存放部分積,R2存放被乘數(shù),R1存放乘數(shù)。一、
R0清零,R2存放被乘數(shù),R1存放乘數(shù)。乘法開始時,“啟動”信號時控制CX置1,于是開啟時序脈沖T,當乘數(shù)寄存其R1最末位為“1“時,部分積Z和被乘數(shù)X在加法器中相加,其結(jié)果輸出至R0的輸入端。一旦控制脈沖T到來,控制信號LDR0使部分積右移1位,與此同時,乘數(shù)寄存其R1也在控制型號LDR1作用下右移一位,且計數(shù)器I記數(shù)一次,二、
將步驟三重復執(zhí)行N次三、
當計數(shù)器I=n時,計數(shù)器I的溢出信號使控制觸法器CX置0,關(guān)閉時序脈沖T,乘法宣告結(jié)束。
定點運算器——定點乘法(了解)原碼一位乘法的邏輯電路圖R0存原碼并行乘法不帶符號的陣列乘法器手工操作如下:原碼并行乘法不帶符號的陣列乘法器圖2.4m×n位不帶符號得陣列乘法器邏輯框圖圖2.4m×n位不帶符號得陣列乘法器邏輯框圖演示動畫演示動畫原碼并行乘法帶符號的陣列乘法器首先來看算術(shù)運算部件設(shè)計中常常用到的求補電路原碼并行乘法帶符號的陣列乘法器演示動畫E=1時啟動對2求補操作演示動畫E=1時啟動對2求補操作用這種對2求補器來轉(zhuǎn)換一個(n+1)位帶符號的數(shù),所需的總時間延遲為tTC=n×2T+5T=(2n+5)T用這種對2求補器來轉(zhuǎn)換一個(n+1)位帶符號的數(shù),所需的圖2.7(n+1)位×(n+1)位帶求補器的
陣列乘法器邏輯方框圖圖2.7(n+1)位×(n+1)位帶求補器的
陣列 圖2.7所示的帶求補級的陣列乘法器既適用于原碼乘法,也適用于間接的補碼乘法。不過在原碼乘法中,算前求補和算后求補都不需要,因為輸入數(shù)據(jù)都是立即可用的。而間接的補碼陣列乘法卻需要使三個求補器。為了完成所必須的求補與乘法操作,時間大約比原碼陣列乘法增加1倍例20例21 圖2.7所示的帶求補級的陣列乘法器既適用于原碼乘法,也適用直接補碼并行乘法(不做要求)補碼與真值的轉(zhuǎn)換公式 公式2.292.30P42[N]補=anan-1…a1a0其中an為符號位,則補碼數(shù)[N]補和真值N的關(guān)系可以表示成:
n-1
+∑ai2i當an=0([N]補為正)時
i=0n-1
-[1+∑(1-ai)2i]當an=1([N]補為負)時
i=0
可化為:n-1
N=-an2n+∑ai2i
i=0 (2n可以看成1+2n-1+2n-2+…+20)N=(2.29)直接補碼并行乘法(不做要求)補碼與真值的轉(zhuǎn)換公式N=(2.2補碼與真值的轉(zhuǎn)換公式又[-N]補=anan-1…a1a0+1,其中:ai=1-ai所以[-N]補可以表示為:n-1
-N=-(1-an)2n+∑(1-ai)2i+1
i=0(2.30)[例19]已知:[N]補=01101,[-N]補=10011,求[N]補,[-N]補具有的數(shù)值。補碼與真值的轉(zhuǎn)換公式又[-N]補=anan-1…a1表2.3四類一般化全加器的名稱和邏輯符號表2.3四類一般化全加器的名稱和邏輯符號對0類、3類全加器而言有:
對1類、2類全加器,則有對0類、3類全加器而言有:直接補碼陣列乘法器利用混合型的全加器就可以構(gòu)成直接補碼數(shù)陣列乘法器。設(shè)被乘數(shù)A和乘數(shù)B是兩個5位的二進制補碼數(shù),即其A=(a4)a3a2a1a0B=(b4)a3a2a1a0它們具有帶負權(quán)的符號位a4和b4,并用括號標注。直接補碼陣列乘法器利用混合型的全加器就可以構(gòu)成直接補碼數(shù)陣列直接補碼陣列乘法器 (a4)a3
a2
a1
a0=A
×)(b4)b3b2b1b0=B
(a4b0)a3b0a1b0
a1b0
a0b0
(a4b1)a3b1
a2b1a1b1
a0b1
(a4b2)a3b2
a2b2a1b2
a0b2
(a4b3)a3b3
a2b3a1b3
a0b3
+)a4b4(a3b4)(a2b4)(a1b4)(a0b4)
p9
p8
p7
p6
p5
p4
p3
p2p1
p0=P
直接補碼陣列乘法器 (a4)a3也可以如
動畫演示所示也可以如
動畫演示所示定點運算器——定點除法定點原碼除法在定點計算機中,完成兩個原碼表示的數(shù)相除時,商的符號由兩數(shù)的符號位和原碼乘法運算方法一樣,用模2求和得到,而商的數(shù)值部分則是兩個正數(shù)相除得到。設(shè)有有n位定點小數(shù)(定點整數(shù)也同樣適用):被除數(shù)[X]原=xf.
xn-1…x1x0除數(shù)[Y]原=yf.yn-1…y1y0
則商[Q]原=(xf⊕yf)+(0.xn-1…x1x0/0.yn-1…y1y0))定點運算器——定點除法定點原碼除法定點運算器——定點除法計算機中執(zhí)行除法時,商的符號位由被除數(shù)和除數(shù)的符號位通過一個半加器實現(xiàn);對于數(shù)值部分,由于定點小數(shù)的絕對值小于1,如果被除數(shù)大于或等于除數(shù),則商就大于或等于1,因而會產(chǎn)生溢出,這是不允許的。因此在執(zhí)行除法以前,先要判別是否溢出,不溢出時才執(zhí)行除法運算。判別溢出的方法是被除數(shù)減去除數(shù),若差為正,就表示溢出。定點運算器——定點除法計算機中執(zhí)行除法時,商的符號位定點運算器——定點除法手工計算除法的方法:設(shè)被除數(shù)為X=0.1001,Y=0.1011,求X/Y=?定點運算器——定點除法手工計算除法的方法:定點運算器——定點除法X/Y=0.1101余數(shù)=0.0111*2-4定點運算器——定點除法X/Y=0.1101恢復余數(shù)法恢復余數(shù)法的運算規(guī)則:計算機中進行除法時,是模仿十進制除法筆算的過程,但又不能完全照搬。在機器中判斷是否夠減,必須先做減法,若余數(shù)為正,表示夠減;若余數(shù)為負,表示不夠減,不夠減時,必須恢復原來的余數(shù),以便再繼續(xù)往下運算,這種方法稱為恢復余數(shù)法。要恢復原來的余數(shù),只要當前的余數(shù)加上除數(shù)即可?;謴陀鄶?shù)法恢復余數(shù)法的運算規(guī)則:定點運算器—定點除法例:X=0.1001,Y=0.1011,用恢復余數(shù)法求X/Y=?解:[X]原=[X]補=0.1001[Y]補=0.1011[-Y]補=1.0101定點運算器—定點除法例:X=0.1001,Y=0.10解:被除數(shù)/余數(shù)商數(shù)q說明商0移入q,r0’左移商1移入q,r1左移商1移入q,r2左移商0移入q,r3’左移00.100111.010111.111000.101100.100100.011101.001011.010100.111011.010100.001100.011011.010111.101100.101100.011000.110011.010100.000100.0001+[-Y]補+[Y]補+[-Y]補+[-Y]補+[-Y]補+[Y]補+[-Y]補←←←←00.10.110.1100.1101X減Y余數(shù)r0<0,商“0”恢復余數(shù)r0’減Y余數(shù)r1>0,商“1”減Y余數(shù)r4>0,商“1”減Y余數(shù)r3<0,商“0”恢復余數(shù)r3’=2r2減Y商1移入q,r4不左移余數(shù)r2>0,商“1”解:被除數(shù)/余數(shù)定點運算器—定點除法[Q]原=0.1101[R]原=0.0001,R=2-4*0.0001結(jié)果:定點運算器—定點除法[Q]原=0.1101結(jié)果:定點運算器—定點除法恢復余數(shù)法的缺點:
當某一次-Y的差值為負時,要多一次+Y恢復余數(shù)的操作,降低了執(zhí)行速度,又使控制線路變得復雜,因此在計算機中很少采用。定點運算器—定點除法恢復余數(shù)法的缺點:定點運算器—定點除法
在恢復余數(shù)除法中,若第i-1次求商的余數(shù)為+Ri-1時,下一次求商用的方法是Ri=2Ri-1-Y當Ri<0時,第i位的商上0,而恢復余數(shù)的操作結(jié)果應(yīng)為Ri+Y,下一次,即第i+1次求商的減法操作是Ri+1=2(Ri+Y)-Y=2Ri+Y上述公式表明,當某一次求商,其減得的差值為負,即Ri<0時,本次上商為0,繼續(xù)求下一位商時,可以不必恢復余數(shù),而是直接將負的差值左移一位后(得2Ri),再采用加上除數(shù)的方法來完成。定點運算器—定點除法在恢復余數(shù)除法中,若第i-1次求定點運算器—定點除法加減交替法的規(guī)則:首先作X-Y,余數(shù)為正,表明產(chǎn)生溢出,應(yīng)終止除法運算;余數(shù)為負,上商為0(作為商的符號位),然后重復下述操作n次,可得商的n位數(shù)值a.余數(shù)左移一位。b.余數(shù)為正時,減除數(shù);余數(shù)為負時,加除數(shù)。c.所得的新余數(shù)為正時,上商為1;為負時,上商為0。由于運算中余數(shù)共左移了n次,相當于乘2n,故最后得余數(shù)應(yīng)乘上2-n才是真正的正確余數(shù)。定點運算器—定點除法加減交替法的規(guī)則:定點運算器—定點除法例:X=0.1001,Y=0.1011,求X/Y解:[X]補=0.1001[Y]補=0.1011[-Y]補=1.0101定點運算器—定點除法例:X=0.1001,Y=0.1011,解:[X]原=[X]補=X=0.1001,[Y]補=0.1011,[-Y]補=1.0101被除數(shù)X/余數(shù)r商數(shù)q說明+[-Y]補00.100111.010111.111011.110000.101100.011100.111011.010100.001100.011011.010111.101111.011000.101100.0001+[-Y]補+[Y]補+[-Y]補+[Y]補←←←←00.10.110.1100.1101X減Y余數(shù)r0為負余數(shù)r1為正余數(shù)r2為正余數(shù)r3為負余數(shù)r4為正商0,r和q左移一位商1,r和q左移一位商1,r和q左移一位商0,r和q左移一位加Y減Y減Y加Y商1,僅q左移一位解:[X]原=[X]補=X=0.1001,[Y]補=0.1Q=0.1101R=2-4*0.0001結(jié)果:Q=0.1101結(jié)果:并行除法器(不做要求)1.可控加法/減法(CAS)單元可控加法/減法(CAS)單元,它將用于并行除法流水邏輯陣列中,它有四個輸出端和四個輸入端。當輸入線P=0時,CAS作加法運算;當P=1時,CAS作減法運算并行除法器(不做要求)1.可控加法/減法(CAS)單元可控加法/減法(CAS)單元CAS單元的輸入與輸出的關(guān)系
Si=Ai⊕(Bi⊕P)⊕CiCi+1=(Ai+Ci)·(Bi⊕P)+AiCi可控加法/減法(CAS)單元CAS單元的輸入與輸出的關(guān)系第二章_運算方法和運算器2《計算機組成原理課件》2.不恢復余數(shù)的陣列除法器假定所有被處理的數(shù)都是正的小數(shù)。不恢復余數(shù)的除法也就是加減交替法。在不恢復余數(shù)的除法陣列中,每一行所執(zhí)行的操作究竟是加法還是減法,取決于前一行輸出的符號與被除數(shù)的符號是否一致。當出現(xiàn)不夠減時,部分余數(shù)相對于被除數(shù)來說要改變符號。這時應(yīng)該產(chǎn)生一個商位“0”,除數(shù)首先沿對角線右移,然后加到下一行的部分余數(shù)上。當部分余數(shù)不改變它的符號時,即產(chǎn)生商位“1”,下一行的操作應(yīng)該是減法。2.不恢復余數(shù)的陣列除法器假定所有被處理的數(shù)2.不恢復余數(shù)的陣列除法器被除數(shù)x=0.x1x2x3x4x5x6
(雙倍長)
除數(shù)y=0.y1y2y3
商數(shù)q=0.q1q2q3
余數(shù)r=0.00r3r4r5r6
字長n+1=42.不恢復余數(shù)的陣列除法器被除數(shù)x=0.x1x2x3x4第二章_運算方法和運算器2《計算機組成原理課件》2.不恢復余數(shù)的陣列除法器對一個2n位除以n位的不恢復余數(shù)陣列除法器來說,單元的數(shù)量為(n+1)2,考慮最大情況下的信號延遲,其除法執(zhí)行時間為
td=3(n+1)2T其中n為尾數(shù)位數(shù)。2.不恢復余數(shù)的陣列除法器對一個2n位除以n位的不恢復余數(shù)陣例23x=0.101001,y=0.111,求x÷y。(步驟參考書本)解:[-y]補=1.001被除數(shù)x0.101001
減y1.001
余數(shù)為負1.110001<0q0=0
余數(shù)左移1.10001
加y0.111
余數(shù)為正0.01101>0q1=1
余數(shù)左移0.1101
減y1.001
余數(shù)為負1.1111<0q2=0
余數(shù)左移1.111
加y0.111
余數(shù)為正0.110>0q3=1故得
商q=q0.q1q2q3=0.101
余數(shù)r=(0.00r3r4r5r6)=0.000110例23x=0.101001,y=0.111,求x÷y2.5定點運算器的組成
2.5.1邏輯運算
計算機中除了進行加、減、乘、除等基本算術(shù)運算外,還可對兩個或一個邏輯數(shù)進行邏輯運算。所謂邏輯數(shù),是指不帶符號的二進制數(shù)。利用邏輯運算可以進行兩個數(shù)的比較,或者從某個數(shù)中選取某幾位等操作。計算機中的邏輯運算,主要是指邏輯非、邏輯加、邏輯乘、邏輯異四種基本運算。2.5定點運算器的組成
2.5.1邏輯運算1.邏輯非運算
邏輯非也稱求反。如:
x1=01001011,x2=11110000,求x1,x2。 x1=10110100 x2=000011112.邏輯加運算按位求它們的“或”x=10100001,y=10011011,求x∨y。10100001x
∨10011011y
10111011z3.邏輯乘運算按位求它們的“與”
x=10111001,y=11110011,求x∧y。10111001x
∧11110011y
10110001z1.邏輯非運算邏輯非也稱求反。如:4.邏輯異運算按位求它們的模2和x=10101011,y=11001100,求x⊕y。[解:]10101011x
⊕11001100y
01100111z即x⊕y=011001114.邏輯異運算按位求它們的模2和事實上,邏輯加還可以通過邏輯乘和邏輯非來實現(xiàn):
同樣,邏輯乘也可以用邏輯加和邏輯非來實現(xiàn):
事實上,邏輯加還可以通過邏輯乘和邏輯非來實現(xiàn):2.5.2多功能算術(shù)/邏輯運算單元(ALU)由一位全加器(FA)構(gòu)成的行波進位加法器,它可以實現(xiàn)補碼數(shù)的加法運算和減法運算。但是這種加法/減法器存在兩個問題:一是由于串行進位,它的運算時間很長。假如加法器由n位全加器構(gòu)成,每一位的進位延遲時間為20ns,那么最壞情況下,進位信號從最低位傳遞到最高位而最后輸出穩(wěn)定,至少需要n*20ns,這在高速計算中顯然是不利的。二是就行波進位加法器本身來說,它只能完成加法和減法兩種操作而不能完成邏輯操作。本節(jié)我們介紹的多功能算術(shù)/邏輯運算單元(ALU)不僅具有多種算術(shù)運算和邏輯運算的功能,而且具有先行進位邏輯,從而能實現(xiàn)高速運算。2.5.2多功能算術(shù)/邏輯運算單元(ALU)由一位全加器(定點運算器的組成——多功能算術(shù)/邏輯運算單元基本思想
一位全加器(FA)的邏輯表達式為:Fi=Ai⊕
Bi⊕CiCi+1=AiBi+BiCi+CiAi為了將全加器的功能進行擴展以完成多種算術(shù)邏輯運算,先不將輸入Ai和Bi和下一位的進位Ci直接進行全加,而是將Ai和Bi先組合由S0,S1,S2,S3控制的組合函數(shù)Xi和Yi,然后再將Xi,Yi和下一位進位數(shù)通過全加器進行全加,這樣,不同的控制參數(shù)可以得到不同的組合函數(shù),以能夠?qū)崿F(xiàn)多種算術(shù)運算和邏輯運算。定點運算器的組成——多功能算術(shù)/邏輯運算單元基本思想定點運算器的組成——多功能算術(shù)/邏輯運算單元S1全加器函數(shù)發(fā)生器FiCn+i+1Cn+iXiYiAiBiS0S2S3S0S1
YiS2S3Xi00
Ai00101
AiBi01Ai+Bi10
AiBi10Ai+Bi11011AiXi、Yi與控制參數(shù)和輸入量的關(guān)系定點運算器的組成——多功能算術(shù)/邏輯運算單元S1全加器函數(shù)發(fā)定點運算器的組成——多功能算術(shù)/邏輯運算單元ALU的某一位邏輯表達式如下:Xi=S3AiBi+S2AiBiYi=Ai+S0Bi+S1BiFi=Yi+Xi+Cn+iCn+i+1=Yi+XiCn+i定點運算器的組成——多功能算術(shù)/邏輯運算單元ALU的某一位邏定點運算器的組成——多功能算術(shù)/邏輯運算單元每一位的進位公式可遞推如下:Cn+1=Y0+X0CnCn+2=Y1+X1Cn+1=Y1+Y0X1+X0X1CnCn+3=Y2+X2Cn+2=Y2+X2Y1+Y0X1X2+X0X1X2CnCn+4=Y3+X3Cn+3
=Y3+Y2X3+Y1X2X3+Y0X1X2X3+X0X1X2X3Cn定點運算器的組成——多功能算術(shù)/邏輯運算單元每一位的進位公式定點運算器的組成——多功能算術(shù)/邏輯運算單元設(shè):該式表明,第0位的進位輸入可以直接傳送到最高進位位上去,因而可以實現(xiàn)高速運算。G=Y3+X3Y2+X2X3Y1+Y0X1X2X3P=X0X1X2X3則:Cn+4=G+PCn其中:G稱為進位發(fā)生輸出P稱為進位傳送輸出定點運算器的組成——多功能算術(shù)/邏輯運算單元設(shè):用正邏輯表示的4位算術(shù)/邏輯運算單元(ALU)的邏輯電路圖如下,它是根據(jù)上面的原始推導公式用TTL電路實現(xiàn)的。這個器件的商業(yè)標號為74181ALU。用正邏輯表示的4位算術(shù)/邏輯運算單元(ALU)的邏輯電路圖如第二章_運算方法和運算器2《計算機組成原理課件》第二章_運算方法和運算器2《計算機組成原理課件》兩級先行進位
74181ALU設(shè)置了P和G兩個本組先行進位輸出端。如果將四片74181的P,G輸出端送入到74182先行進位部件(CLA),又可實現(xiàn)第二級的先行進位,即組與組之間的先行進位。兩級先行進位74181ALU設(shè)置了P和G兩個本組先行進位先行進位部件74182CLA所提供的進位邏輯關(guān)系如下:
Cn+x=G0+P0CnCn+y=G1+P1Cn+x=G1+G0P1+P0P1Cn
Cn+z=G2+P2Cn+y=G2+G1P2+G0P1P2+P0P1P2CnCn+4=G3+P3Cn+z=G3+G2P3+G1P1P2+G0P1P2P3+P0P1P2P3Cn
=G*+P*Cn其中
P*=P0P1P2P3
G*=G3+G2P3+G1P1P2+G0P1P2P3其中G*稱為成組進位發(fā)生輸出,P*稱為成組進位傳送輸出。先行進位部件74182CLA所提供的進位邏輯關(guān)系如下:第二章_運算方法和運算器2《計算機組成原理課件》并行進位74182并行進位741827418174181741817418174182C0C4C8C12C1674181------4片74182------1片16位二級并行進位ALU7418174181741817418174182C0C4C32位ALU32位ALU64位3級先行進位ALU74181-----16片74182---------5片C0181181741827418274182C6464位3級先行進位ALU74181-----16片2.5.3內(nèi)部總線由于計算機內(nèi)部的主要工作過程是信息傳送和加工的過程,因此在機器內(nèi)部各部件之間的數(shù)據(jù)傳送非常頻繁。為了減少內(nèi)部的傳送線并便于控制,通常將一些寄存器之間數(shù)據(jù)傳送的通路加以歸并,組成總線結(jié)構(gòu),使不同來源的信息在此傳輸線上分時傳送。根據(jù)總線所在位置,總線分為內(nèi)部總線和外部總線兩類。內(nèi)部總線是指CPU內(nèi)各部件的連線,而外部總線是指系統(tǒng)總線,即CPU與存儲器、I/O系統(tǒng)之間的連線。本節(jié)只討論內(nèi)部總線。按總線的邏輯結(jié)構(gòu)來說,總線可分為單向傳送總線和雙向傳送總線。所謂單向總線,就是信息只能向一個方向傳送。所謂雙向總線,就是信息可以分兩個方向傳送,既可以發(fā)送數(shù)據(jù),也可以接收數(shù)據(jù)。2.5.3內(nèi)部總線由于計算機內(nèi)部的主要工作圖2.14(a)是帶有緩沖驅(qū)動器的4位雙向數(shù)據(jù)總線。其中所用的基本電路就是三態(tài)邏輯電路。當“發(fā)送”信號有效時,數(shù)據(jù)從左向右傳送。反之,當“接收”信號有效時,數(shù)據(jù)從右向左傳送。圖2.14(a)是帶有緩沖驅(qū)動器的4位雙向數(shù)據(jù)總線。其中所用圖2.14(b)所示的是帶有鎖存器的4位雙向數(shù)據(jù)總線。它主要由一個DE觸發(fā)器和一個三態(tài)緩沖器組成。DE觸發(fā)器是在一個普通D觸發(fā)器上另加一個E輸入端(允許端)而構(gòu)成的。此處E輸入端用以控制D的輸入。若E=0,即使D為“1”,也不能輸入。當接收數(shù)據(jù)時,E=1同時三態(tài)門被禁止,因而數(shù)據(jù)總線上的數(shù)據(jù)被接收到鎖存器。當發(fā)送數(shù)據(jù)時,E=0同時三態(tài)門被允許,因而鎖存器的數(shù)據(jù)發(fā)送至數(shù)據(jù)總線上。圖2.14(b)所示的是帶有鎖存器的4位雙向數(shù)據(jù)總線。它主要2.5.4定點運算器的基本結(jié)構(gòu)運算器包括ALU、陣列乘除器、寄存器、多路開關(guān)、三態(tài)緩沖器、數(shù)據(jù)總線等邏輯部件。計算機的運算器的結(jié)構(gòu)一般有三種。2.5.4定點運算器的基本結(jié)構(gòu)運算器包括ALU、陣列乘除器定點運算器的基本結(jié)構(gòu)ABALU通用寄存器特殊寄存器單總線結(jié)構(gòu)的運算器輸入數(shù)據(jù)和操作結(jié)構(gòu)需要三次串行的選通操作,但它并不會對每種指令都增加很多執(zhí)行時間。由于只控制一條總線,所以控制電路比較簡單。定點運算器的基本結(jié)構(gòu)ABALU通用寄存器特殊寄存通用寄存器特殊寄存器特殊寄存器ALU緩沖器總線1總線2
兩個操作數(shù)同時加到ALU進行運算,只需要一次操作控制,而且馬上得到運算結(jié)果。
ALU的輸出不能直接加到總線上去,這是因為,當形成操作結(jié)果的輸出時,兩條總線都被輸入數(shù)據(jù)占據(jù),因而必須在ALU的輸出端設(shè)置緩沖器。雙總線結(jié)構(gòu)的運算器定點運算器的基本結(jié)構(gòu)通用特殊特殊ALU緩沖器總線1總線2定點運算器的基本結(jié)構(gòu)通用寄存器ALU特殊寄存器總線旁路器總線1總線2總線3
ALU的兩個輸入端分別由總線提供,而ALU的輸出則與第三條總線相連。這樣,算術(shù)邏輯操作就可以在一步的控制之內(nèi)完成。設(shè)置一個總線旁路器,如果一個操作數(shù)不需要修改,而直接從總線2傳送到總線3,那么可以通過控制總線旁路器把數(shù)據(jù)傳出。定點運算器的基本結(jié)構(gòu)通用ALU特殊總線總線2.6浮點運算方法和浮點運算器浮點數(shù)的加法、減法運算設(shè)有兩個浮點數(shù)的分別為 X=2Ex·Mx
Y=2Ey·My
兩浮點數(shù)進行加法和減法的運算規(guī)則是2.6浮點運算方法和浮點運算器浮點數(shù)的加法、減法運算實現(xiàn)浮點加減法算的基本步驟分為四步完成:⑴0操作數(shù)檢查:用來判斷兩個操作數(shù)中是否有一個為0.⑵對階操作:即比較兩個浮點數(shù)的階碼值的大小,求△E=Ex-Ey,然后將小階對大階。⑶尾數(shù)進行加或減運算:實現(xiàn)尾數(shù)的加減運算,執(zhí)行兩個完成對階后的浮點數(shù)的求和(差)的過程
⑷規(guī)格化:在浮點加減運算時,尾數(shù)求和的結(jié)果也可以得到01.ф…ф或10.ф…ф,即兩符號位不等,這在定點加減法運算中稱為溢出,是不允許的。但在浮點運算中,它表明尾數(shù)求和結(jié)果的絕對值大于1,向左破壞了規(guī)格化。此時將運算結(jié)果右移以實現(xiàn)規(guī)格化表示,稱為向右規(guī)格化。規(guī)則是:尾數(shù)右移1位,階碼加1。當尾數(shù)不是1.M時需向左規(guī)格化。實現(xiàn)浮點加減法算的基本步驟分為四步完成:(5)舍入處理在對階或向右規(guī)格化時,尾數(shù)要向右移位,這樣,被右移的尾數(shù)的低位部分會被丟掉,從而造成一定誤差,因此要進行舍入處理。簡單的舍入方法有兩種:一種是"0舍1入"法,即如果右移時被丟掉數(shù)位的最高位為0則舍去,為1則將尾數(shù)的末位加"1"。另一種是"恒置一"法,即只要數(shù)位被移掉,就在尾數(shù)的末尾恒置"1"。在IEEE754標準中,舍入處理提供了四種可選方法:就近舍入、朝0舍入、朝+∞舍入、朝-∞舍入(5)舍入處理(6)浮點數(shù)的溢出下圖表示了浮點機器數(shù)在數(shù)軸上的分布情況。階碼上溢超過了階碼可能表示的最大值的正指數(shù)值,一般將其認為是+∞和-∞。階碼下溢超過了階碼可能表示的最小值的負指數(shù)值,一般將其認為是0。
尾數(shù)上溢
兩個同符號尾數(shù)相加產(chǎn)生了最高位向上的進位,將尾數(shù)右移,階碼增1來重新對齊。尾數(shù)下溢在將尾數(shù)右移時,尾數(shù)的最低有效位從尾數(shù)域右端流出,要進行舍入處理。
(6)浮點數(shù)的溢出浮點運算器——浮點運算方法取指定位數(shù)舍入處理階碼減1尾數(shù)左移1位尾數(shù)加法(帶符號)小階加1尾數(shù)右移1位加法減法Y變符號X=0?Y=0?z←yz←xz←另一數(shù)z←0報告上溢報告下溢階碼相同?尾數(shù)=0?尾數(shù)=0?階碼加1尾數(shù)右移1位階碼上溢階碼下溢尾數(shù)上溢已是1.M0操作檢查對階操作尾數(shù)加減結(jié)果規(guī)格化結(jié)束是是是是是是是是否否否否否否否否浮點運算器——浮點運算方法取指定位數(shù)階碼減1尾數(shù)加法小階加1浮點運算器——浮點運算方法例:設(shè)X=2010*0.11011011,Y=2100*(-0.10101100),求X+Y。(假設(shè)兩數(shù)均以補碼表示,階碼采用雙符號位,尾數(shù)采用單符號位.)浮點運算器——浮點運算方法例:設(shè)X=2010*0.11011浮點運算器——浮點運算方法解:浮點表示為:
[X]浮=00010,0.11011011[Y]浮=00100,1.01010100(1)對階
E=Ex-Ey=00010+11100=11110即△E為-2,X的階碼小,應(yīng)使Mx右移兩位,Ex加2,得:
[X]浮=00100,0.00110110(11)浮點運算器——浮點運算方法解:浮點表示為:浮點運算器——浮點運算方法+(2).尾數(shù)求和
0.00110110(11)1.010101001.10001010(11)浮點運算器——浮點運算方法+(2).尾數(shù)求和0.001101浮點運算器——浮點運算方法
(3).規(guī)格化和舍入處理結(jié)果的符號位與最高數(shù)值位相同,應(yīng)執(zhí)行左規(guī)處理(為保證尾數(shù)的絕對值大于等于0.5),所謂左規(guī)格化的規(guī)則,就是尾數(shù)左移1位,階碼減1,所以結(jié)果為1.00010101(10),階碼為00011舍入處理,采用0舍1入法處理,則有1.00010101+11.00010110浮點運算器——浮點運算方法
(3).規(guī)格化和舍入處理浮點運算器——浮點運算方法(4).判溢出階碼的符號位為00,不溢出。所以最終的結(jié)果為X+Y=2011*(-0.11101010)浮點運算器——浮點運算方法(4).判溢出浮點運算器——浮點運算方法例:設(shè)X=2001*(-0.111),Y=2010*0.101,求X-Y.(假設(shè)兩數(shù)均以補碼表示,階碼采用3位,尾數(shù)采用4位,均包括符號位.)浮點運算器——浮點運算方法例:設(shè)X=2001*(-0.111浮點運算器——浮點運算方法解:浮點表示為:
[X]浮=001,1.001[Y]浮=010,0.101(1)對階
[△E]補=[Ex]補-[Ey]補=001+110=111
即△E為-1,X的階碼小,應(yīng)使Mx右移1位,Ex加1,得:
[X]浮=010,1.100(1)浮點運算器——浮點運算方法解:浮點表示為:浮點運算器——浮點運算方法+(2).尾數(shù)求差:[-Y]補=1.011
1.100(1)1.01110.111(1)丟失1兩個負數(shù)相加,結(jié)果為正數(shù),說明產(chǎn)生了溢出.但是在浮點數(shù)的運算中,只有當階碼產(chǎn)生溢出時,才是溢出。此時只是說明尾數(shù)的結(jié)果為不規(guī)格化數(shù),應(yīng)進行右規(guī)。浮點運算器——浮點運算方法+(2).尾數(shù)求差:[-Y]補=浮點運算器——浮點運算方法
(3).規(guī)格化和舍入處理由于結(jié)果產(chǎn)生了溢出,應(yīng)執(zhí)行右規(guī)處理,所謂右規(guī)格化的規(guī)則,就是尾數(shù)右移1位,階碼加1,所以結(jié)果為1.011(1),階碼為011舍入處理,采用恒舍法處理,則有尾數(shù)為1.011浮點運算器——浮點運算方法
(3).規(guī)格化和舍入處理浮點運算器——浮點運算方法(4).判溢出階碼不溢出。所以最終的結(jié)果為X+Y=2011*(-0.101)浮點運算器——浮點運算方法(4).判溢出浮點運算器——浮點運算法浮點數(shù)的乘除法:設(shè)有兩個浮點數(shù)的分別為X=Mx*2Ex,Y=My*2Ey,則浮點數(shù)乘法運算規(guī)則:X*Y=2(Ex+Ey)*(MX*MY)設(shè)有兩個浮點數(shù)的分別為X=Mx*2Ex,Y=My*2Ey,則浮點除法運算規(guī)則:X÷Y=2(Ex-Ey)*(MX÷MY)浮點運算器——浮點運算法浮點數(shù)的乘除法:浮點運算器——浮點運算法浮點乘、除法的運算步驟:浮點數(shù)的乘除運算大體分為四步:第一步,0操作數(shù)檢查;第二步,階碼加/減操作;第三步,尾數(shù)乘/除操作;第四步,結(jié)果規(guī)格化及舍入處理。(1)浮點數(shù)的階碼運算對階碼的運算有+1、-1、兩階碼求和、兩階碼求差四種,運算時還必須檢查結(jié)果是否溢出。浮點運算器——浮點運算法浮點乘、除法的運算步驟:浮點運算器——浮點運算法浮點數(shù)的尾數(shù)處理浮點加減法對結(jié)果的規(guī)格化及舍入處理也適用于浮點乘除法。第一種方法:無條件地丟掉正常尾數(shù)最低位之后的全部數(shù)值,這種方法稱為截斷處理。第二種方法:運算過程中保留右移中移出的若干高位的值,最后按某種規(guī)則用這些位上的值修正尾數(shù),這種處理稱為舍入處理。浮點運算器——浮點運算法浮點數(shù)的尾數(shù)處理舍入處理:原碼:0舍1入法:置1法:補碼00…0,不必舍入100..0或0xxxx(xxxx不全為0),舍棄1xxxx(xxxx不全為0),尾數(shù)最低位+1舍入處理:例:設(shè)[x1]補=11.01100000[x2]補=11.01100001[x3]補=11.01101000[x4]補=11.01111001求:執(zhí)行只保留小數(shù)點后4位有效數(shù)字的舍入操作值。例:設(shè)[x1]補=11.01100000例28:設(shè)有浮點數(shù)x=2-5×0.0110011,y=23×(-0.1110010),階碼用4位移碼表示,尾數(shù)(含符號位)用8位補碼表示,求[x×y]浮。要求用補碼完成尾數(shù)乘法運算,運算結(jié)果尾數(shù)保留高8位(含符號位),并用尾數(shù)低位字長的值處理舍入操作。例28:設(shè)有浮點數(shù)x=2-5×0.0110011,浮點運算流水線流水線原理:假定作業(yè)T被分成k個子任務(wù),可表達為T={T1,T2,···,Tk}浮點運算流水線流水線原理:假定作業(yè)T被分成k個子任務(wù)設(shè)過程段Si所需的時間為τi,緩沖寄存器的延時為τι,線性流水線的時鐘周期定義為τ=max{τi}+τι=τm+τι
k級過程段的流水線處理n個任務(wù)需要的時鐘周期數(shù)為:Tk=k+(n-1)如果用非流水線的硬件來處理這n個任務(wù),時間上只能串行進行,則所需時鐘周期數(shù)為TL=n·k我們將TL和Tk的比值定義為k級線性流水線的加速比:Ck=TL/Tk=n*k/(k+(n-1))
當n>>k時,Ck->k設(shè)過程段Si所需的時間為τi,緩沖寄存器的延時為τι,線性時空圖時空圖例32:假設(shè)有一個4級流水浮點加法器每個過程段所需的時間為:0操作數(shù)檢查τ1=70ns,對階τ2=60ns,相加τ3=90ns,規(guī)格化τ4=80ns,緩沖寄存器L的延時為tl=10ns,(1)求4級流水線加法器的加速比為多少?(2)如果每個過程段的時間相同,即都為75ns,(包括緩沖寄存器時間),加速比是多少?(3)畫出時空圖。例32:假設(shè)有一個4級流水浮點加法器每個過程段所需的時間為[解:](1)加法器的流水線時鐘周期至少為τ=max{τi}+τι=90ns+10ns=100ns如果采用同樣的邏輯電路,但不是流水線方式,則浮點加法所需的時間為τ1+τ2+τ3+τ4=300ns因此,4級流水線加法器的加速比為Ck=TL/Tk≈300/100=3(n>>4)(2)當每個過程段的時間都是75ns時,加速比為Ck=300/75=4[解:]§2.2定點加法、減法運算1、補碼加法
任意兩個數(shù)的補碼之和,等于該兩數(shù)和的補碼。[X+Y]補=[X]補+[Y]補(mod2n+1或2)兩個數(shù)不管正負,均用補碼表示,符號位應(yīng)當做數(shù)值參加運算,符號位相加所產(chǎn)生的進位要丟掉,結(jié)果為補碼?!?.2定點加法、減法運算1、補碼加法可以證明:[X+Y]補=[X]補+[Y]補[X-Y]補=[X]補+[-Y]補[-Y]補的求法:將[Y]補連同符號位求反加1。例11:X=+1001Y=+0101,求X+Y=?解:[X]補=01001[Y]補=00101[X+Y]補=[X]補+[Y]補=01001+00101=01110 所以X+Y=+1110可以證明:解:[X]補=01001定點運算器——定點加減法例12:X=+0.1011Y=-0.0101,
求X+Y=?解:[X]補=0.1011[Y]補=1.1011+011010.丟失1[X]補+[Y]補=0.0110X+Y=0.0110定點運算器——定點加減法例12:X=+0.1011Y定點運算器——定點加減法例(補充):X=-11001,Y=-00011,求X+Y=?解:[X]補=100111[Y]補=111101+001011丟失1
[X]補+[Y]補=100100X+Y=-111000由以上兩例看到,補碼加法的特點:一是符號位要作為數(shù)的一部分一起參加運算。二是要在模2或2n+1的意義下相加,即超過2或2n+1的進位要丟掉!定點運算器——定點加減法例(補充):X=-11001定點運算器——定點加減法2、補碼減法:
[X]補-[Y]補=[X+(-Y)]補=[X]補+[-Y]補(-Y)的補碼稱為[Y]補的機器負數(shù),由[Y]補求[-Y]補的過程稱為將[Y]補“變補”或?qū)Y]補求補,由[Y]補求[-Y]補的方法是,不管Y的真值為正或為負,都是將[Y]補的各位連同符號位在內(nèi)全變反后,最低位加1。定點運算器——定點加減法2、補碼減法:定點運算器——定點加減法例:X=-0.1011Y=-0.0110,求X-Y=?解:[X]補=1.0101[-Y]補=0.0110+11011.[X-Y]補=1.1011X-Y=-0.0101定點運算器——定點加減法例:X=-0.1011Y=-3、溢出及其判別方法:在計算機中,由于機器碼的尾數(shù)通常是給定的(如16位字長,32位字長),因此,在計算機中數(shù)的表示范圍是有限的,若兩數(shù)進行加減運算的結(jié)果超出了給定的取值范圍,就稱為溢出。一旦出現(xiàn)溢出,必須及時處理,否則會出現(xiàn)錯誤。3、溢出及其判別方法:在計算機中,由于機器碼的尾數(shù)通常是給定(1)、溢出例15:X=1011Y=1001求X+Y解:[X]補=01011+[Y]補=0100110100例2:X=-1010Y=-1011求X+Y解:[X]補=10110+[Y]補=1010101011較大正數(shù)相加產(chǎn)生進位,影響符號位較大的負數(shù)對應(yīng)較小的正數(shù)補碼相加無進位,符號位自己相加(1)、溢出例15:X=1011Y=1001(2)溢出原因:之所以發(fā)生錯誤,是因為運算結(jié)果產(chǎn)生了溢出。兩個正數(shù)相加,結(jié)果大于機器所能表示的最大正數(shù),稱為上溢。而兩個負數(shù)相加,結(jié)果小于機器所能表示的最小負數(shù),稱為下溢。
兩異號數(shù)相加或兩同號數(shù)相減是否會產(chǎn)生溢出?僅當兩同號數(shù)相加或兩異號數(shù)相減時才有可能產(chǎn)生溢出?問題:決不會產(chǎn)生溢出正確(2)溢出原因:兩異號數(shù)相加或兩同號數(shù)相減是否問題:決不會為了判斷“溢出”是否發(fā)生,可采用兩種檢測的方法。第一種方法是采用雙符號位法,這稱為“變形補碼”或“模4補碼”。從而可使模2補碼所能表示的數(shù)的范圍擴大一倍。為了判斷“溢出”是否發(fā)生,可采用兩種檢測的方法。第一定點運算器——定點加減法1)采用雙符號位的判斷方法每個操作數(shù)的補碼符號用兩個二進制數(shù)表示,稱為變形補碼,用“00”表示正數(shù),“11”表示負數(shù),左邊第一位叫第一符號位,右邊第一位稱為第二符號位,兩個符號位同時參加運算,如果運算結(jié)果兩符號位相同,則沒有溢出發(fā)生。如果運算結(jié)果兩符號位不同,則表明產(chǎn)生了溢出?!?0”表示負溢出(下溢出),說明運算結(jié)果為負數(shù),“01”表示正溢出(上溢出),說明運算結(jié)果為正數(shù)。定點運算器——定點加減法1)采用雙符號位的判斷方法定點運算器——定點加減法采用雙符號位的判斷方法
高符號位低符號位
結(jié)果00正01上溢10下溢11負定點運算器——定點加減法采用雙符號位的判斷方法高符號例17:X=+0.1100Y=+0.1000,求X+Y=?解:[X]補=00.1100[Y]補=00.1000+01.0100正數(shù)太大了,向前有進位,而符號位向前無進位;兩個符號位:01,表示正溢出例17:X=+0.1100Y=+0.1000,求X例:X=-0.1100Y=-0.1000,求X+Y=?解:[X]補=11.0100[Y]補=11.1000+10.1100負數(shù)絕對值太大了對應(yīng)的補碼小,向前無進位,而符號位向前有進位;兩個符號位:10,表示負溢出溢出邏輯表達式為:V=Sf1⊕Sf2
(其中Sf1為最高符號位,Sf2為第二符號位)例:X=-0.1100Y=-0.1000,求X+Y由此可以得出如下結(jié)論:1.當以模4補碼運算,運算結(jié)果的二符號位相異時,表示溢出;相同時,表示未溢出。2.模4補碼相加的結(jié)果,不論溢出與否,最高符號位始終指示正確的符號。第二章_運算方法和運算器2《計算機組成原理課件》例:X=-0.100Y=-0.101,求X+Y=?解:[X]補=1.100[Y]補=1.011+11110.丟失1兩負數(shù)相加,結(jié)果應(yīng)為負數(shù),但運算結(jié)果為正數(shù),表明有溢出發(fā)生。數(shù)據(jù)向前無進位,符號位向前有進位2)采用單符號位的判斷方法例:X=-0.100Y=-0.101,求X+Y=?例:X=100,Y=-110,求X-Y=?解:[X]補=0100[-Y]補=0110+011一個正數(shù)減去一個負數(shù),結(jié)果為正數(shù),但計算結(jié)果為負數(shù),表明有溢出發(fā)生,出錯數(shù)據(jù)向前有進位,符號位向前無進位0溢出邏輯表達式為:V=Cf⊕C0
(其中Cf為符號位產(chǎn)生的進位,C0為最高有效位產(chǎn)生的進位)例:X=100,Y=-110,求X-Y=?[X]補=4、基本的二進制加法/減法器1、一位全加器FAAiBiCiCi+1Si向高位進位本位輸出結(jié)果輸入輸出AiBiCiSiCi+10000000110010100110110010101011100111111表2.2一位全加器真值表兩個輸出端的邏輯表達式:Si=Ai⊕Bi⊕CiCi+1=AiBi+BiCi+CiAi4、基本的二進制加法/減法器1、一位全加器FAAiBiCiCSi=Ai⊕Bi⊕CiCi+1=AiBi+BiCi+CiAi按此表達式組成的一位全加器示圖:Ci+1=(Ai⊕Bi)CiAiBi1位全加器Si時間延遲為6T,Ci+1延遲為5T(書本錯誤,圖2.3(a)錯誤)Si=Ai⊕Bi⊕Cin個1位的全加器(FA)可級聯(lián)成一個n位的行波進位加減器。M為方式控制輸入線,當M=0時,作加法(A+B)運算;當M=1時,作減法(A-B)運算,在后一種情況下,A-B運算轉(zhuǎn)化成[A]補+[-B]補運算,求補過程由B+1來實現(xiàn)。時間延遲ta=n×2T+9T動畫演示n個1位的全加器(FA)可級聯(lián)成一個n位的行波進位加減器。M十進制加法器N位數(shù)字的行波進位BCD加法器一位BCD加法器單元的邏輯結(jié)構(gòu)十進制加法器N位數(shù)字的行波進位BCD加法器定點運算器——定點乘法1、原碼并行乘法設(shè)被乘數(shù)[X]原=XfXn-1Xn-2……X1X0乘數(shù)[Y]原=YfYn-1Yn-2……Y1Y0乘積[X]原=ZfZ2n-1Z2n-2……Z1Z0運算原則:同號相乘為正,異號相乘為負,符號可按:異或運算得到,數(shù)值部分的運算方法與普通的十進制乘數(shù)相類似。定點運算器——定點乘法1、原碼并行乘法定點運算器——定點乘法手工算法0.11010.1011×1101110100001101+100011110.l
兩個n位數(shù)相乘,其積為2n位,則需要2n位長的加法器,這不適用于定點機的形式。l
機器一次只能進行兩個數(shù)的相加,不能進行多個數(shù)據(jù)的加法。l
手工計算中,乘數(shù)的每一位是0還是1都可直接看見,而在計算機中,采用放乘數(shù)的寄存器的每一位直接決定本次相加數(shù)是被乘數(shù)還是0是很不方便的,若采用該寄存器的最低一位來執(zhí)行這種判斷就簡便了。定點運算器——定點乘法手工算法0.11010.1定點運算器——定點乘法運算法則:
計算機中執(zhí)行乘法時,積的符號位由被乘數(shù)和乘數(shù)的符號位通過一個半加器實現(xiàn)。數(shù)值部分的運算規(guī)則是:從最低位Y0開始,當乘數(shù)Yi為1時,將上次部分積加上被乘數(shù)的絕對值,然后右移一位,得到新的部分積;當Yi為0時,則寫下全0。然后再對乘
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 臨床心理學案例解析考核試卷
- 動物細胞培養(yǎng)技術(shù)與應(yīng)用考核試卷
- 放射性金屬礦工程監(jiān)理與實施效果評估考核試卷
- 衛(wèi)生陶瓷潔具的無障礙設(shè)計理念與應(yīng)用考核試卷
- 數(shù)字營銷策略與實施咨詢考核試卷
- 2025年01月中國煤炭地質(zhì)總局公開招聘784人筆試歷年典型考題(歷年真題考點)解題思路附帶答案詳解
- 電商平臺的多元化經(jīng)營策略分析
- 現(xiàn)代物流技術(shù)與可持續(xù)發(fā)展目標的實現(xiàn)路徑探討
- 技術(shù)服務(wù)知識產(chǎn)權(quán)戰(zhàn)略規(guī)劃考核試卷
- 文具企業(yè)市場營銷組織與控制考核試卷
- 2025年度數(shù)據(jù)備份與恢復合法委托服務(wù)合同
- 《證券法培訓》課件
- 2024年鐵嶺衛(wèi)生職業(yè)學院高職單招語文歷年參考題庫含答案解析
- 大班美術(shù)活動:傳統(tǒng)的節(jié)日
- 鞋類代理合作協(xié)議
- 防滑防摔倒安全教育
- 乳腺癌課件教學課件
- 連續(xù)性腎替代治療抗菌藥物劑量調(diào)整專家共識(2024年版)解讀
- 山西省2024年中考物理試題(含答案)
- 2024年廣西區(qū)公務(wù)員錄用考試《行測》真題及答案解析
- 健康體檢基礎(chǔ)知識培訓
評論
0/150
提交評論