Память используется для многих вещей, как я понимаю. Он служит дисковым кешем и содержит инструкции программ, их стек и кучу. Вот мысленный эксперимент. Если кто-то не заботится о скорости и времени, которые требуются компьютеру для выполнения хруста, то какой минимальный объем памяти можно иметь, если у него очень большой диск? Можно ли покончить с памятью и просто иметь диск?
Кэширование диска явно не требуется. Если мы установим пространство подкачки на диск, программный стек и куча также не потребуют памяти. Есть ли что-то, что требует присутствия памяти?
Ответы:
Конечно. В принципе, при наличии соответствующего оборудования у вас может быть только диск со всем, что хранится на диске. Каждый раз, когда процессор выполнял команду загрузки или сохранения, может быть какое-то оборудование, которое превращает это в чтение или запись на диск. Это будет очень медленно: на магнитном диске каждый поиск занимает около 10 мс, поэтому вы можете делать около 100 операций чтения и записи с произвольным доступом в секунду.
Некоторые системы имеют флэш-память, отображенную в их адресное пространство. Флэш-память обеспечивает энергонезависимую (постоянную) память. Таким образом, в некотором смысле это напоминает то, что вы упоминаете - хотя эти системы обычно также имеют ОЗУ.
источник
С точки зрения вычислимости известно, что каждый современный компьютер может быть смоделирован машиной Тьюринга, чье единственное хранилище - это одиночные линейные ленточные ячейки, которые могут быть записаны. Предполагая, что вы можете продолжать добавлять неограниченное количество дискового пространства, компьютер, имеющий только жесткие диски, столь же мощный. Поэтому, безусловно, вы могли бы сделать компьютер без памяти.
Конечно, нет жестких дисков с «неограниченным пространством», но нет и неограниченной оперативной памяти.
Существует ряд практических вопросов, например, вам потребуются соглашения для сопоставления различных областей и адресов на диске, операционная система, которая записывала на диск промежуточное хранилище и адреса управляемого диска. В действительности, вы бы в конечном итоге тесно имитировали ОЗУ на вашем жестком диске.
источник
Вопрос не чисто академический. Исторически известно, что на одном из самых первых серийно выпускаемых компьютеров (извините, я не помню, какой из них не было) не было ОЗУ - все программы выполнялись путем извлечения инструкций непосредственно с магнитного барабана [вращающегося цилиндра. с намагничиваемой внешней поверхностью (диски появились позже)]. Это было сравнительно медленно, но намного дешевле, чем у конкурентов. [это было в далёкие времена »
Интересно, что он поставлялся с уже устаревшим инструментом, известным как «оптимизирующий ассемблер» - т.е. ассемблер не только генерировал машинные инструкции, но и выписывал их на барабан последовательно, чтобы минимизировать для каждой инструкции количество времени в ожидании вращения барабана к следующему.
источник
Нет. Диски не имеют произвольной адресации, как RAM. Вместо этого они блокируют устройства хранения. Вы не можете прочитать или написать байт из них. И ваш процессор не может прочитать весь сектор сразу, им нужен этот произвольный доступ. Операционные системы скрывают этот уровень детализации от вас, но они делают это, считывая целый сектор в ОЗУ, изменяя его и записывая обратно.
В результате вам понадобится один блок хранилища с произвольным доступом. Это может быть кеш ЦП, который сделан из SRAM (быстрый тип ОЗУ).
Это не только диски. Флэш-память построена из блоков, что является ключом к ее низкой цене. У него даже есть блоки, намного большие, чем у обычных секторов диска, но он использует оперативную память, чтобы скрыть это от ОС.
Вы можете создать постоянное хранилище, которое будет напрямую использоваться процессором. Память ЭСППЗУ подпадает под эту категорию (электронно стираемое программируемое запоминающее устройство «только для чтения» - хотя «оптимизированное для чтения» было бы фактически лучшим описанием).
источник
Когда вы используете виртуальную память и вам нужно обрабатывать ошибки страниц, то, по крайней мере, обработчик исключений обрабатывает ошибки страниц, драйвер диска, который считывает данные с жесткого диска и сначала записывает грязные страницы на диск, а таблицы страниц требуют быть в оперативной памяти все время. Потому что, если они не находятся в ОЗУ, вы не можете заменить их обратно в ОЗУ. Плюс вам нужно место как минимум для одной страницы оперативной памяти.
Если бы у вас был процессор, похожий на массивный 12-ядерный Xeon с 30 МБ кэш-памяти, возможно, вы могли бы иметь систему без ОЗУ или жесткого диска, но использовать только кэш-память. (Не уверен, что это действительно работает или если по какой-то причине требуется ОЗУ).
источник
Это концептуально возможно. RAM - это просто уровень кеширования. В современном компьютере существует множество уровней кэширования (см. Кэш-память ЦП L1, L2, L3 .., разумеется, Ram, область подкачки, которая является логическим разделом диска, используемого в качестве ОЗУ ...-), если вы установите или добавить один, машина будет работать. Например, живой компакт-диск Ubuntu может не использовать уровень кэширования жесткого диска. Тем не менее, я не думаю, что есть какая-либо ОС, которая может поддерживать отсутствие уровня оперативной памяти.
источник
Технически ОЗУ является основной энергозависимой памятью, которая используется для повышения скорости обработки. Когда питание отключено, данные в первичной памяти теряются. Если мы используем диск, то есть, как вы говорите, только диск, а не оперативную память, мы все равно могли бы запустить наш компьютер, но было бы больше накладных расходов на чтение и запись, тем самым значительно замедляя систему. Следовательно, мы используем оперативную память.
источник