- movq指令:irmovp 、rrmovq 、mrmovq 、rmmovq。
- 整數操做指令 :addq 、 subq 、 andq 、xorq。
- 跳轉指令: jmp 、 jle 、 jl 、je 、 jne 、 jge 、jg。
- 條件傳送指令: cmovle 、 comvl 、 cmove 、 cmovne 、comvge 、 cmovg。
- call指令將返回地址入棧,ret從這樣的調用中返回。
- pushq指令入棧,popq指令出棧。
- halt指令中止指令的執行。
- 1.狀態碼Stat的可能取值
AOK 正常操做html
HLT 處理器執行halt指令git
ADR 遇到非法地址安全
INS 遇到非法指令性能
- 2.出現異常時怎麼作?
讓Y86——處理器中止運行指令。學習
- 是數字電路的基本計算單元。
- 1.構建計算塊(組合電路)時的限制
- 2.組合邏輯電路和c語言中邏輯表達式的區別
- 判斷集合關係的通用格式是:
iexpr in {iexpr1,iexpr2,...,iexprk}ui
iexpr等都是整數表達式。設計
- 取址
- 譯碼
- 執行
- 訪存
- 寫回
- 更新PC
- (1)由時鐘信號控制,使多條指令不一樣階段能夠同時執行,增長了延遲,提高吞吐量
- (2)問題:流水階段長度不一,流水線深度過大插入寄存器影響性能
- (3)由於存在反饋的流水線(即一條指令可能須要屢次執行某個操做,或使用某個數據,訪問某個存儲器或寄存器)致使流水線冒險(數據,控制)
- (4)數據冒險解決方案:暫停(系統判斷是否會產生冒險,會則插入氣泡,延遲下條指令執行),轉發(使產生的結果理解送入須要的位置,避免暫停),加載\使用(當存儲器讀發生較晚時須要暫停和轉發機制同時使用)
- (5)異常處理
- (6)控制邏輯和機制
處理return:暫停流水線直到ret指令到達寫回階段
加載/使用冒險:在對存儲器讀和使用之間須要暫停一個週期
預測錯誤分支:當預測失敗時應該能夠返回到以前狀態,去掉錯誤指令
異常:出現異常時,中止後序指令執行,並避免當前異常指令寫回htm
- (7)性能分析
CPI=1+處罰項(預測錯誤+返回+暫停)blog
目標:使CPI=1;一個週期執行一條指令get
問題1:不理解Y86和X86的區別
解決:其實二者是很是類似的,區別就在於,有的時候Y86須要兩條指令來達到X86一條指令就能夠達成的目的。Y86就是一個X86的縮減版。
20155314劉子健
- 結對學習內容
第四章
代碼行數(新增/累積) | 博客量(新增/累積) | 學習時間(新增/累積) | 重要成長 | |
---|---|---|---|---|
目標 | 5000行 | 30篇 | 400小時 | |
第一週 | 50/50 | 1/1 | 5/5 | |
第二週 | 100/100 | 1/2 | 5/10 | |
第三週 | 100/200 | 1/3 | 5/15 | |
第四周 | 100/300 | 1/4 | 5/20 | |
第五週 | 100/400 | 1/5 | 5/25 | |
第六週 | 100/500 | 1/6 | 5/30 |