計(jì)算機(jī)組成原理chp4_第1頁
計(jì)算機(jī)組成原理chp4_第2頁
計(jì)算機(jī)組成原理chp4_第3頁
計(jì)算機(jī)組成原理chp4_第4頁
計(jì)算機(jī)組成原理chp4_第5頁
已閱讀5頁,還剩95頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、1 第四章第四章 指令系統(tǒng)指令系統(tǒng) 4.1 指令系統(tǒng)的發(fā)展與性能要求 4.2 指令格式與 4.3 操作數(shù)類型 4.4 指令和數(shù)據(jù)的尋址方式 4.5 典型指令 返回 2 4.1 指令系統(tǒng)的發(fā)展與性能要求指令系統(tǒng)的發(fā)展與性能要求 1、指令在計(jì)算機(jī)系統(tǒng)中的地位 (1)是軟件和硬件分界面的一個(gè)主要標(biāo)志 l硬件設(shè)計(jì)人員采用各種手段實(shí)現(xiàn)它; l軟件設(shè)計(jì)人員則利用它編制各種各樣的系統(tǒng)軟件和 應(yīng)用軟件 (2)是硬件設(shè)計(jì)人員和軟件設(shè)計(jì)人員之間的分 界面,也是他們之間溝通的橋梁。 3 4.1 指令系統(tǒng)的發(fā)展與性能要求指令系統(tǒng)的發(fā)展與性能要求 2、指令系統(tǒng)基本概念 l指令:就是要計(jì)算機(jī)執(zhí)行某種操作的命令。從計(jì)算機(jī)組

2、成的層 次結(jié)構(gòu)來說,計(jì)算機(jī)的指令有微指令、機(jī)器指令和宏指令之分。 微指令是微程序級(jí)的命令,它屬于硬件; l宏指令:由若干條機(jī)器指令組成的軟件指令,它屬于軟件; l機(jī)器指令:介于微指令與宏指令之間,通常簡(jiǎn)稱為指令,每一 條指令可完成一個(gè)獨(dú)立的算術(shù)運(yùn)算或邏輯運(yùn)算操作。 l本章所討論的指令,是機(jī)器指令。本章所討論的指令,是機(jī)器指令。 l一臺(tái)計(jì)算機(jī)中所有機(jī)器指令的集合,稱為這臺(tái)計(jì)算機(jī)的指令系 統(tǒng)。 l指令系統(tǒng)是表征一臺(tái)計(jì)算機(jī)性能的重要因素,它的格式與功能 不僅直接影響到機(jī)器的硬件結(jié)構(gòu),而且也直接影響到系統(tǒng)軟件, 影響到機(jī)器的適用范圍 4 4.1 指令系統(tǒng)的發(fā)展與性能要求指令系統(tǒng)的發(fā)展與性能要求 3、發(fā)

3、展情況 l復(fù)雜指令系統(tǒng)計(jì)算機(jī),簡(jiǎn)稱CISC。但是如 此龐大的指令系統(tǒng)不但使計(jì)算機(jī)的研制周期 變長(zhǎng),難以保證正確性,不易調(diào)試維護(hù),而 且由于采用了大量使用頻率很低的復(fù)雜指令 而造成硬件資源浪費(fèi)。 l精簡(jiǎn)指令系統(tǒng)計(jì)算機(jī):簡(jiǎn)稱RISC,人們又 提出了便于VLSI技術(shù)實(shí)現(xiàn)的精簡(jiǎn)指令系統(tǒng)計(jì) 算機(jī)。 5 4.1 指令系統(tǒng)的發(fā)展與性能要求指令系統(tǒng)的發(fā)展與性能要求 4、為什么會(huì)出現(xiàn)CISC到RISC的轉(zhuǎn)變 l2/8規(guī)則 l控制器設(shè)計(jì)難度下降 6 4.1 指令系統(tǒng)的發(fā)展與性能要求指令系統(tǒng)的發(fā)展與性能要求 5、對(duì)指令系統(tǒng)的要求 l完備性:完備性:完備性是指用匯編語言編寫各種程序時(shí),指令系統(tǒng)直接提供的 指令足夠使用

4、,而不必用軟件來實(shí)現(xiàn)。完備性要求指令系統(tǒng)豐富、功能 齊全、使用方便。一臺(tái)計(jì)算機(jī)中最基本、必不可少的指令是不多的。許 多指令可用最基本的指令編程來實(shí)現(xiàn)。例如,乘除運(yùn)算指令、浮點(diǎn)運(yùn)算 指令可直接用硬件來實(shí)現(xiàn),也可用基本指令編寫的程序來實(shí)現(xiàn)。采用硬 件指令的目的是提高程序執(zhí)行速度,便于用戶編寫程序。 l有效性:有效性:有效性是指利用該指令系統(tǒng)所編寫的程序能夠高效率地運(yùn)行。 高效率主要表現(xiàn)在程序占據(jù)存儲(chǔ)空間小、執(zhí)行速度快。一般來說,一個(gè) 功能更強(qiáng)、更完善的指令系統(tǒng),必定有更好的有效性。 7 4.1 指令系統(tǒng)的發(fā)展與性能要求指令系統(tǒng)的發(fā)展與性能要求 5、對(duì)指令系統(tǒng)的要求 l規(guī)整性:規(guī)整性:規(guī)整性包括指令

5、系統(tǒng)的對(duì)稱性、勻齊性、指令格式和數(shù)據(jù)格式 的一致性。對(duì)稱性是指:在指令系統(tǒng)中所有的寄存器和存儲(chǔ)器單元都可 同等對(duì)待,所有的指令都可使用各種尋址方式;勻齊性是指:一種操作 性質(zhì)的指令可以支持各種數(shù)據(jù)類型,如算術(shù)運(yùn)算指令可支持字節(jié)、字、 雙字整數(shù)的運(yùn)算,十進(jìn)制數(shù)運(yùn)算和單、雙精度浮點(diǎn)數(shù)運(yùn)算等;指令格式 和數(shù)據(jù)格式的一致性是指:指令長(zhǎng)度和數(shù)據(jù)長(zhǎng)度有一定的關(guān)系,以方便 處理和存取。例如指令長(zhǎng)度和數(shù)據(jù)長(zhǎng)度通常是字節(jié)長(zhǎng)度的整數(shù)倍。 l兼容性:兼容性:系列機(jī)各機(jī)種之間具有相同的基本結(jié)構(gòu)和共同的基本指令集, 因而指令系統(tǒng)是兼容的,即各機(jī)種上基本軟件可以通用。但由于不同機(jī) 種推出的時(shí)間不同,在結(jié)構(gòu)和性能上有差異,

6、做到所有軟件都完全兼容 是不可能的,只能做到“向上兼容”,即低檔機(jī)上運(yùn)行的軟件可以在高 檔機(jī)上運(yùn)行。 8 4.1 指令系統(tǒng)的發(fā)展與性能要求指令系統(tǒng)的發(fā)展與性能要求 6、低級(jí)語言與高級(jí)語言關(guān)系 比較內(nèi)容高級(jí)語言低級(jí)語言 1 對(duì)程序員的訓(xùn)練要求 (1)通用算法 (2)語言規(guī)則 (3)硬件知識(shí) 有 較少 不要 有 較多 要 2 對(duì)機(jī)器獨(dú)立的程度獨(dú)立不獨(dú)立 3 編制程序的難易程度 易難 4 編制程序所需時(shí)間短較長(zhǎng) 5 程序執(zhí)行時(shí)間較長(zhǎng)短 6 編譯過程中對(duì)計(jì)算機(jī)資 源的要求 多 少 9 4.2 指令格式指令格式 l影響計(jì)算機(jī)指令格式的因素 l機(jī)器的字長(zhǎng) l存儲(chǔ)器的容量 l指令的功能 l指令能反映以下信息

