計算機組成基礎書_第1頁
計算機組成基礎書_第2頁
計算機組成基礎書_第3頁
計算機組成基礎書_第4頁
計算機組成基礎書_第5頁
已閱讀5頁,還剩71頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

計算機組成基礎書1第1頁,共76頁,2023年,2月20日,星期二數值的機器運算3.1定點數的加、減法運算和加、減法電路的實現3.2定點數的乘運算3.3

邏輯運算3.4定點運算器的基本結構與工作原理2第2頁,共76頁,2023年,2月20日,星期二機器數的運算方法機器數的運算方法是設計運算器的依據,要搞清楚運算器的原理,首先要搞清楚機器數的運算方法。因此說,計算機的運算器是根據人們約定的機器數運算法則來設計的。目的是以最簡單的方法完成機器數的運算,同時使計算機的運算器結構最簡單。3第3頁,共76頁,2023年,2月20日,星期二3.1定點數的加、減法運算

和加、減法電路的實現3.1.1定點數的加減運算3.1.2從半加器到算術邏輯部件ALU4第4頁,共76頁,2023年,2月20日,星期二3.1.1定點數的加減運算加法規(guī)則:0+1=1+0=11+1=10(1為向高位的進位)0+0=0減法規(guī)則0-1=1(向高位借位1)1-0=1 1-1=00×0=0乘法規(guī)則:0×1=1×0=01×1=15第5頁,共76頁,2023年,2月20日,星期二原碼運算原碼進行加法運算時,如兩數的符號相異,實際要做減法運算。而減法運算對計算機而言要復雜的多。假設:X=+10101,Y=-11010。計算X+Y一般的運算步驟是:首先要比較X和Y的絕對值大小。即:本題︱X︱﹤︱Y︱

其次作減法︱X︱-

︱Y︱

結果的符號應與絕對值大的那個數相同。所以結果是:Z=-001016第6頁,共76頁,2023年,2月20日,星期二這就是說,用原碼進行異號數相加時,要有3步工作,即:比較兩個數的絕對值大小絕對值大的數的絕對值減去絕對值小的數的絕對值將結果賦予絕對值大的那個數的符號如上所述,用原碼進行加法運算是很麻煩的。如果用補碼(數值連同符號)運算,可以得出同樣結果,且運算過程變得十分簡單。7第7頁,共76頁,2023年,2月20日,星期二補碼運算規(guī)則:補碼運算時,其符號位與數值部分一起參加運算。符號運算后如有進位出現,將進位舍去不要。補碼運算性質:〔X+Y〕補=〔X〕補+〔Y〕補

〔X-Y〕補=〔X〕補+〔-Y〕補例:已知:X=11010,Y=-10101,求X+Y=?解:

〔X〕補=011010,

〔Y〕補=101011。

〔X〕補=011010〔Y〕補=101011〔X+Y〕補

=1000101符號進位舍掉∴X+Y=+001018第8頁,共76頁,2023年,2月20日,星期二以原碼運算中的例題為例:X=+10101,

Y=-11010。計算X+Y〔X〕補

=010101,〔Y〕補=100110〔X〕補

=010101,〔X+Y〕補=111011〔Y〕補=100110結果為負,數值取補。

〔X+Y〕補=111011∴X+Y=-00101

結果與前面計算結果完全一樣,而計算機的運算過程簡化了。同時計算機的結構也大大簡化了。9第9頁,共76頁,2023年,2月20日,星期二例如:已知X=-0.1101,Y=-0.0001求X+Y=?

〔X〕補=1.0011+〔Y〕補=1.1111

舍去不要11.0010∴X+Y=0.1100

結果符號為負,依然不是最終結果,須將結果的數值部分再補一次,恢復為最終結果。例如:已知X=0.1101Y=-0.0001求X+Y=?

〔X〕補=0.1101+〔Y〕補=1.1111

舍去不要10.1100∴X+Y=0.1100

10第10頁,共76頁,2023年,2月20日,星期二補碼減法引入補碼以后,計算機中的減法運算都可以統(tǒng)一轉化為補碼的加法運算,其符號位也可正常參與運算。即:

