Опасности для трубопроводов

Мне интересно, может ли кто-нибудь проверить мой ответ на этот вопрос, пожалуйста! На следующей неделе у меня промежуточный экзамен, и ТА еще не опубликовал решения по этому вопросу:

Рассмотрим следующий код сборки 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

person jyim    schedule 20.10.2012    source источник


Ответы (1)


  1. Строка 3 зависит от Строки 2 (за 4 доллара США)
  2. Строка 4 зависит от Строки 3 (за 4 доллара США)
  3. Строка 5 зависит от Строки 3 (для $ 4) и Строки 4 (В WB add: значение будет записано в файл регистров - в первой половине тактового цикла. В то же время MEM sw будет продолжаться, значение будет необходимо - в первой половине тактового цикла. Таким образом, существует условие опасности между этими двумя)
  4. Строка 8 зависит от строки 7
person Joe Roth    schedule 07.10.2014