廣工計算機系統(tǒng)結(jié)構(gòu)課件第二章_第1頁
廣工計算機系統(tǒng)結(jié)構(gòu)課件第二章_第2頁
廣工計算機系統(tǒng)結(jié)構(gòu)課件第二章_第3頁
廣工計算機系統(tǒng)結(jié)構(gòu)課件第二章_第4頁
廣工計算機系統(tǒng)結(jié)構(gòu)課件第二章_第5頁
已閱讀5頁,還剩95頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1計算機系統(tǒng)結(jié)構(gòu)第一章基本概念第二章指令系統(tǒng)第三章存儲系統(tǒng)第四章輸入輸出系統(tǒng)**第五章標量處理機第六章向量處理機**第七章互連網(wǎng)絡第八章并行處理機第九章多處理機2三種類型的指令系統(tǒng)CISC:復雜指令系統(tǒng)RISC:精簡指令系統(tǒng)VLIW:超長指令字指令系統(tǒng)設計指令的格式設計指令系統(tǒng)的功能設計指令系統(tǒng)的性能評價2.1數(shù)據(jù)表示*2.2尋址技術(shù)*2.3指令格式的優(yōu)化設計2.4指令系統(tǒng)的功能設計2.aVLIW指令系統(tǒng)第二章指令系統(tǒng)32.3指令格式的優(yōu)化設計指令系統(tǒng)是計算機系統(tǒng)結(jié)構(gòu)的主要組成部分是軟件與硬件分界面的一個主要標志是軟件與硬件之間互相溝通的橋梁與軟件之間的語義差距越來越大指令系統(tǒng)的作用在機器上直接運行的程序由指令組成指令系統(tǒng)是計算機所有命令的集合,是軟件、硬件的之間的一個主要分界面,也是它們之間互相溝通的一座橋梁主要研究指令格式、數(shù)據(jù)表示和尋址方式硬件設計人員采用各種手段實現(xiàn)指令系統(tǒng),而軟件設計人員則使用這些指令系統(tǒng)編制系統(tǒng)軟件和應用軟件,用這些軟件來填補指令系統(tǒng)與人們習慣的使用方式之間的語義差距。指令系統(tǒng)發(fā)展越緩慢,需要用軟件來填補的東西就越多C-->C++-->C#-->...指令系統(tǒng)設計必須由軟件設計人員和硬件設計人員共同完成42.3指令格式的優(yōu)化設計主要目標節(jié)省程序的存儲空間指令格式盡量規(guī)整,便于譯碼研究內(nèi)容操作碼的優(yōu)化表示地址碼的優(yōu)化表示2.3.1指令的組成2.3.2操作碼的優(yōu)化設計2.3.3地址碼的優(yōu)化設計2.3.4指令格式設計舉例52.3.1指令的組成一般的指令主要由兩部分組成操作碼和地址碼地址碼通常包括三部分內(nèi)容地址:地址碼、立即數(shù)、寄存器、變址寄存器地址的附加信息:偏移量、塊長度、跳距尋址方式:直接尋址、間接尋址、立即數(shù)尋址、變址尋址、相對尋址、寄存器尋址操作碼主要包括兩部分內(nèi)容操作種類:加、減、乘、除、數(shù)據(jù)傳送、移位、轉(zhuǎn)移、輸入輸出、程序控制、處理機控制等操作數(shù)描述數(shù)據(jù)的類型:定點數(shù)、浮點數(shù)、復數(shù)、字符、字符串、邏輯數(shù)、向量進位制:2進制、10進制、16進制數(shù)據(jù)字長:字、半字、雙字、字節(jié)操作碼(OPC)地址碼(A)62.3.2操作碼的優(yōu)化表示操作碼的三種編碼方法固定長度,Huffman編碼、擴展編碼改進操作碼編碼方式能夠節(jié)省程序存儲空間例如:Burroughs公司的B-1700機操作碼編碼方式整個操作系統(tǒng)所用指令的操作碼總位數(shù)改進的百分比8位固定長編碼301,24804-6-10擴展編碼184,96639%Huffman編碼172,34643%72.3.2.1固定長操作碼就是所有指令使用相同的代碼位數(shù),其最小碼長式中是平均碼長,是第i種指令的碼長,n是指令總數(shù)優(yōu)點:規(guī)整,譯碼簡單缺點:浪費信息量(操作碼的總長位數(shù)增加)例:已知n=15,求定長編碼的最小平均碼長。解:如:IBM公司的大中型機:最左邊8位為操作碼Intel公司的Intanium處理機:14位定長操作碼許多RISC處理機采用定長操作碼82.3.2.2Huffman編碼法(1)Huffman壓縮概念(最佳編碼定理)1952年由Huffman首先提出最早用于電報報文編碼,如e,t等使用頻度高,用短編碼;q,x使用頻度低,用長編碼基本原理當用n個長度不等的代碼分別代表n種發(fā)生概率不等的事件時,按照短代碼給高概率事件、把長代碼給低概率事件的原則分配,可使平均碼長達到最低,即使用頻度高的指令,短編碼使用頻度低的指令,長編碼92.3.2.2Huffman編碼法1992年由Huffman首先提出最優(yōu)Huffman編碼的操作碼的最短平均長度其中:Pi表示第i種操作碼在程序中出現(xiàn)的概率固定長操作碼相對于最優(yōu)Huffman編碼的信息冗余量10Huffman編碼法---最小概率合并法把所有指令按照操作碼在程序中出現(xiàn)的概率,自左向右從大到小排列好選取兩個概率最小的結(jié)點合并成一個概率值是二者之和的新結(jié)點,并把這個新結(jié)點與其它還沒有合并的結(jié)點一起形成新結(jié)點集合在新結(jié)點集合中選取兩個概率最小的結(jié)點進行合并,如此繼續(xù)進行下去,直至全部結(jié)點合并完畢最后得到的根結(jié)點的概率值為1每個結(jié)點都有兩個分支,分別用一位代碼“0”

