三章運(yùn)算單元設(shè)計(jì)ppt課件_第1頁(yè)
三章運(yùn)算單元設(shè)計(jì)ppt課件_第2頁(yè)
三章運(yùn)算單元設(shè)計(jì)ppt課件_第3頁(yè)
三章運(yùn)算單元設(shè)計(jì)ppt課件_第4頁(yè)
三章運(yùn)算單元設(shè)計(jì)ppt課件_第5頁(yè)
已閱讀5頁(yè),還剩60頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第3章 運(yùn)算單元設(shè)計(jì)3.1 邏輯運(yùn)算邏輯運(yùn)算 3.2 定點(diǎn)數(shù)運(yùn)算定點(diǎn)數(shù)運(yùn)算 3.3 浮點(diǎn)數(shù)運(yùn)算浮點(diǎn)數(shù)運(yùn)算 3.4 算術(shù)邏輯單元算術(shù)邏輯單元3.5 小結(jié)小結(jié) 3.1 邏輯運(yùn)算 邏輯運(yùn)算是對(duì)兩個(gè)或一個(gè)邏輯數(shù)進(jìn)行的運(yùn)邏輯運(yùn)算是對(duì)兩個(gè)或一個(gè)邏輯數(shù)進(jìn)行的運(yùn)算。所謂邏輯數(shù),是指不帶符號(hào)的二進(jìn)制數(shù)。算。所謂邏輯數(shù),是指不帶符號(hào)的二進(jìn)制數(shù)。邏輯上,布爾值要么是真要么是假,不允許邏輯上,布爾值要么是真要么是假,不允許存在存在“可能的情況。在數(shù)字邏輯中,通常可能的情況。在數(shù)字邏輯中,通常用用1表示真,用表示真,用0表示假。在非數(shù)值應(yīng)用的廣表示假。在非數(shù)值應(yīng)用的廣大領(lǐng)域中,邏輯運(yùn)算是非常有用的。大領(lǐng)域中,邏輯運(yùn)算是

2、非常有用的。3.1.1 基本邏輯運(yùn)算 基本的邏輯運(yùn)算有四種:基本的邏輯運(yùn)算有四種: 1 邏輯乘邏輯乘 2 邏輯加邏輯加 3 邏輯非邏輯非 4 邏輯異或邏輯異或返回本節(jié)1 邏輯乘邏輯乘 一位二進(jìn)制數(shù)的邏輯乘運(yùn)算規(guī)則為:當(dāng)且僅當(dāng)兩數(shù)一位二進(jìn)制數(shù)的邏輯乘運(yùn)算規(guī)則為:當(dāng)且僅當(dāng)兩數(shù)均為均為“1時(shí),其邏輯乘才為時(shí),其邏輯乘才為“1”,否則為,否則為“0”。設(shè)有兩數(shù)設(shè)有兩數(shù)x=x1x2xn,y=y1y2ynxy = z =z1z2zn那么那么 zi= xiyi (i=1,2n)例如例如 x=10101100,y=01011101 則則xy=00001100。 返回本節(jié)2 邏輯或邏輯或 一位二進(jìn)制數(shù)的邏輯或運(yùn)

3、算規(guī)則為:只要兩數(shù)任一一位二進(jìn)制數(shù)的邏輯或運(yùn)算規(guī)則為:只要兩數(shù)任一(或者同時(shí)或者同時(shí))為為“1時(shí),其邏輯加即為時(shí),其邏輯加即為“l(fā)”,否則為,否則為“0”。設(shè)有兩數(shù)設(shè)有兩數(shù)x=x1x2xn,y=y1y2ynxy = z =z1z2zn那么那么 zi= xiyi (i=1,2n) 例如例如 x=10101100,y=01011101 則則xy=11111101返回本節(jié)3 邏輯非邏輯非 邏輯非也稱邏輯非也稱“求反求反”。對(duì)某數(shù)進(jìn)行邏輯非運(yùn)算,就。對(duì)某數(shù)進(jìn)行邏輯非運(yùn)算,就是按位求它的反,常用來(lái)表示。是按位求它的反,常用來(lái)表示。一位二進(jìn)制數(shù)的邏輯非運(yùn)算規(guī)則為:若一位二進(jìn)制數(shù)的邏輯非運(yùn)算規(guī)則為:若x=1

4、,那么,那么 =0;若若x=0,那么,那么 =1。設(shè)有一數(shù)設(shè)有一數(shù)x=x1x2xn = z =z1z2zn那么那么 zi = (i=1,2n)例如例如 x=10101100 那么那么 =01010011 返回本節(jié)xxxixx4 邏輯異或邏輯異或 一位二進(jìn)制數(shù)的邏輯異或運(yùn)算規(guī)則為:若兩數(shù)相同一位二進(jìn)制數(shù)的邏輯異或運(yùn)算規(guī)則為:若兩數(shù)相同時(shí)時(shí)(即同為即同為1或同為或同為0),其邏輯加即為,其邏輯加即為“0”,否則為,否則為“1”。設(shè)有兩數(shù)設(shè)有兩數(shù)x=x1x2xn,y=y1y2ynx y = z =z1z2zn那么那么 zi= xi yi (i=1,2n) 例如例如 x=10101100,y=0101

5、1101 則則x y=11110001返回本節(jié)3.1.2 移位運(yùn)算 移位運(yùn)算是算邏運(yùn)算的一種基本操作,移位運(yùn)算是算邏運(yùn)算的一種基本操作,幾乎所有的機(jī)器指令系統(tǒng)中都設(shè)置有各種幾乎所有的機(jī)器指令系統(tǒng)中都設(shè)置有各種移位操作指令。移位操作指令。移位運(yùn)算可以看作是數(shù)相對(duì)于小數(shù)點(diǎn)的移移位運(yùn)算可以看作是數(shù)相對(duì)于小數(shù)點(diǎn)的移動(dòng)。二進(jìn)制數(shù)表示的機(jī)器數(shù)左移動(dòng)。二進(jìn)制數(shù)表示的機(jī)器數(shù)左移n位即數(shù)位即數(shù)相對(duì)于小數(shù)點(diǎn)左移相對(duì)于小數(shù)點(diǎn)左移n位,移位后得到的數(shù)位,移位后得到的數(shù)就等于原來(lái)的數(shù)乘以就等于原來(lái)的數(shù)乘以2n;右移;右移n位即數(shù)相位即數(shù)相對(duì)于小數(shù)點(diǎn)右移對(duì)于小數(shù)點(diǎn)右移n位,移位后得到的數(shù)就位,移位后得到的數(shù)就等于原來(lái)的數(shù)

6、除以等于原來(lái)的數(shù)除以2n。 按照機(jī)器數(shù)采用有符號(hào)數(shù)和無(wú)符號(hào)數(shù),按照機(jī)器數(shù)采用有符號(hào)數(shù)和無(wú)符號(hào)數(shù),通常將移位分為算術(shù)移位和邏輯移位,算通常將移位分為算術(shù)移位和邏輯移位,算術(shù)移位就是對(duì)有符號(hào)數(shù)的移位,而邏輯移術(shù)移位就是對(duì)有符號(hào)數(shù)的移位,而邏輯移位就是對(duì)無(wú)符號(hào)數(shù)的移位。位就是對(duì)無(wú)符號(hào)數(shù)的移位。返回本節(jié)1 算術(shù)移位算術(shù)移位 算術(shù)移位是對(duì)有符號(hào)數(shù)的移位。算術(shù)移位首先要保證算術(shù)移位是對(duì)有符號(hào)數(shù)的移位。算術(shù)移位首先要保證符號(hào)位不變,即正數(shù)移位后仍為正數(shù),負(fù)數(shù)移位后仍為符號(hào)位不變,即正數(shù)移位后仍為正數(shù),負(fù)數(shù)移位后仍為負(fù)數(shù),也就是說(shuō),符號(hào)位不參與移位。機(jī)器數(shù)的表示方負(fù)數(shù),也就是說(shuō),符號(hào)位不參與移位。機(jī)器數(shù)的表示

