[計組] Code Scheduling
假設處理器一次可以分發兩個指令(ex.左:ALU or branches, 右:LW or SW)
Loop: lw $t0, 0($s1)
addu $t0, $t0, $s2
sw $t0, 0($s1)
addi $s1, $s1, -4
bne $s1, $zero, Loop
code scheduling 後:
Loop: lw $t0, 0($s1)
addi $s1, $s1, -4
addu $t0, $t0, $s2
bne $s1, $zero, Loop sw $t0, 4($s1)
↑
1. 這邊為什麼會是4,而不是16?
2. 上面的addi跟addu可以互換嗎?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.123.237.64
推
01/12 14:01, , 1F
01/12 14:01, 1F
→
01/12 17:57, , 2F
01/12 17:57, 2F
→
01/12 17:57, , 3F
01/12 17:57, 3F
→
01/12 17:58, , 4F
01/12 17:58, 4F
→
01/12 18:00, , 5F
01/12 18:00, 5F
推
01/12 20:32, , 6F
01/12 20:32, 6F
推
01/12 22:27, , 7F
01/12 22:27, 7F
→
01/13 12:06, , 8F
01/13 12:06, 8F
→
01/13 12:07, , 9F
01/13 12:07, 9F
→
01/14 23:48, , 10F
01/14 23:48, 10F
推
01/26 11:07, , 11F
01/26 11:07, 11F