9.1-微操作命令的分析(学习笔记)
【README】
本文總結自bilibili《計算機組成原理(哈工大劉宏偉)》的視頻講解,非常棒,墻裂推薦;
1)完成一條指令需要4個周期:
- 取值周期;
- 間址周期(或有);
- 執行周期;
- 中斷周期(或有);
看一下,在取指,間指,指令分析,指令執行以及中斷響應過程中,控制單元CU到底要發出哪些微控制命令(引出問題) ?
2)微操作命令定義:指的是這些命令是在指令解釋過程中,控制單元發出的命令;這些命令要完成的動作與整條指令相比要小得多;所以叫做微操作命令;
【1】取指周期微操作命令分析
1)取指周期數據流的步驟:
| 步驟 | 描述 |
| 1 | PC把下一條指令的內存地址送入MAR; |
| 2 | MAR把地址送到地址總線,再由地址總線送到存儲器; |
| 3 | CU把讀控制信號送到控制總線上;再由控制總線送到存儲器; |
| 4 | 存儲器執行讀操作,把相應的數據送到數據總線;通過數據總線送到MDR; (這個時候,指令已經被取出到cpu了,并保持到MDR寄存器中) |
| 5 | MDR把指令送到IR中; |
| 6 | CU把PC加1(得到下一條指令的地址);為下一條指令的取指操作做準備; |
?2)取指周期還要完成一項動作就是譯碼:
譯碼就是確定指令要完成什么操作;具體什么操作根據指令操作碼給出;
所以需要把IR(指令寄存器)中的指令操作碼部分送給CU(OPCODE(IR) –>CU ),由CU譯碼,來確認這條指令具體是做什么操作;
【2】間址周期
間址周期數據流的步驟:
| 步驟 | 描述 |
| 1 | IR存儲的指令中的形式地址送到MAR; |
| 2 | MAR把地址送到地址總線,再通過地址總線送給存儲器; |
| 3 | CU發出讀操作到控制總線;控制總線再送入存儲器中; |
| 4 | 存儲器完成讀操作后,把數據送到數據總線;再由數據總線送到MDR; (MDR就保存了指令用到的操作數所在的內存地址) |
| 5 | MDR把操作數的真實地址送入IR寄存器中的地址碼部分; |
步驟2~5這4個操作,是間址周期控制單元CU要發送的控制命令(微操作命令);
【3】執行周期
【3.1】非訪存指令
| 序號 | 指令 | 描述 | 控制器CU微操作 |
| 1 | CLA | 把寄存器A清零;如A=ACC寄存器; | 控制器只要把0送給A寄存器即可;1條微操作命令; |
| 2 | COM | 取反 | 把acc寄存器的內容每位取反; 1條控制命令就可以做; |
| 3 | SHR | 算術右移 | 2條微操作命令; |
| 4 | CSL | 循環左移 | 2條微操作命令; 最高位移動到最低位; |
| 5 | STP | 停機指令 | 1條微操作命令; 給停機標志設置0即可; |
?【3.2】訪存指令
ADD X:把ACC寄存器的數據與X內存地址中的內容相加,結果存入ACC;
- 微控制命令1,Ad(IR)-> MAR,把IR地址碼部分取出,送入MAR寄存器;MAR寄存器通過地址總線送入存儲器;
- 微控制命令2,CU控制單元發出讀命令到控制總線,控制總線再發給存儲器;
- 微控制命令3,存儲器從MAR給定內存地址單元讀取操作數,并送入MDR寄存器;
- 微控制命令4,把ACC中的操作數與MDR中的操作數相加;結果存入ACC;
LDA X:取數指令,把X指定的內存地址單元的數據取出,并送入ACC寄存器;
3.轉移指令
3.1 無條件轉移 JMP X;
Ad(IR) –> PC ;把指令的地址碼部分送入pc寄存器即可;
3.2 條件轉移 BAN X (負則轉,即上一次計算結果為負值,則轉移到X指定的指令)
上一條指令的計算結果存入了ACC寄存器;
A0 表示計算結果符號位;
【小結】指令分類
| 序號 | 指令分類 | 例子 |
| 1 | 非訪存指令 | CLA-把A清0; COM-取反; SHR-算術右移; CSL-循環左移; STP-停機指令; |
| 2 | 訪存指令 | 加法指令;ADD X 存數指令;STA X 取數指令;LAD X |
| 3 | 轉移指令 | 無條件轉移;JMP X 條件轉移;BAN X |
?
?
【4】 中斷周期
中斷周期:做3件事情
| 操作 | 程序斷點存入0地址 | 程序斷點進棧 |
| 保存斷點 | 0 -> MAR;把地址0送入MAR | (SP)-1 –> MAR;把指令指針寄存器SP的內容減1(棧頂地址)送給MAR; |
| 1->W;把讀命令傳入控制總線,進而傳給存儲器; | ||
| PC->MDR;斷點指令存入MDR PC->MDR | ||
| MDR->M(MAR);MDR把斷點指令存入MAR(地址0)指定的內存單元; | MDR->M(MAR);MDR把斷點指令存入MAR(棧頂地址)指定的內存單元; | |
| 形成中斷服務入口地址 | 向量地址->PC; 或中斷識別程序入口地址M->PC | |
| 關中斷 | 0->EINT;把0送入允許中斷觸發器;關中斷就是不允許其他中斷源提出中斷請求; | |
總結
以上是生活随笔為你收集整理的9.1-微操作命令的分析(学习笔记)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MacBook电脑一键切换输入法MacB
- 下一篇: Mac电脑如何设置屏幕保护程序电脑如何保