7、方法有原碼、補(bǔ)碼和反碼,表示方法不同,移位的規(guī)則也法有原碼、補(bǔ)碼和反碼,表示方法不同,移位的規(guī)則也不同。移位規(guī)則如表不同。移位規(guī)則如表3-1所示:所示: 返回本節(jié)碼制添補(bǔ)代碼正數(shù)原碼、反碼、補(bǔ)碼0負(fù)數(shù)原碼0補(bǔ)碼左移添0右移添1反碼1表表3-1 3-1 算術(shù)移位規(guī)則算術(shù)移位規(guī)則【例【例3-1】設(shè)機(jī)器數(shù)字長(zhǎng)為】設(shè)機(jī)器數(shù)字長(zhǎng)為8位位(含一位符號(hào)位含一位符號(hào)位),若,若X=26,試用三種碼制表示試用三種碼制表示,并求對(duì)并求對(duì)X左、右移一位和兩位左、右移一位和兩位后其機(jī)器數(shù)和真值,并分析其結(jié)果的正確性。后其機(jī)器數(shù)和真值,并分析其結(jié)果的正確性。解解 :(1) X=(+26)十十=(11010)二二X原原X

8、反反=X補(bǔ)補(bǔ)=0,0011010 移位后結(jié)果見(jiàn)表移位后結(jié)果見(jiàn)表3-2。 (2)X=(26)十十=(11010)二二X原原=1,0011010,X反反=1,1100101,X補(bǔ)補(bǔ)=1,1100110 移位后結(jié)果見(jiàn)表移位后結(jié)果見(jiàn)表3-3。 返回本節(jié)返回本節(jié)移位操作機(jī)器數(shù)對(duì)應(yīng)的真值移位前0,0011010+26左移一位0,0110100+52左移兩位0,1101000+104右移一位0,0001101+13右移兩位0,0000110+6表表3-2 3-2 對(duì)對(duì)X=+26X=+26移位后的結(jié)果移位后的結(jié)果 移位操作機(jī)器數(shù)對(duì)應(yīng)的真值移位前原碼1,0011010-26左移一位1,0110100-52左移兩

9、位1,1101000-104右移一位1,0001101-13右移兩位1,0000110-6移位前反碼1,1100101-26左移一位1,1001011-52左移兩位1,0010111-104右移一位1,1110010-13右移兩位1,1111001-6移位前補(bǔ)碼1,1100110-26左移一位1,1001100-52左移兩位1,0011000-104右移一位1,1110011-13右移兩位1,1111001-7表表3-2 3-2 對(duì)對(duì)X=+26X=+26移位后的結(jié)果移位后的結(jié)果 2邏輯移位邏輯移位 邏輯移位是對(duì)無(wú)符號(hào)數(shù)的移位。在邏輯移位中,將數(shù)邏輯移位是對(duì)無(wú)符號(hào)數(shù)的移位。在邏輯移位中,將數(shù)字代

10、碼當(dāng)成純邏輯代碼,沒(méi)有數(shù)值含義,因此沒(méi)有符號(hào)字代碼當(dāng)成純邏輯代碼,沒(méi)有數(shù)值含義,因此沒(méi)有符號(hào)位與數(shù)值位的區(qū)別。邏輯移位的規(guī)則是:邏輯左移時(shí),位與數(shù)值位的區(qū)別。邏輯移位的規(guī)則是:邏輯左移時(shí),高位移出,低位添高位移出,低位添0;邏輯右移時(shí),低位移出,高位添;邏輯右移時(shí),低位移出,高位添0。例如,對(duì)于例如,對(duì)于10010110,邏輯左移一位結(jié)果是,邏輯左移一位結(jié)果是00101100,邏輯左移兩位結(jié)果是邏輯左移兩位結(jié)果是01011000,邏輯右移一位結(jié)果為,邏輯右移一位結(jié)果為01001011,邏輯右移兩位結(jié)果是,邏輯右移兩位結(jié)果是00100101。返回本節(jié)3.2 定點(diǎn)數(shù)運(yùn)算3.2.1 加減法運(yùn)算加減法

11、運(yùn)算3.2.2 乘法運(yùn)算乘法運(yùn)算3.2.3 除法運(yùn)算除法運(yùn)算3.2.1 加減法運(yùn)算1補(bǔ)碼加法補(bǔ)碼加法補(bǔ)碼加法的公式是補(bǔ)碼加法的公式是X補(bǔ)補(bǔ)+ Y補(bǔ)補(bǔ) X+Y補(bǔ)補(bǔ) (mod 2) (3-1)2補(bǔ)碼減法補(bǔ)碼減法負(fù)數(shù)用補(bǔ)碼表示時(shí),減法運(yùn)算的公式為負(fù)數(shù)用補(bǔ)碼表示時(shí),減法運(yùn)算的公式為 XY補(bǔ)補(bǔ)X補(bǔ)補(bǔ)+ Y補(bǔ)補(bǔ)=X補(bǔ)補(bǔ)Y補(bǔ)補(bǔ) (mod 2) (3-2)返回本節(jié)返回本節(jié)【例【例3-2】 X0.1001,Y0.010l,求,求X+Y。解:解:X補(bǔ)補(bǔ)=0.1001 Y補(bǔ)補(bǔ)=0.0101 X+Y補(bǔ)補(bǔ) =X補(bǔ)補(bǔ)+ Y補(bǔ)補(bǔ) =0.1001 +0.0101 0.1110 所以所以X+Y=0.1110【例【例3-3】 X

12、0.1011,Y0.010l,求,求X+Y。解:解:X補(bǔ)補(bǔ)=0.1011 Y補(bǔ)補(bǔ)=1.1011 X+Y補(bǔ)補(bǔ) =X補(bǔ)補(bǔ)+Y補(bǔ)補(bǔ) =0.1011 +1.1011 10.0110所以所以XY=0.0110,按模,按模2意義,最左邊的意義,最左邊的1丟掉。丟掉?!纠纠?-4】知,】知,X=+0.1101,Y+0.0110 求求XY。解解: X補(bǔ)補(bǔ)0.110l,Y補(bǔ)補(bǔ)0.0110,Y補(bǔ)補(bǔ)=1.1010 XY補(bǔ)補(bǔ)=X補(bǔ)補(bǔ) Y補(bǔ)補(bǔ) =X補(bǔ)補(bǔ)+ Y補(bǔ)補(bǔ) =0.1101 +1.1010 10.0111 所以所以XY補(bǔ)補(bǔ)=0.0111,按模按模2意義意義,最左邊的最左邊的1丟掉。丟掉。 即即XY =0.0111

13、返回本節(jié)3溢出概念與檢測(cè)方法溢出概念與檢測(cè)方法 為了判斷為了判斷“溢出是否發(fā)生,可采用兩種檢測(cè)方法。溢出是否發(fā)生,可采用兩種檢測(cè)方法。第一種方法是采用雙符號(hào)位法,這稱為第一種方法是采用雙符號(hào)位法,這稱為“變形補(bǔ)碼或變形補(bǔ)碼或“模模4補(bǔ)碼補(bǔ)碼”,從而可使模,從而可使模2補(bǔ)碼所能表示的數(shù)的范圍擴(kuò)大補(bǔ)碼所能表示的數(shù)的范圍擴(kuò)大一倍。一倍。數(shù)的變形補(bǔ)碼定義為數(shù)的變形補(bǔ)碼定義為 X補(bǔ)補(bǔ) X (2Y0) (式式3-6) 4+X (0Y2) 采用變形補(bǔ)碼后,公式采用變形補(bǔ)碼后,公式X+Y補(bǔ)補(bǔ)X補(bǔ)補(bǔ)+Y補(bǔ)補(bǔ) (mod 4) 同樣成立。采用變形補(bǔ)碼后,任何小于同樣成立。采用變形補(bǔ)碼后,任何小于1的正數(shù),兩個(gè)的正數(shù)

14、,兩個(gè)符號(hào)位都是符號(hào)位都是“0”,即,即00.x1x2xn。任何大于。任何大于-1的負(fù)數(shù),的負(fù)數(shù),兩個(gè)符號(hào)位都是兩個(gè)符號(hào)位都是“1”,即,即11.x1x2xn。如果兩個(gè)數(shù)相加。如果兩個(gè)數(shù)相加后,其結(jié)果的符號(hào)位出現(xiàn)后,其結(jié)果的符號(hào)位出現(xiàn)“01或或“10兩種組合時(shí),表兩種組合時(shí),表示發(fā)生溢出。示發(fā)生溢出。返回本節(jié)【例【例3-7】已知】已知X+0.1100,Y=+0.1000,求,求X+Y。解:解:X補(bǔ)補(bǔ)00.1100,Y補(bǔ)補(bǔ)00.1000 X+Y補(bǔ)補(bǔ)=X補(bǔ)補(bǔ)+ Y補(bǔ)補(bǔ) =00.1100 +00.1000 01.0100 所以所以X+Y補(bǔ)補(bǔ)=01.0100。 表示已溢出,即結(jié)果大于表示已溢出,即結(jié)果

15、大于+1返回本節(jié)【例【例3-9】已知】已知X0.1001,Y0.1101,求,求X+Y。解:解:X補(bǔ)補(bǔ)=0.1001 Y補(bǔ)補(bǔ)=0.1101 X+Y補(bǔ)補(bǔ)=X補(bǔ)補(bǔ)+ Y補(bǔ)補(bǔ) =0.1001 +0.1101 1.0110 所以所以X+Y=1.0110 本例中,本例中,X、Y均為正數(shù),符號(hào)位都為均為正數(shù),符號(hào)位都為0,但結(jié)果符號(hào)位為,但結(jié)果符號(hào)位為1,故為溢出。故為溢出。第二種溢出檢測(cè)方法是采用單符號(hào)位法。第二種溢出檢測(cè)方法是采用單符號(hào)位法。 當(dāng)符號(hào)相同的兩數(shù)相加時(shí),如果結(jié)果的符號(hào)與加數(shù)當(dāng)符號(hào)相同的兩數(shù)相加時(shí),如果結(jié)果的符號(hào)與加數(shù)(或被加數(shù)或被加數(shù))符號(hào)不相同,則為溢出。符號(hào)不相同,則為溢出。返回本節(jié)

16、4加減法硬件配置加減法硬件配置 圖圖3-1給出了實(shí)現(xiàn)加法和減法運(yùn)算所需的數(shù)據(jù)路徑和硬件配置。給出了實(shí)現(xiàn)加法和減法運(yùn)算所需的數(shù)據(jù)路徑和硬件配置。 返回本節(jié)B寄存器A寄存器求補(bǔ)SWOF加法器圖3-1加減法運(yùn)算硬件配制1原碼一位乘原碼一位乘原碼一位乘運(yùn)算過(guò)程可歸納如下:原碼一位乘運(yùn)算過(guò)程可歸納如下:(1) 符號(hào)位單獨(dú)運(yùn)算,由兩數(shù)的符號(hào)邏輯異或得到。符號(hào)位單獨(dú)運(yùn)算,由兩數(shù)的符號(hào)邏輯異或得到。(2) 數(shù)值部分就是兩個(gè)數(shù)絕對(duì)值的乘積。數(shù)值部分就是兩個(gè)數(shù)絕對(duì)值的乘積。(3) 由乘數(shù)的末位值確定被乘數(shù)是否與原部分積相加,由乘數(shù)的末位值確定被乘數(shù)是否與原部分積相加,然后右移一位,形成新的部分積;同時(shí)乘數(shù)也右移一

17、然后右移一位,形成新的部分積;同時(shí)乘數(shù)也右移一位,由次低位作為新的末位,空出最高位放部分積的位,由次低位作為新的末位,空出最高位放部分積的最低位。最低位。(4) 每次做加法時(shí),被乘數(shù)僅僅與原部分積的高位相加,每次做加法時(shí),被乘數(shù)僅僅與原部分積的高位相加,其低位被移至乘數(shù)所空出的高位位置。其低位被移至乘數(shù)所空出的高位位置。返回本節(jié)【例【例3-103-10】已知】已知x=-0.1110 x=-0.1110,y=0.1101y=0.1101,求,求x.yx.y。解:解:xx原原=1.1110=1.1110,yy原原=0.1101=0.1101,|x|=0.1110|x|=0.1110,|y|=0.1

18、101|y|=0.1101按原碼一位乘規(guī)則,結(jié)果符號(hào)為按原碼一位乘規(guī)則,結(jié)果符號(hào)為10=110=1其數(shù)值部分運(yùn)算如下表所示。其數(shù)值部分運(yùn)算如下表所示。返回本節(jié)故故x.y=0.10110110實(shí)現(xiàn)原碼一位乘法運(yùn)算的硬件邏輯框圖如圖3-2所示。 返回本節(jié)MnM1Mn位加法器QA移位和相加控制邏輯nA1A1qnq圖圖3-2 3-2 原碼一位乘硬件框圖原碼一位乘硬件框圖 實(shí)現(xiàn)原碼一位乘法運(yùn)算的流程圖如圖示3-3所示。 返回本節(jié)圖圖3-3 3-3 原碼一位乘流程圖原碼一位乘流程圖 開(kāi)始C、A=0M被乘數(shù)Q乘數(shù)Countn移位、A、計(jì)數(shù)計(jì)數(shù)計(jì)數(shù)?結(jié)束AAM1qyesyesnono2原碼兩位乘原碼兩位乘返回

19、本節(jié)yn-1 yn0 0不加被乘數(shù),部分積右移兩位不加被乘數(shù),部分積右移兩位0 1部分積部分積+|x|,部分積右移兩位,部分積右移兩位1 0部分積部分積+2|x|,部分積右移兩位,部分積右移兩位1 1部分積部分積+3|x|,部分積右移兩位,部分積右移兩位返回本節(jié)yn-1ynCEK操作內(nèi)容000不加|x|,CEK清0,部分積、乘數(shù)右移兩位010加|x|,CEK清0,部分積、乘數(shù)右移兩位100加2|x|,CEK清0,部分積、乘數(shù)右移兩位110-|x|,CEK置1,部分積、乘數(shù)右移兩位001加|x|,CEK清0,部分積、乘數(shù)右移兩位011加2|x|,CEK清0,部分積、乘數(shù)右移兩位101-|x|,C

