計算機系統(tǒng)結(jié)構(gòu)第二章第一部分_第1頁
計算機系統(tǒng)結(jié)構(gòu)第二章第一部分_第2頁
計算機系統(tǒng)結(jié)構(gòu)第二章第一部分_第3頁
計算機系統(tǒng)結(jié)構(gòu)第二章第一部分_第4頁
計算機系統(tǒng)結(jié)構(gòu)第二章第一部分_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第二章 指令系統(tǒng) 指令系統(tǒng)是計算機系統(tǒng)結(jié)構(gòu)的主要組成部分 指令系統(tǒng)是軟件與硬件分界面的一個主要標志 指令系統(tǒng)軟件與硬件之間互相溝通的橋梁 指令系統(tǒng)與軟件之間的語義差距越來越大21 數(shù)據(jù)表示22 尋址技術(shù)23 指令格式的優(yōu)化設(shè)計24 指令系統(tǒng)的功能設(shè)計25 RISC指令系統(tǒng)2.1 數(shù)據(jù)表示 新的研究成果,如浮點數(shù)基值的選擇 新的數(shù)據(jù)表示方法,如自定義數(shù)據(jù)表示211 數(shù)據(jù)表示與數(shù)據(jù)類型212 浮點數(shù)的設(shè)計方法213 自定義數(shù)據(jù)表示2.1.1 數(shù)據(jù)表示與數(shù)據(jù)類型 數(shù)據(jù)的類型:文件、圖、表、樹、陣列、隊列、鏈表、棧、向量、串、實數(shù)、整數(shù)、布爾數(shù)、字符 數(shù)據(jù)表示的定義:數(shù)據(jù)表示研究的是計算機硬件能夠直接

2、識別,可以被指令系統(tǒng)直接調(diào)用的那些數(shù)據(jù)類型。例如:定點、邏輯、浮點、十進制、字符、字符串、堆棧和向量 確定哪些數(shù)據(jù)類型用數(shù)據(jù)表示實現(xiàn),是軟件與硬件的取舍問題 確定數(shù)據(jù)表示的原則:一是縮短程序的運行時間,二是減少CPU與主存儲器之間的通信量,三是這種數(shù)據(jù)表示的通用性和利用率。例2.1:實現(xiàn)AAB,A和B均為200200的矩陣。分析向量指令的作用解:如果在沒有向量數(shù)據(jù)表示的計算機系統(tǒng)上實現(xiàn),一般需要6條指令,其中有4條指令要循環(huán)4萬次。因此,CPU與主存儲器之間的通信量: 取指令2440,000條, 讀或?qū)憯?shù)據(jù)340,000個, 共要訪問主存儲器740,000次以上如果有向量數(shù)據(jù)表示,只需要一條指

3、令 減少訪問主存(取指令)次數(shù):440,000次縮短程序執(zhí)行時間一倍以上 數(shù)據(jù)表示在不斷擴大,如字符串、向量、堆棧、圖、表 用軟件和硬件相結(jié)合的方法實現(xiàn)新的數(shù)據(jù)表示例如:用字節(jié)編址和字節(jié)運算指令來支持字符串數(shù)據(jù)表示 用變址尋址方式來支持向量數(shù)據(jù)表示2.1.2 浮點數(shù)的設(shè)計方法1、浮點數(shù)的表示方式 一個浮點數(shù)N可以用如下方式表示:需要有6個參數(shù)來定義。兩個數(shù)值: m:尾數(shù)的值,包括尾數(shù)的碼制(原碼或補碼)和數(shù)制(小數(shù)或整數(shù)) e:階碼的值,移碼(偏碼、增碼、譯碼、余碼等)或補碼,整數(shù)兩個基值: rm:尾數(shù)的基值,2進制、4進制、8進制、16進制和10進制等 re:階碼的基值,通常為2兩個字長:

4、p:尾數(shù)長度,當rm16時,每4個二進制位表示一位尾數(shù) q:階碼長度,階碼部分的二進制位數(shù) p和q均不包括符號位 浮點數(shù)的存儲式 1位 1位 q位 p位mfefem注:mf為尾數(shù)的符號位,ef為階碼的符號位,e為階碼的值,m為尾數(shù)的值。2、浮點數(shù)的表數(shù)范圍 尾數(shù)為原碼 尾數(shù)用原碼、純小數(shù),階碼用移碼、整數(shù)時,規(guī)格化浮點數(shù)N的表數(shù)范圍: 尾數(shù)為補碼尾數(shù)用補碼表示時,正數(shù)區(qū)間的表數(shù)范圍與尾數(shù)采用原碼時完全相同,而負數(shù)區(qū)間的表數(shù)范圍為: 浮點數(shù)在數(shù)軸上的分布情況 上溢 下溢(浮點零) 上溢 -Nmin 負數(shù)區(qū) -Nmax 0 Nmin 正數(shù)區(qū) Nmax例2.2:設(shè)p23,q7,rmre2,尾數(shù)用原碼

