4

Это продолжение Почему RAM должна быть энергозависимой? , В то время как вопрос отвечает, почему основная память компьютера не может быть энергонезависимой, мне пришло в голову, что Почему мы не можем просто создать резервную копию DRAM с батареей для сохранения ее содержимого при загрузке.

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

Итак, какие практические причины существуют для неспособности спроектировать основную память с батарейным питанием, такую как используемая в CMOS и игровых картриджах?

Примечание : я хотел бы получить ответы, которые иллюстрируют практические проблемы, связанные с разработкой такой системы, а не сравнивают ее с существующими технологиями, такими как suspend / hibernate.

5 ответов5

4

Введение источника питания в ОЗУ называется включением компьютера, о чем вы говорите, просто оставляя компьютер включенным и нажимая кнопку режима сна.
Расширенный ответ:
Он уже был реализован в той степени, в которой это позволяет современное оборудование, в спящем режиме отключается все оборудование, несущественное для поддержания состояния компьютера в оперативной памяти, поэтому идеи аналогичны, кроме концепции выключения компьютера. Фактическая перезагрузка компьютера в предыдущее состояние будет зависеть от наличия свободного места в модификациях ядра RAM и MAJOR , поэтому, если вы не перепроектируете ядро NT или не поручите Microsoft создать эту функцию, само программное обеспечение делает это невозможным.

3

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

Данные в ОЗУ имеют смысл, только если вы знаете, что и где они находятся. Так как нет явного правила, при загрузке любая программа должна хранить свою информацию в любом месте ОЗУ (есть, конечно, исключения).

Если бы то, что вы предлагаете (сохранение информации ОЗУ между перезагрузками), вошло в практику, ОС должна была бы стать посредником между каждой запущенной программой и информацией, представленной в ОЗУ. Чтобы сделать это, вам нужно будет сохранить адреса всех фрагментов информации в ОЗУ, а затем указать программам доступ к ним.

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

Режим сна переводит компьютер в режим пониженного энергопотребления, чтобы его состояние сохранялось. В то время, когда компьютер находится в спящем режиме, не должно происходить ОЗУ или работа с диском.

Существует также функция Hibernate, в которой вместо энергозависимой оперативной памяти вместо энергонезависимой памяти (жесткого диска или SDD) хранится содержимое оперативной памяти. В этом случае вы не используете никакой силы.

1

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

1

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

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

Процессоры в мобильных телефонах могут делать некоторые очень умные вещи с их потреблением энергии, чтобы максимизировать срок службы батареи. Это включает выборочное отключение неработающих компонентов. Вы можете попробовать создать ПК с использованием процессора телефона.

Все вышеперечисленное, конечно, ожидает, что все остальные компоненты; HDD, экран и т.д. Выключены.

1

Почему бы не добавить источник питания в ОЗУ, чтобы сохранить его содержимое при загрузке?

На самом деле, ваш компьютер уже использует память от батареи. Вам когда-нибудь приходилось сбрасывать настройки BIOS, когда вы не могли загрузить компьютер? Есть два способа сделать это: с помощью перемычки или вынув батарею CMOS. Эта батарея используется для питания небольшого количества памяти, используемой для сохранения настроек BIOS. Это не ОЗУ, но оно близко к тому, что вы просите - как вы видите, мы уже используем активную память.

На данный момент мы не используем оперативную память, потому что у нас есть SSD. SSD-накопители потребительского класса позволяют загружать ОС за считанные секунды, и они намного дешевле оперативной памяти. Вот и все, что касается чтения файлов с диска.

Но твердотельные накопители полностью меняют игру. Так почему же мы не использовали оперативную память до эпохи SSD? Потому что 20 ГБ (размер моей папки Windows) места на жестком диске стоит 2,2 доллара, а 20 ГБ DDR3 - 220 долларов (лучшие предложения от Newegg). Если вы можете себе это позволить, есть несколько вариантов.

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

Например, один и тот же файл в ОЗУ и на жестком диске может в какой-то момент потерять синхронизацию, если вы вытащите диск (или ОЗУ) и возитесь с некоторыми файлами). Проверка того, соответствуют ли файлы RAM файлам на диске, выполняется так же медленно, как простое чтение с диска, так что это может привести к поражению цели. Вы должны были бы не забыть сбросить ОЗУ (например, батарею CMOS) или создать аппаратные системы, которые бы это делали, но для них также потребовался бы источник питания. Построить такую систему просто сложно, если не невозможно.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .