2019-2020-1 20175320 《信息安全系統設計基礎》第六週學習總結

2019-2020-1 20175320 《信息安全系統設計基礎》第六週學習總結

1、教材學習內容總結

本週咱們瞭解了Y86-64指令體系結構,並在此基礎上了解了硬件控制語言HCL。Y86-64是《深刻理解計算機系統》這本書的做者出的指令集,目的是爲了讓咱們更加清楚地瞭解ISA,該指令集的指令基本都是從x86而來。如下是對本章內容的總結:html

程序員可見狀態

  • y86-64中的程序員既可指用匯編編寫程序的人,也可值產生機器級代碼的編譯器。
  • 可見狀態,即指寄存器、存儲器、條件碼、PC以及程序狀態。

Y86-64指令編碼

y86-64指令的指令編碼長度爲一字節到十字節,由三大部分(一個字節的指令指示符,一個字節的寄存器指示符,一個八字節的當即數),五小部分組成。編碼的第一個字節的前半部分表示指令的種類,後半部分表示功能碼(用來區別具體指令,好比肯定分支類型),寄存器指示符的前半部分以及後半部分分別表示一個寄存器,當沒有使用寄存器時使用十六進制數的F代替。根據指令的不一樣能夠選擇不一樣的指示符以及編碼長度來表示,例如jxx dest能夠用六進制編碼7 Fn DEST表示(Fn表示分支類型)。程序員

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

HCL的狀況表達式的通用格式爲:x=[ selct1 :expr1 ; select2 :expr2;];,而在實際使用的過程當中,常常須要在判斷條件中使用集合關係,好比:bool s1=code in{2,3};bool s0=code in{1,3};
在邏輯設計過程當中,多個邏輯門的組合具備如下限制條件:安全

  • 一個系統輸入
  • 兩個或多個邏輯門的輸出不能鏈接在一塊兒
  • 這個網必須是無環的

Y86-64的順序實現

爲了使處理器充分利用硬件,處理器工做分爲六階段:
一、取指(地址爲PC的值,從內存中取指令,同時給valc和valp賦值)
二、譯碼(從寄存器文件讀入兩個操做數valA與valB,即從寄存器中讀出值)
三、執行(ALU將計算內存的有效地址或修改棧指針,計算結果爲valE)
四、訪存(將數據讀出或寫入內存,記做valM)
五、寫回(將最多兩個結果寫入寄存器文件,即對寄存器的值進行修改)
六、更新(將PC設置爲下一條指令的地址)
其中,全部指令都要進行取指、執行以及更新PC的過程,irmovq指、JXX指令不通過譯碼階段,OPQ、rrmovq、irmovq以及JXX指令不通過訪存階段,rmmovq、JXX指令不通過寫回的階段。學習

SEQ硬件結構


其中須要注意的是:編碼

  • PC是SEQ中惟一的時鐘寄存器
  • 寬度爲字長的數據用中等粗度的線表示,寬度爲字節或者更窄的鏈接用細線表示,單個位鏈接使用虛線表示
  • SEQ經過組合邏輯或兩種存儲器設備實現
  • SEQ組織計算時遵循的準則:一、從不回讀,處理器從不須要爲了完成一條指令的執行而去讀由該指令更新了的狀態。二、當一個時鐘上升沿到來時,狀態單元是根據前一條指令設置的
  • PC增長器中,新的PC值等於p+1+r+8i(r爲need_regids的值即有沒有使用寄存器,i爲need_val的值,即有沒有使用當即數)
  • 狀態碼的幾種狀況:SADR(遇到非法地址)、SINS(遇到非法指令)、HALT(遇到HALT指令,即處理器中止)以及SAOK(指令正常操做)

2、教材學習中的問題和解決過程

y86-64是基於x86-64指令集而來,教材學習過程當中並無碰到問題。.net

3、代碼調試中的問題和解決過程

本週主要是理論內容,代碼量不大,運行過程當中並無碰到問題。設計

4、代碼託管

5、上週考試錯題總結

問題一:

問題一解析:enter等價於pushq %rbp movq %rsp, %rbp
問題二:

問題二解析:內存之間不能直接mov,要用寄存器中轉。b,w,l,q表示的長度要和寄存器匹配
問題三:

問題三解析:X86-64中虛擬地址的數量目前是2^48個,在目前的實現中,這些地址的高16位必須設置爲0,因此一個地址實際上可以指定的是2^48或64TB範圍內的一個字節。指針

6、其餘(感悟、思考等,可選)

本章內容是由x86-64的指令集發展而來,並幫助咱們理解處理器工做的過程,自己內容並不複雜,可是編碼等內容較爲繁瑣,須要記憶指令以及寄存器對應的編碼,並理解順序實現過程當中不一樣的命令在各步驟所進行的操做。本章內容是爲了讓咱們更加清楚地瞭解ISA,瞭解CPU處理器的工做流程,有助於咱們更好地瞭解計算機系統。調試

7、學習進度條

博客量(新增/累積) 學習時間(新增/累積) 重要成長
目標 30篇 400小時
第三週 1/1 13/13
第四周 1/2 22/35
第五週 1/3 30/65
第六週 1/4 25/90

嘗試一下記錄「計劃學習時間」和「實際學習時間」,到期末看看能不能改進本身的計劃能力。這個工做學習中很重要,也頗有用。 耗時估計的公式 :Y=X+X/N ,Y=X-X/N,訓練次數多了,X、Y就接近了。code

參考:軟件工程軟件的估計爲何這麼難軟件工程 估計方法

參考資料

相關文章
相關標籤/搜索