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

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

Отправлено 23 сентября 2003 г. 23:01
В ответ на: Вопрос отправлено M_Pete 23 сентября 2003 г. 22:27

Да.
Конвейер 67хх состоит из следующих фаз:

----- FETCH ---
PG (program address generate)
PS (program address send)
PW (program access ready wait)
PR (program fetch packet receive
----- DECODE ----
DP (Dispatch)
DC (Decode)
----- EXECUTE ----
E1 (command/unit specific)
E2 (command/unit specific)
E3 (command/unit specific)
E4 (command/unit specific)
E5 (command/unit specific)
E6 (command/unit specific)
E7 (command/unit specific)
E8 (command/unit specific)
E9 (command/unit specific)
E10 (command/unit specific)

Первые 4 фазы считывают FETCH-пакеты по 8 инструкций. И не знают пока о том, что там как распараллелено. Их задача просто принять из памяти с заданного адреса 8 32-х битных слов.
Фаза DP разбирает принятый fetch packet на execute packet'ы. И, в зависимости от их количества в принятом FP, ПРИОСТАНАВЛИВАЕТ работу первых четырех фаз конвейера. В результате операции из fetch packet'а выполняются так, как задумал программист. Докучи фаза DP распределяет выделенный execute packet по юнитам, остальным, не задействованным в данном EP выдавая NOP.
Фаза DC - дешифрация команд, уже в юнитах.
Фазы выполнения E1...E10 - тут зависит от конкретных команд. Большинство арифметики и регистровых пересылок (single cycle instructions) выполняются в фазе E1. То есть уже записывают результат. Все 10 фаз выполнения проходят сложные инструкции с IEEE double арифметикой и умножения 32х32 бита - там требуется считывание и запись больших объемов данных. Если все это интересно, почитайте spru189.
Вернусь к переходу. В фазе DC происходит разбор инструкции и доступ к регистрам. В фазе E1 вычисленный адрес перехода известен и происходит модификация адреса фазы PG (он выравнивается на ближайший fetch packet и выделяется смещение требуемого execute packet'а, так как допустим переход в середину FP).
А что-бы пройти новому адресу от PG до очередной E1 - требуется миновать ПЯТЬ стадий конвейера. Это PS, PW, PR, DP и DC. Вот откуда 5 слотов. За это время ожидающие выполнения в тех фазах инструкции выполняются, если их там больше 5-ти было - то лишние flush'атся.

Похожая ситуация и с командой LDW. Обычно командам нужно данное нужно в фазе E1. Однако команда LDW производит записть в регистр назначения в фазе E5! А следовательно, надо выполнить 4 лишних команды, пока LDW пройдет через фазы E2, E3, E4 и E5. Отсюда 4 delay-слота. Правда все проще - никаких flush'ей.
С инструкциями длинной плавучки - еще все более запущено... До 10-ти тактов конвейеризации.

В общем - читайте сначала раздел TMS320C62x/64x Pipeline в SPRU189F, а потом, когда это усвоите, посмотрите в той-же книжке, в разделе TMS320C67x Pipeline те небольшие отличия, которые внесены в конвейер в 67-ых.


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

Ответы


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

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

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

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

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


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

E-mail: info@telesys.ru