軟件工程-03計(jì)算機(jī)組成原理_第1頁
軟件工程-03計(jì)算機(jī)組成原理_第2頁
軟件工程-03計(jì)算機(jī)組成原理_第3頁
軟件工程-03計(jì)算機(jī)組成原理_第4頁
軟件工程-03計(jì)算機(jī)組成原理_第5頁
已閱讀5頁,還剩110頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第三 運(yùn)算方法和運(yùn)算部浮點(diǎn)數(shù)運(yùn)算及其運(yùn)算部高級語言和機(jī)器指令C整數(shù)算術(shù)運(yùn)算、浮點(diǎn)數(shù)算術(shù)按位、邏輯、移位指令集中與運(yùn)算相關(guān)的指令(以MIPS為參考算術(shù)運(yùn)帶符號整數(shù)運(yùn)符號擴(kuò)除算術(shù)移無符號整數(shù)運(yùn)算:0邏輯運(yùn)移位操作:邏輯左移/邏輯右一、移位移位的意

15.米1500.機(jī)器用 15相對于小數(shù)點(diǎn)左移位 在計(jì)算機(jī)中,合,能夠?qū)崿F(xiàn)碼制添補(bǔ)代正原碼、補(bǔ)碼、反0負(fù) 0 1例3.1設(shè)機(jī)器數(shù)字長為8位(含一位符號位)解 A=– =–移位移位對應(yīng)的真–1–2–1–2–移位對移位對應(yīng)的真移位–1–2–1–2–移位對應(yīng)的移位對應(yīng)的真–1–2–1–2–(a)(a)(b)(c)(d)負(fù)數(shù)的反1出正正1影響影響精影響精正 邏輯移 無符號數(shù)的移邏輯左

低位添 邏輯右例算術(shù)左

添0,低位 丟算術(shù)右

