




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)n第第2章章 計(jì)算機(jī)指令系統(tǒng)的設(shè)計(jì)計(jì)算機(jī)指令系統(tǒng)的設(shè)計(jì)n2.1 指令集結(jié)構(gòu)的分類(lèi)指令集結(jié)構(gòu)的分類(lèi)n2.2 尋址方式尋址方式n2.3 指令系統(tǒng)的設(shè)計(jì)和優(yōu)化指令系統(tǒng)的設(shè)計(jì)和優(yōu)化n2.3.1 按按CISC方向發(fā)展和改進(jìn)指令系統(tǒng)方向發(fā)展和改進(jìn)指令系統(tǒng)n2.3.2 按按RISC方向發(fā)展和改進(jìn)指令系統(tǒng)方向發(fā)展和改進(jìn)指令系統(tǒng)n2.3.3 指令操作碼的優(yōu)化指令操作碼的優(yōu)化n2.3.4 指令字格式的優(yōu)化指令字格式的優(yōu)化n2.4 MIPS指令系統(tǒng)結(jié)構(gòu)指令系統(tǒng)結(jié)構(gòu)計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)第第2章章 計(jì)算機(jī)指令系統(tǒng)的設(shè)計(jì)計(jì)算機(jī)指令系統(tǒng)的設(shè)計(jì) 計(jì)算機(jī)指令集結(jié)構(gòu)的設(shè)計(jì)是計(jì)算機(jī)體系結(jié)構(gòu)設(shè)計(jì)的
2、核心問(wèn)題計(jì)算機(jī)指令集結(jié)構(gòu)的設(shè)計(jì)是計(jì)算機(jī)體系結(jié)構(gòu)設(shè)計(jì)的核心問(wèn)題之一,是軟、硬件功能分配最主要的界面,它歷來(lái)是計(jì)算機(jī)體系之一,是軟、硬件功能分配最主要的界面,它歷來(lái)是計(jì)算機(jī)體系結(jié)構(gòu)設(shè)計(jì)者、系統(tǒng)軟件設(shè)計(jì)者和硬件設(shè)計(jì)者所共同關(guān)注的問(wèn)題。結(jié)構(gòu)設(shè)計(jì)者、系統(tǒng)軟件設(shè)計(jì)者和硬件設(shè)計(jì)者所共同關(guān)注的問(wèn)題。n2.1 指令集結(jié)構(gòu)的分類(lèi)指令集結(jié)構(gòu)的分類(lèi)一般來(lái)說(shuō),可以從以下一般來(lái)說(shuō),可以從以下5個(gè)因素考慮對(duì)計(jì)算機(jī)的指令個(gè)因素考慮對(duì)計(jì)算機(jī)的指令集結(jié)構(gòu)進(jìn)行分類(lèi):集結(jié)構(gòu)進(jìn)行分類(lèi):1.CPU中操作數(shù)的存儲(chǔ)方法中操作數(shù)的存儲(chǔ)方法2.指令中顯式表示的操作數(shù)個(gè)數(shù)指令中顯式表示的操作數(shù)個(gè)數(shù)3.操作數(shù)的尋址方式操作數(shù)的尋址方式4.指令集所提
3、供的操作類(lèi)型指令集所提供的操作類(lèi)型5.操作數(shù)的類(lèi)型和大小操作數(shù)的類(lèi)型和大小2.1 指令集結(jié)構(gòu)的分類(lèi)指令集結(jié)構(gòu)的分類(lèi)n其中,其中,CPU中操作數(shù)的存儲(chǔ)方法,即在中操作數(shù)的存儲(chǔ)方法,即在CPU中用來(lái)存中用來(lái)存儲(chǔ)操作數(shù)的存儲(chǔ)單元的類(lèi)型,是各種指令集結(jié)構(gòu)之間儲(chǔ)操作數(shù)的存儲(chǔ)單元的類(lèi)型,是各種指令集結(jié)構(gòu)之間的最主要區(qū)別所在。的最主要區(qū)別所在。nCPU中用來(lái)存儲(chǔ)操作數(shù)的存儲(chǔ)單元中用來(lái)存儲(chǔ)操作數(shù)的存儲(chǔ)單元n堆棧堆棧n累加器累加器n通用寄存器組通用寄存器組2.1 指令集結(jié)構(gòu)的分類(lèi)指令集結(jié)構(gòu)的分類(lèi)n將指令系統(tǒng)的結(jié)構(gòu)分為三種類(lèi)型將指令系統(tǒng)的結(jié)構(gòu)分為三種類(lèi)型n堆棧結(jié)構(gòu)堆棧結(jié)構(gòu)n累加器結(jié)構(gòu)累加器結(jié)構(gòu)n通用寄存器結(jié)構(gòu)通用
4、寄存器結(jié)構(gòu)根據(jù)操作數(shù)的來(lái)源不同,又可進(jìn)一步分為根據(jù)操作數(shù)的來(lái)源不同,又可進(jìn)一步分為:n寄存器寄存器- -存儲(chǔ)器結(jié)構(gòu)存儲(chǔ)器結(jié)構(gòu)(RMRM結(jié)構(gòu))結(jié)構(gòu)) ( (操作數(shù)可以來(lái)自存儲(chǔ)器操作數(shù)可以來(lái)自存儲(chǔ)器 ) )n寄存器寄存器- -寄存器結(jié)構(gòu)寄存器結(jié)構(gòu)(RRRR結(jié)構(gòu))結(jié)構(gòu)) ( (所有操作數(shù)都是來(lái)自通用寄存器組所有操作數(shù)都是來(lái)自通用寄存器組) ) 也稱(chēng)為也稱(chēng)為load-storeload-store結(jié)構(gòu),這個(gè)名稱(chēng)強(qiáng)調(diào)結(jié)構(gòu),這個(gè)名稱(chēng)強(qiáng)調(diào):只有:只有l(wèi)oadload指令和指令和storestore指令能夠訪問(wèn)存儲(chǔ)器。指令能夠訪問(wèn)存儲(chǔ)器。2.1 指令集結(jié)構(gòu)的分類(lèi)指令集結(jié)構(gòu)的分類(lèi)n對(duì)于不同類(lèi)型的結(jié)構(gòu),操作數(shù)的位
5、置、個(gè)數(shù)對(duì)于不同類(lèi)型的結(jié)構(gòu),操作數(shù)的位置、個(gè)數(shù)以及操作數(shù)的給出方式(顯式或隱式)也會(huì)以及操作數(shù)的給出方式(顯式或隱式)也會(huì)不同。不同。n顯式給出:用指令字中的操作數(shù)字段給出顯式給出:用指令字中的操作數(shù)字段給出n隱式給出:使用事先約定好的單元隱式給出:使用事先約定好的單元 2.1 指令集結(jié)構(gòu)的分類(lèi)指令集結(jié)構(gòu)的分類(lèi) 例例: 表達(dá)式表達(dá)式C C=A+B=A+B在在4 4種類(lèi)型指令系統(tǒng)結(jié)構(gòu)上的代碼。種類(lèi)型指令系統(tǒng)結(jié)構(gòu)上的代碼。 假設(shè):假設(shè):A A、B B、C C均保存在存儲(chǔ)器單元中,并且不能均保存在存儲(chǔ)器單元中,并且不能 破壞破壞A A和和B B的值。的值。堆 棧 累加器寄存器(RM型) 寄存器(RR
6、型) push Aload Aload R1,Aload R1,Apush Badd Badd R1,Bload R2,BAddstore Cstore R1,Cadd R3,R1,R2pop Cstore R3,C2.1 指令集結(jié)構(gòu)的分類(lèi)指令集結(jié)構(gòu)的分類(lèi)n通用寄存器型結(jié)構(gòu)通用寄存器型結(jié)構(gòu)n現(xiàn)代指令系統(tǒng)結(jié)構(gòu)的主流現(xiàn)代指令系統(tǒng)結(jié)構(gòu)的主流n在靈活性和提高性能方面有明顯的優(yōu)勢(shì)在靈活性和提高性能方面有明顯的優(yōu)勢(shì)n跟其它的跟其它的CPUCPU內(nèi)部存儲(chǔ)單元一樣,寄存器的訪問(wèn)內(nèi)部存儲(chǔ)單元一樣,寄存器的訪問(wèn) 速度比存儲(chǔ)器快。速度比存儲(chǔ)器快。n對(duì)編譯器而言,能更加容易、有效地分配和使用對(duì)編譯器而言,能更加容易、
7、有效地分配和使用 寄存器。寄存器。n寄存器可以用來(lái)存放變量。寄存器可以用來(lái)存放變量。 (1 1)減少對(duì)存儲(chǔ)器的訪問(wèn),加快程序的執(zhí)行速度;減少對(duì)存儲(chǔ)器的訪問(wèn),加快程序的執(zhí)行速度; (因?yàn)榧拇嫫鞅却鎯?chǔ)器快)(因?yàn)榧拇嫫鞅却鎯?chǔ)器快)(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)代碼的 大小。大小。 2.1 指令集結(jié)構(gòu)的分類(lèi)指令集結(jié)構(gòu)的分類(lèi)n根據(jù)根據(jù)ALUALU指令的操作數(shù)的兩個(gè)特征對(duì)通用寄存器型結(jié)指令的操作數(shù)的兩個(gè)特征對(duì)通用寄存器型結(jié) 構(gòu)進(jìn)一步細(xì)分構(gòu)進(jìn)一步細(xì)分nAL
8、U指令的操作數(shù)個(gè)數(shù)指令的操作數(shù)個(gè)數(shù)n3 3個(gè)操作數(shù)的指令個(gè)操作數(shù)的指令 兩個(gè)源操作數(shù)、一個(gè)目的操作數(shù)兩個(gè)源操作數(shù)、一個(gè)目的操作數(shù)n2 2個(gè)操作數(shù)的指令個(gè)操作數(shù)的指令 其中一個(gè)操作數(shù)既作為源操作數(shù),又作為目的其中一個(gè)操作數(shù)既作為源操作數(shù),又作為目的操作數(shù)。操作數(shù)。nALUALU指令中存儲(chǔ)器操作數(shù)的個(gè)數(shù)指令中存儲(chǔ)器操作數(shù)的個(gè)數(shù) 可以是可以是0 0中的某一個(gè),為中的某一個(gè),為0 0表示沒(méi)有存儲(chǔ)器操表示沒(méi)有存儲(chǔ)器操作數(shù)。作數(shù)。2.1 指令集結(jié)構(gòu)的分類(lèi)指令集結(jié)構(gòu)的分類(lèi)ALU指令中存儲(chǔ)器操作數(shù)的個(gè)數(shù) ALU指令中操作數(shù)的最多個(gè)數(shù) 結(jié)構(gòu)類(lèi)型 機(jī)器實(shí)例 03RR MIPS,SPARC,Alpha,PowerP
9、C,ARM12RM IBM 360/370,Intel 80 x86,Motorola 680003RM IBM 360/370 22MM VAX 33MM VAX ALU指令中操作數(shù)個(gè)數(shù)和存儲(chǔ)器操作數(shù)個(gè)數(shù)的典型組合2.1 指令集結(jié)構(gòu)的分類(lèi)指令集結(jié)構(gòu)的分類(lèi)n通用寄存器型結(jié)構(gòu)進(jìn)一步細(xì)分為通用寄存器型結(jié)構(gòu)進(jìn)一步細(xì)分為3 3種類(lèi)型種類(lèi)型n寄存器寄存器型(寄存器寄存器型(RRRR型)型)n寄存器存儲(chǔ)器型(寄存器存儲(chǔ)器型(RMRM型)型)n存儲(chǔ)器存儲(chǔ)器型(存儲(chǔ)器存儲(chǔ)器型(MMMM型型)n 3 3種通用寄存器型結(jié)構(gòu)的優(yōu)缺點(diǎn)種通用寄存器型結(jié)構(gòu)的優(yōu)缺點(diǎn)下表中下表中(m(m,n)n)表示指令的表示指令的n n個(gè)
10、操作數(shù)中有個(gè)操作數(shù)中有m m個(gè)存?zhèn)€存儲(chǔ)器操作數(shù)。儲(chǔ)器操作數(shù)。2.1 指令集結(jié)構(gòu)的分類(lèi)指令集結(jié)構(gòu)的分類(lèi)指令系統(tǒng)結(jié)構(gòu)類(lèi)型 優(yōu) 點(diǎn) 缺 點(diǎn) 寄存器寄存器型 (0,3) 指令字長(zhǎng)固定,指令結(jié)構(gòu)簡(jiǎn)潔,是一種簡(jiǎn)單的代碼生成模型,各種指令的執(zhí)行時(shí)鐘周期數(shù)相近。 與指令中含存儲(chǔ)器操作數(shù)的指令系統(tǒng)結(jié)構(gòu)相比,指令條數(shù)多,目標(biāo)代碼不夠緊湊,因而程序占用的空間比較大。 寄存器存儲(chǔ)器型 (1,2) 可以在ALU指令中直接對(duì)存儲(chǔ)器操作數(shù)進(jìn)行引用,而不必先用load指令進(jìn)行加載。容易對(duì)指令進(jìn)行編碼,目標(biāo)代碼比較緊湊。 指令中的兩個(gè)操作數(shù)不對(duì)稱(chēng)。在一條指令中同時(shí)對(duì)寄存器操作數(shù)和存儲(chǔ)器操作數(shù)進(jìn)行編碼,有可能限制指令所能夠表示的
11、寄存器個(gè)數(shù)。指令的執(zhí)行時(shí)鐘周期數(shù)因操作數(shù)的來(lái)源(寄存器或存儲(chǔ)器)不同而差別比較大。 存儲(chǔ)器存儲(chǔ)器型 (2,2) 或(3,3) 目標(biāo)代碼最緊湊,不需要設(shè)置寄存器來(lái)保存變量。 指令字長(zhǎng)變化很大,特別是3操作數(shù)指令。而且每條指令完成的工作也差別很大。對(duì)存儲(chǔ)器的頻繁訪問(wèn)會(huì)使存儲(chǔ)器成為瓶頸。這種類(lèi)型的指令系統(tǒng)結(jié)構(gòu)現(xiàn)在已不用了。 第第2章章 計(jì)算機(jī)指令系統(tǒng)的設(shè)計(jì)計(jì)算機(jī)指令系統(tǒng)的設(shè)計(jì)n2.2 尋址方式尋址方式n尋址方式尋址方式:指令系統(tǒng)中如何形成所要訪:指令系統(tǒng)中如何形成所要訪問(wèn)的數(shù)據(jù)的地址。問(wèn)的數(shù)據(jù)的地址。 n尋址方式可以指明指令中的操作數(shù)是一個(gè)尋址方式可以指明指令中的操作數(shù)是一個(gè)常數(shù)、一個(gè)寄存器操作數(shù)或
12、者是一個(gè)存儲(chǔ)常數(shù)、一個(gè)寄存器操作數(shù)或者是一個(gè)存儲(chǔ)器操作數(shù)。器操作數(shù)。n對(duì)于存儲(chǔ)器操作數(shù)來(lái)說(shuō),由尋址方式確定對(duì)于存儲(chǔ)器操作數(shù)來(lái)說(shuō),由尋址方式確定的存儲(chǔ)器地址稱(chēng)為的存儲(chǔ)器地址稱(chēng)為有效地址有效地址。 2.2 尋址方式尋址方式n一些操作數(shù)尋址方式一些操作數(shù)尋址方式n:賦值操作賦值操作nMemMem:存儲(chǔ)器存儲(chǔ)器nRegsRegs:寄存器組寄存器組n方括號(hào):方括號(hào):表示內(nèi)容表示內(nèi)容nMem Mem :存儲(chǔ)器的內(nèi)容:存儲(chǔ)器的內(nèi)容nRegs Regs :寄存器的內(nèi)容:寄存器的內(nèi)容nMemRegsR1MemRegsR1:以寄存器:以寄存器R1R1中的內(nèi)容作為地址中的內(nèi)容作為地址的存儲(chǔ)器單元中的內(nèi)容的存儲(chǔ)器單元
13、中的內(nèi)容2.2 尋址方式尋址方式尋址方式尋址方式指令實(shí)例指令實(shí)例含含 義義寄存器尋址ADD R1 , R2RegsR1RegsR1RegsR2立即值尋址ADD R3 , #6RegsR3RegsR36偏移尋址ADD R3 , 120(R2)RegsR3RegsR3Mem120+RegsR2寄存器間接尋址ADD R4 , (R2)RegsR4RegsR4MemRegsR2索引尋址ADD R4 , (R2 + R3)RegsR4RegsR4MemRegsR2+RegsR3直接尋址或絕對(duì)尋址ADD R4 , (1010)RegsR4RegsR4Mem1010存儲(chǔ)器間接尋址ADD R2 , (R4)R
14、egsR2RegsR2MemMemRegsR4自增尋址ADD R1 , (R2)+RegsR1RegsR1MemRegsR2RegsR2RegsR2d自減尋址ADD R1, -(R2)RegsR2RegsR2dRegsR1RegsR1+MemRegsR2縮放尋址ADDR1 , 80(R2)R3RegsR1RegsR1Mem80RegsR2RegsR3*d2.2 尋址方式尋址方式 采用多種尋址方式可以顯著地減少程序的采用多種尋址方式可以顯著地減少程序的指令條數(shù),但可能增加計(jì)算機(jī)的實(shí)現(xiàn)復(fù)雜度指令條數(shù),但可能增加計(jì)算機(jī)的實(shí)現(xiàn)復(fù)雜度以及指令的以及指令的CPICPI。2.2 尋址方式尋址方式n各種尋址方
15、式的使用情況統(tǒng)計(jì)結(jié)果各種尋址方式的使用情況統(tǒng)計(jì)結(jié)果在在VAXVAX機(jī)器上運(yùn)行機(jī)器上運(yùn)行g(shù)ccgcc、SpiceSpice和和Tex Tex 基準(zhǔn)程序基準(zhǔn)程序 1% 0% 24% 43% 32% 6% 16% 3% 17% 55% 1% 6% 11% 39% 40% 0% 10% 20% 30% 40% 50% 60% 70% 存存儲(chǔ)儲(chǔ)器器間間接接尋尋址址 縮縮放放尋尋址址 寄寄存存器器間間接接尋尋址址 立立即即數(shù)數(shù)尋尋址址 偏偏移移尋尋址址 Tex Spice gcc 立即數(shù)尋址方式立即數(shù)尋址方式和和偏移尋址方式偏移尋址方式的使用頻度最高。的使用頻度最高。 2.2 尋址方式尋址方式n偏移尋址偏
16、移尋址n偏移量的取值范圍偏移量的取值范圍n在在load-store結(jié)構(gòu)的機(jī)器(結(jié)構(gòu)的機(jī)器(Alpha)上運(yùn)行)上運(yùn)行SPEC CPU2000基準(zhǔn)程序基準(zhǔn)程序2.2 尋址方式尋址方式n位移量字段的大小直接影響到指令的長(zhǎng)度。位移量字段的大小直接影響到指令的長(zhǎng)度。n從圖中可以看出:從圖中可以看出:n程序所使用的偏移量大小分布十分廣泛程序所使用的偏移量大小分布十分廣泛n主要是由于在存儲(chǔ)器中所保存的數(shù)據(jù)并不是十分集中主要是由于在存儲(chǔ)器中所保存的數(shù)據(jù)并不是十分集中,需要使用不同的偏移量對(duì)其進(jìn)行訪問(wèn)。,需要使用不同的偏移量對(duì)其進(jìn)行訪問(wèn)。n較小的偏移量和較大的偏移量均占有相當(dāng)大的比較小的偏移量和較大的偏移量均
17、占有相當(dāng)大的比例。例。2.2 尋址方式尋址方式n立即數(shù)尋址方式立即數(shù)尋址方式n立即數(shù)尋址方式的使用頻度立即數(shù)尋址方式的使用頻度 指令類(lèi)型 使用頻度 整型平均 浮點(diǎn)平均 load指令 23% 22% ALU指令 25% 19% 所有指令 21% 16% 大約1/4的load指令和ALU指令采用了立即數(shù)尋址。 2.2 尋址方式尋址方式n立即數(shù)的取值范圍立即數(shù)的取值范圍2.2 尋址方式尋址方式n立即數(shù)取值的大小也影響到指令長(zhǎng)度立即數(shù)取值的大小也影響到指令長(zhǎng)度n最常用的是較小的立即數(shù)最常用的是較小的立即數(shù)n有時(shí)也會(huì)用到較大的立即數(shù)(主要用于地址有時(shí)也會(huì)用到較大的立即數(shù)(主要用于地址計(jì)算)計(jì)算)n測(cè)試表
18、明,測(cè)試表明,16位的長(zhǎng)度覆蓋大約位的長(zhǎng)度覆蓋大約80%,8位位可以覆蓋大約可以覆蓋大約50%。2.2 尋址方式尋址方式n兩種表示尋址方式的方法兩種表示尋址方式的方法n將尋址方式編碼于操作碼中,由操作碼描述相應(yīng)操作的尋將尋址方式編碼于操作碼中,由操作碼描述相應(yīng)操作的尋址方式。址方式。適合適合:處理機(jī)采用:處理機(jī)采用load-store結(jié)構(gòu),尋址方式只有很少幾種。結(jié)構(gòu),尋址方式只有很少幾種。n在指令字中設(shè)置專(zhuān)門(mén)的尋址字段,用以直接指出尋址方式。在指令字中設(shè)置專(zhuān)門(mén)的尋址字段,用以直接指出尋址方式。n靈活,操作碼短,但需要設(shè)置專(zhuān)門(mén)的尋址方式字段,而靈活,操作碼短,但需要設(shè)置專(zhuān)門(mén)的尋址方式字段,而且操
19、作碼和尋址方式字段合起來(lái)所需要的總位數(shù)可能會(huì)且操作碼和尋址方式字段合起來(lái)所需要的總位數(shù)可能會(huì)比隱含方法的總位數(shù)多。比隱含方法的總位數(shù)多。 適合適合:處理機(jī)具有多種尋址方式,且指令有多個(gè)操作數(shù)。:處理機(jī)具有多種尋址方式,且指令有多個(gè)操作數(shù)。第第2章章 計(jì)算機(jī)指令系統(tǒng)的設(shè)計(jì)計(jì)算機(jī)指令系統(tǒng)的設(shè)計(jì)n2.3 2.3 指令系統(tǒng)的設(shè)計(jì)和優(yōu)化指令系統(tǒng)的設(shè)計(jì)和優(yōu)化n指令系統(tǒng)的設(shè)計(jì)指令系統(tǒng)的設(shè)計(jì)n首先考慮所應(yīng)實(shí)現(xiàn)的基本功能,確定哪些基本功首先考慮所應(yīng)實(shí)現(xiàn)的基本功能,確定哪些基本功能應(yīng)該由硬件實(shí)現(xiàn),哪些功能由軟件實(shí)現(xiàn)比較合能應(yīng)該由硬件實(shí)現(xiàn),哪些功能由軟件實(shí)現(xiàn)比較合適。適。n包括包括n指令的功能設(shè)計(jì)指令的功能設(shè)計(jì)n指
20、令格式的設(shè)計(jì)指令格式的設(shè)計(jì)n在確定哪些基本功能用硬件來(lái)實(shí)現(xiàn)時(shí),主要考慮在確定哪些基本功能用硬件來(lái)實(shí)現(xiàn)時(shí),主要考慮3個(gè)個(gè)因素:因素:速度、成本、靈活性。速度、成本、靈活性。2.3 2.3 指令系統(tǒng)的設(shè)計(jì)和優(yōu)化指令系統(tǒng)的設(shè)計(jì)和優(yōu)化n在設(shè)計(jì)新的指令系統(tǒng)時(shí),一般按以下步驟反復(fù)多次地在設(shè)計(jì)新的指令系統(tǒng)時(shí),一般按以下步驟反復(fù)多次地進(jìn)行,直至指令系統(tǒng)的效能達(dá)到很高為止。進(jìn)行,直至指令系統(tǒng)的效能達(dá)到很高為止。1.根據(jù)應(yīng)用,初擬出指令的分類(lèi)和具體的指令。根據(jù)應(yīng)用,初擬出指令的分類(lèi)和具體的指令。2.試編出用該指令系統(tǒng)設(shè)計(jì)的各種高級(jí)語(yǔ)言的編譯試編出用該指令系統(tǒng)設(shè)計(jì)的各種高級(jí)語(yǔ)言的編譯程序。程序。3.對(duì)各種算法編寫(xiě)大
21、量測(cè)試程序并進(jìn)行模擬測(cè)試,對(duì)各種算法編寫(xiě)大量測(cè)試程序并進(jìn)行模擬測(cè)試,看指令系統(tǒng)的操作碼和尋址方式效能是否都比較看指令系統(tǒng)的操作碼和尋址方式效能是否都比較高。高。4.將程序中高頻出現(xiàn)的指令串復(fù)合,將其改成一條將程序中高頻出現(xiàn)的指令串復(fù)合,將其改成一條強(qiáng)功能新指令,即改用硬件方式實(shí)現(xiàn),而將出現(xiàn)強(qiáng)功能新指令,即改用硬件方式實(shí)現(xiàn),而將出現(xiàn)頻度很低的指令的操作改成用基本指令組成的指頻度很低的指令的操作改成用基本指令組成的指令串來(lái)完成,即用軟件方式實(shí)現(xiàn)。令串來(lái)完成,即用軟件方式實(shí)現(xiàn)。n對(duì)指令系統(tǒng)的基本要求對(duì)指令系統(tǒng)的基本要求 完整性、規(guī)整性、正交性、高效率、兼容性完整性、規(guī)整性、正交性、高效率、兼容性 n
22、完整性:完整性:在一個(gè)有限可用的存儲(chǔ)空間內(nèi),對(duì)在一個(gè)有限可用的存儲(chǔ)空間內(nèi),對(duì)于任何可解的問(wèn)題,編制計(jì)算程序時(shí),指令于任何可解的問(wèn)題,編制計(jì)算程序時(shí),指令系統(tǒng)所提供的指令足夠使用。系統(tǒng)所提供的指令足夠使用。n要求指令系統(tǒng)功能齊全、使用方便要求指令系統(tǒng)功能齊全、使用方便n下表為許多指令系統(tǒng)結(jié)構(gòu)都包含的一些指令類(lèi)型下表為許多指令系統(tǒng)結(jié)構(gòu)都包含的一些指令類(lèi)型 n前前4 4類(lèi)類(lèi)屬于通用計(jì)算機(jī)系統(tǒng)的基本指令屬于通用計(jì)算機(jī)系統(tǒng)的基本指令n對(duì)于最后對(duì)于最后4 4種類(lèi)型的操作,不同指令系統(tǒng)結(jié)構(gòu)種類(lèi)型的操作,不同指令系統(tǒng)結(jié)構(gòu)的支持大不相同的支持大不相同 。 2.3 指令系統(tǒng)的設(shè)計(jì)和優(yōu)化2.3 2.3 指令系統(tǒng)的設(shè)
23、計(jì)和優(yōu)化指令系統(tǒng)的設(shè)計(jì)和優(yōu)化操作類(lèi)型 實(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),字符串比較,字符串搜索等 圖形 像素操作,壓縮/解壓操作等 2.3 2.3 指令系統(tǒng)的設(shè)計(jì)和優(yōu)化指令系統(tǒng)的設(shè)計(jì)和優(yōu)化n規(guī)整性:規(guī)整性:主要包括對(duì)稱(chēng)性和均勻性。主要包括對(duì)稱(chēng)性和均勻性。n對(duì)稱(chēng)性:對(duì)稱(chēng)性:所有與指令系統(tǒng)有關(guān)的存儲(chǔ)單元的使用、所有與指令系統(tǒng)有關(guān)的存儲(chǔ)單元的使用、
24、 操作碼的設(shè)置等都是對(duì)稱(chēng)的。操作碼的設(shè)置等都是對(duì)稱(chēng)的。例如:例如:在存儲(chǔ)單元的使用上,所有通用寄存器都要同在存儲(chǔ)單元的使用上,所有通用寄存器都要同等對(duì)待。在操作碼的設(shè)置上,如果設(shè)置了等對(duì)待。在操作碼的設(shè)置上,如果設(shè)置了A AB BA A的指令,就應(yīng)該也設(shè)置的指令,就應(yīng)該也設(shè)置A AB B B B的指令。的指令。 n均勻性:均勻性:指對(duì)于各種不同的操作數(shù)類(lèi)型、字長(zhǎng)、操指對(duì)于各種不同的操作數(shù)類(lèi)型、字長(zhǎng)、操作種類(lèi)和數(shù)據(jù)存儲(chǔ)單元,指令的設(shè)置都要同等對(duì)待。作種類(lèi)和數(shù)據(jù)存儲(chǔ)單元,指令的設(shè)置都要同等對(duì)待。例如:例如:如果某機(jī)器有如果某機(jī)器有5 5種數(shù)據(jù)表示,種數(shù)據(jù)表示,4 4種字長(zhǎng),兩種存種字長(zhǎng),兩種存儲(chǔ)單
25、元,則要設(shè)置儲(chǔ)單元,則要設(shè)置5 54 42=402=40種同一操作的指令。種同一操作的指令。 2.3 2.3 指令系統(tǒng)的設(shè)計(jì)和優(yōu)化指令系統(tǒng)的設(shè)計(jì)和優(yōu)化n正交性:正交性:在指令中各個(gè)不同含義的字在指令中各個(gè)不同含義的字段,如操作類(lèi)型、數(shù)據(jù)類(lèi)型、尋址方段,如操作類(lèi)型、數(shù)據(jù)類(lèi)型、尋址方式字段等,在編碼時(shí)應(yīng)互不相關(guān)、相式字段等,在編碼時(shí)應(yīng)互不相關(guān)、相互獨(dú)立?;オ?dú)立。 n高效率:高效率:指指令的執(zhí)行速度快、使用指指令的執(zhí)行速度快、使用頻度高。頻度高。n兼容性:兼容性:主要是要實(shí)現(xiàn)向后兼容,指主要是要實(shí)現(xiàn)向后兼容,指令系統(tǒng)可以增加新指令,但不能刪除令系統(tǒng)可以增加新指令,但不能刪除指令或更改指令的功能。指令
26、或更改指令的功能。2.3 2.3 指令系統(tǒng)的設(shè)計(jì)和優(yōu)化指令系統(tǒng)的設(shè)計(jì)和優(yōu)化n在設(shè)計(jì)指令系統(tǒng)時(shí),有兩種截然不同的在設(shè)計(jì)指令系統(tǒng)時(shí),有兩種截然不同的設(shè)計(jì)策略。設(shè)計(jì)策略。 (產(chǎn)生了兩類(lèi)不同的計(jì)算機(jī)系統(tǒng)(產(chǎn)生了兩類(lèi)不同的計(jì)算機(jī)系統(tǒng) )nCISC(復(fù)雜指令系統(tǒng)計(jì)算機(jī))(復(fù)雜指令系統(tǒng)計(jì)算機(jī))Complex Instruction Set Computern增強(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)越多。nRISC(精簡(jiǎn)指令系統(tǒng)計(jì)算機(jī))(精簡(jiǎn)指令系統(tǒng)計(jì)算機(jī))Reduced Instruction Set Co
27、mputern盡可能地把指令系統(tǒng)簡(jiǎn)化,不僅指令的條數(shù)少,盡可能地把指令系統(tǒng)簡(jiǎn)化,不僅指令的條數(shù)少,而且指令的功能也比較簡(jiǎn)單。而且指令的功能也比較簡(jiǎn)單。 2.3 2.3 指令系統(tǒng)的設(shè)計(jì)和優(yōu)化指令系統(tǒng)的設(shè)計(jì)和優(yōu)化n20世紀(jì)世紀(jì)50年代,由于硬件價(jià)格高、體積大、可靠性低,因此年代,由于硬件價(jià)格高、體積大、可靠性低,因此計(jì)算機(jī)的指令系統(tǒng)比較簡(jiǎn)單。隨著半導(dǎo)體技術(shù)和微電子技術(shù)計(jì)算機(jī)的指令系統(tǒng)比較簡(jiǎn)單。隨著半導(dǎo)體技術(shù)和微電子技術(shù)的發(fā)展,為增強(qiáng)系統(tǒng)功能和提高速度就不斷增加指令系統(tǒng)的的發(fā)展,為增強(qiáng)系統(tǒng)功能和提高速度就不斷增加指令系統(tǒng)的復(fù)雜度。大致有以下幾個(gè)原因:復(fù)雜度。大致有以下幾個(gè)原因:n當(dāng)高級(jí)語(yǔ)言(如當(dāng)高級(jí)
28、語(yǔ)言(如C語(yǔ)言)取代匯編語(yǔ)言后,就不斷增加新語(yǔ)言)取代匯編語(yǔ)言后,就不斷增加新的復(fù)雜指令來(lái)支持高級(jí)語(yǔ)言程序的高效實(shí)現(xiàn)。的復(fù)雜指令來(lái)支持高級(jí)語(yǔ)言程序的高效實(shí)現(xiàn)。n由于訪主存的速度顯著低于訪由于訪主存的速度顯著低于訪CPU寄存器的速度,因此寄存器的速度,因此在功能相同時(shí),不斷增加用一條功能復(fù)雜的新指令來(lái)取在功能相同時(shí),不斷增加用一條功能復(fù)雜的新指令來(lái)取代原先需一連串指令完成的功能,將程序軟件固化或硬代原先需一連串指令完成的功能,將程序軟件固化或硬化?;?。n系列機(jī)軟件要求向上兼容和向后兼容,使得指令系統(tǒng)不系列機(jī)軟件要求向上兼容和向后兼容,使得指令系統(tǒng)不斷擴(kuò)大和增加,而原有指令又不能取消,特別是采用微
29、斷擴(kuò)大和增加,而原有指令又不能取消,特別是采用微程序控制后,有人就開(kāi)始濫用控制存儲(chǔ)器,導(dǎo)致指令條程序控制后,有人就開(kāi)始濫用控制存儲(chǔ)器,導(dǎo)致指令條數(shù)、功能、尋址方式和指令的格式都越來(lái)越復(fù)雜。數(shù)、功能、尋址方式和指令的格式都越來(lái)越復(fù)雜。2.3 2.3 指令系統(tǒng)的設(shè)計(jì)和優(yōu)化指令系統(tǒng)的設(shè)計(jì)和優(yōu)化n到了到了20世紀(jì)世紀(jì)70年代末,這種年代末,這種CISC設(shè)計(jì)已不能適應(yīng)優(yōu)化編設(shè)計(jì)已不能適應(yīng)優(yōu)化編譯及譯及VLSI技術(shù)的發(fā)展,所以又提出了簡(jiǎn)化和規(guī)整指令系技術(shù)的發(fā)展,所以又提出了簡(jiǎn)化和規(guī)整指令系統(tǒng)的統(tǒng)的RISC思想。思想。n然而,單純的然而,單純的RISC存在某些存在某些CISC沒(méi)有的致命弱點(diǎn),于沒(méi)有的致命弱點(diǎn)
30、,于是又采用將是又采用將RISC和和CISC兩者相結(jié)合的思想,以相互取兩者相結(jié)合的思想,以相互取長(zhǎng)補(bǔ)短。因此,近年來(lái),長(zhǎng)補(bǔ)短。因此,近年來(lái),RISC和和CISC之間的界面越來(lái)之間的界面越來(lái)越模糊了,盡管如此,指令系統(tǒng)的結(jié)構(gòu)與單純的越模糊了,盡管如此,指令系統(tǒng)的結(jié)構(gòu)與單純的CISC或或RISC畢竟有著明顯的不同。畢竟有著明顯的不同。2.3 2.3 指令系統(tǒng)的設(shè)計(jì)和優(yōu)化指令系統(tǒng)的設(shè)計(jì)和優(yōu)化n2.3.1 按按CISC方向發(fā)展和改進(jìn)指令系統(tǒng)方向發(fā)展和改進(jìn)指令系統(tǒng)nCISC結(jié)構(gòu)追求的目標(biāo)結(jié)構(gòu)追求的目標(biāo)n強(qiáng)化指令功能,減少程序的指令條數(shù),以達(dá)到提強(qiáng)化指令功能,減少程序的指令條數(shù),以達(dá)到提高性能的目的。高性
31、能的目的。n增強(qiáng)指令功能主要是從以下增強(qiáng)指令功能主要是從以下3個(gè)方面著手:個(gè)方面著手: 面向目標(biāo)程序的優(yōu)化實(shí)現(xiàn)改進(jìn)面向目標(biāo)程序的優(yōu)化實(shí)現(xiàn)改進(jìn) 面向高級(jí)語(yǔ)言的優(yōu)化實(shí)現(xiàn)改進(jìn)面向高級(jí)語(yǔ)言的優(yōu)化實(shí)現(xiàn)改進(jìn) 面向操作系統(tǒng)的優(yōu)化實(shí)現(xiàn)改進(jìn)面向操作系統(tǒng)的優(yōu)化實(shí)現(xiàn)改進(jìn)2.3 2.3 指令系統(tǒng)的設(shè)計(jì)和優(yōu)化指令系統(tǒng)的設(shè)計(jì)和優(yōu)化1.面向目標(biāo)程序的優(yōu)化實(shí)現(xiàn)改進(jìn)面向目標(biāo)程序的優(yōu)化實(shí)現(xiàn)改進(jìn)n對(duì)大量的目標(biāo)程序及其執(zhí)行情況進(jìn)行統(tǒng)計(jì)分析,找對(duì)大量的目標(biāo)程序及其執(zhí)行情況進(jìn)行統(tǒng)計(jì)分析,找出那些使用頻度高、執(zhí)行時(shí)間長(zhǎng)的指令或指令串。出那些使用頻度高、執(zhí)行時(shí)間長(zhǎng)的指令或指令串。n對(duì)于使用頻度高的指令,用硬件加快其執(zhí)行;對(duì)于對(duì)于使用頻度高的
32、指令,用硬件加快其執(zhí)行;對(duì)于使用頻度高的指令串,用一條新的指令來(lái)替代。使用頻度高的指令串,用一條新的指令來(lái)替代。n既能減少目標(biāo)程序的執(zhí)行時(shí)間,也能有效地縮短程既能減少目標(biāo)程序的執(zhí)行時(shí)間,也能有效地縮短程序的長(zhǎng)度。序的長(zhǎng)度。n可以從以下幾個(gè)方面來(lái)改進(jìn):可以從以下幾個(gè)方面來(lái)改進(jìn): n增強(qiáng)運(yùn)算型指令的功能增強(qiáng)運(yùn)算型指令的功能n增強(qiáng)數(shù)據(jù)傳送指令的功能增強(qiáng)數(shù)據(jù)傳送指令的功能n增強(qiáng)程序控制指令的功能增強(qiáng)程序控制指令的功能2.3 2.3 指令系統(tǒng)的設(shè)計(jì)和優(yōu)化指令系統(tǒng)的設(shè)計(jì)和優(yōu)化例如:例如:循環(huán)在程序中占有相當(dāng)大的循環(huán)在程序中占有相當(dāng)大的比例,所以在指令上提供專(zhuān)門(mén)的比例,所以在指令上提供專(zhuān)門(mén)的支持。支持。n循
33、環(huán)控制部分通常用循環(huán)控制部分通常用3 3條指條指令完成:令完成:n一條加法指令一條加法指令n一條比較指令一條比較指令n一條分支指令一條分支指令n設(shè)置循環(huán)控制指令,用一條設(shè)置循環(huán)控制指令,用一條指令完成上述指令完成上述3 3條條指令的功指令的功能。能。 I = m1 I=I+m3 循環(huán)體循環(huán)體 Im2 N Y 一般循環(huán)程序的結(jié)構(gòu)一般循環(huán)程序的結(jié)構(gòu)2.3 2.3 指令系統(tǒng)的設(shè)計(jì)和優(yōu)化指令系統(tǒng)的設(shè)計(jì)和優(yōu)化2.面向高級(jí)語(yǔ)言的優(yōu)化實(shí)現(xiàn)改進(jìn)面向高級(jí)語(yǔ)言的優(yōu)化實(shí)現(xiàn)改進(jìn) 盡可能縮短高級(jí)語(yǔ)言與機(jī)器語(yǔ)言的語(yǔ)義差盡可能縮短高級(jí)語(yǔ)言與機(jī)器語(yǔ)言的語(yǔ)義差距,支持高級(jí)語(yǔ)言編譯,縮短編譯程序長(zhǎng)距,支持高級(jí)語(yǔ)言編譯,縮短編譯程
34、序長(zhǎng)度和編譯時(shí)間。度和編譯時(shí)間。途徑途徑1 1:通過(guò)對(duì)源程序中各種高級(jí)語(yǔ)言語(yǔ)句的使用頻通過(guò)對(duì)源程序中各種高級(jí)語(yǔ)言語(yǔ)句的使用頻度進(jìn)行統(tǒng)計(jì)來(lái)分析改進(jìn)度進(jìn)行統(tǒng)計(jì)來(lái)分析改進(jìn)。對(duì)高頻語(yǔ)句增設(shè)與之語(yǔ)。對(duì)高頻語(yǔ)句增設(shè)與之語(yǔ)義差距小的新指令。但不同用途的高級(jí)語(yǔ)言,其義差距小的新指令。但不同用途的高級(jí)語(yǔ)言,其語(yǔ)句使用頻度有較大差異,機(jī)器指令系統(tǒng)很難做語(yǔ)句使用頻度有較大差異,機(jī)器指令系統(tǒng)很難做到對(duì)各種語(yǔ)言都是優(yōu)化的。到對(duì)各種語(yǔ)言都是優(yōu)化的。2.3 2.3 指令系統(tǒng)的設(shè)計(jì)和優(yōu)化指令系統(tǒng)的設(shè)計(jì)和優(yōu)化n途徑途徑2:如何面向編譯,優(yōu)化代碼生成來(lái)改進(jìn)。如何面向編譯,優(yōu)化代碼生成來(lái)改進(jìn)。n由于目前機(jī)器上運(yùn)行的絕大多數(shù)目標(biāo)程序
35、是經(jīng)編譯系由于目前機(jī)器上運(yùn)行的絕大多數(shù)目標(biāo)程序是經(jīng)編譯系統(tǒng)生成的,從優(yōu)化代碼生成上考慮,應(yīng)當(dāng)增強(qiáng)系統(tǒng)結(jié)統(tǒng)生成的,從優(yōu)化代碼生成上考慮,應(yīng)當(dāng)增強(qiáng)系統(tǒng)結(jié)構(gòu)的規(guī)整性,盡量減少例外或特殊的情況和用法,讓構(gòu)的規(guī)整性,盡量減少例外或特殊的情況和用法,讓所有運(yùn)算都對(duì)稱(chēng)、均勻地在存儲(chǔ)(寄存器)單元間進(jìn)所有運(yùn)算都對(duì)稱(chēng)、均勻地在存儲(chǔ)(寄存器)單元間進(jìn)行,對(duì)所有存儲(chǔ)(寄存器)單元同等對(duì)待,不論是操行,對(duì)所有存儲(chǔ)(寄存器)單元同等對(duì)待,不論是操作數(shù)或運(yùn)算結(jié)果都可無(wú)約束地存放在任意單元中。這作數(shù)或運(yùn)算結(jié)果都可無(wú)約束地存放在任意單元中。這樣,為優(yōu)化管理通用寄存器的使用可以大大減少很多樣,為優(yōu)化管理通用寄存器的使用可以大大
36、減少很多輔助開(kāi)銷(xiāo)。輔助開(kāi)銷(xiāo)。2.3 2.3 指令系統(tǒng)的設(shè)計(jì)和優(yōu)化指令系統(tǒng)的設(shè)計(jì)和優(yōu)化n途徑途徑3 3:設(shè)法改進(jìn)指令系統(tǒng),使它與各種語(yǔ)言間的語(yǔ)義設(shè)法改進(jìn)指令系統(tǒng),使它與各種語(yǔ)言間的語(yǔ)義差距都有同等的縮小。差距都有同等的縮小。如圖所示,可以把系統(tǒng)結(jié)構(gòu)點(diǎn)如圖所示,可以把系統(tǒng)結(jié)構(gòu)點(diǎn)向右移,使得它與各種語(yǔ)言間的路長(zhǎng)都得到縮短。向右移,使得它與各種語(yǔ)言間的路長(zhǎng)都得到縮短。各種語(yǔ)言與傳統(tǒng)機(jī)器指令系統(tǒng)結(jié)構(gòu)的語(yǔ)義差距 2.3 2.3 指令系統(tǒng)的設(shè)計(jì)和優(yōu)化指令系統(tǒng)的設(shè)計(jì)和優(yōu)化n途徑途徑4 4:機(jī)器具有分別面向各種高級(jí)語(yǔ)言的多種指令系機(jī)器具有分別面向各種高級(jí)語(yǔ)言的多種指令系統(tǒng)、多種系統(tǒng)結(jié)構(gòu)。統(tǒng)、多種系統(tǒng)結(jié)構(gòu)。n 工
37、作前由操作系統(tǒng)根據(jù)所用高級(jí)語(yǔ)言切換控制存儲(chǔ)工作前由操作系統(tǒng)根據(jù)所用高級(jí)語(yǔ)言切換控制存儲(chǔ)器中所存相應(yīng)的微程序,如圖所示,讓系統(tǒng)結(jié)構(gòu)是動(dòng)器中所存相應(yīng)的微程序,如圖所示,讓系統(tǒng)結(jié)構(gòu)是動(dòng)態(tài)的,而不是靜態(tài)的。由態(tài)的,而不是靜態(tài)的。由“以指令系統(tǒng)為主,高級(jí)語(yǔ)以指令系統(tǒng)為主,高級(jí)語(yǔ)言為從言為從”的方式演變成的方式演變成“以高級(jí)語(yǔ)言為主,指令系統(tǒng)以高級(jí)語(yǔ)言為主,指令系統(tǒng)為從為從”的方式。的方式。 B-1700具有多種系統(tǒng)結(jié)構(gòu)(1972年) 2.3 2.3 指令系統(tǒng)的設(shè)計(jì)和優(yōu)化指令系統(tǒng)的設(shè)計(jì)和優(yōu)化n途徑途徑5 5:發(fā)展高級(jí)語(yǔ)言計(jì)算機(jī)發(fā)展高級(jí)語(yǔ)言計(jì)算機(jī)(或稱(chēng)高級(jí)語(yǔ)言機(jī)器或稱(chēng)高級(jí)語(yǔ)言機(jī)器)。n編譯主要采用的是翻譯技
38、術(shù),在微程序控制的機(jī)器上,編譯主要采用的是翻譯技術(shù),在微程序控制的機(jī)器上,機(jī)器語(yǔ)言是用解釋實(shí)現(xiàn)的。面向編譯通過(guò)縮小語(yǔ)義差距機(jī)器語(yǔ)言是用解釋實(shí)現(xiàn)的。面向編譯通過(guò)縮小語(yǔ)義差距改進(jìn)指令系統(tǒng)的思路實(shí)際上意味著增大解釋的比重,減改進(jìn)指令系統(tǒng)的思路實(shí)際上意味著增大解釋的比重,減少翻譯的比重。少翻譯的比重。各種語(yǔ)言的語(yǔ)義差距 2.3 2.3 指令系統(tǒng)的設(shè)計(jì)和優(yōu)化指令系統(tǒng)的設(shè)計(jì)和優(yōu)化3.面向操作系統(tǒng)的優(yōu)化實(shí)現(xiàn)改進(jìn)面向操作系統(tǒng)的優(yōu)化實(shí)現(xiàn)改進(jìn)n途徑途徑1 1:通過(guò)對(duì)操作系統(tǒng)中常用指令和指令串的使用通過(guò)對(duì)操作系統(tǒng)中常用指令和指令串的使用頻度進(jìn)行統(tǒng)計(jì)分析來(lái)改進(jìn)頻度進(jìn)行統(tǒng)計(jì)分析來(lái)改進(jìn)。但是,這種改進(jìn)的效果很。但是,這種
39、改進(jìn)的效果很有限。有限。n途徑途徑2 2:考慮如何:考慮如何增設(shè)專(zhuān)用于操作系統(tǒng)的新指令增設(shè)專(zhuān)用于操作系統(tǒng)的新指令。 例如,例如,IBMIBM公司最初在公司最初在IBM360IBM360系統(tǒng)上并未對(duì)多個(gè)進(jìn)程系統(tǒng)上并未對(duì)多個(gè)進(jìn)程使用公用區(qū)的管理提供專(zhuān)門(mén)指令,而是給公用區(qū)設(shè)置使用公用區(qū)的管理提供專(zhuān)門(mén)指令,而是給公用區(qū)設(shè)置標(biāo)志位標(biāo)志位( (信號(hào)燈信號(hào)燈) ),結(jié)果在多道程序分時(shí)系統(tǒng)情況下經(jīng),結(jié)果在多道程序分時(shí)系統(tǒng)情況下經(jīng)常發(fā)生公用區(qū)的使用混亂,于是很快增加了一條常發(fā)生公用區(qū)的使用混亂,于是很快增加了一條“測(cè)測(cè)試與置定試與置定”指令,但實(shí)踐中又發(fā)現(xiàn)常發(fā)生系統(tǒng)指令,但實(shí)踐中又發(fā)現(xiàn)常發(fā)生系統(tǒng)“死鎖死鎖”的現(xiàn)
40、象。為此的現(xiàn)象。為此增設(shè)了增設(shè)了“比較與交換比較與交換”指令。指令。2.3 2.3 指令系統(tǒng)的設(shè)計(jì)和優(yōu)化指令系統(tǒng)的設(shè)計(jì)和優(yōu)化n途徑途徑3 3:是把操作系統(tǒng)中頻繁使用的,對(duì)速度影響大的是把操作系統(tǒng)中頻繁使用的,對(duì)速度影響大的機(jī)構(gòu)型軟件子程序硬化或固化,改為直接用硬件或微機(jī)構(gòu)型軟件子程序硬化或固化,改為直接用硬件或微程序解釋實(shí)現(xiàn)程序解釋實(shí)現(xiàn)。n途徑途徑4:發(fā)展讓操作系統(tǒng)由專(zhuān)門(mén)的處理機(jī)來(lái)執(zhí)行的功能發(fā)展讓操作系統(tǒng)由專(zhuān)門(mén)的處理機(jī)來(lái)執(zhí)行的功能分布處理系統(tǒng)結(jié)構(gòu)。分布處理系統(tǒng)結(jié)構(gòu)。2.3 2.3 指令系統(tǒng)的設(shè)計(jì)和優(yōu)化指令系統(tǒng)的設(shè)計(jì)和優(yōu)化n2.3.2 按按RISC方向發(fā)展和改進(jìn)指令系統(tǒng)方向發(fā)展和改進(jìn)指令系統(tǒng)1.
41、CISC1.CISC指令系統(tǒng)結(jié)構(gòu)存在的問(wèn)題指令系統(tǒng)結(jié)構(gòu)存在的問(wèn)題 (19791979年開(kāi)始,年開(kāi)始,PattersonPatterson等人的研究)等人的研究)1.各種指令的使用頻度相差懸殊,許多指令很少用。各種指令的使用頻度相差懸殊,許多指令很少用。 2.2.據(jù)統(tǒng)計(jì):只有據(jù)統(tǒng)計(jì):只有2020的指令使用頻度比較高,的指令使用頻度比較高,占運(yùn)行時(shí)間的占運(yùn)行時(shí)間的8080。而其余。而其余8080的指令只的指令只在在2020的運(yùn)行時(shí)間內(nèi)才會(huì)用到。的運(yùn)行時(shí)間內(nèi)才會(huì)用到。3.使用頻度高的指令也是最簡(jiǎn)單的指令。使用頻度高的指令也是最簡(jiǎn)單的指令。2.3 2.3 指令系統(tǒng)的設(shè)計(jì)和優(yōu)化指令系統(tǒng)的設(shè)計(jì)和優(yōu)化執(zhí)行頻
42、度排序 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條指令2.3 2.3 指令系統(tǒng)的設(shè)計(jì)和優(yōu)化指令系統(tǒng)的設(shè)計(jì)和優(yōu)化n指令系統(tǒng)龐大,指令條數(shù)很多,許多指令的功能又很指令系統(tǒng)龐大,指令條數(shù)很多,許多指令的功能又很復(fù)雜,使得控制器硬件非常復(fù)雜。復(fù)雜,使得控制器硬件非常復(fù)雜。 導(dǎo)致的問(wèn)題:導(dǎo)致的問(wèn)題:n占用了大量的芯片面積(如占用占用了大量的芯片面積(如占用
43、CPUCPU芯片總面積的一半芯片總面積的一半以上),給以上),給VLSIVLSI設(shè)計(jì)造成很大的困難;設(shè)計(jì)造成很大的困難;n增加了研制時(shí)間和成本,容易造成設(shè)計(jì)錯(cuò)誤。增加了研制時(shí)間和成本,容易造成設(shè)計(jì)錯(cuò)誤。n許多指令由于操作繁雜,許多指令由于操作繁雜,其其CPICPI值值比較大,執(zhí)行速度慢。比較大,執(zhí)行速度慢。采用這些復(fù)雜指令有可能使整個(gè)程序的采用這些復(fù)雜指令有可能使整個(gè)程序的 執(zhí)行時(shí)間反而執(zhí)行時(shí)間反而增加。增加。n由于指令功能復(fù)雜,規(guī)整性不好,不利于采用流水技由于指令功能復(fù)雜,規(guī)整性不好,不利于采用流水技術(shù)來(lái)提高性能。術(shù)來(lái)提高性能。 2.3 2.3 指令系統(tǒng)的設(shè)計(jì)和優(yōu)化指令系統(tǒng)的設(shè)計(jì)和優(yōu)化2.設(shè)
44、計(jì)設(shè)計(jì)RISC的基本原則的基本原則n(1)(1)確定指令系統(tǒng)時(shí),只選擇使用頻度很高的那些確定指令系統(tǒng)時(shí),只選擇使用頻度很高的那些指令,再增加少量能有效支持操作系統(tǒng)、高級(jí)語(yǔ)言指令,再增加少量能有效支持操作系統(tǒng)、高級(jí)語(yǔ)言實(shí)現(xiàn)及其他功能的指令,大大減少指令條數(shù),使之實(shí)現(xiàn)及其他功能的指令,大大減少指令條數(shù),使之一般不超過(guò)一般不超過(guò)100100條。條。n(2)(2)減少指令系統(tǒng)所用尋址方式種類(lèi),一般不超過(guò)減少指令系統(tǒng)所用尋址方式種類(lèi),一般不超過(guò)兩種。簡(jiǎn)化指令的格式限制在兩種之內(nèi),并讓全部?jī)煞N。簡(jiǎn)化指令的格式限制在兩種之內(nèi),并讓全部指令都是相同長(zhǎng)度。指令都是相同長(zhǎng)度。n(3)讓所有指令都在一個(gè)機(jī)器周期內(nèi)完
45、成。讓所有指令都在一個(gè)機(jī)器周期內(nèi)完成。 2.3 2.3 指令系統(tǒng)的設(shè)計(jì)和優(yōu)化指令系統(tǒng)的設(shè)計(jì)和優(yōu)化n(4)(4)擴(kuò)大通用寄存器數(shù),一般不少于擴(kuò)大通用寄存器數(shù),一般不少于3232個(gè),盡量減個(gè),盡量減少訪存,所有指令只有存少訪存,所有指令只有存(STORE)(STORE)、取、取(LOAD)(LOAD)指令指令訪存,其他指令一律只對(duì)寄存器操作。訪存,其他指令一律只對(duì)寄存器操作。n(5)(5)為提高指令執(zhí)行速度,大多數(shù)指令都用硬聯(lián)控為提高指令執(zhí)行速度,大多數(shù)指令都用硬聯(lián)控制實(shí)現(xiàn),少數(shù)指令才用微程序?qū)崿F(xiàn)。制實(shí)現(xiàn),少數(shù)指令才用微程序?qū)崿F(xiàn)。n(6)通過(guò)精簡(jiǎn)指令和優(yōu)化設(shè)計(jì)編譯程序,簡(jiǎn)單有效地通過(guò)精簡(jiǎn)指令和優(yōu)化
46、設(shè)計(jì)編譯程序,簡(jiǎn)單有效地支持高級(jí)語(yǔ)言的實(shí)現(xiàn)。支持高級(jí)語(yǔ)言的實(shí)現(xiàn)。2.3 2.3 指令系統(tǒng)的設(shè)計(jì)和優(yōu)化指令系統(tǒng)的設(shè)計(jì)和優(yōu)化3.設(shè)計(jì)設(shè)計(jì)RISC結(jié)構(gòu)采用的基本技術(shù)結(jié)構(gòu)采用的基本技術(shù)n(1)(1)按設(shè)計(jì)按設(shè)計(jì)RISCRISC的一般原則來(lái)設(shè)計(jì)。的一般原則來(lái)設(shè)計(jì)。n 確定指令系統(tǒng)時(shí),通過(guò)指令使用頻度的統(tǒng)計(jì),確定指令系統(tǒng)時(shí),通過(guò)指令使用頻度的統(tǒng)計(jì),選取其中選取其中常用的基本指令常用的基本指令,并,并增設(shè)增設(shè)一些對(duì)操作系統(tǒng)一些對(duì)操作系統(tǒng)、高級(jí)語(yǔ)言、應(yīng)用環(huán)境等支持、高級(jí)語(yǔ)言、應(yīng)用環(huán)境等支持最有用的指令,最有用的指令,使指使指令數(shù)精簡(jiǎn)。在指令的功能、格式和編碼設(shè)計(jì)上盡可令數(shù)精簡(jiǎn)。在指令的功能、格式和編碼設(shè)計(jì)上盡
47、可能簡(jiǎn)化規(guī)整。所有能簡(jiǎn)化規(guī)整。所有指令盡可能等長(zhǎng),尋址方式盡量指令盡可能等長(zhǎng),尋址方式盡量統(tǒng)一成統(tǒng)一成12種,指令的執(zhí)行盡量能安排在一個(gè)機(jī)器種,指令的執(zhí)行盡量能安排在一個(gè)機(jī)器周期內(nèi)完成周期內(nèi)完成。 2.3 2.3 指令系統(tǒng)的設(shè)計(jì)和優(yōu)化指令系統(tǒng)的設(shè)計(jì)和優(yōu)化n(2)(2)邏輯實(shí)現(xiàn)采用硬聯(lián)和微程序相結(jié)合邏輯實(shí)現(xiàn)采用硬聯(lián)和微程序相結(jié)合。讓大。讓大多數(shù)多數(shù)簡(jiǎn)單指令用硬聯(lián)方式實(shí)現(xiàn)簡(jiǎn)單指令用硬聯(lián)方式實(shí)現(xiàn),功能較復(fù)雜的指令允許功能較復(fù)雜的指令允許用微程序解釋實(shí)現(xiàn)用微程序解釋實(shí)現(xiàn),是比較適宜的,可以免去或減,是比較適宜的,可以免去或減少微指令的譯碼時(shí)間,直接控制通路操作,加快解少微指令的譯碼時(shí)間,直接控制通路操
48、作,加快解釋和便于微指令流水。釋和便于微指令流水。 n(3)在在CPU中設(shè)置大量工作寄存器并采用重疊寄存器中設(shè)置大量工作寄存器并采用重疊寄存器窗口。窗口。為為減少訪存減少訪存,盡量讓指令的操作在寄存器之,盡量讓指令的操作在寄存器之間進(jìn)行以提高執(zhí)行速度,縮短指令周期,簡(jiǎn)化尋址間進(jìn)行以提高執(zhí)行速度,縮短指令周期,簡(jiǎn)化尋址方式和指令格式;為更簡(jiǎn)單有效地支持高級(jí)語(yǔ)言中方式和指令格式;為更簡(jiǎn)單有效地支持高級(jí)語(yǔ)言中大量出現(xiàn)的過(guò)程調(diào)用。大量出現(xiàn)的過(guò)程調(diào)用。 RSIC的重疊寄存器窗口的重疊寄存器窗口 2.3 2.3 指令系統(tǒng)的設(shè)計(jì)和優(yōu)化指令系統(tǒng)的設(shè)計(jì)和優(yōu)化n(4)指令用流水和延遲轉(zhuǎn)移。指令用流水和延遲轉(zhuǎn)移。n
49、(5)采用高速緩沖存儲(chǔ)器采用高速緩沖存儲(chǔ)器Cache,設(shè)置指令設(shè)置指令Cache和數(shù)和數(shù)據(jù)據(jù)Cache分別存放指令和數(shù)據(jù)。這樣,可以保證向分別存放指令和數(shù)據(jù)。這樣,可以保證向指令流水線不間斷地輸送指令和存取數(shù)據(jù),來(lái)提高指令流水線不間斷地輸送指令和存取數(shù)據(jù),來(lái)提高流水的效率。流水的效率。n(6)優(yōu)化設(shè)計(jì)編譯系統(tǒng)。優(yōu)化設(shè)計(jì)編譯系統(tǒng)。RISC機(jī)器由于使用了大量機(jī)器由于使用了大量寄存器,寄存器,簡(jiǎn)化局部變量和工作變量的中間傳遞簡(jiǎn)化局部變量和工作變量的中間傳遞。另。另外,還應(yīng)優(yōu)化外,還應(yīng)優(yōu)化調(diào)整指令的執(zhí)行順序調(diào)整指令的執(zhí)行順序,以盡量減少機(jī),以盡量減少機(jī)器的空閑等。上述器的空閑等。上述延遲轉(zhuǎn)移延遲轉(zhuǎn)移也
50、可以看成是一個(gè)調(diào)整也可以看成是一個(gè)調(diào)整指令執(zhí)行順序的典型例子。指令執(zhí)行順序的典型例子。2.3 2.3 指令系統(tǒng)的設(shè)計(jì)和優(yōu)化指令系統(tǒng)的設(shè)計(jì)和優(yōu)化n4.RISC技術(shù)的發(fā)展技術(shù)的發(fā)展采用采用RISCRISC結(jié)構(gòu)后可以帶來(lái)如下好處:結(jié)構(gòu)后可以帶來(lái)如下好處:n(1)(1)簡(jiǎn)化指令系統(tǒng)設(shè)計(jì),適合簡(jiǎn)化指令系統(tǒng)設(shè)計(jì),適合VLSIVLSI實(shí)現(xiàn)。實(shí)現(xiàn)。n (2)提高機(jī)器的執(zhí)行速度和效率。提高機(jī)器的執(zhí)行速度和效率。n (3)降低了設(shè)計(jì)成本,提高了系統(tǒng)的可靠性。降低了設(shè)計(jì)成本,提高了系統(tǒng)的可靠性。n(4)可直接支持高級(jí)語(yǔ)言的實(shí)現(xiàn),簡(jiǎn)化編譯程序的設(shè)可直接支持高級(jí)語(yǔ)言的實(shí)現(xiàn),簡(jiǎn)化編譯程序的設(shè)計(jì)。因此,精簡(jiǎn)指令系統(tǒng)在計(jì)算機(jī)
51、結(jié)構(gòu)設(shè)計(jì)中已成計(jì)。因此,精簡(jiǎn)指令系統(tǒng)在計(jì)算機(jī)結(jié)構(gòu)設(shè)計(jì)中已成為一種非常重要的思路。為一種非常重要的思路。 2.3 2.3 指令系統(tǒng)的設(shè)計(jì)和優(yōu)化指令系統(tǒng)的設(shè)計(jì)和優(yōu)化RISCRISC也存在某些問(wèn)題和不足:也存在某些問(wèn)題和不足:n(1)(1)由于指令少,使原在由于指令少,使原在CISCCISC上由單一指令完成的上由單一指令完成的某些復(fù)雜功能現(xiàn)在要用多條某些復(fù)雜功能現(xiàn)在要用多條RISCRISC指令才能完成,加指令才能完成,加重了匯編語(yǔ)言程序設(shè)計(jì)的負(fù)擔(dān),增加了機(jī)器語(yǔ)言程重了匯編語(yǔ)言程序設(shè)計(jì)的負(fù)擔(dān),增加了機(jī)器語(yǔ)言程序的長(zhǎng)度,占用存儲(chǔ)空間多,加大了指令的信息流序的長(zhǎng)度,占用存儲(chǔ)空間多,加大了指令的信息流量。量
52、。n(2)(2)對(duì)浮點(diǎn)運(yùn)算執(zhí)行和虛擬存儲(chǔ)器的支持雖有很大對(duì)浮點(diǎn)運(yùn)算執(zhí)行和虛擬存儲(chǔ)器的支持雖有很大加強(qiáng),但仍顯得不足。加強(qiáng),但仍顯得不足。n(3)RISC機(jī)器的編譯程序比機(jī)器的編譯程序比CISC的難寫(xiě)。的難寫(xiě)。 2.3 2.3 指令系統(tǒng)的設(shè)計(jì)和優(yōu)化指令系統(tǒng)的設(shè)計(jì)和優(yōu)化RISC的發(fā)展方向的發(fā)展方向n1 1)由于由于RISCRISC也存在不足和問(wèn)題,使得在也存在不足和問(wèn)題,使得在設(shè)計(jì)設(shè)計(jì)CPUCPU時(shí)時(shí),向著,向著RISCRISC和和CISCCISC結(jié)合,取長(zhǎng)補(bǔ)短的方向發(fā)展結(jié)合,取長(zhǎng)補(bǔ)短的方向發(fā)展。例例如,如,MC68030MC68030雖然是雖然是CISCCISC結(jié)構(gòu),但也引進(jìn)了某些結(jié)構(gòu),但也引進(jìn)
53、了某些RISCRISC的結(jié)構(gòu)特點(diǎn)。的結(jié)構(gòu)特點(diǎn)。n2)隨著芯片面積的增大及集成度的提高,多數(shù)微隨著芯片面積的增大及集成度的提高,多數(shù)微型芯片設(shè)計(jì)開(kāi)始加入了如下的功能:型芯片設(shè)計(jì)開(kāi)始加入了如下的功能:n(1)進(jìn)一步增大工作寄存器數(shù)量,并修改進(jìn)一步增大工作寄存器數(shù)量,并修改CPU部部分結(jié)構(gòu),以滿足多媒體應(yīng)用;分結(jié)構(gòu),以滿足多媒體應(yīng)用;n(2)增加并增大在片增加并增大在片Cache的容量,并使其工作時(shí)的容量,并使其工作時(shí)鐘能與鐘能與CPU一致;一致;n(3)增設(shè)不少高速增設(shè)不少高速CISC類(lèi)型的指令;類(lèi)型的指令;2.3 2.3 指令系統(tǒng)的設(shè)計(jì)和優(yōu)化指令系統(tǒng)的設(shè)計(jì)和優(yōu)化n(4)(4)采用附加功能部件執(zhí)行
54、超標(biāo)量或采用附加功能部件執(zhí)行超標(biāo)量或VLIW(VLIW(超長(zhǎng)指超長(zhǎng)指令字令字) );n(5)(5)在片加速浮點(diǎn)數(shù)操作;在片加速浮點(diǎn)數(shù)操作;n(6)(6)增大流水線深度或增大分段流水段間的緩沖能增大流水線深度或增大分段流水段間的緩沖能力;力; n(7)(7)在前端增加對(duì)硬件代碼轉(zhuǎn)換的支持;在前端增加對(duì)硬件代碼轉(zhuǎn)換的支持;n(8)(8)在轉(zhuǎn)移之前就開(kāi)始用猜測(cè)方式執(zhí)行;在轉(zhuǎn)移之前就開(kāi)始用猜測(cè)方式執(zhí)行;n(9)(9)使用自適應(yīng)轉(zhuǎn)移預(yù)測(cè)和恢復(fù);使用自適應(yīng)轉(zhuǎn)移預(yù)測(cè)和恢復(fù);n(10)(10)改用數(shù)據(jù)驅(qū)動(dòng),讓程序動(dòng)態(tài)非順序地執(zhí)行;改用數(shù)據(jù)驅(qū)動(dòng),讓程序動(dòng)態(tài)非順序地執(zhí)行;2.3 2.3 指令系統(tǒng)的設(shè)計(jì)和優(yōu)化指令系
55、統(tǒng)的設(shè)計(jì)和優(yōu)化n2.3.3 指令操作碼的優(yōu)化指令操作碼的優(yōu)化n指令由兩部分組成:指令由兩部分組成:操作碼、地址碼操作碼、地址碼n指令格式的設(shè)計(jì)指令格式的設(shè)計(jì) 確定指令字的編碼方式,包括操作碼字段和地確定指令字的編碼方式,包括操作碼字段和地址碼字段的編碼和表示方式。址碼字段的編碼和表示方式。n指令格式的優(yōu)化指令格式的優(yōu)化:如何用最短的位數(shù)來(lái)表:如何用最短的位數(shù)來(lái)表示指令的操作信息和地址信息,使程序中示指令的操作信息和地址信息,使程序中指令的平均字長(zhǎng)最短。指令的平均字長(zhǎng)最短。2.3 2.3 指令系統(tǒng)的設(shè)計(jì)和優(yōu)化指令系統(tǒng)的設(shè)計(jì)和優(yōu)化基本方法有:基本方法有:1、定長(zhǎng)編碼、定長(zhǎng)編碼指令長(zhǎng)度固定,編碼簡(jiǎn)單
56、但冗余量大。指令長(zhǎng)度固定,編碼簡(jiǎn)單但冗余量大。2、Huffman(哈夫曼)編碼(哈夫曼)編碼考慮指令出現(xiàn)的概率,指令長(zhǎng)度不固定??紤]指令出現(xiàn)的概率,指令長(zhǎng)度不固定。3、擴(kuò)展操作碼編碼、擴(kuò)展操作碼編碼長(zhǎng)度不固定,但只有有限幾種碼長(zhǎng)。長(zhǎng)度不固定,但只有有限幾種碼長(zhǎng)。2.3 2.3 指令系統(tǒng)的設(shè)計(jì)和優(yōu)化指令系統(tǒng)的設(shè)計(jì)和優(yōu)化n例:現(xiàn)假設(shè)某模型機(jī)共有例:現(xiàn)假設(shè)某模型機(jī)共有n(n=7)條指令,使)條指令,使用頻度如圖所示:用頻度如圖所示:指令指令使用頻度pi指令指令使用頻度piI10.40I50.04I20.30I60.03I30.15I70.03I40.052.3 2.3 指令系統(tǒng)的設(shè)計(jì)和優(yōu)化指令系統(tǒng)的
57、設(shè)計(jì)和優(yōu)化n 按信息論觀點(diǎn)當(dāng)各種指令的出現(xiàn)是相互獨(dú)立時(shí)按信息論觀點(diǎn)當(dāng)各種指令的出現(xiàn)是相互獨(dú)立時(shí)(實(shí)際并實(shí)際并不都是如此不都是如此),操作碼的,操作碼的信息熵信息熵(信息源所含平均信息量信息源所含平均信息量) 說(shuō)明表示這說(shuō)明表示這7種指令的操作碼平均只需種指令的操作碼平均只需2.17位即可位即可n 用用定長(zhǎng)編碼定長(zhǎng)編碼表示需表示需log2n= 3位,信息冗余為位,信息冗余為 17. 2log712iiippH%28317. 23實(shí)際平均碼長(zhǎng)實(shí)際平均碼長(zhǎng)H2.3 2.3 指令系統(tǒng)的設(shè)計(jì)和優(yōu)化指令系統(tǒng)的設(shè)計(jì)和優(yōu)化n哈夫曼編碼哈夫曼編碼 n基本思想基本思想:當(dāng)各種事件發(fā)生的概率不均等時(shí),可:當(dāng)各種事件
58、發(fā)生的概率不均等時(shí),可以對(duì)發(fā)生概率最高的事件用最短的位數(shù)(時(shí)間)以對(duì)發(fā)生概率最高的事件用最短的位數(shù)(時(shí)間)來(lái)表示(處理),而對(duì)于出現(xiàn)概率較低的事件,來(lái)表示(處理),而對(duì)于出現(xiàn)概率較低的事件,則可以用較長(zhǎng)的位數(shù)(時(shí)間)來(lái)表示(處理),則可以用較長(zhǎng)的位數(shù)(時(shí)間)來(lái)表示(處理),從而使總的平均位數(shù)(時(shí)間)縮短。從而使總的平均位數(shù)(時(shí)間)縮短。2.3 2.3 指令系統(tǒng)的設(shè)計(jì)和優(yōu)化指令系統(tǒng)的設(shè)計(jì)和優(yōu)化n哈夫曼編碼方法:哈夫曼編碼方法:n利用哈夫曼算法,構(gòu)造哈夫曼樹(shù)。將所有指令的利用哈夫曼算法,構(gòu)造哈夫曼樹(shù)。將所有指令的使用頻度由小到大排序,每次選擇其中最小的兩使用頻度由小到大排序,每次選擇其中最小的兩個(gè)
59、頻度合并成一個(gè)頻度,使它們二者之和成為一個(gè)頻度合并成一個(gè)頻度,使它們二者之和成為一個(gè)新節(jié)點(diǎn)。再按該頻度大小插到余下未參與結(jié)合個(gè)新節(jié)點(diǎn)。再按該頻度大小插到余下未參與結(jié)合的頻度值中。如此繼續(xù)進(jìn)行,直到全部頻度結(jié)合的頻度值中。如此繼續(xù)進(jìn)行,直到全部頻度結(jié)合完畢形成根結(jié)點(diǎn)為止。之后,對(duì)每個(gè)節(jié)點(diǎn)向下延完畢形成根結(jié)點(diǎn)為止。之后,對(duì)每個(gè)節(jié)點(diǎn)向下延伸,分出兩個(gè)分支,分別用一位代碼的伸,分出兩個(gè)分支,分別用一位代碼的“0”或或“1”來(lái)表示。這樣從根結(jié)點(diǎn)開(kāi)始,沿線到達(dá)各來(lái)表示。這樣從根結(jié)點(diǎn)開(kāi)始,沿線到達(dá)各頻度指令所經(jīng)過(guò)的代碼序列就構(gòu)成該頻度指令的頻度指令所經(jīng)過(guò)的代碼序列就構(gòu)成該頻度指令的哈夫曼編碼。哈夫曼編碼。n
60、由于哈夫曼編碼中的斷碼不可能是長(zhǎng)碼的前綴,由于哈夫曼編碼中的斷碼不可能是長(zhǎng)碼的前綴,從而保證了解碼的唯一性和實(shí)時(shí)性。從而保證了解碼的唯一性和實(shí)時(shí)性。2.3 2.3 指令系統(tǒng)的設(shè)計(jì)和優(yōu)化指令系統(tǒng)的設(shè)計(jì)和優(yōu)化n構(gòu)造哈夫曼樹(shù)構(gòu)造哈夫曼樹(shù)2.3 2.3 指令系統(tǒng)的設(shè)計(jì)和優(yōu)化指令系統(tǒng)的設(shè)計(jì)和優(yōu)化n寫(xiě)出哈夫曼編碼寫(xiě)出哈夫曼編碼指令 頻度PiOp哈夫曼編碼OP長(zhǎng)度liI10.4001I20.30102I30.151103I40.05111005I50.04111015I60.03111105I70.031111152.3 2.3 指令系統(tǒng)的設(shè)計(jì)和優(yōu)化指令系統(tǒng)的設(shè)計(jì)和優(yōu)化n哈夫曼編碼并不是唯一的。只要將沿線所
溫馨提示
- 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)銷(xiāo)合同范本
- 車(chē)輛運(yùn)輸肉類(lèi)合同范本
- 供貨合同范本范文
- 養(yǎng)殖股東協(xié)議合同范本
- 華為購(gòu)車(chē)合同范本
- 區(qū)代理商合同范本
- 儲(chǔ)料倉(cāng)合同范本
- 制作標(biāo)識(shí)標(biāo)牌合同范本
- 合理借款合同范例
- 電商提成合同模板
- 正念八周課件
- 服務(wù)響應(yīng)時(shí)間和服務(wù)保障方案
- 蟾蜍毒抗病毒作用機(jī)制
- 光伏發(fā)電監(jiān)理合同協(xié)議
- 新能源汽車(chē)概論課件 3.1認(rèn)知純電動(dòng)汽車(chē)
- 【數(shù)學(xué)】小學(xué)四年級(jí)口算題大全(10000道)
- 中國(guó)腦出血診治指南
- 信息安全意識(shí)培訓(xùn)課件
- 《食品標(biāo)準(zhǔn)與法規(guī)》知識(shí)考試題庫(kù)300題(含答案)
- 社團(tuán)活動(dòng)情況登記表
評(píng)論
0/150
提交評(píng)論