Re: [理工] [計組] 處理器的問題
※ 引述《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
08/11 12:44, 1F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 5 之 5 篇):