〔X補-Y〕補

=〔X〕補+〔-Y〕補如十進制“36”與“45”的差可轉化成:“36”與“-45”的和。求〔-Y〕補的方法:〔Y〕補逐位取反,末位加“1”

11第11頁,共76頁,2023年,2月20日,星期二(+36)補=0100100(-45)補=(45)補每位取反+1=(0101101)反+1=1010010+1=1010011

(+36)補=0100100+(-45)補=1010011

(1110111)補

=(1110110)反(-9)10

(10001001)原12第12頁,共76頁,2023年,2月20日,星期二例:設X=+0.11001,Y=+0.10001,求X-Y解:〔X〕補=0.11001,〔Y〕補=0.10001〔-Y〕補=〔Y〕補每位取反+1=1.01110+1=1.01111〔X〕補=0.11001+〔-Y〕補=1.01111〔X補-Y〕補

=10.01000舍去不要∴X-Y=+0.0100013第13頁,共76頁,2023年,2月20日,星期二練習:已知:X=+0.01001,Y=-0.10001求X-Y14第14頁,共76頁,2023年,2月20日,星期二溢出概念與檢測方法例題:有X=+0.1011,Y=+0.1001求X+Y〔X〕補=0.1011,〔Y〕補

=0.1001〔X〕補=0.1011+〔Y〕補=0.1001〔X+Y〕補

=1.0100

兩個正數相加結果為負,顯然是錯誤的。例題:有X=-10011,Y=-11001求X+Y〔X〕補=101101+〔Y〕補=100111〔X+Y〕補

=1010100舍去15第15頁,共76頁,2023年,2月20日,星期二

之所以發(fā)生錯誤,是因為運算結果產生了“溢出”。兩個正數相加,結果大于機器所能表示的最大正數,稱為“上溢”。而兩個負數相加,結果小于機器所表示的最小負數,稱為“下溢”。在定點小數機器中,數的表示范圍︱X︱

<1,在運算過程中如出現大于1的現象,就稱為溢出。為了判斷溢出是否發(fā)生,多采用雙符號位法,稱為“變形補碼”或“模4補碼”。從而使前面介紹的模2

補碼所能表示數的范圍擴大一倍。16第16頁,共76頁,2023年,2月20日,星期二規(guī)則:符號位00表示正數,11表示負數。結果的符號位為01時,稱為上溢;為10時,稱為下溢。例如:已知X=+0.1100,Y=+0.1000 求X+Y〔X〕補

=001100,〔X〕補

=001000〔X〕補=001100+〔Y〕補=001000

010100兩個符號位出現“01”,表示出現溢出,為上溢出。17第17頁,共76頁,2023年,2月20日,星期二例如:已知X=-0.1100,Y=-0.1000求X+Y〔X〕補

=11.0100,〔Y〕補=11.1000〔X〕補=11.0100+〔Y〕補=11.1000

10.1100兩個符號位出現“10”,表示結果溢出,為下溢出。從以上兩例可以看出,溢出都是發(fā)生在同符號兩數相加時,而兩個符號相異數相加不會發(fā)生溢出。

18第18頁,共76頁,2023年,2月20日,星期二例:已知X=0.11011,Y=-0.11111,用變形補碼計算X-Y=?,并判斷是否益出?!瞂〕補變=00.11011,〔Y〕原=1.11111,〔Y〕反

=1.00000〔Y〕補變=11.00001,〔-Y〕補變=00.11111〔X〕補變=00.11011〔-Y〕補變=00.11111〔X〕補變+〔-Y〕補變

=01.11010結果為正益出。注意:益出時,兩個符號中左邊符號仍然有正負含義,但運算結果錯誤。19第19頁,共76頁,2023年,2月20日,星期二例:已知:X=0.10111,Y=0.11011,用變形補碼計算X-Y=?,并判斷是否益出。解:〔X〕補變=00.10111〔Y〕補變=00.11011,〔-Y〕補變=11.00101〔X〕補變=00.10111〔-Y〕補變=11.00101〔X〕補變+〔-Y〕補變

=11.11100

結果無益出,X+Y=-0.0010020第20頁,共76頁,2023年,2月20日,星期二練習:已知:X=0.10110,Y=-0.10011計算:X+Y,X-Y,并判斷是否溢出。21第21頁,共76頁,2023年,2月20日,星期二解:〔X〕補變=00.10110,〔Y〕補變=11.01101〔X〕補變=00.10110+〔Y〕補變=11.01101=100.00011無溢出

X+Y=0.00011〔-Y〕補變=00.10011〔X〕補變=00.10110-〔Y〕補變=00.10011=01.01001溢出22第22頁,共76頁,2023年,2月20日,星期二練習:

設:X=-10011,Y=-11001

求:X-Y

設:X=-11001,Y=-10011

求:X-Y23第23頁,共76頁,2023年,2月20日,星期二練習:用變形補碼的加、減法計算下列各式,并指出運算結果是否益出。

X=0.1001,Y=-0.0110,求X+YX=0.1100,Y=-0.0110,求X-YX=-0.1101,Y=-0.1101,求X+YX=-0.1101,Y=-0.1111,求X-Y24第24頁,共76頁,2023年,2月20日,星期二3.1.2從半加器到算術邏輯部件ALU算術邏輯部件ALU(ArithmeticLogicUnit)是運算器的核心,用來實現數據加工和處理所必需的各種整型數據和邏輯型數據的算術運算和邏輯運算功能。算術運算包括加、減、乘、除運算,但不論是那種運算都離不開加法運算,因此加法器是ALU中最基本的部件。25第25頁,共76頁,2023年,2月20日,星期二半加器二進制加法法則是:

0+0=00+1=11+0=11+1=0(進位為1)對2個1位的2進制數Xi與Yi的加法運算,其輸出與輸入關系可用下列真值表表示,見下表。26第26頁,共76頁,2023年,2月20日,星期二

27第27頁,共76頁,2023年,2月20日,星期二1.半加器據此真值表可知,和數Si同被加數Xi、加數Yi的關系可用一個異或門表示,而向高位的進位值Ci同Xi、Yi的關系可用一個與門表示,因此可畫出相應的邏輯電路如下圖所示。這種只考慮被加數和加數,不考慮低位向本位的進位值的加法器稱為半加器。28第28頁,共76頁,2023年,2月20日,星期二

29第29頁,共76頁,2023年,2月20日,星期二2.全加器如果考慮低位向本位的進位Ci-1,則2個1位二進制數Xi與Yi的加法運算,其輸出與輸入的關系可用下表所示的真值表表示。這種考慮低位向本位的進位值的加法器稱為全加器,在多位2進制數進行加法運算時,除最低位外,其余各位都必須采用全加器電路。

30第30頁,共76頁,2023年,2月20日,星期二全加器真值表31第31頁,共76頁,2023年,2月20日,星期二全加器的邏輯電路

32第32頁,共76頁,2023年,2月20日,星期二算術邏輯部件ALU算術邏輯部件ALU除了完成加、減法等算術運算外,還必須具有邏輯運算功能,可采用如下圖所示的電路實現多功能算術/邏輯部件。33第33頁,共76頁,2023年,2月20日,星期二4位二進制算術邏輯部件7418134第34頁,共76頁,2023年,2月20日,星期二3.2定點數的乘法運算

3.2.1定點數的乘法運算3.2.2了解定點數的除法運算35第35頁,共76頁,2023年,2月20日,星期二定點乘法運算原碼一位乘法運算完成兩個原碼表示的數相乘時,乘積的符號由兩數的符號位邏輯加(異或)所得,數值部分則是兩個正數相乘之積。設:被乘數=〔X〕原

=xf·x1x2…xn

乘數=〔Y〕原

=yf·y1y2…yn

乘積=(xfyf)·(xf·x1x2…xn)(yf·y1y2…yn)數值部分的運算方法與普通的十進制小數乘法相似(去掉符號,絕對值相乘)。不過二進制乘法比十進制更簡單一些。36第36頁,共76頁,2023年,2月20日,星期二設X=0.1101,Y=0.1011,先用習慣方法求解。

