第2章__數(shù)據(jù)表示與指令系統(tǒng)_第1頁
第2章__數(shù)據(jù)表示與指令系統(tǒng)_第2頁
第2章__數(shù)據(jù)表示與指令系統(tǒng)_第3頁
第2章__數(shù)據(jù)表示與指令系統(tǒng)_第4頁
第2章__數(shù)據(jù)表示與指令系統(tǒng)_第5頁
已閱讀5頁,還剩105頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第第2 2章章 數(shù)據(jù)表示與指令系統(tǒng)數(shù)據(jù)表示與指令系統(tǒng)2.1 2.1 數(shù)據(jù)表示數(shù)據(jù)表示2.2 2.2 尋址方式尋址方式2.3 2.3 指令格式的優(yōu)化設(shè)計指令格式的優(yōu)化設(shè)計2.4 2.4 按按CISCCISC方向發(fā)展與改進(jìn)指令系統(tǒng)方向發(fā)展與改進(jìn)指令系統(tǒng)2.5 2.5 按按RISCRISC方向發(fā)展與改進(jìn)指令系統(tǒng)方向發(fā)展與改進(jìn)指令系統(tǒng)本章重點本章重點: : 自定義數(shù)據(jù)表示;浮點數(shù)尾數(shù)基值選擇;尾數(shù)自定義數(shù)據(jù)表示;浮點數(shù)尾數(shù)基值選擇;尾數(shù)下溢處理方法;尋址方式中的再定位技術(shù);整數(shù)邊下溢處理方法;尋址方式中的再定位技術(shù);整數(shù)邊界存貯;操作碼和指令字格式的優(yōu)化;界存貯;操作碼和指令字格式的優(yōu)化; CISCC

2、ISC指令系統(tǒng)的改進(jìn)途徑綜述;指令系統(tǒng)的改進(jìn)途徑綜述;RISCRISC概念及所概念及所采用的基本技術(shù)等。采用的基本技術(shù)等。本章難點:本章難點: 浮點數(shù)尾數(shù)基值的選擇;操作碼和指令字格式浮點數(shù)尾數(shù)基值的選擇;操作碼和指令字格式的優(yōu)化。的優(yōu)化。2.1 2.1 數(shù)據(jù)表示數(shù)據(jù)表示2.1.12.1.1數(shù)據(jù)表示與數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)表示與數(shù)據(jù)結(jié)構(gòu) 1.1.基本概念基本概念 1)1)數(shù)據(jù)表示數(shù)據(jù)表示:能由機(jī)器硬件直接識別和的引用:能由機(jī)器硬件直接識別和的引用 的數(shù)據(jù)類型的數(shù)據(jù)類型。 2)2)數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu):各種數(shù)據(jù)元素或信息單元之間的:各種數(shù)據(jù)元素或信息單元之間的 結(jié)構(gòu)關(guān)系結(jié)構(gòu)關(guān)系。 3)3)兩者關(guān)系兩者關(guān)系 a

3、)a)數(shù)據(jù)結(jié)構(gòu)是通過軟件映像將信息變換成數(shù)數(shù)據(jù)結(jié)構(gòu)是通過軟件映像將信息變換成數(shù) 據(jù)表示來實現(xiàn)的,表示是結(jié)構(gòu)的元素。據(jù)表示來實現(xiàn)的,表示是結(jié)構(gòu)的元素。 b)b)不同的表示為結(jié)構(gòu)的實現(xiàn)提供不同的支持,不同的表示為結(jié)構(gòu)的實現(xiàn)提供不同的支持, 表現(xiàn)在實現(xiàn)的效率和方便性上。表現(xiàn)在實現(xiàn)的效率和方便性上。 c)c)結(jié)構(gòu)和表示是軟、硬件的交接面。結(jié)構(gòu)和表示是軟、硬件的交接面。2.2.數(shù)據(jù)表示的發(fā)展數(shù)據(jù)表示的發(fā)展 1)1)早期只有定點數(shù)表示早期只有定點數(shù)表示 ,浮點數(shù)用兩個定點,浮點數(shù)用兩個定點數(shù)表示其階碼和尾碼。數(shù)表示其階碼和尾碼。 2)502)50年代初提出變址操作,為向量、陣列提供年代初提出變址操作,為向

4、量、陣列提供了直接的數(shù)據(jù)支持。見下頁圖示或了直接的數(shù)據(jù)支持。見下頁圖示或P P2828: 3)3)可變長字符串可變長字符串( (行行) )數(shù)據(jù)表示的引入,為串?dāng)?shù)數(shù)據(jù)表示的引入,為串?dāng)?shù)據(jù)結(jié)構(gòu)的實現(xiàn)提供了支持。據(jù)結(jié)構(gòu)的實現(xiàn)提供了支持。 aA1i變址寄存器變址寄存器變址加法器變址加法器有效地址有效地址1主存主存a+0a+1a+ia+n-1操作碼操作碼變址位變址位變址位變址位A1A2變址操作對向量、陣列數(shù)據(jù)結(jié)構(gòu)的支持變址操作對向量、陣列數(shù)據(jù)結(jié)構(gòu)的支持2.1.2 2.1.2 高級數(shù)據(jù)表示高級數(shù)據(jù)表示1.1.自定義數(shù)據(jù)表示自定義數(shù)據(jù)表示 1)1)帶標(biāo)志符的數(shù)據(jù)表示帶標(biāo)志符的數(shù)據(jù)表示 a)a)高級語言與機(jī)器

5、語言的差別高級語言與機(jī)器語言的差別: 高級:用類型說明語句指明類型,類型與數(shù)高級:用類型說明語句指明類型,類型與數(shù) 據(jù)相聯(lián)系,運算符不反映類型,通用。據(jù)相聯(lián)系,運算符不反映類型,通用。 int a,b,sum; sum=a+b;int a,b,sum; sum=a+b; 機(jī)器:用操作碼指明操作數(shù)的類型。機(jī)器:用操作碼指明操作數(shù)的類型。 浮加浮加ab b)b)上述差別導(dǎo)致編譯時,要將高級語言中的類上述差別導(dǎo)致編譯時,要將高級語言中的類型說明、運算符轉(zhuǎn)換為機(jī)器語言的相應(yīng)操作碼型說明、運算符轉(zhuǎn)換為機(jī)器語言的相應(yīng)操作碼并驗證,不一致還要軟件轉(zhuǎn)換,負(fù)擔(dān)大。因此,并驗證,不一致還要軟件轉(zhuǎn)換,負(fù)擔(dān)大。因此,

6、我們用到了帶標(biāo)志符的數(shù)據(jù)標(biāo)志,即每個數(shù)據(jù)我們用到了帶標(biāo)志符的數(shù)據(jù)標(biāo)志,即每個數(shù)據(jù)都帶上數(shù)據(jù)標(biāo)志。都帶上數(shù)據(jù)標(biāo)志。類型標(biāo)志類型標(biāo)志數(shù)據(jù)值數(shù)據(jù)值數(shù)據(jù)數(shù)據(jù)( (字字) ) c)c)優(yōu)點:優(yōu)點: 簡化了指令系統(tǒng)和程序設(shè)計。簡化了指令系統(tǒng)和程序設(shè)計。 簡化了編譯程序。簡化了編譯程序。 便于實現(xiàn)一致性校驗。便于實現(xiàn)一致性校驗。 能由硬件自動變換數(shù)據(jù)類型。能由硬件自動變換數(shù)據(jù)類型。 支持了數(shù)據(jù)庫系統(tǒng)的實現(xiàn)與類型無關(guān)的要求。支持了數(shù)據(jù)庫系統(tǒng)的實現(xiàn)與類型無關(guān)的要求。 為軟件調(diào)試和應(yīng)用軟件開發(fā)提供了支持。為軟件調(diào)試和應(yīng)用軟件開發(fā)提供了支持。 d)d)存在問題存在問題: 每個數(shù)據(jù)字因增設(shè)標(biāo)志符,程序所占用的每個數(shù)據(jù)

7、字因增設(shè)標(biāo)志符,程序所占用的 主存空間會增加。主存空間會增加。 會降低指令的執(zhí)行速度。會降低指令的執(zhí)行速度。AB指令指令( (多多) )數(shù)據(jù)數(shù)據(jù)( (少少) )采用標(biāo)志符采用標(biāo)志符指令字縮短指令字縮短不用標(biāo)志符不用標(biāo)志符采用標(biāo)志符采用標(biāo)志符數(shù)據(jù)字增長數(shù)據(jù)字增長 2)2)數(shù)據(jù)描述符數(shù)據(jù)描述符 a)a)目的目的:進(jìn)一步減少標(biāo)志符所占空間,對于向:進(jìn)一步減少標(biāo)志符所占空間,對于向量、數(shù)組、記錄等數(shù)據(jù),每個元素具有相同屬性,量、數(shù)組、記錄等數(shù)據(jù),每個元素具有相同屬性,為此提出了數(shù)據(jù)描述符。為此提出了數(shù)據(jù)描述符。 b)b)與標(biāo)志符的區(qū)別:與標(biāo)志符的區(qū)別: 標(biāo)志符標(biāo)志符:與每個數(shù)據(jù)相連,合存一個單元,:與

8、每個數(shù)據(jù)相連,合存一個單元,描述單個數(shù)據(jù)的類型特征。描述單個數(shù)據(jù)的類型特征。 描述符描述符:和數(shù)據(jù)分開,描述要訪問數(shù)據(jù)是單:和數(shù)據(jù)分開,描述要訪問數(shù)據(jù)是單個還是整塊,及所需地址等信息。個還是整塊,及所需地址等信息。 例:例:B6700地址地址長度長度數(shù)據(jù)數(shù)據(jù)各種標(biāo)志各種標(biāo)志101000描述符描述符數(shù)據(jù)數(shù)據(jù)操作碼操作碼指令指令XY101000000101101101地址形成邏輯地址形成邏輯描述符描述符描述符描述符數(shù)據(jù)數(shù)據(jù)數(shù)據(jù)數(shù)據(jù)主存貯器主存貯器 c)c)可以按樹型連接來描述多維數(shù)據(jù)結(jié)構(gòu)。如:可以按樹型連接來描述多維數(shù)據(jù)結(jié)構(gòu)。如:1011011011010000000000000000000000

9、00000000000000a31 陣列描述符陣列描述符三元素向量三元素向量3 34 4維陣列維陣列a11a12a13a14a21a22a23a24a31a32a33a343 34 4維陣列維陣列a12a11a13a14a21a22a23a24a33a32a342.2.向量數(shù)組數(shù)據(jù)表示向量數(shù)組數(shù)據(jù)表示 1)1)目的目的:為向量、數(shù)組的實現(xiàn)和快速運算提供更:為向量、數(shù)組的實現(xiàn)和快速運算提供更好的硬件支持,引入了向量數(shù)組數(shù)據(jù)表示,組成好的硬件支持,引入了向量數(shù)組數(shù)據(jù)表示,組成向量處理機(jī)。向量處理機(jī)。 a)a)無向量數(shù)組表示的機(jī)器,需借助變址操作來實無向量數(shù)組表示的機(jī)器,需借助變址操作來實現(xiàn),且各指

10、令、求解、判界只能順序執(zhí)行,難以現(xiàn),且各指令、求解、判界只能順序執(zhí)行,難以并行處理并行處理。 例:例:c ci i=i+1; i=1100;=i+1; i=1100; for(i=1;i101;i+)for(i=1;i22的可表示浮點數(shù)個數(shù)與的可表示浮點數(shù)個數(shù)與r rm m=2=2 的可表示浮點數(shù)個數(shù)之比。的可表示浮點數(shù)個數(shù)之比。 計算公式計算公式: : e= 2e= 21-p1-p(1-r(1-rm m -1-1)(1+ (2)(1+ (2p p-1)/ log-1)/ log2 2 r rm m) ) 例例:p=8, r:p=8, rm m =16 =16時,時, e= 0.47e= 0.

11、47 由表示比可知,由表示比可知, r rm m越大,越大,e e越小,數(shù)的分越小,數(shù)的分布越是稀疏。布越是稀疏。 c)c)總結(jié):總結(jié): r rm m增大:增大: 增大表示范圍增大表示范圍 增加表示個數(shù)增加表示個數(shù) 減少移位次數(shù)減少移位次數(shù) 降低精度損失降低精度損失 提高運算速度提高運算速度 降低表示精度降低表示精度 分布越加離散分布越加離散2.2.浮點數(shù)尾數(shù)的下溢處理方法浮點數(shù)尾數(shù)的下溢處理方法 數(shù)據(jù)運算過程中的相乘或右移,使超出運算器數(shù)據(jù)運算過程中的相乘或右移,使超出運算器 和存貯器字長的部分丟棄造成精度損失,為減和存貯器字長的部分丟棄造成精度損失,為減 少精度損失,關(guān)鍵要處理好尾數(shù)下溢問

12、題。下少精度損失,關(guān)鍵要處理好尾數(shù)下溢問題。下 面以面以r rm m=2,m=2=2,m=2來討論。來討論。 1)1)截斷法截斷法 a)a)方法方法: :將尾數(shù)超出機(jī)器字部分簡單截去。將尾數(shù)超出機(jī)器字部分簡單截去。 b)b)最大誤差:最大誤差: 整數(shù)接近整數(shù)接近1 1,二進(jìn)制分?jǐn)?shù)接近,二進(jìn)制分?jǐn)?shù)接近2 2-m-m 正負(fù)正負(fù):正數(shù):正數(shù) 產(chǎn)生負(fù)誤差產(chǎn)生負(fù)誤差 分布分布:間隔相同,均勻分布。:間隔相同,均勻分布。 c)c)誤差曲線:誤差曲線: d)d)優(yōu)點優(yōu)點: 簡單,不增加簡單,不增加 硬件,不增加硬件,不增加 時間。時間。 e)e)缺點缺點: 最大誤差大,最大誤差大, 平均誤差無法平均誤差無法

13、 調(diào)節(jié)。調(diào)節(jié)。0000011011處理結(jié)果處理結(jié)果實際值實際值00 000 101 001 1理想直線理想直線最大誤差最大誤差穩(wěn)態(tài)值穩(wěn)態(tài)值截斷法截斷法 2)2)舍入法舍入法 a)a)方法方法: :在規(guī)定字長外增設(shè)一位附加位,存放溢在規(guī)定字長外增設(shè)一位附加位,存放溢出部分高位,處理時該位加出部分高位,處理時該位加1 1。 b)b)最大誤差:最大誤差: 整數(shù)二進(jìn)制為整數(shù)二進(jìn)制為0.50.5,分?jǐn)?shù)為,分?jǐn)?shù)為2 2-(m+1)-(m+1)。 正負(fù):有正有負(fù)。正負(fù):有正有負(fù)。 分布:統(tǒng)計平均誤差接近零,稍偏正,無法分布:統(tǒng)計平均誤差接近零,稍偏正,無法 調(diào)節(jié)。調(diào)節(jié)。 c)c)誤差曲線誤差曲線 d)d)優(yōu)

