Цитата(mantech @ Sep 11 2017, 02:54)

Такие тонкости уже подзабыл, но в большинстве встроенных контроллеров, это делается автоматически в т.ч. в режимах пониж. потребления, т.е. программисту достаточно просто правильно настроить контроллер.
С DDR я не работал, но для МК с SDRAM автоматически это не делается ни в одном контроллере SDRAM, с которыми я работал.
В них во всех это надо сделать вручную (программно), подав спец. последовательность команд через контроллер SDRAM (или ногодрыгом).
"Self refresh" полезен тем, что содержимое SDRAM сохраняется неопределённо долго при отсутствии активности со стороны контроллера SDRAM (например во сне МК).
Цитата(mantech @ Sep 11 2017, 04:11)

Если память задействуется под видеобуфер, то это уже и есть регенерация.
Если только видеобуфер занимает весь объём памяти. В противном случае (что чаще всего), контроллер SDRAM (и думаю что и DDR) периодически выполняет циклы регенерации, вкрапляя их в штатный обмен по таймеру регенерации.
Цитата(gerber @ Sep 11 2017, 03:50)

Зачем вам это знать? Это внутренние дела микросхемы дин. памяти.
Это не "внутренние дела". "Self refresh" можно активировать только принудительно, подачей спец. последовательности команд. И находясь в этом режиме, память не может осуществлять операции чтения/записи по интерфейсу. Она при этом вообще не реагирует ни на какие сигналы кроме сигнала CKE.
Цитата(gerber @ Sep 11 2017, 03:50)

Этот процесс никак не мешает процессам чтения и записи в память.
Вообще-то немного мешает. Контроллер SDRAM должен периодически регенерировать те строки, которые не были регенерированы штатными операциями чтения/записи за период регенерации (либо вообще все строки). И это занимает некоторое время, приостанавливая выполнение штатных операций чтения/записи по интерфейсу.
Если
все строки данной памяти задействованы например под видеобуфер и периодически, не реже чем 1 раз за период регенерации, считываются, то автоматическую регенерацию контроллером SDRAM тогда можно отключить. И затрат времени не будет.