LINUX.ORG.RU

Творчески сожженный RAM - и Linux уже в памяти.


0

0

Коллеги, а можно ли сделать из планки динамической памяти нечто типа ПЗУ? Методом выжигания нужных битов. Т.е. целенаправленно сжечь память, но не всю, а только те биты которые хочется. И "прожечь" Линукс, и грузиться молниеносно. Ядро то уже в памяти :)


Ответ на: комментарий от Black_Shadow

С флешки слишком долго грузится. Хочется мнгновенной загрузки.

Grey_
() автор топика

Нельзя (по крайней мере, не в человеческих силах), но для самообразования можешь почитать, что такое XIP.

anonymfus ★★★★
()
Ответ на: комментарий от ef37

SSD стоит, суспендом пользуюсь, но не столь уж это быстро - 130 MB/s

Grey_
() автор топика
Ответ на: комментарий от Grey_

Чисто в теории - возможно.

...

Многие уже забыли, но не только почти все 8-битные компы грузились из ПЗУ, находящегося в общем адресном пространстве (и потому - за единицы секунд). А даже были IBM PC с загрузкой DOS из ПЗУ :)

...

А в наше время с такой технологией выпускаются (или уже нет?) КПК серии Casio PocketViewer. После хард/софтрезета готов к работе также, как при выходе из саспенда - просто мгновенно :)

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

>Чисто в теории - возможно.

Из *RAM сделать ROM? :)


Если не касаться этого - то прошить в флеш мамы систему не проблема(есть же проект linuxBIOS)


madcore ★★★★★
()
Ответ на: комментарий от KRoN73

Возможность решить софтверные проблемы сомнений не вызывает. А вот можно ли так избирательно попортить нужные битики в DDR2 или DDR3 памяти? Не знаю. Посему и спрашиваю у коллективной сетевой мудрости :)

В динамической памяти информация сохраняется емкостями переходов транзисторов, по транзистору на каждый бит, т.е. конденсаторами. Испортить их можно двумя способами - либо закоротить, либо "спалить" обкладки конденсатора, тем самым резко уменьшив его емкость. В первом случае конденсатор вовсе не заряжается, во втором очень быстро разряжается. Заполним теперь такую память кодом 0xFF. Что получится? Правильно. Несожженные конденсаторы честно будут оставаться в состоянии 1 (им цикл рефреша на даст упасть в 0), а сожженные встанут в 0, ибо система регенерации не справится с такими попорченными конденсаторами. Так и получится "ПЗУ"

Grey_
() автор топика
Ответ на: комментарий от madcore

А если так? Сначала открывается строка (нормальным напряжением), а потом дается импульс записи по столбцу, но с запредельным для микрухи напряжением.

Grey_
() автор топика
Ответ на: комментарий от ef37

Ну зачем же забивать биты в ОЗУ микроскопом? Для этого лучше использовать крутую оверклокерскую маму :)

Grey_
() автор топика
Ответ на: комментарий от Grey_

Спалишь нахрен микруху целиком.

Я бы не занимался подобной фигней, а тупо нацепил подходящие ROM вместе с декодером адреса на шину проца и все.

Само-то ядро занимает мало, но вот куча демонов, иксы и прочее ...

Кроме того, куча структур внутри ядра не статичные, а меняются в процессе работы(буфера, очереди и много чего еще) и от этого так просто не избавишься.

ef37 ★★
()
Ответ на: комментарий от madcore

> Если не касаться этого - то прошить в флеш мамы систему не проблема(есть же проект linuxBIOS)

Про такой проект не знал. Читаю. Очень интересно. Благодарю! Похоже, это может исполнить мечту моего далекого 8-битового детства о быстрой загрузке ОС :)

Grey_
() автор топика
Ответ на: комментарий от ef37

> Спалишь нахрен микруху целиком.

Да не жалко. Я под эти эксперименты четыре планки разных производителей купил и мамку оверклокерскую. Первые попытки "подпалить" память не увенчались успехом. Работаем...

> Я бы не занимался подобной фигней, а тупо нацепил подходящие ROM вместе с декодером адреса на шину проца и все.

Ну не железячник я. Для меня этот путь труден. Мне ближе софтверные решения.

> Кроме того, куча структур внутри ядра не статичные, а меняются в процессе работы(буфера, очереди и много чего еще) и от этого так просто не избавишься.

Это как раз проходимо. Проект LinuxBIOS тому пример.

Grey_
() автор топика
Ответ на: комментарий от Grey_

>А если так? Сначала открывается строка (нормальным напряжением), а потом дается импульс записи по столбцу, но с запредельным для микрухи напряжением.