(補(bǔ)碼一、ALU ……四位

Ki不同取值Fi不同M=M=

邏輯運(yùn)S3~ 不同取值一位半加器(不考慮進(jìn)位一位全加器(考慮進(jìn)位

Fi=Xi⊕Yi⊕Ci-Ci= i+(Xi+Yi)Ci-=G+P

Gi=X

Ci-進(jìn)位產(chǎn)生

Pi 進(jìn)位傳遞函串行進(jìn)位加

C0=G0+P0C-1=G0?P0C-C1=G1+C2=G2+

Gi=

Pi=C3=G3+

設(shè)與非門的級延遲時(shí)間為&&&& C-&&&&&&&&&&&& 4全加器產(chǎn)生進(jìn)位的全部時(shí)間為

C0=G0+P0C-C1=G1+P1C0=G1+P1G0+P1P0C-

用與或非門C2=G2+P2C1=G2+P2G1+P2P1G0+P2P1P0C-C3=G3+P3C2=G3+P3G2+P3P2G1+P3P2P1G0+P3P2P1P0C- =G+PC-

&&&&&111&&&&111超前進(jìn)

1

一位ALU運(yùn)算方式選

Zi=FA的輸

實(shí)現(xiàn)何種運(yùn)算6.4位ALU兩種工作方式:正邏輯和負(fù)FFiXi

0

邏輯運(yùn) FiFiXiYi

1

算術(shù)運(yùn) 74181的算術(shù)/邏輯運(yùn)算功能(正邏輯方式用SN74181現(xiàn)不同位數(shù)的16位 片間串行進(jìn)PG片PG片間并行進(jìn)P0P1P2P364位P3P3CP Cn+xP3Cn+xP3 定點(diǎn)數(shù)加/減運(yùn)算及其運(yùn)算部運(yùn)乘法運(yùn)算及其運(yùn)算部法除法運(yùn)算及其運(yùn)算部法運(yùn)一、加減法小小(2A–B=A+(–B[AB]補(bǔ)A+(–B)]補(bǔ)A]B]小數(shù)[A–B]補(bǔ)=[A+(–B)]補(bǔ)=[A]B]

(mod2n+1)(mod2)連同符號位一起相加,符號位產(chǎn)生的進(jìn)證A>0①│B│>A(A+B<0=[A]補(bǔ)+[B]②│B│<A(A+B>0=A+2+B(mod=[A]補(bǔ)+[B]例 已知[y]設(shè)[y]y0y1[y][y]0.y1y2

求[y][[-y]1.y1y2…yn+[y]即得[y] [y]1.y1y2[y]補(bǔ)連同符號位在內(nèi),每位取末位即得[y] y]0.y1y2yn2-舉例 設(shè)A=0.1011,B=–求[A+B] 驗(yàn)解:[A]

0.101 1.101

100110AB]

∴A+B 0.011例 設(shè)A=–9,B=求[A+B] 驗(yàn)解:[A]+[B]

1,011 1,101

–+–∴A+B=–

–例3.5 且A=15,B=24,用補(bǔ)碼求A–B解 A=15B=24= [B]B]=[A]B]= AB]∴A–B=–1001=

設(shè)x= y 用補(bǔ)碼解 x=[x]補(bǔ)= [y]補(bǔ)=[x]+[y]補(bǔ)=xy0.1100= 同理設(shè)機(jī)器數(shù)字長8位(1位符號)A97,B41,用補(bǔ)碼–AB 溢出兩數(shù)符號不硬件實(shí)最高有效位的進(jìn)位⊕符號位的進(jìn)位= 溢 0= 1= 0=

1 -7-6=-7+(-6)=

-3-5=-3+(-5)=-√

1+10 1+10

1 1

溢出現(xiàn)象:(1) 和 的進(jìn)位不和的符號位和加數(shù)的符號位不(2)[x]補(bǔ)

1>x≥4+ 0>x≥–1(mod[x]補(bǔ)y]補(bǔ)xy]補(bǔ)(mod[x–y]補(bǔ)x]補(bǔ)y]補(bǔ)(mod時(shí)仍然是一位符號位,運(yùn)算時(shí)擴(kuò)充為兩-7-6=-7+(-6)=1 1

-3-5=-3+(-5)=-√1 1 1

1

未溢

00.結(jié)果的雙符號位不 溢

10,01,An

0101Bn

補(bǔ)碼加減運(yùn)算二、原碼加/減運(yùn)符號位和數(shù)值部分分開處僅對數(shù)值部分進(jìn)行加減運(yùn)符號位起判斷和控制作運(yùn)算規(guī)則比較兩數(shù)符號,對加法實(shí)行“同號求和,異號求差對減法實(shí)行“異號求和,同號求差” 求差:被加數(shù)(被減數(shù))加上加數(shù)(減數(shù))的補(bǔ)碼最高數(shù)值位產(chǎn)生進(jìn)位表明加法結(jié)果為正,所得數(shù)值位正差的符號情況下,符號位取被加數(shù)(被減數(shù))的符號情況下,符號位為被加數(shù)(被減數(shù))的符號取反三、移碼加/減運(yùn)+[x]移+[y]補(bǔ)=[x+y] (mod 1+[x]+[-y]補(bǔ)=[xy]移(mod2n+1移碼和補(bǔ)碼的數(shù)值位相 [x]移=2n+x(2n>x≥-2n)[x]移+[y]移=2n+x+2n+y移=2n+(2n+x+y)=2n+[x+移又:[y]補(bǔ)= 1++[x]移+[y]補(bǔ)=2n+x+ 1+=2n+1+[x+移+=[x+y] (mod 1+同理 [x]移+[-y]補(bǔ)=[x-y]為防止溢出, 符號位的階碼加法正 正規(guī)定:移碼的最高符號 恒用“0”參加運(yùn) 結(jié)果符號 上例:x= 求[x±y] 下移=01,011 [y]補(bǔ)=00,110 [y]補(bǔ)=11,010[x+y]移=[x]移+[y]補(bǔ)=01,011+00,110 (上溢[x-y]=[x]+[-y]=01,011+ (mod25,-3四、乘法運(yùn)分析筆算乘A=– B=A×B=–0.110

乘積的符號心算求×0.1011101100001100.1000111

符號位單獨(dú)處個(gè)位積一起相乘積的位數(shù)擴(kuò)大一筆算乘法改A×B=A×=0.1A+0.00A+0.001A=0.1A+0.00A+0.001(1×A=0.1A+0.01[0×A+0.1(1×A右移一

=0.1{1×A+0.1[0×A+0.1(1×A+=2-1{1×A+2-1[0×A+2-1(1×A+2-1(1×第一步被乘數(shù)A+ 第二 1,得新的部分 …第三步部分積+被乘 …第八 1,得結(jié) 改進(jìn)后的筆算乘法過程(豎式0.0000.110101=乘數(shù)為1,加被乘0.1100.0110.110110=乘數(shù)為1,加被乘數(shù)1.0010.1000.0001111=乘數(shù)000.1000.0100.1101111=乘數(shù)1乘數(shù)1.000110.1001111,得結(jié)小乘法運(yùn) 加和移位。n=4,加4次,移41形成新的部分積,同時(shí)乘數(shù)1(末位移丟),空出存放部分積的低位。被乘數(shù)只與部分積 相 原碼設(shè)[x]=[y]=

[x?y]=

y0).

… x*y*=

……yn

乘積的符號位單獨(dú)處理數(shù)值部分為絕對值相乘

x*?y*= =x*(y12-1+y22- …+yn2-=2-1(y1x*+2-1(y2x*+…2-1(ynx*+0)…)p0=

p1=2-……pn=2-1(y1x*+pn-例 已知x=– y= 求[x?y]解:數(shù)值部分的運(yùn)部分 乘 說邏輯邏輯

0.0000.1110.1110.0110.0000.0110.0010.1111.0000.1000.1111.0110.101

110=011=0101=1110=11011

部分p01,1,1,1,例3.7①乘積的符號位 y0= 0=②數(shù)值部分按絕對值x*?y*=0.1011011則[x?y]=1.1011011特 絕對值運(yùn)32加C64乘積寄存器右移寫使控制計(jì)數(shù)器時(shí)乘數(shù)寄存器被乘數(shù)寄存器移位和加受末原碼兩原碼 符號位和數(shù)值位部分分開運(yùn) 積是否加和如何加被乘數(shù)乘數(shù)yn-1新的部分02021212先1的被先1的被乘再4的被乘3?– – 乘數(shù)判斷位yn-標(biāo)志位00 2,2,Tj保持00 2,2,Tj保持10 2,2,Tj保持10 2, 置“101 2, 置“001 2, 置“011 2,2Tj保持11 2,2,Tj保持

+[–x*]

2補(bǔ)碼例 已知x=0.111111y=–0.111001求[x·y]解:數(shù)值000.00000000.11111000.11111

乘 00.11100

p0+x*,T0=000.00111補(bǔ) 001.11111 010.00110

1 00111 1

+2x*,T1= 000.10001111.00000111.10010補(bǔ) 111.11100 000.11111 000.11100

011 001 01100011 0 00011

–x*,T2=2+x*,T3=例3.8①乘積的符號位 y0= 1=x*?y*=0.11100000011則[x?y]1.11100000011特 絕對值的補(bǔ)碼運(yùn)用移位的次數(shù)判斷乘法算術(shù)移原碼一位 原碼兩位符號 操作 絕對 絕對值的補(bǔ)移移位次

邏輯右n

算術(shù)右(n22最多加法次 2思考n為奇數(shù)時(shí),原碼兩位最多(以小數(shù)為例設(shè)被乘數(shù)[x]補(bǔ)= [2-1 =x.xx

- n 算術(shù)移1[2-1(-0.110)]=[-0.0110]= 乘 [y]補(bǔ)=y=[y]

y為正時(shí)y0= …yn= …yn

y為負(fù)時(shí)y0

已知

補(bǔ)和

補(bǔ)求[x·x0.y1…yn–y0)]- - =[x(y12+y22+…- -

–y0x(y12+y22+… )–xy0]=[x]補(bǔ)(y12-1+y22-2+…+y2-n)+[– · 求[x·y]補(bǔ)是用[x]補(bǔ)乘以[y]補(bǔ)的數(shù)

y為正,不②Booth算法(被乘數(shù)、乘數(shù)符號任意–[x]補(bǔ)=+[–x]設(shè)[x]補(bǔ)=x0.x1x2…xn [y]補(bǔ)=y0.y1y2 –[x]補(bǔ)=+[–x]=[x]補(bǔ)(0.y1…ynx]·2-1=20–2-2-1=20–2-=補(bǔ)(y12+y22 +yn2)–[x]補(bǔ)·2-2=2-1–2-=[x](–y+y2-1+y2-2-2=2-1–2-… …=[x]補(bǔ)[–y0+(y1–y12-1)+(y22-1–y22- +(y2-(n-1)–y2-=[x][(y–y

–y +…+(y n+(0–y

- -(n- - - -=[x]補(bǔ) +…+(yn+1–yn)2y’12-1+…+y’n2-

附加③Booth算法遞推公[p0]補(bǔ)=-…[p1]補(bǔ)=2{(yn+1–yn)[x]補(bǔ)+[p0]補(bǔ) yn+1=…-[pn]補(bǔ)2{(y2–y1)[x]補(bǔ)+[pn-1]補(bǔ)00110101010操00110101010操1111如何實(shí) 例 知x= y=–0.1011求[x·y]解:0000011.11011.11011.11100.001

1.0101101

+[–x] +[x]

[x]=[y][–x]=算術(shù)00000移位0000011.11011.11011.11100.00100.00000.00011.110

1 10111 111111

+[–x] +[x] +[–x]

[x·y]11.110

111

最后一步不移Booth32減加C64乘積寄存器右移寫使控制計(jì)數(shù)器時(shí)乘數(shù)寄存器被乘數(shù)寄存器P、X、 均n+2移位和加受末兩位乘數(shù)Booth’s算法實(shí)middleof110end110當(dāng)前右邊操10減被乘11加0不操作01加被乘00加0不操作最初提出這種想法是因?yàn)樵贐ooth移位操作比加法更快補(bǔ)碼兩位乘(略乘數(shù)判斷位yn--[pi+1]補(bǔ)2[pi]-[pi+1]補(bǔ)=2{[pi]補(bǔ)+[x]補(bǔ)-[pi+1]補(bǔ)=2{[pi]補(bǔ)+[x]補(bǔ)-[pi+1]補(bǔ)=2pi]補(bǔ)+2[x]補(bǔ)-[pi+1]補(bǔ)=2pi]補(bǔ)+2[-x]補(bǔ)-[pi+1]補(bǔ)=2pi]補(bǔ)+[-x]補(bǔ)-[pi+1]補(bǔ)=2pi]補(bǔ)+[-x]補(bǔ)-[pi+1]補(bǔ)2[pi]六、快速乘快速乘法器的實(shí)–流水線方–硬件疊加方式(如:陣列乘法器陣列乘法–用一個(gè)實(shí)現(xiàn)特定功能的組合邏輯單元構(gòu)成一個(gè)陣乘法代替小數(shù)點(diǎn)原碼乘符號單獨(dú)處理補(bǔ)碼乘符號然形成原碼乘去掉符號位運(yùn)算即為無符號數(shù)乘不同的乘法運(yùn)算需有不同的七、原碼除分析筆算除x=–

y=0.110

商符單獨(dú)0.110

0.1011⌒0.0110 ⌒0.010010.00110 0.00010100.00001100.0000011

心算上上商位置x÷y0.110 商符心算求0.0000011減右移一位的除數(shù)上商位置不固

機(jī)器除符號位異或形|x||y|0|x||y|0“0”減除數(shù)在寄存器最末位原碼除法(以小數(shù)為例[x0]原=x0.x1x2…… [y0]原=y0.y1y2…… [x = x*y*=

……

商的符號位單獨(dú)處理x0數(shù)值部分為絕約 被除數(shù)不等0

除數(shù)不能0恢復(fù)余例

x=– y=–

求[xy原解原= [y]原=y原① y0= 1=

[y*]0.1101y*]②邏輯邏輯

被除數(shù)(余數(shù)0.1011.0011.1110.1100.1011.0111.0010.1001.0011.001

0.00000000

y*]余數(shù)為負(fù),上商0恢復(fù)余數(shù)+[y*]補(bǔ)1+[–y*]余數(shù)為正,上商1y*]被除數(shù)(余數(shù)0.0100.1011.0011.1100.110

0101011

余數(shù)為正,上商1y*]余數(shù)為負(fù),上商恢復(fù)余數(shù)+[y*]邏輯x∴[

0.1011.0101.0010.011x*=]原

0110110110

恢復(fù)后的1y*]余數(shù)為正,上商第一次上商判余數(shù)為正

4余數(shù)為

上商0,恢復(fù)不恢復(fù)余數(shù)法(加減交替法余數(shù) 上商

Ri+1=2Ri余數(shù) 上商“0”,Ri+ 恢復(fù)余Ri+1=2(Ri+y*)–y*=2Ri+上商Ri+1=2Ri–上商Ri+1=2Ri+加減交例

x y 求[x]01011.001

0.000

y*]

第一

[x]1.111

余數(shù)為負(fù),上商

[y]

=1.1100.110 0.100

+[y*]0 余數(shù)為正,上商

[y*][–y*] 1.001 0 y 1.001y移0.0100.1011.0011.1101.1010.1100.011

01010110110110

+[y*]余數(shù)為正,上商1y*]余數(shù)為負(fù),上商1+[y*]余數(shù)為正,上商例3.11x0⊕y0=1⊕1=x*/y*=∴[x*/y*]特 上商n+1用移位的次數(shù)判斷除法原碼加減交替除法硬件定點(diǎn)整數(shù)相除:在除數(shù) 添n個(gè)余數(shù)寄存器R:初始 部分為高32位被除數(shù);結(jié)束時(shí)是余數(shù)余數(shù)/商寄存器Q:初始時(shí)為低32位被除數(shù);結(jié)束時(shí)是32位商補(bǔ)碼除商值的確①比較被除數(shù)和除數(shù)絕對值的xy同號用減x=y=x=–y=–

[x][y][x][y]

[x]+[–y]補(bǔ)=[Ri]補(bǔ)[x]+[–y]=[Ri]補(bǔ)

xy異號用加x=y=–x=–y=

[x][y]

[x][x]+[y]

+[y]1.1101[Ri]補(bǔ)+[y]1.1101[Ri]補(bǔ)[Ri]補(bǔ)[Ri]補(bǔ)小[x]補(bǔ)和[y]求[Ri][Ri][y]同異[x]補(bǔ)y][x]補(bǔ)y]同號,“夠減異號,“夠減②

末位恒置“1[x]補(bǔ)與[y]補(bǔ)同 0 原 按原碼上 “夠減”上正[y]補(bǔ)

反 按反碼上

“不夠減”上“夠減”上負(fù) “不夠減”上[x]補(bǔ)與[y]商[Ri]補(bǔ)與[y]商值正夠減(同號不夠減(異號 原碼上0負(fù)夠減(異號不夠減(同號0反碼上1[R[Ri]補(bǔ)與[y]商10商符的除法過程中自然形 [x]補(bǔ)–[y] 比較[Ri]補(bǔ)和[y]同號(夠異號(不夠

原碼正補(bǔ)和[y]補(bǔ)異 [x]補(bǔ)+[y] 比較[Ri]補(bǔ)和[y]異號(夠反碼上同號(不夠負(fù) 加減交[Ri]補(bǔ)[y]商新余12[Ri][–y]02[Ri][y]例 設(shè)x=– y=y求x]并還原成真y解:[x]補(bǔ)= [y]補(bǔ)= [–y]補(bǔ)=1.0100.1100.0010.0101.001邏 1.011左 0.1110.1101.101

0.000111110

1+[–y]異號上1+[y]異號上 x1.011101.01110 0.110+[y]0.001100 同號上0.0111001 1則

]補(bǔ)=yx=–y置小補(bǔ)碼除法共上商n+1次(末位恒置邏輯左)第一次邏輯左nn第一次商可判溢精度誤差最大2-整數(shù)被除數(shù)經(jīng)符號擴(kuò)展后成2n一、浮點(diǎn)加xy對xy

x=S·

y=S·

jx 已對x向y看 1,Δj=jx–jy

> jx>

yx

1,jyxy看齊

1,<

yx

1,j對階原小階向大階

為什么例如x= y=x+y[x]=00,01;對

[y]00,11

[Δj]補(bǔ)=[jx]補(bǔ)–[jy] =00, 11,11,階差為負(fù)(

∴ jx+尾數(shù)求

[Sx] [Sy]

=補(bǔ)=補(bǔ)

對階后的[Sx]補(bǔ)[x+y]00,1111規(guī)格規(guī)格化數(shù)的2r= 1≤|S|2規(guī)格化數(shù)的

規(guī)格化形

S<

規(guī)格化形真 0.1××原 0.1××

真 –0.1××原 0.1××× 反 0.1×× 反

1.0××1.0××原碼不論正數(shù)、負(fù)數(shù),第一數(shù)位為補(bǔ)碼符號位和1數(shù)位S=– =–0.100…2[S]原=1.10 1.[1.

0 …0 ∴[–1 不是規(guī)格 S=–[S]補(bǔ)=1.00 ∴[–1]補(bǔ)是規(guī)格化的

機(jī)器判別方尾數(shù)1,階碼1,直到數(shù)符和第一數(shù)位不同為止上例[x+y]=00,11;111001左規(guī)后[x+y]補(bǔ)00,10;11∴x+y=(–右尾數(shù)溢出(>1) 1,階碼加1例 x=0.1101× y=0.1011×x+y(除階符、數(shù)符外,階碼取3位,尾數(shù)取6 [x]補(bǔ)=00,010;00.[y]00,001;00[Δj]jx]jy]

=00,+11,100,階差

∴ y補(bǔ)'00,010;00.[Sx]補(bǔ)00.+[Sy]補(bǔ)'00.01.

對階后的[Sy]補(bǔ)尾數(shù)溢出需[x+y]=00,010;01.右規(guī)[x+y]=00,01100.∴x+y=0.舍過程中,可能出現(xiàn)尾數(shù)末位丟失0101尾數(shù)為原碼時(shí),多余位的 為1,1否則,舍 ,其它情況“1IEEE754舍入模式 例 x=(–5)×2- y=7)×2 x–y(除階符、數(shù)符外,階碼取3位,尾數(shù)取6)x0.101000)×2-[x]11,011;11.

y=(0.111000)×2-100[y]11,100;00.111000[Δj]jx]jy]

=11,+00,11,

∴Sx→ jx+[x]補(bǔ)11,100;11.②[Sx]補(bǔ)′=11.+[–Sy]11[x+y]11100;10.右規(guī)[x+y]11101;11∴x–y=(–0.100110)×2-=(–19)×2-溢出判設(shè)階符272位,尾數(shù)n在數(shù)軸上的表示為

按機(jī)器零上 下 上對 對階01,

負(fù)浮點(diǎn)最小

正浮點(diǎn)0最大正

階××·· ;11.00

最小

2127×(1–2-最大負(fù)

;00.100…2-128×2- ;11.011–2-128×(2-1+2-二、浮點(diǎn)乘xx=S·xy乘y

y=

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論