和“1”表示從根結(jié)點開始,沿尖頭所指方向,到達屬于該指令的概率結(jié)點,把沿線所經(jīng)過的代碼組合起來得到指令的操作碼編碼利用Huffman樹進行操作碼編碼的方法,又稱最小概率合并法11例p92假設一臺模型計算機共有7種不同的操作碼,如果采用固定長操作碼需要3位。已知各種操作碼在程序中出現(xiàn)的概率如下表,計算采用Huffman編碼法的操作碼平均長度,并計算固定長操作碼和Huffman操作碼的信息冗余量。指令I1I2I3I4I5I6I7概率0.450.300.150.050.030.010.01120.450.300.150.050.030.010.011.000.550.250.100.050.02010101010101解13利用Huffman樹進行操作碼編碼14利用Huffman樹進行操作碼編碼15利用Huffman樹進行操作碼編碼16利用Huffman樹進行操作碼編碼17利用Huffman樹進行操作碼編碼18利用Huffman樹進行操作碼編碼19利用Huffman樹進行操作碼編碼20利用Huffman樹進行操作碼編碼21指令序號出現(xiàn)的概率Huffman編碼法操作碼長度I10.4501位I20.30102位I30.151103位I40.0511104位I50.03111105位I60.011111106位I70.011111116位利用Huffman樹進行操作碼編碼22利用Huffman樹進行操作碼編碼??23采用Huffman編碼法所得到的操作碼的平均長度

=0.45×1+0.30×2+0.15×3+0.05×4

+0.03×5+0.01×6+0.01×6=1.97(位)采用最優(yōu)Huffman編碼法,操作碼的最短平均長度

=0.45×1.152+0.30×1.737+0.15×2.737

+0.05×4.322+0.03×5.059+0.01×6.644+0.01×6.644=1.95(位)24采用3位固定長操作碼的信息冗余量Huffman編碼法的信息冗余量與3位定長操作碼的冗余量35%相比要小得多Huffman操作碼的優(yōu)點:平均長度最短,信息的冗余量最小250.400.330.090.080.070.020.011.000.600.270.170.100.03010101010101解26指令序號出現(xiàn)的概率Huffman編碼法操作碼長度I10.4001位I20.33102位I30.0911004位I40.0811014位I50.0711104位I60.02111105位I70.01111115位利用Huffman樹進行操作碼編碼操作碼的平均長度為H=0.40+2×0.33+4×(0.09+0.08+0.07)+5×(0.02+0.01)=2.17272.3.2.3擴展編碼法Huffman操作碼的主要缺點操作碼長度很不規(guī)整,硬件譯碼困難與地址碼共同組成固定長的指令比較困難(1)擴展編碼法:固定長操作碼與Huffman編碼法相結(jié)合如例p92改為1-2-3-5擴展編碼法,操作碼最短平均長度H = 0.45×1+0.30×2+0.15×3

+(0.05+0.03+0.01+0.01)×5

= 2.00信息冗余量例p92改為2-4等長擴展編碼法,操作碼最短平均長度H = (0.45×0.30+0.15)×2+

(0.05+0.03+0.01+0.01)×4

= 2.20信息冗余量28指令序號出現(xiàn)的概率1-2-3-5擴展編碼2-4等長擴展編碼I10.45000I20.301001I30.1511010I40.05111001100I50.03111011101I60.01111101110I70.01111111111平均長度2.02.2信息冗余量2.5%11.4%7條指令的操作碼擴展編碼法29(2)等長擴展法為了便于實現(xiàn)分級譯碼,一般采用等長擴展法根據(jù)不同的擴展標志,對于等長擴展法還可以有多種不同的擴展方法衡量的標準主要看這種編碼方法的操作碼的平均長度是否最短,或信息量的冗余量是否最小用碼長表示:例如4-8-12法這并不能說明具體編碼方法如下面兩種編碼方法都是4-8-12法用碼點數(shù)表示:例如15/15/15法,8/64/512法同屬4-8-12法3015/15/15法每一種碼長按4位分段,都有4位可編碼位(前面可有相同的擴展標識前綴),可產(chǎn)生16個碼點(即編碼組合)使用其中15個來表示事件,留下1個或多個碼點組合作為更長代碼的擴展標識前綴表事件的碼點須符合“非前綴原則”。即:已用來表示事件的碼點組合不能再作為其它更長代碼的前導部分,否則接收者會混淆在4位的16個碼點中,用15個表示最常用的15種命令,“XXXX”用1個碼點表示擴展到下一個4位,“1111XXXX”;而第二個4位的16個碼點也是如此,“11111111XXXX”0001000011101500000001...1110151111...11111111...000000011110151111...11111111...111111111111...15/15/15編碼法318/64/512法每一種碼長按4位分段每一段中至少要留下1位或多位作為擴展標識,各段剩余的碼位一起編碼,所產(chǎn)生的碼點用來對應被編碼事件每一段中的標識位指出后面還有沒有后續(xù)段如,用頭4位的“0XXX”表示最常用的8種命令,接著操作碼擴展成2個4位,用“1XXX0XXX”的64個碼點表示64種指令,而后面擴展成3個4位,用“1XXX1XXX0XXX”的512個碼點表示512種命令800000001...011164

1000

1000...1111512

1000

1000...1111000000010111100010001111000000010111......8/64/512編碼法32操作碼等長擴展編碼法4-8-12等長15/15/15……擴展法等長8/64/512……擴展法操作碼編碼說明操作碼編碼說明00000001……11104位長度的操作碼共24-1=15種00000001……01114位長度的操作碼共24-1=8種1111000011110001……111111108位長度的操作碼共24-1=15種1000000010000001……111101118位長度的操作碼共23+3=64種111111110000111111110001……11111111111012位長度的操作碼共24-1=15種100010000000100010000001……11111111011112位長度的操作碼共23+3+3=512種33(3)不等長編碼法不等長操作碼擴展編碼法(4-6-10擴展編碼)編碼方法各種不同長度操作碼的指令指令種類4位操作碼6位操作碼10位操作碼15/3/1615316348/31/1683116558/30/3283032708/16/2568162562804/32/25643225629234小結(jié)操作碼優(yōu)化的主要目的:盡可能地減少各種信息冗余空間、時間少、短,(盡可能不要跨段)要想程序占地空間小,則應使操作碼盡可能短352.3.3地址碼的優(yōu)化表示2.3.3.1地址碼個數(shù)的選擇地址碼個數(shù)通常有3個、2個、1個及0個等4種情況地址碼個數(shù)直接、決定性地影響計算機系統(tǒng)應用領域性能硬件設計(存儲系統(tǒng),...)一條指令有幾次存儲器讀寫處理器內(nèi)部設計(寄存器,數(shù)據(jù)通路,...)單總線、雙總線、三總線......評價指令中地址碼個數(shù)應該取多少的標準主要有兩個程序存儲容量,包括操作碼和地址碼程序執(zhí)行速度,以程序執(zhí)行過程中訪問主存的信息量代表36例如:計算一個典型的算術(shù)表達式:;用三地址指令編寫的程序MULX,A,B;X←(A)×(B)ADDX,X,C;X←(X)+(C)SUBX,X,D;分子的計算結(jié)果在X中ADDY,E,F;計算分母,存入YDIVX,X,Y;最后結(jié)果在X單元中37;用普通二地址指令編寫的程序MOVEX,A;復制臨時變量到X中MULX,BADDX,CSUBX,D;X中存放分子運算結(jié)果MOVEY,E;復制臨時變量到Y(jié)中ADDY,F;Y中存放分母運算結(jié)果DIVX,Y;最后結(jié)果在X單元中38;用多寄存器結(jié)構(gòu)的二地址指令編寫程序MOVER1,A;操作數(shù)a取到寄存器R1中MULR1,BADDR1,CSUBR1,D;R1中存放分子運算結(jié)果MOVER2,EADDR2,F;R2中存放分母運算結(jié)果DIVR1,R2;最后結(jié)果在R1中MOVEX,R1;最后結(jié)果存入X中39;用一地址指令編寫的程序LOADE;先計算分母;取一個操作數(shù)到累加器中ADDF;分母運算結(jié)果在累加器中STOREX;保存分母運算結(jié)果到X中LOADA;開始計算分子MULBADDCSUBD;累加器中是分子運算結(jié)果DIVX;最后運算結(jié)果在累加器中STOREX;保存最后運算結(jié)果到X中40;用0地址指令編寫程序:

ab*c+d-ef+/PUSHA;操作數(shù)a壓入堆棧PUSHB;操作數(shù)b壓入堆棧MUL;棧頂兩數(shù)相乘,結(jié)果壓回堆頂PUSHCADDPUSHDSUB;棧頂是分子運算的結(jié)果PUSHEPUSHFADDDIV;棧頂是最后運算的結(jié)果POPX;保存最后運算結(jié)果41地址數(shù)目指令條數(shù)訪存次數(shù)程序存儲量執(zhí)行速度(訪存信息量)三地址55P+15D=205P+15A=65B5P+15A+15D=185B二地址77P+19D=267P+14A=63B7P+14A+19D=215B一地址99P+9D=189P+9A=45B9P+9A+9D=117B零地址1212P+29D=4112P+7A=40B12P+7A+29D=272B二地址寄存器型88P+7D=158P+7A+9R=40B8P+7A+9R+7D=96B用不同地址個數(shù)指令編寫的程序的存儲容量和執(zhí)行速度P表示操作碼長度,A表示地址碼長度,D表示數(shù)據(jù)長度,R表示通用寄存器的地址碼長度,B表示字節(jié)數(shù)并?。篋=2A=8P=16R=8B42PAMRW;用0地址指令編寫程序:

