計(jì)算機(jī)組成原理-第3章教學(xué)內(nèi)容_第1頁
計(jì)算機(jī)組成原理-第3章教學(xué)內(nèi)容_第2頁
計(jì)算機(jī)組成原理-第3章教學(xué)內(nèi)容_第3頁
計(jì)算機(jī)組成原理-第3章教學(xué)內(nèi)容_第4頁
計(jì)算機(jī)組成原理-第3章教學(xué)內(nèi)容_第5頁
已閱讀5頁,還剩121頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、計(jì)算機(jī)組成原理-第3章門電路的幾種表示方法門電路的幾種表示方法一、半加器一、半加器0001011001010011Ci+1SiBiAi輸出輸出輸入輸入圖圖3-1 半加器框圖及真值表半加器框圖及真值表 i+1iiiiiiiiiCA BSA BA BAB圖圖3-2 半加器邏輯電路圖半加器邏輯電路圖Ci+1 SiSiCiCi+1AiBiFA00010111 01101001 01010101 00110011 0000111 1 Si Ci Bi Ai 輸出輸出 輸入輸入 Ci+1圖圖3-3 全加器全加器框圖及真值表框圖及真值表 二、全加器二、全加器Si=Ai Bi Ci Ci+1=AiBi+AiC

2、i+BiCi =AiBi+(Ai+Bi)Ci =AiBi+(Ai Bi)Ci 圖圖3-4 全加器邏輯電路圖全加器邏輯電路圖 11&=1=1SiCiAiBiCi+13ty4ty1ty1.5ty1.5tyFull adder constructed from 2 Half Adders !三、三、串行加法器串行加法器ABCPFAIDCIC圖圖3-5 串行加法器框圖串行加法器框圖 四、并行加法器四、并行加法器 進(jìn)位公式分析進(jìn)位公式分析 Ci+1=AiBi+(Ai Bi)Ci =AiBi+(Ai+Bi)Ci 定義兩個(gè)輔助函數(shù)定義兩個(gè)輔助函數(shù) Gi=AiBi Pi=Ai Bi Gi (Carry

3、 Generate Function) Pi(Carry Propagate Function) Ci+1=Gi+PiCi 串行進(jìn)位加法器串行進(jìn)位加法器(Ripple Carry Adder) S3S2S1S0FA3FA2FA1FA0C3C2C1C0A3B3A2B2A1B1A0B0C4圖圖3-6 四位串行進(jìn)位加法器框圖四位串行進(jìn)位加法器框圖 C1=G0+P0C0 C2=G1+P1C1 C3=G2+P2C2 Cn=Gn-1+Pn-1Cn-1 最長(zhǎng)進(jìn)位延遲時(shí)間為最長(zhǎng)進(jìn)位延遲時(shí)間為4+2.5(n1)ty,形成最后和的時(shí)間是形成最后和的時(shí)間是4+2.5(n2)+1.5ty,與與n成正比。成正比。 先行

4、進(jìn)位加法器先行進(jìn)位加法器 提高加法器運(yùn)算速度的關(guān)鍵是消提高加法器運(yùn)算速度的關(guān)鍵是消除行波進(jìn)位中進(jìn)位逐位串行傳播,讓除行波進(jìn)位中進(jìn)位逐位串行傳播,讓各位進(jìn)位獨(dú)立同時(shí)形成。各位進(jìn)位獨(dú)立同時(shí)形成。 C1=G0+P0C0 C2=G1+P1C1= G1+P1(G0+P0C0) C3=G2+P2C2 = G2+P2(G1+P1(G0+P0C0) C4=G3+P3C3 =G3+P3(G2+P2 (G1+P1(G0+P0C0)展開并整理得到展開并整理得到 C1=G0+P0C0 C2=G1+P1G0+P1P0C0 C3=G2+P2G1+P2P1G0+P2P1P0C0 C4=G3+P3G2+P3P2G1+P3P2

5、P1G0 +P3P2P1P0C0 (圖圖3-8) 先行進(jìn)位先行進(jìn)位CLA(Carry Look Ahead)加法器加法器(圖圖3-9)。3-83-9 組間行波進(jìn)位加法器組間行波進(jìn)位加法器 圖圖3-11 組間行波進(jìn)位形成過程組間行波進(jìn)位形成過程ty10864C16C12C8C4C1C0Ci3-10 兩級(jí)先行進(jìn)位加法器兩級(jí)先行進(jìn)位加法器 Gi*為第為第i組先行進(jìn)位加法器的進(jìn)位產(chǎn)組先行進(jìn)位加法器的進(jìn)位產(chǎn) 生函數(shù),生函數(shù), Pi*為第為第i組先行進(jìn)位加法器的進(jìn)位傳組先行進(jìn)位加法器的進(jìn)位傳 遞函數(shù)遞函數(shù) Gi*=G4i+3+P4i+3G4i+2+ P4i+3P4i+2G4i+1 +P4i+3P4i+2P

6、4i+1G4i Pi*=P4i+3P4i+2P4i+1P4i ,i=0,1,2,3 小組間產(chǎn)生四個(gè)進(jìn)位小組間產(chǎn)生四個(gè)進(jìn)位 C4=G0*+P0*C0 C8=G1*+P1*G0*+P1*P0*C0 C12=G2*+P2*G1*+P2*P1*G0*+ P2*P1*P0*C0 C16=G3*+P3*G2*+P3*P2*G1* + P3*P2*P1*G0*+P3*P2*P1*P0*C03-123-133-143-15其它的并行加法器其它的并行加法器圖圖3-16 32 32位進(jìn)位選擇加法器位進(jìn)位選擇加法器10五、一位五、一位8421碼十進(jìn)制加法器碼十進(jìn)制加法器 1、十進(jìn)制數(shù)的、十進(jìn)制數(shù)的8421碼加法運(yùn)算

7、規(guī)則碼加法運(yùn)算規(guī)則 (1) 和和1001時(shí),不必修正時(shí),不必修正例例x=3,y=4,求求x+y=? 解:十進(jìn)制數(shù)運(yùn)算解:十進(jìn)制數(shù)運(yùn)算 3 + 4 7 8421碼碼 0 0 1 1+) 0 1 0 0 0 1 1 1 (+7) 正確結(jié)果正確結(jié)果 例例x=8,y=5,求,求x+y=? 解:十進(jìn)制數(shù)運(yùn)算解:十進(jìn)制數(shù)運(yùn)算 8 + 5 13 8421碼碼 1 0 0 0+) 0 1 0 1 1 1 0 1 錯(cuò)誤結(jié)果錯(cuò)誤結(jié)果 (2) 和和1010時(shí),需要修正時(shí),需要修正 例例x=9,y=8,求,求x+y=?解:十進(jìn)制數(shù)運(yùn)算解:十進(jìn)制數(shù)運(yùn)算 9 + 8 17 8421碼碼 1 0 0 1+) 1 0 0 0

8、 1 0 0 0 1 錯(cuò)誤結(jié)果錯(cuò)誤結(jié)果 1 1 0 1 +) 0 1 1 0 1 0 0 1 1(13) 正確正確 1 0 0 0 1+) 0 1 1 0 1 0 1 1 1 ( 17 ) 正確正確 2、8421碼十進(jìn)制加法器的組成碼十進(jìn)制加法器的組成十進(jìn)制數(shù)十進(jìn)制數(shù)未修正的和未修正的和C4 S3S2S1S0 8421碼碼C4 S3S2S1S0 修正法修正法 0123456789 0 0 0 00 0 0 10 0 1 00 0 1 10 1 0 00 1 0 10 1 1 00 1 1 11 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1

9、0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 不修正不修正 表表3-1 8421碼加法器修正關(guān)系碼加法器修正關(guān)系十進(jìn)制數(shù)十進(jìn)制數(shù)未修正的和未修正的和C4 S3S2S1S0 8421碼碼C4 S3S2S1S0 修正法修正法 10111213141516171819 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 1 0 0 0 0 1 0 0 0 1 1 0 0 1 0 1 0 0 1 1 1 0 0 0 01 0 0 0 11 0 0 1 01 0 0 1 11 0 1 0 01 0 1 0 11 0 1

10、 1 01 0 1 1 11 1 0 0 01 1 0 0 1 +6修正修正 需要修正的項(xiàng)為:需要修正的項(xiàng)為:C4+S3S2+S3S1=1;圖圖3-17 84213-17 8421碼十進(jìn)制加法器碼十進(jìn)制加法器3.1.2 多功能算術(shù)邏輯單元多功能算術(shù)邏輯單元ALU 一、一、多功能算術(shù)邏輯單元多功能算術(shù)邏輯單元74181 Fi=Ai Bi Ci= Pi Ci Ci+1=GiM+PiMCi 3-18表表3-2 Xi Yi與與Ai Bi的關(guān)系的關(guān)系 S3 S200011011Xi1Ai+BiAi+BiAiS1 S00110110YiAiAiBiAiBi00i3ii2iiX =S A B +S A Bi

11、1 i0iiY =S B +S B +A 對(duì)于任一對(duì)于任一Xi、Yi都滿足都滿足 Xi+Yi=Xi XiYi=Yi Gi=XiYi Pi=Xi Yi=Xi+Yi 則則 Yi = Gi Xi = Pi Ci+1=Gi+PiCi=Yi+XiCi則則 C1=Y0+X0C0 C2=Y1+X1C1=Y1+X1Y0+X1X0C0 C3=Y2+X2C2=Y2+X2Y1+X2X1Y0 +X2X1X0C03-19二、先行進(jìn)位發(fā)生器二、先行進(jìn)位發(fā)生器74182 圖中圖中G0 G3即即 , 即即 *0G*3G0P3P*0P*3PCn+x=G0*(P0*+Cn)Cn+y=G1*(P1*+G0*(P0*+Cn)Cn+Z

12、=G2*(P2*+G1*(P1*+G0*(P0*+Cn)G(G*)=G3*(P3*+G2*)(P3*+P2*+G1*) (P3*+P2*+P1*+G0*) P (P*)=P3*+P2*+P1*+P0* 3-203-21 SN74181SN74181是是4 4位先行進(jìn)位位先行進(jìn)位ALU ALU 芯片,中規(guī)模集成電路。芯片,中規(guī)模集成電路。 SN74182SN74182是是4 4位位BCLA ( (組間先行進(jìn)位組間先行進(jìn)位) )芯片。芯片。 多芯片級(jí)聯(lián)構(gòu)成先行進(jìn)位多芯片級(jí)聯(lián)構(gòu)成先行進(jìn)位ALUALU4 4個(gè)個(gè)SN74181SN74181芯片串行構(gòu)成一個(gè)芯片串行構(gòu)成一個(gè)1616位單級(jí)先行進(jìn)位位單級(jí)先行

13、進(jìn)位ALUALU4 4個(gè)個(gè)SN74181SN74181芯片與芯片與1 1個(gè)個(gè)SN74182SN74182芯片可構(gòu)成芯片可構(gòu)成1616位兩級(jí)先行進(jìn)位位兩級(jí)先行進(jìn)位ALUALU1616個(gè)個(gè)SN74181SN74181芯片與芯片與5 5個(gè)個(gè)SN74182SN74182芯片可構(gòu)成芯片可構(gòu)成6464位先行進(jìn)位位先行進(jìn)位ALUALU 現(xiàn)代主流計(jì)算機(jī)中現(xiàn)代主流計(jì)算機(jī)中ALUALU并非通過芯片級(jí)聯(lián)而成并非通過芯片級(jí)聯(lián)而成一個(gè)一個(gè)CPUCPU芯片中有多個(gè)處理器核芯片中有多個(gè)處理器核一個(gè)核中有多個(gè)一個(gè)核中有多個(gè)3232位位/64/64位位ALU!ALU!多功能算邏單元總結(jié)多功能算邏單元總結(jié)3.2 定點(diǎn)運(yùn)算定點(diǎn)運(yùn)算

14、3.2.1 定點(diǎn)加減運(yùn)算定點(diǎn)加減運(yùn)算 一、補(bǔ)碼加減法所依據(jù)的關(guān)系式一、補(bǔ)碼加減法所依據(jù)的關(guān)系式 1、加法、加法 x補(bǔ)補(bǔ)+y補(bǔ)補(bǔ)=x+y補(bǔ)補(bǔ) (1)x0,y0,則,則x+y0 x補(bǔ)補(bǔ)+y補(bǔ)補(bǔ)=x+y=x+y補(bǔ)補(bǔ) (2)x0,y0 x補(bǔ)補(bǔ)=x,y補(bǔ)補(bǔ)=2+y 則則 x補(bǔ)補(bǔ)+y補(bǔ)補(bǔ)=2+(x+y) (i) |x|y| 0 x+y1(正數(shù)正數(shù)) x補(bǔ)補(bǔ)+y補(bǔ)補(bǔ)=2+(x+y) =x+y=x+y補(bǔ)補(bǔ) 0. (ii) |x| |y| -1x+y0(負(fù)數(shù)負(fù)數(shù)) x補(bǔ)補(bǔ)+y補(bǔ)補(bǔ)=2+(x+y)=x+y補(bǔ)補(bǔ) (3) x0 與(與(2)類似)類似 (4) x0,y0 x+y0 x補(bǔ)補(bǔ)=2+x,y補(bǔ)補(bǔ)=2+y, 則

15、則 x補(bǔ)補(bǔ)+y補(bǔ)補(bǔ)=2+x+2+y=2+(2+x+y) x+y0,而且其絕對(duì)值又小于而且其絕對(duì)值又小于1。 則則12+x+y2 2+(2+x+y)=2+(x+y) x補(bǔ)補(bǔ)+y補(bǔ)補(bǔ)=2+(x+y)=x+y補(bǔ)補(bǔ) 2、減法、減法x y補(bǔ)補(bǔ)=x+(-y)補(bǔ)補(bǔ) =x補(bǔ)補(bǔ)+-y補(bǔ)補(bǔ)1.(1)0y1(正數(shù)正數(shù)) y補(bǔ)補(bǔ)=y原原=0.y1y2yn -y原原=1. y1y2yn -y補(bǔ)補(bǔ)=1. y1 y2yn+2 n (2)1y0(負(fù)數(shù)負(fù)數(shù)) y補(bǔ)補(bǔ)=1.y1y2yn 因因 y補(bǔ)補(bǔ)=2+y則則 y=y補(bǔ)補(bǔ) 2 = (2 1.y1y2yn) = (1.111+2 n 1.y1y2yn) = (0. y1 y2yn

16、+2 n) y=0. y1 y2yn+2 n( y)為正數(shù)為正數(shù) y補(bǔ)補(bǔ)=0. y1 y2yn+2 n 1.1 1 1 1.y1y2yn 例例1 y= 0.0110 y補(bǔ)補(bǔ)=1.1010 y補(bǔ)補(bǔ)=0.0110 例例2 y=0.0111 y補(bǔ)補(bǔ)=0.0111 y補(bǔ)補(bǔ)=1.1001二、運(yùn)算規(guī)則二、運(yùn)算規(guī)則 參加運(yùn)算的操作數(shù)用補(bǔ)碼表示。參加運(yùn)算的操作數(shù)用補(bǔ)碼表示。 符號(hào)位參加運(yùn)算。符號(hào)位參加運(yùn)算。 對(duì)于兩數(shù)相加減的各種情況,計(jì)算對(duì)于兩數(shù)相加減的各種情況,計(jì)算機(jī)都執(zhí)行求和操作。當(dāng)操作碼為加運(yùn)算時(shí)機(jī)都執(zhí)行求和操作。當(dāng)操作碼為加運(yùn)算時(shí),兩數(shù)直接相加;當(dāng)操作碼為減運(yùn)算時(shí),兩數(shù)直接相加;當(dāng)操作碼為減運(yùn)算時(shí),將

17、減數(shù)連同符號(hào)位一起求反加將減數(shù)連同符號(hào)位一起求反加1與被減數(shù)與被減數(shù)相加。相加。 運(yùn)算結(jié)果以補(bǔ)碼表示。運(yùn)算結(jié)果以補(bǔ)碼表示。例例1 已知:已知:x=0.1001, y = 0.0110, 求:求:x+y = ?解:解:x補(bǔ)補(bǔ)=0.1001 y補(bǔ)補(bǔ)=1.1010 x補(bǔ)補(bǔ) 0.1001 + y補(bǔ)補(bǔ) 1.1010 x+y補(bǔ)補(bǔ) 1 0.0011 x+y=0.0011 例例2 已知:已知:x= 0.1001, y = 0.0101, 求:求:x+y =?解:解:x補(bǔ)補(bǔ)= 1.0111 y補(bǔ)補(bǔ)= 1.1011 x補(bǔ)補(bǔ) 1.0111 + y補(bǔ)補(bǔ) 1.1011 x+y補(bǔ)補(bǔ) 1 1.0010 x+y= 0.111

18、0 例例3 已知:已知:x=0.1001,y=0.0110, 求:求:x y=?解:解:x補(bǔ)補(bǔ)=0.1001 y補(bǔ)補(bǔ)=0.0110 y補(bǔ)補(bǔ)=1.1010 x補(bǔ)補(bǔ) 0.1001 + y補(bǔ)補(bǔ) 1.1010 x- y補(bǔ)補(bǔ) 1 0.0011 x y =0.0011 例例4 已知:已知:x= 0.1001, y = 0.0110,求:求:x y = ?解:解:x補(bǔ)補(bǔ)= 1.0111 y補(bǔ)補(bǔ)= 1.1010 y補(bǔ)補(bǔ)= 0.0110 x補(bǔ)補(bǔ) 1.0111 + y補(bǔ)補(bǔ) 0.0110 x- y補(bǔ)補(bǔ) 1.1101 x y= 0.0011 三、三、實(shí)現(xiàn)補(bǔ)碼加減運(yùn)算的邏輯電路實(shí)現(xiàn)補(bǔ)碼加減運(yùn)算的邏輯電路圖圖3-23圖圖

19、3-22 四位串行進(jìn)位補(bǔ)碼加減法器四位串行進(jìn)位補(bǔ)碼加減法器四、溢出檢測(cè)四、溢出檢測(cè) 1、溢出的概念、溢出的概念 加法器和寄存器由多少個(gè)二進(jìn)制加法器和寄存器由多少個(gè)二進(jìn)制 位組成通常稱為定點(diǎn)運(yùn)算器的字長(zhǎng)。位組成通常稱為定點(diǎn)運(yùn)算器的字長(zhǎng)。 計(jì)算機(jī)執(zhí)行算術(shù)運(yùn)算所產(chǎn)生的結(jié)計(jì)算機(jī)執(zhí)行算術(shù)運(yùn)算所產(chǎn)生的結(jié) 果超出機(jī)器數(shù)所能表示的數(shù)據(jù)范圍果超出機(jī)器數(shù)所能表示的數(shù)據(jù)范圍 ,稱為溢出。,稱為溢出。 例如例如 x=0,110, y=0,011, 則則 x補(bǔ)補(bǔ) 0,110 +y補(bǔ)補(bǔ) 0,011 x+y補(bǔ)補(bǔ) 1,001(溢出)(溢出) x+y = 7 正溢正溢 負(fù)溢負(fù)溢 (a) 0,110 (+6) +) 1,011

20、( 5) 1 0,001(+1) 無溢出無溢出 (b) 1,110 ( 2) +) 1,101( 3) 1 1,011 ( 5) 無溢出無溢出 (c) 0,110 (+6) +) 0,011 (+3) 1,001 溢出溢出 (d) 1,100 ( 4) +) 1,011 ( 5) 1 0,111 溢出溢出 、2、溢出檢測(cè)方法、溢出檢測(cè)方法 (1) 采用一個(gè)符號(hào)位采用一個(gè)符號(hào)位 A=an-1an-2a0 B=bn-1bn-2b0 S=sn-1sn-2s0 OVR=an-1bn-1sn-1+an-1bn-1sn-1an-1Sn-1=1 =1 &bn-1OVR圖圖3-24 溢出檢測(cè)電路溢出檢

