《計算機(jī)系統(tǒng)平臺》課件-第5章 計算機(jī)執(zhí)行程序的過程_第1頁
《計算機(jī)系統(tǒng)平臺》課件-第5章 計算機(jī)執(zhí)行程序的過程_第2頁
《計算機(jī)系統(tǒng)平臺》課件-第5章 計算機(jī)執(zhí)行程序的過程_第3頁
《計算機(jī)系統(tǒng)平臺》課件-第5章 計算機(jī)執(zhí)行程序的過程_第4頁
《計算機(jī)系統(tǒng)平臺》課件-第5章 計算機(jī)執(zhí)行程序的過程_第5頁
已閱讀5頁,還剩37頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

程序的執(zhí)行機(jī)制分以下兩個部分介紹第一講:程序執(zhí)行概述程序及指令的執(zhí)行過程CPU的基本功能和基本組成第二講:數(shù)據(jù)通路基本結(jié)構(gòu)和工作原理數(shù)據(jù)通路基本結(jié)構(gòu)數(shù)據(jù)通路的時序控制數(shù)據(jù)通路基本工作原理

“存儲程序”思想又稱為“馮.諾依曼”思想,將程序裝入內(nèi)存中,使計算機(jī)在工作時能夠自動地從內(nèi)存中取出指令并加以執(zhí)行。誰將程序的第一條指令的地址放入PC?答:操作系統(tǒng)程序及指令的執(zhí)行過程在內(nèi)存存放的指令實際上是機(jī)器代碼(0/1序列)08048394<add>:8048394:55push%ebp8048395:89e5mov%esp,%ebp8048397:8b450cmov0xc(%ebp),%eax804839a:034508add0x8(%ebp),%eax804839d:5d pop%ebp804839e:c3 ret對于add函數(shù)指令按順序存放在0x08048394開始的存儲空間。各指令長度可能不同,如push、pop和ret指令各占一個字節(jié),第2行mov指令占兩個字節(jié),第3行mov指令和第4行add指令各占3字節(jié)。各指令對應(yīng)的0/1序列含義有不同的規(guī)定,如“push%ebp”指令為01010101B,其中01010為push指令操作碼,101為EBP的編號,“pop%ebp”為01011101B,其中01011為pop指令的操作碼。如何判定每條指令有多長?如何判定操作類型、寄存器編號、立即數(shù)等?如何區(qū)分第2行和第3行mov指令的不同?如何確定操作數(shù)是在寄存器中還是在存儲器中?一條指令執(zhí)行結(jié)束后如何正確讀取到下一條指令?123456程序執(zhí)行需要解決的問題:機(jī)器指令的執(zhí)行過程取指令:從PC所指單元取出指令送指令寄存器(IR),并增量PC。如add函數(shù),開始PC(IA-32的EIP)中存放的是0x0848394,CPU根據(jù)PC取指令送IR,每次總是取最長指令字節(jié)數(shù),假定最長指令是4個字節(jié),即IR為32位,此時,也即5589E58BH被取到IR中。指令譯碼:不同指令其功能不同,因而需要不同的操作控制信號。CPU根據(jù)不同操作碼譯出不同控制信號。對于上述取到IR中的5589E58BH譯碼時,可根據(jù)高5位01010譯碼得到push指令的控制信號。源操作數(shù)地址計算并取操作數(shù):根據(jù)尋址方式確定源操作數(shù)地址計算方式,若是存儲器數(shù)據(jù),則需一次或多次訪存;若為間接尋址或兩操作數(shù)都在存儲器的雙目運(yùn)算,則需多次訪存;若是寄存器數(shù)據(jù),則直接從寄存器取數(shù)。執(zhí)行數(shù)據(jù)操作:在ALU或加法器等運(yùn)算部件中對取出的源操作數(shù)進(jìn)行運(yùn)算。目的操作數(shù)地址計算并存結(jié)果:根據(jù)尋址方式確定目的操作數(shù)地址計算方式,若是存儲器數(shù)據(jù),則需要一次或多次訪存(間接尋址時);若是寄存器數(shù)據(jù),則在進(jìn)行數(shù)據(jù)操作時直接存結(jié)果到寄存器。指令地址計算并將其送PC。順序執(zhí)行時,PC加上當(dāng)前指令長度;遇到轉(zhuǎn)移類指令時,則需要根據(jù)條件碼、操作碼和尋址方式等確定下條指令地址。

