→ A4P8T6X9:這題的分支是在 ID 決定吧? 01/23 20:23
→ anoymouse:beq不是要把兩個暫存器的值做相減(ALU)才能判斷有沒有要 01/23 22:23
→ anoymouse:跳嗎 01/23 22:24
→ anoymouse:在ID要怎麼決定 01/23 22:24
→ A4P8T6X9:可以在加一個 XOR 在 register 後面,就可以在 ID 比較。 01/23 22:41
→ anoymouse:不過課本上沒提到 應該是沒有加吧 所以會是錯的嗎? 01/23 22:48
→ h56999:beq通常題目有兩種,一種在ID判斷一種在MEM判斷 01/24 00:02
→ h56999:ALU是指EXE判斷?我看過這種題目..十年來唯一一題 01/24 00:03
推 h56999:但這是題目自己亂定義,通常沒講的話是mem判斷 01/24 00:06
→ h56999:在ID的話看電路圖,或是"full forwarding",或是題目直接講 01/24 00:07
→ h56999:因本來的fowwarding只能mem.exe前饋給exe,有誤可討論 01/24 00:08
→ anoymouse:ALU是EXE ALU不是有個zero的輸出 那邊不就是判斷 01/24 00:31
→ anoymouse:ID級輸出的兩個資料是否相等 相等 相減為0 zero=1 01/24 00:32
→ anoymouse:然後有個控制單元branch的線會跟zero做and 01/24 00:33
→ anoymouse:and完為1 pc就會被取代為要跳躍的位址 01/24 00:34
→ anoymouse:所以我認為是ALU級 不知道錯誤在哪耶 01/24 00:35
→ skybee:我也有疑問如果不在ID判定的話 是在EXE還是在MEM? 01/24 01:50
→ skybee:那如果是在MEM的話 是不是因為EXE階段做完ALU後還要多做兩 01/24 01:57
→ skybee:個MUX 而跳到MEM階段呢? 01/24 01:58
→ anoymouse:請問樓上 ID判斷是用XOR? 如果不是 ID是要怎麼判段跳? 01/24 02:00
→ skybee:把 rs rt 兩個做xor再將各位元做or就可以提前知道了 01/24 02:05
推 A4P8T6X9:仔細看管線圖,那個zero的and gate在mem。 01/24 10:01
推 h56999:可前饋給exe,但要等mem判斷,沖刷三個指令 01/24 10:51
→ anoymouse:所以意思是說and閘也佔相當於一個stage的時間囉 01/24 19:42
推 a7533258:應該是說 and gate跟data mem同步在同一個stage中 01/25 15:16