20、EK置1,部分積、乘數(shù)右移兩位111不加|x|,CEK置1,部分積、乘數(shù)右移兩位【例【例3-11】已知】已知x=0.111111,y=-0.111001,用原碼兩位乘求,用原碼兩位乘求x.y。解:解:x原原=0.111111,y原原=1.111001,|x|=0.111111,|y|=0.111001 -x補(bǔ)補(bǔ)=1.000001,2|x|=1.111110按原碼兩位乘規(guī)則,結(jié)果符號(hào)為按原碼兩位乘規(guī)則,結(jié)果符號(hào)為1 0=1其數(shù)值部分運(yùn)算如下表。其數(shù)值部分運(yùn)算如下表。返回本節(jié)部分積乘數(shù)說(shuō)明000.000000+000.11111100111001部分積為,CEK=0CEK為00,加上|x|,CEK

21、=0000.111111000.001111+001.11111011001110右移2位得新的部分積乘數(shù)右移2位根據(jù)100,加上2|x|,CEK=0010.001101000.100011+111.0000011101110011右移2位得新的部分積乘數(shù)右移2位根據(jù)10,-|x|,CEK=1111.100100111.111001+000.111111011100011100右移2位得新的部分積乘數(shù)右移2位根據(jù)001,加上|x|,CEK=0000.111000000111形成最終結(jié)果CEK00011nyny故故x.y原原=1.111000000111x.y=-0.1110000001113補(bǔ)

22、碼一位乘1校正法校正法 校正法是先按原碼乘法那樣直接乘,再根據(jù)乘數(shù)符校正法是先按原碼乘法那樣直接乘,再根據(jù)乘數(shù)符號(hào)進(jìn)行校正。號(hào)進(jìn)行校正。設(shè)被乘數(shù)設(shè)被乘數(shù)x補(bǔ)補(bǔ)=x0. x1x2xn,乘數(shù),乘數(shù)y補(bǔ)補(bǔ)=y0.y1y2yn則有:則有: xy補(bǔ)補(bǔ)=x補(bǔ)補(bǔ)0.y1y2yn- x補(bǔ)補(bǔ)y0 (式式3-10)返回本節(jié)【例【例3-12】已知】已知x=-0.1010,y=0.1101,用校正法求,用校正法求xy補(bǔ)。補(bǔ)。解:解:x補(bǔ)補(bǔ)=11.0110 y補(bǔ)補(bǔ)=00.1101 其數(shù)值部分運(yùn)算如下表。其數(shù)值部分運(yùn)算如下表。返回本節(jié)部分積乘數(shù)說(shuō)明00.0000+11.01101101部分積為乘數(shù)為,加上x(chóng)11.0110

23、11.1011+00.00000110右移一位得新的部分積乘數(shù)右移一位乘數(shù)為,加上11.101111.1101+11.01101011右移一位得新的部分積乘數(shù)右移一位乘數(shù)為,加上x(chóng)11.001111.1001+11.0110101101右移一位得新的部分積乘數(shù)右移一位乘數(shù)為1,加上x(chóng)10.111111.01111101110右移一位得新的部分積乘數(shù)已全部移出補(bǔ)補(bǔ)補(bǔ)故故xy補(bǔ)補(bǔ)=11.011111104 補(bǔ)碼兩位乘 補(bǔ)碼兩位乘運(yùn)算就是將補(bǔ)碼一位乘與兩位乘的思想補(bǔ)碼兩位乘運(yùn)算就是將補(bǔ)碼一位乘與兩位乘的思想結(jié)合起來(lái),將補(bǔ)碼一位乘的兩步操作綜合為一步兩位結(jié)合起來(lái),將補(bǔ)碼一位乘的兩步操作綜合為一步兩位乘

24、操作。即將判斷乘操作。即將判斷ynyn+1的狀態(tài)應(yīng)執(zhí)行的操作與判的狀態(tài)應(yīng)執(zhí)行的操作與判斷斷yn-1yn的狀態(tài)應(yīng)執(zhí)行的操作合成一步來(lái)完成。規(guī)的狀態(tài)應(yīng)執(zhí)行的操作合成一步來(lái)完成。規(guī)則如下表所示。則如下表所示。返回本節(jié)1nyny1ny操 作 內(nèi) 容000部分積右移2位010部分積加x補(bǔ),再右移2位100 部分積加2-x補(bǔ),再右移2位110部分積加-x補(bǔ),再右移2位001部分積加x補(bǔ),再右移2位011部分積加2x補(bǔ),再右移2位101部分積加-x補(bǔ),再右移2位111部分積右移2位【例【例3-16】已知】已知x=0.010111,y=-0.101010,用補(bǔ)碼兩位乘求,用補(bǔ)碼兩位乘求xy補(bǔ)。補(bǔ)。解:解:x補(bǔ)

25、補(bǔ)=000.010111 y補(bǔ)補(bǔ)=11.010110 -x補(bǔ)補(bǔ)=111.101001 2-x補(bǔ)補(bǔ)=111.010010 2 x補(bǔ)補(bǔ)=000.101110其數(shù)值部分運(yùn)算如下表。其數(shù)值部分運(yùn)算如下表。返回本節(jié)故xy補(bǔ)=111.1100001110101原碼除法原碼除法 原碼除法與原碼乘法一樣,數(shù)值部分采用兩數(shù)的絕原碼除法與原碼乘法一樣,數(shù)值部分采用兩數(shù)的絕對(duì)值相除,符號(hào)由兩數(shù)的符號(hào)異或得到。對(duì)值相除,符號(hào)由兩數(shù)的符號(hào)異或得到。 二進(jìn)制數(shù)的筆算除法是通過(guò)作差余數(shù)減去除數(shù)二進(jìn)制數(shù)的筆算除法是通過(guò)作差余數(shù)減去除數(shù)和除數(shù)右移得到商和最終余數(shù)的。在計(jì)算機(jī)中,小數(shù)和除數(shù)右移得到商和最終余數(shù)的。在計(jì)算機(jī)中,小數(shù)

26、點(diǎn)的位置是固定不變的,為便于計(jì)算機(jī)的實(shí)現(xiàn),可將點(diǎn)的位置是固定不變的,為便于計(jì)算機(jī)的實(shí)現(xiàn),可將除數(shù)的小數(shù)點(diǎn)位置固定不變,而將筆算除法過(guò)程的除除數(shù)的小數(shù)點(diǎn)位置固定不變,而將筆算除法過(guò)程的除數(shù)右移改為余數(shù)或被除數(shù)的左移來(lái)實(shí)現(xiàn),其結(jié)果數(shù)右移改為余數(shù)或被除數(shù)的左移來(lái)實(shí)現(xiàn),其結(jié)果是一樣的。是通過(guò)比較余數(shù)或被除數(shù)與除數(shù)的大是一樣的。是通過(guò)比較余數(shù)或被除數(shù)與除數(shù)的大小來(lái)決定上商的,若余數(shù)或被除數(shù)大于除數(shù),則小來(lái)決定上商的,若余數(shù)或被除數(shù)大于除數(shù),則表示夠減,上商表示夠減,上商1;若余數(shù)或被除數(shù)小于除數(shù),;若余數(shù)或被除數(shù)小于除數(shù),則表示不夠減,上商則表示不夠減,上商0。 返回本節(jié)3.2.3 除法運(yùn)算除法運(yùn)算(1

27、) 恢復(fù)余數(shù)法恢復(fù)余數(shù)法 在筆算過(guò)程中,是通過(guò)心算來(lái)確定夠減與不夠減,但在筆算過(guò)程中,是通過(guò)心算來(lái)確定夠減與不夠減,但在計(jì)算機(jī)中卻不適用。在計(jì)算機(jī)中,先做余數(shù)或被除在計(jì)算機(jī)中卻不適用。在計(jì)算機(jī)中,先做余數(shù)或被除數(shù)與除數(shù)的減法,若余數(shù)為正,說(shuō)明夠減,上商為數(shù)與除數(shù)的減法,若余數(shù)為正,說(shuō)明夠減,上商為1;若余數(shù)為負(fù),說(shuō)明不夠減,上商為若余數(shù)為負(fù),說(shuō)明不夠減,上商為0,而這時(shí)本不該減,而這時(shí)本不該減卻減了,所以要把余數(shù)再加上去,恢復(fù)成原來(lái)的余數(shù)。卻減了,所以要把余數(shù)再加上去,恢復(fù)成原來(lái)的余數(shù)。這就是所謂的恢復(fù)余數(shù)法這個(gè)名字的得來(lái)。這就是所謂的恢復(fù)余數(shù)法這個(gè)名字的得來(lái)?!纠纠?-17】已知】已知x=

