作者wheels ()
看板Grad-ProbAsk
標題Re: [理工] [計組]管線危障
時間Mon Aug 15 13:09:38 2011
※ 引述《okjn816 (蔡包)》之銘言:
雖然我是補張凡老師的,但是我想都可以解決你的問題。
: 我所用的書是高銘老師的計組
: 1.在管線危障的單元有提到beq指令必須要在mem stage的時候才會決定分支是否成立,
: 但我看beq的datapath在exe的地方不是就已經進行alu運算看是否相等了嗎?
在multicycle時,白算盤就把beg放在MEM階段,完全沒有裡由。
但是事實上beg放在MEM EX ID都可以。
放在EX就像是你說的那樣,放在ID的話需要XOR array支援相等運算。
: 2.[check yourself]TorF
: Because the register file both read and written on the same clock cycle,
: any MIPS datapath
: using edge-triggered writes must have more than one copy of the register
: file.
: 我是想問上面所提到的edge-triggered是什麼?
edge-triggered就是clock cycle來的時候,信號會有由0變1或者1變0的瞬間,
規定在0變1或1變0的時候才能運作就是edge-triggered,
白算盤的register是以同一個clock cycle內前半部實作write,後半部實作read。
: 3. http://ppt.cc/WQ4~
: 在解決資料危障問題上利用硬體方式解決,我不太確定這邊的意思
: 像在圖中的ex hazard上,是要解讀成I1=EXE/MEM間的管線暫存器可前饋到I2=ID/EXE間
: 這樣嗎?
我看不到你的圖...EX hazard就是兩個相連的指令(指令距離為1)因為RAW data
dependence的關係而造成的data hazard,所以也就有另一個MEM hazard就是指兩個
隔一個間隔(指令距離為2)的hazard名稱產生。實作解決EX hazard的硬體做法就
是從MEM stage內拉線回到EX stage,不是你像說的回到ID/EXE喔!不過我覺得從
EX/MEM暫存器內拉線也是可以,但是都一定是回到EX stage,再用MUX串起來選擇。
: 可是如果照我自己的解讀,那下面這題的我就看不太懂了
: http://ppt.cc/gyG4
我看不到@_@
: 以上是我的問題有請版上各位神人幫忙我解答
: 非常感激!!!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.24.182.115
※ 編輯: wheels 來自: 114.24.182.115 (08/15 13:12)
推 okjn816:嗯嗯我有了解了!!圖的部分很抱歉如果我自己想一下還是有不 08/15 23:59
→ okjn816:懂的話再補上作詢問 謝謝=) 08/16 00:00