0.1101

×0.1011110111010000

+11010.10001111乘數的兩種可能,決定著部分積的兩種可能。即:乘數位部分積001被乘數本身37第37頁,共76頁,2023年,2月20日,星期二習慣的手工算法對機器并不完全適用。原因是:兩個n位數相乘,乘積可能為2n位,用這種乘數和移位配合相加的方法,則需要2n位長的加法器,而機器通常只有n位字長,且機器只有兩個操作數相加的加法器。計算機中實現乘法運算的方法是移位相加,采用部分積右移的方法。即:根據乘數每個數值是“0”還是“1”(從最低位開始),決定部分積是加上被乘數,還是“0”;得到的新部分積右移一位,在重復上述動作,直到乘法作完為止。38第38頁,共76頁,2023年,2月20日,星期二積存器B:存放被乘數X;計數器I:控制逐位相乘的次數積存器C:存放乘數Y(具有移位功能);加法器F:進行部分積和被乘數相加。39第39頁,共76頁,2023年,2月20日,星期二

例:X=0.1101(被),Y=0.1011(乘),求X×Y

部分積乘數判別位說明

0.0000

101

1

1

Y0=1,+X

+0.11010.11010.01101

10

1

1

整體右移,Y1=1,+X

+0.11011.00110.1001111

0

0

整體右移,Y2=0,+0

+0.00000.10010.0100111

11

整體右移,Y3=1,+X+0.11011.0001

0.1000

1111

整體右移,得到X×Y

40第40頁,共76頁,2023年,2月20日,星期二例:X=10.101,Y=101,求X×Y

部分積乘數判別位說明

00000

101

1

Y0=1,+X+10.10110.101010.101

10

0

整體右移,Y1=0,+0+00000010.100010.101

11

整體右移,Y2=1,+X+10.1011101.0

1101.

001

整體右移,得X×Y

在本例中,部分積右移時,小數點跟隨一起移動。

41第41頁,共76頁,2023年,2月20日,星期二例:已知X=0.1011,Y=-0.1010,用原碼一位乘法。求

X×Y的值。要求寫出計算機中的運算步驟。解:乘積的符號位=01=1,尾數絕對值相乘。部分積乘數判別位說明

0.0000

10100Y0=0,+0

+0.00000.00000.00000

10

11

整體右移,Y1=1,+X

+0.10110.10110.010110100整體右移,Y2=0,+0

+0.00000.01010.0010110

11

整體右移,Y3=1,+X+0.10110.1101

0.0110

1100

整體右移,得到X×Y

42第42頁,共76頁,2023年,2月20日,星期二練習:用原碼一位乘法計算X=-0.1010,Y=0.1101的積X?Y43第43頁,共76頁,2023年,2月20日,星期二原碼兩位乘法原碼兩位乘法,可使乘法運算步驟減少一半,從而提高運算速度。而增加的判斷電路,對于邏輯電路而言并不復雜。2位乘法判斷位是兩位,即Y1YN-1,共有4種可能。判別位Y1YN-1操作00只對上次部分積右移2位01上次部分積加被乘數,然后右移2位10上次部分積加被乘數的2倍(即左移1位),然后右移2位11上次部分積加被乘數的3倍,右移2位44第44頁,共76頁,2023年,2月20日,星期二例:X=101011,Y=001001,求X×Y以X為被乘數,Y為乘數,其判別位:Y1Y0=01,Y2Y3=10,Y4Y5=00

部分積判別位操作說明

000000001001

部分積加X,右移2位+X1010111010111010110010

部分積加2X,再右移2位+2X1010110110000011000001100

上次部分積右移2位

11000001145第45頁,共76頁,2023年,2月20日,星期二3.補碼乘法由于目前絕大多數計算機都采用補碼表示法來進行加減運算。因此在采用補碼加誠運算的計算機中也常采用補碼乘法。在補碼乘法中被乘數為X和乘數為Y釆用補碼表示—[X]補和[Y]補,運算結果Z也用補碼表示—[Z]補,運算時符號位Xs和Ys參與運算。46第46頁,共76頁,2023年,2月20日,星期二3.3

