Re: [理工] [計組] 處理器的問題

看板Grad-ProbAsk作者時間15年前 (2010/08/10 22:48), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串5/5 (看更多)
※ 引述《privatewind (傷神客)》之銘言: : 以下是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就可以知道是怎樣的指令了。 3ed課本第326頁instruction decode那段的第一行,說明不能在第二step 就知道是什麼instruction,因此只能做 applicable to all instructions 或not harmful的動作...所以不能去做jump 就是你說的處理器還不知道是什麼指令 我也覺得答案是這個 要說為什麼答案是false,我覺得是因為這是第五章的習題...這裡還沒用到pipeline 的東西 我想它只是要考你知不知道"在第二step時處理器還不知道是什麼指令"而已 至於你說的invalid instruction 的偵測...不知道它是不是有用到PIPELINE的技術? 個人淺見 : [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: 114.32.107.41 ※ 編輯: CPP 來自: 114.32.107.41 (08/10 23:04) ※ 編輯: CPP 來自: 114.32.107.41 (08/11 09:32)

08/11 12:44, , 1F
我的想法是...它自打嘴巴XD
08/11 12:44, 1F
文章代碼(AID): #1COMRRWO (Grad-ProbAsk)
討論串 (同標題文章)
文章代碼(AID): #1COMRRWO (Grad-ProbAsk)