Перейти к содержанию
    

Помогите определиться с памятью - SRAM или DRAM

хотя я уже намекал на то, что в цикл перебора памяти должен быть включен анализ адреса, то есть скорость считывания из памяти получится существенно меньше.

 

Во-первых, если использовать burst-режим, то процессор вообще ничем не будет занят, надо только отмерить необходимое количество тактов до момента остановки чтения. Во-вторых - если адреса перебирать вручную, то цикл перебора 120ти адресов надо бы развернуть, чтобы не было оверхеда.

 

Блоху подковать можно. Это научный факт.

Но вот целесообразность этого действия лучше всего объясняют психиатры.

 

Намекаете, что тут у кого то в мозгах непорядок? Так Вы не угадали, это только у Вас проблемы с галлюцинациями - читаем ниже:

 

Чисто по деньгам. Поинтересуйтесь, почем разъем для втыкания вашей памяти в плату.

Насколько я припоминаю он маленько дороже какого-нибудь арма средней руки вместе с памятью а придачу...

 

Разве тут кто-то говорил о разъеме? Микросхема (не модуль) SDRAM запаивается непосредственно на плату. Если Вам привиделось, что тут говорили об установке целой планки - надо бы Вам у подходящего специалиста указанного Вами профиля проконсультироваться, может пора принимать меры ;)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Во-первых, если использовать burst-режим, то процессор вообще ничем не будет занят, надо только отмерить необходимое количество тактов до момента остановки чтения. Во-вторых - если адреса перебирать вручную, то цикл перебора 120ти адресов надо бы развернуть, чтобы не было оверхеда.

Второе принимается, первое как?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Второе принимается, первое как?

 

Ну я понимаю, 20 лет назад РУшки не умели сами перебирать адреса. Мир изменился ;)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Мир изменился ;)

Буду знать :)

Но речь не об этом.

Как "надо только отмерить необходимое количество тактов до момента остановки чтения."

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как "надо только отмерить необходимое количество тактов до момента остановки чтения."

 

Например - таймером ;)

 

Можно в прерывании прекратить чтение. Можно еще ножку CKE завести на Output Compare и убрать вопросы борьбы с джиттером.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Например - таймером

Ну, compare вроде катит.

Потому что прерывания ... хм ... Проще уж новое семейство контроллеров изучить :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Потому что прерывания ... хм ... Проще уж новое семейство контроллеров изучить

 

Мда. Не ожидал от Вас. Чуть сложнее, чем спичкой в зубах поковыряться, и все, лапки к верху :(

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Господа, позвольте мне дилетанту пофилософствовать. Я, не разбирающийся в тонкостях работы SDRAM и в тонкостях работы ARM могу методами исключения и логикой выдвинуть следущие гипотезы:

 

Чем крут контроллер SDRAM в ARM?

 

1. Какие преимущества предоставляет пользователю? Думается мне, что он позволяет не дрыгая ногами простой командой указать адрес и считать оттуда. Остальное - всякого рода фенечки, вроде настройки таймингов и пр.

2. Все виды регенерации происходят автоматически, избавляя от этой головной боли программиста. ТО бишь контроллер сам следит чтобы информация регулярно обновлялась. То есть если сталкиваются интересы немедленного чтения и последней возможности регенерировать ряд, то контроллер выбирает последнее. А следовательно, возникают ситуации, когда нужно прочитать или записать байт, а контроллер делает это с опозданием, о чем пользователь не догадывается.

Считаю что в этом предположении я прав, ибо если бы существовал универсальный алгоритм по которому и волки сыты и овцы целы, то бишь в любой момент времени можно прочесть сколь угодно длинный блок информации и при этом данные сохранят целостность, то этот алгоритм мне уже предложили бы здесь. Ведь среди доводов в пользу АРМ я слышал все, кроме его высокой скорости. А если не в скорости дело, то как бы ни работал контроллер SDRAM, его можно эмулировать программно, потервя при этом лишь в скорости, не так ли?

 

Другое дело, если имеется конкретная задача, которая как ребус имеет решение, не универсальное, применимое лишь к ней, но работоспособное. Например, применительно к моей задаче у меня вырисовывается решение, в котором данные будут записаны не последовательнов одной строке, а в разных строках. Да, проиграю в скорости, для меня это не важно, но зато буду чаще обновлять ряды. Разве может к этому решению прийти ограниченный контроллер? Нет.

 

И вообще, всю эту беседу можно сравнить с рекомендацией использовать С вместо ассемблера, мол, компилятор сделает все за вас. Но всем известно, что полную власть над камнем имеет лишь тот, кто общается с ним на ассеммблере, и даже программы которые невозможно написать без использования С ввиду их сложности часто содержат в себе ассемблерные вставки. То же самое и здесь, мне предлагают АРМ, который фактически будет общаться с памятью на высоком уровне, тогда как ногодрыганьем можно рассчитать все нюансы.

 

В общем, как написано в аватарке у Rst7 про мозг - "use it"

ИМХО

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Чуть сложнее, чем спичкой в зубах поковыряться, и все, лапки к верху :(

Нет, просто нужно развиваться по спирали :)

Опять на ассемблер, чтобы попадать прерыванием точно в нужное количество циклов, при этом запрещать все прочие прерывания - т.е. вместо свободы залезть опять добровольно в тюрьму самоограничения ресурсов - оно надо?

Я думаю, что вы то согласны с тем, что ценового прессинга на самом деле нет?

 

... Но всем известно, что полную власть над камнем имеет лишь тот, кто общается с ним на ассеммблере, и даже программы которые невозможно написать без использования С ввиду их сложности часто содержат в себе ассемблерные вставки...

Вы тоже не прочь пофлудить, как я вижу :)

Все, что вы написали, справедливо, если только у Вас цель - "получить полную власть", а не быстро сделать проект, который впоследствии можно использовать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Опять на ассемблер, чтобы попадать прерыванием точно в нужное количество циклов, при этом запрещать все прочие прерывания - т.е. вместо свободы залезть опять добровольно в тюрьму самоограничения ресурсов - оно надо?

 

Да ладно Вам. ЗубовВолков бояться - в ротлес не даватьходить :)

 

Я лично уже давно даже такие вещи на Си пишу, ну так уже лень ассемблер расчехлять, глянул в листинг, подправил чего надо и готово :)

 

void InitSDRAM(void)
{
  INIT_SYNC_SDRAM_CLK();
  ATOMIC_CODE(CPSR_IRQ_FIQ_MASK)
  {
    StartPLL();
    SYNC_SDRAM_CLK();
    FIO0PIN=NOP;
    FIO0PIN=NOP;
    FIO1SET=(1UL<<CKE);
    FIO0PIN=PRECHARGE;
    FIO0PIN=AUTOREFRESH;
    FIO0PIN=NOP;
    FIO0PIN=NOP;
    FIO0PIN=AUTOREFRESH;
    FIO0PIN=NOP;
    FIO0PIN=NOP;
    FIO1PIN=(0<<BA0)|(0<<BA1)|(0<<A11)|(1<<A9)|(0<<A8)|(0<<A7)|(0<<A6)|(1<<A5)|(0<<A4)|(0<<A3)|(0<<A2)|(0<<A1)|(0<<A0);
    __no_operation();
    FIO0PIN=LOADMODEREG;
    FIO0PIN=NOP;
    FIO0PIN=NOP;
    FIO0PIN=NOP;
    FIO0PIN=NOP;
  }
}

 

Правда, это ARM в инкарнации LPC :biggrin:

 

Я думаю, что вы то согласны с тем, что ценового прессинга на самом деле нет?

 

Это нам неизвестно, если уж быть до конца корректным.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Хм.... 64 мс - период за который хотя бы один раз ряды должны быть обновлены.

обновление одного ряда - 15 мкс. Умножим на 4096 рядов получается 61 мс. Или я чего-то не понимаю, но что это за микросхема, которая может работать 3 части времени из возможных 64 ?

 

А вот есе в одном даташите, где в двое меньше рядов - 2048 прочел интересную строку - 32 ms refresh cycle (2K). Это как понимать - требуемое время для регенерации или максимальный период за который память должна быть регенерирована хотя бы 1 раз ? в даташите ничего поэтому поводу не сказано.

 

Вот только что прочел "The storage cells of SDRAM need to be refreshed every 32ms"

регенерация раз в 32 миллисекунды и времени на нее требуется 32 миллисекунды. А когда читать и писать? Как это осуществляется на практике?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Хм.... 64 мс - период за который хотя бы один раз ряды должны быть обновлены.

обновление одного ряда - 15 мкс.

 

Вроткомпот. Вы что читаете? Вам таки дать даташит? 15 мкс - интервал между регенерациями, сама регенерация - один такт и пауза до и после порядка десятков наносекунд.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вы что читаете?

 

датаSHIT. сворачиваю в трубочку и скуриваю и жду прояснения сознания, а как надо? )))

 

15 мкс - интервал между регенерациями

 

Одного и того же или двух разных?

Если одного и того же, тогда понятно, то могу я прочесть один и деактивировать с регенерацией, а затем приступить к следующему не дожидаясь 15 мкс, а вот повторно активировать один и тот же ряд я могу не ранее чем через 15 мкс?

 

 

Алгоритм мне видится такой - последовательно активировать ряды. При необходимости прочесть что-то запоминаем место, последнего регенерированого ряда, возвращаемся назад к чтению, читаем, закрываем, возвращаемся к запомненной позиции и продолжаем регенерировать. Благо читать мне надо по 30 мкс, а потом отдыхать не менее 109 мкс. Так получится?

 

 

P.S. простите за занудство.

Изменено пользователем zheka

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну, и кого тут к психиатру?

Последний раз даю совет.

Датафлэш с простейшим алгоритмом доступа и ценой в 2 бакса позволит за 139 микросекунд заполнить 139 8-ми разрядных регистров.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

DpInRock

Последний раз даю совет.

 

Это радует.

 

http://electronix.ru/forum/index.php?showtopic=55568&hl=

http://electronix.ru/forum/index.php?showtopic=58967&hl=

 

Вы думаете я форум не читаю? По указанных ссылкам тема скорости ПЗУ полностью раскрыта. Так что лично Вам с Вашими советами - сюда

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...