機(jī)器指令的執(zhí)行過程CPU執(zhí)行指令的過程取指令指令譯碼進(jìn)行主存地址運(yùn)算取操作數(shù)進(jìn)行算術(shù)/邏輯運(yùn)算存結(jié)果PC+“1”以上每步都需檢測“異常”若有異常,則自動切換到異常處理程序檢測是否有“中斷”請求,有則轉(zhuǎn)中斷處理指令執(zhí)行過程問題:“譯碼”須在指令執(zhí)行前做嗎?是你能說出幾種“異?!笔录??“異常”和“中斷”的差別是什么?異常是在CPU內(nèi)部發(fā)生的,中斷是由外部事件引起的執(zhí)行階段“1”:指一條指令的長度,定長指令字每次都一樣;變長指令字每次可能不同程序及指令的執(zhí)行過程程序和指令的關(guān)系程序由一條一條指令組成,指令按順序存放在內(nèi)存連續(xù)單元程序的執(zhí)行:周而復(fù)始地執(zhí)行一條一條指令正常情況下,指令按其存放順序執(zhí)行遇到需改變程序執(zhí)行流程時,用相應(yīng)的轉(zhuǎn)移指令(包括無條件轉(zhuǎn)移指令、條件轉(zhuǎn)移指令、調(diào)用指令和返回指令等)來改變程序執(zhí)行流程程序的執(zhí)行流的控制將要執(zhí)行的指令所在存儲單元的地址由程序計數(shù)器PC給出,通過改變PC的值來控制執(zhí)行順序指令周期:CPU取出并執(zhí)行一條指令的時間程序的執(zhí)行機(jī)制分以下兩個部分介紹第一講:程序執(zhí)行概述程序及指令的執(zhí)行過程CPU的基本功能和基本組成第二講:數(shù)據(jù)通路基本結(jié)構(gòu)和工作原理數(shù)據(jù)通路基本結(jié)構(gòu)數(shù)據(jù)通路的時序控制數(shù)據(jù)通路基本工作原理

數(shù)據(jù)通路的位置計算機(jī)的五大組成部分:什么是數(shù)據(jù)通路(DataPath)?指令執(zhí)行過程中,數(shù)據(jù)所經(jīng)過的路徑,包括路徑中的部件。ControlMemoryCPUInputOutputDatapathDatapath實例計算機(jī)的執(zhí)行過程控制器在不同的時機(jī)發(fā)出不同信號控制各個部件完成一條指令的處理,三大部件使用六個寄存器保存一定的指令執(zhí)行狀態(tài):PC:程序計數(shù)器,用于保存指令的存儲地址;IR:指令寄存器,用于保存當(dāng)前指令;AC:累加器,用于保存運(yùn)算結(jié)果和載入數(shù)據(jù);MAR:存儲器的地址寄存器;MDR:存儲器的數(shù)據(jù)寄存器;RW:讀寫狀態(tài)寄存器;控制器基本設(shè)計方法——時序控制方式同步時序控制:所有微操作的動作均是在一個統(tǒng)一時鐘控制下完成。這個時鐘稱為系統(tǒng)時鐘,它的一個周期時間就是時鐘周期。最慢微操作的工作時間決定了時鐘周期;設(shè)計簡單,實現(xiàn)代價小,便于調(diào)試;異步時序控制:不采用統(tǒng)一的時鐘來產(chǎn)生各個控制信號,每個部件需要的控制信號都由部件各自的時鐘產(chǎn)生,有的甚至不需要時鐘產(chǎn)生。較快的微操作可在較短的時間內(nèi)完成;各操作間的銜接采用異步應(yīng)答的方式;控制復(fù)雜,調(diào)試難度大??刂破骰驹O(shè)計方法——指令周期指令周期:從內(nèi)存取一條指令并執(zhí)行該指令所用的時間。機(jī)器周期:CPU周期,計算機(jī)完成一個基本操作所花費的時間。時鐘周期:節(jié)拍脈沖,把一個機(jī)器周期分為若干相等的時間段,每一個時間段對應(yīng)一個電位信號,稱為節(jié)拍電位。工作脈沖:在一個節(jié)拍內(nèi)常常設(shè)置一個或幾個工作脈沖,工作脈沖的寬度只占節(jié)拍電位寬度的1/n,并處于節(jié)拍的末尾部分,以保證所有的觸發(fā)器都能可靠、穩(wěn)定地翻轉(zhuǎn)。指令周期機(jī)器周期1機(jī)器周期2機(jī)器周期n……時鐘周期1時鐘周期2時鐘周期m….….工作脈沖1工作脈沖2工作脈沖k…..……….(節(jié)拍1)(節(jié)拍2)(節(jié)拍m)三級時序系統(tǒng)一臺計算機(jī)機(jī)內(nèi)的控制信號一般均由若干個機(jī)器周期狀態(tài),若干個節(jié)拍電位及若干個時鐘脈沖這樣的3級時序系統(tǒng)組成。現(xiàn)代計算機(jī)已不再采用三級時序系統(tǒng),機(jī)器周期的概念已經(jīng)消失,取代的定時信號就是時鐘,一個時鐘周期就是一個節(jié)拍。●時序關(guān)系圖:晶振輸出機(jī)器周期1機(jī)器周期2時鐘T1工作脈沖P時鐘T2指令周期控制不同階段操作時間控制分步操作時間對微操作定時取指執(zhí)行取出指令譯碼打入IR2指令系統(tǒng)指令功能備注ADDxAC

