Я перейду к конвейерной обработке и остановкам с архитектурой 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
источник