28、0.1001,y=0.1101,用恢復(fù)余數(shù)法求,用恢復(fù)余數(shù)法求x/y。解:解:x原原= 0.1001 y原原= 0.1101 y補(bǔ)補(bǔ)= 0.1101 y補(bǔ)補(bǔ)= 1.0011 結(jié)果符號(hào)為結(jié)果符號(hào)為0 0=0,其數(shù)值部分運(yùn)算如下表。,其數(shù)值部分運(yùn)算如下表。故故x/y原原=0.1011所以所以x/y=0.1011 返回本節(jié)表3-14用恢復(fù)余數(shù)法求x/y(2) 加減交替法加減交替法 在恢復(fù)余數(shù)法中,商在恢復(fù)余數(shù)法中,商0還是商還是商1不能與預(yù)先確定,不能與預(yù)先確定,故所需運(yùn)算步驟也不能預(yù)先確定,這樣就會(huì)使硬件線故所需運(yùn)算步驟也不能預(yù)先確定,這樣就會(huì)使硬件線路復(fù)雜化,加減交替法可克服這些缺點(diǎn)。路復(fù)雜化,

29、加減交替法可克服這些缺點(diǎn)。加減交替法的運(yùn)算規(guī)則可由恢復(fù)余數(shù)法得出。加減交替法的運(yùn)算規(guī)則可由恢復(fù)余數(shù)法得出。 在恢復(fù)余數(shù)法中,在恢復(fù)余數(shù)法中,當(dāng)余數(shù)當(dāng)余數(shù)ri0時(shí),上商時(shí),上商“1”,再對(duì),再對(duì)ri左移一位后減去除數(shù),左移一位后減去除數(shù),即即2ri|y|;當(dāng)余數(shù)當(dāng)余數(shù)ri0時(shí),上商時(shí),上商1,再做,再做2ri|y|的運(yùn)算;的運(yùn)算;當(dāng)余數(shù)當(dāng)余數(shù)ri0時(shí),上商時(shí),上商0,再做,再做2ri+|y|的運(yùn)算。的運(yùn)算。返回本節(jié)【例【例3-18】已知】已知x=0.1001,y=0.1101,用加減交替法求,用加減交替法求x/y。解:解:x原原= 0.1001 y原原= 0.1101 y補(bǔ)補(bǔ)= 0.1101 y

30、補(bǔ)補(bǔ)= 1.0011 結(jié)果符號(hào)為結(jié)果符號(hào)為0 0=0,其數(shù)值部分運(yùn)算如下表,其數(shù)值部分運(yùn)算如下表返回本節(jié)故故x/yx/y原原=0.1011=0.1011所以所以x/y=0.1011x/y=0.1011(3)原碼加減交替法的控制流程原碼加減交替法的控制流程圖圖3-6為原碼加減交替法的控制流程。為原碼加減交替法的控制流程。 圖中,圖中,A、X、Q均為均為n+1位的寄存器,其中位的寄存器,其中A存放被存放被除數(shù)的原碼,除數(shù)的原碼,X存放除數(shù)的原碼,存放除數(shù)的原碼,S為商符。除法開(kāi)始為商符。除法開(kāi)始前,前,Q寄存器被清寄存器被清0,準(zhǔn)備存放商,計(jì)數(shù)器,準(zhǔn)備存放商,計(jì)數(shù)器C中存放除中存放除數(shù)的位數(shù)數(shù)的位

31、數(shù)n。除法開(kāi)始后,首先通過(guò)異或運(yùn)算求出商。除法開(kāi)始后,首先通過(guò)異或運(yùn)算求出商符,并存于符,并存于S中。接著將被除數(shù)和除數(shù)變?yōu)榻^對(duì)值,中。接著將被除數(shù)和除數(shù)變?yōu)榻^對(duì)值,開(kāi)始上商,然后開(kāi)始上商,然后A、Q同時(shí)左移一位,在根據(jù)商值的狀同時(shí)左移一位,在根據(jù)商值的狀態(tài)決定加或減除數(shù),這樣重復(fù)態(tài)決定加或減除數(shù),這樣重復(fù)n次后,再上最后一次次后,再上最后一次商,即得最后結(jié)果。商,即得最后結(jié)果。返回本節(jié)2補(bǔ)碼除法補(bǔ)碼除法 補(bǔ)碼除法是指被除數(shù)、除數(shù)所得的商、余數(shù)都用補(bǔ)碼除法是指被除數(shù)、除數(shù)所得的商、余數(shù)都用補(bǔ)碼表示,連同符號(hào)一起運(yùn)算。與原碼除法相比,補(bǔ)補(bǔ)碼表示,連同符號(hào)一起運(yùn)算。與原碼除法相比,補(bǔ)碼除法需要解決

32、一些新的問(wèn)題,即如何根據(jù)操作數(shù)的碼除法需要解決一些新的問(wèn)題,即如何根據(jù)操作數(shù)的符號(hào)決定實(shí)際操作?如何判斷夠減與不夠減?如何確符號(hào)決定實(shí)際操作?如何判斷夠減與不夠減?如何確定商值?由于數(shù)符可正可負(fù),這些問(wèn)題的解決要比原定商值?由于數(shù)符可正可負(fù),這些問(wèn)題的解決要比原碼除法相對(duì)復(fù)雜一些。補(bǔ)碼除法也包括恢復(fù)余數(shù)法和碼除法相對(duì)復(fù)雜一些。補(bǔ)碼除法也包括恢復(fù)余數(shù)法和加減交替法,由于加減交替法用得較多,這里只介紹加減交替法,由于加減交替法用得較多,這里只介紹加減交替法。加減交替法。返回本節(jié)1 . 確定商值確定商值若被除數(shù)與除數(shù)同號(hào),商為正,夠減商若被除數(shù)與除數(shù)同號(hào),商為正,夠減商1,不夠減商,不夠減商0。若被

