1. 程式人生 > >2018-2019-1 20165228 《資訊安全系統設計基礎》第四周學習總結

2018-2019-1 20165228 《資訊安全系統設計基礎》第四周學習總結

2018-2019-1 20165228 《資訊安全系統設計基礎》第四周學習總結

教材學習內容總結

Y86-64指令集體系結構

Y86程式中的每條指令都會讀取或修改處理器狀態的某些部分

程式設計師可見狀態

  • 15個程式暫存器(RF):每個暫存器儲存一個64位,即8位元組的字(即Y86-64指令長度)
  • 3個條件碼(CC):ZF(零標誌位)/SF(符號標誌位)/OF(溢位標誌位)
  • 程式狀態(Stat)

  • 程式計數器(PC):存放當前正在執行指令的地址,計算下一條指令的地址時,根據當前指令的編碼長度計算。
  • 記憶體(DMEM):很大的位元組陣列,用來存放程式和資料。

    Y86-64指令

  • Y86-64程式暫存器識別符號:
  • 暫存器識別符號範圍:0-0xE
  • 程式暫存器的儲存:暫存器檔案
  • 不應訪問任何暫存器:用0xF表示
  • Y86-64指令編碼
  • 編碼長度:1位元組~10位元組
  • 組成:1、一個單位元組的指令指示符
    2、一個單位元組的暫存器指示符
    3、一個八位元組的常數字
  • 各指令詳細解釋:
  • halt指令:十六進位制表示為00,佔一個位元組。執行時,使處理器停止。
  • nop指令:十六進位制表示為10,佔一個位元組。
  • rrmovq rA,rB指令:十六進位制表示為 20 rArB,佔兩個位元組。
  • ...

  • Y86-64指令集的功能碼:高四位為程式碼部分,低四位為功能部分。

邏輯設計和硬體控制語言HCL

  • 為實現一個數字系統需要三個重要的組成部分:
  • 計算對位進行操作的函式的組合邏輯
  • 儲存位的儲存單元
  • 控制儲存單元更新的時鐘訊號
  • HCL與HDL的區分
  • HCL:硬體控制語言
  • HDL:硬體描述語言
  • HCL表示式中的運算子:都只對單個字進行操作
  • 與:AND用“&&”表示
  • 或:OR用“||”表示
  • 非:NOT用“!”表示
  • 與、或、非三種邏輯閘可以用一種與非門或者或非門實現
  • 組合電路:多個邏輯閘組合成網(必須無環)構成計算塊,稱為組合電路。
  • 多個邏輯閘組合時的限制:每個邏輯閘的輸入必須連線到下述選項之一,且兩個或多個邏輯閘的輸出不能連線在一起。
    1、一個系統輸入
    2、某個儲存器單元的輸出
    3、某個邏輯閘的輸出
  • HCL整數表示式
  • 情況表示式:

  • 算數/邏輯單元(ALU):加、減、與、異或

  • 集合關係:
    iexpr為被測試的值,iexpr1~iexprk為帶匹配的值,均為正數表示式。
iexpr in { iexpr1,iexpr2,...,iexprk }
  • 儲存器和時鐘
    按位儲存資訊的裝置
  • 時鐘暫存器:簡稱暫存器,儲存單個位或字。Y86-64中使用是中暫存器儲存程式計數器PC、條件程式碼CC和程式狀態Stat
  • 隨機訪問暫存器:簡稱記憶體,儲存多個字。
  • 暫存器
  • 硬體暫存器:將其輸入和輸出的線連線到電路的其他部分。當時鐘上升沿到來才會載入新的輸入訊號並輸出,是電路不通部分中組合邏輯之間的屏障。
  • 程式暫存器:CPU中為數不多的可定址的字,這裡的地址為暫存器ID,這些字通常都存在暫存器檔案中。
  • 暫存器組成:兩個讀埠、一個寫埠、時鐘

Y86-64的順序實現