Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Выбор памяти для быстрого случайного доступа
Форум разработчиков электроники ELECTRONIX.ru > Аналоговая и цифровая техника, прикладная электроника > Цифровые схемы, высокоскоростные ЦС
svedach
Добрый день.
Возникла задача: нужно хранить в памяти довольно большую таблицу (около 20 МБайт) и чтение из нее должно производиться по случайным адресам целым словом (32 бита)... Количество чтений в секунду не менее 5120000 (т.е. читать нужно такое количество раз в секунду по случайным адресам). Система проектируется на ПЛИС Zynq, прогнали тест на готовом модуле с DDR, получили около 4000000 чтений, при этом проц должен будет выполнять функции управления, обмена и т.д. Встал вопрос какую память выбрать вместо DDR.
Поделитесь опытом, пожалуйста...
blackfin
На EDN была статья Design with QDR-IV for high-performance networking systems, в которой сравнивали разные типы памяти:
svedach
Цитата(blackfin @ Jul 20 2017, 09:07) *
На EDN была статья Design with QDR-IV for high-performance networking systems, в которой сравнивали разные типы памяти:


Спасибо за наводку, буду изучать...
MegaVolt
Цитата(svedach @ Jul 20 2017, 08:57) *
Встал вопрос какую память выбрать вместо DDR.
Поделитесь опытом, пожалуйста...
1. Взять 2 DDR продублировать массивы и иметь счастье sm.gif
2. Взять флешку параллельную. Она без проблем потянет нужное количество запросов секунду. Так как требований к записи никаких должна подойти.
3. Взять жменьку обычных статический озушек.
svedach
Цитата(MegaVolt @ Jul 20 2017, 11:45) *
1. Взять 2 DDR продублировать массивы и иметь счастье sm.gif
2. Взять флешку параллельную. Она без проблем потянет нужное количество запросов секунду. Так как требований к записи никаких должна подойти.
3. Взять жменьку обычных статический озушек.

Если можно, про п.2 доскажите подробнее, нашел флешки только со временем доступа около 70 нс, что многовато...
MegaVolt
Цитата(svedach @ Jul 20 2017, 13:15) *
Если можно, про п.2 доскажите подробнее, нашел флешки только со временем доступа около 70 нс, что многовато...
В смысле маловато? 1/70нс > 14 МГц. Вам нужно если я правильно посчитал нули чуть быстрее 5 МГц. Соответственно можно ставить флешку даже на 16 бит а не на 32. Или в чём вопрос?
kumanika
Вот и приходим к PSRAM, она быстрее флеша, стоимость адекватная. Из минусов - ток потребления.
QDR для этих вещей избыточна, она больше для телекомуникаций итд.
Из флеша можно еще посмотреть NOR - у нее рандомное чтение быстрее чем у обычной NAND.
svedach
Простите мне мое невежество, но насколько я разобрался из даташитов (я с флешкой раньше не работал) там чтение выполняется бурстом (т.е. сразу передается страница) и передача этого бурста займет много более 70нс? Или там все-таки можно организовать чтение только слова по случайному адресу за время не более 70нс (с учетем задела на будущее)?
kumanika
В том виде как это написано в документе да, это пакетное чтение.
т.е. время от принятой команды до выставления данных, соответственно для рандома - опять адрес, команда - выставление данных.
Для NOR – Random access times as fast as 55 ns более менее типичное значение.
RobFPGA
Приветствую!

Цитата(svedach @ Jul 20 2017, 08:57) *
Добрый день.
Возникла задача: нужно хранить в памяти довольно большую таблицу (около 20 МБайт) и чтение из нее должно производиться по случайным адресам целым словом (32 бита)... Количество чтений в секунду не менее 5120000 (т.е. читать нужно такое количество раз в секунду по случайным адресам). Система проектируется на ПЛИС Zynq, прогнали тест на готовом модуле с DDR, получили около 4000000 чтений, при этом проц должен будет выполнять функции управления, обмена и т.д. Встал вопрос какую память выбрать вместо DDR.
Поделитесь опытом, пожалуйста...


Вы бы уточнили - кто будет читать - проц или свой аппаратный блок ?
Если проц - то тут может дело не в памяти а в самой шине или алгоритме чтения - попробуйте для начала сравнить скорость чтения по тому же агоритму из внутреннего блока RAM что в Zynq присутствует.

Удачи! Rob.
svedach
По поводу чтения как раз и стоит вопрос - вешать это на проц или писать свою корку... Что такое "алгоритм чтения" не совсем понял, чтение выполняется по случайным адресам из заданного диапазона (пока в ДДР это обычный большой статический массив интов...) и перекладывание прочитанного слова в BRAM в PL по адресу, который инкрементируется. Адрес чтения из большого массива берется из BRAM. Это получается что-то вроде гигантской LUT... Если Вы имеете в виду непосредственный обмен с памятью, то туда не лажу...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2024 Invision Power Services, Inc.