33、除數(shù)與除數(shù)異號(hào),若對(duì)商采用若被除數(shù)與除數(shù)異號(hào),若對(duì)商采用“末位恒置末位恒置1的舍的舍入方法,則負(fù)數(shù)補(bǔ)碼與正數(shù)之間將變?yōu)橐环N簡(jiǎn)單的對(duì)入方法,則負(fù)數(shù)補(bǔ)碼與正數(shù)之間將變?yōu)橐环N簡(jiǎn)單的對(duì)應(yīng)關(guān)系:即除去恒為應(yīng)關(guān)系:即除去恒為1的末位外,尾數(shù)的其他各位相反。的末位外,尾數(shù)的其他各位相反。因此當(dāng)商為負(fù)數(shù)補(bǔ)碼時(shí),夠減商因此當(dāng)商為負(fù)數(shù)補(bǔ)碼時(shí),夠減商0,不夠減商,不夠減商1。與判。與判斷夠減的方法相結(jié)合,得到:若余數(shù)與除數(shù)同號(hào)時(shí)商斷夠減的方法相結(jié)合,得到:若余數(shù)與除數(shù)同號(hào)時(shí)商1,余數(shù)與除數(shù)異號(hào)時(shí)商余數(shù)與除數(shù)異號(hào)時(shí)商0。返回本節(jié)(1) 商符的形成商符的形成在補(bǔ)碼除法中,商符是在求商的過(guò)程中自動(dòng)形成的。在補(bǔ)碼除法中,商

34、符是在求商的過(guò)程中自動(dòng)形成的。在小數(shù)定點(diǎn)除法中,被除數(shù)的絕對(duì)值必須小于除數(shù)的在小數(shù)定點(diǎn)除法中,被除數(shù)的絕對(duì)值必須小于除數(shù)的絕對(duì)值,否則商大于絕對(duì)值,否則商大于1而溢出。因而,同號(hào)相除時(shí),余而溢出。因而,同號(hào)相除時(shí),余數(shù)必與除數(shù)異號(hào),商上數(shù)必與除數(shù)異號(hào),商上0,恰好與商的符號(hào)一致同號(hào),恰好與商的符號(hào)一致同號(hào)相除商為正);異號(hào)相除時(shí),余數(shù)必與除數(shù)同號(hào),商相除商為正);異號(hào)相除時(shí),余數(shù)必與除數(shù)同號(hào),商上上1,恰好與商的符號(hào)一致異號(hào)相除商為負(fù))。由此,恰好與商的符號(hào)一致異號(hào)相除商為負(fù))。由此可見(jiàn),商符是在求商的過(guò)程中自動(dòng)形成的。可見(jiàn),商符是在求商的過(guò)程中自動(dòng)形成的。此外,還可以用商的符號(hào)來(lái)判斷是否溢出

35、。比如,同此外,還可以用商的符號(hào)來(lái)判斷是否溢出。比如,同號(hào)相除時(shí),若余數(shù)與除數(shù)同號(hào),商上號(hào)相除時(shí),若余數(shù)與除數(shù)同號(hào),商上1,即溢出;異號(hào),即溢出;異號(hào)相除時(shí),余數(shù)與除數(shù)異號(hào),商上相除時(shí),余數(shù)與除數(shù)異號(hào),商上0,即溢出。,即溢出。返回本節(jié)(2) 新余數(shù)的獲得新余數(shù)的獲得當(dāng)余數(shù)與除數(shù)同號(hào)時(shí),商為當(dāng)余數(shù)與除數(shù)同號(hào)時(shí),商為1,新余數(shù),新余數(shù)=2ri補(bǔ)補(bǔ)y補(bǔ)補(bǔ)=2ri補(bǔ)補(bǔ)+y補(bǔ)補(bǔ)當(dāng)余數(shù)與除數(shù)異號(hào)時(shí),商為當(dāng)余數(shù)與除數(shù)異號(hào)時(shí),商為0,新余數(shù),新余數(shù)=2ri補(bǔ)補(bǔ)+y補(bǔ)補(bǔ)綜合以上,得到補(bǔ)碼加減交替除的規(guī)則如下表。綜合以上,得到補(bǔ)碼加減交替除的規(guī)則如下表。返回本節(jié)x補(bǔ)y補(bǔ)商符第一步操作余數(shù)ri補(bǔ)除數(shù)y補(bǔ)商下一步操

36、作同號(hào)0減法同號(hào)夠減12ri補(bǔ)+-y補(bǔ)異號(hào)不夠減02ri補(bǔ)+y補(bǔ)異號(hào)1加法同號(hào)不夠減12ri補(bǔ)+-y補(bǔ)異號(hào)夠減02ri補(bǔ)+y補(bǔ)【例【例3-193-19】已知】已知x=0.1001x=0.1001,y=0.1101y=0.1101,用補(bǔ)碼加減交替法求,用補(bǔ)碼加減交替法求x/yx/y補(bǔ)補(bǔ)解:解:xx補(bǔ)補(bǔ)= 0.1001 y= 0.1001 y補(bǔ)補(bǔ)= 0.1101 -y= 0.1101 -y補(bǔ)補(bǔ)= = 1.0011 1.0011 其運(yùn)算如下表。其運(yùn)算如下表。返回本節(jié)故故x/yx/y補(bǔ)補(bǔ)=0.1011=0.10112補(bǔ)碼加減交替法的控制流程補(bǔ)碼加減交替法的控制流程圖圖3-7給除了補(bǔ)碼加減交替法的控制流

37、程。給除了補(bǔ)碼加減交替法的控制流程。圖中,圖中,A、X、Q均為均為n+1位的寄存器,其中位的寄存器,其中A存放被存放被除數(shù)的補(bǔ)碼,除數(shù)的補(bǔ)碼,X存放除數(shù)的補(bǔ)碼。除法開(kāi)始前,存放除數(shù)的補(bǔ)碼。除法開(kāi)始前,Q寄存寄存器被清器被清0,準(zhǔn)備存放商,計(jì)數(shù)器,準(zhǔn)備存放商,計(jì)數(shù)器C中存放除數(shù)的位數(shù)中存放除數(shù)的位數(shù)n。除法開(kāi)始后,首先根據(jù)兩操作數(shù)的符號(hào)確定是作加法除法開(kāi)始后,首先根據(jù)兩操作數(shù)的符號(hào)確定是作加法還是減法,加減操作后,上第一次商,得到商符,然還是減法,加減操作后,上第一次商,得到商符,然后后A、Q同時(shí)左移一位,再根據(jù)商值的狀態(tài)決定加或減同時(shí)左移一位,再根據(jù)商值的狀態(tài)決定加或減除數(shù),這樣重復(fù)除數(shù),這樣

38、重復(fù)n次后,最后采取恒置次后,最后采取恒置1法上末位商,法上末位商,即得最后結(jié)果。即得最后結(jié)果。返回本節(jié)3.3 浮點(diǎn)數(shù)運(yùn)算3.3.1 加減法運(yùn)算加減法運(yùn)算 3.3.2 乘除法運(yùn)算乘除法運(yùn)算 3.3.1 加減法運(yùn)算 1 1 對(duì)階對(duì)階2 2 尾數(shù)求和尾數(shù)求和3 3 規(guī)格化規(guī)格化4 4 舍入舍入5 5 判斷溢出判斷溢出返回本節(jié)【例【例3-223-22】設(shè)兩浮點(diǎn)數(shù)】設(shè)兩浮點(diǎn)數(shù)x x0.1001100.1001102323,y y-0.100111-0.1001112525,求,求x+yx+y。解:假設(shè)兩數(shù)在計(jì)算機(jī)中以補(bǔ)碼表示,并采用雙符號(hào)位,即解:假設(shè)兩數(shù)在計(jì)算機(jī)中以補(bǔ)碼表示,并采用雙符號(hào)位,即 xx

