Пр о ц е с с о р 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
I...,37,38,39,40,41,42,43,44,45,46 48,49,50,51,52,53,54,55,56,57,...186