# 上課筆記 ###### tags: `Computer Organization` ## 2021.4.19 ### 一 . Introduction 1. 主軸 : 硬體實現MISP指令的方法。 2. MISP 指令 : 三大格式。 - I、J、R格式。 3. 暫存器的位置 : 感覺要記下來。 - kernal運算會保留暫存器的26-27。 ### 二 . ALU的資料處理 1. flow : - PC一次一次的加上4。 - 每一次都由inst的meory讀取資料。 - 存入register。 - ALU執行。  2. R-format的處理方法 : - 讀出兩個register的資料。 - 經過ALU計算之後,存入reghiste 3. I-format的處理方法 : - 重點一:需要sign-extension,。 ### 三 . ALU control signal - 目的 : 在general的ALU下,分別控制信號。 1. R-type : - 不經過memory。 - 寫入暫存器。 - 不會有Pc src變化。 ## 2021.5.3 ### 一 . Single Cycle CPU - ALU Control```(p43)``` : type和function組成了訊號的編碼。 - Main Control```(p44)```: 指令輸入要產生出對應的CPU行為。 - 每一個格式的讀取規都不一樣。 - Single Cycle CPU is not good . ### 二 . Pipline - 例子 : 洗衣服,Piplline ,一個機器是一個core。 - 讓每一個time的使用機器率達到最高。 - 生產線,每一個機器是一個工作人員。 - 指令的週期 : - ```IF``` : inst fetch - ```ID``` : inst encode and register read。 - ```EX``` : execute inst - ```MEM``` : memory access - ```WB``` : wirte result in register - 不一定都會用到,所以,其中『lw』會用去最多的時間。 - 所以,Single Cycle 的效率會很低。 - Pipline Hazards : - ```Structed Hazrds``` : 指令通常需要同時存取資料和指令,所以如果放在同一個記憶單元,會有錯誤。 - ```Data Hazrds ``` : 兩個連續的指令可能需要儲存同一個暫存器。 - ```Control Hazrds```。 - 解決```Structed Hazrds``` : 將記憶單元分開。 - 一個儲存指令。 - 一個儲存資料。 - 解決```Data Hazrds``` : bubble - 增加其他指定的等待時間。 - 解決```Data Hazrds``` : forwarding - 增加一個多工器,可以選擇輸入的資料的來源方向。 - 但並不是所有的forwarding都可以處理所有的data hazrds。 - 可能還是需要bubble處理。 - 解決```Control Hazrds``` : 在前一個Cycle就取得狀態。 - 解決```Control Hazrds``` : 猜。 - static : 固定跳的方向。 - Dynamic : 用一個特殊的硬體紀錄最近的狀態進行預測。 ### 三 . 設計Pipline - 分割上的重新設計: - WH 不應該從前面輸入,應該從後面輸入。 - 所以WH應該一直在多邊傳輸。 - Single Cycle ## 2021.5.10 ### (補上次) . R-type 的空stage - R-type不需要loading memory - 為了對其loading memo的inst。 ### 一 . Control Signal : Pipline Control 1. 將control message 可以一直傳下去 ### 二 . 發生hazrd 1. 前面的讀的,後面寫入的register一樣。
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up