[an error occurred while processing this directive]
по поводу конвейера (+)
(«Телесистемы»: Конференция «Цифровые сигнальные процессоры (DSP) и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено SM 03 марта 2003 г. 18:39
В ответ на: спасибо за развернутый ответ, если не надоело - продолжу обсуждение отправлено yes 03 марта 2003 г. 17:14

(если это то, о чем я думаю). Конвейер у 6ххх незащищенный. В отличие от 55хх или от того-же intel'а. Это означает то, что он никогда не останавливается по причинам, связанным с выполнением команд и их последовательностью. Даже команда перехода не очищает его и не останавливает, а выполняется еще 5 команд в её delay-слотах. Наличие latency или еще чего-либо тоже не останавливает конвейер. За всем следить надо самому. Вызовов подпрограмм как таковых нет вообще. Единственное что может затормозить конвейер - это кеш-миссы и задержки в доступе к некэшируемому адресному пространству.
Вся разница лишь в том, что разные команды "проходят" по конвейеру разное количество стадий. Большинство из них уже на стадии E1 оказываются выполненными. Другим-же (load например) надо пройти все стадии до E5 - отсюда задержка в 4 delay-слота по записи результата.

Если быть точным - то конвейер работает так:
1-е четыре стадии - PG, PS, PW, PR - "продвижка" происходит 1 раз на 1 фетч пакет. Если фетч пакет содержит несколько инструкций - то этот кусок останавливается на время, соответствующее количеству екзекьют-пакетов в фетч пакете.
DP разбирается, откуда начинается следующий екзекьют-пакет, DC распределяет по юнитам. Тут продвижка идет каждый такт.
E1...En исполняют инструкцию уже в юнитах. То есть на самом деле это уже 8 отдельных конвейеров в разных юнитах, но имеющих единую синхронизацию, и останавливающихся одновременно (в случае кеш-миссов). Причем в разных юнитах эти конвейеры разной длины.

Команда перехода в фазе E1 меняет адрес для фазы PG. Отсюда 5 тактов задержки - от PG до E1. Команда умножения исполняется за две фазы конвейера - E1 и E2 - один такт задержки до использования результата в фазе E1. Загрузка из памяти - все с E1 до E5, то есть 4 такта задержки.

Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru