版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、1 1/75/75Computer architectureComputer architecture編輯ppt第2章 計(jì)算機(jī)指令集結(jié)構(gòu)2 2/75/75Computer architectureComputer architecture編輯ppt2.1指令集結(jié)構(gòu)的分類2.2尋址方式2.3指令集結(jié)構(gòu)的功能設(shè)計(jì)2.4操作數(shù)的類型和大小2.5指令格式的設(shè)計(jì)2.6MIPS指令集結(jié)構(gòu)3 3/75/75Computer architectureComputer architecture編輯ppt1. 區(qū)別不同指令集結(jié)構(gòu)的主要因素 CPU中用來(lái)存儲(chǔ)操作數(shù)的存儲(chǔ)單元的類型2. CPU中用來(lái)存儲(chǔ)操作數(shù)的存儲(chǔ)單
2、元的主要類型堆棧累加器通用寄存器組3. 將指令集結(jié)構(gòu)分為三種類型2.1 指令集結(jié)構(gòu)的分類4 4/75/75Computer architectureComputer architecture編輯ppt2.1 指令集結(jié)構(gòu)的分類堆棧結(jié)構(gòu)累加器結(jié)構(gòu)通用寄存器結(jié)構(gòu)根據(jù)操作數(shù)的來(lái)源不同,又可進(jìn)一步分為根據(jù)操作數(shù)的來(lái)源不同,又可進(jìn)一步分為:q寄存器寄存器- -存儲(chǔ)器結(jié)構(gòu)存儲(chǔ)器結(jié)構(gòu)(RMRM結(jié)構(gòu))結(jié)構(gòu)) ( (操作數(shù)可以來(lái)自存儲(chǔ)器操作數(shù)可以來(lái)自存儲(chǔ)器 ) )q寄存器寄存器- -寄存器結(jié)構(gòu)寄存器結(jié)構(gòu)(RRRR結(jié)構(gòu))結(jié)構(gòu)) ( (所有操作數(shù)都是來(lái)自通用寄存器組所有操作數(shù)都是來(lái)自通用寄存器組) ) 也稱為也稱為l
3、oad-storeload-store結(jié)構(gòu),這個(gè)名稱強(qiáng)調(diào):只有結(jié)構(gòu),這個(gè)名稱強(qiáng)調(diào):只有l(wèi)oadload指令和指令和storestore指令能夠訪問(wèn)存儲(chǔ)器。指令能夠訪問(wèn)存儲(chǔ)器。 5 5/75/75Computer architectureComputer architecture編輯ppt2.1 指令集結(jié)構(gòu)的分類w對(duì)于不同類型的指令集結(jié)構(gòu),操作數(shù)的位置、個(gè)數(shù)以及操作數(shù)的給出方式(顯式或隱式)也會(huì)不同。顯式給出:用指令字中的操作數(shù)字段給出隱式給出:使用事先約定好的存儲(chǔ)單元 w4種指令集結(jié)構(gòu)的操作數(shù)的位置以及結(jié)果的去向 ALU CPU 存儲(chǔ)器 堆棧結(jié)構(gòu) ALU ALU ALU TOS 累加器結(jié)構(gòu) 通
4、用寄存器結(jié)構(gòu)(RM) 通用寄存器結(jié)構(gòu)(RR) (a) (b) (c) (d) 灰色塊:操作數(shù)黑色塊:結(jié)果灰色塊:操作數(shù)黑色塊:結(jié)果TOSTOS(Top Of StackTop Of Stack):棧頂):棧頂 7 7/75/75Computer architectureComputer architecture編輯ppt2.1 指令集結(jié)構(gòu)的分類 例: 表達(dá)式表達(dá)式C=A+BC=A+B在在4 4種類型指令集結(jié)構(gòu)上的代碼。種類型指令集結(jié)構(gòu)上的代碼。 假設(shè):假設(shè):A A、B B、C C均保存在存儲(chǔ)器單元中,并且不能均保存在存儲(chǔ)器單元中,并且不能 破壞破壞A A和和B B的值。的值。堆 棧 累加器寄存
5、器(RM型) 寄存器(RR型) push Aload Aload R1,Aload R1,Apush Badd Badd R1,Bload R2,Baddstore Cstore R1,Cadd R3,R1,R2pop Cstore R3,C8 8/75/75Computer architectureComputer architecture編輯ppt2.1 指令集結(jié)構(gòu)的分類w通用寄存器結(jié)構(gòu)現(xiàn)代指令集結(jié)構(gòu)的主流在靈活性和提高性能方面有明顯的優(yōu)勢(shì)q跟其他的跟其他的CPUCPU內(nèi)部存儲(chǔ)單元一樣,寄存器的訪問(wèn)內(nèi)部存儲(chǔ)單元一樣,寄存器的訪問(wèn) 速度比存儲(chǔ)器快。速度比存儲(chǔ)器快。q對(duì)編譯器而言,能更加容易、
6、有效地分配和使用對(duì)編譯器而言,能更加容易、有效地分配和使用 寄存器。寄存器。q寄存器可以用來(lái)存放變量。寄存器可以用來(lái)存放變量。 (1 1)減少對(duì)存儲(chǔ)器的訪問(wèn),加快程序的執(zhí)行速度;減少對(duì)存儲(chǔ)器的訪問(wèn),加快程序的執(zhí)行速度; (因?yàn)榧拇嫫鞅却鎯?chǔ)器快)(因?yàn)榧拇嫫鞅却鎯?chǔ)器快) 9 9/75/75Computer architectureComputer architecture編輯ppt2.1 指令集結(jié)構(gòu)的分類(2 2)用更少的地址位(相對(duì)于存儲(chǔ)器地址來(lái)說(shuō))來(lái)對(duì)寄用更少的地址位(相對(duì)于存儲(chǔ)器地址來(lái)說(shuō))來(lái)對(duì)寄 存器進(jìn)行尋址,從而有效地減少程序的目標(biāo)代碼的存器進(jìn)行尋址,從而有效地減少程序的目標(biāo)代碼的 大小
7、。大小。w根據(jù)ALU指令的操作數(shù)的兩個(gè)特征對(duì)通用寄存器型指 令集結(jié)構(gòu)進(jìn)一步細(xì)分ALU指令的操作數(shù)個(gè)數(shù)q3 3個(gè)操作數(shù)的指令個(gè)操作數(shù)的指令 兩個(gè)源操作數(shù)、一個(gè)目的操作數(shù)兩個(gè)源操作數(shù)、一個(gè)目的操作數(shù)q2 2個(gè)操作數(shù)的指令個(gè)操作數(shù)的指令其中一個(gè)操作數(shù)既作為源操作數(shù),又作為目的操作數(shù)。其中一個(gè)操作數(shù)既作為源操作數(shù),又作為目的操作數(shù)。1010/75/75Computer architectureComputer architecture編輯ppt2.1 指令集結(jié)構(gòu)的分類ALU指令中存儲(chǔ)器操作數(shù)的個(gè)數(shù)可以是可以是0 0中的某一個(gè),為中的某一個(gè),為0 0表示沒(méi)有存儲(chǔ)器操作數(shù)。表示沒(méi)有存儲(chǔ)器操作數(shù)。ALU指令
8、中存儲(chǔ)器操作數(shù)的個(gè)數(shù) ALU指令中操作數(shù)的最多個(gè)數(shù) 結(jié)構(gòu)類型 機(jī)器實(shí)例 03RR MIPS,SPARC,Alpha,PowerPC,ARM12RM IBM 360/370,Intel 80 x86,Motorola 680003RM IBM 360/370 22MM VAX 33MM VAX 8. ALU指令中操作數(shù)個(gè)數(shù)和存儲(chǔ)器操作數(shù)個(gè)數(shù)的典型組合1212/75/75Computer architectureComputer architecture編輯ppt2.1 指令集結(jié)構(gòu)的分類w通用寄存器型指令集結(jié)構(gòu)進(jìn)一步細(xì)分為3種類型寄存器-寄存器型(RR型)寄存器-存儲(chǔ)器型(RM型)存儲(chǔ)器-存儲(chǔ)器型
9、(MM型)w 3種通用寄存器型指令集結(jié)構(gòu)的優(yōu)缺點(diǎn)w 表中(m,n)表示指令的n個(gè)操作數(shù)中有m個(gè)存w 儲(chǔ)器操作數(shù)。指令集結(jié)構(gòu)類型指令集結(jié)構(gòu)類型 優(yōu)優(yōu) 點(diǎn)點(diǎn) 缺缺 點(diǎn)點(diǎn) 寄存器寄存器型寄存器寄存器型 (0 0,3 3) 指令字長(zhǎng)固定,指令結(jié)構(gòu)指令字長(zhǎng)固定,指令結(jié)構(gòu)簡(jiǎn)潔,是一種簡(jiǎn)單的代碼簡(jiǎn)潔,是一種簡(jiǎn)單的代碼生成模型,各種指令的執(zhí)生成模型,各種指令的執(zhí)行時(shí)鐘周期數(shù)相近行時(shí)鐘周期數(shù)相近 與指令中含存儲(chǔ)器操作數(shù)的指令集結(jié)與指令中含存儲(chǔ)器操作數(shù)的指令集結(jié)構(gòu)相比,指令條數(shù)多,目標(biāo)代碼不夠構(gòu)相比,指令條數(shù)多,目標(biāo)代碼不夠緊湊,因而程序占用的空間比較大緊湊,因而程序占用的空間比較大 寄存器存儲(chǔ)器型寄存器存儲(chǔ)器型
10、 (1 1,2 2) 可以在可以在ALUALU指令中直接對(duì)存指令中直接對(duì)存儲(chǔ)器操作數(shù)進(jìn)行引用,而儲(chǔ)器操作數(shù)進(jìn)行引用,而不必先用不必先用loadload指令進(jìn)行加指令進(jìn)行加載。容易對(duì)指令進(jìn)行編碼,載。容易對(duì)指令進(jìn)行編碼,目標(biāo)代碼比較緊湊目標(biāo)代碼比較緊湊 指令中的兩個(gè)操作數(shù)不對(duì)稱。在一條指令中的兩個(gè)操作數(shù)不對(duì)稱。在一條指令中同時(shí)對(duì)寄存器操作數(shù)和存儲(chǔ)器指令中同時(shí)對(duì)寄存器操作數(shù)和存儲(chǔ)器操作數(shù)進(jìn)行編碼,有可能限制指令所操作數(shù)進(jìn)行編碼,有可能限制指令所能夠表示的寄存器個(gè)數(shù)。指令的執(zhí)行能夠表示的寄存器個(gè)數(shù)。指令的執(zhí)行時(shí)鐘周期數(shù)因操作數(shù)的來(lái)源(寄存器時(shí)鐘周期數(shù)因操作數(shù)的來(lái)源(寄存器或存儲(chǔ)器)不同而差別比較大或
11、存儲(chǔ)器)不同而差別比較大 存儲(chǔ)器存儲(chǔ)器型存儲(chǔ)器存儲(chǔ)器型 (2 2,2 2) 或(或(3 3,3 3) 目標(biāo)代碼最緊湊,不需要目標(biāo)代碼最緊湊,不需要設(shè)置寄存器來(lái)保存變量設(shè)置寄存器來(lái)保存變量 指令字長(zhǎng)變化很大,特別是指令字長(zhǎng)變化很大,特別是3 3操作數(shù)操作數(shù)指令。而且每條指令完成的工作也差指令。而且每條指令完成的工作也差別很大。對(duì)存儲(chǔ)器的頻繁訪問(wèn)會(huì)使存別很大。對(duì)存儲(chǔ)器的頻繁訪問(wèn)會(huì)使存儲(chǔ)器成為瓶頸。這種類型的指令集結(jié)儲(chǔ)器成為瓶頸。這種類型的指令集結(jié)構(gòu)現(xiàn)在已不用了構(gòu)現(xiàn)在已不用了1414/75/75Computer architectureComputer architecture編輯ppt1. 一種指
12、令集結(jié)構(gòu)如何確定所要訪問(wèn)的數(shù)據(jù)的地址?2. 當(dāng)前的指令集結(jié)構(gòu)中所采用的一些操作數(shù)尋址方式:賦值操作Mem:存儲(chǔ)器Regs:寄存器組方括號(hào):表示內(nèi)容qMem Mem :存儲(chǔ)器的內(nèi)容:存儲(chǔ)器的內(nèi)容qRegs Regs :寄存器的內(nèi)容:寄存器的內(nèi)容qMemRegsR1MemRegsR1:以寄存器:以寄存器R1R1中的內(nèi)容作為地址的中的內(nèi)容作為地址的 存儲(chǔ)器單元中的內(nèi)容存儲(chǔ)器單元中的內(nèi)容2.2 尋址方式尋址方式指令實(shí)例含 義寄存器尋址Add R4 , R3RegsR4RegsR4RegsR3立即值尋址Add R4 , #3RegsR4RegsR43偏移尋址Add R4 , 100(R1)RegsR4R
13、egsR4Mem100+RegsR1寄存器間接尋址Add R4 , (R1)RegsR4RegsR4MemRegsR1索引尋址Add R3 , (R1 + R2)RegsR3RegsR3MemRegsR1+RegsR2直接尋址或絕對(duì)尋址Add R1 , (1001)RegsR1RegsR1Mem1001存儲(chǔ)器間接尋址Add R1 , (R3)RegsR1RegsR1MemMemRegsR3自增尋址Add R1 , (R2)+RegsR1RegsR1MemRegsR2RegsR2RegsR2d自減尋址Add R1, -(R2)RegsR2RegsR2dRegsR1RegsR1+MemRegsR2
14、縮放尋址AddR1 , 100(R2)R3RegsR1RegsR1Mem100RegsR2RegsR3*d1616/75/75Computer architectureComputer architecture編輯ppt2.2 尋址方式 采用多種尋址方式可以顯著地減少程序的指令條 數(shù),但可能增加計(jì)算機(jī)的實(shí)現(xiàn)復(fù)雜度以及指令的CPI。1717/75/75Computer architectureComputer architecture編輯ppt2.2 尋址方式 1% 0% 24% 43% 32% 6% 16% 3% 17% 55% 1% 6% 11% 39% 40% 0% 10% 20% 30%
15、 40% 50% 60% 70% 存存儲(chǔ)儲(chǔ)器器間間接接尋尋址址 縮縮放放尋尋址址 寄寄存存器器間間接接尋尋址址 立立即即數(shù)數(shù)尋尋址址 偏偏移移尋尋址址 Tex Spice gcc 立即數(shù)尋址方式和偏移尋址方式的使用頻度最高。 w各種尋址方式的使用情況統(tǒng)計(jì)結(jié)果在在VAXVAX機(jī)器上運(yùn)行機(jī)器上運(yùn)行g(shù)ccgcc、SpiceSpice和和Tex Tex 基準(zhǔn)程序基準(zhǔn)程序1818/75/75Computer architectureComputer architecture編輯ppt2.2 尋址方式w 偏移量的取值范圍在在load-storeload-store結(jié)構(gòu)的機(jī)器(結(jié)構(gòu)的機(jī)器(AlphaAlph
16、a)上運(yùn)行上運(yùn)行SPEC CPU2000SPEC CPU2000基準(zhǔn)程序基準(zhǔn)程序 0% 占偏移尋址方式的百分比占偏移尋址方式的百分比 5% 10% 15% 20% 25% 30% 35% 40% 1 2 0 3 4 5 6 7 8 9 10 12 13 14 15 整數(shù)整數(shù) 浮點(diǎn)浮點(diǎn) 11 1919/75/75Computer architectureComputer architecture編輯ppt2.2 尋址方式從該圖可以看出:程序所使用的偏移量大小分布十分廣泛 主要是因?yàn)樵诖鎯?chǔ)器中所保存的數(shù)據(jù)并不是十分主要是因?yàn)樵诖鎯?chǔ)器中所保存的數(shù)據(jù)并不是十分集中,需要使用不同的偏移量才能對(duì)其進(jìn)行訪問(wèn)
17、。集中,需要使用不同的偏移量才能對(duì)其進(jìn)行訪問(wèn)。 較小的偏移量和較大的偏移量均占有相當(dāng)大 的比例 2020/75/75Computer architectureComputer architecture編輯ppt2.2 尋址方式w立即數(shù)尋址方式立即數(shù)尋址方式的使用頻度 指令類型 使用頻度 整型平均 浮點(diǎn)平均 load指令 23% 22% ALU指令 25% 19% 所有指令 21% 16% 大約1/4的load指令和ALU指令采用了立即數(shù)尋址。 2121/75/75Computer architectureComputer architecture編輯ppt2.2 尋址方式立即數(shù)的取值范圍 0%
18、 立即數(shù)的百分立即數(shù)的百分比 5% 10% 15% 20% 25% 30% 35% 40% 1 2 0 3 4 5 6 7 8 9 10 12 13 14 15 整數(shù)整數(shù) 浮點(diǎn)浮點(diǎn) 11 45% 2222/75/75Computer architectureComputer architecture編輯ppt2.2 尋址方式q最常用的是較小的立即數(shù);最常用的是較小的立即數(shù);q有時(shí)也會(huì)用到較大的立即數(shù)(主要是用于地址計(jì)算)。有時(shí)也會(huì)用到較大的立即數(shù)(主要是用于地址計(jì)算)。q在指令集結(jié)構(gòu)設(shè)計(jì)中,至少要將立即數(shù)的大小設(shè)置在指令集結(jié)構(gòu)設(shè)計(jì)中,至少要將立即數(shù)的大小設(shè)置 為為8 81616位。位。q在在V
19、AXVAX機(jī)(支持機(jī)(支持3232位立即數(shù))上做過(guò)類似的統(tǒng)計(jì),結(jié)果位立即數(shù))上做過(guò)類似的統(tǒng)計(jì),結(jié)果 表明表明20%20%25%25%的立即數(shù)超過(guò)的立即數(shù)超過(guò)1616位。位。 2323/75/75Computer architectureComputer architecture編輯ppt1. 指令集結(jié)構(gòu)的功能設(shè)計(jì)確定軟、硬件功能分配,即確定哪些基本功能應(yīng)該由硬件實(shí)現(xiàn),哪些功能由軟件實(shí)現(xiàn)比較合適。2. 在確定哪些基本功能用硬件來(lái)實(shí)現(xiàn)時(shí),主要考慮3個(gè)因素:速度、成本、靈活性硬件實(shí)現(xiàn)的特點(diǎn) 速度快、成本高、靈活性差速度快、成本高、靈活性差軟件實(shí)現(xiàn)的特點(diǎn) 速度慢、價(jià)格便宜、靈活性好速度慢、價(jià)格便宜、靈
20、活性好2.3 指令集結(jié)構(gòu)的功能設(shè)計(jì)2424/75/75Computer architectureComputer architecture編輯ppt2.3 指令集結(jié)構(gòu)的功能設(shè)計(jì)w對(duì)指令集的基本要求 完整性、規(guī)整性、高效率、兼容性 完整性:在一個(gè)有限可用的存儲(chǔ)空間內(nèi),對(duì)于任何可解的問(wèn)題,編制計(jì)算程序時(shí),指令集所提供的指令足夠用。q要求指令集功能齊全、使用方便要求指令集功能齊全、使用方便q下表為許多指令集結(jié)構(gòu)都包含的一些指令類型下表為許多指令集結(jié)構(gòu)都包含的一些指令類型 n前前4 4類類屬于通用計(jì)算機(jī)系統(tǒng)的基本指令屬于通用計(jì)算機(jī)系統(tǒng)的基本指令n對(duì)于最后對(duì)于最后4 4種類型的操作,不同指令集結(jié)構(gòu)的支種
21、類型的操作,不同指令集結(jié)構(gòu)的支 持大不相同持大不相同 。 2525/75/75Computer architectureComputer architecture編輯ppt2.3 指令集結(jié)構(gòu)的功能設(shè)計(jì)操作類型 實(shí) 例 算術(shù)和邏輯運(yùn)算 算術(shù)運(yùn)算和邏輯操作:加,減,乘,除,與,或等 數(shù)據(jù)傳輸 load,store控制 分支,跳轉(zhuǎn),過(guò)程調(diào)用和返回,自陷等 系統(tǒng) 操作系統(tǒng)調(diào)用,虛擬存儲(chǔ)器管理等 浮點(diǎn) 浮點(diǎn)操作:加,減,乘,除,比較等 十進(jìn)制 十進(jìn)制加,十進(jìn)制乘,十進(jìn)制到字符的轉(zhuǎn)換等 字符串 字符串移動(dòng),字符串比較,字符串搜索等 圖形 像素操作,壓縮/解壓操作等 2626/75/75Computer a
22、rchitectureComputer architecture編輯ppt2.3 指令集結(jié)構(gòu)的功能設(shè)計(jì)規(guī)整性:主要包括對(duì)稱性和均勻性。q對(duì)稱性:對(duì)稱性:所有與指令集有關(guān)的存儲(chǔ)單元的使用、所有與指令集有關(guān)的存儲(chǔ)單元的使用、 操作碼的設(shè)置等都是對(duì)稱的。操作碼的設(shè)置等都是對(duì)稱的。例如:例如:在存儲(chǔ)單元的使用上,所有通用寄存器都要同等對(duì)在存儲(chǔ)單元的使用上,所有通用寄存器都要同等對(duì) 待。在操作碼的設(shè)置上,如果設(shè)置了待。在操作碼的設(shè)置上,如果設(shè)置了A-BA-B的指的指 令,就應(yīng)該也設(shè)置令,就應(yīng)該也設(shè)置B-AB-A的指令。的指令。 q均勻性:均勻性:指對(duì)于各種不同的操作數(shù)類型、字長(zhǎng)、操作指對(duì)于各種不同的操作
23、數(shù)類型、字長(zhǎng)、操作 種類和數(shù)據(jù)存儲(chǔ)單元,指令的設(shè)置都要同等對(duì)待。種類和數(shù)據(jù)存儲(chǔ)單元,指令的設(shè)置都要同等對(duì)待。例如:例如:如果某機(jī)器有如果某機(jī)器有5 5種數(shù)據(jù)表示,種數(shù)據(jù)表示,4 4種字長(zhǎng),兩種存儲(chǔ)單種字長(zhǎng),兩種存儲(chǔ)單 元,則要設(shè)置元,則要設(shè)置5 54 42=402=40種同一操作的指令。種同一操作的指令。 2727/75/75Computer architectureComputer architecture編輯ppt2.3 指令集結(jié)構(gòu)的功能設(shè)計(jì)高效率:指指令的執(zhí)行速度快、使用頻度高。w在設(shè)計(jì)指令集結(jié)構(gòu)時(shí),有兩種截然不同的設(shè)計(jì)策略。 (產(chǎn)生了兩類不同的計(jì)算機(jī)系統(tǒng) )CISC(復(fù)雜指令集計(jì)算機(jī))
24、q增強(qiáng)指令功能,把越來(lái)越多的功能交由硬件來(lái)實(shí)增強(qiáng)指令功能,把越來(lái)越多的功能交由硬件來(lái)實(shí) 現(xiàn),并且指令的數(shù)量也是越來(lái)越多?,F(xiàn),并且指令的數(shù)量也是越來(lái)越多。RISC(精簡(jiǎn)指令集計(jì)算機(jī))q盡可能地把指令集簡(jiǎn)化,不僅指令的條數(shù)少,而且盡可能地把指令集簡(jiǎn)化,不僅指令的條數(shù)少,而且 指令的功能也比較簡(jiǎn)單。指令的功能也比較簡(jiǎn)單。 2828/75/75Computer architectureComputer architecture編輯ppt2.3 指令集結(jié)構(gòu)的功能設(shè)計(jì)1. CISC結(jié)構(gòu)追求的目標(biāo) 強(qiáng)化指令功能,減少程序的指令條數(shù),以達(dá)到提高性能的目的。2. 增強(qiáng)指令功能主要是從以下幾個(gè)方面著手:面向目標(biāo)程
25、序增強(qiáng)指令功能 q增強(qiáng)運(yùn)算型指令的功能增強(qiáng)運(yùn)算型指令的功能q增強(qiáng)數(shù)據(jù)傳送指令的功能增強(qiáng)數(shù)據(jù)傳送指令的功能q增強(qiáng)程序控制指令的功能增強(qiáng)程序控制指令的功能 豐富的程序控制指令為編程提供了多種選擇。豐富的程序控制指令為編程提供了多種選擇。 2.3.1 CISC指令集結(jié)構(gòu)的功能設(shè)計(jì)2929/75/75Computer architectureComputer architecture編輯ppt2.3 指令集結(jié)構(gòu)的功能設(shè)計(jì)例如:循環(huán)在程序中占有相當(dāng)大的 比例,所以在指令上提供專 門(mén)的支持。循環(huán)控制部分通常用3條指令完成:q一條加法指令一條加法指令q一條比較指令一條比較指令q一條分支指令一條分支指令設(shè)置循
26、環(huán)控制指令,用一條指令完成上述3條指令的功能。 I = m1 I=I+m3 循環(huán)體循環(huán)體 Im2 一般循環(huán)程序的結(jié)構(gòu)一般循環(huán)程序的結(jié)構(gòu)3030/75/75Computer architectureComputer architecture編輯ppt2.3 指令集結(jié)構(gòu)的功能設(shè)計(jì)面向高級(jí)語(yǔ)言的優(yōu)化實(shí)現(xiàn)來(lái)改進(jìn)指令集 (縮小高級(jí)語(yǔ)言與機(jī)器語(yǔ)言的語(yǔ)義差距) 高級(jí)語(yǔ)言與一般的機(jī)器語(yǔ)言的語(yǔ)義差距非常大,為高級(jí)語(yǔ)言程序的編譯帶來(lái)了一些問(wèn)題。(1 1)編譯器本身比較復(fù)雜。)編譯器本身比較復(fù)雜。(2 2)編譯生成)編譯生成的目標(biāo)代碼比較難以達(dá)到很好的優(yōu)化。的目標(biāo)代碼比較難以達(dá)到很好的優(yōu)化。 3131/75/75C
27、omputer architectureComputer architecture編輯ppt2.3 指令集結(jié)構(gòu)的功能設(shè)計(jì) 面面 向向 微微程程序序機(jī)機(jī)器器級(jí)級(jí) 傳傳統(tǒng)統(tǒng)機(jī)機(jī)器器 高高級(jí)級(jí)語(yǔ)語(yǔ)言言程程序序 高高級(jí)級(jí)語(yǔ)語(yǔ)言言 機(jī)機(jī) 器器 間間接接執(zhí)執(zhí)行行 高高級(jí)級(jí)語(yǔ)語(yǔ)言言 機(jī)機(jī) 器器 直直接接執(zhí)執(zhí)行行高高級(jí)級(jí)語(yǔ)語(yǔ)言言機(jī)機(jī)器器 解解釋釋 編編譯譯 匯匯編編 編編譯譯 解解釋釋 解解釋釋 解解釋釋 3232/75/75Computer architectureComputer architecture編輯ppt2.3 指令集結(jié)構(gòu)的功能設(shè)計(jì)q增強(qiáng)對(duì)高級(jí)語(yǔ)言和編譯器的支持增強(qiáng)對(duì)高級(jí)語(yǔ)言和編譯器的支持 p對(duì)
28、源程序中各種高級(jí)語(yǔ)言語(yǔ)句的使用頻度進(jìn)行對(duì)源程序中各種高級(jí)語(yǔ)言語(yǔ)句的使用頻度進(jìn)行 統(tǒng)計(jì)與分析,對(duì)使用頻度高、執(zhí)行時(shí)間長(zhǎng)的語(yǔ)句,統(tǒng)計(jì)與分析,對(duì)使用頻度高、執(zhí)行時(shí)間長(zhǎng)的語(yǔ)句,增強(qiáng)有關(guān)指令的功能,加快這些指令的執(zhí)行速度,增強(qiáng)有關(guān)指令的功能,加快這些指令的執(zhí)行速度,或者增加專門(mén)的指令,可以達(dá)到減少目標(biāo)程序的或者增加專門(mén)的指令,可以達(dá)到減少目標(biāo)程序的執(zhí)行時(shí)間和減少目標(biāo)程序長(zhǎng)度的目的。執(zhí)行時(shí)間和減少目標(biāo)程序長(zhǎng)度的目的。 p增強(qiáng)系統(tǒng)結(jié)構(gòu)的規(guī)整性,減少系統(tǒng)結(jié)構(gòu)中的各種增強(qiáng)系統(tǒng)結(jié)構(gòu)的規(guī)整性,減少系統(tǒng)結(jié)構(gòu)中的各種例外情況。例外情況。 (面向高級(jí)語(yǔ)言的計(jì)算機(jī)(面向高級(jí)語(yǔ)言的計(jì)算機(jī) )3333/75/75Compute
29、r architectureComputer architecture編輯ppt2.3 指令集結(jié)構(gòu)的功能設(shè)計(jì)q高級(jí)語(yǔ)言計(jì)算機(jī)高級(jí)語(yǔ)言計(jì)算機(jī) 間接執(zhí)行高級(jí)語(yǔ)言機(jī)器間接執(zhí)行高級(jí)語(yǔ)言機(jī)器 高級(jí)語(yǔ)言成為機(jī)器的匯編語(yǔ)言,這時(shí)高級(jí)語(yǔ)言和機(jī)高級(jí)語(yǔ)言成為機(jī)器的匯編語(yǔ)言,這時(shí)高級(jí)語(yǔ)言和機(jī)器語(yǔ)言是一一對(duì)應(yīng)的。用匯編的方法把高級(jí)語(yǔ)言源程序器語(yǔ)言是一一對(duì)應(yīng)的。用匯編的方法把高級(jí)語(yǔ)言源程序翻譯成機(jī)器語(yǔ)言程序。翻譯成機(jī)器語(yǔ)言程序。 直接執(zhí)行高級(jí)語(yǔ)言的機(jī)器直接執(zhí)行高級(jí)語(yǔ)言的機(jī)器 直接把高級(jí)語(yǔ)言作為機(jī)器語(yǔ)言,直接由固件直接把高級(jí)語(yǔ)言作為機(jī)器語(yǔ)言,直接由固件/硬件對(duì)硬件對(duì)高級(jí)語(yǔ)言源程序的語(yǔ)句逐條進(jìn)行解釋執(zhí)行。這時(shí)既不用高級(jí)語(yǔ)言
30、源程序的語(yǔ)句逐條進(jìn)行解釋執(zhí)行。這時(shí)既不用編譯,也不用匯編。編譯,也不用匯編。3434/75/75Computer architectureComputer architecture編輯ppt2.3 指令集結(jié)構(gòu)的功能設(shè)計(jì)面向操作系統(tǒng)的優(yōu)化實(shí)現(xiàn)改進(jìn)指令集 q操作系統(tǒng)和計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)是緊密聯(lián)系的,操作系操作系統(tǒng)和計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)是緊密聯(lián)系的,操作系 統(tǒng)的實(shí)現(xiàn)在很大程度上取決于系統(tǒng)結(jié)構(gòu)的支持。統(tǒng)的實(shí)現(xiàn)在很大程度上取決于系統(tǒng)結(jié)構(gòu)的支持。q指令集對(duì)操作系統(tǒng)的支持主要有:指令集對(duì)操作系統(tǒng)的支持主要有:p處理機(jī)工作狀態(tài)和訪問(wèn)方式的切換。處理機(jī)工作狀態(tài)和訪問(wèn)方式的切換。p進(jìn)程的管理和切換。進(jìn)程的管理和切換。p存儲(chǔ)
31、管理和信息保護(hù)。存儲(chǔ)管理和信息保護(hù)。p進(jìn)程的同步與互斥,信號(hào)燈的管理等。進(jìn)程的同步與互斥,信號(hào)燈的管理等。 支持操作系統(tǒng)的有些指令屬于特權(quán)指令,一般用戶支持操作系統(tǒng)的有些指令屬于特權(quán)指令,一般用戶程序是不能使用的。程序是不能使用的。 3535/75/75Computer architectureComputer architecture編輯ppt2.3 指令集結(jié)構(gòu)的功能設(shè)計(jì)1. CISC指令集結(jié)構(gòu)存在的問(wèn)題 (1979年開(kāi)始,Patterson等人的研究)各種指令的使用頻度相差懸殊q據(jù)統(tǒng)計(jì):只有據(jù)統(tǒng)計(jì):只有2020的指令使用頻度比較高,占運(yùn)的指令使用頻度比較高,占運(yùn)行時(shí)間的行時(shí)間的8080,而
32、其余,而其余8080的指令只在的指令只在2020的運(yùn)行時(shí)的運(yùn)行時(shí)間內(nèi)才會(huì)用到。間內(nèi)才會(huì)用到。q使用頻度高的指令也是最簡(jiǎn)單的指令。使用頻度高的指令也是最簡(jiǎn)單的指令。2.3.2 RISC指令集結(jié)構(gòu)的功能設(shè)計(jì)執(zhí)行頻度排序 80 x86指令 指令執(zhí)行頻度(占執(zhí)行指令總數(shù)的百分比) 1load 22% 2條件分支 20% 3比較 16% 4store 12% 5加 8% 6與 6% 7減 5% 8寄存器-寄存器間數(shù)據(jù)移動(dòng) 4% 9調(diào)用子程序 1% 10返回 1% 合 計(jì) 95% Intel 80 x86最常用的10條指令3737/75/75Computer architectureComputer ar
33、chitecture編輯ppt2.3 指令集結(jié)構(gòu)的功能設(shè)計(jì)指令集龐大,指令條數(shù)很多,許多指令的功能又 很復(fù)雜,使得控制器硬件非常復(fù)雜。 導(dǎo)致的問(wèn)題:q占用了大量的芯片面積(如占用占用了大量的芯片面積(如占用CPUCPU芯片總面積的芯片總面積的一半以上),給一半以上),給VLSIVLSI設(shè)計(jì)造成很大的困難;設(shè)計(jì)造成很大的困難;q增加了研制時(shí)間和成本,容易造成設(shè)計(jì)錯(cuò)誤。增加了研制時(shí)間和成本,容易造成設(shè)計(jì)錯(cuò)誤。許多指令由于操作繁雜,其CPI值比較大,執(zhí)行 速度慢。采用這些復(fù)雜指令有可能使整個(gè)程序的 執(zhí)行時(shí)間反而增加。由于指令功能復(fù)雜,規(guī)整性不好,不利于采用流 水技術(shù)來(lái)提高性能。 3838/75/75
34、Computer architectureComputer architecture編輯ppt2.3 指令集結(jié)構(gòu)的功能設(shè)計(jì)w設(shè)計(jì)RISC機(jī)器遵循的原則 指令條數(shù)少而簡(jiǎn)單。只選取使用頻度很高的指令,在此基礎(chǔ)上補(bǔ)充一些最有用的指令。采用簡(jiǎn)單而又統(tǒng)一的指令格式,并減少尋址方式;指令字長(zhǎng)都為32位或64位。指令的執(zhí)行在單個(gè)機(jī)器周期內(nèi)完成。 ( (采用流水線機(jī)制采用流水線機(jī)制) )只有l(wèi)oad和store指令才能訪問(wèn)存儲(chǔ)器,其他指令的操作都是在寄存器之間進(jìn)行。 (即采用(即采用load-storeload-store結(jié)構(gòu))結(jié)構(gòu))大多數(shù)指令都采用硬連邏輯來(lái)實(shí)現(xiàn)。3939/75/75Computer arc
35、hitectureComputer architecture編輯ppt2.3 指令集結(jié)構(gòu)的功能設(shè)計(jì)強(qiáng)調(diào)優(yōu)化編譯器的作用,為高級(jí)語(yǔ)言程序生成優(yōu)化的代碼。充分利用流水技術(shù)來(lái)提高性能。w早期的RISC微處理器1981年 ,Berkeley分校的Patterson 等人的32位微處理器RISC I :q3131條條指令,指令字長(zhǎng)都是指令,指令字長(zhǎng)都是3232位位,7878個(gè)個(gè)通用寄存器,時(shí)通用寄存器,時(shí)鐘頻率為鐘頻率為8 MHz8 MHz;q控制部分所占的芯片面積只有約控制部分所占的芯片面積只有約6%6%。商品化微處理器。商品化微處理器MC68000MC68000和和Z8000Z8000分別為分別為5
36、0%50%和和53%53%;3.3.性能比性能比MC68000MC68000和和Z8000Z8000快快3 34 4倍。倍。4040/75/75Computer architectureComputer architecture編輯ppt2.3 指令集結(jié)構(gòu)的功能設(shè)計(jì)1983年的RISC:q指令條數(shù)為指令條數(shù)為3939,通用寄存器個(gè)數(shù)為,通用寄存器個(gè)數(shù)為138138,時(shí)鐘頻率為,時(shí)鐘頻率為12 MHz12 MHz。q后來(lái)發(fā)展成了后來(lái)發(fā)展成了SunSun公司的公司的SPARCSPARC系列微處理器。系列微處理器。1981年,Stanford大學(xué)Hennessy等人的MIPS后來(lái)發(fā)展成了后來(lái)發(fā)展成了
37、MIPS Rxxx系列微處理器。系列微處理器。IBM的801共同特點(diǎn):q采用采用load-storeload-store結(jié)構(gòu)結(jié)構(gòu)q指令字長(zhǎng)為指令字長(zhǎng)為3232位位q采用高效的流水技術(shù)采用高效的流水技術(shù)4141/75/75Computer architectureComputer architecture編輯ppt2.3 指令集結(jié)構(gòu)的功能設(shè)計(jì)1. 控制指令是用來(lái)改變控制流的。 跳轉(zhuǎn):當(dāng)指令是無(wú)條件改變控制流時(shí),稱之為跳轉(zhuǎn)指令。分支:當(dāng)控制指令是有條件改變控制流時(shí),則稱之為分支指令。 2. 能夠改變控制流的指令q分支分支q跳轉(zhuǎn)跳轉(zhuǎn)q過(guò)程調(diào)用過(guò)程調(diào)用q過(guò)程返回過(guò)程返回2.3.3 控制指令4242/7
38、5/75Computer architectureComputer architecture編輯ppt2.3 指令集結(jié)構(gòu)的功能設(shè)計(jì)w控制指令的使用頻度 (load-storeload-store型指令集結(jié)構(gòu)的機(jī)器,基準(zhǔn)程序?yàn)樾椭噶罴Y(jié)構(gòu)的機(jī)器,基準(zhǔn)程序?yàn)镾PEC CPU2000SPEC CPU2000)指令類型 使用頻度 整型平均 浮點(diǎn)平均 調(diào)用/返回 19% 8% 跳轉(zhuǎn) 6% 10% 分支 75% 82% 改變控制流的大部分指令是分支指令(條件轉(zhuǎn)移)。 w常用的3種表示分支條件的方法及其優(yōu)缺點(diǎn) 名 稱 檢測(cè)分支條件的方法 優(yōu) 點(diǎn) 缺 點(diǎn) 條件碼(CC) 檢測(cè)由ALU操作設(shè)置的一些特殊的位(即
39、CC) 可以自由設(shè)置分支條件 條件碼是增設(shè)的狀態(tài)。而且它限制了指令的執(zhí)行順序,因?yàn)橐WC條件碼能順利地傳送給分支指令 條件寄存器 比較指令把比較結(jié)果放入任何一個(gè)寄存器,檢測(cè)時(shí)就檢測(cè)該寄存器 簡(jiǎn)單 占用了一個(gè)寄存器 比較與分支 比較操作是分支指令的一部分,通常這種比較是受到一定限制的 用一條指令(而不是兩條)就能實(shí)現(xiàn)分支 當(dāng)采用流水方式時(shí),該指令的操作可能太多,在一拍內(nèi)做不完 4444/75/75Computer architectureComputer architecture編輯ppt2.3 指令集結(jié)構(gòu)的功能設(shè)計(jì)w轉(zhuǎn)移目標(biāo)地址的表示最常用的方法 在指令中提供一個(gè)偏移量,由該偏移量和程序計(jì)數(shù)在
40、指令中提供一個(gè)偏移量,由該偏移量和程序計(jì)數(shù)器(器(PCPC)的值相加而得出目標(biāo)地址。)的值相加而得出目標(biāo)地址。 (PCPC相對(duì)尋址)相對(duì)尋址)優(yōu)點(diǎn)q有效地減少表示該目標(biāo)地址所需要的位數(shù)。有效地減少表示該目標(biāo)地址所需要的位數(shù)。q位置無(wú)關(guān)(代碼可被裝載到主存的任意位置執(zhí)行)。位置無(wú)關(guān)(代碼可被裝載到主存的任意位置執(zhí)行)。關(guān)鍵:確定偏移量字段的長(zhǎng)度q模擬結(jié)果表明:采用模擬結(jié)果表明:采用4 48 8位位的偏移量字段(以指令字的偏移量字段(以指令字為單位)就能表示大多數(shù)控制指令的轉(zhuǎn)移目標(biāo)地址了。為單位)就能表示大多數(shù)控制指令的轉(zhuǎn)移目標(biāo)地址了。4545/75/75Computer architecture
41、Computer architecture編輯ppt2.3 指令集結(jié)構(gòu)的功能設(shè)計(jì)w過(guò)程調(diào)用和返回除了要改變控制流之外,可能還要保存機(jī)器狀態(tài),至少也得保存返回地址(放在專用的鏈接寄存器或堆棧中)。過(guò)去有些指令集結(jié)構(gòu)提供了專門(mén)的保存機(jī)制來(lái)保存許多寄存器的內(nèi)容?,F(xiàn)在較新的指令集結(jié)構(gòu)則要求由編譯器生成load和store指令來(lái)保存或恢復(fù)寄存器的內(nèi)容。 4646/75/75Computer architectureComputer architecture編輯ppt數(shù)據(jù)表示:計(jì)算機(jī)硬件能夠直接識(shí)別、指令集可以直接調(diào)用的數(shù)據(jù)類型。q所有數(shù)據(jù)類型中最常用、相對(duì)比較簡(jiǎn)單、用硬件實(shí)現(xiàn)比較所有數(shù)據(jù)類型中最常用、相
42、對(duì)比較簡(jiǎn)單、用硬件實(shí)現(xiàn)比較容易的幾種。容易的幾種。 數(shù)據(jù)結(jié)構(gòu):由軟件進(jìn)行處理和實(shí)現(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è)計(jì)者要解決的問(wèn)題:如何確定數(shù)據(jù)表示?(軟硬件取舍折中的問(wèn)題)(軟硬件取舍折中的問(wèn)題)2.4 操作數(shù)的類型和大小4747/75/75Computer architectureComputer architecture編輯ppt2.4 操作數(shù)的類型和大小1. 表示操作數(shù)類型的方法有兩種由指令中的操作碼指定操作數(shù)的類型。帶標(biāo)志符的數(shù)據(jù)表示。給數(shù)據(jù)加上標(biāo)識(shí),
43、由數(shù)據(jù)本身給出操作數(shù)類型。q優(yōu)點(diǎn):優(yōu)點(diǎn):簡(jiǎn)化指令集,可由硬件自動(dòng)實(shí)現(xiàn)一致性檢查和簡(jiǎn)化指令集,可由硬件自動(dòng)實(shí)現(xiàn)一致性檢查和類型轉(zhuǎn)換,縮小了機(jī)器語(yǔ)言與高級(jí)語(yǔ)言的語(yǔ)義差距,類型轉(zhuǎn)換,縮小了機(jī)器語(yǔ)言與高級(jí)語(yǔ)言的語(yǔ)義差距,簡(jiǎn)化編譯器等。簡(jiǎn)化編譯器等。q缺點(diǎn):缺點(diǎn):由于需要在執(zhí)行過(guò)程中動(dòng)態(tài)檢測(cè)標(biāo)志符,動(dòng)態(tài)由于需要在執(zhí)行過(guò)程中動(dòng)態(tài)檢測(cè)標(biāo)志符,動(dòng)態(tài)開(kāi)銷比較大,所以采用這種方案的機(jī)器很少見(jiàn)。開(kāi)銷比較大,所以采用這種方案的機(jī)器很少見(jiàn)。2. 操作數(shù)的大?。翰僮鲾?shù)的位數(shù)或字節(jié)數(shù)。主要的大?。褐饕拇笮。鹤止?jié)(字節(jié)(8 8位)、半字(位)、半字(1616位)位) 字(字(3232位)、雙字(位)、雙字(6464位)位)
44、4848/75/75Computer architectureComputer architecture編輯ppt2.4 操作數(shù)的類型和大小字符:用ASCII碼表示,為一個(gè)字節(jié)大小。整數(shù):用二進(jìn)制補(bǔ)碼表示,其大小可以是字節(jié)、半字或單字。浮點(diǎn)操作數(shù):?jiǎn)尉雀↑c(diǎn)數(shù)(1個(gè)字)、雙精度浮點(diǎn)數(shù)(雙字)。 一般都采用一般都采用IEEE 754IEEE 754浮點(diǎn)浮點(diǎn)標(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,并將兩個(gè)十進(jìn)制數(shù)字合并到,并將兩個(gè)十進(jìn)制數(shù)字合并到一個(gè)字節(jié)中存儲(chǔ)。一個(gè)
45、字節(jié)中存儲(chǔ)。q非壓縮十進(jìn)制:將十進(jìn)制數(shù)直接用字符串來(lái)表示。非壓縮十進(jìn)制:將十進(jìn)制數(shù)直接用字符串來(lái)表示。w訪問(wèn)不同操作數(shù)大小的頻度(SPECSPEC基準(zhǔn)程序基準(zhǔn)程序 )操作數(shù)大小 訪問(wèn)頻度 整型平均 浮點(diǎn)平均 字節(jié) 7% 0% 半字 19% 0% 單字 74% 31% 雙字 0% 69% 基準(zhǔn)程序?qū)巫趾碗p字的數(shù)據(jù)訪問(wèn)具有較高的頻度。 一臺(tái)一臺(tái)3232位的機(jī)器應(yīng)該支持位的機(jī)器應(yīng)該支持8 8、1616、3232位整型操作數(shù)以及位整型操作數(shù)以及3232位和位和6464位的位的IEEE 754IEEE 754標(biāo)準(zhǔn)的浮點(diǎn)操作數(shù)。標(biāo)準(zhǔn)的浮點(diǎn)操作數(shù)。5050/75/75Computer architectu
46、reComputer architecture編輯ppt1. 指令由兩部分組成:操作碼、地址碼2. 指令格式的設(shè)計(jì) 確定指令字的編碼方式,包括操作碼字段和地址碼字段的編碼和表示方式。3. 操作碼的編碼比較簡(jiǎn)單和直觀Huffman編碼法 減少操作碼的平均位數(shù),但所獲得的編碼是變長(zhǎng)減少操作碼的平均位數(shù),但所獲得的編碼是變長(zhǎng)的,不規(guī)整,不利于硬件處理。的,不規(guī)整,不利于硬件處理。 固定長(zhǎng)度的操作碼 保證操作碼的譯碼速度。保證操作碼的譯碼速度。 2.5 指令格式的設(shè)計(jì)5151/75/75Computer architectureComputer architecture編輯ppt2.5 指令格式的設(shè)計(jì)
47、w兩種表示尋址方式的方法將尋址方式編碼于操作碼中,由操作碼描述相應(yīng)操作的尋址方式。適合:適合:處理機(jī)采用處理機(jī)采用l load-storeoad-store結(jié)構(gòu),尋址方式只有很少幾種。結(jié)構(gòu),尋址方式只有很少幾種。設(shè)置專門(mén)的地址描述符,由地址描述符表示相應(yīng)操作數(shù)的尋址方式。 適合:適合:處理機(jī)具有多種尋址方式,且指令有多個(gè)操作數(shù)。處理機(jī)具有多種尋址方式,且指令有多個(gè)操作數(shù)。5252/75/75Computer architectureComputer architecture編輯ppt2.5 指令格式的設(shè)計(jì)w考慮因素機(jī)器中寄存器的個(gè)數(shù)和尋址方式的數(shù)目對(duì)指令平均字長(zhǎng)的影響以及它們對(duì)目標(biāo)代碼大小的影
48、響。所設(shè)計(jì)的指令格式便于硬件處理,特別是流水實(shí)現(xiàn)。指令字長(zhǎng)應(yīng)該是字節(jié)(8位)的整數(shù)倍,而不能是隨意的位數(shù)。w指令集的3種編碼格式 變長(zhǎng)編碼格式、定長(zhǎng)編碼格式、混合型編碼格式變長(zhǎng)編碼格式、定長(zhǎng)編碼格式、混合型編碼格式5353/75/75Computer architectureComputer architecture編輯ppt2.5 指令格式的設(shè)計(jì)變長(zhǎng)編碼格式q當(dāng)指令集的尋址方式和操作種類很多時(shí),這種編碼當(dāng)指令集的尋址方式和操作種類很多時(shí),這種編碼格式是最好的。格式是最好的。q用最少的二進(jìn)制位來(lái)表示目標(biāo)代碼。用最少的二進(jìn)制位來(lái)表示目標(biāo)代碼。q可能會(huì)使各條指令的字長(zhǎng)和執(zhí)行時(shí)間相差很大??赡軙?huì)使各
49、條指令的字長(zhǎng)和執(zhí)行時(shí)間相差很大。 操操作作碼碼 地地址址描描述述符符 1 地地址址碼碼 1 地地址址描描述述符符 n 地地址址碼碼 n 5454/75/75Computer architectureComputer architecture編輯ppt2.5 指令格式的設(shè)計(jì) 操操作作碼碼 地地址址碼碼 1 地地址址碼碼 2 地地址址碼碼 3 定長(zhǎng)編碼格式q將操作類型和尋址方式一起編碼到操作碼中。將操作類型和尋址方式一起編碼到操作碼中。q當(dāng)尋址方式和操作類型非常少時(shí),這種編碼格式非當(dāng)尋址方式和操作類型非常少時(shí),這種編碼格式非常好。常好。q可以有效地降低譯碼的復(fù)雜度,提高譯碼的速度。可以有效地降低譯
50、碼的復(fù)雜度,提高譯碼的速度。q大部分大部分RISCRISC的指令集均采用這種編碼格式。的指令集均采用這種編碼格式。5555/75/75Computer architectureComputer architecture編輯ppt2.5 指令格式的設(shè)計(jì) 操操作作碼碼 地地址址碼碼 操操作作碼碼 地地址址碼碼 地地址址描描述述符符 地地址址描描述述符符 1 地地址址描描述述符符 2 操操作作碼碼 地地址址碼碼 1 地地址址描描述述符符 地地址址碼碼 2 混合型編碼格式q提供若干種固定的指令字長(zhǎng)。提供若干種固定的指令字長(zhǎng)。q以期達(dá)到既能夠減少目標(biāo)代碼長(zhǎng)度又能降低譯碼復(fù)以期達(dá)到既能夠減少目標(biāo)代碼長(zhǎng)度又
51、能降低譯碼復(fù)雜度的目標(biāo)。雜度的目標(biāo)。5656/75/75Computer architectureComputer architecture編輯ppt1. 32個(gè)64位通用寄存器(GPRs)R0,R1,R31也被稱為整數(shù)寄存器R0的值永遠(yuǎn)是02. 32個(gè)64位浮點(diǎn)數(shù)寄存器(FPRs)F0,F(xiàn)1,F(xiàn)312.6 MIPS指令集結(jié)構(gòu)介紹MIPS64的一個(gè)子集,簡(jiǎn)稱為MIPS。2.6.1 MIPS的寄存器5757/75/75Computer architectureComputer architecture編輯ppt2.6 MIPS指令集結(jié)構(gòu)用來(lái)存放32個(gè)單精度浮點(diǎn)數(shù)(32位),也可以用來(lái)存放32個(gè)雙
52、精度浮點(diǎn)數(shù)(64位)。存儲(chǔ)單精度浮點(diǎn)數(shù)(32位)時(shí),只用到FPR的一半,其另一半沒(méi)用。w一些特殊寄存器它們可以與通用寄存器交換數(shù)據(jù)。例如,浮點(diǎn)狀態(tài)寄存器用來(lái)保存有關(guān)浮點(diǎn)操作結(jié)果的信息。5858/75/75Computer architectureComputer architecture編輯ppt2.6 MIPS指令集結(jié)構(gòu)1. MIPS的數(shù)據(jù)表示整數(shù)字節(jié)(字節(jié)(8 8位)位) 半字(半字(1616位)位)字(字(3232位)位) 雙字(雙字(6464位)位)浮點(diǎn)數(shù)單精度浮點(diǎn)數(shù)(單精度浮點(diǎn)數(shù)(3232位)位) 雙精度浮點(diǎn)數(shù)(雙精度浮點(diǎn)數(shù)(6464位)位)2. 字節(jié)、半字或者字在裝入64位寄存器時(shí)
53、,用零擴(kuò)展或者用符號(hào)位擴(kuò)展來(lái)填充該寄存器的剩余部分。裝入以后,對(duì)它們將按照64位整數(shù)的方式進(jìn)行運(yùn)算。2.6.2 MIPS的數(shù)據(jù)表示5959/75/75Computer architectureComputer architecture編輯ppt2.6 MIPS指令集結(jié)構(gòu)1. 立即數(shù)尋址與偏移量尋址立即數(shù)字段和偏移量字段都是立即數(shù)字段和偏移量字段都是1616位的。位的。2. 寄存器間接尋址是通過(guò)把0作為偏移量來(lái)實(shí)現(xiàn)的3. 16位絕對(duì)尋址是通過(guò)把R0(其值永遠(yuǎn)為0)作為基址 寄存器來(lái)完成的wMIPS的存儲(chǔ)器是按字節(jié)尋址的,地址為64位4. 所有存儲(chǔ)器訪問(wèn)都必須是邊界對(duì)齊的2.6.3 MIPS的數(shù)據(jù)
54、尋址方式6060/75/75Computer architectureComputer architecture編輯ppt2.6 MIPS指令集結(jié)構(gòu)1. 尋址方式編碼到操作碼中2. 所有的指令都是32位的3. 操作碼占6位4. 3種指令格式2.6.4 MIPS的指令格式6161/75/75Computer architectureComputer architecture編輯ppt2.6 MIPS指令集結(jié)構(gòu)rt rs 立立即即數(shù)數(shù)(immediate) 操操作作碼碼 6 5 5 16 0 5 6 10 11 15 16 31 I類指令q包括所有的包括所有的loadload和和storestor
55、e指令、立即數(shù)指令、,分指令、立即數(shù)指令、,分支指令、寄存器跳轉(zhuǎn)指令、寄存器鏈接跳轉(zhuǎn)指令。支指令、寄存器跳轉(zhuǎn)指令、寄存器鏈接跳轉(zhuǎn)指令。q立即數(shù)字段為立即數(shù)字段為1616位,用于提供立即數(shù)或偏移量。位,用于提供立即數(shù)或偏移量。6262/75/75Computer architectureComputer architecture編輯ppt2.6 MIPS指令集結(jié)構(gòu)qloadload指令指令 訪存有效地址:訪存有效地址:RegsrsRegsrsimmediateimmediate 從存儲(chǔ)器取來(lái)的數(shù)據(jù)放入寄存器從存儲(chǔ)器取來(lái)的數(shù)據(jù)放入寄存器rtrtqstorestore指令指令 訪存有效地址:訪存有效
56、地址:RegsrsRegsrsimmediateimmediate 要存入存儲(chǔ)器的數(shù)據(jù)放在寄存器要存入存儲(chǔ)器的數(shù)據(jù)放在寄存器rtrt中中q立即數(shù)指令立即數(shù)指令 Regsrt Regsrs op immediateRegsrt Regsrs op immediateq分支指令分支指令 轉(zhuǎn)移目標(biāo)地址:轉(zhuǎn)移目標(biāo)地址:RegsrsRegsrsimmediateimmediate,rtrt無(wú)用無(wú)用q寄存器跳轉(zhuǎn)、寄存器跳轉(zhuǎn)并鏈接寄存器跳轉(zhuǎn)、寄存器跳轉(zhuǎn)并鏈接 轉(zhuǎn)移目標(biāo)地址為轉(zhuǎn)移目標(biāo)地址為RegsrsRegsrs6363/75/75Computer architectureComputer architect
57、ure編輯ppt2.6 MIPS指令集結(jié)構(gòu)R類指令q包括包括ALUALU指令、專用寄存器讀指令、專用寄存器讀/ /寫(xiě)指令、寫(xiě)指令、movemove指令等。指令等。qALUALU指令指令 Regsrd Regsrs funct RegsrtRegsrd Regsrs funct Regsrt func func為具體的運(yùn)算操作編碼為具體的運(yùn)算操作編碼操操作作碼碼 rs 6 5 5 6 rt 5 rd func 0 5 6 10 11 15 16 31 20 21 sham25 26 5 6464/75/75Computer architectureComputer architecture編輯p
58、pt2.6 MIPS指令集結(jié)構(gòu)J類指令q包括跳轉(zhuǎn)指令、跳轉(zhuǎn)并鏈接指令、自陷指令、異常返回包括跳轉(zhuǎn)指令、跳轉(zhuǎn)并鏈接指令、自陷指令、異常返回指令。指令。q在這類指令中,指令字的低在這類指令中,指令字的低2626位是偏移量,它與位是偏移量,它與PCPC值相值相加形成跳轉(zhuǎn)的地址。加形成跳轉(zhuǎn)的地址。26 操作碼操作碼 6 與與 PC 相加的偏移量相加的偏移量 31 0 5 6 6565/75/75Computer architectureComputer architecture編輯ppt2.6 MIPS指令集結(jié)構(gòu)1. MIPS指令可以分為四大類qloadload和和storestoreqALUALU操
59、作操作q分支與跳轉(zhuǎn)分支與跳轉(zhuǎn)q浮點(diǎn)操作浮點(diǎn)操作2. 符號(hào)的意義 xny:從y傳送n位到xx,yz:把z傳送到x和y 2.6.5 MIPS的操作6666/75/75Computer architectureComputer architecture編輯ppt2.6 MIPS指令集結(jié)構(gòu)下標(biāo):表示字段中具體的位;q對(duì)于指令和數(shù)據(jù),按從最高位到最低位(即從左到右)對(duì)于指令和數(shù)據(jù),按從最高位到最低位(即從左到右)的順序依次進(jìn)行編號(hào),最高位為第的順序依次進(jìn)行編號(hào),最高位為第0 0位,次高位為第位,次高位為第1 1位,依此類推。位,依此類推。q下標(biāo)可以是一個(gè)數(shù)字,也可以是一個(gè)范圍。下標(biāo)可以是一個(gè)數(shù)字,也可以
60、是一個(gè)范圍。例如:例如:RegsR4RegsR40 0:寄存器:寄存器R4R4的符號(hào)位的符號(hào)位 RegsR4RegsR456.6356.63:R4R4的最低字節(jié)的最低字節(jié)Mem:表示主存;q按字節(jié)尋址,可以傳輸任意個(gè)字節(jié)。按字節(jié)尋址,可以傳輸任意個(gè)字節(jié)。上標(biāo):用于表示對(duì)字段進(jìn)行復(fù)制的次數(shù)。例如:例如:0 0 3232:一個(gè):一個(gè)3232位長(zhǎng)的全位長(zhǎng)的全0 0字段字段6767/75/75Computer architectureComputer architecture編輯ppt2.6 MIPS指令集結(jié)構(gòu)符號(hào)#:用于兩個(gè)字段的拼接,并且可以出現(xiàn)在數(shù)據(jù)傳送的任何一邊。舉例:舉例:R8R8、R10R
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 工藝品訂購(gòu)合同范本
- 建筑工程內(nèi)部承包經(jīng)營(yíng)合同案例
- 職工待崗協(xié)議2024年
- 建筑施工隊(duì)臨時(shí)工合同
- 蘇教版小學(xué)數(shù)學(xué)四年級(jí)下冊(cè)《用數(shù)對(duì)確定位置》公開(kāi)課說(shuō)課課件
- 2024職業(yè)培訓(xùn)合作協(xié)議
- 園林工程結(jié)算合同樣本
- 信息技術(shù)服務(wù)合作合同樣本
- 家庭保姆合同書(shū)模板
- 合作共贏協(xié)議書(shū)范本
- 公路工程安全技術(shù)交底(完整版)
- 國(guó)家電網(wǎng)公司輸變電工程工藝標(biāo)準(zhǔn)庫(kù)(輸電線路工程部分)試題
- 諸暨市籃球協(xié)會(huì)會(huì)員登記表(精品)
- 直線度、平面度、平行度的測(cè)量
- 三年級(jí)習(xí)作:菊花教學(xué)指導(dǎo)(課堂PPT)
- 個(gè)人醫(yī)德醫(yī)風(fēng)檔案
- DIC的診斷與評(píng)價(jià)ppt課件
- 車輛評(píng)估報(bào)告
- 施工圖變更單4頁(yè)
- 金山區(qū)社區(qū)衛(wèi)生服務(wù)中心基本項(xiàng)目標(biāo)化工作量指導(dǎo)標(biāo)準(zhǔn)2015
- 紙尿褲生產(chǎn)規(guī)程與設(shè)備維護(hù)
評(píng)論
0/150
提交評(píng)論