## 第一題  ### 範例   ### Single cycle single cycle的每次cycle是固定時間,而且必須跟**耗時最常時間的指令一樣長**,也就是**Load word** * IF + ID + EX + MEM + WB  ### Multi cycle Multi cycle老師說背起來就對了 * load x5 * store x4 * branch x3 * jump x3 * R-type x4  ### Pipeline  * 有1/3的load指令的結果,會被下一個指令所使用(load-use hazard),會需要再多stall 1 clock,總計需2個clock * load = 1/3 * 2 + 2/3 * 1 = 4/3 * 做branch的時候猜對的機率為1/2,猜對的話只要1個cycle,猜錯的話需要delay 2 cycle recover,總計需3個cycle * branch = 1/2 * 1 + 1/2 * 3 = 2 * jump會 delay 1 cycle,總計為2個cycle * jump = 2 * store, R-type 都是1個cycle * store, R-type = 1  ## 第二題  ### R-type(3 register)  ### I-type(2 register: lw, sw, addi)   ### J-type  ### sll, lui  ### 112  ### 112答案  ### 110  ### 109  ## 第三題   ### 課本解釋 * IF stage * zero the IF/FD register * ID stage * use multiplexor to zero control signal * EX stage * use multiplexor to zero control lines  ## 第四題  * 1.猜得快 * 2.猜的準 * 3.猜錯回復的快 ### 109年出過的  ## 第五題  ### 各動作會涉及到的開關  * RegDst負責**控制**是否將資料寫入rt(0)或rd(1) * RegWrite負責**開關**是否將資料寫入register * ALUSrc負責**控制**是否將register2(0)或者instruction sign-extend(1)放入ALU運算 * PCSrc負責**控制**是否PC下一個為值為PC+4(0)或者要跳到另一個branch(1) * MemRead負責**開關**是否能讀取記憶體 * MemWrite負責**開關**是否能將資料寫入記憶體 * MemtoReg負責**控制**寫入register的資料是從memory還是ALU ### 解答  * a. R-type, lw * R-type, lw 都需要寫入Register * b. 無 * lw 可以讀取記憶體 R-type MemtoReg是正常的,所以還是選正常的資料 (註: MemtoReg負責**控制**寫入register的資料是從memory還是ALU) sw, beq的RegWrite是0 (註: RegWrite負責**開關**是否將資料寫入register) * c. R-type * R-type 會將運算的結果放入rd中 (註: RegDst負責**控制**是否將資料寫入rt(0)或rd(1)) * d. R-type, beq * 這兩個指令都需要第二個register的資料 (註: ALUSrc負責**控制**是否將register(0)或者instruction sign-extend(1)放入ALU運算) * e. 有可能在不該跳的地方跳 * 因為只要ALU的$zero為1,就有可能發生jump (看上方電路)  ### 110  * a. 同112 * b. 同112 * c. 同112 * d. 同112 * e. (自己想的,不一定是正確答案) * 我會從control新增一條訊號控制是否要bne,如果為bne的話則該訊號為1,並且跟not \$zero的訊號做AND,再把該結果跟Branch和$zero做AND的結果再做一次OR ### 109  * a. lw * lw無法將資料放入正確的register * b. lw * lw無法將記憶體的資料放入register * c. 同112 * d. 同112 ## 第六題  * 1-bit: 執行上次的結果 * 2-bit: 錯兩次才會換 ### 1-bit prediction * 紀錄上次的結果 * **執行上次的結果**  ### 2-bit prediction * 會記錄上一次和上上次的結果 * **錯兩次才會換**  ## 第七題 ### 112題目  ### 112 答案 :::info beq 後面的那個指令會需要fetch :::  * b, c 小題   ### 110題目   ### 110解答 * \$2我就直接當作是2(00010)  :::warning c.的B過程是對的,但是計算錯誤 = PC + 4 + (4096+34)\*4 = 28 + 16520 = 16548 :::  ### 109題目  ### 109答案 * \$1我就直接當作是1(00001)  :::warning c.2應該是 PC + 4 + 8030 = 8082 ::: 
×
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