Спалится не доходя до строк/столбцов. Да и вообще не уверен, что это возможно даже на самых примитивных dram.

madcore ★★★★★
()
Ответ на: комментарий от ef37

Вы о спящем или о ждущем режиме? Мне кажется, что Intel Turbo Memory - динамическая память. Какой тогда смысл именно в нее суспендиться? Она ничем не дучше обычного RAM. Отключили напругу и все в ней пропало. Иль я не прав?

Grey_
() автор топика
Ответ на: комментарий от madcore

Возможно вы правы. Вполне может сдохнуть первой что-то из электронной обвязки памяти (буфера, декодеры адреса...). Буду экспериментировать...

Grey_
() автор топика
Ответ на: комментарий от Grey_

Читайте внимательнее. Там NAND flash + контроллер.

Если не охота возиться с паяльником, то это самое доступное решение, на мой взгляд. Да, конечно это не ROM :-) Но время загрузки сократит.

Да и вообще блажь это все. На моем старом ноуте 2003 года выпуска suspend/resume занимает 5-7 секунд. Современное hardware должно быть намного быстрее и смысл все возни ? Пару секунд выиграть ?

ef37 ★★
()
Ответ на: комментарий от ef37

> Читайте внимательнее. Там NAND flash + контроллер. О! Это меняет дело. Поищу спецификации.

> На моем старом ноуте 2003 года выпуска suspend/resume занимает 5-7 секунд. Современное hardware должно быть намного быстрее и смысл все возни ? Пару секунд выиграть ?

5-7 секунд? Значит память у ноута небольшая. Диск с rpm 7600 имеет скорость потокового чтения около 80 MB/s. Следовательно 4гига памяти будут считываться из суспенд-файла 50 секунд. А suspend 4-х гигов займет секунд 60-70.

Grey_
() автор топика

лучше разработай EEPROM(или на FPGA) с интерфейсом для DDR памяти, чтобы можно было в слот пихать

dimon555 ★★★★★
()
Ответ на: комментарий от madcore

>Из *RAM сделать ROM? :)

Нет. Поставить ROM с ОС в адресное пространство :)

>Если не касаться этого - то прошить в флеш мамы систему не проблема

Я не уверен, что в linuxBIOS используется прямой предзагруженный образ в адресном пространстве. Скорее всего там делается обычная загрузка в SSD :)

KRoN73 ★★★★★
()
Ответ на: комментарий от Grey_

>А вот можно ли так избирательно попортить нужные битики в DDR2 или DDR3 памяти?

Нет :)

KRoN73 ★★★★★
()
Ответ на: комментарий от madcore

>Ты не сможешь там сжеть отдельные биты, только строки целиком.

Да ты и строки там не сожжёшь. Только шины адреса и данных :)

KRoN73 ★★★★★
()
Ответ на: комментарий от Grey_

>А если так? Сначала открывается строка (нормальным напряжением), а потом дается импульс записи по столбцу, но с запредельным для микрухи напряжением.

Сожжёшь входной буфер. Или мультиплексор за ним. Или всю микруху :)

KRoN73 ★★★★★
()

Скорость на Intel Turbo Memory должна быть не меньше 250-280 МБ/с. Выигрыш будет по любому.

Кроме того, любителю "софтовых решений" предстоит написать драйвер для оного :-)

ef37 ★★
()
Ответ на: комментарий от ef37

> Скорость на Intel Turbo Memory должна быть не меньше 250-280 МБ/с. Выигрыш будет по любому.

Как выяснилось Intel Turbo Memory - выдающийся тормоз. Скорость чтения от 41 до 47 МБ/с, меньше чем у рядового винчестера. Подробности см. тут: http://acerfans.ru/faq/509-prevrashhaem-vstroennyjj-turbo-memory-v-nositel.html

Так что заморачиваться написанием драйвера не стоит.

Grey_
() автор топика
Ответ на: комментарий от Grey_

> Следовательно 4гига памяти будут считываться из суспенд-файла 50 секунд. А suspend 4-х гигов займет секунд 60-70.

при условии что _ВСЯ_ оператива забита под завязку. на диск скидывается не тупо дамп всей оперативы а только то что там реально есть.

isden ★★★★★
()
Ответ на: комментарий от isden

> при условии что _ВСЯ_ оператива забита под завязку. на диск скидывается не тупо дамп всей оперативы а только то что там реально есть.

Согласен. Я не разбирался как линукс сбрасывает память при суспенде. Надеюсь, что по-умному, т.е. только активные страницы памяти. Что делается с памятью дискового кэша - вопрос. Кстати, суспенд файл может оказаться и больше размера оперативки, ибо в нем надо сохранять и свапированные страницы.

