天天看點

資訊安全系統設計基礎第六周學習總結

第四章 處理器體系結構

4.1 Y86指令集體系結構

  4.1.1 程式員可見的狀态:Y86程式中的每條指令都會讀取或修改處理器狀态的某些部分。

     8個程式寄存器:%eax、%ebx、%ecx、%edx、%esi、%edi、%esp、%ebp。存儲一個字。

     存儲器:可以了解為很大的位元組數組,儲存着程式和資料。Y86用虛拟位址來引用存儲器位置。

     實體位址:硬體和作業系統軟體聯合将虛拟位址翻譯成實際,指明資料實際儲存在存儲器的那個位置。

  4.1.2 Y86指令:基本上是IA32指令集的一個子集。

     Y86指令的更多細節

     • mov指令分四個不同的指令,源可以是立即數i、寄存器r、存儲器m。目的可以是寄存器r、存儲器m。

     存儲器傳送指令中的存儲器引用方式是簡單的基位址和偏移量形式。沒有mmmovl和immovl。

     • 有4個整數操作指令,隻對寄存器資料進行操作。

     • 7個跳轉指令。根據分支指令類型和條件碼的設定來選擇分支。

     • 6個條件傳送指令。

     • call指令傳回位址入棧,然後跳轉到目的位址。ret指令從這樣的調用過程中傳回

     • pushl和popl實作入棧和出棧

     • halt停止指令的執行。

  4.1.3 指令編碼:寄存器标示符,寄存器訓示符位元組,4位元組常數字,相反。

     确定位元組編碼的方法:

     • 彙編碼表示的第一個位元組前端的位元組編碼

資訊安全系統設計基礎第六周學習總結

     • 寄存器訓示符位元組

資訊安全系統設計基礎第六周學習總結

     • 4位元組常數反序

     重點掌握指令序列和位元組編碼的轉換。

  4.1.4 Y86異常:異常處理程式

資訊安全系統設計基礎第六周學習總結

  4.1.5 Y86程式

資訊安全系統設計基礎第六周學習總結

      Y86和IA32的差別在于Y85可能需要多條指令來執行一條IA32指令所完成的功能。

      彙編器指令:以“.”開頭的詞。告訴彙編器調整位址

  4.1.6 Y86特别注意

     pushl指令會把棧指針減4并将一個寄存器值寫入存儲器中。

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

  4.2.1 邏輯門:AND &&.    OR ||.   NOT !

資訊安全系統設計基礎第六周學習總結

  4.2.2 組合電路和HCL布爾表達式

     限制:多個邏輯門的輸出不能連在一起;網必須是無的,即不能形成回路。

     差別:電路的輸入變化會影響輸出的值;C的表達式參數允許是任意整數,邏輯門隻對位值0/1操作。

  4.2.3 字級的組合電路和HCL整數表達式

     字級計算的組合電路根據輸入字的各個位,用邏輯門計算輸出字的各個位。

     不用指定字的大小。可以聲明位數。允許比較字是否相等。

     情況表達式:

資訊安全系統設計基礎第六周學習總結

  4.2.4 集合關系

     判斷集合關系的通用格式:

資訊安全系統設計基礎第六周學習總結

  4.2.5 存儲器和時鐘

     • 時鐘寄存器:儲存單個位或字

     • 随機通路存儲器:儲存多個字,用位址選擇該讀寫哪個字

4.3 Y86的順序實作

  4.3.1 将處理組織成階段

     各個階段(内)執行操作

     取指:從存儲器中讀取操作,位址為程式計數器的值→譯碼→執行→訪存→寫回→更新PC

資訊安全系統設計基礎第六周學習總結

  4.3.2 SED硬體結構

  4.3.3 SED的時序

  4.3.4 SED階段的實作

資訊安全系統設計基礎第六周學習總結

     1、取指階段:包括指令存儲硬體單元,第一個位元組為指令位元組

     2、譯碼和寫回階段:

          寄存器檔案有四個端口,每個端口都有位址連結和資料連結

資訊安全系統設計基礎第六周學習總結

     3、執行階段

     4、訪存階段

     5、更新PC階段

作業:

資訊安全系統設計基礎第六周學習總結

在上一個make時無法進入目錄,導緻後面沒法編譯

資訊安全系統設計基礎第六周學習總結
資訊安全系統設計基礎第六周學習總結
資訊安全系統設計基礎第六周學習總結