第5章 指令系統(tǒng)體系結(jié)構(gòu)概覽_第1頁(yè)
第5章 指令系統(tǒng)體系結(jié)構(gòu)概覽_第2頁(yè)
第5章 指令系統(tǒng)體系結(jié)構(gòu)概覽_第3頁(yè)
第5章 指令系統(tǒng)體系結(jié)構(gòu)概覽_第4頁(yè)
第5章 指令系統(tǒng)體系結(jié)構(gòu)概覽_第5頁(yè)
已閱讀5頁(yè),還剩22頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第5章指令系統(tǒng)體系結(jié)構(gòu)概覽程利新哈爾濱工程大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院5.1概述指令由操作碼和操作數(shù)組成指令碼指定操作類型操作數(shù)指示數(shù)據(jù)所在寄存器和內(nèi)存位置本章將深入討論計(jì)算機(jī)指令系統(tǒng)體系結(jié)構(gòu)指令和操作數(shù)指令如何訪問(wèn)內(nèi)存5.2.1指令格式各種指令集的區(qū)別特征操作數(shù)在CPU中的存儲(chǔ)方式堆棧寄存器指令直接作用的操作數(shù)數(shù)目操作數(shù)的位置寄存器-寄存器寄存器-存儲(chǔ)器存儲(chǔ)器-存儲(chǔ)器操作操作數(shù)類型和長(zhǎng)度地址數(shù)字字符5.2.1指令系統(tǒng)的設(shè)計(jì)計(jì)算機(jī)體系結(jié)構(gòu)設(shè)計(jì)之初,必須首先設(shè)計(jì)指令系統(tǒng)不同的體系結(jié)構(gòu)必須配備不同的指令系統(tǒng)指令系統(tǒng)的設(shè)計(jì)是計(jì)算機(jī)體系結(jié)構(gòu)設(shè)計(jì)的關(guān)鍵任務(wù)指令系統(tǒng)體系結(jié)構(gòu)的性能評(píng)價(jià)指標(biāo):程序執(zhí)行指令時(shí)占用內(nèi)存空間的大小指令系統(tǒng)的復(fù)雜程度指令的長(zhǎng)度指令系統(tǒng)中指令的總數(shù)設(shè)計(jì)指令系統(tǒng)時(shí)需要考慮的問(wèn)題:指令長(zhǎng)短長(zhǎng)度指令是否固定存儲(chǔ)器的組成形式尋址方法小端和大端的位序問(wèn)題寄存器的數(shù)量以及組織方式操作數(shù)如何存放在CPU中5.2.2小端和大端的位序問(wèn)題位端(endian)指的是計(jì)算機(jī)體系結(jié)構(gòu)中的“位序”(byteorder),或者說(shuō)是計(jì)算機(jī)中存儲(chǔ)多字節(jié)數(shù)據(jù)元素時(shí),各個(gè)字節(jié)如何排列的問(wèn)題。小端機(jī)器:低位字節(jié)放在低位地址,高位字節(jié)放在高位地址,大部分PC是小端機(jī)器大端機(jī)器:高位字節(jié)存在低位地址,低位字節(jié)存在高位地址,大部分UNIX計(jì)算機(jī)是大端機(jī)器這兩種方法各有優(yōu)缺點(diǎn)計(jì)算機(jī)網(wǎng)絡(luò)采用大端位序應(yīng)用程序中的大小端問(wèn)題5.2.3CPU的內(nèi)部存儲(chǔ)機(jī)制:堆棧和寄存器CPU的數(shù)據(jù)存儲(chǔ)方式是區(qū)分不同指令系統(tǒng)體系結(jié)構(gòu)的最基本方法堆棧體系結(jié)構(gòu)累加器體系結(jié)構(gòu)通用寄存器體系結(jié)構(gòu)堆棧體系結(jié)構(gòu)累加器體系結(jié)構(gòu)通用寄存器體系結(jié)構(gòu)存儲(chǔ)器-存儲(chǔ)器,Intel,Motorola寄存器-存儲(chǔ)器,VAX寄存器-寄存器(裝入-存儲(chǔ)),SPARC,MIPS,ALPHA,PowerPC目前主要的的體系結(jié)構(gòu)都是通用寄存器體系指令操作數(shù)的數(shù)目操作數(shù)的編址方式5.2.4操作數(shù)的數(shù)目和指令的長(zhǎng)度現(xiàn)代計(jì)算機(jī)體系結(jié)構(gòu)的指令構(gòu)成格式:固定長(zhǎng)度可變長(zhǎng)度采用幾種指令長(zhǎng)度指令字必須配合機(jī)器字的長(zhǎng)度。最常用的指令格式包括有0個(gè)、1個(gè)、2個(gè)或者3個(gè)操作數(shù)只有操作碼(0地址)操作碼+1個(gè)地址(1個(gè)存儲(chǔ)器地址)操作碼+2個(gè)地址(兩個(gè)存儲(chǔ)器地址或者一個(gè)寄存器地址一個(gè)存儲(chǔ)器地址)操作碼+3個(gè)地址(三個(gè)寄存器地址或者寄存器和存儲(chǔ)器的組合形式)5.2.4操作數(shù)的數(shù)目和指令的長(zhǎng)度每種體系結(jié)構(gòu)下,任意一條指令允許的最大操作數(shù)數(shù)目是有限制的。不帶操作數(shù)的指令必須使用堆棧來(lái)獲得執(zhí)行所需的一個(gè)或兩個(gè)操作數(shù)堆棧結(jié)構(gòu)非常適合采用逆波蘭式表示的表達(dá)式的計(jì)算表達(dá)式的表示法中綴表示法前綴表示法后綴表示法隨著每條指令所允許操作數(shù)的數(shù)目減少,完成相同程序功能所需的指令數(shù)目就會(huì)增加5.2.5擴(kuò)展操作碼擴(kuò)展操作碼是一種對(duì)操作碼數(shù)目好指令長(zhǎng)度進(jìn)行折衷的指令設(shè)計(jì)方案基本思想:選用短操作碼,當(dāng)有需要時(shí)加長(zhǎng)操作碼。操作碼長(zhǎng)的指令,操作數(shù)比較少,操作碼短的指令,操作數(shù)比較多5.3指令類型數(shù)據(jù)移動(dòng)算術(shù)運(yùn)算布爾邏輯運(yùn)算位操作輸入輸出控制轉(zhuǎn)移專門用途5.4尋址尋址與指令設(shè)計(jì)有關(guān)與尋址有關(guān)的兩個(gè)重要問(wèn)題可以進(jìn)行編址的數(shù)據(jù)類型尋址方式5.4.1數(shù)據(jù)類型指令能夠引用的數(shù)據(jù)類型必須有相應(yīng)的硬件對(duì)該種類型的數(shù)據(jù)提供支持5.4.2尋址方式對(duì)指令中操作數(shù)的不同解釋形成了不同的尋址方式尋址方式是指定指令中操作數(shù)位置的方法尋址方式所指定的位置可以是一個(gè)常數(shù),也可以是一個(gè)寄存器,或者也可以是一個(gè)存儲(chǔ)器地址有效地址:實(shí)際操作數(shù)所在的位置5.4.2尋址方式立即尋址直接尋址寄存器尋址間接尋址寄存器間接尋址變址尋址基址尋址堆棧尋址間接變址尋址基址/偏移量尋址自動(dòng)遞增尋址自動(dòng)遞減尋址操作代碼后的數(shù)值會(huì)被立即引用指令中直接指定要引用數(shù)據(jù)地址采用寄存器給出要引用數(shù)據(jù)指令中給出有效地址的地址指令通過(guò)寄存器給出有效地址的地址變址寄存器與操作數(shù)相加得到有效地址基址寄存器與操作數(shù)相加得到有效地址利用堆棧存放引用數(shù)據(jù)同時(shí)采用間接尋址和變址尋址先基址尋址,再加操作數(shù)得到有效地址自動(dòng)增加地址寄存器中的地址自動(dòng)減少地址寄存器中的地址5.4.2尋址方式5.5指令流水線CPU將取指-譯碼-執(zhí)行周期劃分為較小的步驟,某些步驟之間沒(méi)有數(shù)據(jù)依賴關(guān)系,因而可以并行執(zhí)行,這種利用時(shí)間上的交疊以加快CPU執(zhí)行速度的方法稱為流水線(pipeline)。將取指-譯碼-執(zhí)行周期分解為以下6個(gè)步驟S1取指令S2操作碼譯碼S3計(jì)算操作數(shù)的有效地址S4取操作數(shù)S5執(zhí)行指令S6存儲(chǔ)結(jié)果每一個(gè)步驟稱為流水線的一級(jí)(stage)將每一個(gè)步驟逐級(jí)連起來(lái),就構(gòu)成了指令執(zhí)行的管道5.5指令流水線 指令從流水線管道的一端進(jìn)入,經(jīng)過(guò)每一級(jí)的流水線作業(yè),最后從管道的另一端出來(lái)。流水線分級(jí)的目的就是要盡量均衡每一級(jí)所花費(fèi)的時(shí)間,使每一級(jí)的處理時(shí)間大致相等。5.5指令流水線5.5指令流水線關(guān)于指令流水線的相關(guān)參數(shù)指標(biāo)k級(jí)流水完成n條指令的執(zhí)行所需時(shí)間為k+(n-1)個(gè)時(shí)鐘周期加速比:沒(méi)有使用流水線的運(yùn)行時(shí)間除以使用流水線后的時(shí)間5.5指令流水線體系結(jié)構(gòu)必須能夠并行提取數(shù)據(jù)和指令。采取兩條獨(dú)立的指令通路和數(shù)據(jù)通路把操作數(shù)放在高速緩存中流水線沖突:資源沖突數(shù)據(jù)關(guān)聯(lián)條件分支5.5指令流水線資源沖突數(shù)據(jù)關(guān)聯(lián)條件分支指令集并行過(guò)程中對(duì)同一資源的同時(shí)訪問(wèn)需求導(dǎo)致資源沖突指令集并行過(guò)程中,后續(xù)指令需要前面指令的結(jié)果,即存在數(shù)據(jù)依賴關(guān)系,因而無(wú)法并行分支轉(zhuǎn)移指令使得程序執(zhí)行流程不再順序指令,因而會(huì)浪費(fèi)流水線中已經(jīng)完成部分階段的指令5.5指令流水線超標(biāo)量設(shè)計(jì):CPU具有多個(gè)ALU執(zhí)行單元,因而指令流水線中每個(gè)時(shí)鐘周期可以流出一條以上的指令。顯式并行指令計(jì)算機(jī):在指令中規(guī)定需要并行執(zhí)行的操作。并行執(zhí)行的兩種方式:程序級(jí)并行執(zhí)行(PLP)指令級(jí)并行執(zhí)行(ILP)指令流水線處理器支持在同一時(shí)刻執(zhí)行多條指令5.6ISA體系結(jié)構(gòu)的真實(shí)案例介紹兩種體系結(jié)構(gòu):Intel體系結(jié)構(gòu)和MIPS體系結(jié)構(gòu)在設(shè)計(jì)中如何處理指令格式、指令類型、操作數(shù)數(shù)目、地址編碼以及流水線等抽象的指令系統(tǒng):Java虛擬機(jī)5.6.1Intel體系結(jié)構(gòu)小端、雙地址體系結(jié)構(gòu),可變長(zhǎng)度指令系統(tǒng)指令中采用寄存器-存儲(chǔ)器結(jié)構(gòu)指令流水線多種尋址方式5.6.2MIPS體系結(jié)構(gòu)小端、按字編址、3地址指令、指令長(zhǎng)度固定裝入/存儲(chǔ)式體系結(jié)構(gòu),配備很大的寄存器組固定長(zhǎng)度操作流水線、超標(biāo)量5種類型指令指令系統(tǒng)只提供基地址尋址方式,其他尋址方式由編譯器提供3類指令格式:I類型指令、R類型指令、J類型指令5.6.3Java虛擬機(jī)平臺(tái)無(wú)關(guān)編程語(yǔ)言Java編譯時(shí)不需考慮目標(biāo)平臺(tái)體系結(jié)構(gòu),執(zhí)行時(shí)在Java虛擬機(jī)(JVM)中運(yùn)行JVM將字節(jié)碼轉(zhuǎn)化為機(jī)器指令Java字節(jié)碼基于堆棧本章小結(jié)指令系統(tǒng)的核心元素包括存儲(chǔ)器模型(字長(zhǎng)和地址空間的分配方法)、寄存器、數(shù)據(jù)類型、指令格式、尋址方式和指令類型設(shè)計(jì)指令系統(tǒng)時(shí),需要決定指令字長(zhǎng)。擴(kuò)展指令碼可以使用短指令設(shè)計(jì)大指令集。同時(shí)需要決定位序CPU有三種內(nèi)部存儲(chǔ)方式:堆棧、累加器和通用寄存器,內(nèi)部存儲(chǔ)方案的選擇會(huì)直接影響到指令的設(shè)

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論