天天看點

指令周期的資料流

指令周期的資料流

指令周期的不同:

指令周期由若幹個機器周期/cpu周期組成

下面的圖為不同的指令的指令周期

指令周期的資料流

指令周期的流程:

指令周期的資料流

如何判斷在哪個階段呢

提供一個硬體結構:觸發器

指令周期的資料流

一個方框代表一個觸發器,4個代表4個不同的周期。FE,IND,EX,INT

分别代表的是取指周期,間指周期,執行周期,間斷周期

4個操作都由訪存的操作,但是目的不同:

取指周期是為了取指令,間指周期是為了取指令有效位址,執行周期是為了取操作數,中斷周期是為了儲存程式斷點

取指周期的資料流:

将指令放入CPU中

指令周期的資料流

1.(PC)->MAR

2.CU發出控制信号,讀信号:1->R表示CU發送信号到存儲器

3.M(MAR)->MDR

4.(MDR)->IR

5.(PC)+1->PC

這裡的+1可以為+2,+3…

目的就是為了把PC的指令傳入到IR中

間址周期的資料流

指令周期的資料流

1.從IR中将指令位址傳入到MAR

Ad(IR)->MAR

2.CU發出控制信号,讀信号:1->R

3.MAR中的内容到MDR中:M(MAR)->MDR

4.将有效位址送至指令的位址碼字段:MDR->Ad(IR)

或者直接在MDR中操作。不同的第4步代表着不同的下一個資料流的指向

執行周期的資料流:

由于不同的執行周期不同,是以執行周期的資料流多種多樣,可能設計到CPU内部寄存器間的資料傳送,對存儲器進行讀寫操作或者對ALU的操作。所有這裡無法用圖統一顯示

中斷周期的資料流:

中斷:暫停目前的任務去完成其他的任務

為了可以快速的恢複目前任務,設定斷點

一般使用堆棧來儲存斷定,這裡為SP為堆棧表示,這裡SP為堆棧的首位址

進棧操作為先修改指針,然後加入資料

進棧為-1,出棧為+1

指令周期的資料流

1-3為儲存斷點的操作

4為恢複原來的操作