看板 Grad-ProbAsk 關於我們 聯絡資訊
以下是Computer organization and design 3ed的問題,懇請賜教 [1] {p340} http://img69.imageshack.us/i/58618715.jpg/ 第一題的答案是false,請問是為什麼呢? 我自已是支持true,因為jump在cycle 3所做的動作為{PC[31:28]:IR[25:00]<<2} 如果只是串接實在沒理由等到cycle 3,當然了我也有想了為啥不可以: 可能在Cycle 2 ID過程中,處理器還無法知道是什麼指令,(也就是Control unit 還不能使用),但這在後面的pipelined processor、以及習題時,被反駁了! 因為 對於Branch而言,pipelined processor可以改進Branch,讓它在ID 2時做完,使 其在Cycle 3就讓新的指令讀入,減少stall。習題也說明了Cycle2 就可進行invalid instruction 的偵測換言之在cycle 2就可以知道是怎樣的指令了。 [2] {p354} 題目: http://img683.imageshack.us/i/29677330.jpg/ [2.1] 5.2 的ALUop1的解答 http://img651.imageshack.us/i/89556532.jpg/ 解答寫除了sub以外的R-type指令,都會被影響, 我想這是因為在ALUop 01就是執行減法了 但是這個就有另一個問題了,那add呢? ALUop 00 不是也是執行加法嗎? [2.2] 5.2的MemWrite解答 http://img541.imageshack.us/i/26767284.jpg/ 他寫著只有sw可以正常運作,那jump不能正常執行嗎? 其它指令都會用到ALU計算,所以會進行寫入,這我理解 但是jump呢? 完全沒有用到ALU呢!! 是因為以ALUop,在書本中的設計,的確jump得在ALUOP 00 和ALUOP 01選一個 隨便執行嗎? 順便問jump的control signal。 [3] {p356} 題目: http://img835.imageshack.us/i/88908672.jpg/ 5.29的PCWrite解答: http://img24.imageshack.us/i/62404699.jpg/ 文中寫只有jump不會正常執行,但是multicycle中的state 0(cycle 1)全部的 指令都要執行PC=PC+4不是? 如果巨觀來看,而不是只焦點在一行指令的話, 是不是所有的指令都會受到影響? [4] 有人能告訴我為何MemRead及MemWrite要分成兩個嗎? 由習題中,我們可以知道 http://img251.imageshack.us/i/44716509.jpg/ http://img525.imageshack.us/i/31567301.jpg/ MemRead使其總是為1,對其它指令也不會有影響(就像Regiter file總是可以讀取, 而不用多出一個RegRead控制線) [5] http://img828.imageshack.us/i/33477447.jpg/ 各位可以看到Pipelined Processor的RegDst位在EXE stage,這讓我很不解, 為何RegDst不直接在ID stage就好了?這樣還可以節省ID/EXE pipelined register的用量 [6] http://img227.imageshack.us/i/46052837.jpg/ 答案是 2 5對 但是我有的疑問是3 假設A組有10000行指令沒有lw,sw,所以所有的指令都可在4cycle內執行 B組當然就是有lw,sw,所以必須要5cycle 那A組需要 10000+3=10003個cycle B組需要 10000+4=10004個cycle 只差ㄧ個cycle,但的確他用了比較少一點的cycle(雖然只有少1) 且文句中,也說了這種方式沒什麼效益 那這到底算對還錯? 另外徵求ㄧ起看原文書的同伴們 :p 可以晚上MSN、skype討論,如果是彰化的夥伴更好囉XD -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.126.187.85