39、補(bǔ)補(bǔ)00,01l;00.10011000,01l;00.100110 y y補(bǔ)補(bǔ)00,101;11.01100100,101;11.0110011)1)對(duì)階對(duì)階先求階差:先求階差: j j 補(bǔ)補(bǔ)= jx= jx補(bǔ)補(bǔ) jyjy補(bǔ)補(bǔ)= jx= jx補(bǔ)補(bǔ)+jyjy補(bǔ)補(bǔ)=00,01l+11,011=11,110=00,01l+11,011=11,110所以所以 j =-2j =-2表示表示x x的階碼比的階碼比y y的階碼小的階碼小2 2,因此將,因此將x x的尾數(shù)右移兩位。的尾數(shù)右移兩位。右移一位,得右移一位,得xx補(bǔ)補(bǔ)00,100;00.01001100,100;00.0100110 0)再右移一

40、位,得再右移一位,得xx補(bǔ)補(bǔ)00,101;00.00100100,101;00.0010011010)至此,兩數(shù)的階碼相等,表示對(duì)階完畢。至此,兩數(shù)的階碼相等,表示對(duì)階完畢。返回本節(jié)2)尾數(shù)求和尾數(shù)求和對(duì)階后,可進(jìn)行尾數(shù)求和,即將兩數(shù)尾數(shù)相加。對(duì)階后,可進(jìn)行尾數(shù)求和,即將兩數(shù)尾數(shù)相加。 x補(bǔ)補(bǔ)00,101;00.00100110) y補(bǔ)補(bǔ)00,101;11.011001求和求和 00.001001(10)+11.011001=11.100010(10)3)規(guī)格化規(guī)格化由于尾數(shù)運(yùn)算結(jié)果的符號(hào)位與最高數(shù)值為同號(hào),需左規(guī)。由于尾數(shù)運(yùn)算結(jié)果的符號(hào)位與最高數(shù)值為同號(hào),需左規(guī)。左規(guī)后得左規(guī)后得 x+y補(bǔ)補(bǔ)

41、00,100;11.000101(0)4)舍入舍入采取采取“0舍舍1入法,得到入法,得到x+y補(bǔ)補(bǔ)00,100;11.0001015)判溢出判溢出階碼符號(hào)位為階碼符號(hào)位為00,無(wú)溢出,故得最終結(jié)果為,無(wú)溢出,故得最終結(jié)果為x+y0.11101124返回本節(jié)3.3.2 乘除法運(yùn)算設(shè)有兩個(gè)浮點(diǎn)數(shù)設(shè)有兩個(gè)浮點(diǎn)數(shù)x x和和y y。它們分別為。它們分別為 x xSx2jxSx2jx y ySy2jySy2jy其中其中jyjy和和jyjy分別為數(shù)分別為數(shù)x x和和y y的階碼,的階碼,SxSx和和SySy分別為數(shù)分別為數(shù)x x和和y y的尾數(shù)。的尾數(shù)。浮點(diǎn)數(shù)乘法運(yùn)算規(guī)則為:浮點(diǎn)數(shù)乘法運(yùn)算規(guī)則為: xyxy

42、SxSy2jx+jySxSy2jx+jy即兩浮點(diǎn)數(shù)相乘,其乘積的階碼為相乘兩數(shù)階碼之和,其尾數(shù)應(yīng)為相即兩浮點(diǎn)數(shù)相乘,其乘積的階碼為相乘兩數(shù)階碼之和,其尾數(shù)應(yīng)為相乘兩數(shù)的尾數(shù)之積。乘兩數(shù)的尾數(shù)之積。浮點(diǎn)數(shù)除法運(yùn)算規(guī)則為:浮點(diǎn)數(shù)除法運(yùn)算規(guī)則為: x/yx/ySx/Sy2jx-jySx/Sy2jx-jy即兩個(gè)浮點(diǎn)數(shù)相除,商的階碼為被除數(shù)的階碼減去除數(shù)的階碼得到的即兩個(gè)浮點(diǎn)數(shù)相除,商的階碼為被除數(shù)的階碼減去除數(shù)的階碼得到的差,尾數(shù)為被除數(shù)的尾數(shù)除以除數(shù)的尾數(shù)所得的商。參加運(yùn)算的兩個(gè)差,尾數(shù)為被除數(shù)的尾數(shù)除以除數(shù)的尾數(shù)所得的商。參加運(yùn)算的兩個(gè)數(shù)都為規(guī)格化浮點(diǎn)數(shù)。乘除運(yùn)算都可能出現(xiàn)結(jié)果不滿足規(guī)格化要求的數(shù)

43、都為規(guī)格化浮點(diǎn)數(shù)。乘除運(yùn)算都可能出現(xiàn)結(jié)果不滿足規(guī)格化要求的問(wèn)題,因此也必須進(jìn)行規(guī)格化、舍人和判溢出等操作。規(guī)格化時(shí)要修問(wèn)題,因此也必須進(jìn)行規(guī)格化、舍人和判溢出等操作。規(guī)格化時(shí)要修改階碼。改階碼。返回本節(jié)3.4 算術(shù)邏輯單元 運(yùn)算器是數(shù)據(jù)的加工處理部件,是中央處理器的運(yùn)算器是數(shù)據(jù)的加工處理部件,是中央處理器的重要組成部分,運(yùn)算器的核心部件是算術(shù)邏輯單元重要組成部分,運(yùn)算器的核心部件是算術(shù)邏輯單元ALUALU。ALUALU利用集成電路技術(shù),將若干位全加器、并利用集成電路技術(shù),將若干位全加器、并行進(jìn)位鏈、輸入選擇門三部分集成在一塊芯片上,行進(jìn)位鏈、輸入選擇門三部分集成在一塊芯片上,可完成多種算術(shù)運(yùn)算

44、和邏輯運(yùn)算。例如完成加法、可完成多種算術(shù)運(yùn)算和邏輯運(yùn)算。例如完成加法、減法、邏輯與、邏輯異或、加減法、邏輯與、邏輯異或、加1 1、減、減1 1、求補(bǔ)等運(yùn)算。、求補(bǔ)等運(yùn)算。本節(jié)介紹典型的四位本節(jié)介紹典型的四位ALUALU集成電路集成電路SN74181SN74181。 返回本節(jié)3.4.1 并行加法器與快速進(jìn)位鏈 1 進(jìn)位信號(hào)的基本邏輯進(jìn)位信號(hào)的基本邏輯由全加器的邏輯表達(dá)式可知:由全加器的邏輯表達(dá)式可知:和:和:Si=Ci-1+Bi+Ai+ AiBiCi-1進(jìn)位:進(jìn)位:Ci=BiCi-1+ AiCi-1+ Ai Bi+ Ai Bi Ci-1=AiBi+(Ai+Bi)Ci-1其中,進(jìn)位其中,進(jìn)位Ci由

45、兩部分組成,本地進(jìn)位由兩部分組成,本地進(jìn)位AiBi,可記作,可記作di,與低位,與低位無(wú)關(guān);傳遞進(jìn)位無(wú)關(guān);傳遞進(jìn)位(Ai+Bi)Ci-1,與低位有關(guān),可稱,與低位有關(guān),可稱Ai+Bi為傳遞條為傳遞條件,記作件,記作ti,那么,那么Ci=di+tiCi-1返回本節(jié)2 串行進(jìn)位鏈串行進(jìn)位鏈串行進(jìn)位鏈?zhǔn)侵覆⑿屑臃ㄆ髦械倪M(jìn)位信號(hào)采用串行傳遞,串行進(jìn)位鏈?zhǔn)侵覆⑿屑臃ㄆ髦械倪M(jìn)位信號(hào)采用串行傳遞,如圖如圖3-8就是一個(gè)典型的串行進(jìn)位加法器。就是一個(gè)典型的串行進(jìn)位加法器。返回本節(jié)以四位并行加法器為例,每一位的進(jìn)位表達(dá)式為:以四位并行加法器為例,每一位的進(jìn)位表達(dá)式為: C0=d0+t0C-1 C1=d1+t1C

