|
DRAM,DDR,DDR2...SDRAM, сколько AutoRefresh подряд можно? |
|
|
|
Jun 7 2018, 13:12
|
Гуру
Группа: Свой
Сообщений: 2 076
Регистрация: 10-09-08
Пользователь №: 40 106
|
На все типы памяти рекомендуют каждые 7.8125 мкс выполнить одну команду AUTO REFRESH. А в качестве альтернативы предлагают : на SDRAM: Цитата Alternatively, to satisfy the refresh requirement a burst refresh can be employed after every tREF period by issuing consecutive AUTO REFRESH commands for the number of rows to be refreshed at the minimum cycle rate (tRFC). на DDR : Цитата To allow for improved efficiency in scheduling and switching between tasks, some flexibility in the absolute refresh interval is provided. A maximum of eight AUTO REFRESH commands can be posted to any given DDR SDRAM, meaning that the maximum absolute interval between any AUTO REFRESH command and the next AUTO REFRESH command is 9 × tREFI(= tREFC). на DDR2: Цитата ничего не предлагают Получается : для SDRAM можно дать сразу хоть все 8192 команды AUTOREFRESH пачкой каждые 64ms? для DDR не более 8-ми команд AUTOREFRESH подряд и следующие восемь не раньше чем через 8*7.8125 мкс? для DDR2 будь добр дать одну команду AUTOREFRESH каждые 7.8125 мкс? безальтернативно! Подскажите, люди добрые, правильно ли я понимаю?
|
|
|
|
|
Jun 7 2018, 13:58
|
Гуру
Группа: Свой
Сообщений: 2 076
Регистрация: 10-09-08
Пользователь №: 40 106
|
Цитата(jcxz @ Jun 7 2018, 16:22) В каком порядке это делать - фиолетово. А как же быть с этим? Цитата A maximum of eight AUTO REFRESH commands can be posted to any given DDR SDRAM Хочу выдать 8192 команды AUTOREFRESH (каждая 64нс) за 8192*64нс=524.288мкс. И следующие 64мс-524.288мкс=63.475...мс делай чего угодно! И с SDRAM это вроде должно работать. А с DDR и DDR2 непонятно , прокатит, нет?
|
|
|
|
|
Jun 7 2018, 14:51
|
Гуру
Группа: Свой
Сообщений: 2 076
Регистрация: 10-09-08
Пользователь №: 40 106
|
Цитата(controller_m30 @ Jun 7 2018, 17:39) Т.е. для DDR точно не прокатит отдать 8192 команды сразу, а оставшиеся 63.475...мс делать что угодно. Вот и я склоняюсь к такому мнению. Но решил все же переспросить. А то "курю" тут разные даташиты в одиночестве. Уже аж мозХ "плавится". А на DDR2, получается, даже 8-мь подряд идущих команд AUTOREFRESH нельзя! Давай точно через каждые tREFI команду AUTOREFRESH и не выёживайся! Я прав?
|
|
|
|
|
Jun 7 2018, 16:23
|
Местный
Группа: Участник
Сообщений: 356
Регистрация: 24-02-09
Пользователь №: 45 309
|
Для DDR2 может быть и можно. В таблице 12 (для MT47H128M8) указаны только два параметра: минимальное время между двумя командами Refresh (75 ns), и среднее периодическое (max 7.8 us). Максимальный интервал для двух Refresh не указан нигде в тексте, и на диаграммах его тоже нет. Можно сделать вывод, что достаточно соблюдать только минимальный интервал между Refresh, и повторять это дело каждые 64ms. А остальное на усмотрение пользователя.
Сообщение отредактировал controller_m30 - Jun 7 2018, 16:28
|
|
|
|
|
Jun 7 2018, 16:58
|
Гуру
Группа: Свой
Сообщений: 2 076
Регистрация: 10-09-08
Пользователь №: 40 106
|
Цитата(controller_m30 @ Jun 7 2018, 19:23) Для DDR2 может быть и можно. Можно что? Только 8-мь или 8192 команды AUTOREFRESH подряд? Это что же получается, для SDRAM-можно 8192 для DDR только 8 для DDR2 опять 8192 Бред какой-то!
|
|
|
|
|
Jun 7 2018, 17:10
|
Местный
Группа: Участник
Сообщений: 356
Регистрация: 24-02-09
Пользователь №: 45 309
|
А вот для продуктов Hynix и Allianse - можно только 8 подряд AutoRefresh! Hynix, AllianceПолучается, что либо Micron-овцы забыли указать об ограничении, либо в их продукции этого ограничения действительно нет. Но поскольку у других производителей оно есть, то для лучшей взаимозаменяемости стоит делать такой контроллер памяти, который это учитывает. Цитата(zombi @ Jun 7 2018, 19:58) Можно что? Только 8-мь или 8192 команды AUTOREFRESH подряд? Из Micron-овского даташита следует, что можно 8192 подряд
Сообщение отредактировал controller_m30 - Jun 7 2018, 17:18
|
|
|
|
|
Jun 7 2018, 17:58
|
Гуру
Группа: Свой
Сообщений: 2 076
Регистрация: 10-09-08
Пользователь №: 40 106
|
Цитата(controller_m30 @ Jun 7 2018, 20:10) А вот для продуктов Hynix и Allianse - можно только 8 подряд AutoRefresh! Ну тогда всё логично получается. SDRAMу можно хоть все 8192 сразу "выплюнуть", а начиная с DDR,DDR2/3/4 и тд можно только 8-мь команд AUTOREFRESH подряд "скормить" чипу и не более за период 9*tREFI. То, что я и пытался выяснить. А то, что у MICRONа чего то там типа можно - скорее всего просто скопипастили из своих же документов не полностью
|
|
|
|
|
Jun 7 2018, 18:17
|
Профессионал
Группа: Свой
Сообщений: 1 214
Регистрация: 23-12-04
Пользователь №: 1 643
|
Приветствую! Цитата(zombi @ Jun 7 2018, 20:58) Ну тогда всё логично получается. SDRAMу можно хоть все 8192 сразу "выплюнуть", а начиная с DDR,DDR2/3/4 и тд можно только 8-мь команд AUTOREFRESH подряд "скормить" чипу и не более за период 9*tREFI. То, что я и пытался выяснить. А то, что у MICRONа чего то там типа можно - скорее всего просто скопипастили из своих же документов не полностью А мне кажется что 9*tREFI. это максимальный период между бурстами (по 8 штук) авторефреш. А вот минимального времени между бурстами явно не укзанно. Тоесть может можно сделать бурст 8 штук - потом nop чтобы DLL не уплыло а потом опять 8 штук бурст? Удачи! Rob.
|
|
|
|
|
Jun 7 2018, 18:42
|
Гуру
Группа: Свой
Сообщений: 2 076
Регистрация: 10-09-08
Пользователь №: 40 106
|
Цитата(RobFPGA @ Jun 7 2018, 21:17) А вот минимального времени между бурстами явно не укзанно. Тоесть может можно сделать бурст 8 штук - потом nop чтобы DLL не уплыло а потом опять 8 штук бурст? Дык, добавить NOP между бустами не проблема абсолютно! (тем более что там этих NOPов...(после команды AUTOREFRESH) аж на 75 нс! да хоть на 105 , да хоть на 205нс) дохрена и больше! Хочется понять логику работы. Почему максимально допустимое количество последовательно поданных команд AUTOREFRESH для SDRAM и для DDR/2/3/4... так радикально отличается.
|
|
|
|
|
Jun 12 2018, 12:48
|
Местный
Группа: Участник
Сообщений: 356
Регистрация: 24-02-09
Пользователь №: 45 309
|
В статьях о BIOS компьютера, упоминается опция "Refresh Queue Depth" (Глубина Очереди Обновления), и возможные параметры: 0, 4, 8, 12. Эта опция появилась ещё во времена EDO RAM (1994 год). Из пояснений следует, что уже тогда в чипах имелся конвейер регенерации, глубиной >4 команд. Загруженный в него пакет Refresh-команд, автоматически выполнялся через равные промежутки времени, принятые для регенерации. Если конвейер DDR2 наследует эту технологию, тогда понятно, почему нужно ждать 9 циклов tRFC - внутренний автомат, с промежутками 15 микросекунд (или сколько там положено), регенерирует заданные строки. И отдавать ему большее количество команд на регенерацию бессмысленно, т.к. они "потеряются", не поместившись в конвейер. Пример статьи.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|