5、、純小數(shù)表示,階碼用移碼、整數(shù)表示,求規(guī)格化浮點數(shù)N的表數(shù)范圍。解:規(guī)格化浮點數(shù)N的表數(shù)范圍是:即:例2.3:尾數(shù)用補碼、純小數(shù)表示,階碼用移碼、整數(shù)表示,p6,q6,rm16,re2,求規(guī)格化浮點數(shù)N的表數(shù)范圍。解: 規(guī)格化浮點數(shù)N在正數(shù)區(qū)間的表數(shù)范圍是: 在負數(shù)區(qū)間的表數(shù)范圍是:3、浮點數(shù)的表數(shù)精度(誤差) 產(chǎn)生誤差的根本原因是浮點數(shù)的不連續(xù)性 誤差產(chǎn)生的直接原因有兩個: 一是兩個浮點數(shù)都在浮點集內(nèi),而運算結(jié)果卻可能不在這個浮點集內(nèi), 二是數(shù)據(jù)從十進制轉(zhuǎn)化為2、4、8、16進制,產(chǎn)生誤差。 規(guī)格化尾數(shù)的表數(shù)精度為:最后1個有效位的可信度為一半,當rm2時,有:4、浮點數(shù)的表數(shù)效率 浮點數(shù)是

6、一種冗余數(shù)制(Redundat Number System) 浮點數(shù)的表數(shù)效率定義為: 簡化表示: 當尾數(shù)基值為2時,浮點數(shù)的表數(shù)效率為: 浮點數(shù)的表數(shù)效率隨rm增大 當尾數(shù)基值rm16時,浮點數(shù)的表數(shù)效率為: 尾數(shù)基值rm16與rm2相比,浮點數(shù)的表數(shù)效率提高了:4、浮點數(shù)尾數(shù)基值的選擇 在表示浮點數(shù)的6個參數(shù)中,只有尾數(shù)基值rm、尾數(shù)長度p和階碼長度q與表數(shù)范圍、表數(shù)精度和表數(shù)效率有關(guān) 在字長確定的情況下,如何選擇尾數(shù)基值rm,使表數(shù)范圍最大、表數(shù)精度和表數(shù)效率最高;假設(shè)有兩種表示方式F1和F2,它們二進制字長相同,尾數(shù)都用原碼或補碼、小數(shù)表示,階碼都用移碼、整數(shù)表示,階碼的基均為2,尾數(shù)

7、的基不同。浮點數(shù)表示方式F1:尾數(shù)基值rm12,尾數(shù)長度p1,階碼長度q1, 二進制字長:L1p1q12。浮點數(shù)表示方式F2:尾數(shù)基值rm22k,尾數(shù)長度p2,階碼長度q2, 二進制字長:L2k p2q22。由F1與F2的二進制字長相同,即L1L2,得:p1q1k p2q2(2.1) 字長和表數(shù)范圍確定時,尾數(shù)基值rm與表數(shù)精度的關(guān)系F1的表數(shù)范圍是:,F(xiàn)2的表數(shù)范圍是:,F(xiàn)1與F2的表數(shù)范圍相同,得到:兩邊取以2為底的對數(shù),得到:q1q2log2 k(2.2)把(2.2)式代入(2.1)式,得到:p1k p2log2 k(2.3)F1的表數(shù)精度是:(2.4)把(2.3)代入(2.4)得到:F

8、2的表數(shù)精度是:取F2與F1表數(shù)精度的比值:(2.5)只有k1(尾數(shù)基值rm2)或k2(尾數(shù)基值rm4)時,比值T1。結(jié)論1:在字長和表數(shù)范圍一定時,尾數(shù)基值rm取2或4,浮點數(shù)具有最高的表數(shù)精度。 字長和表數(shù)精度一定,尾數(shù)基值rm與表數(shù)范圍的關(guān)系由F1與F2的表數(shù)精度相同得到:即:p1kp2k1(2.6)把(2.6)代入(2.1)得到:q1q2k1(2.7)F1的表數(shù)范圍:F2的表數(shù)范圍:假設(shè)表數(shù)范圍F2大于F1,則階碼的最大值F2大于F1:這個不等式在正整數(shù)定義域內(nèi)沒有解,即不存在比F1的表數(shù)范圍更大的浮點數(shù)表示方式只有k1(尾數(shù)基值rm2)或k2(尾數(shù)基值rm4)時,F(xiàn)2階碼的最大值等于