21、測(cè)電路 (2) 用用cn-1和和cn判斷判斷 OVR=cn-1 cn (3) 采用雙符號(hào)位采用雙符號(hào)位(模模4補(bǔ)碼或變形補(bǔ)碼補(bǔ)碼或變形補(bǔ)碼) 模模4補(bǔ)碼的定義為補(bǔ)碼的定義為 x補(bǔ)補(bǔ)= x補(bǔ)補(bǔ)+y補(bǔ)補(bǔ)=x+y補(bǔ)補(bǔ)x 0 x24+x 2x0 兩數(shù)相加后結(jié)果符號(hào)為:兩數(shù)相加后結(jié)果符號(hào)為: 00或或11 沒有溢出;沒有溢出; 01 正溢;正溢; 10 負(fù)溢。負(fù)溢。 OVR=sf1 sf2例例1 已知已知x=0.010, y=0.011, 求求x+y=?解解 x補(bǔ)補(bǔ)=00.010 y補(bǔ)補(bǔ)=00.011 x補(bǔ)補(bǔ) 00.010 +) y補(bǔ)補(bǔ) 00.011 00.101 無溢出無溢出x+y=0.101 例例2

22、 已知已知x= 0.010, y= 0.011,求,求x+y=?解解 x補(bǔ)補(bǔ)=11.110 y補(bǔ)補(bǔ)=11.101 x補(bǔ)補(bǔ) 11.110 +) y補(bǔ)補(bǔ) 11.101 11.011 無溢出無溢出x+y= 0.101 例例3 已知已知x=0.110, y=0.011,求求x+y=?解解 x補(bǔ)補(bǔ)=00.110 y補(bǔ)補(bǔ)=00.011 x補(bǔ)補(bǔ) 00.110 +) y補(bǔ)補(bǔ) 00.011 01.001 正溢出正溢出例例4 已知已知x= 0.100,y= 0.101,求,求x+y=?解解 x補(bǔ)補(bǔ)=11.100 y補(bǔ)補(bǔ)=11.011 x補(bǔ)補(bǔ) 11.100 +) y補(bǔ)補(bǔ) 11.011 10.111 負(fù)溢出負(fù)溢出3.