邏輯運算3.3.1“與”、“或”和“非”運算3.3.2“異或”運算47第47頁,共76頁,2023年,2月20日,星期二邏輯運算用F表示電燈是“亮”還是“滅”這一命題,F=“1”表示燈“亮”,F=“0”表示燈“滅”,這里的“0”與“1”就有了新的含義——邏輯含義,它表示一種命題的兩種相應的結果。如果“1”表示“肯定”,則“0”就表示“否定”。兩值判據在計算機中是很容易實現的,可以用電平的“高”“低”,信號的“有”“無”,晶體管的“通”“斷”來表示邏輯命題的兩種相反結果“0”和“1”。48第48頁,共76頁,2023年,2月20日,星期二3.3.1.“與”、“或”和“非”運算有3種最基本的邏輯運算,即“與”邏輯、“或”邏輯和“非”邏輯。1.邏輯“與”有一電燈F同開關A、B及電池串接如下圖所示,規(guī)定A、B為“1”表示開關閉合,A、B為“0”表示開關“斷開”;F為“1”表示燈“亮”,為“0”表示燈“滅”。當A和B取不同值(“0”、“1”)的組合時,F的求值(“0”、“1”)如表3-5所示,該表稱為邏輯關系的“真值表”。49第49頁,共76頁,2023年,2月20日,星期二邏輯“與”

50第50頁,共76頁,2023年,2月20日,星期二當A與B同時為“1”時,F才為“1”,F和A、B之間的關系就稱為“與”邏輯關系,“邏輯與”又稱為“邏輯乘”,其邏輯表達式為:F=A×B=A·B=A∧B式中“×”“·”和“∧”為邏輯與的符號,A、B稱為邏輯變量,F稱為邏輯函數,注意A、B、F在邏輯運算中只有“0”和“1”兩種取值。51第51頁,共76頁,2023年,2月20日,星期二2.邏輯“或”有一電燈F同兩個并聯開關A、B相串聯,如下圖所示。A、B、F的取值約定同“與”邏輯,同樣可以列出真值表,見表3—6。由真值表可見,當A或B為“1”時(或同時為“1”時)F為“1”。F和A與B之間的這種關系為“或”邏輯關系,“邏輯或”又稱“邏輯加”,其邏輯表達式為F=A+B=A∨B。式中“+”和“∨”為邏輯或的符號。52第52頁,共76頁,2023年,2月20日,星期二53第53頁,共76頁,2023年,2月20日,星期二3.邏輯“非”一個單刀雙擲開關同A、B兩個燈泡連接如下圖所示。A、B的取值為“1”表示燈“亮”,為“0”表示燈“滅”。同樣可列出其真值表,見下表,由表見,A為“0”,B為“1”,A為“1”,B為“0”,A與B是相反相成的關系,稱為“邏輯非”關系,又稱為“邏輯反”,其邏輯表達式為:54第54頁,共76頁,2023年,2月20日,星期二55第55頁,共76頁,2023年,2月20日,星期二3.3.2.“異或”運算除上述三種基本的邏輯運算外,在計算機中還常用另一種邏輯運算—異或運算。有一邏輯函數F=f(A,B),其真值表如下表所示。由真值表可知,只有當A=‘0’,B=“1”(即A、B相異)或A=“1”、B=“0”時,F才為“1”,F同A、B間的這種關系稱為“異或”關系,其邏輯表達式:56第56頁,共76頁,2023年,2月20日,星期二

“異或”運算執(zhí)行的是兩個邏輯變量之間“不相等”的邏輯測試,又稱為“按位加”。

57第57頁,共76頁,2023年,2月20日,星期二常見的邏輯門的符號表示

