Мне интересно, может ли кто-нибудь подтвердить мой ответ на этот вопрос, пожалуйста! На следующей неделе у меня есть среднесрочный период, и у TA пока нет ответов на этот вопрос:Опасности трубопровода
Рассмотрите следующий код сборки MIPS и определите все опасности трубопровода в предположении, что оптимизация трубопроводов не реализована, включая пересылку. Первый столбец чисел - это номера строк, на которые вы можете ссылаться в своих объяснениях.
1. addi $3, $0, 100
2. addi $4, $0, 0
3. loop: addi $4, $4, 4
4. add $5, $4, $3
5. sw $5, 100($4)
6. addi $1, $1, -1
7. slt $2, $4, $3
8. bne $2, $0, loop
9. jr $31
Перегруппируйте инструкции по сокращению числа киосков до минимума
Мой ответ:
Переход от линии 2 строки 3 (от внешнего контура внутрь), существует опасность, потому что $ 4 необходимо в строке 3 для того, зависит от значения, установленного в $ 4 на линии 2.
линия 4 имеет опасность, поскольку она зависит от значения, установленного для $ 4 в строке 3.
Строка 5 имеет опасность, потому что это зависит от значения, установленного за $ 4 в строке 4.
линия 8 имеет опасность, потому что это зависит от значения, установленного за $ 2 в строке 7.
Переупорядоченные инструкции :
addi $4, $0, 0 2
addi $3, $0, 100 1
loop: addi $4, $4, 4 3
addi $1, $1, -1 6
add $5, $4, $3 4
slt $2, $4, $3 7
sw $5, 100($4) 5
bne $2, $0, loop 8
jr $31 9