第2章指令系統(tǒng)的設(shè)計_第1頁
第2章指令系統(tǒng)的設(shè)計_第2頁
第2章指令系統(tǒng)的設(shè)計_第3頁
第2章指令系統(tǒng)的設(shè)計_第4頁
第2章指令系統(tǒng)的設(shè)計_第5頁
已閱讀5頁,還剩85頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、1 1/90/90第2章 指令系統(tǒng)的設(shè)計2 2/90/902.1指令系統(tǒng)結(jié)構(gòu)的分類2.2尋址方式2.3指令系統(tǒng)的設(shè)計與優(yōu)化2.4 指令系統(tǒng)的發(fā)展和改進(jìn)2.5操作數(shù)的類型和大小2.6MIPS指令系統(tǒng)結(jié)構(gòu)3 3/90/901. 區(qū)別不同指令系統(tǒng)結(jié)構(gòu)的主要因素 CPU中用來存儲操作數(shù)的存儲單元的類型2. CPU中用來存儲操作數(shù)的存儲單元堆棧累加器通用寄存器組3. 將指令系統(tǒng)的結(jié)構(gòu)分為三種類型2.1 指令系統(tǒng)結(jié)構(gòu)的分類4 4/90/902.1 指令系統(tǒng)結(jié)構(gòu)的分類堆棧結(jié)構(gòu)累加器結(jié)構(gòu)通用寄存器結(jié)構(gòu)根據(jù)操作數(shù)的來源不同,又可進(jìn)一步分為根據(jù)操作數(shù)的來源不同,又可進(jìn)一步分為:q寄存器寄存器- -存儲器結(jié)構(gòu)存儲器

2、結(jié)構(gòu)(RMRM結(jié)構(gòu))結(jié)構(gòu)) ( (操作數(shù)可以來自存儲器操作數(shù)可以來自存儲器 ) )q寄存器寄存器- -寄存器結(jié)構(gòu)寄存器結(jié)構(gòu)(RRRR結(jié)構(gòu))結(jié)構(gòu)) ( (所有操作數(shù)都是來自通用寄存器組所有操作數(shù)都是來自通用寄存器組) ) 也稱為也稱為load-storeload-store結(jié)構(gòu),這個名稱強調(diào):只有結(jié)構(gòu),這個名稱強調(diào):只有l(wèi)oadload指令和指令和storestore指令能夠訪問存儲器。指令能夠訪問存儲器。 5 5/90/902.1 指令系統(tǒng)結(jié)構(gòu)的分類 對于不同類型的結(jié)構(gòu),操作數(shù)的位置、個數(shù)以及操作數(shù)的給出方式(顯式或隱式)也會不同。顯式給出:用指令字中的操作數(shù)字段給出隱式給出:使用事先約定好的

3、單元 6 6/90/902.1 指令系統(tǒng)結(jié)構(gòu)的分類 例: 表達(dá)式表達(dá)式Z Z=X+Y=X+Y在在4 4種類型指令系統(tǒng)結(jié)構(gòu)上的代碼。種類型指令系統(tǒng)結(jié)構(gòu)上的代碼。 假設(shè):假設(shè):X X、Y Y、Z Z均保存在存儲器單元中,并且不能均保存在存儲器單元中,并且不能 破壞破壞X X和和Y Y的值。的值。堆 棧 累加器寄存器(RM型) 寄存器(RR型) push Xload Xload R1,Xload R1,Xpush Yadd Yadd R1,Yload R2,Yaddstore Zstore R1,Zadd R3,R1,R2pop Zstore R3,Z7 7/90/902.1 指令系統(tǒng)結(jié)構(gòu)的分類 通

4、用寄存器型結(jié)構(gòu)現(xiàn)代指令系統(tǒng)結(jié)構(gòu)的主流在靈活性和提高性能方面有明顯的優(yōu)勢q跟其它的跟其它的CPUCPU內(nèi)部存儲單元一樣,寄存器的訪問內(nèi)部存儲單元一樣,寄存器的訪問 速度比存儲器快。速度比存儲器快。q對編譯器而言,能更加容易、有效地分配和使用對編譯器而言,能更加容易、有效地分配和使用 寄存器。寄存器。q寄存器可以用來存放變量。寄存器可以用來存放變量。 (1 1)減少對存儲器的訪問,加快程序的執(zhí)行速度;減少對存儲器的訪問,加快程序的執(zhí)行速度; (因為寄存器比存儲器快)(因為寄存器比存儲器快) 8 8/90/902.1 指令系統(tǒng)結(jié)構(gòu)的分類(2 2)用更少的地址位(相對于存儲器地址來說)來對寄用更少的地

5、址位(相對于存儲器地址來說)來對寄 存器進(jìn)行尋址,從而有效地減少程序的目標(biāo)代碼的存器進(jìn)行尋址,從而有效地減少程序的目標(biāo)代碼的 大小。大小。 根據(jù)ALU指令的操作數(shù)的兩個特征對通用寄存器型結(jié) 構(gòu)進(jìn)一步細(xì)分ALU指令的操作數(shù)個數(shù)q3 3個操作數(shù)的指令個操作數(shù)的指令 兩個源操作數(shù)、一個目的操作數(shù)兩個源操作數(shù)、一個目的操作數(shù)q2 2個操作數(shù)的指令個操作數(shù)的指令其中一個操作數(shù)既作為源操作數(shù),又作為目的操作數(shù)。其中一個操作數(shù)既作為源操作數(shù),又作為目的操作數(shù)。9 9/90/902.1 指令系統(tǒng)結(jié)構(gòu)的分類ALU指令中存儲器操作數(shù)的個數(shù)可以是可以是0 0中的某一個,為中的某一個,為0 0表示沒有存儲器操作數(shù)。表

6、示沒有存儲器操作數(shù)。ALU指令中存儲器操作數(shù)的個數(shù) ALU指令中操作數(shù)的最多個數(shù) 結(jié)構(gòu)類型 機器實例 03RR MIPS,SPARC,Alpha,PowerPC,ARM12RM IBM 360/370,Intel 80 x86,Motorola 680003RM IBM 360/370 22MM VAX 33MM VAX 7. ALU指令中操作數(shù)個數(shù)和存儲器操作數(shù)個數(shù)的典型組合1111/90/902.1 指令系統(tǒng)結(jié)構(gòu)的分類 通用寄存器型結(jié)構(gòu)進(jìn)一步細(xì)分為3種類型寄存器寄存器型(RR型)寄存器存儲器型(RM型)存儲器存儲器型(MM型) 3種通用寄存器型結(jié)構(gòu)的優(yōu)缺點 表中表中(m(m,n)n)表示指

7、令的表示指令的n n個操作數(shù)中有個操作數(shù)中有m m個存?zhèn)€存儲器操作數(shù)。儲器操作數(shù)。指令系統(tǒng)結(jié)構(gòu)類型指令系統(tǒng)結(jié)構(gòu)類型 優(yōu)優(yōu) 點點 缺缺 點點 寄存器寄存器型寄存器寄存器型 (0 0,3 3) 指令字長固定,指令結(jié)構(gòu)指令字長固定,指令結(jié)構(gòu)簡潔,是一種簡單的代碼簡潔,是一種簡單的代碼生成模型,各種指令的執(zhí)生成模型,各種指令的執(zhí)行時鐘周期數(shù)相近。行時鐘周期數(shù)相近。 與指令中含存儲器操作數(shù)的指令系與指令中含存儲器操作數(shù)的指令系統(tǒng)結(jié)構(gòu)相比,指令條數(shù)多,目標(biāo)代統(tǒng)結(jié)構(gòu)相比,指令條數(shù)多,目標(biāo)代碼不夠緊湊,因而程序占用的空間碼不夠緊湊,因而程序占用的空間比較大。比較大。 寄存器存儲器型寄存器存儲器型 (1 1,2

8、 2) 可以在可以在ALUALU指令中直接對指令中直接對存儲器操作數(shù)進(jìn)行引用,存儲器操作數(shù)進(jìn)行引用,而不必先用而不必先用loadload指令進(jìn)行指令進(jìn)行加載。容易對指令進(jìn)行編加載。容易對指令進(jìn)行編碼,目標(biāo)代碼比較緊湊。碼,目標(biāo)代碼比較緊湊。 指令中的兩個操作數(shù)不對稱。在一指令中的兩個操作數(shù)不對稱。在一條指令中同時對寄存器操作數(shù)和存條指令中同時對寄存器操作數(shù)和存儲器操作數(shù)進(jìn)行編碼,有可能限制儲器操作數(shù)進(jìn)行編碼,有可能限制指令所能夠表示的寄存器個數(shù)。指指令所能夠表示的寄存器個數(shù)。指令的執(zhí)行時鐘周期數(shù)因操作數(shù)的來令的執(zhí)行時鐘周期數(shù)因操作數(shù)的來源(寄存器或存儲器)不同而差別源(寄存器或存儲器)不同而差

9、別比較大。比較大。 存儲器存儲器型存儲器存儲器型 (2 2,2 2) 或(或(3 3,3 3) 目標(biāo)代碼最緊湊,不需要目標(biāo)代碼最緊湊,不需要設(shè)置寄存器來保存變量。設(shè)置寄存器來保存變量。 指令字長變化很大,特別是指令字長變化很大,特別是3 3操作操作數(shù)指令。而且每條指令完成的工作數(shù)指令。而且每條指令完成的工作也差別很大。對存儲器的頻繁訪問也差別很大。對存儲器的頻繁訪問會使存儲器成為瓶頸。這種類型的會使存儲器成為瓶頸。這種類型的指令系統(tǒng)結(jié)構(gòu)現(xiàn)在已不用了。指令系統(tǒng)結(jié)構(gòu)現(xiàn)在已不用了。 1313/90/901. 尋址方式:指令系統(tǒng)中如何形成所要訪問的數(shù)據(jù)的地址。 尋址方式可以指明指令中的操作數(shù)是一個常數(shù)

10、、一個寄存器操作數(shù)或者是一個存儲器操作數(shù)。對于存儲器操作數(shù)來說,由尋址方式確定的存儲器地址稱為有效地址。 2.2 尋址方式1414/90/902.2 尋址方式 一些操作數(shù)尋址方式:賦值操作Mem:存儲器Regs:寄存器組方括號:表示內(nèi)容qMem Mem :存儲器的內(nèi)容:存儲器的內(nèi)容qRegs Regs :寄存器的內(nèi)容:寄存器的內(nèi)容qMemRegsR1MemRegsR1:以寄存器:以寄存器R1R1中的內(nèi)容作為地址的中的內(nèi)容作為地址的 存儲器單元中的內(nèi)容存儲器單元中的內(nèi)容尋址方式指令實例含 義寄存器尋址ADD R1 , R2RegsR1RegsR1RegsR2立即值尋址ADD R3 , #6Reg

11、sR3RegsR36偏移尋址ADD R3 , 120(R2)RegsR3RegsR3Mem120+RegsR2寄存器間接尋址ADD R4 , (R2)RegsR4RegsR4MemRegsR2索引尋址ADD R4 , (R2 + R3)RegsR4RegsR4MemRegsR2+RegsR3直接尋址或絕對尋址ADD R4 , (1010)RegsR4RegsR4Mem1010存儲器間接尋址ADD R2 , (R4)RegsR2RegsR2MemMemRegsR4自增尋址ADD R1 , (R2)+RegsR1RegsR1MemRegsR2RegsR2RegsR2d自減尋址ADD R1, -(R

12、2)RegsR2RegsR2dRegsR1RegsR1+MemRegsR2縮放尋址ADDR1 , 80(R2)R3RegsR1RegsR1Mem80RegsR2RegsR3*d1616/90/902.2 尋址方式 采用多種尋址方式可以顯著地減少程序的指令條 數(shù),但可能增加計算機的實現(xiàn)復(fù)雜度以及指令的CPI。1717/90/902.2 尋址方式 1% 0% 24% 43% 32% 6% 16% 3% 17% 55% 1% 6% 11% 39% 40% 0% 10% 20% 30% 40% 50% 60% 70% 存存儲儲器器間間接接尋尋址址 縮縮放放尋尋址址 寄寄存存器器間間接接尋尋址址 立立即

13、即數(shù)數(shù)尋尋址址 偏偏移移尋尋址址 Tex Spice gcc 立即數(shù)尋址方式和偏移尋址方式的使用頻度最高。 各種尋址方式的使用情況統(tǒng)計結(jié)果在在VAXVAX機器上運行機器上運行g(shù)ccgcc、SpiceSpice和和Tex Tex 基準(zhǔn)程序基準(zhǔn)程序1818/90/902.2 尋址方式 立即數(shù)尋址方式立即數(shù)尋址方式的使用頻度 指令類型 使用頻度 整型平均 浮點平均 load指令 23% 22% ALU指令 25% 19% 所有指令 21% 16% 大約1/4的load指令和ALU指令采用了立即數(shù)尋址。 1919/90/902.2 尋址方式 兩種表示尋址方式的方法將尋址方式編碼于操作碼中,由操作碼描述

14、相應(yīng)操作的尋址方式。適合適合:處理機采用:處理機采用load-store結(jié)構(gòu),尋址方式只有很少幾種。結(jié)構(gòu),尋址方式只有很少幾種。在指令字中設(shè)置專門的尋址字段,用以直接指出尋址方式。q靈活,操作碼短,但需要設(shè)置專門的尋址方式字段,而靈活,操作碼短,但需要設(shè)置專門的尋址方式字段,而且操作碼和尋址方式字段合起來所需要的總位數(shù)可能會且操作碼和尋址方式字段合起來所需要的總位數(shù)可能會比隱含方法的總位數(shù)多。比隱含方法的總位數(shù)多。 適合適合:處理機具有多種尋址方式,且指令有多個操作數(shù)。:處理機具有多種尋址方式,且指令有多個操作數(shù)。2020/90/902.2 尋址方式 一個需要注意的問題:物理地址空間的信息如何

15、存放?如何在存儲器中存放不同寬度的信息? 以IBM370為例子進(jìn)行討論。q信息有信息有字節(jié)、半字(雙字節(jié))、單字(字節(jié)、半字(雙字節(jié))、單字(4字節(jié))和雙字字節(jié))和雙字(8字節(jié))字節(jié))等寬度。等寬度。q主存寬度為主存寬度為8個字節(jié)。采用按字節(jié)編址,各類信息都是個字節(jié)。采用按字節(jié)編址,各類信息都是用該信息的首字節(jié)地址來尋址。用該信息的首字節(jié)地址來尋址。 允許它們?nèi)我獯鎯很可能會出現(xiàn)一個信息跨存儲字邊界而存儲于兩個存很可能會出現(xiàn)一個信息跨存儲字邊界而存儲于兩個存儲單元中儲單元中2121/90/902.2 尋址方式信息寬度不超過主存寬度的信息必須存放在一個存儲字內(nèi),不能跨邊界。q必須做到:必須做到

16、:信息在主存中存放的起始地址必須是該信信息在主存中存放的起始地址必須是該信息寬度(字節(jié)數(shù))的整數(shù)倍息寬度(字節(jié)數(shù))的整數(shù)倍 信息存儲的整數(shù)邊界概念信息存儲的整數(shù)邊界概念q滿足以下條件滿足以下條件n字節(jié)信息的起始地址為:字節(jié)信息的起始地址為:n半字信息的起始地址為:半字信息的起始地址為:n單字信息的起始地址為:單字信息的起始地址為:n雙字信息的起始地址為:雙字信息的起始地址為: q存在存儲空間的浪費存在存儲空間的浪費 ,但保證訪問速度。,但保證訪問速度。2222/90/902.2 尋址方式 8 8 個個字字節(jié)節(jié) 字字節(jié)節(jié) 半半字字 單單字字 雙雙字字 字字節(jié)節(jié) 雙雙字字 單單字字 單單字字 字字

17、節(jié)節(jié) (a) 8 8 個個字字節(jié)節(jié) 字字節(jié)節(jié) 單單字字 字字節(jié)節(jié) 雙雙字字 單單字字 字字節(jié)節(jié) (b) 浪浪費費 浪浪費費 半半字字 2323/90/901. 指令系統(tǒng)的設(shè)計首先考慮所應(yīng)實現(xiàn)的基本功能,確定哪些基本功能應(yīng)該由硬件實現(xiàn),哪些功能由軟件實現(xiàn)比較合適。包括q指令的功能設(shè)計指令的功能設(shè)計q指令格式的設(shè)計指令格式的設(shè)計2. 在確定哪些基本功能用硬件來實現(xiàn)時,主要考慮3個因素:速度、成本、靈活性。2.3 指令系統(tǒng)的設(shè)計與優(yōu)化2424/90/902.3 指令系統(tǒng)的設(shè)計與優(yōu)化硬件實現(xiàn)的特點 速度快、成本高、靈活性差速度快、成本高、靈活性差軟件實現(xiàn)的特點 速度慢、價格便宜、靈活性好速度慢、價格便

18、宜、靈活性好 對指令系統(tǒng)的基本要求 完整性、規(guī)整性、正交性、高效率、兼容性 完整性:在一個有限可用的存儲空間內(nèi),對于任何可解的問題,編制計算程序時,指令系統(tǒng)所提供的指令足夠使用。2525/90/902.3 指令系統(tǒng)的設(shè)計與優(yōu)化q要求指令系統(tǒng)功能齊全、使用方便要求指令系統(tǒng)功能齊全、使用方便q下表為許多指令系統(tǒng)結(jié)構(gòu)都包含的一些指令類型下表為許多指令系統(tǒng)結(jié)構(gòu)都包含的一些指令類型 n前前4 4類類屬于通用計算機系統(tǒng)的基本指令屬于通用計算機系統(tǒng)的基本指令n對于最后對于最后4 4種類型的操作,不同指令系統(tǒng)結(jié)構(gòu)的種類型的操作,不同指令系統(tǒng)結(jié)構(gòu)的支持大不相同支持大不相同 。 2626/90/902.3 指令系

19、統(tǒng)的設(shè)計與優(yōu)化操作類型 實 例 算術(shù)和邏輯運算 算術(shù)運算和邏輯操作:加,減,乘,除,與,或等 數(shù)據(jù)傳輸 load,store控制 分支,跳轉(zhuǎn),過程調(diào)用和返回,自陷等 系統(tǒng) 操作系統(tǒng)調(diào)用,虛擬存儲器管理等 浮點 浮點操作:加,減,乘,除,比較等 十進(jìn)制 十進(jìn)制加,十進(jìn)制乘,十進(jìn)制到字符的轉(zhuǎn)換等 字符串 字符串移動,字符串比較,字符串搜索等 圖形 像素操作,壓縮/解壓操作等 2727/90/902.3 指令系統(tǒng)的設(shè)計與優(yōu)化規(guī)整性:主要包括對稱性和均勻性。q對稱性:對稱性:所有與指令系統(tǒng)有關(guān)的存儲單元的使用、所有與指令系統(tǒng)有關(guān)的存儲單元的使用、 操作碼的設(shè)置等都是對稱的。操作碼的設(shè)置等都是對稱的。例

20、如:例如:在存儲單元的使用上,所有通用寄存器都要同等對在存儲單元的使用上,所有通用寄存器都要同等對 待。在操作碼的設(shè)置上,如果設(shè)置了待。在操作碼的設(shè)置上,如果設(shè)置了A AB B的指的指 令,就應(yīng)該也設(shè)置令,就應(yīng)該也設(shè)置B BA A的指令。的指令。 q均勻性:均勻性:指對于各種不同的操作數(shù)類型、字長、操作指對于各種不同的操作數(shù)類型、字長、操作 種類和數(shù)據(jù)存儲單元,指令的設(shè)置都要同等對待。種類和數(shù)據(jù)存儲單元,指令的設(shè)置都要同等對待。例如:例如:如果某機器有如果某機器有5 5種數(shù)據(jù)表示,種數(shù)據(jù)表示,4 4種字長,兩種存儲單種字長,兩種存儲單 元,則要設(shè)置元,則要設(shè)置5 54 42=402=40種同一

21、操作的指令。種同一操作的指令。 2828/90/902.3 指令系統(tǒng)的設(shè)計與優(yōu)化正交性:在指令中各個不同含義的字段,如操作類型、數(shù)據(jù)類型、尋址方式字段等,在編碼時應(yīng)互不相關(guān)、相互獨立。 高效率:指指令的執(zhí)行速度快、使用頻度高。兼容性:主要是要實現(xiàn)向后兼容,指令系統(tǒng)可以增加新指令,但不能刪除指令或更改指令的功能。2929/90/902.3 指令系統(tǒng)的設(shè)計與優(yōu)化 在設(shè)計指令系統(tǒng)時,有兩種截然不同的設(shè)計策略。 (產(chǎn)生了兩類不同的計算機系統(tǒng) )CISC(復(fù)雜指令系統(tǒng)計算機)q增強指令功能,把越來越多的功能交由硬件來實增強指令功能,把越來越多的功能交由硬件來實 現(xiàn),并且指令的數(shù)量也是越來越多?,F(xiàn),并且指

22、令的數(shù)量也是越來越多。RISC(精簡指令系統(tǒng)計算機)q盡可能地把指令系統(tǒng)簡化,不僅指令的條數(shù)少,而且盡可能地把指令系統(tǒng)簡化,不僅指令的條數(shù)少,而且 指令的功能也比較簡單。指令的功能也比較簡單。 3030/90/902.3 指令系統(tǒng)的設(shè)計與優(yōu)化1. 控制指令是用來改變控制流的。 跳轉(zhuǎn):當(dāng)指令是無條件改變控制流時,稱之為跳轉(zhuǎn)指令。分支:當(dāng)控制指令是有條件改變控制流時,則稱之為分支指令。 2. 能夠改變控制流的指令q分支分支q跳轉(zhuǎn)跳轉(zhuǎn)q過程調(diào)用過程調(diào)用q過程返回過程返回2.3.2 控制指令3131/90/902.3 指令系統(tǒng)的設(shè)計與優(yōu)化 控制指令的使用頻度 (load-storeload-store

23、型指令系統(tǒng)結(jié)構(gòu)的機器,基準(zhǔn)程序為型指令系統(tǒng)結(jié)構(gòu)的機器,基準(zhǔn)程序為SPEC CPU2000SPEC CPU2000)指令類型 使用頻度 整型平均 浮點平均 調(diào)用/返回 19% 8% 跳轉(zhuǎn) 6% 10% 分支 75% 82% 改變控制流的大部分指令是分支指令(條件轉(zhuǎn)移)。 分支條件的方法及其優(yōu)缺點 名 稱 檢測分支條件的方法 優(yōu) 點 缺 點 條件碼(CC) 檢測由ALU操作設(shè)置的一些特殊的位(即CC) 可以自由設(shè)置分支條件 條件碼是增設(shè)的狀態(tài)。而且它限制了指令的執(zhí)行順序,因為要保證條件碼能順利地傳送給分支指令。 條件寄存器 比較指令把比較結(jié)果放入任何一個寄存器,檢測時就檢測該寄存器。 簡單 占用了