14、點優(yōu)點: 增加硬件少,增加硬件少, 最大誤差小,最大誤差小, 平均誤差接近零。平均誤差接近零。 e)e)缺點缺點: 處理速度慢。處理速度慢。0000011011實際值實際值00 000 101 001 1理想直線理想直線最大誤差最大誤差處理結(jié)果處理結(jié)果舍入法舍入法 3)3)恒置恒置“1”1”法法 a)a)方法方法: :在規(guī)定字長之最低位恒置成在規(guī)定字長之最低位恒置成“1”1”狀態(tài)狀態(tài)。 b)b)最大誤差:最大誤差: 整數(shù)二進(jìn)制為整數(shù)二進(jìn)制為1 1,分?jǐn)?shù)為,分?jǐn)?shù)為2 2-m-m。 正負(fù):有正有負(fù)。正負(fù):有正有負(fù)。 分布:統(tǒng)計平均誤差接近零,稍偏正,無法分布:統(tǒng)計平均誤差接近零,稍偏正,無法 調(diào)節(jié)

15、。調(diào)節(jié)。 c)c)誤差曲線誤差曲線: : d)d)優(yōu)點優(yōu)點: 實現(xiàn)簡單,不增實現(xiàn)簡單,不增 加硬件和處理時加硬件和處理時 間,平均誤差接間,平均誤差接 近零。近零。 e)e)缺點缺點: 最大誤差大。最大誤差大。 0000011011處理結(jié)果處理結(jié)果實際值實際值00 000 101 001 1理想直線理想直線最大誤差最大誤差恒置恒置“1”1”法法 4)4)查表舍入法查表舍入法 a)a)方法方法: :基于存貯邏輯思想,用基于存貯邏輯思想,用ROMROM或或PLAPLA存放下溢存放下溢處理表。處理表。 當(dāng)當(dāng)k-1k-1位全位位全位“1”1”時,以截斷法處理;其它以時,以截斷法處理;其它以 舍入法處理

16、。舍入法處理。 長結(jié)果長結(jié)果較短近似值較短近似值尾數(shù)尾數(shù)尾數(shù)尾數(shù)2kROMk-1低位低位k-1低位低位 被舍掉的位被舍掉的位高位高位 b)b)最大誤差:最大誤差: 最大為最大為1 1。 正負(fù):有正有負(fù)。正負(fù):有正有負(fù)。 分布:不均勻,平均誤差為零,可調(diào)節(jié)。分布:不均勻,平均誤差為零,可調(diào)節(jié)。 c)c)優(yōu)點:優(yōu)點: ROMROM速度快,平均誤差可調(diào)為零,可調(diào)節(jié)。速度快,平均誤差可調(diào)為零,可調(diào)節(jié)。 d)d)缺點:缺點: 增加過多硬件設(shè)備增加過多硬件設(shè)備。2.2 2.2 尋址方式尋址方式 尋址方式是指指令按什么方式詢問尋址方式是指指令按什么方式詢問( (或訪問或訪問) )到所需要的操作數(shù)或信息的。到

17、所需要的操作數(shù)或信息的。2.2.1 2.2.1 尋址方式分析尋址方式分析 能被指令訪問到的存放數(shù)據(jù)或信息的部件能被指令訪問到的存放數(shù)據(jù)或信息的部件: :主存、堆棧及各種寄存器主存、堆棧及各種寄存器( (通用、控制、設(shè)備等通用、控制、設(shè)備等) )。1.1.不同機(jī)器的編址方式不同機(jī)器的編址方式 1)1)把部件分類,各自從把部件分類,各自從“0”0”開始單獨編址,構(gòu)開始單獨編址,構(gòu)成多個一維線性地址空間。指令短,地址簡單,成多個一維線性地址空間。指令短,地址簡單,編址范圍大。但指令應(yīng)有區(qū)分標(biāo)志或使用約定。編址范圍大。但指令應(yīng)有區(qū)分標(biāo)志或使用約定。 2)2)把部件統(tǒng)一編成一個從把部件統(tǒng)一編成一個從“0

18、”0”開始的一維線性開始的一維線性地址,對部件的訪問反映為對地址的訪問。有利地址,對部件的訪問反映為對地址的訪問。有利于簡化指令系統(tǒng)。于簡化指令系統(tǒng)。 3)3)隱式地址,采用約定的編址方式,不必計算隱式地址,采用約定的編址方式,不必計算部件地址,加快訪問速度。但指令設(shè)計不規(guī)范。部件地址,加快訪問速度。但指令設(shè)計不規(guī)范。 2.2.尋址方式尋址方式 1)1)面向寄存器面向寄存器速度快速度快 2)2)面向堆棧面向堆棧減輕編譯負(fù)擔(dān)減輕編譯負(fù)擔(dān) 3)3)面向內(nèi)存面向內(nèi)存針對大量數(shù)據(jù)操作針對大量數(shù)據(jù)操作 三者反映了不同工作階段的特點,不應(yīng)相互排三者反映了不同工作階段的特點,不應(yīng)相互排斥。在同一系統(tǒng)中,都應(yīng)

19、采用,只是一種為主,斥。在同一系統(tǒng)中,都應(yīng)采用,只是一種為主,其它為輔,以取長補(bǔ)短。其它為輔,以取長補(bǔ)短。 地址碼形成物理地址方法:立即尋址、直接尋地址碼形成物理地址方法:立即尋址、直接尋址、間接尋址、相對尋址、編址尋址等。址、間接尋址、相對尋址、編址尋址等。3.3.尋址方式的兩種指明方式尋址方式的兩種指明方式 1)1)占用操作碼的某些位來指明占用操作碼的某些位來指明 2)2)在地址碼部分專門設(shè)置尋址方式位來指明在地址碼部分專門設(shè)置尋址方式位來指明 相比較而言,尋址方式位法尋址靈活,操相比較而言,尋址方式位法尋址靈活,操作碼短,但需專門的尋址位字段,和操作碼的作碼短,但需專門的尋址位字段,和操

20、作碼的總位數(shù)會比占用操作碼位來指明要長??偽粩?shù)會比占用操作碼位來指明要長。2.2.2 2.2.2 邏輯地址與主存物理地址邏輯地址與主存物理地址 1.1.基本概念基本概念 1)1)邏輯地址邏輯地址: :程序員編程時使用的地址。程序員編程時使用的地址。 2)2)主存物理地址主存物理地址:程序在主存中的實際地址:程序在主存中的實際地址。 3)3)兩者發(fā)展變化兩者發(fā)展變化 a)a)早期是一致的,程序與數(shù)據(jù)的地址由程序員編早期是一致的,程序與數(shù)據(jù)的地址由程序員編程時決定和指明。程時決定和指明。 b)b)隨著匯編、編譯程序和隨著匯編、編譯程序和OSOS的出現(xiàn),變得不一致。的出現(xiàn),變得不一致。多道程序執(zhí)行,

21、程序員事先不知道程序裝入主存多道程序執(zhí)行,程序員事先不知道程序裝入主存的地址,各個邏輯地址都從的地址,各個邏輯地址都從0 0開始,而主存是一維開始,而主存是一維線性從線性從0 0開始編址,導(dǎo)致不一致。開始編址,導(dǎo)致不一致。 一般是程序裝入內(nèi)存時,需要轉(zhuǎn)換,即再定位一般是程序裝入內(nèi)存時,需要轉(zhuǎn)換,即再定位。A A道程序的邏輯地址空間道程序的邏輯地址空間0加加轉(zhuǎn)移轉(zhuǎn)移gsgs加加轉(zhuǎn)移轉(zhuǎn)移a+ga+sa+ga+sa0ma+m主存空間主存空間A A道程序道程序地址空間地址空間邏輯地址空間到物理地址空間的變換邏輯地址空間到物理地址空間的變換下界下界上界上界2.2.程序定位方法程序定位方法 1)1)靜態(tài)再

22、定位靜態(tài)再定位 a)a)思想思想: :利用馮利用馮. .諾依曼型機(jī)器指令可修改的特諾依曼型機(jī)器指令可修改的特 點,程序裝入內(nèi)存時,用軟件方法把邏輯地址變點,程序裝入內(nèi)存時,用軟件方法把邏輯地址變換成物理地址,執(zhí)行時物理地址不再改變。換成物理地址,執(zhí)行時物理地址不再改變。 b)b)缺點缺點:一道程序地址修改錯誤會導(dǎo)致其它程序:一道程序地址修改錯誤會導(dǎo)致其它程序被破壞,防礙程序再入性,不利于調(diào)試,給重疊、被破壞,防礙程序再入性,不利于調(diào)試,給重疊、流水帶來困難。流水帶來困難。6060年代后,不準(zhǔn)修改指令。年代后,不準(zhǔn)修改指令。 2)2)動態(tài)再定位動態(tài)再定位 a)a)思想思想: :基于變址思想,提出

23、了基址尋址法,增基于變址思想,提出了基址尋址法,增加相應(yīng)基址寄存器和地址加法器,執(zhí)行時邏輯加相應(yīng)基址寄存器和地址加法器,執(zhí)行時邏輯地址加基址即可形成物理地址而訪問。地址加基址即可形成物理地址而訪問。指令地址碼指令地址碼基址寄存器基址寄存器邏輯邏輯(形式形式)地址地址程序基點程序基點(a)地址加法器地址加法器物理物理( (有效有效) )地址地址基址尋址基址尋址3.3.基址尋址與變址尋址基址尋址與變址尋址 1)1)變址尋址變址尋址: :對向量、數(shù)組等數(shù)據(jù)塊運算的支對向量、數(shù)組等數(shù)據(jù)塊運算的支 持,以利于實現(xiàn)程序的循環(huán)。持,以利于實現(xiàn)程序的循環(huán)。 2)2)基址尋址基址尋址: :對邏輯地址空間到物理地

24、址空間的對邏輯地址空間到物理地址空間的 支持,以利于實現(xiàn)程序的動態(tài)再定位。其實質(zhì)支持,以利于實現(xiàn)程序的動態(tài)再定位。其實質(zhì) 是將靜態(tài)再定位的軟件實現(xiàn)用地址加法器硬件是將靜態(tài)再定位的軟件實現(xiàn)用地址加法器硬件 替換了,以加快地址變換的速度。替換了,以加快地址變換的速度。 4.4.界限保護(hù)界限保護(hù) 1)1)原因原因: :地址不是直接取自指令地址碼,而是由地址不是直接取自指令地址碼,而是由 地址硬件變換的來,為防止出錯,生成物理地地址硬件變換的來,為防止出錯,生成物理地 址后要判斷其有效性。址后要判斷其有效性。 2)2)原則原則: :當(dāng)生成的有效地址小于下界值或大于上當(dāng)生成的有效地址小于下界值或大于上

25、界值時,就出現(xiàn)地址越界錯誤,需經(jīng)中斷轉(zhuǎn)入界值時,就出現(xiàn)地址越界錯誤,需經(jīng)中斷轉(zhuǎn)入 越界分析和處理。越界分析和處理。 3)3)方法方法: :設(shè)置上下界寄存器,保護(hù)上下界地址。設(shè)置上下界寄存器,保護(hù)上下界地址。 還可設(shè)置多對上下界寄存器,保證一道程序可還可設(shè)置多對上下界寄存器,保證一道程序可 以訪問多個連續(xù)空間。以訪問多個連續(xù)空間。 5.5.物理地址空間的信息分布物理地址空間的信息分布 同臺機(jī)器可存貯多種寬度信息同臺機(jī)器可存貯多種寬度信息: :字節(jié)、字、半字節(jié)、字、半 字、雙字等。如:字、雙字等。如: 字節(jié)字節(jié)字節(jié)字節(jié)浪費浪費半半字字字字字字雙雙單單 字字單單半半 字字浪浪 費費雙雙 字字單單 字

26、字單單 字字主存寬度主存寬度主存寬度主存寬度8 8個字節(jié)個字節(jié)8 8個字節(jié)個字節(jié)(a)(b)各種寬度信息的存貯各種寬度信息的存貯 1)1)存貯原則存貯原則: :存貯于主存中的各位信息必須是其信存貯于主存中的各位信息必須是其信 息位數(shù)的整數(shù)倍,即按整數(shù)邊界存貯。息位數(shù)的整數(shù)倍,即按整數(shù)邊界存貯。 2) )優(yōu)點優(yōu)點: :減少了訪問周期,有利于提高訪問速度。減少了訪問周期,有利于提高訪問速度。 3)3)缺點缺點: :浪費存貯空間。浪費存貯空間。2.32.3 指令格式的優(yōu)化設(shè)計指令格式的優(yōu)化設(shè)計 從程序設(shè)計者角度看,指令系統(tǒng)是機(jī)器的主從程序設(shè)計者角度看,指令系統(tǒng)是機(jī)器的主要屬性,是軟硬件的交界面,決定

27、了計算機(jī)的功要屬性,是軟硬件的交界面,決定了計算機(jī)的功能。指令系統(tǒng)的設(shè)計包括指令功能能。指令系統(tǒng)的設(shè)計包括指令功能( (操作類型、具操作類型、具體操作內(nèi)容體操作內(nèi)容) )和和格式的設(shè)計格式的設(shè)計。2.3.1 2.3.1 操作碼的優(yōu)化操作碼的優(yōu)化 1.1.基本概念基本概念 1)1)指令指令: :由操作碼和地址碼由操作碼和地址碼( (操作數(shù)操作數(shù)) )組成。組成。 2)2)指令格式的優(yōu)化指令格式的優(yōu)化: :用最短的位數(shù)來表示指令用最短的位數(shù)來表示指令 的操作信息和地址信息,使程序中指令的平均的操作信息和地址信息,使程序中指令的平均 字長最短。字長最短。 3)3)哈夫曼壓縮思想哈夫曼壓縮思想:當(dāng)各種

28、事件發(fā)生概率不等時,:當(dāng)各種事件發(fā)生概率不等時,概率最高事件用最短位數(shù)表示,概率低事件用長概率最高事件用最短位數(shù)表示,概率低事件用長位數(shù)表示,就會使平均位數(shù)縮短。可用于代碼、位數(shù)表示,就會使平均位數(shù)縮短。可用于代碼、程序、存貯空間、時間等的壓縮。程序、存貯空間、時間等的壓縮。 2.2.操作碼的優(yōu)化表示操作碼的優(yōu)化表示 1)1)目的目的: :縮短指令字長度,減少程序總位數(shù),增加縮短指令字長度,減少程序總位數(shù),增加指令字所能表示的操作信息和地址信息。指令字所能表示的操作信息和地址信息。 2)2)信息源熵信息源熵H H: :信息量的單位,表示信息源所包含信息量的單位,表示信息源所包含的平均信息量。對

29、于二進(jìn)制表示的信息來說,計的平均信息量。對于二進(jìn)制表示的信息來說,計算公式為:算公式為: H=H=ppi iloglog2 2p pi i 其中,其中,p pi i是指令的使用頻度是指令的使用頻度。ni=1 3)定長操作碼的信息冗余量定長操作碼的信息冗余量 指令指令指令指令使用頻度使用頻度(pi)使用頻度使用頻度(pi)I1I2I3I4I5I6I70.400.300.150.050.040.030.03表表2.4 某模型機(jī)指令使用頻度舉例某模型機(jī)指令使用頻度舉例 按上表數(shù)據(jù)帶入公式計算按上表數(shù)據(jù)帶入公式計算H,得,得 H=0.40*1.32+0.30*1.74+0.15*2.74 +0.05*

30、4.32+0.04*4.64+0.03*5.06 +0.03*5.06 =2.17 說明表示這說明表示這7 7種指令,操作碼平均只需種指令,操作碼平均只需2.17位位 就夠了。采用就夠了。采用3位定長操作碼表示的位定長操作碼表示的冗余冗余為:為: ( (實際平均長度實際平均長度H)/H)/實際平均長度實際平均長度 計算得,計算得,(32.17)/3=0.28=28%,信息冗余相當(dāng)大,信息冗余相當(dāng)大。 4)4)哈夫曼編碼哈夫曼編碼 a)a)構(gòu)造哈夫曼樹構(gòu)造哈夫曼樹 將指令的使用頻度由小到大排序?qū)⒅噶畹氖褂妙l度由小到大排序 每次選最小兩個頻度結(jié)合一個新節(jié)點每次選最小兩個頻度結(jié)合一個新節(jié)點 再按頻度

31、大小插入余下未結(jié)合的頻度值中再按頻度大小插入余下未結(jié)合的頻度值中 如此重復(fù)直至全部結(jié)合完畢成根節(jié)點如此重復(fù)直至全部結(jié)合完畢成根節(jié)點“1”1” 沿兩個分支,分別用沿兩個分支,分別用“0”0”或或“1”1”來表示來表示 這樣,從根節(jié)點開始,沿線到達(dá)個頻度指令的這樣,從根節(jié)點開始,沿線到達(dá)個頻度指令的代碼序列就是該指令的哈夫曼編碼。如下圖:代碼序列就是該指令的哈夫曼編碼。如下圖: 1.000.600.300.150.060.030.030.030.030.030.040.030.050.030.150.030.300.030.400.09000000111111I7I6I5I4I3I2I1圖圖2.1

32、4 哈夫曼樹舉例哈夫曼樹舉例 b)b)編碼結(jié)果及其冗余編碼結(jié)果及其冗余 頻度頻度 (pi)指令指令op長長 liop長長 li操作碼操作碼op使用使用 哈夫曼編碼哈夫曼編碼利用哈夫曼概念利用哈夫曼概念 的擴(kuò)展編碼的擴(kuò)展編碼 表表2.5 操作碼的哈夫曼編碼與擴(kuò)展編碼操作碼的哈夫曼編碼與擴(kuò)展編碼I1I2I3I4I5I6I70.400.300.150.050.040.030.0301011011100111011111011111000110110011011110111112355552224444 結(jié)果如上表結(jié)果如上表 平均碼長平均碼長: : ppi il li i=0.4=0.4* *1+0.

33、31+0.3* *2+0.152+0.15* *3+0.053+0.05* *5 5 +0.04 +0.04* *5+0.035+0.03* *5+0.035+0.03* *5 5 =2.20 =2.20 冗余冗余:(2.2-2.17)/2.2=1.36:(2.2-2.17)/2.2=1.36% %2828% % c) c)缺點缺點: :操作碼不規(guī)整,操作碼不規(guī)整,7 7條指令,條指令,4 4中碼中碼 長,不便于譯碼,不適用。長,不便于譯碼,不適用。 5)5)擴(kuò)展操作碼編碼擴(kuò)展操作碼編碼 a)a)思想思想: :結(jié)合哈夫曼編碼與定長二進(jìn)制編碼思想,結(jié)合哈夫曼編碼與定長二進(jìn)制編碼思想,只用有限幾種

34、碼長只用有限幾種碼長( (本例兩種本例兩種) ),仍是概率大的用,仍是概率大的用長碼,小的用短碼。以此來縮短碼長,降低冗余長碼,小的用短碼。以此來縮短碼長,降低冗余量,便于譯碼。量,便于譯碼。 b) b) 編碼結(jié)果及冗余編碼結(jié)果及冗余 結(jié)果如上表結(jié)果如上表 平均碼長平均碼長: : pili=2.30 冗余冗余: :(2.3-2.17)/2.3=5.65%28% c)c)優(yōu)點優(yōu)點: :冗余略高于哈夫曼編碼,但遠(yuǎn)遠(yuǎn)小于定冗余略高于哈夫曼編碼,但遠(yuǎn)遠(yuǎn)小于定長編碼,且便于譯碼,比較適用。長編碼,且便于譯碼,比較適用。 編碼方式編碼方式 整個操作系統(tǒng)所用整個操作系統(tǒng)所用指令的操作碼總位數(shù)指令的操作碼總位

35、數(shù)改進(jìn)百分比改進(jìn)百分比 (%)定長定長8位位4610位位哈夫曼法哈夫曼法301 248位位184 966位位172 346位位03943表表2.6 B1700操作碼編碼方式比較操作碼編碼方式比較 d)d)常用擴(kuò)展方法常用擴(kuò)展方法 等長擴(kuò)展法等長擴(kuò)展法 如如4 48 81212等,早期用。等,早期用。 15/15/1515/15/15編碼法編碼法 適用于適用于p pi i在前在前1515種指令中比較大,而在種指令中比較大,而在3030種種 指令后急劇減小的情況。指令后急劇減小的情況。 8/64/5128/64/512編碼法編碼法 適用于適用于p pi i在前在前8 8種指令中比較大,且之后的種指

36、令中比較大,且之后的 6464種指令的種指令的p pi i也不是過小時。也不是過小時。 衡量標(biāo)準(zhǔn)衡量標(biāo)準(zhǔn): :碼長碼長ppi il li i最短。最短。 15/15/15編碼法編碼法8/64/512編碼法編碼法0000000111101111 0000111111111111 11111111 11111111 1111 111011100001000000011111 11110000000101111000 00001000 00011111 01111000 1000 00001000 1000 0001011115151586451215/15/15編碼法和編碼法和8/64/512編碼

37、法編碼法2.3.2 2.3.2 指令字格式的優(yōu)化指令字格式的優(yōu)化 只對操作碼表示優(yōu)化,不對地址碼表示和尋址只對操作碼表示優(yōu)化,不對地址碼表示和尋址 方式采取措施,程序所需總位數(shù)難以減少。方式采取措施,程序所需總位數(shù)難以減少。 1)問題的提出問題的提出:主存按位編址,指令一條條挨:主存按位編址,指令一條條挨 著存貯,會使程序所需總位數(shù)減少,但是速度著存貯,會使程序所需總位數(shù)減少,但是速度 明顯下降。為了不降低訪存取指速度,就要按明顯下降。為了不降低訪存取指速度,就要按 整數(shù)邊界存貯。這樣,操作碼優(yōu)化表示所帶來整數(shù)邊界存貯。這樣,操作碼優(yōu)化表示所帶來li的的縮短只是使指令字內(nèi)出現(xiàn)空白浪費縮短只是使

38、指令字內(nèi)出現(xiàn)空白浪費( (冗余冗余) )。顯然。顯然只有地址碼也是可變長的,才能用上空白部分。只有地址碼也是可變長的,才能用上空白部分。下面分析定長下面分析定長(L)指令字情況:指令字情況: 顯然,只有地址碼可變長,才能避免冗余,顯然,只有地址碼可變長,才能避免冗余, 發(fā)揮操作碼優(yōu)化表示所帶來的作用。發(fā)揮操作碼優(yōu)化表示所帶來的作用。 定長指令字長度定長指令字長度L L地址碼地址碼地址碼地址碼地址碼地址碼空白浪費空白浪費空白浪費空白浪費liliminlimax 等長地址碼發(fā)揮不出等長地址碼發(fā)揮不出 操作碼優(yōu)化表示的作用操作碼優(yōu)化表示的作用kk+1k+2k+4k+5k+6k+7k+8k+9k+3主

39、存寬度主存寬度任意長度指令字在按位編址任意長度指令字在按位編址 主存中存貯的情況主存中存貯的情況 1)1)地址碼長度優(yōu)化:地址碼長度優(yōu)化: a)a)從訪存范圍考慮,地址碼越長越好。從訪存范圍考慮,地址碼越長越好。 b)b)在滿足尋址范圍前提下,可以縮短其位數(shù)。在滿足尋址范圍前提下,可以縮短其位數(shù)。 基址尋址基址尋址: :指明基址寄存器號指明基址寄存器號 B B為基址寄存器號,存放為基址寄存器號,存放2424位基地址。位基地址。BD指令中訪存地址碼部分指令中訪存地址碼部分4位位12位位 相對尋址相對尋址: :指明相對位移,相對位移不會太大。指明相對位移,相對位移不會太大。 地址分段地址分段: :

40、地址由段號和段內(nèi)地址組成。段內(nèi)地址由段號和段內(nèi)地址組成。段內(nèi) 轉(zhuǎn)移,不需指明段號;斷間轉(zhuǎn)移,指明段號。轉(zhuǎn)移,不需指明段號;斷間轉(zhuǎn)移,指明段號。 寄存器間接尋址寄存器間接尋址: :操作數(shù)存在寄存器內(nèi)或經(jīng)寄存操作數(shù)存在寄存器內(nèi)或經(jīng)寄存器訪存,則地址碼寬度只需窄到指明寄存器號就器訪存,則地址碼寬度只需窄到指明寄存器號就可以了。可以了。段號段號段內(nèi)地址段內(nèi)地址 多種地址制多種地址制: :地址字段個數(shù)多,指令功能強(qiáng),宏地址字段個數(shù)多,指令功能強(qiáng),宏觀所需指令條數(shù)少。且同一地址制可采用多種地觀所需指令條數(shù)少。且同一地址制可采用多種地址形式和長度,或利用空白處存放直接操作數(shù)及址形式和長度,或利用空白處存放直

41、接操作數(shù)及常數(shù)。常數(shù)。地址碼地址碼地址碼地址碼地址碼地址碼地址碼地址碼地址碼地址碼地址碼地址碼操作碼操作碼操作碼操作碼操作碼操作碼操作碼操作碼操作碼操作碼操作碼操作碼RRRRR立即數(shù)立即數(shù)訪存地址訪存地址S三地址制三地址制二地址制二地址制一地址制一地址制R-RR-R型型R-RR-R型型立即型立即型4位位4位位4位位4位位1616位定長指令字位定長指令字圖圖2.18 在定長指令字在定長指令字 內(nèi)實現(xiàn)多種地址制內(nèi)實現(xiàn)多種地址制 圖圖2.19 同種地址制下同種地址制下的多種地址形式和長度的多種地址形式和長度 例如例如:A+B:A+B C C 單地址實現(xiàn)單地址實現(xiàn): :取取A A,加,加B B,送,送

42、C C三條指令。三條指令。 多地址實現(xiàn)多地址實現(xiàn):只需一條指令。:只需一條指令。 以上是對定長指令,還可考慮多種指令長度,以上是對定長指令,還可考慮多種指令長度,更能減小信息冗余,縮短程序長度。更能減小信息冗余,縮短程序長度。 通過不同的尋址方式、地址制、地址形式和通過不同的尋址方式、地址制、地址形式和 地址碼長度及多種指令字長與可變長操作碼的地址碼長度及多種指令字長與可變長操作碼的 優(yōu)化表示相結(jié)合,可以設(shè)計冗余盡可能小的指優(yōu)化表示相結(jié)合,可以設(shè)計冗余盡可能小的指 令字以節(jié)省空間。令字以節(jié)省空間。加加ABC補(bǔ)充知識:補(bǔ)充知識:例如例如:IBM370 的指令格式的指令格式 R1 、 R2、R3為

43、操作數(shù)寄存器和結(jié)果寄存器號為操作數(shù)寄存器和結(jié)果寄存器號 B1 、 B2表示基址寄存器號表示基址寄存器號 D1 、D2表示相對位移表示相對位移 他們分別由操作碼的最高二位狀態(tài)來指明其長他們分別由操作碼的最高二位狀態(tài)來指明其長 度和格式,規(guī)則為:度和格式,規(guī)則為: 00為為RR格式,指令字長格式,指令字長16位位 01為為RX格式,指令字長格式,指令字長32位位 10為為RS或或SI格式,指令字長格式,指令字長32位位 11為為SS格式,指令字長格式,指令字長48位位 R代表寄存器,代表寄存器,S代表存貯器,代表存貯器,X代表變址,代表變址,I代表立代表立即操作數(shù)。即操作數(shù)。 操作碼操作碼B2D2

44、84412RX操作碼操作碼操作數(shù)操作數(shù)長度長度(S)B1B2D1D288441212SS操作碼操作碼常數(shù)常數(shù)LB1D188412SIR1X24操作碼操作碼B2D284412RSR1R34444128操作碼操作碼RRR1R2448圖圖2.20 IBM 370指令的主要格式指令的主要格式2.4 2.4 按按CISCCISC方向發(fā)展與改進(jìn)指令系統(tǒng)方向發(fā)展與改進(jìn)指令系統(tǒng) 1.CISC1.CISC的改進(jìn)思路的改進(jìn)思路 如何進(jìn)一步增強(qiáng)原有指令的功能以及設(shè)置如何進(jìn)一步增強(qiáng)原有指令的功能以及設(shè)置更為復(fù)雜的新指令取代原來由子程序完成的更為復(fù)雜的新指令取代原來由子程序完成的功能,功能, 實現(xiàn)軟件功能的硬化。結(jié)果是

45、系統(tǒng)愈加龐實現(xiàn)軟件功能的硬化。結(jié)果是系統(tǒng)愈加龐大、復(fù)雜,稱為復(fù)雜指令系統(tǒng)計算機(jī)。大、復(fù)雜,稱為復(fù)雜指令系統(tǒng)計算機(jī)。(Complex Instruction Set Computer,CISC)。2.CISC2.CISC的改進(jìn)途徑的改進(jìn)途徑( (三個三個) ) 1)1)面向目標(biāo)程序的優(yōu)化實現(xiàn)來改進(jìn)面向目標(biāo)程序的優(yōu)化實現(xiàn)來改進(jìn) a)a)目的目的:提高各機(jī)器語言目標(biāo)程序的效率,減:提高各機(jī)器語言目標(biāo)程序的效率,減少存貯空間,提高運行速度,容易實現(xiàn)。少存貯空間,提高運行速度,容易實現(xiàn)。 b)b)思路思路: 按統(tǒng)計出的指令和指令串的使用頻度來分析按統(tǒng)計出的指令和指令串的使用頻度來分析改進(jìn)改進(jìn) 靜態(tài)使用頻

46、度靜態(tài)使用頻度:對程序中出現(xiàn)的指令及指令串:對程序中出現(xiàn)的指令及指令串進(jìn)行統(tǒng)計得到的百分比。目的是減少目標(biāo)程序所進(jìn)行統(tǒng)計得到的百分比。目的是減少目標(biāo)程序所占用的存貯空間。占用的存貯空間。 動態(tài)使用頻度動態(tài)使用頻度:在目標(biāo)程序執(zhí)行中對指令和:在目標(biāo)程序執(zhí)行中對指令和 指令串統(tǒng)計的百分比。目的是減少目標(biāo)程序的指令串統(tǒng)計的百分比。目的是減少目標(biāo)程序的 執(zhí)行時間。執(zhí)行時間。 高頻度指令高頻度指令增強(qiáng)功能,加快速度,縮短字長。增強(qiáng)功能,加快速度,縮短字長。 低頻度指令低頻度指令功能合并到高頻指令中或取消。功能合并到高頻指令中或取消。 高頻指令串高頻指令串用新指令取代用新指令取代可以減少訪存,可以減少訪存

