Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Вопрос по SDRAM памяти micron
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Системы на ПЛИС - System on a Programmable Chip (SoPC)
cerg19
Всем доброго время суток. В данный момент пишу для ПЛИС контроллер записи и чтения в SDRAM память фирмы микрон. Так исторически сложилось, что использование готового ядра не представляется возможным. При чтении даташиты для памяти возникло два вопроса, а именно что делают команды PRECHARGE и AUTO REFRESH. Как я понял команду AUTO REFRESH необходимо выполнять каждые 1,7 мкс в не зависимости от того что ты делаешь с памятью. А команду PRECHARGE необходимо выполнять каждый раз при переходе от одной строки к другой при записи или чтении. Скажите пожалуйста, правильно ли я всё понял, а так же хочу спросить можно ли записать данные в ячейки памяти и потом сразу же считать эти же ячейки без выполнения команды AUTO REFRESH.
P.S не знаю точно в какую ветку писать, решил сюда. Извините если промазал
vadimuzzz
Цитата(cerg19 @ Sep 2 2010, 17:48) *
Как я понял команду AUTO REFRESH необходимо выполнять каждые 1,7 мкс в не зависимости от того что ты делаешь с памятью.

да, только цифры странные, обычно для sdram 15us, либо сразу пачкой обновлять, через каждые 64ms
Цитата
А команду PRECHARGE необходимо выполнять каждый раз при переходе от одной строки к другой при записи или чтении.

да
cerg19
Цитата
а так же хочу спросить можно ли записать данные в ячейки памяти и потом сразу же считать эти же ячейки без выполнения команды AUTO REFRESH.


хотелось бы узнать, очень надо
des00
Цитата(cerg19 @ Sep 2 2010, 05:48) *
Как я понял команду AUTO REFRESH необходимо выполнять каждые 1,7 мкс в не зависимости от того что ты делаешь с памятью.

эту команду можно вообще никогда не выполнять, при условии что вы обращаетесь ко всей нужной вам памяти с периодом не реже 64мс.

ЗЫ. AUTO REFRESH это act + pre со счетчиком для инкремента адреса, вы можете сделать свой адаптивный рефрешер памяти, но вот смысл...... %)
cerg19
Цитата
эту команду можно вообще никогда не выполнять, при условии что вы обращаетесь ко всей нужной вам памяти с периодом не реже 64мс.


Тоесть если я попробую считать данные из памяти, которые записал туда секунду назад не выполняя периодически команды AUTO REFRESH то в памяти ничего не будет, тоесть я потеряю данные?
dxp
Цитата(cerg19 @ Sep 3 2010, 12:13) *
Тоесть если я попробую считать данные из памяти, которые записал туда секунду назад не выполняя периодически команды AUTO REFRESH то в памяти ничего не будет, тоесть я потеряю данные?

Каждая страница памяти должна быть "освежена" не реже, чем один раз в 64 мс. Поскольку autorefresh производится внутри и только одну страницу на одну команду (внутри есть счетчик, который является адресом страницы, при каждой команде autorefresh счетчик инкрементируется, по достижении максимального адреса счетчик обнуляется, т.е. имеется wrap around), то единственный способ удовлетворить указанному требованию - это один раз в 64 мс выдать N команд autorefresh (где N - количество страниц в банке). Сразу их выдать пачкой или размазать по всему интервалу - это частное дело автора контроллера SDRAM.

Это гарантирует сохранность данных. Сохранятся ли данные, если секунду не освежать ячейки? Правильный ответ: не гарантируется. Зависит от типа памяти, от условий окружающей среды, от конкретного экземпляра и т.д. К тому же, разные ячейки по-разному и "садятся". Вряд ли кто-то будет заниматься подобным - нужно добиваться, чтобы схема была в режиме, т.е. все условия эксплуатации, указанные в документации, были соблюдены.
cerg19
dxp, спасибо большое, вроде понял, но хотелось уточнить.
Цитата
Каждая страница памяти должна быть "освежена" не реже, чем один раз в 64 мс

Страница это тоже самое что и банк как написано в даташит?
И ещё очень мучает вопрос:
а так же хочу спросить можно ли записать данные в ячейки памяти и потом сразу же считать эти же ячейки без выполнения команды AUTO REFRESH.
Я так понял что при AUTO REFRESH присходит подзаряд конденсаторов ячеек, и если я записал данные в ячейку, они сразу там изменяются, или только после команд AUTO REFRESH. Может спрашиваю глупость, но не селён в архитектуре построения памяти, прошу разьяснить
CaPpuCcino
очень советую топикстартеру почитать Угрюмова "Цифровая схемотехника"
от параграфа 4.7 Динамические запоминающие устройства - базовая структура
до 4.9 Регенерация данных в динамических запоминающих устройствах
сразу станет понятно для чего нужен пречардж и что такое авторефреш
в сети она есть. но советовал бы всё-таки её купить в личную библиотеку, если собирается работать в этой обл.
cerg19
CaPpuCcino, спасибо за наводку
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.