ab*c+d-ef+/1111PUSHA;操作數(shù)a壓入堆棧1111PUSHB;操作數(shù)b壓入堆棧1021MUL;棧頂兩數(shù)相乘,結(jié)果壓回堆頂1111PUSHC1021ADD1111PUSHD1021SUB;棧頂是分子運算的結(jié)果1111PUSHE1111PUSHF1021ADD1021DIV;棧頂是最后運算的結(jié)果1111POPX;保存最后運算結(jié)果127171217MR+12W=29D地址數(shù)目指令條數(shù)訪存次數(shù)程序存儲量執(zhí)行速度(訪存信息量)零地址1212P+29D=4112P+7A=40B12P+7A+29D=272B43地址數(shù)目程序的長度程序存儲量程序執(zhí)行速度適用場合三地址最短最大一般向量,矩陣運算為主二地址較短很大很低一般不宜采用一地址較長較大較快連續(xù)運算,硬件結(jié)構(gòu)簡單零地址最長最小最低嵌套,遞歸,變量較多二地址寄存器型一般最小最快多累加器,數(shù)據(jù)傳送較多不同地址個數(shù)指令的特點及適用場合地址碼個數(shù)的結(jié)論一般商用處理機,采用多寄存器結(jié)構(gòu)的二地址指令最理想強調(diào)硬件結(jié)構(gòu)簡單,以連續(xù)運算(如求累加和等)為主,宜采用一地址結(jié)構(gòu)向量、矩陣運算為主的處理機,最好采用三地址結(jié)構(gòu)。部分RISC處理機也采用三地址指令解決遞歸問題為主的處理機,宜采用零地址結(jié)構(gòu)。編程容易、節(jié)省程序存儲量442.3.3.2縮短地址碼長度的方法用一個短地址碼表示一個大地址空間用間址尋址方式縮短地址碼長度方法:在主存儲器的低端開辟一個專門存放間接地址的區(qū)域用變址尋址方式縮短地址碼長度變址尋址方式中的地址偏移量比較短用寄存器間接尋址方式縮短地址碼長度如16個間址寄存器,用4位地址碼就能表示很長的邏輯地址空間452.4指令系統(tǒng)的功能設計完整性是指應該具備的基本指令種類,通用計算機必須有5類基本指令規(guī)整性包括對稱性和均勻性對稱性:所有寄存器同等對待,操作碼的設置等都要對稱如:A-B與B-A均勻性:不同的數(shù)據(jù)類型、字長、存儲設備、操作種類要設置相同的指令高效率:指令的執(zhí)行速度要快;指令的使用頻度要高;各類指令之間要有一定的比例兼容性:在同一系列機內(nèi)指令系統(tǒng)不變(可以適當增加)46指令系統(tǒng)的優(yōu)化設計指令系統(tǒng)的優(yōu)化設計有兩個截然相反的方向1復雜指令系統(tǒng)計算機CISC(ComplexInstructionSetComputer)增強指令功能,設置功能復雜的指令面向目標代碼、高級語言和操作系統(tǒng)用一條指令代替一串指令

2精簡指令系統(tǒng)計算機RISC(ReducedInstructionSetComputer)只保留功能簡單的指令功能較復雜的指令用子程序來實現(xiàn)472.4.2CISC指令系統(tǒng)2.4.2.1目標程序的優(yōu)化2.4.2.2對高級語言和編譯程序的支持2.4.2.3操作系統(tǒng)的優(yōu)化實現(xiàn)482.4.2.1目標程序的優(yōu)化優(yōu)化目標程序的指標主要有兩個一是縮短程序的長度,即減少程序的空間開銷另一個是縮短程序的執(zhí)行時間,即減少程序的時間開銷優(yōu)化目標程序的方法對大量的目標程序及其執(zhí)行情況進行統(tǒng)計分析,找出那些使用頻度高,執(zhí)行時間長的指令或指令串對于那些使用頻度高的指令,用硬件加快其執(zhí)行縮短整個程序的執(zhí)行時間對于那些使用頻度高的指令串,用一條新的指令來代替縮短整個程序的執(zhí)行時間縮短整個程序的長度,從而減少程序的空間開銷優(yōu)化目標程序的主要途徑(1)增強數(shù)據(jù)傳送指令的功能(2)增強運算型指令的功能(3)增強程序控制指令的功能49(1)增強數(shù)據(jù)傳送指令的功能Intel8088處理機MOVE、PUSH和POP等3種數(shù)據(jù)傳送指令的使用頻度在程序中占40%左右,執(zhí)行時間占30%以上IBM大中型計算機的統(tǒng)計結(jié)果數(shù)據(jù)傳送指令所占的比例還要高數(shù)據(jù)傳送指令在整個指令系統(tǒng)中占有非常重要的地位設計好數(shù)據(jù)傳送指令對提高計算機系統(tǒng)的性能至關(guān)重要數(shù)據(jù)塊傳送指令(2)增強運算型指令的功能在科學計算的應用程序中,經(jīng)常要計算各種各樣的函數(shù)在有些計算機系統(tǒng)設置有常用的函數(shù)運算指令如:開平方,三角函數(shù)sin(x)、cos(x)、tg(x),對數(shù)函數(shù)ln(x)、lg(x),指數(shù)函數(shù)等用一條指令代替軟件的一個子程序來完成函數(shù)計算50(3)增強程序控制指令的功能循環(huán)在一般程序占有相當大的比例許多循環(huán)程序中的循環(huán)體本身往往很短在一般高級語言中,循環(huán)體中只有一條語句的約占40%有1至3條語句的約占70%左右循環(huán)控制指令在整個循環(huán)程序中占據(jù)了相當大的比例可以用一條循環(huán)控制指令來實現(xiàn)對循環(huán)變量的運算、測試和轉(zhuǎn)移功能512.4.2.2對高級語言和編譯程序的支持大多數(shù)人都已經(jīng)習慣用高級語言編寫程序,只有在極少數(shù)有特殊要求的場合才用機器語言或匯編語言編寫程序目前在機器上實際運行的絕大多數(shù)程序,都是用高級語言編寫,并經(jīng)編譯程序編譯后生成的目標程序大多數(shù)高級語言與一般計算機的機器語言的語義差距非常大通常用高級語言編寫的程序經(jīng)編譯程序編譯后生成的目標程序,與直接用機器語言或匯編語言編寫的程序相比,時間開銷和空間開銷都要大一個數(shù)量級改進指令系統(tǒng),增加對高級語言和編譯程序的支持,縮小高級語言與機器語言的差距,就能提高整個計算機系統(tǒng)的性能面向高級語言和編譯程序增強指令系統(tǒng)的途徑(1)增強對高級語言和編譯程序支持的指令的功能(2)研制高級語言計算機52(1)增強對高級語言和編譯程序支持的指令的功能在用高級語言編寫的源程序中,對各種語句的使用頻度和執(zhí)行時間進行統(tǒng)計和分析對使用頻度高,執(zhí)行時間長的語句,增強有關(guān)指令的的功能,或增加相關(guān)的專門指令縮短目標程序長度減少目標程序執(zhí)行時間同時也能縮短編譯所用的時間增強體系結(jié)構(gòu)的規(guī)整性,減少體系結(jié)構(gòu)中各種例外情況,是對編譯程序的有力支持53(2)研制高級語言計算機縮小高級語言與機器語言差距,如果走到極端就是把高級語言與機器語言合二為一,即所謂的高級語言計算機在這種機器中,高級語言不需要經(jīng)過編譯,直接由機器的硬件來執(zhí)行如LISP計算機、PROLOG計算機針對多種高級語言,可以研制各種VLSI芯片,在同一臺機器上可以安裝多種高級語言的專用芯片也可以采用微程序技術(shù),通過微程序存儲器的動態(tài)加載來實現(xiàn)在同一臺機器上具有多種高級語言542.4.2.3操作系統(tǒng)的優(yōu)化實現(xiàn)任何一種計算機系統(tǒng)都必須有操作系統(tǒng)的支撐才能工作,而操作系統(tǒng)又必須用指令系統(tǒng)來實現(xiàn)指令系統(tǒng)對操作系統(tǒng)的支持主要有(1)處理機工作狀態(tài)和訪問方式的轉(zhuǎn)換(2)進程的管理和切換(3)存儲管理和信息保護(4)進程的同步和互斥,信號燈的管理等支持操作系統(tǒng)的有些指令屬于特權(quán)指令,對一般用戶不公開盡管有些指令的使用頻度很低,但是,如果沒有這些指令的支持,操作系統(tǒng)將很難實現(xiàn),或根本不能實現(xiàn)如處理機狀態(tài)的轉(zhuǎn)換,進程的切換,信號燈的管理等方面所使用的有關(guān)指令552.4.3RISC指令系統(tǒng)70年代,指令系統(tǒng)已經(jīng)非常復雜1975年,IBM公司率先組織力量研究指令系統(tǒng)的合理性問題1979年研制出世界上第一臺采用RISC思想的計算機IBM8011986年,IBM正式推出采用RISC體系結(jié)構(gòu)的工作站IBMRTPC機型(生產(chǎn)年代)IBM370/168(1973)VAX-11(1978)iAPX432(1982)Dorado(1978)指令種類208303222270微程序容量420K480K64K136K指令長度16-4816-4566-3218-24采用的工藝ECLMSITTLMSINMOSVLSIECLMSI指令操作類型存儲器-存儲器存儲器-寄存器寄存器-寄存器存儲器-存儲器存儲器-寄存器寄存器-寄存器面向堆棧存儲器-存儲器面向堆棧Cache容量64KB64KB064KB56RISC精簡指令系統(tǒng)計算機(RISC)是80年代提出的一種新的計算機體系結(jié)構(gòu)設計思想目前運行中的許多處理機都采用了RISC體系結(jié)構(gòu)SUN公司的SPARC、SuperSPARC、UtraSPARCSGI公司的R4000、R5000、R10000IBM公司的Power、PowerPCIntel公司的80860、80960、ItaniumDEC公司的AlphaMotorola公司的88100HP公司的HP3000/930系列、950系列等有些典型的CISC處理機也采用了RISC設計思想如Intel公司的80486、Pentium、PentiumPro,Xeon等572.4.3.1從CISC到RISCCISC指令系統(tǒng)存在的問題120%與80%規(guī)律CISC中,大約20%的指令占據(jù)了80%的處理機時間其余80%指令:使用頻度只占20%的處理機運行時間2VLSI技術(shù)的發(fā)展引起的問題VLSI工藝要求規(guī)整性CISC處理機中,為了實現(xiàn)大量的復雜指令,控制邏輯極不規(guī)整,給VLSI造成很大困難RISC正好適應了VLSI工藝的要求主存與控存的速度相當簡單指令沒有必要用微程序?qū)崿F(xiàn),復雜指令用微程序?qū)崿F(xiàn)與用簡單指令組成的子程序?qū)崿F(xiàn)沒有多大區(qū)別由于VLSI的集成度迅速提高,使得生產(chǎn)單芯片處理機成為可能58表2.25Intel8088處理機指令系統(tǒng)使用頻度和執(zhí)行時間統(tǒng)計

(C語言編譯程序和PROLOG解釋程序)使用頻度執(zhí)行時間序號指令%累計%序號指令%累計%1234567891011121314151617181920MOVPUSHCMPJMPccADDPOPRETCALLJUMPSUBINCLESREPNIMULDECXORREPNZCLDLOOPccTEST24.8510.3610.289.036.804.143.923.892.702.432.371.981.921.691.371.130.780.540.520.4024.8535.2145.4954.5261.3265.4669.3873.2775.9778.4080.7782.7584.6786.3687.7388.8689.6490.1890.7091.101234567891011121314151617181920IMULMOVPUSHJMPccCMPCALLRETADDJMPLESPOPDECSUBXORINCLOOPccLDSCMPSMOVSJCXZ19.5517.4411.1110.557.807.274.853.273.262.832.611.491.181.040.990.640.640.440.390.3719.5536.9948.1058.6566.4573.7278.5781.8485.1087.9390.5492.0393.2194.2595.2495.8896.5296.9697.3597.7259表2.26Intel8088處理機各類指令使用頻度統(tǒng)計指令類型8種應用程序平均值F1F2F3F4F5F6F7數(shù)據(jù)傳送算術(shù)運算邏輯運算/位操作字符串處理轉(zhuǎn)移指令處理器控制34.2524.973.402.4234.840.1335.8522.344.344.2232.990.2628.8445.327.632.7215.340.1520.1243.657.492.0117.630.1025.0445.726.382.1020.520.2424.3345.423.972.3525.720.1934.3128.284.892.1030.290.1430.2536.245.442.8625.330.19603軟硬件的功能分配問題復雜的指令使指令的執(zhí)行周期大大加長一般CISC處理機的指令平均執(zhí)行周期都在4以上,有些在10以上CISC增強了指令系統(tǒng)功能,簡化了軟件,但硬件復雜了1981年P(guān)atterson等人研制了32位RISCI微處理器共31種指令,3種數(shù)據(jù)類型,2種尋址方式所有指令都在一個周期(500ns)內(nèi)完成。只有LOAD/STORE可訪問存儲器,其它指令的操作都在通用寄存器之間進行,有78個通用寄存器采用寄存器窗口技術(shù)研制周期10個月,比當時最先進的MC68000和Z8002快3至4倍1983年又研制了RISCII指令種類擴充到39種,單一的變址尋址方式,通用寄存器138個612.4.3.2RISC的定義與特點卡內(nèi)基梅隆大學(CarnegieMellon)論述RISC的特點1大多數(shù)指令在單周期內(nèi)完成2LOAD/STORE結(jié)構(gòu)3硬布線控制邏輯4減少指令和尋址方式的種類5固定的指令格式6注重譯碼的優(yōu)化從目前的發(fā)展來看,RISC體系結(jié)構(gòu)還應具有如下特點(1)面向寄存器結(jié)構(gòu)(2)十分重視提高流水線的執(zhí)行效率要提高RISC處理機的速度,必須采用流水線,而且,要盡量減少斷流,提高流水線的效率(3)重視優(yōu)化編譯技術(shù)優(yōu)化編譯技術(shù)在提高系統(tǒng)性能中發(fā)揮很重要的作用,改變了過去認為提高計算機速度僅僅依靠硬件的傳統(tǒng)觀點高效率的流水線和優(yōu)化編譯技術(shù)是現(xiàn)代RISC系統(tǒng)必須十分注重的兩點。這比卡內(nèi)基梅隆大學的定義更加全面了6290年代初,IEEE的MichaelSlater對RISC定義的描述1RISC為使流水線高效率執(zhí)行,應具有(1)簡單而統(tǒng)一格式的指令譯碼(2)大部分指令可以單周期執(zhí)行完成(3)僅Load和Store指令可以訪問存儲器(4)簡單的尋址方式(5)采用延遲轉(zhuǎn)移技術(shù)(6)采用LOAD延遲技術(shù)2RISC為使優(yōu)化編譯器便于生成優(yōu)化代碼,應具有(1)三地址指令格式(2)較多的寄存器(3)對稱的指令格式632.4.3.3減少CPI是RISC思想的精華程序執(zhí)行時間P=I·CPI·T其中P是執(zhí)行這個程序所使用的總的時間I是這個程序所需執(zhí)行的總的指令條數(shù)CPI(CyclesPerInstruction)是每條指令執(zhí)行的平均周期數(shù)T是一個周期的時間長度RISC的速度要比CISC快3倍左右,關(guān)鍵是RISC的CPI減小了類型指令條數(shù)I指令平均周期數(shù)CPI周期時間TCISC12~1533ns~5nsRISC1.3~1.41.1~1.410ns~2ns64對于T而言RISC一般采用硬布線邏輯實現(xiàn),指令要實現(xiàn)的功能都比較簡單RISC的T通常要比CISC的T小RISC處理機的工作主頻一般要比CISC處理機高對于CPI而言RISC的大多數(shù)指令都是單期執(zhí)行的,它們的CPI應該是1由于RISC中還有LOAD和STORE指令,也還有少數(shù)復雜指令,所以,CPI要略大于1對于I而言由于CISC中復雜指令使用的頻度很低,程序中使用的絕大多數(shù)指令都是與RISC一樣的簡單指令因此,實際上RISC的I長度只比CISC的長30%~40%結(jié)論RISC的速度要比CISC快3倍左右同類問題的程序長度,RISC比CISC長30%~40%65硬件方面采用硬布線控制邏輯減少指令和尋址方式的種類使用固定的指令格式采用LOAD/STORE結(jié)構(gòu)指令執(zhí)行過程中設置多級流水線等軟件方面十分強調(diào)優(yōu)化編譯技術(shù)的作用RISC設計思想也可以用于CISC中例如:Intel公司的80x86處理機的CPI在不斷縮小8088的CPI大于2080286的CPI大約是5.580386的CPI進一步減小到4左右80486的CPI已經(jīng)接近2Pentium處理機的CPI已經(jīng)與RISC十分接近目前,超標量、超流水線處理機的CPI已經(jīng)達到0.5,實際上用IPC(InstructionsPerCycle)更確切662.4.3.4RISC的關(guān)鍵技術(shù)1延時轉(zhuǎn)移技術(shù)2指令取消技術(shù)3重疊寄存器窗口技術(shù)4指令流調(diào)整技術(shù)5以硬件為主固件為輔671延時轉(zhuǎn)移技術(shù)思想為了使指令流水線不斷流,在轉(zhuǎn)移指令之后插入一條沒有數(shù)據(jù)相關(guān)和控制相關(guān)的有效指令,而轉(zhuǎn)移指令被延遲執(zhí)行,這種技術(shù)稱為延遲轉(zhuǎn)移技術(shù)采用指令延遲轉(zhuǎn)移技術(shù)時,指令序列的調(diào)整由編譯器自動進行,用戶不必干預采用延遲轉(zhuǎn)移的程序,必須十分小心68無條件轉(zhuǎn)移指令的延遲執(zhí)行69條件轉(zhuǎn)移指令的延遲執(zhí)行調(diào)整前的指令序列

