[an error occurred while processing this directive]
Если хотите разобраться по настоящему - начните с DRAM просто
(«Телесистемы»: Конференция «Цифровые сигнальные процессоры (DSP) и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено -=ВН=- 09 декабря 2004 г. 21:16
В ответ на: про SDRAM где толково написано отправлено nightfox 09 декабря 2004 г. 16:01

начните с DRAM просто.
Принцип один и тот же. В SDRAM только все синхронно делается, по клоку, и организован конвейер. Да счетчик адресов строк для регенерации запихали внутрь м.с.
Да при burst'е не нужно на каждое слово генерировать извне адрес столбца, вместе с CAS. Тоже внутрь запихали счетчик столбцов, записываемый, снаружи естественно, командами read,write.
А так - команда активации аналог начала цикла обращения в обычной DRAM, а начинается он там с установки адреса строки и генерации RAS.
В обычной DRAM далее работа происходит с ячейками выбранной строки, в течении всего времени RAS активен. А конкретные ячейки выбираются адресом столбца, сопровождаемым сигналом CAS. Причем работа на самом деле не с самими запоминающими ячейками. А с ячейками некоего буфера, размером в строку. В DRAM информация-то хранится на емкостях, к-рые имеют свойство разряжаться. И периодически нужно поддерживать требемое состояние запоминающих емкостей. Вот при любом обращении это и происходит. Инф. с запоминающих ячеек всей выбранной строки сравнивается с порогом, больше - 1, меньше - 0. Сравнение это происходит при выборке строки, по сигналу RAS. А результат сравнения записывается в буфер размером в строку. В конце цикла весь строчный буфер переписывается опять в запоминающие ячейки. В цикле может быть обращение только к одной ячейке, но восстановление информации, т.е. восстановление заряда на емкостях, произойдет для всех ячеек этой строки. Но может и не с одной ячейкой работа в одном цикле RAS происходить, а с несколькими. Т.к. они все в одной строке, а она уже выбрана, то достаточно менять только адреса столбцов, каждый адрес столбца сопровождается сигналом CAS (в sdram аналог этого дела именуется burst-вым обменом).
Восстановление заряда - регенерация, refresh.
Она происходит и при обычном обращении и есть спец. циклы регенерации.
В обычной DRAM цикл кончается с окончанием RAS. В SDRAM для этого служит команда precharge.
Можно, для простоты, рассматривать команду активизации началом генерации некоего внутреннего сигнала RAS, команду precharge - концом генерации.
А между 2-мя этими моментами работа идет с выбранной строкой, находящейся в буфере. Отсюда и максимальная длина burst'а. Равна размеру строки, числу столбцов в матрице.
Спец. циклы регенерации - циклы autorefresh.
Максимально возможный интервал между регенерацией отдельных строк, т.е. между циклами autorefresh тоже как в обычной dram.
Период регенерации (64мс), деленный на число строк в матрице.
Весь запоминающий массив, исходя частично из регенерационных соображений, бывает разбит на несколько матриц. Называемых банками.
Одинакового размера. Вот число строк в матрице - это число строк как раз в одной такой матрице, в одном банке.
При регенерации регенирируется соотв. строка во всех банках.
В результате, например, в памяти с 4-мя банками регенируются сразу 4 строки, по одной на банк. Если бы память такого же объема была организована как один банк, одна матрица, то циклов регенер. на период было бы в 4 раза больше. В четыре раза чаще они бы мешали нормальным обращениям.
Спец. циклы регенерации нужны, т.к. ориентироваться только на регенерацию и при рабочем обращении не всегда возможно. Программы нужно хитрые писать.

Возможность работы с ячейками одной, выбранной строки, как раз и используется при burst'вом обмене.
Причем разработчики sdram решили облегчить жизнь потребителям.
Запихали в микросхему счетчик столбцов. Грузится он раз, по команде чтения-записи. А дальше инкрементируется на каждый клок.
В общем и регенерацией и burst-ами и прочим в процессорах заведует контроллер SDRAM. Ваше дело только правильно его зарядить. Указать организацию памяти, период регенер., длину burst'а, CAS latency (т.е. глубину конвейера).
Выбрать режим, соместимый и с использ. памятью и с контроллером, короче.
А дальше обращаетесь как к обычной памяти. При этом держите в уме, что раз в сколько-то микросекунд автоматически выполняется цикл регенерации, т.е. у Вас отжирается время:-)



Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru