реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
nmurzin
сообщение Feb 7 2011, 14:09
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 94
Регистрация: 24-11-10
Из: г.Зеленоград
Пользователь №: 61 141



Здравствуйте.

Делаю общение с DDR2 на Cyclon3.

Создаю HPC2 мегафункцию, смотрю настройки.


На первой вкладке визарда есть кнопочка <<Modify Parameters>> которая открывает диалог <<Preset Editor>>
В этом диалоге показана таблица с параметрами памяти и там присутствует параметр Memory burst length.

Для HPC2 мегафункции этот Memory burst length может быть равен только 4.

На последней вкладке визарда есть параметр Local Maximum Burst Count.
Local Maximum Burst Count рекомендовано ставить равным 64.

Кто такие Memory burst length и Local Maximum Burst Count ?
Как они между собой соотносятся ?
Go to the top of the page
 
+Quote Post
Cordroy
сообщение Feb 7 2011, 15:28
Сообщение #2


Участник
*

Группа: Свой
Сообщений: 65
Регистрация: 13-09-10
Из: Israel
Пользователь №: 59 464



Цитата(nmurzin @ Feb 7 2011, 17:09) *
Кто такие Memory burst length и Local Maximum Burst Count ?
Как они между собой соотносятся ?


Memory burst - это сколько слов передаются подряд на шине памяти, физической, к чипу памяти; считая подьем и спад клока.

Local Maximum Burst Count - это сколько слов подряд (без пропусков) вы можете передать из своей логики (со своим клоком) в контроллер памяти (чтобы он потом их ресинхронизовал и отправил в чип памяти).
Значение зависит от глубины буффера контроллера, который синхронизирует локальное обращение (из логики) к частоте внешней шины (частота клока чипа памяти).
Go to the top of the page
 
+Quote Post
nmurzin
сообщение Feb 8 2011, 07:29
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 94
Регистрация: 24-11-10
Из: г.Зеленоград
Пользователь №: 61 141



Правильно ли я понял, что прочитать из памяти например целиком строку
за одну транзакцию невозможно ?
Go to the top of the page
 
+Quote Post
Cordroy
сообщение Feb 8 2011, 08:16
Сообщение #4


Участник
*

Группа: Свой
Сообщений: 65
Регистрация: 13-09-10
Из: Israel
Пользователь №: 59 464



Цитата(nmurzin @ Feb 8 2011, 10:29) *
Правильно ли я понял, что прочитать из памяти например целиком строку
за одну транзакцию невозможно ?


Прочитать "как есть", целиком - нельзя, потому как после команд чтения память требует precharge на тот же банк откуда было чтение.
см.:
датащит Микрона , страница 89 и далее.

Но можно перемежать банки и делать precharge заранее на следующий банк, читая из текущего - получаем непрерывный burst, вплоть до какого-нибудь глобального события (запись или рефреш на всю память).

см. также:
страница Вики о DRAM.

В принципе, всем этим должен заниматься низкоуровневый контроллер (тот же HPC2).
На верхнем, локальном, уровне важно только стараться не делать коротких транзакций - т.е. если читать откуда-то, то много.
Go to the top of the page
 
+Quote Post
nmurzin
сообщение Feb 8 2011, 08:18
Сообщение #5


Частый гость
**

Группа: Участник
Сообщений: 94
Регистрация: 24-11-10
Из: г.Зеленоград
Пользователь №: 61 141



Кажется понял.

В DataSheet на временной диаграмме записи они дергают burstbegin
через каждые два слова двойной разрядности.
В результате за один строб burstbegin чипу памяти будет передано 4 слова.
Наверное эти 4 слова и есть Memory burst length.

Те Memory burst length = 4 означает, что я должен дергать burstbegin через каждые два слова двойной разрядности.
Значит значение сигнала local_size всегда должно быть равно 2.

Но ведь мне ни кто не запрещает дергать burstbegin столько раз сколько мне нужно,
судя по временной диаграмме обмен с памятью в этом случае будет не прерывным,
а длина этого обмена будет гораздо болше чем 4.
Go to the top of the page
 
+Quote Post
Cordroy
сообщение Feb 8 2011, 08:32
Сообщение #6


Участник
*

Группа: Свой
Сообщений: 65
Регистрация: 13-09-10
Из: Israel
Пользователь №: 59 464



Цитата(nmurzin @ Feb 8 2011, 11:18) *
Те Memory burst length = 4 означает, что я должен дергать burstbegin через каждые два слова двойной разрядности.
Значит значение сигнала local_size всегда должно быть равно 2.


Да; зависит еще от типа контроллера: Full / Half.

Цитата(nmurzin @ Feb 8 2011, 11:18) *
Но ведь мне ни кто не запрещает дергать burstbegin столько раз сколько мне нужно,
судя по временной диаграмме обмен с памятью в этом случае будет не прерывным,
а длина этого обмена будет гораздо болше чем 4.


Да, непрерывным (до рефреша) - при обращении к последовательным адресам.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 15th July 2025 - 00:41
Рейтинг@Mail.ru


Страница сгенерированна за 0.02252 секунд с 7
ELECTRONIX ©2004-2016