23、3.2 3.3.2 定點(diǎn)乘法運(yùn)算定點(diǎn)乘法運(yùn)算通過多次相加和移位來實(shí)現(xiàn)乘除運(yùn)算。通過多次相加和移位來實(shí)現(xiàn)乘除運(yùn)算。 一、移位操作一、移位操作 1、移位操作的種類、移位操作的種類 邏輯移位邏輯移位 循環(huán)移位循環(huán)移位 算術(shù)移位算術(shù)移位 2、邏輯移位(圖、邏輯移位(圖3-25) 左移低位補(bǔ)左移低位補(bǔ)0,右移高位補(bǔ),右移高位補(bǔ)0 如如 10110101 01101010 01011010 3、循環(huán)移位(圖、循環(huán)移位(圖3-25 ) 10011001 00110011 11001100 4、算術(shù)移位、算術(shù)移位 算術(shù)移位則數(shù)的符號(hào)不變而數(shù)算術(shù)移位則數(shù)的符號(hào)不變而數(shù) 量發(fā)生變化。左移一位將使數(shù)值擴(kuò)量發(fā)生變化。

24、左移一位將使數(shù)值擴(kuò) 大一倍大一倍(乘以乘以2)(在不產(chǎn)生溢出的情在不產(chǎn)生溢出的情 況下況下),右移一位則使數(shù)值縮小一,右移一位則使數(shù)值縮小一 倍倍(乘以乘以1/2)(如果不考慮舍入的情如果不考慮舍入的情 況況)。 (1) 正數(shù)正數(shù) 移位后的空位均補(bǔ)移位后的空位均補(bǔ)0(符號(hào)不變)(符號(hào)不變) 例例 0.0110 0.1100 0.0011例:某變量初值:例:某變量初值:0111 1111 (= 127) 左移左移1位后為:位后為:1111 1110 (= -126 254,溢出,錯(cuò)誤,溢出,錯(cuò)誤)(2) 負(fù)數(shù)負(fù)數(shù) 負(fù)數(shù)的原碼移位后的空位補(bǔ)負(fù)數(shù)的原碼移位后的空位補(bǔ)0 負(fù)數(shù)的補(bǔ)碼左移后的空位補(bǔ)負(fù)數(shù)的

25、補(bǔ)碼左移后的空位補(bǔ)0 ,右移右移后的空位補(bǔ)后的空位補(bǔ)1。 負(fù)數(shù)的反碼移位后的空位補(bǔ)負(fù)數(shù)的反碼移位后的空位補(bǔ)1圖圖3-253-25移位操作移位操作二、二、原碼一位乘法原碼一位乘法 設(shè)設(shè) x原原=xs.x1x2xn y原原=ys.y1y2yn 則則 x原原y原原 =xs ys.( 0.x1x2xn)(0.y1y2yn) 1、運(yùn)算方法運(yùn)算方法 例例 x=0.1101 y=0.1011 0. 1 1 0 1 ) 0. 1 0 1 1 1 1 0 1 1 1 0 1 0 0 0 0 1 1 0 1 0. 1 0 0 0 1 1 1 1乘數(shù)寄存器乘數(shù)寄存器 =2-1 x + 2-1 0 x + 2-1(

26、x + 2-1( x + 0 ) P1 P2 P3 P4xy=x(0.1011) =0.1x+0.00 x+0.001x+0.0001x =0.1x+0.10 x+0.1(x+0.1x) 對(duì)于一般情況對(duì)于一般情況 設(shè)設(shè) x=0. x1x2xn, y=0. y1y2yn 則則 xy=2 1(y1x+2 1(y2x+ 2 1( +2 1(yn-1x+2 1(ynx+0) )其遞推公式為:其遞推公式為: P0=0 P1=2 1(ynx+P0) P2=2 1 (yn-1x+P1) Pi=2 1 (yn-i+1x+Pi-1) Pn=2 1 (y1x+Pn-1) xy=(xs ys)Pn 舉例:舉例:x=

27、0.1101 y=0.1011, xy原原=( xs ys)Pn=0.10001111 xy=0.10001111 流程圖流程圖2 2、原理框圖、原理框圖3-28三、補(bǔ)碼一位乘法三、補(bǔ)碼一位乘法 1、補(bǔ)碼與真值之間的關(guān)系、補(bǔ)碼與真值之間的關(guān)系 設(shè)設(shè) x補(bǔ)補(bǔ)=xs.x1x2xn 則則 x=-xs+0.x1x2xn2、補(bǔ)碼乘法算法的推導(dǎo)、補(bǔ)碼乘法算法的推導(dǎo) 設(shè)被乘數(shù)設(shè)被乘數(shù)x補(bǔ)補(bǔ)=xs.x1x2xn, 乘數(shù)乘數(shù)y補(bǔ)補(bǔ)=ys.y1y2yn 則則 xy補(bǔ)補(bǔ)=x補(bǔ)補(bǔ)y 3、補(bǔ)碼乘法比較法、補(bǔ)碼乘法比較法布斯布斯(Booth)乘法乘法 (1) 運(yùn)算規(guī)則運(yùn)算規(guī)則 xy補(bǔ)補(bǔ)=x補(bǔ)補(bǔ) ys+y12 1+y22

28、2+yn2 n =x補(bǔ)補(bǔ) ys+(y1 y12 1) +(y22 1 y22 2)+(yn2 (n- 1) yn2 n) =x補(bǔ)補(bǔ)(y1 ys)+(y2 y1)2 1+ +(yn yn-1)2 (n 1)+(0 yn)2 n =x補(bǔ)補(bǔ)(y1ys)+2 -1(x補(bǔ)補(bǔ)(y2 y1)+2 -1(x補(bǔ)補(bǔ)(y3 y2)+ +2 -1(x補(bǔ)補(bǔ)(yn yn-1)+2 -1(0+x補(bǔ)補(bǔ)(yn+1 yn) )(yn+1=0) 其遞推公式為:其遞推公式為:P0補(bǔ)補(bǔ)0P1補(bǔ)補(bǔ)2-1(P0補(bǔ)補(bǔ)+(yn+1-yn)x補(bǔ)補(bǔ))P2補(bǔ)補(bǔ)2-1(P1補(bǔ)補(bǔ)+(yn-yn-1)x補(bǔ)補(bǔ))Pi補(bǔ)補(bǔ)2-1(Pi-1補(bǔ)補(bǔ)+(yn-i+2-

29、yn-i+1)x補(bǔ)補(bǔ))Pn補(bǔ)補(bǔ)=2-1(Pn-1補(bǔ)補(bǔ)+(y2-y1)x補(bǔ)補(bǔ))Pn+1補(bǔ)補(bǔ)= Pn補(bǔ)補(bǔ)+(y1-ys)x補(bǔ)補(bǔ)= x.y補(bǔ)補(bǔ) ysy1y2y3y40 yi+1 yi0 0 yi+1 yi1 x補(bǔ)補(bǔ) yi+1 yi1 -x補(bǔ)補(bǔ)Booth算法描述如下算法描述如下 參加運(yùn)算的數(shù)用補(bǔ)碼表示參加運(yùn)算的數(shù)用補(bǔ)碼表示 符號(hào)位參加運(yùn)算符號(hào)位參加運(yùn)算 乘數(shù)最低位后面增加一位附加乘數(shù)最低位后面增加一位附加位位yn+1(初值為初值為0),以后逐次比較相鄰,以后逐次比較相鄰兩位并按下列規(guī)則運(yùn)算兩位并按下列規(guī)則運(yùn)算部分積加部分積加0,右移一位,右移一位部分積加部分積加x補(bǔ)補(bǔ),右移一位,右移一位部分積加部分積

30、加 x補(bǔ)補(bǔ),右移位,右移位部分積加部分積加0,右移一位,右移一位 0 00 11 01 1 操作操作 ynyn+1 按上述算法進(jìn)行按上述算法進(jìn)行n+1步步(n是不包括是不包括符號(hào)位在內(nèi)的字長(zhǎng)符號(hào)位在內(nèi)的字長(zhǎng)),但,但n+1步不移位步不移位 移位要按補(bǔ)碼的移位規(guī)則進(jìn)行移位要按補(bǔ)碼的移位規(guī)則進(jìn)行 例例 已知:已知:x=0.0101,y=-0.1101,求求xy=? 解解 x補(bǔ)補(bǔ)=0.0101, y補(bǔ)補(bǔ)=1.0011 x補(bǔ)補(bǔ)=1.1011 xy補(bǔ)補(bǔ)=1.10111111 xy= 0.01000001流程圖流程圖(2 2) 原理框圖原理框圖3-30四、快速乘法四、快速乘法1. Booth兩位乘法兩位乘

31、法 根據(jù)補(bǔ)碼一位乘法的規(guī)則,將比根據(jù)補(bǔ)碼一位乘法的規(guī)則,將比較較ynyn+1的狀態(tài)與比較的狀態(tài)與比較yn-1yn的狀態(tài)的狀態(tài)所執(zhí)行的操作合并成一步所執(zhí)行的操作合并成一步 。部分積部分積+0,右移兩位,右移兩位部分積部分積+x補(bǔ)補(bǔ),右移兩位,右移兩位部分積部分積+x補(bǔ)補(bǔ),右移兩位,右移兩位部分積部分積+2x補(bǔ)補(bǔ),右移兩位,右移兩位 部分積部分積+2-x補(bǔ)補(bǔ),右移兩位,右移兩位部分積部分積+-x補(bǔ)補(bǔ),右移兩位,右移兩位 部分積部分積+x補(bǔ)補(bǔ),右移兩位,右移兩位部分積部分積+0,右移兩位,右移兩位0 0 00 0 10 1 00 1 11 0 01 0 11 1 01 1 1操作操作yn-1ynyn

32、+12. 被加數(shù)進(jìn)位保留乘法被加數(shù)進(jìn)位保留乘法陣列乘法器:串行進(jìn)位陣列乘法器:串行進(jìn)位 進(jìn)位保留陣列乘法器進(jìn)位保留陣列乘法器例:兩個(gè)無符號(hào)整數(shù)(四位二進(jìn)制表示)相乘,例:兩個(gè)無符號(hào)整數(shù)(四位二進(jìn)制表示)相乘,被乘數(shù)被乘數(shù)X=1111,乘數(shù),乘數(shù)1101。假設(shè)乘積過程。假設(shè)乘積過程中產(chǎn)生的四個(gè)被加數(shù)分別用中產(chǎn)生的四個(gè)被加數(shù)分別用A-D表示。則按照表示。則按照被加數(shù)進(jìn)位保留乘法的計(jì)算,可把被加數(shù)的相被加數(shù)進(jìn)位保留乘法的計(jì)算,可把被加數(shù)的相加分為三次來完成。加分為三次來完成。 (a) 四位二進(jìn)制數(shù)乘法四位二進(jìn)制數(shù)乘法 (b)采用被加數(shù)進(jìn)位保存加法分解采用被加數(shù)進(jìn)位保存加法分解10圖圖3-34 被加數(shù)

33、進(jìn)位保存乘法計(jì)算過程被加數(shù)進(jìn)位保存乘法計(jì)算過程10對(duì)六位數(shù)乘法:對(duì)六位數(shù)乘法:Mx QP+ M5 M4 M3 M2 M1 M0 Q5 Q4 Q3 Q2 Q1 Q0 A5 A4 A3 A2 A1 A0 B6 B5 B4 B3 B2 B1 C7 C6 C5 C4 C3 C2 D8 D7 D6 D5 D4 D3 E9 E8 E7 E6 E5 E4 F10 F9 F8 F7 F6 F5P11 P10 P9 P8 P7 P6 P5 P4 P3 P2 P1 P0 F E D C B AC2 S2C1 S1C3 S3C4 S4P3.2.3定點(diǎn)除法運(yùn)算定點(diǎn)除法運(yùn)算 一、原碼除法一、原碼除法 設(shè)設(shè)x原原=xs.

34、x1x2xn, y原原=ys.y1y2yn, 則則q原原=(xs ys).(x1x2xn/y1y2yn) 1、恢復(fù)余數(shù)法、恢復(fù)余數(shù)法 例例 x=0.1011,y=0.1101,求求x/y=? 0.1 1 0 1 0 .1101 0. 1 0 1 1 0 1 1 0 1 1 0 0 1 0 1 1 0 1 1 0 1 0 0 1 1 0 1 0 1 1 1計(jì)算機(jī)實(shí)現(xiàn)除法計(jì)算機(jī)實(shí)現(xiàn)除法 直接作減法試探,根據(jù)所得余直接作減法試探,根據(jù)所得余數(shù)的符號(hào)來判斷被除數(shù)數(shù)的符號(hào)來判斷被除數(shù)(余數(shù)余數(shù))與除數(shù)與除數(shù)的大小。的大小。 用左移被除數(shù)用左移被除數(shù)(余數(shù)余數(shù))實(shí)現(xiàn)實(shí)現(xiàn) 把求得的每一位商上到商值寄把求得的

35、每一位商上到商值寄存器的最低一位存器的最低一位 被除數(shù)被除數(shù)(余數(shù)余數(shù))減除數(shù)的操作用加減除數(shù)的操作用加 |y|補(bǔ)補(bǔ)實(shí)現(xiàn)。實(shí)現(xiàn)。2、不恢復(fù)余數(shù)法(加減交替法)、不恢復(fù)余數(shù)法(加減交替法) (1)運(yùn)算方法運(yùn)算方法 ri=2ri-1 y ri0,商,商“1”,ri+1=2ri |y| 。 ri0, 商商“0”, ri+1=2(ri+|y|) |y| =2ri+|y| 余數(shù)為正,商余數(shù)為正,商“1”,2ri |y| 余數(shù)為負(fù),商余數(shù)為負(fù),商“0”,2ri+|y| 例例 x=0.1011 y= 0.1101 求求x/y原原=? 解:解: |x|=0.1011 |y|=0.1101 |y|補(bǔ)補(bǔ)=1.00

36、11 4x0.0111 2= 0.1101 y0.1101 圖圖3-35 3-35 流程流程圖圖3-363.4浮點(diǎn)運(yùn)算浮點(diǎn)運(yùn)算 非規(guī)格化浮點(diǎn)運(yùn)算非規(guī)格化浮點(diǎn)運(yùn)算 規(guī)格化浮點(diǎn)運(yùn)算規(guī)格化浮點(diǎn)運(yùn)算3.4.1 浮點(diǎn)加減運(yùn)算浮點(diǎn)加減運(yùn)算 設(shè)有兩個(gè)浮點(diǎn)數(shù)設(shè)有兩個(gè)浮點(diǎn)數(shù)x和和yXExx=2M yEyy=2M 1、對(duì)階、對(duì)階 對(duì)階的第一步是求階差對(duì)階的第一步是求階差 xyE=E E 對(duì)階的規(guī)則是小階向大階看齊對(duì)階的規(guī)則是小階向大階看齊 例例 兩浮點(diǎn)數(shù)為兩浮點(diǎn)數(shù)為 x=0.1101201 y= (0.1010)211 求求 x+y=?解:解:x、y在計(jì)算機(jī)中以補(bǔ)碼表示為在計(jì)算機(jī)中以補(bǔ)碼表示為 x補(bǔ)補(bǔ)=00,01

37、;00.1101Ex Mx y補(bǔ)補(bǔ)=00,11;11.0110Ey My E=00,01+11,01=11,10( 2) x補(bǔ)補(bǔ)=00,11;00.0011012、求和、求和/差差 x補(bǔ)補(bǔ)=00,11;00.001101 y補(bǔ)補(bǔ)=00,11;11.0110則則 Mx+My補(bǔ)補(bǔ)為為 0 0. 0 0 1 1 01 +) 1 1. 0 1 1 0 1 1. 1 0 0 1 01即即 x+y補(bǔ)補(bǔ)=00,11;11.100101 3、規(guī)格化、規(guī)格化 (1) 左規(guī)左規(guī) x+y補(bǔ)補(bǔ)=00,11;11.1001 01 x+y補(bǔ)補(bǔ)=00,10;11.0010 1 x+y= 0.1110210 (2) 右規(guī)右規(guī)

38、 例例 x=0.1101210,y=0.1011201 求求 x+y=? x+y補(bǔ)補(bǔ)=00,10;01.0010 x+y補(bǔ)補(bǔ)=00,11;00.1001 則則 x+y=0.10012114、舍入、舍入 (1) 0舍舍1入入 01.0100210 00.1010211 01.1011201 00.1110210 1.01101000 1.0110 (2) 恒置恒置1法法 00. 1011211 00.11012105、浮點(diǎn)數(shù)的溢出判斷、浮點(diǎn)數(shù)的溢出判斷 階碼有階碼有m位位(包括一位符號(hào)位包括一位符號(hào)位),采用補(bǔ)碼或移碼表示,則表數(shù)范圍為采用補(bǔ)碼或移碼表示,則表數(shù)范圍為 2m 1 E 2m 1 1

39、。 流程圖流程圖3-413.4.2 浮點(diǎn)乘除運(yùn)算浮點(diǎn)乘除運(yùn)算 設(shè)設(shè) 兩個(gè)浮點(diǎn)數(shù)分別為兩個(gè)浮點(diǎn)數(shù)分別為 xExx=2M yEyy=2M xy(E +E )xyx y=2(MM ) xy(E E )xyx/y=2(M /M )則則圖圖3-43 浮點(diǎn)數(shù)乘法運(yùn)算流程圖(浮點(diǎn)數(shù)乘法運(yùn)算流程圖(Z=X*Y)3.4.3 浮點(diǎn)運(yùn)算所需要的硬件浮點(diǎn)運(yùn)算所需要的硬件 1. 階碼運(yùn)算部件(定點(diǎn)整數(shù)運(yùn)算)階碼運(yùn)算部件(定點(diǎn)整數(shù)運(yùn)算) 階碼大小的比較、階碼加法運(yùn)階碼大小的比較、階碼加法運(yùn) 算、階碼調(diào)整時(shí)的增量與減量算、階碼調(diào)整時(shí)的增量與減量 2. 尾數(shù)運(yùn)算部件(定點(diǎn)小數(shù)運(yùn)算)尾數(shù)運(yùn)算部件(定點(diǎn)小數(shù)運(yùn)算) 左移、右移、尾

40、數(shù)加法運(yùn)算、左移、右移、尾數(shù)加法運(yùn)算、 尾數(shù)乘除運(yùn)算。尾數(shù)乘除運(yùn)算。關(guān)于運(yùn)算器的補(bǔ)充內(nèi)容關(guān)于運(yùn)算器的補(bǔ)充內(nèi)容1. CPU之外的浮點(diǎn)運(yùn)算器之外的浮點(diǎn)運(yùn)算器8087是美國(guó)是美國(guó)Intel公司為處理浮點(diǎn)數(shù)等數(shù)據(jù)的算術(shù)運(yùn)算和多種函數(shù)計(jì)算而設(shè)計(jì)生產(chǎn)的專用公司為處理浮點(diǎn)數(shù)等數(shù)據(jù)的算術(shù)運(yùn)算和多種函數(shù)計(jì)算而設(shè)計(jì)生產(chǎn)的專用算術(shù)運(yùn)算處理器。由于其算術(shù)運(yùn)算是配合算術(shù)運(yùn)算處理器。由于其算術(shù)運(yùn)算是配合8086 CPU進(jìn)行的,所以進(jìn)行的,所以8087又稱為又稱為協(xié)處理器協(xié)處理器(Co-processor)。)。以下說明以下說明8087浮點(diǎn)運(yùn)算器的特點(diǎn)和內(nèi)部結(jié)構(gòu)。浮點(diǎn)運(yùn)算器的特點(diǎn)和內(nèi)部結(jié)構(gòu)。(1)以異步方式與)以異步方式與8086并行工作。并行工作。8087相當(dāng)于相當(dāng)于8086的一個(gè)的一個(gè)I/O部件,本身有它自己的指部件,本身有它自己的指令,但不能單獨(dú)使用,它只能作為令,但不能單獨(dú)使用

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論