46、0 C2=d2+t2C1 C3=d3+t3C2 圖圖3-8 串行進(jìn)位加法器串行進(jìn)位加法器3 并行進(jìn)位鏈并行進(jìn)位鏈為了提高運(yùn)算速度,現(xiàn)在廣泛采用并行進(jìn)位結(jié)構(gòu),即并行地形成各為了提高運(yùn)算速度,現(xiàn)在廣泛采用并行進(jìn)位結(jié)構(gòu),即并行地形成各級(jí)進(jìn)位。并行進(jìn)位鏈?zhǔn)侵覆⑿屑臃ㄆ髦械倪M(jìn)位信號(hào)是同時(shí)產(chǎn)生的,級(jí)進(jìn)位。并行進(jìn)位鏈?zhǔn)侵覆⑿屑臃ㄆ髦械倪M(jìn)位信號(hào)是同時(shí)產(chǎn)生的,又稱先行進(jìn)位、跳躍進(jìn)位等。理想的并行進(jìn)位鏈?zhǔn)怯址Q先行進(jìn)位、跳躍進(jìn)位等。理想的并行進(jìn)位鏈?zhǔn)莕位全加器的位全加器的n位進(jìn)位同時(shí)產(chǎn)生,但實(shí)際實(shí)現(xiàn)有困難。通常并行進(jìn)位鏈分為單重位進(jìn)位同時(shí)產(chǎn)生,但實(shí)際實(shí)現(xiàn)有困難。通常并行進(jìn)位鏈分為單重分組和雙重分組兩種實(shí)現(xiàn)方案。分組

47、和雙重分組兩種實(shí)現(xiàn)方案。(1)單重分組跳躍進(jìn)位單重分組跳躍進(jìn)位單重分組跳躍進(jìn)位是指將單重分組跳躍進(jìn)位是指將n位全加器分成若干小組,小組內(nèi)的進(jìn)位同位全加器分成若干小組,小組內(nèi)的進(jìn)位同時(shí)產(chǎn)生,小組與小組之間的進(jìn)位串行產(chǎn)生,這種進(jìn)位又稱為組內(nèi)時(shí)產(chǎn)生,小組與小組之間的進(jìn)位串行產(chǎn)生,這種進(jìn)位又稱為組內(nèi)并行、組間串行進(jìn)位。以四位并行加法器為例,式并行、組間串行進(jìn)位。以四位并行加法器為例,式3-20變換為如變換為如下表達(dá)式:下表達(dá)式:C0=d0+t0C-1C1=d1+t1C0=d1+t1d0+t1t0C-1C2=d2+t2C1=d2+t2d1+t2t1d0+t2t1t0C-1C3=d3+t3C2 =d3+t

48、3d2+t3t2d1+t3t2t1d0+t3t2t1t0C-1 (式式3-21)其對(duì)應(yīng)邏輯圖如圖其對(duì)應(yīng)邏輯圖如圖3-10所示。所示。返回本節(jié)圖圖3-10 四位一組并行進(jìn)位鏈四位一組并行進(jìn)位鏈返回本節(jié)+&+&+&+&+&d3d2d1d0t3t2t1t0C3C2C1C0C-1設(shè)與或非門的級(jí)延遲時(shí)間為設(shè)與或非門的級(jí)延遲時(shí)間為1.5t,與非門的級(jí)延遲時(shí)間為,與非門的級(jí)延遲時(shí)間為1t,則,則di、ti形成形成后,只需后,只需2.5t就可產(chǎn)生全部進(jìn)位。就可產(chǎn)生全部進(jìn)位。如果將如果將16位的全加器按四位一組分組,便可得單重分組跳躍進(jìn)位鏈框圖,位的全加器按四位一組分組,

49、便可得單重分組跳躍進(jìn)位鏈框圖,如圖如圖3-11所示。所示。圖圖3-11 單重分組跳躍進(jìn)位鏈框圖單重分組跳躍進(jìn)位鏈框圖返回本節(jié)可得在可得在di、ti形成后,經(jīng)過(guò)形成后,經(jīng)過(guò)2.5t就可產(chǎn)生就可產(chǎn)生C3、C2、C1、C0四個(gè)進(jìn)位四個(gè)進(jìn)位信息,經(jīng)信息,經(jīng)10t就可產(chǎn)生全部進(jìn)位,而就可產(chǎn)生全部進(jìn)位,而16位串行進(jìn)位鏈的全部進(jìn)位時(shí)位串行進(jìn)位鏈的全部進(jìn)位時(shí)間位間位32t,可見(jiàn)單重分組跳躍進(jìn)位時(shí)間僅為串行進(jìn)位鏈的三分之一。,可見(jiàn)單重分組跳躍進(jìn)位時(shí)間僅為串行進(jìn)位鏈的三分之一。但隨著但隨著n的增大,其優(yōu)勢(shì)便很快減弱,如當(dāng)?shù)脑龃?,其?yōu)勢(shì)便很快減弱,如當(dāng)n=64時(shí),按四位分組,時(shí),按四位分組,共分為共分為16組,組

50、間有組,組間有16位串行進(jìn)位,在位串行進(jìn)位,在di、ti形成后,還需經(jīng)過(guò)形成后,還需經(jīng)過(guò)40t才產(chǎn)生全部進(jìn)位,顯然進(jìn)位時(shí)間太長(zhǎng)。如果能使組間進(jìn)位也同時(shí)產(chǎn)才產(chǎn)生全部進(jìn)位,顯然進(jìn)位時(shí)間太長(zhǎng)。如果能使組間進(jìn)位也同時(shí)產(chǎn)生,必然會(huì)更大地提高進(jìn)位速度,這就是組內(nèi)、組間并行的進(jìn)位鏈。生,必然會(huì)更大地提高進(jìn)位速度,這就是組內(nèi)、組間并行的進(jìn)位鏈。(2)雙重分組跳躍進(jìn)位雙重分組跳躍進(jìn)位雙重分組跳躍進(jìn)位就是將雙重分組跳躍進(jìn)位就是將n位全加器分成幾個(gè)大組,每個(gè)大組又包含位全加器分成幾個(gè)大組,每個(gè)大組又包含幾個(gè)小組,而每個(gè)大組內(nèi)包含的各個(gè)小組的最高位進(jìn)位是同時(shí)形成幾個(gè)小組,而每個(gè)大組內(nèi)包含的各個(gè)小組的最高位進(jìn)位是同時(shí)形成的,各個(gè)小組除最高位進(jìn)位外其它進(jìn)位同時(shí)產(chǎn)生,大組與大組間采的,各個(gè)小組除最高位進(jìn)位外其它進(jìn)位同時(shí)產(chǎn)生,大組與大組間采用串行進(jìn)位,又稱為組內(nèi)并行、組間并行進(jìn)位。圖用串行進(jìn)位,又稱為組內(nèi)并行、組間并行進(jìn)位。圖3-12是一個(gè)是一個(gè)32位位并行加法器雙重分組跳躍進(jìn)位的框圖。并行加法器雙重分組跳躍進(jìn)位的框圖。返回本節(jié)圖圖3-12

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論