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

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

Отправлено SM 12 апреля 2003 г. 11:15
В ответ на: И ещё вот: а как происходит кэширование в L2? Как с какого адреса внешнего озу его дма заполняет, на опережение что ли работает? Насколько я понял за эти 4 такта (L2->L1) никакие инструкции выполнять нельзя (ядро отдыхает). отправлено sdy 12 апреля 2003 г. 03:52

4 такта занимает путь целого fetch-пакета от L2 до ядра. В это время естественно процессор ничего не выполняет - у него него же нету инструкции, она еще в L2 и не дошла в ядро. Он просто не знает, что выполнять.
L2 работает совершенно стандартно. Когда кеш-контроллер обнаруживает кэш-мисс, то есть отсутствие чего-либо в кеше, то он ищет свободную строку кеша. Если находит, загружает ее (всю строку) из внеш.памяти. Если свободных строк нету, но кеш-контроллер выбирает при помощи LRU-алгоритма строку с самыми "не нужными и старыми" данными, если они dirty, то скидывает их в внеш. память, и грузит в эту строчку.
Адрес делится следующим образом (читайте кстати спру, там все-все рассказано, я что - переводчик что-ли?). Для режима 64 кб L2 кеш или 48 кб - биты 31..15 попадают в тег, биты 14..5 - set index, остальные - смещение в строке.

Кеш работает когда как. Если программа написана без параллельностей, то на опережение на 1 фетч-пакет(размер строки 2 фетч-пакета).
ну а если ты понаписал инструкций по 256 байт каждая длиной (8 в параллель) - то какой уж там он успеет за тобой - память-то тормознее из которой надо эти пачки инструкций в кеш переливать.

Про дма - очень просто оно работает: кеш-контроллер посылает контроллеру дма запрос - что с такого-то адреса из внеш. памяти надо переслать столько-то байт туда-то в L2. И он пересылает. L1 получает эти данные параллельно с L2. В отличие от шарков ДМА каналы тут все могут иметь и в качестве источника, и в качестве приемника любое место адресного пространства. Для 67хх используется дма-канал с нулевым (urgent) приоритетом. Для 64хх я уже говорил - этот приоритет можно уменьшить и при надобности какую либо свою дма-пересылку поставить приоритетом доступа выше процесоора.

Еще раз - читай спру190д "TMS320C621x/C671x/C64x Two-Level Internal Memory". Я все пересказать не в состоянии.

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

Ответы


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

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

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

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

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


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

E-mail: info@telesys.ru