Grey_
() автор топика
Ответ на: комментарий от Grey_

http://www.datasheetcatalog.org/datasheets/270/489775_DS.pdf - это далеко не новая память, взята для примера. Обращаю внимание на строчку FAST ACCESS TIME: 70ns. Как бы это не согласуется с 47 МБ/с.

На запись, конечно, будет заметно медленее.

Я бы не доверял бечмаркам на сырых драйверах Висты.

ef37 ★★
()
Ответ на: комментарий от Grey_

кстати ,в конфиге gdm попадалось упоминание о техзадержке на восстановление настроек xorg-ом железок в минимум 10 секунд.

elipse ★★★
()
Ответ на: комментарий от ef37

Пардон, я не понял. M29F040 имеет емкость 512К, а Intel Turbo memory 1GB. На фотографиях в интернете видно, что на этой платке стоит только два чипа, а не 2000. Так что, боюсь, пример неудачен. Увы, но мне пока не удалось найти информацию о стоящих на Intel Turbo memory чипах.

Коллеги, у кого есть Intel Turbo memory под рукой? Не могли бы вы прогнать какие-нибудь тесты на скорость этого "чуда". Хоть эверестом.

Grey_
() автор топика
Ответ на: комментарий от ef37

>Обращаю внимание на строчку FAST ACCESS TIME: 70ns. Как бы это не согласуется с 47 МБ/с.

Э... А какое отношение время доступа имеет к скорости линейного чтения?

Вот DVD имеет 150мс время доступа и 22Мб/с скорость чтения.

Старая флешка какая-нибудь - 1мс время доступа и 1Мб/с скорость чтения.

HDD - 6мс время доступа и 100Мб/с - чтения.

Это всё по-твоему как согласуется? :)

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

RAM - она то произвольного доступа. Там нет seek. Т.е. нет времени доступа, в течение которого контроллер двигает головки и ждет нужный сектор.

Посмотрите приведенную ссылку. Обратите внимание на Figure 6. Read Mode AC Waveforms, на значение tAVAV в Table 12A. Read AC Characteristics. 70 ns. Это фактически время чтения одного(с произвольного адреса) байта. Правда это классическая флэш(такие используют для BIOS), которую можно чуть ли не напрямую подключать к процу.

NAND будет помедленней, но не настолько же.

ef37 ★★
()
Ответ на: комментарий от KRoN73

ну ,немного не так :)))

стандартная PCI шина имеет тактовую 33 Мгц (33 ns)
при выдаче на шину 4 байт получаем 33 * 4 = 132 МБ/с

при наличии 4-х байтовых флешей с временем доступа в 70ns на шину в 32 бит (а есть уже и 45 ns) получим 132/2.12 =~ 62 МБ/с теоретической
пропускной способности

elipse ★★★
()
Ответ на: комментарий от Grey_

В ноутах(с Вистой) часто ставить начали такие модули. Правда не все. HP вроде отказался.

ef37 ★★
()
Ответ на: комментарий от ef37

> Intel-овая платка втыкается в PCIE x1

Та хоть там куда втыкай - реальную физику доступа к накопителю в конечном итоге не надуришь шиной и буферизацией.
Кстати ,и кеш в CPU не от хорошей жизни существует.

elipse ★★★
()
Ответ на: комментарий от KRoN73

>Старая флешка какая-нибудь - 1мс время доступа и 1Мб/с скорость чтения.

Время доступа на флешах отнюдь не стремится к нулю, как многим кажется. Еще сравнительно недавно она сильно превышала hdd, посмотрите обзоры на каком-нить ixbt.

madcore ★★★★★
()
Ответ на: комментарий от ef37

> Это тормоза шины. Память быстрее.
NAND никогда быстрой не была
NOR flash быстрее и дороже

скорость считывания на флешах можно увеличить только при параллельном
считывании группы из 32 или 64 бит , и современной шины PCI c двойным тактированием в 66 Мгц (в 260 Мбайт/с пропускной способностью) тут хватает по самое горло для таких целей :)))

elipse ★★★
()
Ответ на: комментарий от elipse

Я думаю что все-таки скорость сего интелового чуда должна быть никак не меньше, чем SSD. Иначе нафига она тогда нужна ?

ef37 ★★
()
Ответ на: комментарий от ef37

>Я думаю что все-таки скорость сего интелового чуда должна быть никак не меньше, чем SSD.

СF реально самая быстрая из доступных
ну ,еще есть и c IDE интерфейсом модули

> Иначе нафига она тогда нужна ?


Intel полюбляет иногда выпускать инновационные заморочки
и конкурировать типа сам с собой.

elipse ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.