Пр о ц е с с о р TMS 3 2 0C4 x
50
П р и м е р 1.2.
В этом примере содержимое двух вспомогательных реги-
стров складывается и результат заносится в регистр повышенной точности.
Следующая инструкция использует один из регистров в качестве адресного.
Команда MPYF вынуждена ждать, пока не завершится цикл считывания опе-
рандов предыдущей команды ADDI, т.е. вводится задержка на один цикл.
Работа конвейера в примере 1.1
Операционные уровни конвейера
PC
| F |
| D |
| R |
| E |
n
LDI
n
+1
MPYF
LDI
n
+2
ADDF MPYF
LDI
n
+2
ADDF MPYF
(nop)
LDI
n
+2
ADDF MPYF
(nop)
(nop)
n
+3 FLOAT ADDF
MPYF
(nop)
Декодирование/генерация адреса
задерживаются до загрузки
нового значения в AR2
AR2 загружен
Фрагмент программы
LDI
7,AR2
; загрузка 7 в AR2
MPYF
*
AR2,R0
; декодирование задерживается на 2 цикла
ADDF
FLOAT
Работа конвейера в примере 1.2
Операционные уровни конвейера
PC
| F |
| D |
| R |
| E |
n
ADDI
n
+1
MPYF
ADDI
n
+2
ADDF
MPYF
ADDI
n
+2
ADDF
MPYF
(nop)
ADDI
n
+3
FLOAT
ADDF
MPYF
(nop)
Декодирование/
генерация адреса
задерживаются до
считывания AR2
AR2 считан
Фрагмент программы
ADDI AR0,AR2,R1
; AR0 + AR2 -> R1
MPYF
++AR2,R0
; декодирование задерживается на 1 цикл
ADDF
FLOAT
I...,40,41,42,43,44,45,46,47,48,49 51,52,53,54,55,56,57,58,59,60,...186