7、 l做什么操作 l如果需要操作數(shù),從哪里取 l結(jié)果送哪里 l下一條指令從哪里取 l所以指令格式包括兩個(gè)方面: 操作碼字段操作碼字段地址碼字段地址碼字段 10 4.2 指令格式指令格式 一、操作碼 l設(shè)計(jì)計(jì)算機(jī)時(shí),對(duì)指令系統(tǒng)的每一條指令都要規(guī)定一個(gè)操作碼。 指令的操作碼OP表示該指令應(yīng)進(jìn)行什么性質(zhì)的操作,如進(jìn)行加 法、減法、乘法、除法、取數(shù)、存數(shù)等等。不同的指令用操作 碼字段的不同編碼來表示,每一種編碼代表一種指令。 l組成操作碼字段的位數(shù)一般取決于計(jì)算機(jī)指令系統(tǒng)的規(guī)模。較 大的指令系統(tǒng)就需要更多的位數(shù)來表示每條特定的指令。 l等長(zhǎng)(指令規(guī)整,譯碼簡(jiǎn)單) l例如IBM 370機(jī),該機(jī)字長(zhǎng)32位,

8、16個(gè)通用寄存器R0 R15,共有183條指令;指令的長(zhǎng)度可以分為16位、32位 和48位等幾種,所有指令的操作碼都是8位固定長(zhǎng)度。 l固定長(zhǎng)度編碼的主要缺點(diǎn)是:信息的冗余極大,使程序的 總長(zhǎng)度增加。 11 二、地址碼二、地址碼 l根據(jù)一條指令中有幾個(gè)操作數(shù)地址,可將該指 令稱為幾操作數(shù)指令或幾地址指令。 三地址指令 二地址指令 單地址指令 零地址指令 12 二、地址碼二、地址碼 l三地址指令 l指令格式如下: l操作碼 第一操作數(shù)A1 第二操作數(shù)A2 結(jié)果 A3 l功能描述: l(A1)(A2)A3 l(PC) +1PC l這種格式雖然省去了一個(gè)地址,但指令長(zhǎng)度仍比較 長(zhǎng),所以只在字長(zhǎng)較長(zhǎng)的

9、大、中型機(jī)中使用,而小 型、微型機(jī)中很少使用。 13 二、地址碼二、地址碼 l二地址指令 l其格式如下: l操作碼第一操作數(shù)A1第二操作數(shù)A2 l 功能描述: l(A1)(A2)A1 l(PC)+1PC l二地址指令在計(jì)算機(jī)中得到了廣泛的應(yīng)用,但是在 使用時(shí)有一點(diǎn)必須注意:指令執(zhí)行之后,A1中原存 的內(nèi)容已經(jīng)被新的運(yùn)算結(jié)果替換了。 14 二、地址碼二、地址碼 l二地址地址根據(jù)操作數(shù)的物理位置分為: lSS 存儲(chǔ)器-存儲(chǔ)器類型 lRS 寄存器-存儲(chǔ)器類型 lRR 寄存器-寄存器類型 慢 15 二、地址碼二、地址碼 l一地址指令 l指令格式為: l 操作碼 第一操作數(shù)A1 l功能描述: l(AC)

10、(A1) A1 l(PC)+1PC l單操作數(shù)運(yùn)算指令,如“+1”、“-1”、“求反” l指令中給出一個(gè)源操作數(shù)的地址 16 二、地址碼二、地址碼 l零地址指令 l其格式為: l 操作碼 l“停機(jī)”、“空操作”、“清除”等控制類 指令。 17 三三、指令長(zhǎng)度、指令長(zhǎng)度 l概念 l指令字長(zhǎng)度(一個(gè)指令字包含二進(jìn)制代碼的位數(shù)) l機(jī)器字長(zhǎng):計(jì)算機(jī)能直接處理的二進(jìn)制數(shù)據(jù)的位數(shù)。 l單字長(zhǎng)指令 l半字長(zhǎng)指令 l雙字長(zhǎng)指令 l多字長(zhǎng)指令多字長(zhǎng)指令的優(yōu)缺點(diǎn) l優(yōu)點(diǎn)提供足夠的地址位來解決訪問內(nèi)存任何單元的尋址問題 ; l缺點(diǎn)必須兩次或多次訪問內(nèi)存以取出一整條指令,降低了CPU的 運(yùn)算速度,又占用了更多的存儲(chǔ)

11、空間。 l指令系統(tǒng)中指令采用等長(zhǎng)指令等長(zhǎng)指令的優(yōu)點(diǎn):各種指令字長(zhǎng)度是相等的, 指令字結(jié)構(gòu)簡(jiǎn)單,且指令字長(zhǎng)度是不變的 ; l采用非等長(zhǎng)指令非等長(zhǎng)指令的的優(yōu)點(diǎn):各種指令字長(zhǎng)度隨指令功能而異,結(jié) 構(gòu)靈活,能充分利用指令長(zhǎng)度,但指令的控制較復(fù)雜 。 指令格式優(yōu)化指令格式優(yōu)化 l優(yōu)化原由: 指令字長(zhǎng)要短,以得到時(shí)間和空間上的優(yōu)勢(shì);而指令 字長(zhǎng)必須有足夠的長(zhǎng)度。(矛盾!) l原則: 在不減少指令數(shù)量的前提下,盡可能縮短指令字的長(zhǎng) 度。 l指令字長(zhǎng)一般應(yīng)是機(jī)器字符長(zhǎng)度的整數(shù)倍以便存儲(chǔ)系統(tǒng)的 管理。若機(jī)器中字長(zhǎng)是L位,則指令字長(zhǎng)最好是0.5L,L, 2L,4L,8L等。 優(yōu)化方法:優(yōu)化方法: l1、盡可能減少

12、地址碼的個(gè)數(shù) 盡可能采用單地址指令格式;操作數(shù)和運(yùn)算結(jié) 果盡可能存于CPU或通用寄存器中。 l 2、操作碼長(zhǎng)度的縮短 操作碼有兩種編碼格式: 固定格式:操作碼長(zhǎng)度固定,且集中放在指令 字的一個(gè)字段中; 可變格式:即操作碼長(zhǎng)度可變,且分散地放在 指令字的不同字段中。 擴(kuò)展操作碼(可變格式)擴(kuò)展操作碼(可變格式) l1、要點(diǎn): (1) 操作碼位數(shù)隨地址碼個(gè)數(shù)變化采取可 變長(zhǎng)度的類型; (2) 各指令間指令碼一定不重復(fù); (3) 根據(jù)需要靈活變通。 l一個(gè)重要的原則是使用頻率高的指令應(yīng)分配較 短的操作碼,使用頻率低的指令分配較長(zhǎng)的操 作碼。 l2、比較 假設(shè)一臺(tái)計(jì)算機(jī)指令字長(zhǎng)12位,操作碼與 地址碼

13、都為3位,如圖所示。 (1) 方法一:固定格式,則最多可以設(shè)計(jì)8條 三地址指令。 A1操作碼操作碼OPA3A2 3位3位3位3位 A1操作碼操作碼OPA3A2 l2) 方法二:擴(kuò)展操作碼 指令字長(zhǎng)為12位,每個(gè)地址碼為3位,采用擴(kuò)展操作碼 的方式,設(shè)計(jì)4條三地址指令、255條一地址指令和8條零地 址指令。 l4條三地址指令 000 * * *011 * * * l255條一地址指令 100 000 000 *111 111 110 * l8條零地址指令 111 111 111 000111 111 111 111 l操作碼平均長(zhǎng)度為 (4*3+255*9+8*12)/(4+255+8)=9 例

14、:某指令系統(tǒng)指令長(zhǎng)16位,每個(gè)操作數(shù)的地址碼長(zhǎng)6位, 指令分為無操作數(shù)、單操作數(shù)和雙操作數(shù)三類。若雙操作 數(shù)指令有K條,無操作數(shù)指令有L條,問單操作數(shù)指令最多 可能有多少條? A1(6位)位) 操作碼(操作碼(4位)位) A2(6位)位) 解:設(shè)單操作數(shù)指令最多可以有解:設(shè)單操作數(shù)指令最多可以有x條,則:條,則: 無操作數(shù)指令無操作數(shù)指令L=( -K) - x 2 4 2 6 2 6 x=( - K) -L/ 2 4 2 6 2 6 24 五、指令助記符五、指令助記符 l由于硬件只能識(shí)別1和0,所以采用二進(jìn)制操作 碼是必要的,但是我們用二進(jìn)制來書寫程序卻 非常麻煩。 l為了便于書寫和閱讀程序,

15、每條指令通常用3 個(gè)或4個(gè)英文縮寫字母來表示。這種縮寫碼叫 做指令助記符 用34個(gè)英文字母來表示操作碼,一般為英文縮寫 不同的計(jì)算機(jī)系統(tǒng),規(guī)定不一樣 必須用匯編語言翻譯成二進(jìn)制代碼 25 六、指令格式舉例六、指令格式舉例 l8位微型計(jì)算機(jī)的指令格式 l如8088,字長(zhǎng)8位,指令結(jié)構(gòu)可變 l包括單字長(zhǎng)指令、雙字長(zhǎng)指令和三字長(zhǎng)指令 l操作碼長(zhǎng)度固定 lPDP/11系列機(jī)的指令格式 l字長(zhǎng)16位 l單字長(zhǎng)指令 l操作碼字段不固定 26 七七、 Pentium指令格式指令格式 l指令長(zhǎng)度可變,最短1個(gè)字節(jié),最長(zhǎng)12個(gè)字節(jié),典型的CISC指 令系統(tǒng) l由可選前綴(04)、操作碼(12)、一個(gè)由mod-R

16、/M字節(jié) 和一個(gè)SIB(Scale Index Base)比例變址字節(jié)組成的地址指定 器、一個(gè)可選的位移量(04)和一個(gè)可選的立即數(shù)字段(04) 構(gòu)成。 指令前綴段取代操作數(shù)長(zhǎng)度取代地址長(zhǎng)度取代 操作碼ModReg或操作碼R/MSIB位移量立即數(shù) 27 七七、 Pentium指令格式指令格式 l指令前綴中的重復(fù)前綴指定串的重復(fù)操作,這樣使 Pentium處理串比軟循環(huán)快得多。 lLOCK前綴用于多CPU環(huán)境中對(duì)共享存儲(chǔ)器的排他性 訪問 l段取代用于改變默認(rèn)段寄存器的情況 l操作數(shù)長(zhǎng)度取代和地址長(zhǎng)度取代用于在保護(hù)模式下決 定操作數(shù)和指令的長(zhǎng)度 l以下4個(gè)指令前綴都是可選的,分別為0或1個(gè)字節(jié) 指

17、令前綴段取代操作數(shù)長(zhǎng)度取代地址長(zhǎng)度取代 28 七七、 Pentium指令格式指令格式 l操作碼是必須的,12個(gè)字節(jié) lMod、Reg、R/M為共1個(gè)字節(jié),是可選的。 lmod-R/M指定的操作數(shù)是在R中還是在M中。 lmod(2位)R/M(3位)的32種值構(gòu)成了8種寄存 器方式和24種變址方式(參考匯編語言教材); lReg或OP(3位)指定另一個(gè)操作數(shù)(寄存器)或 用作OP的補(bǔ)充。 操作碼ModReg或操作碼R/MSIB位移量立即數(shù) 1個(gè)字節(jié)1個(gè)字節(jié) 29 七七、 Pentium指令格式指令格式 lS、I、B共1個(gè)字節(jié),分別是比例系數(shù)、變址寄存器號(hào)、 基址寄存器號(hào),可選。mod-R/M中的某

18、些編碼要求 SIB字節(jié)來完成尋址方式的指定; lSS(2)指定比例變換的因子, lIndex(2)指定變址寄存器, lBase(3)指定基址寄存器 l位移量:可以是0,1,2,4個(gè)字節(jié) l立即數(shù):可以是0,1,2,4個(gè)字節(jié) 操作碼ModReg或操作碼R/MSIB位移量立即數(shù) 30 4.3 操作數(shù)類型操作數(shù)類型 l操作數(shù)類型 l地址數(shù)據(jù):地址實(shí)際上也是一種形式的數(shù)據(jù)。 l數(shù)值數(shù)據(jù):計(jì)算機(jī)中普遍使用的三種類型的數(shù)值數(shù)據(jù)。 l字符數(shù)據(jù):文本數(shù)據(jù)或字符串,目前廣泛使用ASCII碼。 l邏輯數(shù)據(jù):一個(gè)單元中有幾位二進(jìn)制bit項(xiàng)組成,每個(gè)bit的值 可以是1或0。當(dāng)數(shù)據(jù)以這種方式看待時(shí),稱為邏輯性數(shù)據(jù)。

19、lPentium數(shù)據(jù)類型(見表4.4) l常規(guī)數(shù)據(jù)類型 l整數(shù)數(shù)據(jù)類型 l. 31 4.4 指令和數(shù)據(jù)的尋址方式指令和數(shù)據(jù)的尋址方式 l研究問題 l確定本條指令中各操作數(shù)的地址 l下一條指令的地址 l尋址方式是指CPU根據(jù)指令中給出的地址碼字 段尋找相應(yīng)的操作數(shù)的方式,它與計(jì)算機(jī)硬件 結(jié)構(gòu)緊密相關(guān),而且對(duì)指令的格式和功能有很 大的影響。 32 4.4 指令和數(shù)據(jù)的尋址方式指令和數(shù)據(jù)的尋址方式 l指令的尋址方式 l順序方式 lPC l跳躍方式 33 4.4 指令和數(shù)據(jù)的尋址方式指令和數(shù)據(jù)的尋址方式 l操作數(shù)的尋址方式 l形成操作數(shù)有效地址的方法,稱為尋址方 式。 l操作數(shù)通常放在哪兒呢? 34

20、4.4 指令和數(shù)據(jù)的尋址方式指令和數(shù)據(jù)的尋址方式 l操作數(shù)包含在指令中; l操作數(shù)包含在CPU的某一個(gè)內(nèi)部寄存器中; l操作數(shù)包含在主存儲(chǔ)器中; l操作數(shù)包含在I/O設(shè)備的端口中 l根據(jù)操作數(shù)放在不同的地方,從而派生各種不 同的尋址方式,往往不同的計(jì)算機(jī)具有不同的 尋址方式。 35 36 1、隱含尋址、隱含尋址 l指令中隱含著操作數(shù)的地址 l如某些運(yùn)算,隱含了累加器AC作為源和目的寄存器 l如8086匯編中的STC指令,設(shè)置標(biāo)志寄存器的C為1 37 2、立即尋址、立即尋址 l立即尋址是一種特殊的尋址方式,指令中在操作碼字 段后面的部分不是通常意義上的操作數(shù)地址,而是操 作數(shù)本身,也就是說數(shù)據(jù)就

21、包含在指令中,只要取出 指令,就取出了可以立即使用的操作數(shù),因此,這樣 的操作數(shù)被稱為立即數(shù)。 l指令格式:操作碼 操作數(shù)A 38 2、立即尋址、立即尋址 l特點(diǎn):在取指令時(shí),操作碼和操作數(shù)被同時(shí)取出,不 必再次訪問存儲(chǔ)器,從而提高了指令的執(zhí)行速度。 l但是,因?yàn)椴僮鲾?shù)是指令的一部分,不能被修改; l而且對(duì)于定 長(zhǎng)指令格式,操作數(shù)的大小將受到指令長(zhǎng) 度的限制,所以這種尋址方式靈活性最差 l通常用于給某一寄存器或主存單元賦初值,或者用于 提供一個(gè)常數(shù)。 39 3、直接尋址 l 指令中地址碼字段給出的地址A就是操作數(shù)的 有效地址EA(Effective Address),即EAA。 41 3、直接

22、尋址 l操作數(shù)地址是不能修改的,與程序本身所在的位置 無關(guān),所以又叫做絕對(duì)尋址方式 l在早期的計(jì)算機(jī)中,主存儲(chǔ)器的容量較小,指令中 地址碼的位數(shù)要求不長(zhǎng),采用直接尋址方式簡(jiǎn)單快 速,也便于硬件實(shí)現(xiàn),因此,常被作為主要的尋址 方式。 l但在現(xiàn)代,隨著計(jì)算機(jī)主存容量的不斷擴(kuò)大,所需 的地址碼將會(huì)越來越長(zhǎng)。指令中地址碼的位數(shù)將不 能滿足整個(gè)主存空間尋址的要求,因此直接尋址方 式受到了很大的限制。另外,在指令的執(zhí)行過程中, 為了取得操作數(shù),必須進(jìn)行訪存操作,降低了指令 的執(zhí)行速度。 42 4、間接尋址 l 間接尋址意味著指令的地址碼部分給出的 地址A不是操作數(shù)的地址,而是存放操作數(shù) 地址的主存單元的地

23、址,簡(jiǎn)稱操作數(shù)地址的 地址。操作數(shù)的有效地址的計(jì)算公式為: EA(A) 44 4、間接尋址 l特點(diǎn):因?yàn)椴僮鲾?shù)的有效地址在主存儲(chǔ)器中,可以 被靈活的修改而不必修改指令,從而使間接尋址要 比直接尋址靈活得多。但是,間接尋址在指令執(zhí)行 過程中至少需要兩次訪問主存儲(chǔ)器才能取出操作數(shù), 嚴(yán)重降低了指令執(zhí)行的速度。 45 5、寄存器尋址 l在指令的地址碼部分給出CPU內(nèi)某一通用寄存器的 編號(hào),指令的操作數(shù)存放在相應(yīng)的寄存器中,即 EA=Ri 優(yōu)點(diǎn): (1)由于寄存器在CPU的內(nèi)部,指令在執(zhí)行時(shí)從寄存 器中取操作數(shù)比訪問主存要快得多; (2)由于寄存器的數(shù)量較少,因此寄存器編號(hào)所占位數(shù) 也較少,從而可以有

24、效減少指令的地址碼字段的長(zhǎng) 度。 46 6、寄存器間接尋址 l為了克服間接尋址中多次訪存的缺點(diǎn),可采用寄存器間接尋址, 即將操作數(shù)放在主存儲(chǔ)器中,而操作數(shù)的地址放在某一通用寄 存器中,然后在指令的地址碼部分給出該通用寄存器的編號(hào), 這時(shí)有EA=(Ri) l這種尋址方式的指令較短,并且在取指后只需一次訪存便可得到操作 數(shù),因此指令執(zhí)行速度較前述的間接尋址方式要快,也是目前在計(jì)算 機(jī)中使用較為廣泛的一種尋址方式。 47 7、相對(duì)尋址 l由程序計(jì)數(shù)器由程序計(jì)數(shù)器PC提供基準(zhǔn)地址,而指令的地址碼提供基準(zhǔn)地址,而指令的地址碼 部分給出相對(duì)的位移量部分給出相對(duì)的位移量D,兩者相加后作為操作數(shù),兩者相加后作

25、為操作數(shù) 的有效地址,即:的有效地址,即:EA(PC)D。 48 7、相對(duì)尋址 l對(duì)尋址方式使程序模塊可采用浮動(dòng)地址,編程時(shí) 只要確定程序內(nèi)部操作數(shù)與指令之間的相對(duì)距離, 而無需確定操作數(shù)在主存儲(chǔ)器中的絕對(duì)地址,這 樣,將程序安排在主存儲(chǔ)器的任意位置都不會(huì)影 響程序執(zhí)行的正確性。 49 8、基址尋址 l在基址尋址方式中,指令的地址碼部分給出偏 移量D,而基準(zhǔn)地址放在基址寄存器Rb中,最 后操作數(shù)的有效地址仍然是由基準(zhǔn)地址A與偏 移量D相加而成,即:EA(Rb)D。用哪一 個(gè)寄存器作為基址寄存器也必須在硬件設(shè)計(jì)時(shí) 就事先規(guī)定,基址寄存器Rb中的內(nèi)容稱為基 準(zhǔn)地址,該值可正可負(fù)。 50 8、基址尋

26、址 l基址寄存器的位數(shù)可以設(shè)置得很長(zhǎng),從而可以在較 大的存儲(chǔ)空間中尋址。 51 9、變址尋址 l變址尋址就是將指令的地址碼部分給出的基準(zhǔn) 地址A與CPU內(nèi)某特定的變址寄存器Rx中的內(nèi) 容相加,以形成操作數(shù)的有效地址,即:EA A(Rx)。用哪一個(gè)寄存器作為變址寄存器 必須在硬件設(shè)計(jì)時(shí)就事先規(guī)定,變址寄存器 Rx中的內(nèi)容稱為變址值,該值可正可負(fù)。 52 9、變址尋址 53 9、變址尋址 l變址尋址方式是一種被廣泛采用的尋址方式,最典 型的應(yīng)用就是將指令的地址碼部分給出的地址A作 為基準(zhǔn)地址,而將變址寄存器Rx中的內(nèi)容作為修改 量。在遇到需要頻繁修改操作數(shù)地址時(shí),無須修改 指令,只要修改Rx中的變

27、址值就可以了,這對(duì)于數(shù) 組運(yùn)算、字符串操作等一些進(jìn)行成批數(shù)據(jù)處理的指 令是很有用的。 54 10、段尋址方式、段尋址方式 1111、堆棧結(jié)構(gòu)及其尋址方式、堆棧結(jié)構(gòu)及其尋址方式 1)堆棧是一種數(shù)據(jù)結(jié)構(gòu)。它是壓入和彈出都在棧頂?shù)囊?端進(jìn)行的結(jié)構(gòu);特點(diǎn):“后進(jìn)先出”。 2)分類:1)硬堆棧:由CPU內(nèi)部設(shè)置的專用寄存器構(gòu)成; (速度快,容量?。?)軟堆棧:在主存儲(chǔ)器中劃 分的專門用于堆棧的一片區(qū)域。(容量大,速度慢) 3)堆棧結(jié)構(gòu)在計(jì)算機(jī)中的作用 (a) 具有堆棧結(jié)構(gòu)的機(jī)器使用零地址指令,這使得 指令長(zhǎng)度短,指令結(jié)構(gòu)簡(jiǎn)單,機(jī)器硬件簡(jiǎn)化。 (b) 實(shí)現(xiàn)程序調(diào)用,子程序嵌套調(diào)用和遞歸調(diào)用。 (c) 對(duì)