9、F1階碼的最大值。結(jié)論2:在字長和表數(shù)精度一定時,尾數(shù)基值rm取2或4,浮點數(shù)具有最大的表數(shù)范圍。推論1:在字長確定之后,尾數(shù)基值rm取2或4,浮點數(shù)具有最大的表數(shù)范圍和最高的表數(shù)精度。例2.4:IBM 370系列計算機的短浮點數(shù)表示方式,尾數(shù)基值rm16,尾數(shù)字長為16進制6位,階碼基值rm2,階碼字長6位,尾數(shù)用原碼、小數(shù)表示,階碼用移碼、整數(shù)表示。求表數(shù)范圍和表數(shù)精度,并尾數(shù)基址rm2的浮點數(shù)表示方式進行比較。解: 表數(shù)精度為: 表數(shù)范圍是: 若尾數(shù)基值rm2,則有: 解得p21,則q322129,它的表數(shù)范圍是: 推論2:浮點數(shù)的尾數(shù)基值rm取2,并采用隱藏位表數(shù)方法是最佳的浮點數(shù)表示

10、方式。這種浮點數(shù)表示方式能做到表數(shù)范圍最大、表數(shù)誤差最小、表數(shù)效率最高。目前,IBM公司的IBM360、370、4300系列機等,尾數(shù)基值rm16。Burroughs公司的B6700、B7700等大型機,尾數(shù)基值rm8。DEC公司的PDP-11、VAX-11和Alpha等小型機,CDC公司的CDC6600、CYBER70等大型機,Intel公司的x86系列機等均采用尾數(shù)基值rm2。5、浮點數(shù)格式的設(shè)計定義浮點數(shù)表示方式的6個參數(shù)的確定原則: 尾數(shù):多數(shù)機器采用原碼、小數(shù)表示 采用原碼制表示:加減法比補碼表示復雜,乘除法比補碼簡單 表示非常直觀。 采用小數(shù)表示能簡化運算,特別是乘除法運算。 階碼

11、:一般機器都采用整數(shù)、移碼表示采用移碼表示的主要原因是:浮點0與機器0一致。階碼進行加減運算時,移碼的加減法運算要比補碼復雜 尾數(shù)的基值rm選擇2, 階碼的基值re取2, 浮點數(shù)格式設(shè)計的關(guān)鍵問題是: 在表數(shù)范圍和表數(shù)精度給定的情況下,如何確定最短的尾數(shù)字長p和階碼字長q例2.5:要求設(shè)計一種浮點數(shù)格式,其表數(shù)范圍不小于1037,正、負數(shù)對稱,表數(shù)精度不低于10-16。解:根據(jù)表數(shù)范圍的要求:解這個不等式:取階碼字長q7根據(jù)表數(shù)精度的要求,得到:解這個不等式:由于浮點數(shù)字長通常是8的倍數(shù),因此取尾數(shù)字長p55所設(shè)計浮點數(shù)的格式如下:1位 1位 7位 55位mfefeM所設(shè)計浮點數(shù)的主要參數(shù)如下

12、:最大尾數(shù)值:絕對值最小的尾數(shù)值:最大階碼:最小階碼:最大正數(shù):;最小正數(shù):;最大負數(shù):;最小負數(shù):;表數(shù)精度:;浮點零:浮點零與機器零相同,64位全為0;表數(shù)效率:采用隱藏位,表數(shù)效率;6、浮點數(shù)的舍入處理 浮點數(shù)要進行舍入處理的原因是:十進制實數(shù)轉(zhuǎn)化為浮點數(shù)時,有效位長度超過給定的尾數(shù)字長。兩個浮點數(shù)的加、減、乘、除結(jié)果,尾數(shù)長度超過給定的尾數(shù)字長。 舍入處理要解決的問題是:把規(guī)格化尾數(shù)的pg位處理成只有p位。其中:p是浮點數(shù)表示方式給定的尾數(shù)字長, g是超過給定尾數(shù)字長的部分。 舍入方法的主要性能標準是:絕對誤差小,積累誤差小,容易實現(xiàn)。 進行舍入處理時要注意的問題是:必須先規(guī)格化,然后

13、再舍入,否則舍入是沒有意義的。在計算積累誤差時,要同時考慮到正數(shù)區(qū)和負數(shù)區(qū)的情況;方法1:恒舍法恒舍法又稱截斷法、必舍法等恒舍法的主要優(yōu)點:實現(xiàn)起來非常容易。誤差大。恒舍法的舍入規(guī)則及誤差情況尾數(shù)有效字長p位有效字長之外g位誤差情況正數(shù)區(qū)舍入前0.xxx.xx0.xxx.xx0.xxx.xx.0.xxx.xx00.00000.00100.010.11.111d0d2-p-gd2-p-g+1 .d2-p(12-g)舍入后0.xxx.xxs2-p-1(2g-1)負數(shù)區(qū)舍入前0.xxx.xx0.xxx.xx0.xxx.xx.0.xxx.xx00.00000.00100.010.11.111d0d2-

14、p-gd2-p-g+1 .d2-p(12-g)舍入后0.xxx.xxs2-p-1(2g-1)方法2:恒置法又稱恒置r/2法、恒置1法、或馮諾依曼法。恒置法的舍入規(guī)則是:把規(guī)格化尾數(shù)有效字長p位的最低一位置成r/2。恒置法的主要缺點:表數(shù)精度比較低。主要優(yōu)點:實現(xiàn)起來比較容易, 在正數(shù)區(qū)和負數(shù)區(qū)的積累誤差都比較小,而且能達到平衡。恒置法在正數(shù)區(qū)的舍入規(guī)則及誤差情況正數(shù)區(qū)尾數(shù)有效字長p位有效字長之外g位誤差情況舍入前0.xxx.xx00.xxx.xx00.xxx.xx0.0.xxx.xx00.xxx.xx10.xxx.xx10.xxx.xx10.xxx.xx100.00000.00100.010.

15、11.11100.00000.00111.11011.1112-p 誤差積累2-p(12-g)2-p(12-g+1) .2-p-g 02-p-g .2-p(12-g+1)2-p(12-g)舍入后0.xxx.xx1積累誤差s2-p方法3:下舍上入法又稱為4舍5入法、0舍1入法、7舍8入法等。下舍上入法的舍入規(guī)則是:g位代碼的中間值為界,小于這個中間值的則舍,大于或等于這個中間值的則入。下舍上入法的主要優(yōu)點:精度高,積累誤差小。 在正數(shù)區(qū)和負數(shù)區(qū)的積累誤差能達到完全平衡。主要缺點:實現(xiàn)起來比較困難。上舍下入法的舍入規(guī)則及誤差情況正數(shù)區(qū)尾數(shù)有效字長p位有效字長之外g位誤差d舍入前0.xxx.xx0.

16、xxx.xx0.xxx.xx.0.xxx.xx0.xxx.xx0.xxx.xx.0.xxx.xx0.xxx.xx00.00000.00100.010.01.11110.00010.00111.11011.11102-p-g2-p-g+1 .2-p-1(12-g)2-p-1積累誤差2-p-1(12-g) .2-p-g+12-p-g舍入后0.xxx.xx0.xxx.xx2-p最高位為0最高位為1積累誤差s2-p-1方法4:R*舍入法R*舍入法的優(yōu)點:沒有積累誤差。精度很高。主要缺點:實現(xiàn)起來非常復雜,要判斷g是否為10.00,采用下舍上入法或恒置法,判斷舍入后是否溢出,若溢出,要再次進行右規(guī)格化。

17、只有少數(shù)巨型計算機(如BSP科學處理機)采用R*舍入法。R*舍入法的舍入規(guī)則及誤差情況舍入方法舍入前(p+g位)舍入后(p位)誤差情況下舍上入法下舍上入法下舍上入法下舍上入法恒置1法恒置1法下舍上入法下舍上入法下舍上入法0.xxx.xx|00.000.xxx.xx|00.010.xxx.xx|0.0100.xxx.xx|01.110.xxx.x0|10.000.xxx.x1|10.000.xxx.xx|10.010.xxx.xx|11.100.xxx.xx|11.110.xxx.xx0.xxx.xx0.xxx.xx 0.xxx.xx0.xxx.x10.xxx.x10.xxx.xx2-p 0.x

