8.2-指令周期(学习笔记)
【README】
本文總結自bilibili《計算機組成原理(哈工大劉宏偉)》的視頻講解,非常棒,墻裂推薦;
【1】指令周期
【1.1】指令周期概述
1)指令周期:取出并執行一條指令所需的全部時間;
2)控制單元要完成指令解釋的全部過程,包括
- 1)?? ?取指令;從內存讀取指令,放入IR指令寄存器中; (取指周期)
- 2)?? ?分析指令;需要對指令的操作碼和尋址方式進行分析,如分析該指令是系統指令集中的哪個指令;(取指周期)
- 3)?? ?執行指令;(執行周期)
- 4)?? ?寫回結果;
3)小結:完成一條指令分為2個階段:
- 取指周期;
- 執行周期;
【1.2】指令周期分類
指令周期分3種:
- 第1種:只有取指周期,沒有執行周期;
- 第2種:有取指周期,執行周期,且2個周期耗時相同;
- 第3種:只有1個取值周期,但有多個執行周期;
指令 ADD mem:是把mem內存地址的操作取出,并與ACC寄存器相加,結果存入ACC;
 取指周期:取指令,分析指令(第1次訪存取指令);
 執行周期:執行指令,寫回結果;(第2次訪存取操作數)
注意:指令耗時主要在訪存;
3 具有間接尋址的指令周期 :
 取指周期:1次訪存,取指令;
 間址周期:1次訪存,取操作數地址;
 執行周期:1次訪存,取操作數;
4 具有中斷周期的執行周期 (4個階段):
 1)?? ?取值周期:;
 2)?? ?間址周期:;
 3)?? ?執行周期:;
 4)?? ?中斷周期:有中斷請求的話,需要響應中斷;響應中斷過程:保存斷點,形成中斷服務程序的入口地址,硬件關中斷;
【1.3】 cpu工作周期標志
為了對控制器進行設計,我們必須知道當前處于指令周期的哪個階段? 以便于控制器發出相應的控制操作,把數據或指令或地址傳送到指定位置;
解決方法: 采用D觸發器對取值周期,間址周期,執行周期,中斷周期進行標識,以確認當前指令執行階段是什么?
【2】指令周期數據流
主要對各指令周期不同階段的步驟進行詳細分析;每個指令周期的多個步驟形成數據流;
【2.1】取指周期數據流
取指周期數據流的步驟:
| 步驟 | 描述 | 
| 1 | PC把下一條執行指令的地址送入MAR; | 
| 2 | MAR把地址送到地址總線,再由地址總線送到存儲器; | 
| 3 | CU把讀控制信號送到控制總線上;再由控制總線送到存儲器; | 
| 4 | 存儲器執行讀操作,把相應的數據送到數據總線;通過數據總線送到MDR; (這個時候,指令已經被取出到cpu了,并保持到MDR寄存器中) | 
| 5 | MDR把指令送到IR中; | 
| 6 | CU把PC加1(得到下一條指令的地址);為下一條指令的取指操作做準備; | 
【2.2】間址周期數據流
間址周期數據流的步驟:
| 步驟 | 描述 | 
| 1 | MDR把指令中的形式地址送到MAR; | 
| 2 | MAR把地址送到地址總線,再通過地址總線送給存儲器; | 
| 3 | CU發出讀操作到控制總線;控制總線再送入存儲器中; | 
| 4 | 存儲器完成讀操作后,把數據送到數據總線;再由數據總線送到MDR; (MDR就保存了指令用到的操作數所在的內存地址,需要第二次訪存才可以取出操作數) | 
【2.3】執行周期數據流和中斷周期數據流
1) 中斷周期大致做了3件事情;
2)中斷周期數據流的步驟:
| 步驟 | 描述 | 分類 | 
| 1 | CU把程序斷點保存的內存地址送到MAR; | 保存斷點 | 
| 2 | MAR把地址傳給地址總線,再由地址總線送給存儲器; | |
| 3 | CU向存儲器發出寫命令到控制信號;由控制總線送到存儲器; | |
| 4 | PC把程序斷點(即下一條指令的地址)送到MDR; | |
| 5 | 由MDR把程序斷點送到數據總線;再由數據總線送到存儲器進行寫入; | |
| 6 | CU把中斷服務程序的入口地址寫入PC; 下一跳指令就執行中斷服務程序了(因為PC保存了下一跳執行指令的地址) | 形成中斷服務程序的入口地址 | 
總結
以上是生活随笔為你收集整理的8.2-指令周期(学习笔记)的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: aigo新品不按套路出牌,眼部按摩还能听
- 下一篇: 吃鸡手游如何用电脑玩吃鸡手游如何用电脑玩