1:MOVER1,R22:CMPR3,R4;(R3)與(R4)比較

3:BEQNEXT;如果(R3)=(R4)則轉(zhuǎn)移

………NEXT:MOVER4,A調(diào)整后的指令序列1:CMPR3,R4;(R3)與(R4)比較2:BEQNEXT;如果(R3)=(R4)則轉(zhuǎn)移3:MOVER1,R2;被插入的指令………NEXT:MOVER4,A70采用延遲轉(zhuǎn)移技術(shù)的兩個限制條件兩個限制條件1被移動指令在移動過程中與所經(jīng)過的指令之間沒有數(shù)據(jù)相關(guān)2被移動指令不破壞條件碼,至少不影響后面的指令使用條件碼如果找不到符合上述條件的指令,必須在條件轉(zhuǎn)移指令后面插入空操作如果指令的執(zhí)行過程分為多個流水段,則要插入多條指令插入1條指令成功的概率比較大插入2條或2條以上指令成功的概率明顯下降712指令取消技術(shù)采用指令延時技術(shù),經(jīng)常找不到可以用來調(diào)整的指令可考慮采用另一種方法:指令取消技術(shù)分為兩種情況(1)向后轉(zhuǎn)移(適用于循環(huán)程序)實現(xiàn)方法循環(huán)體的第一條指令安放在兩個位置,分別在循環(huán)體的前面和后面如果轉(zhuǎn)移成功,則執(zhí)行循環(huán)體后面的指令,然后返回到循環(huán)體開始否則取消循環(huán)體后面的指令72(1)向后轉(zhuǎn)移(適用于循環(huán)程序)效果能夠使指令流水線在絕大多數(shù)情況下不斷流對于循環(huán)程序,絕大多數(shù)情況下,轉(zhuǎn)移是成功的只有最后一次出循環(huán)時,轉(zhuǎn)移不成功73(2)向前轉(zhuǎn)移(IFTHEN)實現(xiàn)方法:如果轉(zhuǎn)移不成功,繼續(xù)執(zhí)行轉(zhuǎn)移指令之后的下條指令TTT,否則取消下條指令例子

RRR

……

“IF”部分的程序代碼

SSSCOMPR1,R2,THRU

TTT

……

“THEN”部分的程序代碼

UUUTHRU:VVV效果:轉(zhuǎn)移成功與不成功的概率,通常各占50%優(yōu)點:不必進行指令流調(diào)整74隱含轉(zhuǎn)移技術(shù)特殊的IF...THEN...結(jié)構(gòu)中,THEN部分只有一條指令把IF條件取反,如果取反后的條件成立則取消下條指令,否則執(zhí)行下條指令例子:IF(a<b)THENb=b+1COMP>=,Ra,Rb;若(Ra)>=(Rb)則取消

;否則,繼續(xù)完成INCINCRb753重疊寄存器窗口技術(shù)(OverlappingRegisterWindow)原因在RISC中,子程序比CISC中多CALL和RETURN操作保存現(xiàn)場、傳送參數(shù)訪問存儲器的信息量很大為使CALL和RETURN操作盡量少訪問存儲器,美國加洲大學伯克利分校的F.Baskett提出重疊寄存器窗口技術(shù)實現(xiàn)方法設置一個數(shù)量比較大的寄存器堆,并把它劃分成多個窗口每個過程使用其中相鄰的3個窗口和一個公共的窗口有一個窗口與前一個過程共用存放前一過程傳送給本過程的參數(shù)存放本過程傳送給前一過程的計算結(jié)果有一個窗口與下一個過程共用存放本過程傳送給下一過程的參數(shù)存放下一過程傳送給本過程的計算結(jié)果76RISCII的重疊寄存器窗口773重疊寄存器窗口技術(shù)SUN公司的SPARC、SuperSPARC、UtraSPARC等處理機,把最后一個過程與第一個過程的公用寄存器重疊起來,形成一個循環(huán)效果:可以減少大量的訪存操作在主存中開辟一個堆棧,當調(diào)用層數(shù)超過規(guī)定層數(shù)(寄存器溢出)時,把溢出部分的寄存器中內(nèi)容壓入堆棧78寄存器窗口技術(shù)的效果RISCII調(diào)用引起的訪存占總訪存次數(shù)的0.8%,1%過程調(diào)用所需開銷的比較程序名稱調(diào)用次數(shù)最大調(diào)用深度RISCII溢出次數(shù)RISCII訪存次數(shù)VAX-11訪存次數(shù)Quicksort111K(0.7%)10644K(0.8%)696K(50%)Puzzle43K(8.0%)201248K(1.0%)444K(28%)3重疊寄存器窗口技術(shù)機器類型執(zhí)行指令條數(shù)執(zhí)行時間(微秒)訪問存儲器次數(shù)VAX-11PDP-11MC68000RISCII5199626221921015120.2794指令流調(diào)整技術(shù)目標:通過變量重新命名消除數(shù)據(jù)相關(guān),提高流水線效率例子

