1. 程式人生 > >20165232 第四周學習總結

20165232 第四周學習總結

寄存器 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個字節不等,每條指令第一個字節表明指令的類型:搞四位是代碼部分,低四位是功能部分。
  • 組成:
  1. 一個單字節的指令指示符
  2. 一個單字節的寄存器指示符
  3. 一個八字節的常數字

    4.2 邏輯設計和硬件控制語言HCL

  • HCL與HDL的區分
  1. HCL:硬件控制語言
  2. HDL:硬件描述語言
  • 邏輯門
  1. 與:AND用“&&”表示
  2. 或:OR用“||”表示
  3. 非:NOT用“!”表示
  4. 與、或、非三種邏輯門可以用一種與非門或者或非門實現
  5. 與非和與的組合可以概括大部分計算
    技術分享圖片
  • HCL情況表達式通用格式
    技術分享圖片
  • Y86-64的順序實現
  1. 取值:fetch
  2. 譯碼:decode
  3. 執行:execute
  4. 訪存:memory
  5. 寫回:write back
  6. 更新:PC update
  • SEQ
    技術分享圖片
  1. 白色方框表示時鐘寄存器
  2. 淡藍色方框表示硬件單元
  3. 灰色圓角矩形表示控制邏輯塊
  4. 白色圓圈中是線路的名字
  5. 粗線表示寬度為字長的數據
  6. 細線表示寬度為字節或更窄的數據
  7. 虛線表示單個位的連接

    學習進度條

20165232 第四周學習總結