28、于“中斷”技術(shù),堆棧更是不可缺少的,保 存“斷點(diǎn)”和“現(xiàn)場(chǎng)”。 4)軟堆棧的操作(SP始終指向棧頂) 設(shè)數(shù)據(jù)進(jìn)棧方向?yàn)閺母叩刂废虻偷刂钒l(fā)展 (“向下生長(zhǎng)),當(dāng)向堆棧壓入數(shù)據(jù)時(shí), SP的內(nèi)容先自動(dòng)遞減而指向一個(gè)新的空棧 頂單元,再把數(shù)據(jù)寫入此棧頂單元;當(dāng)數(shù)據(jù) 彈出堆棧時(shí),立即讀出SP所指向的棧頂單 元內(nèi)容,再把SP內(nèi)容自動(dòng)遞增而指向新的 棧頂位置。即 PUSH X;(SP)-1SP (X)(SP) POP X; (SP)X (SP)+1SP 堆棧寄存器SP 通用寄存器 100 101 102 103 104 105 106 A進(jìn)棧 B進(jìn)棧 B出棧 A出棧 軟堆棧過程 105 A A B B AA

29、 104103104105 BA 常用尋址方式及有效地址的計(jì)算常用尋址方式及有效地址的計(jì)算 尋址方式尋址方式有效地址有效地址尋址方式尋址方式有效地址有效地址 立即尋址立即尋址Data=DData=D變址尋址變址尋址E=RE=Rx x+D+D 寄存器尋址寄存器尋址Data=RData=R變址間接尋址變址間接尋址E=(RE=(Rx x+D)+D) 寄存器直接尋址寄存器直接尋址 E=RE=R間接變址尋址間接變址尋址E=RE=Rx x+(D)+(D) 寄存器間接尋址寄存器間接尋址 E=(R)E=(R)基址尋址基址尋址E=RE=Rb b+D+D 直接尋址直接尋址E=DE=D基址間接尋址基址間接尋址E=(

30、RE=(Rb b+D)+D) 間接尋址間接尋址E=(D)E=(D)間接基址尋址間接基址尋址E=RE=Rb b+(D)+(D) 二次間接尋址二次間接尋址E=(D)E=(D)基址變址尋址基址變址尋址E=RE=Rx x+R+Rb b+D+D 相對(duì)尋址相對(duì)尋址E=PC+DE=PC+D 注:注:DataData操作數(shù)操作數(shù) E E有效地址有效地址 R Rx x變址寄存器變址寄存器 R Rb b基址寄存器基址寄存器 D D形式地址形式地址 R R寄存器寄存器 PCPC程序計(jì)數(shù)器程序計(jì)數(shù)器 ( )某單元的內(nèi)容某單元的內(nèi)容 尋址方式例題 例1:一條雙字長(zhǎng)的LOAD指令存儲(chǔ)地址為200和201的存儲(chǔ)位置, 該指

31、令將地址碼指定的內(nèi)容裝入累加器AC中,指令的第一個(gè) 字指定操作碼和尋址方式,第二個(gè)字是地址部分。(PC) =200;(R1)=400;變址寄存器XR的內(nèi)容是100。 條件(201)=500;(309)=450;(400)=700;(500)=800; (600)=900;(702)=325;(800)=300 問:若尋址方式分別為以下的方式,那么裝入AC的值? 1)直接尋址;2)立即數(shù)尋址;3)間接尋址;4)相對(duì)尋址; 5)變址尋址;6)寄存器(R1)尋址;7)寄存器間接尋址 62 尋址方式舉例:尋址方式舉例: Pentium 63 Pentium尋址方式尋址方式 方式算法 立即作數(shù)=A 寄存

32、器LA=R 偏移量LA=(SR)+A 基址LA=(SR)+(B) 基址帶偏移量LA=(SR)+(B)+A 比例變址帶偏移量LA=(SR)+(I)S+A 基址帶變址和偏移量LA=(SR)+(B)+(I)+A 基址帶比例變址和偏移量 LA=(SR)+(B)+(I)S+A 相對(duì)LA=(PC)+A 64 例例4 l某16位機(jī)器所使用的指令格式和尋址方式如下所示,該機(jī)有兩個(gè) 20位基址寄存器,四個(gè)16位變址寄存器,十六個(gè)16位通用寄存器。 指令匯編格式中的S(源),D(目標(biāo))都是通用寄存器,M是主 存中的一個(gè)單元。三種指令的操作碼分別是MOV(OP)=(A)H, STO(OP)=(1B)H,LAD(OP

33、)=(3C)H。MOV是傳送指 令,STO為存數(shù)指令,LAD為取數(shù)指令。要求: (1)分析三種指令的指令格式與尋址方式特點(diǎn)。 (2)CPU完成哪一種操作所花時(shí)間最短?哪一種操作所花時(shí)間最長(zhǎng)? 第二種指令的執(zhí)行時(shí)間有時(shí)會(huì)等于第三種指令的執(zhí)行時(shí)間嗎? (3)下列情況下每個(gè)十六進(jìn)制指令字分別代表什么操作?其中如果有 編碼不正確,如何改正才能成為合法指令? 65 P118例例4 F0F1 3CD2 1111 0000 1111 0001 0011 1100 1101 0010 3C15號(hào)寄存器13CD2 把主存13CD2的內(nèi)存裝載到15號(hào)寄存器 6FD6 0110111111010110由于是單字長(zhǎng)指

34、令,則一定是MOV指令。 則OP錯(cuò)誤,修改為001010001101011028D6 66 4.5 典型指令典型指令 l指令分類與基本指令類型指令分類與基本指令類型 l數(shù)據(jù)傳送類指令 l一般傳送指令: MOV AX,BX l數(shù)據(jù)交換指令: XCHG l堆棧操作指令: PUSH,POP l運(yùn)算類指令 l算術(shù)運(yùn)算指令: 加、減、乘、除以及加1、減1、比較 l邏輯運(yùn)算指令: l移位指令 l程序控制類指令 l程序控制類指令用于控制程序的執(zhí)行方向,并使程序具有測(cè) 試、分析與判斷的能力。 l 輸入和輸出指令、字符串處理指令、特權(quán)指令、其他指令 67 4.5 典型指令典型指令 l基本指令系統(tǒng) lP122表4

35、.9介紹 l20%和80%規(guī)律:CISC中大約有20%的指令使用頻率高,占據(jù)了 80%的處理機(jī)時(shí)間,而有80%的不常用指令只占用處理機(jī)的20% 時(shí)間。 lVLSI技術(shù)發(fā)展引起的問題 lVLSI工藝要求規(guī)整性,而大量復(fù)雜指令控制邏輯極其不規(guī)整,給VLSI 工藝造成了很大的困難。 l現(xiàn)在用微程序?qū)崿F(xiàn)復(fù)雜指令與用簡(jiǎn)單指令組成的子程序相比,沒有多 大的區(qū)別。因?yàn)楝F(xiàn)在控制存儲(chǔ)器和主存的速度差縮小。 lCISC中,通過增強(qiáng)指令系統(tǒng)的功能,簡(jiǎn)化了軟件,增加了硬件的 復(fù)雜程度。然而指令復(fù)雜了,指令的執(zhí)行時(shí)間必然加長(zhǎng),從而使 整個(gè)系統(tǒng)的執(zhí)行時(shí)間反而增加,因而在計(jì)算機(jī)體系結(jié)構(gòu)設(shè)計(jì)中, 軟硬件的功能分配必須恰當(dāng) 6

36、8 4.5 典型指令典型指令 lRISC l特點(diǎn)(采用流水線技術(shù)) l簡(jiǎn)單而統(tǒng)一格式的指令譯碼; l大部分指令可以單周期執(zhí)行 l只有LOAD/STORE可以訪問存儲(chǔ)器 l簡(jiǎn)單的尋址方式 l采用延遲轉(zhuǎn)移技術(shù) l采用LOAD延遲技術(shù) l三地址指令格式 l較多的寄存器 l對(duì)稱的指令格式 返回 CISC和和RISC l復(fù)雜指令集計(jì)算機(jī)(CISC) 長(zhǎng)期來,計(jì)算機(jī)性能的提高往往是通過增 加硬件的復(fù)雜性來獲得隨著集成電路技術(shù)、 超大規(guī)模集成電路技術(shù)的迅速發(fā)展,為了軟件 編程方便和提高程序的運(yùn)行速度,硬件工程師 采用的辦法是不斷增加可實(shí)現(xiàn)復(fù)雜功能的指令 和多種靈活的編址方式甚至某些指令可支持 高級(jí)語言語句歸

37、類后的復(fù)雜操作至使硬件越 來越復(fù)雜,造價(jià)也相應(yīng)提高為實(shí)現(xiàn)復(fù)雜操作, 微處理器除向程序員提供類似各種寄存器和機(jī) 器指令功能外還通過存于只讀存貯器(ROM) 中的微程序來實(shí)現(xiàn)其極強(qiáng)的功能 ,CPU在分析 每一條指令之后執(zhí)行一系列初級(jí)指令運(yùn)算來完 成所需的功能,這種設(shè)計(jì)的型式被稱為復(fù)雜指 令集計(jì)算機(jī)(Complex Instruction Set Computer-CISC)結(jié)構(gòu) l一般CISC計(jì)算機(jī)所含的指令數(shù)目至少 300條以上,有的甚至超過500條早 期的計(jì)算機(jī)使用匯編語言編程,由于 內(nèi)存速度慢且價(jià)格昂貴,使得CISC體 系得到了用武之地。在20世紀(jì)90年代 中期之前,大多數(shù)的微處理器都采用

38、CISC體系包括Intel的80 x86和 Motorola的68K系列等。 l1CISC體系的指令特征 使用微代碼。指令集可以直接在微代碼內(nèi) 存(比主內(nèi)存的速度快很多)里執(zhí)行,新設(shè)計(jì) 的處理器,只需增加較少的晶體管就可以執(zhí)行 同樣的指令集,也可以很快地編寫新的指令集 程序。 龐大的指令集??梢詼p少編程所需要的代 碼行數(shù),減輕程序員的負(fù)擔(dān)。 高級(jí)語言對(duì)應(yīng)的指令集。包括雙操作數(shù)格 式、寄存器到寄存器、寄存器到內(nèi)存以及內(nèi)存 到寄存器的指令。 l2CISC體系的優(yōu)缺點(diǎn) 優(yōu)點(diǎn):能夠有效縮短新指令的微代碼設(shè)計(jì) 時(shí)間,允許設(shè)計(jì)師實(shí)現(xiàn)CISC體系機(jī)器的向上 兼容。新的系統(tǒng)可以使用一個(gè)包含早期系統(tǒng)的 指令超集

39、,也就可以使用較早電腦上使用的相 同軟件。另外微程序指令的格式與高級(jí)語言相 匹配,因而編譯器并不一定要重新編寫。 缺點(diǎn):指令集以及芯片的設(shè)計(jì)比上一代產(chǎn) 品更復(fù)雜,不同的指令,需要不同的時(shí)鐘周期 來完成,執(zhí)行較慢的指令,將影響整臺(tái)機(jī)器的 執(zhí)行效率。 IBM POWER6 精簡(jiǎn)指令集計(jì)算機(jī)精簡(jiǎn)指令集計(jì)算機(jī)(RISC) (RISC) l精簡(jiǎn)指令集計(jì)算機(jī)(RISC) 采用復(fù)雜指令系統(tǒng)的計(jì)算機(jī)有著較強(qiáng)的處 理高級(jí)語言的能力這對(duì)提高計(jì)算機(jī)的性能是 有益的當(dāng)計(jì)算機(jī)的設(shè)計(jì)沿著這條道路發(fā)展 時(shí)有些人沒有隨波逐流他們回過頭去看一 看過去走過的道路,開始懷疑這種傳統(tǒng)的做法: IBM公司沒在紐約Yorktown的Jh

40、omasI.Wason 研究中心于1975年組織力量研究指令系統(tǒng)的 合理性問題因?yàn)楫?dāng)時(shí)已感到,日趨龐雜的指 令系統(tǒng)不但不易實(shí)現(xiàn)而且還可能降低系統(tǒng)性 能1979年以帕特遜教授為首的一批科學(xué)家 也開始在美國(guó)加冊(cè)大學(xué)伯克萊分校開展這一研 究 l結(jié)果表明,CISC存在許多缺點(diǎn)首先在這 種計(jì)算機(jī)中各種指令的使用率相差懸殊:事 實(shí)上最頻繁使用的指令是取、存和加這些最簡(jiǎn) 單的指令這樣一來,長(zhǎng)期致力于復(fù)雜指令系 統(tǒng)的設(shè)計(jì),實(shí)際上是在設(shè)計(jì)一種難得在實(shí)踐中 用得上的指令系統(tǒng)的處理器同時(shí)復(fù)雜的指 令系統(tǒng)必然帶來結(jié)構(gòu)的復(fù)雜性這不但增加了 設(shè)計(jì)的時(shí)間與成本還容易造成設(shè)計(jì)失誤此 外盡管VLSI技術(shù)現(xiàn)在已達(dá)到很高的水平,但

41、 也很難把CISC的全部硬件做在一個(gè)芯片上, 這也妨礙單片計(jì)算機(jī)的發(fā)展 l在CISC中,許多復(fù)雜指令需要極復(fù)雜的操作, 這類指令多數(shù)是某種高級(jí)語言的直接翻版,因 而通用性差由于采用二級(jí)的微代碼執(zhí)行方式, 它也降低那些被頻繁調(diào)用的簡(jiǎn)單指令系統(tǒng)的運(yùn) 行速度因而針對(duì)CISC的這些弊病帕特 遜等人提出了精簡(jiǎn)指令的設(shè)想,即指令系統(tǒng)應(yīng) 當(dāng)只包含那些使用頻率很高的少量指令并提 供一些必要的指令以支持操作系統(tǒng)和高級(jí)語 言按照這個(gè)原則發(fā)展而成的計(jì)算機(jī)被稱為精 簡(jiǎn)指令集計(jì)算機(jī)(Reduced Instruction Set Computer-RISC)結(jié)構(gòu)簡(jiǎn)稱RISC l它的關(guān)鍵技術(shù)在于流水線操作(Pipelin

42、ing): 在一個(gè)時(shí)鐘周期里完成多條指令。而超流水線 以及超標(biāo)量技術(shù)已普遍在芯片設(shè)計(jì)中使用。 RISC體系多用于非x86陣營(yíng)高性能微處理器 CPU,廠商包括主要APPLE、SGI/MIPS、 IBM、SUN、Compaq/Digital(DEC)、 Motorola等。這些廠商設(shè)計(jì)的處理器在某種程 度上,代表了RISC CPU的發(fā)展趨勢(shì)。 RISC技術(shù)的類型技術(shù)的類型 l在眾多的RISC處理器中,如何了解它們的性 能和設(shè)計(jì)技術(shù)的差別,以便正確選擇和應(yīng)用它 們,這對(duì)系統(tǒng)設(shè)計(jì)者來講是至關(guān)重要的。由于 早期RISC的發(fā)展基本上起源于一些著名大學(xué) 和公司的研究計(jì)劃雖然RISC的處理器的品 種很多,制造

43、廠商也不相同但就其性能和設(shè) 計(jì)技術(shù)的差異可分四類:它們的典型代表是 IBM公司的810小型計(jì)算機(jī);帕克萊分校的 RISC、RISC;斯坦福大學(xué)的MIPS R2000、R3000 和R4000以及克雷公司的 CRAY-1目前幾乎所有各大公司研制或生產(chǎn) 的RISC處理器產(chǎn)品部分別隸屬于這四種類型。 lIBM 801小型計(jì)算機(jī) 810小型計(jì)算機(jī)是IBM公司于70年代末期開始研制的32 位小型機(jī),它排除了通常的兩級(jí)微碼控制方式,取而代之 的是在硬件中直接執(zhí)行一組精選的簡(jiǎn)單指令和優(yōu)化的編譯 程序這種特殊的編譯程序通過對(duì)程序詳細(xì)執(zhí)行步驟進(jìn)行 重新安派以便更有效地利用CPU資源來提高程序的運(yùn)行 速度,因?yàn)樗?/p>