ADDR1,R2,R3;(R1)+(R2)→R3

ADDR1,R2,R3

ADDR3,R4,R5;(R3)+(R4)→R5

MULR6,R7,R0

MULR6.R7,R3;(R6)×(R7)→R3

ADDR3,R4,R5

MULR3,R8,R9;(R3)×(R8)→R9

MULR0,R8,R9

(a)調(diào)整前的指令序列

(b)調(diào)整后的指令序列(a)存在R3寄存器的數(shù)據(jù)相關(guān)第二條指令必須等第一條指令執(zhí)行完后才能開始執(zhí)行,后續(xù)的指令也是這樣。如果執(zhí)行一條指令需要兩個機器周期,那么,每兩條指令之間都要浪費一個周期(b)通過優(yōu)化編譯器調(diào)整后的指令序列在兩條乘法指令中用R0寄存器代替原來的R3寄存器,消除了兩條乘法指令與兩條加法指令之間的數(shù)據(jù)相關(guān),并且重新調(diào)整指令序列調(diào)整后的指令序列比原指令序列的執(zhí)行速度快一倍805以硬件為主固件為輔固件的主要缺點是執(zhí)行速度低目前,ROM的速度低于SRAM一條機器指令通常要多條微指令解釋執(zhí)行固件的主要優(yōu)點是:便于實現(xiàn)復雜指令,便于修改指令系統(tǒng)以硬聯(lián)邏輯為主來實現(xiàn)指令系統(tǒng),對于少數(shù)復雜的指令,目前的許多處理機也用微程序技術(shù)實現(xiàn)812.4.3.5RISC優(yōu)化編譯技術(shù)RISC對編譯器帶來方便(1)指令系統(tǒng)比較簡單、對稱、均勻,指令選擇工作簡單(2)選擇尋址方式的工作簡單(3)采用LOAD/STORE方式,省去了是否生成訪問存儲器指令的選擇工作(4)大多數(shù)指令在一個周期內(nèi)執(zhí)行完成,為編譯器調(diào)整指令序列提供了極大的方便RISC對編譯器造成困難(1)必須精心安排每一個寄存器的用法,以便充分發(fā)揮每一個通用寄存器的效率,盡量減少訪問主存儲器的次數(shù)(2)做數(shù)據(jù)和控制相關(guān)性分析,要調(diào)整指令的執(zhí)行序列,并與硬件相配合實現(xiàn)指令延遲技術(shù)和指令取消技術(shù)等(3)要設計復雜的子程序庫RISC的子程序庫通常要比CISC的子程序庫大得多822.aVLIW指令系統(tǒng)2.a.1什么是VLIW2.a.2指令級并行技術(shù)2.a.3VLIW的主要特點2.a.4VLIW處理機2.a.5目標代碼兼容問題832.a.1什么是VLIW1VLIW(VeryLongInstructionWord)的背景2什么是VLIW指令系統(tǒng)--一種顯式指令級并行指令系統(tǒng)1VLIW(VeryLongInstructionWord)的背景由美國J.A.Fisher教授于1981年首先提出最初來源于水平微程序一條指令中包含有多個能夠同時執(zhí)行的操作由J.A.Fisher創(chuàng)建的Mutiflow公司研制了的世界上第一臺VLIW處理機TRACE28/300TRACE28/300處理機的一條超長指令中最多有28條可以同時執(zhí)行的指令算法和編譯技術(shù)是關(guān)鍵(在下一代處理機中將普遍采用)842.a.1什么是VLIW2什么是VLIW指令系統(tǒng)--一種顯式指令級并行指令系統(tǒng)在一條VLIW指令中包含有多個相同或不同的操作字段(每個操作字段的功能相當于一般處理機中的一條指令)每個操作字段能夠分別獨立控制各自的功能部件同時工作二維程序結(jié)構(gòu)指令級并行度高852.a.2指令級并行提出VLIW指令系統(tǒng)的主要目的是要開發(fā)程序中的指令級并行性(InstructionLevelParallelism)超標量(Superscalar)處理機依靠設置多條指令流水線,并通過同時發(fā)射多條指令來提高處理機的運算速度超流水線(Superpipelining)處理機通過分時使用同一條指令流水線的不同部分來提高處理機的運算速度VLIW處理機862.a.3VLIW的主要特點1采用顯式并行指令計算2指令級并行度高3硬件結(jié)構(gòu)規(guī)整、簡單4編譯器的實現(xiàn)難度大1采用顯式并行指令計算(EPIC:ExplicitlyParallelInstructionComputing)方式在VLIW處理機上運行的程序是

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論