Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Быстрое чтение из DDR3 по AXI4.
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
count_enable
Написал IP AXI4-lite Master, читает из DDR3 по одному 32-бит слову. Память используется как таблица роутинга, нет смысла читать ее burstами. Между ARVALID и RVALID (запрос адреса и приход данных) проходит 17 клоков, частота 100 МГц. Память однопортовая, на шине еще сидит проц, но он остановлен. Возможно ли как-то ускорить чтение? Надо остаться на шине AXI4, т.к. память используется как буфер для ПДП, плюс таблица роутинга (которую читают) записывается и обновляется процессором microblaze. Камень XC6SLX45.
Bad0512
Цитата(count_enable @ Jan 27 2014, 04:43) *
Написал IP AXI4-lite Master, читает из DDR3 по одному 32-бит слову. Память используется как таблица роутинга, нет смысла читать ее burstами. Между ARVALID и RVALID (запрос адреса и приход данных) проходит 17 клоков, частота 100 МГц. Память однопортовая, на шине еще сидит проц, но он остановлен. Возможно ли как-то ускорить чтение? Надо остаться на шине AXI4, т.к. память используется как буфер для ПДП, плюс таблица роутинга (которую читают) записывается и обновляется процессором microblaze. Камень XC6SLX45.

DDR не предназначена для такого использования. Она как раз заточена на большие последовательные посылки. Варианта два - поместить вашу табличку в блочную память (если размер позволяет), либо пользовать внешнюю SRAM для этих целей.

З Ы А вообще довольно странно, что вопрос этот возник у вас сейчас, когда всё уже почти реализовано, а не на этапе изначального проектирования системы.
count_enable
Проблема возникла когда таблицу перенесли из BRAM в DDR3 - появилась потребность в увеличении оной. В блочной, понятно оно летает.

Извините за нубский вопрос, не работал со SRAM "на скорость". Какие там обычные скорости чтения?
Bad0512
Цитата(count_enable @ Jan 27 2014, 15:28) *
Проблема возникла когда таблицу перенесли из BRAM в DDR3 - появилась потребность в увеличении оной. В блочной, понятно оно летает.

Извините за нубский вопрос, не работал со SRAM "на скорость". Какие там обычные скорости чтения?

Скорости для обычной SRAM - в районе 100МГц такт, задержка 2-3 такта.
Есть ещё RLDRAM но это чуть посложнее будет, и подороже.
Напрмер вот.
count_enable
Спасибо за информацию. Я так понимаю, что даже подключив DDR3 через MIG напрямую к своей корке я быстрее одиночные слова читать не смогу?
SM
Цитата(count_enable @ Jan 27 2014, 13:23) *
даже подключив DDR3 через MIG напрямую к своей корке я быстрее одиночные слова читать не смогу?


Максимум, чего можно добиться, это кол-во клоков CL (CAS Latency) + AL (Additive Latency) + 4/5 - и это число не постоянно, оно временами может увеличиваться, если в это время автомат DDR-корки что-то там ждет, например tRP, tWTR, tRFC, или, например, требуется открытие банка перед данным чтением...
Bad0512
Цитата(count_enable @ Jan 27 2014, 16:23) *
Спасибо за информацию. Я так понимаю, что даже подключив DDR3 через MIG напрямую к своей корке я быстрее одиночные слова читать не смогу?

Проблема в том, что в вашем случае адрес меняется почти рандомно, то есть это изменение нельзя предсказать заранее, на этом "перезаряде" адреса и умирает вся производительность.
Плюс к этому любой контроллер (типа MIG, MPMC или самодельный) как правило работают на максимально возможной частоте, соответственно всё что можно там распайплайнить - максимально
распилено регистрами. Отсюда имеем приличную задержку на операциях чтения, зато при потоковой записи получается максимальная скорость и тайминги гарантированно сходятся на приличных частотах.
DDR просто не предназначена для random access.
krux
если очень хочется использовать именно DDR под такую задачу, то для получения хоть какой-то вменяемой производительности придется делать конвейеризацию запросов, кеш, и арбитр доступа к DDR-контроллеру.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.