20165232 第四周學習總結
阿新 • • 發佈:2018-10-21
寄存器 date png 分享 mage 修改 取值 常數 upd
第四章 處理器體系結構
4.1 Y86-64指令集體系結構
- 程序員可見狀態:
Y86-64程序中的每條指令都會讀取或修改處理器狀態的某些部分,這稱為程序員可見狀態。 - Y86-64狀態包括15個寄存器、程序計數器PC(存放當前正在執行指令的地址)、、3個一位的條件碼(ZF、SF和OF)、內存和狀態碼。
- Y86-64指令
- 4個傳送指令
irmovq rrmovq mrmovq rmmovq
其中指令的第一個字母表明源的類型(i r m)第二個字母表明目的的類型(r m)
- 4個整數操作指令
addq subq andq xorq
他們只對寄存器數據進行操作,而X86還允許內存數據進行這些操作,設置三個條件碼ZF SF OF(零,符號,溢出)
- 7個跳轉指令
jmp jle jl je jne jge jg
根據分支的類型和條件代碼的設置來選則分支
- 6個條件傳送指令
cmovle cmovl cmove cmovne cmovge cmovg
條件碼滿足所需要的約束時才會更新寄存器的值。
- call:將返回地址入棧,然後跳到目的地址。
- ret:從call的調用中返回。
- pushq和popq:入棧和出棧。
- halt:停止指令的執行。
- 指令編碼
上圖給出指令的字節級編碼,每條指令需要1-10個字節不等,每條指令第一個字節表明指令的類型:搞四位是代碼部分,低四位是功能部分。 - 組成:
- 一個單字節的指令指示符
- 一個單字節的寄存器指示符
一個八字節的常數字
4.2 邏輯設計和硬件控制語言HCL
- HCL與HDL的區分
- HCL:硬件控制語言
- HDL:硬件描述語言
- 邏輯門
- 與:AND用“&&”表示
- 或:OR用“||”表示
- 非:NOT用“!”表示
- 與、或、非三種邏輯門可以用一種與非門或者或非門實現
- 與非和與的組合可以概括大部分計算
- HCL情況表達式通用格式
- Y86-64的順序實現
- 取值:fetch
- 譯碼:decode
- 執行:execute
- 訪存:memory
- 寫回:write back
- 更新:PC update
- SEQ
- 白色方框表示時鐘寄存器
- 淡藍色方框表示硬件單元
- 灰色圓角矩形表示控制邏輯塊
- 白色圓圈中是線路的名字
- 粗線表示寬度為字長的數據
- 細線表示寬度為字節或更窄的數據
虛線表示單個位的連接
學習進度條
20165232 第四周學習總結