18、xx.xx2-p0.xxx.xx2-p02-p-g2-p-g+12-p-1(12-g+1)2-p-12-p-12-p-1(12-g+1)2-p-g+12-p-g方法5:查表法又稱ROM舍入法,PLA舍入法等。查表入法的主要優(yōu)點:通過修改ROM或PLA中的內(nèi)容來使積累誤差達到平衡。查表法繼承了下舍上入法精度高、積累誤差小的優(yōu)點,同時又克服了它實現(xiàn)起來比較困難的缺點。n2時查表法的舍入規(guī)則及誤差情況分析ROM地址舍入前(pg位)舍入后(p位)誤差情況000001010011100101110111xxx00|0xxxxxx00|1xxxxxx01|0xxxxxx01|1xxxxxx10|0xxxx

19、xx10|1xxxxxx11|0xxxxxx11|1xxxxxx00xxx01xxx01xxx10xxx10xxx11xxx11xxx112-p-1(1-2-g+1)02-p-g2-p-12-p-1(1-2-g+1)02-p-g2-p-12-p-1(1-2-g+1)02-p-g2-p-12-p-1(1-2-g+1)02-p(1-2-g)2-p-12-p-12-p-12-p-12-p-1(2g-1)關(guān)于舍入方法的主要結(jié)論:(1) 恒置法雖有少量的積累誤差,且損失一位精度,但由于實現(xiàn)起來很容易,已普遍在小型及微型機中使用。(2) R*舍入法是唯一一種積累誤差能達到完全平衡的舍入方法,但由于實現(xiàn)起來

20、非常復雜,僅在極少數(shù)對誤差要求非常高的具型計算機中才采用。(3) 下舍上入法只有少量的積累誤差,且精度也比較高,但實現(xiàn)起來很復雜,在用軟件實現(xiàn)的算法中經(jīng)常采用。(4) 查表法實現(xiàn)比較容易,積累誤差很小,而且可以通過改變ROM或PLA中的內(nèi)容來修正積累誤差,因此是一種很有前途的舍入方法。五種舍入方法的主要性能比較舍入方法在正數(shù)區(qū)的誤差范圍正數(shù)區(qū)的積累誤差實現(xiàn)的難易程度恒舍法2-p(12-g)02-p-1(2g1)最簡單恒置法2-p(12-g)2-p2-p很簡單下舍上入法2-p-1(12-g+1)2-p-12-p-1很復雜R*舍入法2-p-12-p-10最復雜查表法2-p(12-g)2-p-12-

21、p-1(2n2g)一般p是規(guī)格化尾數(shù)有效位的字長,g是尾數(shù)有效字長之外的長度,n是查表法中ROM或PLA的字長7、警戒位的設(shè)置方法為了保證浮點數(shù)在運算和轉(zhuǎn)換過程中的精度,在規(guī)定的尾數(shù)字長之外,運算器中的累加器需要另外增加的長度稱為警戒位(Guard Digit or Guard Bit)。 不設(shè)置警戒位,可能出現(xiàn)很大的誤差。一個例子:例1:0.10000000200.111111012-1,沒有警戒位時: 0.1000000020對階: 1.1000000120求和: 0.0000000120左規(guī): 0.100000002-7設(shè)置一個警戒位時:0.10000000對階:1.1000000120

22、120求和: 0.00000001左規(guī): 0.110000001202-7 可能造成完全錯誤的運算結(jié)果。例2:0.100021250.11112124,設(shè)置一個警戒位時: 0.1000對階: 1.1000212512125求和: 0.0000左規(guī): 0.1000121252121不設(shè)置警戒位時,運算結(jié)果是0。 0.10002125對階: 1.10002125求和: 0.00002125 警戒位的用處只有兩個:(1) 用于左規(guī)格化時移入尾數(shù)有效字長內(nèi)。(2) 用于舍入。 警戒位的來源有以下幾個方面:(1) 做加、減法時,因?qū)﹄A從有效字長內(nèi)移出去的部分。(2) 做乘法時,雙倍字長乘積的低字長部分。(3) 做除法時,因沒有除盡而多上商的幾位。(4) 右規(guī)格化時移出有效字長的那部分。(5) 從十進制轉(zhuǎn)換成二進制時,尾數(shù)超出有效字長的部分。 加減法運算對警戒位的需要(1) 同號相加或異號相減,浮點數(shù)的尾數(shù)之和不需要左規(guī)格化。mA1,兩數(shù)之和為:mAmB2

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論