24、一個寄存器 比較與分支 比較操作是分支指令的一部分,通常這種比較是受到一定限制的。 用一條指令(而不是兩條)就能實現(xiàn)分支 當(dāng)采用流水方式時,該指令的操作可能太多,在一拍內(nèi)做不完。 3333/90/902.3 指令系統(tǒng)的設(shè)計與優(yōu)化 轉(zhuǎn)移目標(biāo)地址的表示最常用的方法 在指令中提供一個偏移量,由該偏移量和程序計數(shù)在指令中提供一個偏移量,由該偏移量和程序計數(shù)器(器(PCPC)的值相加而得出目標(biāo)地址。)的值相加而得出目標(biāo)地址。 (PCPC相對尋址)相對尋址)優(yōu)點q有效地減少表示該目標(biāo)地址所需要的位數(shù)有效地減少表示該目標(biāo)地址所需要的位數(shù)q位置無關(guān)(代碼可被裝載到主存的任意位置執(zhí)行)位置無關(guān)(代碼可被裝載到主

25、存的任意位置執(zhí)行)關(guān)鍵:確定偏移量字段的長度q模擬結(jié)果表明:采用模擬結(jié)果表明:采用4 48 8位位的偏移量字段(以指令字的偏移量字段(以指令字為單位)就能表示大多數(shù)控制指令的轉(zhuǎn)移目標(biāo)地址了。為單位)就能表示大多數(shù)控制指令的轉(zhuǎn)移目標(biāo)地址了。3434/90/902.3 指令系統(tǒng)的設(shè)計與優(yōu)化 過程調(diào)用和返回除了要改變控制流之外,可能還要保存機器狀態(tài)。至少也得保存返回地址(放在專用的鏈接寄存器或堆棧中)。過去有些指令系統(tǒng)結(jié)構(gòu)提供了專門的保存機制來保存許多寄存器的內(nèi)容?,F(xiàn)在較新的指令系統(tǒng)結(jié)構(gòu)則要求由編譯器生成load和store指令來保存或恢復(fù)寄存器的內(nèi)容。 3535/90/902.3 指令系統(tǒng)的設(shè)計與

26、優(yōu)化2.3.3 指令操作碼的優(yōu)化指令由兩部分組成:操作碼、地址碼指令格式的設(shè)計 確定指令字的編碼方式,包括操作碼字段和地確定指令字的編碼方式,包括操作碼字段和地址碼字段的編碼和表示方式。址碼字段的編碼和表示方式。指令格式的優(yōu)化:如何用最短的位數(shù)來表示指令的操作信息和地址信息。 3636/90/902.3 指令系統(tǒng)的設(shè)計與優(yōu)化1. 哈夫曼編碼 基本思想:當(dāng)各種事件發(fā)生的概率不均等時,可以對發(fā)生概率最高的事件用最短的位數(shù)(時間)來表示(處理),而對于出現(xiàn)概率較低的事件,則可以用較長的位數(shù)(時間)來表示(處理),從而使總的平均位數(shù)(時間)縮短。構(gòu)造哈夫曼樹的方法 q將各事件按其使用頻度從小到大依次排

27、列將各事件按其使用頻度從小到大依次排列 ;q每次從中選擇兩個頻度值最小的結(jié)點,將其合并成一每次從中選擇兩個頻度值最小的結(jié)點,將其合并成一個新的結(jié)點,并把新結(jié)點畫在所選結(jié)點的上面,個新的結(jié)點,并把新結(jié)點畫在所選結(jié)點的上面, 3737/90/902.3 指令系統(tǒng)的設(shè)計與優(yōu)化q然后用兩條邊把新結(jié)點分別與那兩個結(jié)點相連。然后用兩條邊把新結(jié)點分別與那兩個結(jié)點相連。n新結(jié)點的頻度值是所選兩個結(jié)點的頻度值的和。新結(jié)點的頻度值是所選兩個結(jié)點的頻度值的和。q把新結(jié)點與其他剩余未結(jié)合的結(jié)點一起,再以上面的步把新結(jié)點與其他剩余未結(jié)合的結(jié)點一起,再以上面的步驟進(jìn)行處理,反復(fù)進(jìn)行,直到全部結(jié)點都結(jié)合完畢、形驟進(jìn)行處理,

28、反復(fù)進(jìn)行,直到全部結(jié)點都結(jié)合完畢、形成根結(jié)點為止。成根結(jié)點為止。 0.05 畫哈夫曼樹的一個基本步驟畫哈夫曼樹的一個基本步驟 0.02 0.03 3838/90/902.3 指令系統(tǒng)的設(shè)計與優(yōu)化操作碼優(yōu)化的程度可以用信息熵來衡量。 q表示用二進(jìn)制編碼表示表示用二進(jìn)制編碼表示n個碼點時,理論上的最短個碼點時,理論上的最短平均編碼長度平均編碼長度 。 例例2.1 假設(shè)某模型機有假設(shè)某模型機有7條指令,這些指令的使用頻度如表左條指令,這些指令的使用頻度如表左邊所示。邊所示。 (1) (1) 計算這計算這7 7條指令的操作碼編碼的最短平均碼長;條指令的操作碼編碼的最短平均碼長; (2) (2) 畫出哈

29、夫曼樹,寫出這畫出哈夫曼樹,寫出這7 7條指令的哈夫曼編碼,并計算該條指令的哈夫曼編碼,并計算該編碼的平均碼長和信息冗余量。編碼的平均碼長和信息冗余量。niiippH12log3939/90/902.3 指令系統(tǒng)的設(shè)計與優(yōu)化指令指令 頻度頻度pi 操作碼使用操作碼使用哈夫曼編碼哈夫曼編碼 操作碼操作碼長度長度li 利用哈夫曼概念利用哈夫曼概念的擴展操作碼的擴展操作碼 操作碼操作碼長度長度li I1 0.40 0 1 0 0 2 I2 0.30 1 0 2 0 1 2 I3 0.15 1 1 0 3 1 0 2 I4 0.05 1 1 1 0 0 5 1 1 0 0 4I5 0.04 1 1 1

30、 0 1 5 1 1 0 1 4I6 0.03 1 1 1 1 0 5 1 1 1 0 4I70.03 1 1 1 1 1 5 1 1 1 1 44040/90/902.3 指令系統(tǒng)的設(shè)計與優(yōu)化 解解 (1)(2)其哈夫曼樹如圖所示,該樹的每個葉結(jié)點分別對應(yīng)于一條指)其哈夫曼樹如圖所示,該樹的每個葉結(jié)點分別對應(yīng)于一條指令。在該樹中,對每個結(jié)點向下的兩個分支,分別用二進(jìn)制令。在該樹中,對每個結(jié)點向下的兩個分支,分別用二進(jìn)制“1”和和“0”來表示。來表示。 從該哈夫曼樹可以很容易地寫出哈夫曼編碼。從該哈夫曼樹可以很容易地寫出哈夫曼編碼。 具體方法具體方法:對于任意一條指令:對于任意一條指令I(lǐng)i (

31、i=1,2,7),從哈),從哈夫曼樹根結(jié)點出發(fā)、沿一條路徑連接到葉結(jié)點夫曼樹根結(jié)點出發(fā)、沿一條路徑連接到葉結(jié)點Ii,把途中所經(jīng)過的各,把途中所經(jīng)過的各分支的分支的“0”和和“1”按從左到右的順序記錄下來,便是該指令的哈夫曼按從左到右的順序記錄下來,便是該指令的哈夫曼編碼。上表中列出了所有指令的哈夫曼編碼。編碼。上表中列出了所有指令的哈夫曼編碼。17. 2log712iiippH4141/90/902.3 指令系統(tǒng)的設(shè)計與優(yōu)化 1 1 1 1 1 1 0 0 0 0 0 I7 I6 I5 I4 I3 I2 I1 1.00 0.60 0.30 0.15 0.06 0.09 0.03 0.03 0.

32、04 0.40 0.30 0.15 0.05 哈夫曼樹舉例哈夫曼樹舉例 4242/90/902.3 指令系統(tǒng)的設(shè)計與優(yōu)化該哈夫曼編碼的平均碼長是:該哈夫曼編碼的平均碼長是:其信息冗余量為其信息冗余量為 20. 271iiilpL1.36%2.202.172.204343/90/902.3 指令系統(tǒng)的設(shè)計與優(yōu)化優(yōu)缺點:可以減少操作碼的平均位數(shù),但所獲得的編碼是變長度的,不規(guī)整,不利于硬件處理。 擴展操作碼 q位于定長二進(jìn)制編碼和哈夫曼編碼之間的一種編碼方位于定長二進(jìn)制編碼和哈夫曼編碼之間的一種編碼方案。案。n采用有限幾種固定長度的碼長,仍然采用高概采用有限幾種固定長度的碼長,仍然采用高概率的用短

33、碼、低概率用長碼的哈夫曼壓縮思想,率的用短碼、低概率用長碼的哈夫曼壓縮思想,使操作碼平均長度縮短。使操作碼平均長度縮短。q上表中的指令,采用上表中的指令,采用2-4的擴展操作碼,可以得到如的擴展操作碼,可以得到如表右邊所示的編碼方案。表右邊所示的編碼方案。 4444/90/902.3 指令系統(tǒng)的設(shè)計與優(yōu)化q用兩位的用兩位的00、01、10分別用于表示使用頻度高的分別用于表示使用頻度高的I1、I2、I3,然后用,然后用11作為高位擴展出作為高位擴展出4個個4位的二進(jìn)制編碼,位的二進(jìn)制編碼,用于表示剩下的用于表示剩下的4條指令。條指令。q平均長度平均長度 比哈夫曼編碼的2.2大,但很接近于2.2,

34、而且比定長的3位編碼小很多。3 . 271iiilp4545/90/902.3 指令系統(tǒng)的設(shè)計與優(yōu)化 等長擴展碼為了便于分級譯碼,一般都采用等長擴展碼。 (在早期的計算機上)(在早期的計算機上) 例如:例如:15/15/15法和法和8/64/512法法q選用哪種編碼法取決于指令使用頻度選用哪種編碼法取決于指令使用頻度pi的分布。若在的分布。若在頭頭15種種指令中指令中pi 的值都比較大,但在后的值都比較大,但在后30種種指令后急指令后急劇減少,則應(yīng)選擇劇減少,則應(yīng)選擇15/15/15法;若法;若pi 的值在頭的值在頭8種種指令指令中較大,之后的中較大,之后的64種種指令的指令的pi值也不太低,

35、則應(yīng)選擇值也不太低,則應(yīng)選擇8/64/512法。法。q衡量標(biāo)準(zhǔn):衡量標(biāo)準(zhǔn):看哪種編碼法能使平均碼長最短??茨姆N編碼法能使平均碼長最短。 4646/90/902.3 指令系統(tǒng)的設(shè)計與優(yōu)化 15 0000 0001 1110 15 1111 0000 1111 0001 1111 1110 15 1111 1111 0001 1111 1111 1110 1111 1111 0000 15/15/1515/15/15 編碼法編碼法 8 0 001 0 000 0 111 64 1 000 1 000 1 111 0 001 0 000 0 111 512 1 000 1 000 1 111 1 0

36、00 1 000 1 111 0 001 0 000 0 111 8/64/5128/64/512 編碼法編碼法 4747/90/902.3 指令系統(tǒng)的設(shè)計與優(yōu)化 定長操作碼固定長度的操作碼:所有指令的操作碼都是同一的長度(如8位)。 許多計算機都采用(特別是許多計算機都采用(特別是RISC結(jié)構(gòu)的計算機)結(jié)構(gòu)的計算機)保證操作碼的譯碼速度、減少譯碼的復(fù)雜度。以程序的存儲空間為代價來換取硬件實現(xiàn)上的好處。4848/90/902.3 指令系統(tǒng)的設(shè)計與優(yōu)化1. 如果指令字的寬度固定,地址碼的長度和個數(shù)固定,則操作碼的縮短并不能帶來好處,只是使指令字中出現(xiàn)空白浪費。2.3.4 指令字格式的優(yōu)化 空白浪

37、費空白浪費 空白浪費空白浪費 定長指令字長度定長指令字長度 L L 地址碼地址碼 操作碼操作碼 地址碼地址碼 地址碼地址碼 操作碼操作碼 操作碼操作碼 4949/90/902.3 指令系統(tǒng)的設(shè)計與優(yōu)化 采用地址個數(shù)可變和/或地址碼長度可變的方案利用操作碼縮短所帶來的好處最常用的操作碼最短,其地址字段個數(shù)最多。能夠使指令的功能增強,從總體上減少所需的指令條數(shù)能夠使指令的功能增強,從總體上減少所需的指令條數(shù) 。 寄存器寄存器型寄存器寄存器型 操作碼操作碼 R 訪存地址訪存地址 立即操作數(shù)立即操作數(shù) R 寄存器存儲器型寄存器存儲器型 操作碼操作碼 R 帶立即操作數(shù)帶立即操作數(shù) 操作碼操作碼 R R

38、5050/90/902.3 指令系統(tǒng)的設(shè)計與優(yōu)化 考慮因素計算機中寄存器的個數(shù)和尋址方式的數(shù)目對機器的指令字長有很大的影響;指令字的平均長度增加了,程序的平均長度也就增加了; 在指令系統(tǒng)的設(shè)計中,要在指令字長與寄存器的個數(shù)以及尋址方式的個數(shù)之間進(jìn)行折中。 指令系統(tǒng)的3種編碼格式 可變長度編碼格式、固定長度編碼格式、混合型編碼格式可變長度編碼格式、固定長度編碼格式、混合型編碼格式5151/90/902.3 指令系統(tǒng)的設(shè)計與優(yōu)化可變長度編碼格式q當(dāng)指令系統(tǒng)的尋址方式和操作種類很多時,這種編當(dāng)指令系統(tǒng)的尋址方式和操作種類很多時,這種編碼格式是最好的。碼格式是最好的。q用最少的二進(jìn)制位來表示目標(biāo)代碼。

39、用最少的二進(jìn)制位來表示目標(biāo)代碼。q可能會使各條指令的字長和執(zhí)行時間相差很大。可能會使各條指令的字長和執(zhí)行時間相差很大。 操操作作碼碼 地地址址描描述述符符 1 地地址址碼碼 1 地地址址描描述述符符 n 地地址址碼碼 n 5252/90/902.3 指令系統(tǒng)的設(shè)計與優(yōu)化 操操作作碼碼 地地址址碼碼 1 地地址址碼碼 2 地地址址碼碼 3 固定長度編碼格式q將操作類型和尋址方式一起編碼到操作碼中。將操作類型和尋址方式一起編碼到操作碼中。q當(dāng)尋址方式和操作類型非常少時,這種編碼格式非當(dāng)尋址方式和操作類型非常少時,這種編碼格式非常好。常好。q可以有效地降低譯碼的復(fù)雜度,提高譯碼的速度。可以有效地降低

40、譯碼的復(fù)雜度,提高譯碼的速度。q大部分大部分RISCRISC的指令系統(tǒng)均采用這種編碼格式。的指令系統(tǒng)均采用這種編碼格式。5353/90/902.3 指令系統(tǒng)的設(shè)計與優(yōu)化 操作碼操作碼 地址碼地址碼 操作碼操作碼 地址碼地址碼 地址描述符地址描述符 地址描述符地址描述符 1 地址描述符地址描述符 2 操作碼操作碼 地址碼地址碼 1 地址描述符地址描述符 地址碼地址碼 2 混合型編碼格式q提供若干種固定的指令字長。提供若干種固定的指令字長。q以期達(dá)到既能夠減少目標(biāo)代碼長度又能降低譯碼復(fù)以期達(dá)到既能夠減少目標(biāo)代碼長度又能降低譯碼復(fù)雜度的目標(biāo)。雜度的目標(biāo)。5454/90/902.4 指令系統(tǒng)的發(fā)展和改

41、進(jìn)2.4.1 沿CISC方向發(fā)展和改進(jìn)指令系統(tǒng)1. CISC指令系統(tǒng)的一大特點 指令數(shù)量多、功能多樣 增強指令功能主要是從以下3個方面著手: 面向目標(biāo)程序增強指令功能面向目標(biāo)程序增強指令功能 面向高級語言的優(yōu)化實現(xiàn)來改進(jìn)指令系統(tǒng)面向高級語言的優(yōu)化實現(xiàn)來改進(jìn)指令系統(tǒng) 面向操作系統(tǒng)的優(yōu)化實現(xiàn)改進(jìn)指令系統(tǒng)面向操作系統(tǒng)的優(yōu)化實現(xiàn)改進(jìn)指令系統(tǒng)5555/90/902.4 指令系統(tǒng)的發(fā)展和改進(jìn)面向目標(biāo)程序增強指令功能 q對大量的目標(biāo)程序及其執(zhí)行情況進(jìn)行統(tǒng)計分析,找出對大量的目標(biāo)程序及其執(zhí)行情況進(jìn)行統(tǒng)計分析,找出那些使用頻度高、執(zhí)行時間長的指令或指令串。對于那些使用頻度高、執(zhí)行時間長的指令或指令串。對于使用頻

42、度高的指令,用硬件加快其執(zhí)行;對于使用頻使用頻度高的指令,用硬件加快其執(zhí)行;對于使用頻度高的指令串,用一條新的指令來替代。度高的指令串,用一條新的指令來替代。q既能減少目標(biāo)程序的執(zhí)行時間,也能有效地縮短程序既能減少目標(biāo)程序的執(zhí)行時間,也能有效地縮短程序的長度。的長度。q可以從以下幾個方面來改進(jìn):可以從以下幾個方面來改進(jìn): n增強運算型指令的功能增強運算型指令的功能n增強數(shù)據(jù)傳送指令的功能增強數(shù)據(jù)傳送指令的功能n增強程序控制指令的功能增強程序控制指令的功能5656/90/902.4 指令系統(tǒng)的發(fā)展和改進(jìn)例如:循環(huán)在程序中占有相當(dāng)大的 比例,所以在指令上提供專 門的支持。循環(huán)控制部分通常用3條指令

43、完成:q一條加法指令一條加法指令q一條比較指令一條比較指令q一條分支指令一條分支指令設(shè)置循環(huán)控制指令,用一條指令完成上述3條指令的功能。 I = m1 I=I+m3 循環(huán)體循環(huán)體 Im2 N Y 一般循環(huán)程序的結(jié)構(gòu)一般循環(huán)程序的結(jié)構(gòu)5757/90/902.4 指令系統(tǒng)的發(fā)展和改進(jìn)面向高級語言的優(yōu)化實現(xiàn)來改進(jìn)指令系統(tǒng) (縮小高級語言與機器語言的語義差距) 高級語言與一般的機器語言的語義差距非常大,為高級語言程序的編譯帶來了一些問題。(1 1)編譯器本身比較復(fù)雜;)編譯器本身比較復(fù)雜;(2 2)編譯生成)編譯生成的目標(biāo)代碼比較難以達(dá)到很好的優(yōu)化。的目標(biāo)代碼比較難以達(dá)到很好的優(yōu)化。 5858/90/

44、902.4 指令系統(tǒng)的發(fā)展和改進(jìn)q增強對高級語言和編譯器的支持增強對高級語言和編譯器的支持 p對高級語言中使用頻度高、執(zhí)行時間長的語句,對高級語言中使用頻度高、執(zhí)行時間長的語句,增強有關(guān)指令的功能,加快這些指令的執(zhí)行速度,增強有關(guān)指令的功能,加快這些指令的執(zhí)行速度,或者增加專門的指令,可以達(dá)到減少目標(biāo)程序的或者增加專門的指令,可以達(dá)到減少目標(biāo)程序的執(zhí)行時間和減少目標(biāo)程序長度的目的。執(zhí)行時間和減少目標(biāo)程序長度的目的。 p增強系統(tǒng)結(jié)構(gòu)的規(guī)整性,減少系統(tǒng)結(jié)構(gòu)中的各種增強系統(tǒng)結(jié)構(gòu)的規(guī)整性,減少系統(tǒng)結(jié)構(gòu)中的各種例外情況。例外情況。 (面向高級語言的計算機(面向高級語言的計算機 )5959/90/902.

45、4 指令系統(tǒng)的發(fā)展和改進(jìn)q高級語言計算機高級語言計算機 間接執(zhí)行高級語言機器間接執(zhí)行高級語言機器 高級語言作為機器的匯編語言。高級語言作為機器的匯編語言。 直接執(zhí)行高級語言的機器直接執(zhí)行高級語言的機器 直接把高級語言作為機器語言。直接把高級語言作為機器語言。 (一種比較激進(jìn)的方法(一種比較激進(jìn)的方法 )p采用采用“比較簡單的系統(tǒng)結(jié)構(gòu)軟件比較簡單的系統(tǒng)結(jié)構(gòu)軟件”的做法能夠在較的做法能夠在較低成本和復(fù)雜度的前提下,提供更高的性能和靈活性。低成本和復(fù)雜度的前提下,提供更高的性能和靈活性。 6060/90/902.4 指令系統(tǒng)的發(fā)展和改進(jìn)面向操作系統(tǒng)的優(yōu)化實現(xiàn)改進(jìn)指令系統(tǒng) q操作系統(tǒng)和計算機系統(tǒng)結(jié)構(gòu)是

46、緊密聯(lián)系的,操作系操作系統(tǒng)和計算機系統(tǒng)結(jié)構(gòu)是緊密聯(lián)系的,操作系 統(tǒng)的實現(xiàn)在很大程度上取決于系統(tǒng)結(jié)構(gòu)的支持。統(tǒng)的實現(xiàn)在很大程度上取決于系統(tǒng)結(jié)構(gòu)的支持。q指令系統(tǒng)對操作系統(tǒng)的支持主要有:指令系統(tǒng)對操作系統(tǒng)的支持主要有:p處理機工作狀態(tài)和訪問方式的切換;處理機工作狀態(tài)和訪問方式的切換;p進(jìn)程的管理和切換;進(jìn)程的管理和切換;p存儲管理和信息保護;存儲管理和信息保護;p進(jìn)程的同步與互斥,信號燈的管理等。進(jìn)程的同步與互斥,信號燈的管理等。 支持操作系統(tǒng)的有些指令屬于特權(quán)指令,一般用戶支持操作系統(tǒng)的有些指令屬于特權(quán)指令,一般用戶程序是不能使用的。程序是不能使用的。 6161/90/902.4 指令系統(tǒng)的發(fā)展

47、和改進(jìn)1. CISC指令系統(tǒng)結(jié)構(gòu)存在的問題 (1979年開始,Patterson等人的研究)各種指令的使用頻度相差懸殊,許多指令很少用。 q據(jù)統(tǒng)計:只有據(jù)統(tǒng)計:只有2020的指令使用頻度比較高,占運的指令使用頻度比較高,占運行時間的行時間的8080。而其余。而其余8080的指令只在的指令只在2020的運行時的運行時間內(nèi)才會用到。間內(nèi)才會用到。q使用頻度高的指令也是最簡單的指令。使用頻度高的指令也是最簡單的指令。2.4.2 沿RISC方向發(fā)展和改進(jìn)指令系統(tǒng)執(zhí)行頻度排序 80 x86指令 指令執(zhí)行頻度(占執(zhí)行指令總數(shù)的百分比) 1load 22% 2條件分支 20% 3比較 16% 4store

48、12% 5加 8% 6與 6% 7減 5% 8寄存器寄存器間數(shù)據(jù)移動 4% 9調(diào)用子程序 1% 10返回 1% 合 計 95% Intel 80 x86最常用的10條指令6363/90/902.4 指令系統(tǒng)的發(fā)展和改進(jìn)指令系統(tǒng)龐大,指令條數(shù)很多,許多指令的功能又很復(fù)雜,使得控制器硬件非常復(fù)雜。 導(dǎo)致的問題:q占用了大量的芯片面積(如占用占用了大量的芯片面積(如占用CPUCPU芯片總面積的芯片總面積的一半以上),給一半以上),給VLSIVLSI設(shè)計造成很大的困難;設(shè)計造成很大的困難;q增加了研制時間和成本,容易造成設(shè)計錯誤。增加了研制時間和成本,容易造成設(shè)計錯誤。許多指令由于操作繁雜,其CPI值

49、比較大,執(zhí)行 速度慢。采用這些復(fù)雜指令有可能使整個程序的 執(zhí)行時間反而增加。由于指令功能復(fù)雜,規(guī)整性不好,不利于采用流 水技術(shù)來提高性能。 6464/90/902.4 指令系統(tǒng)的發(fā)展和改進(jìn) 設(shè)計RISC機器遵循的原則 指令條數(shù)少、指令功能簡單。只選取使用頻度很高的指令,在此基礎(chǔ)上補充一些最有用的指令;采用簡單而又統(tǒng)一的指令格式,并減少尋址方式;指令字長都為32位或64位;指令的執(zhí)行在單個機器周期內(nèi)完成; ( (采用流水線機制采用流水線機制) )只有l(wèi)oad和store指令才能訪問存儲器,其它指令的操作都是在寄存器之間進(jìn)行; (即采用(即采用load-storeload-store結(jié)構(gòu))結(jié)構(gòu))大

50、多數(shù)指令都采用硬連邏輯來實現(xiàn);6565/90/902.4 指令系統(tǒng)的發(fā)展和改進(jìn)強調(diào)優(yōu)化編譯器的作用,為高級語言程序生成優(yōu)化的代碼;充分利用流水技術(shù)來提高性能。 早期的RISC微處理器1981年 ,Berkeley分校的Patterson 等人的32位微處理器RISC I :q3131條條指令,指令字長都是指令,指令字長都是3232位位,7878個個通用寄存器,時通用寄存器,時鐘頻率為鐘頻率為8MHz8MHz;q控制部分所占的芯片面積只有約控制部分所占的芯片面積只有約6%6%。商品化微處理器。商品化微處理器MC68000MC68000和和Z8000Z8000分別為分別為50%50%和和53%53

51、%;3.3.性能比性能比MC68000MC68000和和Z8000Z8000快快3 34 4倍。倍。6666/90/902.4 指令系統(tǒng)的發(fā)展和改進(jìn)1983年的RISC:q指令條數(shù)為指令條數(shù)為3939,通用寄存器個數(shù)為,通用寄存器個數(shù)為138138,時鐘頻率為,時鐘頻率為12MHz12MHz。q后來發(fā)展成了后來發(fā)展成了SunSun公司的公司的SPARCSPARC系列微處理器。系列微處理器。1981年,Stanford大學(xué)Hennessy等人的MIPS后來發(fā)展成了后來發(fā)展成了MIPS Rxxx系列微處理器。系列微處理器。IBM的801共同特點:q采用采用load-storeload-store結(jié)

52、構(gòu)結(jié)構(gòu)q指令字長為指令字長為3232位位q采用高效的流水技術(shù)采用高效的流水技術(shù)6767/90/90數(shù)據(jù)表示:計算機硬件能夠直接識別、指令系統(tǒng)可以直接調(diào)用的數(shù)據(jù)類型。q所有數(shù)據(jù)類型中最常用、相對比較簡單、用硬件實現(xiàn)比較所有數(shù)據(jù)類型中最常用、相對比較簡單、用硬件實現(xiàn)比較容易的幾種。容易的幾種。 數(shù)據(jù)結(jié)構(gòu):由軟件進(jìn)行處理和實現(xiàn)的各種數(shù)據(jù)類型。研究:研究:這些數(shù)據(jù)類型的邏輯結(jié)構(gòu)與物理結(jié)構(gòu)之間的關(guān)這些數(shù)據(jù)類型的邏輯結(jié)構(gòu)與物理結(jié)構(gòu)之間的關(guān) 系,并給出相應(yīng)的算法。系,并給出相應(yīng)的算法。 系統(tǒng)結(jié)構(gòu)設(shè)計者要解決的問題:如何確定數(shù)據(jù)表示?(軟硬件取舍折中的問題)(軟硬件取舍折中的問題)2.5 操作數(shù)的類型和大小6

53、868/90/902.5 操作數(shù)的類型和大小1. 表示操作數(shù)類型的方法有兩種由指令中的操作碼指定操作數(shù)的類型。給數(shù)據(jù)加上標(biāo)識,由數(shù)據(jù)本身給出操作數(shù)類型。q優(yōu)點:優(yōu)點:簡化指令系統(tǒng),可由硬件自動實現(xiàn)一致性檢查簡化指令系統(tǒng),可由硬件自動實現(xiàn)一致性檢查和類型轉(zhuǎn)換,縮小了機器語言與高級語言的語義差距,和類型轉(zhuǎn)換,縮小了機器語言與高級語言的語義差距,簡化編譯器等。簡化編譯器等。q缺點:缺點:由于需要在執(zhí)行過程中動態(tài)檢測標(biāo)志符,動態(tài)由于需要在執(zhí)行過程中動態(tài)檢測標(biāo)志符,動態(tài)開銷比較大,所以采用這種方案的機器很少見。開銷比較大,所以采用這種方案的機器很少見。2. 操作數(shù)的大?。翰僮鲾?shù)的位數(shù)或字節(jié)數(shù)。主要的大小

54、:主要的大小:字節(jié)(字節(jié)(8 8位)、半字(位)、半字(1616位)位) 字(字(3232位)、和雙字(位)、和雙字(6464位)位)6969/90/902.5 操作數(shù)的類型和大小字符:用ASCII碼表示,為一個字節(jié)大小。整數(shù):用二進(jìn)制補碼表示,其大小可以是字節(jié)、半字或單字。浮點操作數(shù):單精度浮點數(shù)(1個字)、雙精度浮點數(shù)(雙字)。 一般都采用一般都采用IEEE 754IEEE 754浮點浮點標(biāo)準(zhǔn)標(biāo)準(zhǔn)十進(jìn)制操作數(shù)類型q壓縮十進(jìn)制或二進(jìn)制編碼十進(jìn)制(壓縮十進(jìn)制或二進(jìn)制編碼十進(jìn)制(BCDBCD碼):用碼):用4 4位二位二進(jìn)制編碼表示數(shù)字進(jìn)制編碼表示數(shù)字0 09 9,并將兩個十進(jìn)制數(shù)字合并到,并將

55、兩個十進(jìn)制數(shù)字合并到一個字節(jié)中存儲。一個字節(jié)中存儲。q非壓縮十進(jìn)制:將十進(jìn)制數(shù)直接用字符串來表示。非壓縮十進(jìn)制:將十進(jìn)制數(shù)直接用字符串來表示。 訪問不同操作數(shù)大小的頻率(SPECSPEC基準(zhǔn)程序基準(zhǔn)程序 )操作數(shù)大小 訪問頻度 整型平均 浮點平均 字節(jié) 7% 0% 半字 19% 0% 單字 74% 31% 雙字 0% 69% 基準(zhǔn)程序?qū)巫趾碗p字的數(shù)據(jù)訪問具有較高的頻度。 一臺一臺3232位的機器應(yīng)該支持位的機器應(yīng)該支持8 8、1616、3232位整型操作數(shù)以位整型操作數(shù)以及及3232位和位和6464位的位的IEEE 754IEEE 754標(biāo)準(zhǔn)的浮點操作數(shù)。標(biāo)準(zhǔn)的浮點操作數(shù)。7171/90/9

56、01. 32個64位通用寄存器(GPRs)R0,R1,R31也稱為整數(shù)寄存器R0的值永遠(yuǎn)是02. 32個64位浮點數(shù)寄存器(FPRs)F0,F(xiàn)1,F(xiàn)312.6 MIPS指令系統(tǒng)結(jié)構(gòu)介紹MIPS64的一個子集,簡稱為MIPS。2.6.1 MIPS的寄存器7272/90/902.6 MIPS指令系統(tǒng)結(jié)構(gòu)用來存放32個單精度浮點數(shù)(32位),也可以用來存放32個雙精度浮點數(shù)(64位)。存儲單精度浮點數(shù)(32位)時,只用到FPR的一半,其另一半沒用。 一些特殊寄存器它們可以與通用寄存器交換數(shù)據(jù)。例如浮點狀態(tài)寄存器:用來保存有關(guān)浮點操作結(jié)果的信息。7373/90/902.6 MIPS指令系統(tǒng)結(jié)構(gòu)1. M

57、IPS的數(shù)據(jù)表示整數(shù)字節(jié)(字節(jié)(8 8位位) 半字(半字(1616位位)字(字(3232位位) 雙字(雙字(6464位位)浮點數(shù)單精度浮點數(shù)(單精度浮點數(shù)(3232位位) 雙精度浮點數(shù)(雙精度浮點數(shù)(6464位位)2. 字節(jié)、半字或者字在裝入64位寄存器時,用零擴展或者用符號位擴展來填充該寄存器的剩余部分。裝入以后,對它們將按照64位整數(shù)的方式進(jìn)行運算。2.6.2 MIPS的數(shù)據(jù)表示7474/90/902.6 MIPS指令系統(tǒng)結(jié)構(gòu)1. 立即數(shù)尋址與偏移量尋址;立即數(shù)字段和偏移量字段都是立即數(shù)字段和偏移量字段都是1616位的。位的。2. 寄存器間接尋址是通過把0作為偏移量來實現(xiàn)的;3. 16位絕

58、對尋址是通過把R0(其值永遠(yuǎn)為0)作為基址 寄存器來完成的; MIPS的存儲器是按字節(jié)尋址的,地址為64位;4. 所有存儲器訪問都必須是邊界對齊的。2.6.3 MIPS的數(shù)據(jù)尋址方式7575/90/902.6 MIPS指令系統(tǒng)結(jié)構(gòu)1. 尋址方式編碼到操作碼中2. 所有的指令都是32位的3. 操作碼占6位4. 3種指令格式 3種格式中,同名字段的位置固定不變。種格式中,同名字段的位置固定不變。 2.6.4 MIPS的指令格式7676/90/902.6 MIPS指令系統(tǒng)結(jié)構(gòu)rt rs 立立即即數(shù)數(shù)(immediate) 操操作作碼碼 6 5 5 16 0 5 6 10 11 15 16 31 I類

59、指令q包括所有的包括所有的loadload和和storestore指令,立即數(shù)指令,分支指令,立即數(shù)指令,分支指令,寄存器跳轉(zhuǎn)指令,寄存器鏈接跳轉(zhuǎn)指令。指令,寄存器跳轉(zhuǎn)指令,寄存器鏈接跳轉(zhuǎn)指令。q立即數(shù)字段為立即數(shù)字段為1616位,用于提供立即數(shù)或偏移量。位,用于提供立即數(shù)或偏移量。7777/90/902.6 MIPS指令系統(tǒng)結(jié)構(gòu)qloadload指令指令 訪存有效地址:訪存有效地址:RegsrsRegsrsimmediateimmediate 從存儲器取來的數(shù)據(jù)放入寄存器從存儲器取來的數(shù)據(jù)放入寄存器rtrtqstorestore指令指令 訪存有效地址:訪存有效地址:RegsrsRegsrsi

60、mmediateimmediate 要存入存儲器的數(shù)據(jù)放在寄存器要存入存儲器的數(shù)據(jù)放在寄存器rtrt中中q立即數(shù)指令立即數(shù)指令 Regsrt Regsrs op immediateRegsrt Regsrs op immediateq分支指令分支指令 轉(zhuǎn)移目標(biāo)地址:轉(zhuǎn)移目標(biāo)地址:RegsrsRegsrsimmediateimmediate,rtrt無用無用q寄存器跳轉(zhuǎn)、寄存器跳轉(zhuǎn)并鏈接寄存器跳轉(zhuǎn)、寄存器跳轉(zhuǎn)并鏈接 轉(zhuǎn)移目標(biāo)地址為轉(zhuǎn)移目標(biāo)地址為RegsrsRegsrs7878/90/902.6 MIPS指令系統(tǒng)結(jié)構(gòu)R類指令q包括包括ALUALU指令,專用寄存器讀指令,專用寄存器讀/ /寫指令,寫

溫馨提示

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

評論

0/150

提交評論