分析一條指令的執行過程


1.請分析一般指令的執行過程,並給出每個階段對應的微操作。

分析一條指令的執行過程

指令的執行過程可能有一個周期,只有取指周期;也可能有兩個周期,取指周期和執行周期;
如果有間指操作的話,還包括了間指周期;如果有中斷操作的話,還要執行中斷周期。

取指周期需要將指令從內存單元中取出,放入CPU的IR寄存器;
需要對指令的操作碼部分進行分析(把操作碼部分送給CU,由CU確定這是系統當中的哪一條指令);
需要對尋址方式進行分析。

間指周期需要訪問一次內存,把操作數的地址從內存單元取出。
執行周期包括完成指令要求的全部運算(從內存單元取出操作數、進行相應的運算操作並把運算結果保存在給定的寄存器當中)。

如果有中斷周期的話,在每條指令執行周期結束,要確認是否有中斷請求。如果有中斷請求,則需響應中斷,
響應中斷過程包括:保存斷點、形成中斷服務程序入口地址、硬件關中斷。

取值周期的微操作

要想把指令從內存單元當中取出,則需要知道指令的地址,而指令的地址保存在程序計數器(PC)中。

首先PC要把包含的指令地址送給MAR,再通過MAR把信號送給地址總線,最后送到存儲器當中。
PC—>MAR—>地址總線—>存儲器

然后由控制單元向存儲器發出讀命令,讀出的數據由數據總線送給MDR這個寄存器,
再由MDR送到IR當中,那么指令就被取到了IR寄存器。
1—>R
M(MAR)—>MDR
MDR—>IR

取值周期可能還要完成譯碼的任務,譯碼來確定這條指令到底要做什么操作,所做的操作由指令的操作碼部分給出。所以要把指令的操作碼部分送給CU,CU去譯碼,來確認這條指令要做什么操作。
OP(IR)—>CU

另外取值周期還要對PC進行拓展,指令取完,可以對PC中的內容進行更新,為取下一條指令做准備。
(PC)+1—>PC


間指周期的微操作

通過間指周期,把操作數的地址從存儲器當中取出,放入到指令寄存器(IR)當中所保存的地址碼部分。

首先將指令的形式地址(IR中的地址碼部分)傳送給MAR,再通過MAR傳送到地址總線,進而傳送到存儲器的地址線上。要實現這個操作,控制器要發出將IR的地址碼部分送給MAR的控制信號,然后由控制器向存儲器發出讀操作命令。存儲器接收到地址和讀操作命令以后,在指定的內存單元當中將操作數的地址取出,通過數據總線傳輸給MDR。
Ad(IR)—>MAR—>地址總線—>存儲器
1—>R
M(MAR)—>MDR

被取出的地址進一步被送到IR寄存器的地址碼部分,這個時候IR寄存器當中包含的指令的地址碼部分就是操作數的物理地址(操作數所在的存儲單元的地址)
MDR—>Ad(IR)


執行周期的微操作

不同指令執行周期的微操作是不同的。


中斷周期的微操作

中斷周期三件事:保存斷點、形成中斷服務程序入口地址 、硬件關中斷。
保存斷點兩種方法:1)程序斷點保存入“0”地址2)程序斷點進棧
1) 如果采用程序斷點存入給定的一個地址,控制單元要把斷點保存到內存中
0—>MAR

對存儲器進行寫操作,控制單元向存儲器發出寫命令。
1—>W

程序斷點進行保存,保存至程序計數器PC中,PC寄存器的內容保存入MDR。
PC—>MDR

完成寫入操作,將MDR的內容保存到MAR指定的內存單元中。
MDR—>M(MAR)
—————————————————————————————————————————
形成中斷服務程序入口地址,如果采用硬件向量法,把向量地址保存到PC中。
向量地址—>PC
形成中斷服務程序入口地址,如果采用軟件查詢法,則需將中斷識別程序的入口地址M—>PC,將來由CPU執行中斷識別程序,來給出中斷服務程序的入口地址。
M—>PC
—————————————————————————————————————————
硬件關中斷,將0送入到允許中斷觸發器中,實際的操作命令如下:
0— >EINT(置“0”)


2)如果采用程序斷點進棧,首先要修改棧頂,形成新的棧頂地址,將這個地址送給MAR。
(SP)-1—>MAR

寫操作,將PC的內容保存到內存單元中。
PC—>MDR

完成寫入操作,將MDR的內容保存到MAR指定的內存單元中。
MDR—>M(MAR)
—————————————————————————————————————————
形成中斷服務程序入口地址,如果采用硬件向量法,把向量地址保存到PC中。
向量地址—>PC

形成中斷服務程序入口地址,如果采用軟件查詢法,則需將中斷識別程序的入口地址M—>PC,將來由CPU執行中斷識別程序,來給出中斷服務程序的入口地址。
M—>PC
—————————————————————————————————————————
硬件關中斷,將0送入到允許中斷觸發器中,實際的操作命令如下:
0—>EINT(置“0”)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM