Сборка MIPS останавливается и пересылается, когда значение регистра не изменено на предыдущем шаге


1

Я перейду к конвейерной обработке и остановкам с архитектурой MIPS, и есть пара вещей, в которых я не уверен.

Если две смежные инструкции, такие как первые две из каждого набора, приведенного ниже, обе используют один и тот же регистр, но первая на самом деле не модифицирует этот регистр, есть ли остановка? Как если бы добавить и сначала addi второго набора каждый измененный $t0, тогда да, вы хотели бы киоск, потому что вы хотели бы обновить $t0 значение, которое будет использоваться в следующей инструкции. Но здесь результат следующей инструкции фактически не будет затронут, так как $t0 не меняется Так нет ли в этом случае ларька? Или это происходит из-за того, что регистр используется, несмотря на то, записывается он или нет?

И в первом сете это первый addi между надстройкой и вторым addi достаточно промежутка, чтобы не нуждаться в стойле $t1 использовать? Или вам понадобится пересылка, чтобы помочь там?

add $t1, $t0, $t0
addi $t2, $t0, 1
addi $t3, $t1, 1

addi $t1, $t0, 1
addi $t2, $t0, 2
addi $t3, $t0, 3
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.