AC+Mem[x]定點加LOADxAC

Mem[x]取數(shù)STORExMem[x]

AC存數(shù)SHLxAC

AC<<x邏輯左移JUMPxPC

x無條件跳轉(zhuǎn)由具有代表性的5條指令構(gòu)成。實例計算機(jī):機(jī)器字長32位,指令字長32位。x=200420044指令格式操作碼字段地址字段313029282423……0000Address0010100111115位移位值A(chǔ)DDLOADSTOREJUMPSHLLOADb[0](b[0]:2008)00100000000000000000000011111011000例如:3微操作一條指令的處理包括一系列控制過程。在這個控制過程中,由控制器發(fā)出的每個控制信號均通過硬連線的方式連接到某個特定部件,在空間上形成受控部件的操作。由六個寄存器和組合邏輯構(gòu)成的電路2位2位1位1位1位1位ALU運(yùn)算控制:2位。為00表示進(jìn)行加法運(yùn)算,結(jié)果送入AC;01表示進(jìn)行移位運(yùn)算,結(jié)果送入AC;為10表示進(jìn)行數(shù)據(jù)傳送,來自MDR輸出、送到ALU右操作數(shù)入口的數(shù)據(jù)被送入AC;為11表示AC保持;MDR更新控制:1位。為0表示選擇AC內(nèi)容進(jìn)入MDR,1表示選擇存儲器讀出內(nèi)容進(jìn)入MDR;MAR更新控制:1位。為0表示選擇PC值進(jìn)入MAR,為1表示選擇IR中指令的地址字段進(jìn)入MAR。RW更新控制:控制存儲體讀寫狀態(tài),讀時置0,寫時置1。PC更新控制:2位。為00表示選擇IR中指令地址字段進(jìn)入PC,為01表示選擇PC+4的值進(jìn)入PC,10和11表示PC保持內(nèi)容。IR更新控制:1位。為1選擇MDR內(nèi)容進(jìn)入IR,否則IR內(nèi)容保持。控制信號說明3微操作分析指令A(yù)DDx

所涉及的微操作“PC送MAR”“設(shè)置讀條件”

“訪存結(jié)果送MDR”

“MDR送IR”

“IR地址字段送MAR”“設(shè)置讀條件”

“訪存結(jié)果送MDR”

“加法”

“PC+4送PC”

