Пр о ц е с с о р TMS 3 2 0C4 x
49
Задержанные переходы BRD
,
BcondD и DBcondD выполняются только
после того, как гарантирована выборка и выполнение трех инструкций, сле-
дующих за командой задержанного перехода. При этом конфликтов конвейера
не возникает.
1.11.2. Конфликты регистров
Данная разновидность конфликтов возникает при считывании или записи
текущей командой регистра, используемого для адресации операнда в следую-
щей команде. В этом случае устройство декодирования не может сгенерировать
адрес операнда до завершения команды, модифицирующей регистр, используе-
мый для адресации. Конфликты регистров поясняются примерами 1 и 2.
П р и м е р 1.1.
Выполним загрузку вспомогательного регистра и ис-
пользуем его в качестве адреса в следующей инструкции. Устройство декоди-
рования вынуждено ждать записи во вспомогательный регистр (выполнения
команды), поэтому декодирование второй инструкции задерживается на два
машинных цикла. Всякий раз, когда задерживается декодирование, выполняет-
ся повторная выборка инструкции из памяти, т.е. команда ADDF выбирается
три раза. Использование разных вспомогательных регистров (если это не нару-
шает логику программы) в инструкциях LDI и MPYF устраняет указанную за-
держку.
Пример
работы конвейера при выполнении команды BRD
Операционные уровни конвейера
PC
| F |
| D |
| R |
| E |
n
BRD
n
+1
MPYF
BRD
n
+2
ADDF
MPYF
BRD
n
+3
SUBF
ADDF
MPYF
BRD
THRE
OR
SUBF
ADDF
MPYF
Нет задержки
выполнения
THREE
PC
Фрагмент программы
BRD THREE
; безусловный переход задержанный
MPYF
; выполняется
ADDF
; выполняется
SUBF
; выполняется
AND
; не выполняется
.
.
THREE
MPYF
; выборка после перехода
I...,39,40,41,42,43,44,45,46,47,48 50,51,52,53,54,55,56,57,58,59,...186