Пр о ц е с с о р TMS 3 2 0C4 x
47
Команда последовательно проходит все уровни конвейера, полное перекрытие
в конвейере наблюдается в цикле
m
, когда все четыре устройства конвейера ра-
ботают параллельно.
Когда обработка инструкции на текущем уровне завершена, а следующий
уровень не готов к ее принятию, имеет место
конфликт конвейера
. Устройство
текущего уровня ждет, пока устройство следующего уровня не завершит вы-
полняемую операцию. При разрешении конфликтов используются приоритеты,
назначенные каждому функциональному устройству конвейера (по убыванию):
•
ПДП (DMA), если сконфигурирован с приоритетом выше, чем у CPU;
•
выполнение (E);
•
чтение (R);
•
декодирование (D);
•
выборка (F);
•
ПДП (DMA), если сконфигурирован с приоритетом ниже, чем у CPU.
Несмотря на то, что каждая инструкция обрабатывается конвейером в те-
чение четырех циклов, устройство выполнения E при отсутствии конфликтов
конвейера в каждом цикле выполняет очередную команду, т.е. можно считать
команды одноцикловыми. Время выполнения команд в прил.
В
указано именно
при отсутствии конфликтов конвейера.
Конфликты конвейера незаметны для пользователя, но приводят к сни-
жению быстродействия процессора. Большинства конфликтов конвейера мож-
но избежать, если при программировании анализировать работу конвейера, вы-
полняющего последовательности команд программы.
Конфликты конвейера
процессора TMS320C4x могут быть сгруппирова-
ны в три категории:
•
конфликты переходов
включают большинство инструкций, модифицирую-
щих программный счетчик PC;
•
конфликты регистров
появляются в случае считывания/записи текущей ко-
мандой регистров, которые используются для генерации адреса операнда в
следующей команде;
•
конфликты памяти
возникают, если в машинном цикле число одновремен-
ных обращений к памяти превышает допустимое.
Пример конвейерного выполнения команды
Операционные уровни конвейера
Циклы
| F |
| D |
| R |
| E |
m
-3
W
–
–
–
m
-2
X
W
–
–
m
-1
Y
X
W
–
m
Z
Y
X
W
m
+1
–
Z
Y
X
m
+2
–
–
Z
Y
m
+3
–
–
–
Z