指令周期的不同:
指令周期由若幹個機器周期/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為恢複原來的操作