47、, 加快速度,縮短長度。加快速度,縮短長度。 如如下面的例子:下面的例子: 成組取成組取R1R3B2D20812162031成組傳送成組傳送B1D108162032L3647D2B2條件轉(zhuǎn)移條件轉(zhuǎn)移M1R2081215條件轉(zhuǎn)移條件轉(zhuǎn)移M1X20812162031B2D2 增設(shè)強(qiáng)功能的復(fù)合指令,取代原先由宏指令或增設(shè)強(qiáng)功能的復(fù)合指令,取代原先由宏指令或子程序?qū)崿F(xiàn)的功能,可以提高運算速度,減少程子程序?qū)崿F(xiàn)的功能,可以提高運算速度,減少程序調(diào)用的額外開銷,也減少子程序所占用的空間。序調(diào)用的額外開銷,也減少子程序所占用的空間。 例如例如IBM 370370上增設(shè)的上增設(shè)的“翻譯翻譯”指令的形式為:指令

48、的形式為:翻譯翻譯LB1D1B2D2081620323647 原則一原則一:不刪改原有指令,增設(shè)強(qiáng)功能指令替:不刪改原有指令,增設(shè)強(qiáng)功能指令替代對代對“瓶頸瓶頸”有直接影響的常用指令,以滿足軟件有直接影響的常用指令,以滿足軟件向后兼容,從而新指令程序效率更高。向后兼容,從而新指令程序效率更高。 原則二原則二:盡量減少程序中如存取、傳送、轉(zhuǎn):盡量減少程序中如存取、傳送、轉(zhuǎn)移、比較等不執(zhí)行數(shù)據(jù)變換的非功能型指令,增移、比較等不執(zhí)行數(shù)據(jù)變換的非功能型指令,增加真正執(zhí)行數(shù)據(jù)變換的加、減、乘、除等功能型加真正執(zhí)行數(shù)據(jù)變換的加、減、乘、除等功能型指令的比例。指令的比例。 2)2)面向高級語言的優(yōu)化來實現(xiàn)面

49、向高級語言的優(yōu)化來實現(xiàn) a)a)目的目的:盡可能縮短高級語言和機(jī)器語言的語義差:盡可能縮短高級語言和機(jī)器語言的語義差距,以利于支持高級語言的編譯系統(tǒng),縮短編譯程距,以利于支持高級語言的編譯系統(tǒng),縮短編譯程序的長度和編譯所需的時間。序的長度和編譯所需的時間。 b)b)思路思路: 對源程序中各高級語言的使用頻度進(jìn)行分析對源程序中各高級語言的使用頻度進(jìn)行分析 由于不同的高級語言用途不同,語句使用頻度由于不同的高級語言用途不同,語句使用頻度差異很大,因此指令系統(tǒng)難以對各種語言都是優(yōu)化差異很大,因此指令系統(tǒng)難以對各種語言都是優(yōu)化的,只能對用戶面向的高級語言優(yōu)化。是零碎、局的,只能對用戶面向的高級語言優(yōu)化

50、。是零碎、局部的。部的。 面向編譯,優(yōu)化代碼生成來實現(xiàn)面向編譯,優(yōu)化代碼生成來實現(xiàn) 增強(qiáng)系統(tǒng)結(jié)構(gòu)的規(guī)整性,減少特殊用法,讓增強(qiáng)系統(tǒng)結(jié)構(gòu)的規(guī)整性,減少特殊用法,讓所有運算對稱、均勻地在存貯所有運算對稱、均勻地在存貯( (寄存寄存) )單元進(jìn)行,單元進(jìn)行,同等對待所有的存貯同等對待所有的存貯( (寄存寄存) )單元。否則編譯時會單元。否則編譯時會為優(yōu)化管理通用寄存器的使用而增加輔助性開銷。為優(yōu)化管理通用寄存器的使用而增加輔助性開銷。 高級語言與機(jī)器語言的差距是造成代碼復(fù)雜、高級語言與機(jī)器語言的差距是造成代碼復(fù)雜、效率低的原因。但系統(tǒng)結(jié)構(gòu)點也不能太過靠近某效率低的原因。但系統(tǒng)結(jié)構(gòu)點也不能太過靠近某一

51、高級語言而造成與其它語言差距更大,如下圖:一高級語言而造成與其它語言差距更大,如下圖: 原則原則: 指令系統(tǒng)設(shè)計為比較的通用和基本,對指令系統(tǒng)設(shè)計為比較的通用和基本,對每種語言都不遠(yuǎn)非是優(yōu)化的,只要通過編譯能比每種語言都不遠(yuǎn)非是優(yōu)化的,只要通過編譯能比較高效的實現(xiàn)即可。較高效的實現(xiàn)即可。 改進(jìn)指令系統(tǒng)改進(jìn)指令系統(tǒng) 使系統(tǒng)節(jié)點與各種語言的語義差距都減小,使系統(tǒng)節(jié)點與各種語言的語義差距都減小,如上圖,把系統(tǒng)結(jié)構(gòu)節(jié)點右移。如上圖,把系統(tǒng)結(jié)構(gòu)節(jié)點右移。右移右移COBOLBASIC FORTRANPL/IAPLVon Neumann型型 系統(tǒng)結(jié)構(gòu)系統(tǒng)結(jié)構(gòu)各種語言與傳統(tǒng)機(jī)器指令系統(tǒng)結(jié)構(gòu)的語義差距各種語言與

52、傳統(tǒng)機(jī)器指令系統(tǒng)結(jié)構(gòu)的語義差距 動態(tài)切換動態(tài)切換 分別面向各種高級語言的多種指令系統(tǒng)、分別面向各種高級語言的多種指令系統(tǒng)、多種系統(tǒng)結(jié)構(gòu),并能動態(tài)切換。多種系統(tǒng)結(jié)構(gòu),并能動態(tài)切換。 BASIC虛擬機(jī)虛擬機(jī) 面向面向 BASIC系統(tǒng)結(jié)構(gòu)系統(tǒng)結(jié)構(gòu)FORTRAN 虛擬機(jī)虛擬機(jī) 面向面向 FORTRAN 系統(tǒng)結(jié)構(gòu)系統(tǒng)結(jié)構(gòu)COBOL虛擬機(jī)虛擬機(jī) 面向面向 COBOL系統(tǒng)結(jié)構(gòu)系統(tǒng)結(jié)構(gòu)操作系統(tǒng)操作系統(tǒng) SDL 虛擬機(jī)虛擬機(jī) 面向面向 SDL系統(tǒng)結(jié)構(gòu)系統(tǒng)結(jié)構(gòu)微程序微程序機(jī)機(jī) 器器B B17001700具有多種系統(tǒng)結(jié)構(gòu)具有多種系統(tǒng)結(jié)構(gòu) 發(fā)展高級語言機(jī)器發(fā)展高級語言機(jī)器 進(jìn)一步增大解釋比重,直至機(jī)器語言與高級進(jìn)一步

53、增大解釋比重,直至機(jī)器語言與高級語言幾乎沒有語義差距。此時,高級語言機(jī)器不語言幾乎沒有語義差距。此時,高級語言機(jī)器不需要編譯。需要編譯。 兩種形式兩種形式: 一種是讓高級語言直接成為機(jī)器的匯編語言,一種是讓高級語言直接成為機(jī)器的匯編語言,使高級語言和機(jī)器語言基本一一對應(yīng),稱這種為使高級語言和機(jī)器語言基本一一對應(yīng),稱這種為間接執(zhí)行高級語言機(jī)器。間接執(zhí)行高級語言機(jī)器。 另一種是高級語言本身作為機(jī)器語言,由硬另一種是高級語言本身作為機(jī)器語言,由硬件或固件對其語句逐條解釋執(zhí)行,不需編譯和匯件或固件對其語句逐條解釋執(zhí)行,不需編譯和匯編,稱為直接執(zhí)行高級語言機(jī)器。編,稱為直接執(zhí)行高級語言機(jī)器。 3)3)面