1)ADD指令節(jié)拍微操作信號取值本時鐘周期末上升沿后1PC送MAR③=0MAR輸出指令地址,RW輸出讀信號設(shè)置讀條件④=02存儲器取指,取出結(jié)果送MDR②=1MDR輸出指令CLK1)ADD指令節(jié)拍微操作信號取值本時鐘周期末上升沿后3MDR送IR⑥=1IR輸出指令4IR操作碼字段進(jìn)行譯碼;IR地址碼字段送MAR③=1MAR輸出數(shù)據(jù)地址,RW輸出讀信號設(shè)置讀條件④=0PC+4送PC,準(zhǔn)備下一條指令地址⑤=01PC輸出下一條指令地址CLK1)ADD指令1)ADD指令節(jié)拍微操作信號取值本時鐘周期末上升沿后5存儲器取數(shù),取出結(jié)果送MDR②=1MDR輸出數(shù)據(jù)6ALU把MDR輸出與AC輸出相加,結(jié)果送AC①=00AC輸出計算結(jié)果CLK1)ADD指令在六個節(jié)拍中,還有哪些微操作必須確定?1)ADD指令A(yù)C在第6節(jié)拍更新前需保持以便計算PC在第4節(jié)拍更新前后需保持以維持下一條指令地址IR在第3節(jié)拍取到指令后需保持以便譯碼存儲器要保持讀狀態(tài)防止被誤修改①=11⑤=10⑤=10⑥=0④=0④=0節(jié)拍微操作信號取值本時鐘周期末上升沿后4PC+4送PC,準(zhǔn)備下一條指令地址⑤=01PC輸出下一條指令地址CLK1.微操作安排——2)SHL指令SHL指令前三個節(jié)拍與ADD完全相同第4節(jié)拍不需取操作數(shù),所以只執(zhí)行“PC+4”微操作2)SHL指令節(jié)拍微操作信號取值本時鐘周期末上升沿后5ALU把AC左移一位,結(jié)果送AC①=01AC輸出計算結(jié)果~nALU把AC左移一位,結(jié)果送AC①=01AC輸出計算結(jié)果CLK2)SHL指令前三個節(jié)拍與ADD相同,第4節(jié)拍改變PC第5~n節(jié)拍由IR指示的移位量進(jìn)行逐個周期進(jìn)行移位各保持微操作同ADD①=11⑤=10⑤=10⑥=0④=01.微操作安排——3)LOAD指令節(jié)拍微操作信號取值本時鐘周期末上升沿后5存儲器取數(shù),取出結(jié)果送MDR②=1MDR輸出數(shù)據(jù)6ALU把MDR輸出送AC①=10AC輸出LOAD結(jié)果CLK3)LOAD指令前五個節(jié)拍與ADD相同,第6節(jié)拍執(zhí)行“ALU把MDR輸出送AC”微操作⑤=10⑤=10⑥=0④=0④=0CLK1.微操作安排——4)STORE指令STORE指令前三個節(jié)拍與ADD完全相同,第4節(jié)拍執(zhí)行存數(shù)微操作節(jié)拍微操作信號取值本時鐘周期末上升沿后4PC+4送PC,準(zhǔn)備下一條指令地址⑤=01PC輸出下一條指令地址IR操作碼字段譯碼;IR地址碼字段送MAR③=1MAR輸出數(shù)據(jù)地址RW輸出寫信號MDR輸出待寫數(shù)據(jù)設(shè)置寫條件④=1AC送MDR②=0CLK4)STORE指令第5節(jié)拍執(zhí)行存數(shù)微操作節(jié)拍微操作信號取值本時鐘周期末上升沿后5存儲器存數(shù)數(shù)據(jù)寫入存儲器4)STORE指令前三個節(jié)拍與ADD相同,第4、5節(jié)拍執(zhí)行完存數(shù)微操作同樣需添加保持微操作⑤=10⑤=10⑥=0④=0④=0①=11節(jié)拍微操作信號取值本時鐘周期末上升沿后4IR地址字段送PC,準(zhǔn)備跳轉(zhuǎn)指令地址⑤=00PC輸出跳轉(zhuǎn)指令地址CLK1.微操作安排——5)JUMP指令JUMP指令前三個節(jié)拍與ADD完全相同第4節(jié)拍執(zhí)行“IR地址字段送PC”微操作實現(xiàn)跳轉(zhuǎn)5)JUMP指令前三個節(jié)拍與ADD相同,第4執(zhí)行改變PC跳轉(zhuǎn)同樣需添加保持微操作⑤=10⑥=0④=0①=11實例計算機(jī)指令周期的劃分?jǐn)?shù)據(jù)通路結(jié)構(gòu)發(fā)展IAS計算機(jī)中分散連接結(jié)構(gòu)總線式CPU:單總線、雙總線、三總線流水線CPU結(jié)構(gòu)CPU+GPU,CPU+MIC存儲程序計算機(jī)最簡單的數(shù)據(jù)通路結(jié)構(gòu)

取指令數(shù)據(jù)路徑為:

PC→MAR,ReadM,M→MBR→IBR→IR取操作數(shù)、運(yùn)算、送結(jié)果的數(shù)據(jù)路徑為:

操作數(shù)地址→MAR,ReadM,M→MBR→ALU輸入端,AC→ALU輸入端,ALU操作,ALU結(jié)果→AC,AC→MBR,WriteMIAS計算機(jī)(馮.諾依曼等設(shè)計)是現(xiàn)代計算機(jī)的原型分散連接方式!AC:累加器MQ:乘商寄存器IBR:指令緩沖寄存器MBR:存儲器緩沖寄存器單總線數(shù)據(jù)通路

四種基本操作的時序控制信號在寄存器之間傳送數(shù)據(jù)R0out,Yin完成算術(shù)、邏輯運(yùn)算R1out,Y

溫馨提示

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

最新文檔

評論

0/150

提交評論