Почему существует ограничение памяти, а не ограничения памяти для компьютеров

334
qspitzer

Если на компьютере установлена ​​32-битная копия Windows, можно использовать максимум 4 ГБ ОЗУ. Но почему тот же компьютер может использовать 500 + ГБ дискового пространства? Если существует ограничение на ОЗУ, не должно ли существовать такое же ограничение для хранилища?

-1
Краткий ответ №: Хранение ограничено файловой системой и драйвером устройства. DavidPostill 6 лет назад 1
Также существуют ограничения на хранение, они зависят только от файловой системы и намного превышают пределы ОЗУ. Например, NTFS в Windows XP имеет максимальный размер тома 256 ТБ. Mike Scott 6 лет назад 0

2 ответа на вопрос

5
Mokubai

Было несколько ограничений размера хранилища, которые были введены и работали в течение многих лет.

Из пределов истории BIOS и IDE мы видим следующие ограничения:

  • Спецификация ATA (для дисков IDE) - ограничение в 137 ГБ

  • BIOS Int 13 - ограничение в 8,5 ГБ

  • Лимит 528 МБ

  • Лимит в 2,1 ГБ (апрель 1996 г.)

  • Ограничение в 3,2 ГБ

  • Ограничение в 4,2 ГБ (февраль 1997 г.)

  • Лимит 7,9 ГБ

  • Ограничение в 8,4 ГБ

  • Лимит 33,8 ГБ (август 1999 г.)

  • Ограничение в 137 ГБ (сентябрь 2001 г.)

  • Предел 2 TiB

Прочитайте связанную статью для деталей каждого ограничения. Обычно они отличаются от ограничений памяти из-за 512-байтового сектора и 4096 (по умолчанию) размеров кластеров в сочетании с другими факторами.

Мы уже прошли перечисленное ограничение «2 ТБ», и оно относится только к MBR-дискам. GPT-разделенный диск не имеет этого ограничения.

2
grawity

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

Вместо этого ОС должна посылать команды контроллеру диска, чтобы извлечь некоторые сектора и скопировать их в ОЗУ (или наоборот, записать некоторые данные из ОЗУ в сектора диска). Только один раз в ОЗУ данные становятся доступными для ЦП - и ЦП не имеет значения, как он туда попал.

(Помните, что «битность» ЦП в основном описывает те инструкции, которые имеют дело с адресами памяти, но не обязательно те, которые имеют дело с простыми числами. Поэтому 32-битный ЦП все еще может работать с большими числами, чем это. Например, когда ему нужно вычислить 64 адрес сектора в бите. Это может занять несколько больше инструкций, чем работа с 32-битным числом, но это все еще выполнимо.)

Тем не менее, могут быть ограничения хранения в другом месте. Например, изначально на IDE-дисках были только команды, которые принимали 22-битные адреса секторов. Для поддержки дисков большего размера в IDE требовались новые команды для 28-битных и, в конечном итоге, 48-битных адресов секторов. Но это никак не связано с процессором.

Похожие вопросы