54、向操作系統(tǒng)的優(yōu)化來實現(xiàn)改進(jìn)面向操作系統(tǒng)的優(yōu)化來實現(xiàn)改進(jìn) a)a)背景背景:OSOS幾乎占用計算機(jī)系統(tǒng)資源的三分幾乎占用計算機(jī)系統(tǒng)資源的三分之一,甚至更多。若系統(tǒng)結(jié)構(gòu)對之一,甚至更多。若系統(tǒng)結(jié)構(gòu)對OSOS的支持不的支持不夠,不能使夠,不能使OSOS中的進(jìn)程管理、設(shè)備管理、文中的進(jìn)程管理、設(shè)備管理、文件管理、中斷處理等比現(xiàn)有系統(tǒng)有更好的性件管理、中斷處理等比現(xiàn)有系統(tǒng)有更好的性能和更高的效率,計算機(jī)系統(tǒng)就難以得到發(fā)能和更高的效率,計算機(jī)系統(tǒng)就難以得到發(fā)展。而且,展。而且,OSOS的實現(xiàn)更深依于賴系統(tǒng)結(jié)構(gòu)是的實現(xiàn)更深依于賴系統(tǒng)結(jié)構(gòu)是否為它的實現(xiàn)提供相應(yīng)的硬件支持。否為它的實現(xiàn)提供相應(yīng)的硬件支持。 b)

55、b)目的目的:縮短:縮短OSOS與系統(tǒng)結(jié)構(gòu)的語義差距,減與系統(tǒng)結(jié)構(gòu)的語義差距,減少運行少運行OSOS所需的輔助時間,節(jié)省所需的輔助時間,節(jié)省OSOS軟件所占軟件所占用的存貯空間。用的存貯空間。 c)c)思路思路: 統(tǒng)計和分析統(tǒng)計和分析OSOS中常用指令中常用指令( (串串) )的使用頻度的使用頻度 增加專用于增加專用于OSOS的新指令的新指令 硬化或固化子程序的某些功能硬化或固化子程序的某些功能 硬件實現(xiàn)用于提高系統(tǒng)執(zhí)行效率和速度,減硬件實現(xiàn)用于提高系統(tǒng)執(zhí)行效率和速度,減 小小OSOS的開銷。適用于能確切定義、穩(wěn)定的機(jī)構(gòu)的開銷。適用于能確切定義、穩(wěn)定的機(jī)構(gòu) 型功能。型功能。( (進(jìn)程管理、信息

56、保護(hù)、存貯管理等進(jìn)程管理、信息保護(hù)、存貯管理等) ) 軟件實現(xiàn)用于提供系統(tǒng)靈活性。這一方法不軟件實現(xiàn)用于提供系統(tǒng)靈活性。這一方法不 適用因環(huán)境而異、不穩(wěn)定的策略型功能。適用因環(huán)境而異、不穩(wěn)定的策略型功能。( (上機(jī)上機(jī) 費用、作業(yè)排隊、用戶標(biāo)示等)費用、作業(yè)排隊、用戶標(biāo)示等) 發(fā)展功能分布處理系統(tǒng)結(jié)構(gòu)發(fā)展功能分布處理系統(tǒng)結(jié)構(gòu) A進(jìn)程進(jìn)程 B進(jìn)程進(jìn)程 主存主存(按字節(jié)編址按字節(jié)編址)07取取C存存C增值增值K1LCK公公用用區(qū)區(qū)A、B進(jìn)程共用進(jìn)程共用K公用區(qū)獨立給公用區(qū)獨立給C增值增值條件碼條件碼補(bǔ)充補(bǔ)充:舉例舉例 A A進(jìn)程進(jìn)程 B B進(jìn)程進(jìn)程A1:A1:測試與置定測試與置定L B1:L B1

57、:測試與置定測試與置定L L 條件轉(zhuǎn)移條件轉(zhuǎn)移A1 A1 條件轉(zhuǎn)移條件轉(zhuǎn)移B1 B1 調(diào)用公用區(qū)調(diào)用公用區(qū)K K 調(diào)用公用區(qū)調(diào)用公用區(qū)K K K K公用區(qū)子程序公用區(qū)子程序 K1:K1:取取C C 增值增值 存存C C 清除清除L L 返回返回測試與置定測試與置定未用未用B2D208162031 采用比較與交換指令后,采用比較與交換指令后,A A給給C C增值改成:增值改成: 取取R R1 1, C (C) R, C (C) R1 1, , A1:A1:取取R R3 3, R, R1 1 (R(R1 1) ) R R3 3 增值增值R R3 3 (R(R3 3)+1 )+1 R R3 3 比較

58、與交換比較與交換 若若(R(R1 1) )(C),(R(C),(R3 3) C,) C,置條件碼為置條件碼為0000 R R1 1, R, R3 3, C , C 若若(R(R1 1) )(C),(C) R(C),(C) R1 1, ,置條件碼為置條件碼為01 01 條件轉(zhuǎn)移條件轉(zhuǎn)移A1 A1 若條件碼為若條件碼為0101進(jìn)行轉(zhuǎn)移進(jìn)行轉(zhuǎn)移比較與交換比較與交換B2D208162031R1R3123.CISC3.CISC的結(jié)構(gòu)和思路存在的問題的結(jié)構(gòu)和思路存在的問題 1)1)指令系統(tǒng)龐大,設(shè)計麻煩,周期長,成本高,指令系統(tǒng)龐大,設(shè)計麻煩,周期長,成本高, 可靠性低,查錯和糾錯代價大??煽啃缘停殄e和

59、糾錯代價大。 2)2)指令操作煩雜,執(zhí)行速度很低。指令操作煩雜,執(zhí)行速度很低。 3)3)難以優(yōu)化編譯生成真正高效的機(jī)器語言。難以優(yōu)化編譯生成真正高效的機(jī)器語言。 4)4)各種指令使用頻度不高,且差別大,有些指各種指令使用頻度不高,且差別大,有些指 令利用率很低,降低系統(tǒng)性價比。令利用率很低,降低系統(tǒng)性價比。 2.5 2.5 按按RISCRISC方向發(fā)展與改進(jìn)指令系統(tǒng)方向發(fā)展與改進(jìn)指令系統(tǒng)1. 1. RISCRISC的提出的提出 CISCCISC的問題的問題: : 1)1)指令系統(tǒng)龐大指令系統(tǒng)龐大, ,一般在一般在200200條指令以上;條指令以上;2)2)許多指令的操作繁雜,指令執(zhí)行速度低;許

60、多指令的操作繁雜,指令執(zhí)行速度低;3)3)由于指令系統(tǒng)龐大,編譯程序效率低;由于指令系統(tǒng)龐大,編譯程序效率低;4)4)由于指令系統(tǒng)龐大,各種指令利用率低。由于指令系統(tǒng)龐大,各種指令利用率低。 RISCRISC的改進(jìn)思路的改進(jìn)思路: : 通過減少指令總數(shù)和簡化指令功能來降低硬件設(shè)通過減少指令總數(shù)和簡化指令功能來降低硬件設(shè)計的復(fù)雜度,提高指令執(zhí)行速度。按這種途徑和方向計的復(fù)雜度,提高指令執(zhí)行速度。按這種途徑和方向發(fā)展,使機(jī)器指令精練簡單,因此稱為精簡指令系統(tǒng)發(fā)展,使機(jī)器指令精練簡單,因此稱為精簡指令系統(tǒng)計算機(jī)計算機(jī)(Reduced Instruction Set (Reduced Instruct

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論