58第58頁,共76頁,2023年,2月20日,星期二3.4浮點數運算和浮點數運算器的實現3.4.1.二進制數的浮點表示法3.4.2二進制數的浮點運算3.4.3浮點運算器的基本結構59第59頁,共76頁,2023年,2月20日,星期二定點數和浮點數所謂定點數和浮點數,是指在計算機中一個數的小數點的位置是固定的,還是浮動的。小數點位置固定不變,則叫定點數,否則叫浮點數。采用定點數表示法的計算機叫定點計算機。采用浮點數表示法的計算機叫浮點計算機。浮點計算機表示數的范圍比定點計算機大得多,使用方便,運算速度快。但比定點計算機結構復雜,造價也高。目前,大、中型計算機,高檔微機都采用浮點表示法,或具有定點和浮點兩種表示法。60第60頁,共76頁,2023年,2月20日,星期二定點數表示法定點數表示法通常將小數點規(guī)定在數值部分的最高位之前,將數表示成純小數?;驅⑿迭c規(guī)定在數值部分的最后面,將數表示成整數。純小數表示法:整數表示法:圖中所示小數點“·”在機器中實際上是不表示出來的,是事先約定好固定在那里的。機器中一旦確定了小數點的位置,在計算機系統(tǒng)中就不再改變。符號數值部分.符號

.數值部分61第61頁,共76頁,2023年,2月20日,星期二浮點數表示法問題的提出早期采用定點表示法,存在以下不足:

編程困難:程序設計人員要做大量的數據規(guī)格化工作;

數據的表示范圍小;

如,8位定點小數的表示范圍為[1/128~127/128];

而8位浮點小數的表示范圍為[1/256~7.5];

數據存貯的空間利用率低。為此,引入了浮點數表示法。62第62頁,共76頁,2023年,2月20日,星期二浮點數表示法是指在數的表示中,其小數點的位置是浮動的。任一二進制數N可表示為:

N=2E·M式中,M為數N的尾數;E為指數,是數N的階碼,是一個二進制整數。因此,一個浮點數分為階碼和尾數兩部分。浮點數的表示方法:Ef(1位)E(m位)S(1位)M(n位)Ef:階符

、S:尾符。63第63頁,共76頁,2023年,2月20日,星期二不同字長的機器,采用浮點表示法時,要事先對上述4部分所占二進制位數加以約定,機器才可以自動識別。階碼一般用移碼表示,通常用整數形式表示。階碼指明小數點在數據中的位置,因而決定了浮點數的表示范圍。尾數一般用補碼表示,且應表示成規(guī)格化的純小數,即︱M︱

≤0.5。它決定了浮點數的表示精度。如:

111001.1101=

0.1110011101×211064第64頁,共76頁,2023年,2月20日,星期二例如:X=+23.2510,用浮點規(guī)格化表示法表示其原碼形式。(23.25)10=(10111.01)2,機器數原碼形式為:010111.01

用規(guī)格化浮點表示為:2+101×0.1011101

在機器中表示為:01010101110165第65頁,共76頁,2023年,2月20日,星期二例:浮點數X=2-11×0.11010的原碼、反碼和補碼是:原碼1011011010反碼1100011010補碼1101011010例:浮點數X=-2-11×0.11010的原碼、反碼和補碼是:原碼1011111010反碼1100100101補碼110110011066第66頁,共76頁,2023年,2月20日,星期二

IEEE754標準浮點表示法在IEE754浮點數標準中,定義的浮點數的格式如下圖所示。其中浮點數編碼有32位、64位和80位三種格式,分別稱為短實數、長實數和臨時實數,短實數和長實數又分別稱為單精度數和雙精度數。

S:尾符67第67頁,共76頁,2023年,2月20日,星期二浮點數符號位階碼尾數總位數短實數長實數臨時實數11181125235264326480短實數、長實數和臨時實數各部分具體位數如下表短實數示例:68第68頁,共76頁,2023年,2月20日,星期二

Intel系列的協處理器支持以上3種形式的浮點數的存儲方法:短型浮點數(32位)、長型浮點數(64位)和臨時浮點數(80位)。這些浮點數的數據格式都符合IEEE-754標準。注意:尾數是帶有一個隱含位的第2

溫馨提示

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

評論

0/150

提交評論