Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Вопросы по динамической памяти
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему
_alex__
cortex m8
ddr3
1) должна ли частота clock микросхемы ddr3 быть кратна частоте микроконтроллера?
если в приведенной схеме частота ddr3 400МГц, то частота микроконтроллера 800МГц?

2) операции чтения и записи из ddr памяти могут чередоваться как угодно или должна быть какая-то система?(например определенное колличество последовательных операций записи, а потом чтения)

3) не понимаю принцип двойной скорости передачи(два раза за период clock) т.е. по переднему фронту выдается 16бит данных по адресу условно addr, а по заднему фронту addr+1 ? не правильно?

4) регенерация заряда в ячейках памяти происходит целиком внутри микросхемы т.е. не нужно подавать каких-то внешних сигналов для этого? и процесс регенерации как-то нужно учитывать при подаче команд микросхеме?

5) обьясните простым языком зачем нужны выводы DQS1,DQSN1,DQS0,DQSN0,DQM1,DQM0 , что по ним передается, для чего они и как они должны быть синхронизированы с сигналами на других выводах.

6) предположим абсолютно все проводники между микроконтроллером и ddr не создают содержки, правильно ли это? т.е. при трассировке платы не нужно что б какие-то сигналы запаздывали? нужно что б задержка по всем проводникам была абсолютно одинакова?
mantech
Цитата(_alex__ @ Sep 9 2017, 23:40) *


Для начала почитайте:

http://kit-e.ru/articles/circuit/2010_9_135.php

http://compress.ru/article.aspx?id=18761

https://electronix.ru/forum/index.php?act=a...st&id=93850

Плюс доки по вашему камню, который Кортекс А8
И почему бы не воспользоваться доками на референсный дизайн? Они всегда есть у таких камней.

ЗЫ. Тема уже далеко не для начинающих..

Цитата(_alex__ @ Sep 9 2017, 23:40) *
должна ли частота clock микросхемы ddr3 быть кратна частоте микроконтроллера?
если в приведенной схеме частота ddr3 400МГц, то частота микроконтроллера 800МГц?


Возможно но нежелательно.

Цитата(_alex__ @ Sep 9 2017, 23:40) *
операции чтения и записи из ddr памяти могут чередоваться как угодно или должна быть какая-то система?(например определенное колличество последовательных операций записи, а потом чтения)


Как хотите, так и будет, но лучше последовательно, тогда контроллер активизирует Burst mode и скорость в разы выше.

Цитата(_alex__ @ Sep 9 2017, 23:40) *
регенерация заряда в ячейках памяти происходит целиком внутри микросхемы т.е. не нужно подавать каких-то внешних сигналов для этого? и процесс регенерации как-то нужно учитывать при подаче команд микросхеме?


Можете сами регенерировать, но лучше Self refresh.
dimka76
Цитата(mantech @ Sep 10 2017, 10:38) *
Можете сами регенерировать, но лучше Self refresh.


Здравствуйте.
Также имеются ряд вопросов.
1. Как узнать, что микросхема находится в состоянии Self refresh?
2. Пока идет refresh ячейки для записи получаются не доступными. А если у меня имеются
данные для записи, что мне с ними делать ? А если на момент завершения refresh
мои данные окажутся просроченными ?
mantech
Цитата(dimka76 @ Sep 10 2017, 21:24) *
1. Как узнать, что микросхема находится в состоянии Self refresh?


Такие тонкости уже подзабыл, но в большинстве встроенных контроллеров, это делается автоматически в т.ч. в режимах пониж. потребления, т.е. программисту достаточно просто правильно настроить контроллер.
gerber
Цитата(dimka76 @ Sep 10 2017, 21:24) *
Также имеются ряд вопросов.
1. Как узнать, что микросхема находится в состоянии Self refresh?

Зачем вам это знать? Это внутренние дела микросхемы дин. памяти.
Цитата(dimka76 @ Sep 10 2017, 21:24) *
2. Пока идет refresh ячейки для записи получаются не доступными. А если у меня имеются
данные для записи, что мне с ними делать ? А если на момент завершения refresh
мои данные окажутся просроченными ?

Нет, refresh - это периодическое чтение (да, именно чтение, а не запись, что кажется нелогичным) каждой страницы, а по сути просто периодическая активация одного транзистора (gate) на каждой странице, подпитывающего емкостные ячейки памяти. Этот процесс никак не мешает процессам чтения и записи в память.
А надеяться, что дин. память будет равномерно и четко писать данные не стоит, т. к. при переходе в другую страницу перед операциями чтения-записи выполняется её активация (precharge), что занимает какое-то время. Поэтому при работе с ней нужно обеспечить буферизацию (кэширование), чтобы не потерять данные.
mantech
Цитата(gerber @ Sep 10 2017, 23:50) *
А надеяться, что дин. память будет равномерно и четко писать данные не стоит,


Если память задействуется под видеобуфер, то это уже и есть регенерация.
jcxz
Цитата(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 тогда можно отключить. И затрат времени не будет.
dimka76
Цитата(jcxz @ Sep 11 2017, 21:28) *
С DDR я не работал, но для МК с SDRAM автоматически это не делается ни в одном контроллере SDRAM, с которыми я работал.
...............................


Спасибо большое !
Очень хорошо объяснили !
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.