44、放棄了對(duì)復(fù)雜指令系統(tǒng)執(zhí)行微碼的方式,這 就有利于用硬連線控制系統(tǒng)來執(zhí)行為數(shù)不多的簡(jiǎn)單指 令為了達(dá)到單周期時(shí)間執(zhí)行一條指令的目的,存貯器結(jié) 構(gòu)使CPU不需等待訪問存貯器的時(shí)間提供指令和數(shù)據(jù)高 速緩存(CACHE),有32個(gè)32位寄存器所有指令在寄存器 中執(zhí)行,同時(shí)編譯器分寄存器和全局優(yōu)化及存取校驗(yàn)部件, 還具有延遲轉(zhuǎn)移功能,是一臺(tái)采用緊藕合硬件和編譯技術(shù) 相結(jié)合的RISC計(jì)算機(jī)。 l柏克萊分校的RISCI、RISC型 RISCI、RISC是帕克萊分校分別于1982年和1984 年研制成功的32位微處理器,它們的設(shè)計(jì)專注于最有效地 利用大規(guī)模整合電路(VLSI)芯片的區(qū)域研究,因?yàn)镽ISC設(shè) 計(jì)的

45、有限個(gè)簡(jiǎn)單指令只需要相對(duì)少量的芯片控制邏輯電路, 而芯片上更多的區(qū)域可以用作系統(tǒng)功能以加強(qiáng)處理器的 性能和使它的功能多樣化它們采用重疊窗口技術(shù)有多 達(dá)138*32位寄存器組成8個(gè)重疊窗口,在相鄰界面上有6 個(gè)寄存器以提供窗口間的運(yùn)行參數(shù)和結(jié)果,它們是專為相 鄰兩個(gè)窗口共享的,在處理器中寄存器作為臨時(shí)數(shù)據(jù)存 貯的快速存取區(qū),通過這些寄存據(jù)保持信息參數(shù)在 CISC計(jì)算機(jī)中子程序調(diào)用之前,參數(shù)是存于系統(tǒng)內(nèi)存 中這樣非常浪費(fèi)時(shí)間,而RISCI、RISC利用寄存器來 傳送參數(shù)很有效地降低了執(zhí)行子程序調(diào)用時(shí)所需要的時(shí) 間指令數(shù)為31個(gè)。 lMIPS R x 000系列型 斯坦福大學(xué)的MIPS計(jì)劃,它不采用

46、帕克萊分校的RISC 窗口技術(shù)而采用消除流水線各級(jí)互鎖的微處理器 MIPS(Microprosessor Without Interlocking Pipeline Stage)技術(shù)它將IBM公司對(duì)優(yōu)化編譯程序的研究和帕克 萊分校的大規(guī)模集成電路的思想結(jié)合起來流水線是現(xiàn)代 各類微處理器都采用的指令執(zhí)行技巧即將若干條指令的 取指令,譯碼和執(zhí)行過程部分重疊在流水線中同時(shí)執(zhí) 行但在 CISC計(jì)算機(jī)中,由于指令多而復(fù)雜處理每條 指令的所得時(shí)間不固定,當(dāng)后面指令需要前條指令的結(jié) 果往往造成指令互鎖斯坦福大學(xué)的MIPS計(jì)劃就是在編 譯過程中,利用編譯程序優(yōu)化處理器的流水線,以求提高 處理器流水線的效率,由

47、于采用硬連續(xù)控制來執(zhí)行為數(shù)不 多的簡(jiǎn)單指令,且能重組軟件流水線這樣就減少硬件復(fù) 雜性 lCRAY-I型 克雷(CRAY)公司的巨型機(jī)CRAY-I,它是70 年代中期開發(fā)成功的最先采用面向寄存器操作 的精簡(jiǎn)指令的高速計(jì)算機(jī),公司創(chuàng)始人 Seymvur CRAY一開始就反對(duì)過在他的巨型計(jì)算 機(jī)系列的設(shè)計(jì)中采用增加指令的建議因此 CRAY一1除大量采用標(biāo)量、向量和地址寄存器 外還采用流水線技術(shù)以達(dá)到高速運(yùn)算的能力, 做到了一個(gè)機(jī)器周期時(shí)間里執(zhí)行一條指令的目 標(biāo)所以有人講CRAY一1是RISC技術(shù)的鼻祖 RISC技術(shù)的設(shè)計(jì)技巧技術(shù)的設(shè)計(jì)技巧 lRISC的設(shè)計(jì)原則是使系統(tǒng)設(shè)計(jì)達(dá)到最高的有效速 度,將那些

48、能對(duì)系統(tǒng)性能產(chǎn)生凈增益的功能用硬 件實(shí)現(xiàn)其余大部分都用軟件實(shí)現(xiàn)它排除了那 些實(shí)現(xiàn)復(fù)雜功能的復(fù)雜指令,所謂精簡(jiǎn)并不是 簡(jiǎn)單的減少而是保留經(jīng)驗(yàn)證明的能提高機(jī)器性 能的指令,另外還將編譯器作為機(jī)器的功能而 且RISC微處理器使編譯器能夠直接訪問基本的硬 件功能,RISC設(shè)計(jì)的基本目的在于使計(jì)算機(jī)結(jié)構(gòu) 更加簡(jiǎn)單、更加合理、更加有效指令經(jīng)過精簡(jiǎn) 后計(jì)算機(jī)體系結(jié)構(gòu)自然趨于簡(jiǎn)單在這個(gè)基礎(chǔ) 上,還必須克服CISC的許多缺點(diǎn)使得計(jì)算機(jī)速 度更快,程序運(yùn)行時(shí)間縮短這樣RISC才能以 嶄新的面貌出現(xiàn) RISC技術(shù)的主要設(shè)計(jì)技巧及其特點(diǎn)技術(shù)的主要設(shè)計(jì)技巧及其特點(diǎn) l1短周期時(shí)間 為了指令的快速執(zhí)行,就必須快速選擇譯

49、碼和減小寄存器存取時(shí)間,盡量采用先進(jìn)工藝技術(shù)以縮短 機(jī)器周期時(shí)間,也即提高機(jī)器的工作頻率 2單周期執(zhí)行指令由于RISC微處理器的指令經(jīng)過精選, 所有指令長(zhǎng)度都相同大多數(shù)指令都能在一個(gè)機(jī)器周期內(nèi) 執(zhí)行完實(shí)際上,大多數(shù)RISC微處理器在沒有增加并行 技術(shù)時(shí),平均每條指令執(zhí)行時(shí)間為1.25-2個(gè)機(jī)器周期時(shí)間, 而CISC微處理器在相同工藝技術(shù)條件下平均執(zhí)行每條指 令需5-8個(gè)機(jī)器周期時(shí)間,RISC微處理器力求達(dá)到每一個(gè) 機(jī)器周期時(shí)間執(zhí)行一條指令單周期執(zhí)行指令是RISC 微 處理器性能增強(qiáng)的基礎(chǔ)必須簡(jiǎn)化指令系統(tǒng)和采用流水線 技術(shù) l3 load(取)Store(存)結(jié)構(gòu) 每當(dāng)一條指令得要訪問主存信息時(shí)

50、機(jī)器的執(zhí)行速度 將會(huì)降低RISC的loadrestore指令只有在訪問內(nèi)存時(shí) 才使用,所有其它的指令都是在寄存器內(nèi)對(duì)數(shù)據(jù)進(jìn)行運(yùn) 算一條存取數(shù)指令(load)從內(nèi)存將數(shù)據(jù)取出放到寄存器 中,在那里可以對(duì)數(shù)據(jù)進(jìn)行快速處理,并把它暫存在寄存 器里,以便將來還要使用在適當(dāng)?shù)臅r(shí)候一條存數(shù)指令 (store)可將這個(gè)數(shù)據(jù)送回到它在內(nèi)存中的地址中 去CISC微處理器支持那些直接從內(nèi)存處理信息的指 令這些指令需要多個(gè)機(jī)器周期時(shí)間才能完成RISC的設(shè) 計(jì)技術(shù)與CISC的設(shè)計(jì)技術(shù)相比有大量寄存器由于允許 數(shù)據(jù)在寄存器中保留較長(zhǎng)的時(shí)間這樣就減少了存取指 令對(duì)內(nèi)存訪問的需要在寄存器中每當(dāng)再被使用時(shí)不必 再次訪問內(nèi)存這

51、種Loadrestore結(jié)構(gòu)通過寄存器對(duì)寄 存器進(jìn)行操作的方式乃是獲得單周期執(zhí)行的關(guān)鍵 l4簡(jiǎn)單固定格式的指令系統(tǒng)所有指令采用32位固定長(zhǎng) 度,尋址方式不超過三種,簡(jiǎn)化了邏輯和縮短譯碼時(shí) 間確保單周期執(zhí)行指令,同時(shí)也有利于流水線操作的執(zhí) 行這是由于指令的固定格式保證指令譯碼和取操作能同 時(shí)進(jìn)行 5不用微碼技術(shù)由于RISC的設(shè)計(jì)采用簡(jiǎn)單合理的指 令系統(tǒng)和簡(jiǎn)化的尋址方式所以排除微代碼設(shè)計(jì)技術(shù),即 不采用微碼只讀存貯器(ROM),而是直接在硬件中執(zhí)行指 令,這意味著省去將機(jī)器指令轉(zhuǎn)換成原始微代碼這一中間 步驟,這也就減少了執(zhí)行一條指令所需要的機(jī)器周期個(gè)數(shù), 也就節(jié)省了芯片的空間,使得可以利用這些節(jié)省

52、下來的芯 片空間擴(kuò)展微處理器功能 l6大寄存器堆 RISC微處理器中大量的計(jì)算都在ALU高速 寄存器中執(zhí)行由編譯器產(chǎn)生、分配和優(yōu)化寄存器的使 用從而簡(jiǎn)化流水線結(jié)構(gòu)和使指令周期降到最小,同時(shí)又 不訪問內(nèi)存允許調(diào)用的嵌套執(zhí)行,但這也增加ALU周期 中的寄存器存取時(shí)間和一些選址機(jī)構(gòu)因此在任務(wù)變換中 需要較高的開銷 l7延遲轉(zhuǎn)移這可解決指令轉(zhuǎn)移相關(guān)問題,它把轉(zhuǎn)移指 令與前一條指令交換位置以避免浪費(fèi)一個(gè)機(jī)器周期時(shí)間, 這不是靠程序員去完成,而是由RISC的編譯程序自動(dòng)完 成這也是 RISC設(shè)計(jì)技術(shù)一個(gè)重要特性 l8高效的流水線操作 當(dāng)前不論什么結(jié)構(gòu)的微處理器都毫無例外地采用流水 線技術(shù),以達(dá)到高速執(zhí)行指

53、令的能力,因?yàn)榱魉€的每一 級(jí)都負(fù)責(zé)執(zhí)行一個(gè)單個(gè)的操作段比如、指令譯碼或取操 作數(shù)。實(shí)際上一個(gè)流水線微處理器是在同一時(shí)刻對(duì)數(shù)條指 令進(jìn)行操作CISC微處理器執(zhí)行指令時(shí)效率低,甚至有時(shí) 會(huì)使執(zhí)行過程處于短暫的停滯狀態(tài)例如,當(dāng)處理器遇到 一條執(zhí)行時(shí)間比預(yù)定時(shí)間要長(zhǎng)的指令,它必須延長(zhǎng)這條指 令的操作這樣就要阻止其它指令在流水線中正常執(zhí)行流 水線操作,直到這條長(zhǎng)指令的完成這種狀態(tài)除了降低了 執(zhí)行指令效率外還迫使設(shè)計(jì)者將處理器的微結(jié)構(gòu)在硬件 上設(shè)計(jì)得更加復(fù)雜,以便對(duì)付這些問題而在RISC微處理 器設(shè)計(jì)中,它具有對(duì)指令執(zhí)行時(shí)間的預(yù)測(cè)能力,因此它能 使流水線在高效率狀態(tài)下運(yùn)行 l9硬連線控制采用少量、簡(jiǎn)單、

54、固定的硬連線控制邏 輯替代微碼以實(shí)現(xiàn)減少指令系統(tǒng)保證短周期,單周期執(zhí) 行指令,但不能處理復(fù)雜指令,除在特定狀態(tài)機(jī)(state machine或使用垂直微碼外不能處理多個(gè)Load Restore指令。 l10重疊寄存器窗口技術(shù) 重疊寄存器窗口技術(shù):在處理機(jī)中設(shè)置一個(gè)數(shù)量比較 大的寄存器堆,并把它劃分成很多個(gè)窗口。每個(gè)過程使用 其中相鄰的三個(gè)窗口和一個(gè)公共的窗口,而在這些窗口中 有一個(gè)窗口是與前一個(gè)過程共用,還有一個(gè)窗口是與下一 個(gè)過程共用的。與前一過程共用的窗口可以用來存放前一 過程傳送給本過程的參數(shù),同時(shí)也存放本過程傳送給前一 過程的計(jì)算結(jié)果。同樣,與下一過程共用窗口可以用來存 放本過程傳送給

55、下一過程的參數(shù)和存放下一過程傳送給本 過程的計(jì)算結(jié)果。 l11優(yōu)化編譯程序 l12增強(qiáng)存貯管理功能 l13面向高級(jí)語言在R1SC設(shè)計(jì)中不用微碼高 級(jí)語言可直接由硬件實(shí)現(xiàn)通過-次編譯直接 生成由硬件執(zhí)行的機(jī)器代碼這樣可提高執(zhí)行 速度不過程序員沒有可讀的匯編語言,適合 人工編碼 l14哈佛(Harvard)總線結(jié)構(gòu) RISC體系的優(yōu)缺點(diǎn)體系的優(yōu)缺點(diǎn) l優(yōu)點(diǎn):在使用相同的晶片技術(shù)和相同運(yùn)行時(shí)鐘下,RISC 系統(tǒng)的運(yùn)行速度將是CISC的24倍。由于RISC處理器的 指令集是精簡(jiǎn)的,它的內(nèi)存管理單元、浮點(diǎn)單元等都能設(shè) 計(jì)在同一塊芯片上。RISC處理器比相對(duì)應(yīng)的CISC處理器 設(shè)計(jì)更簡(jiǎn)單,所需要的時(shí)間將變得更短,并可以比CISC 處理器應(yīng)用更多先進(jìn)的技術(shù),開發(fā)更快的下一代處理器。 l缺點(diǎn):多指令的操作使得程序開發(fā)者必須小心地選用合適 的編譯器,而且編寫的代碼量會(huì)變得非常大。另外就是 RISC體系的處理器需要更快內(nèi)存,這通常都集成于處理 器內(nèi)部,就是L1 Cache(一級(jí)緩存)。 CISC VS RISC l長(zhǎng)期以來,由于英特爾的x86處理器可以執(zhí)行1到 87個(gè)字節(jié)長(zhǎng)度的指令,人們都認(rèn)為x86處理器是 典型的CISC處

溫馨提示

  • 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. 人人文庫網(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)論