статьиGNU Free Documentation License материалы взяты из Википедии Статья была изменена. Оригинал статьи.

Объём жёсткого диска

Материал из Энциклопедии в свободной энциклопедии
Перейти к: навигация, поиск
Динамика роста ёмкости жёстких дисков с 1980 года. Ось Y в логарифмическом масштабе, поэтому аппроксимирующая линия соответствует экспоненциальному росту

Объём жёсткого диска (также используются термины размер, ёмкость) в максимальное количество информации, которое способен вместить жёсткий магнитный диск.

Содержание

[править] Ограничения ёмкости

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

[править] 8 МБ

CP/M имела ограничение на 8Мб на диск (при общем числе не более 16 дисков).

[править] 10,4 МБ

PC/XT имела фиксированный размер диска: 312 цилиндров, 4 головки, 17 секторов на трек.[1]

[править] 15 MБ

Максимальный размер раздела для MS-DOS 1 и 2[2]

[править] 16 МБ

Предельный размер для FAT12[1]

[править] 32 МБ

Ограничение на размер раздела для MS-DOS 3 для файловой системы FAT16: размер кластера 2кб, не более 16384 кластеров.[1]

[править] 128 МБ

Ограничение на размер FAT16 в MS-DOS 4: число кластеров до 65526, размер кластера 2кб.[1]

[править] 504 МБ

Ограничение MS DOS на допустимое число головок в 16 (1024 цилиндра, 63 сектора на трек, 16 головок, 512 байт на сектор)[3][4]

Программное обеспечение времен начала 1990-х, такое, как MS-DOS, для работы с жёстким диском использовало вызов Int 13h.

Адресация блоков диска в вызове Int 13h выглядит как номера цилиндра (cylinder), головки (head) и сектора (sector) в C/H/S. При этом на C отводится 10 бит, на H в 8, на S в 6.

Обработчик Int 13h в BIOS вписывает эти номера в управляющие регистры контроллера IDE. В этих регистрах на C отводится 16 бит, на H в 4, на S в 8.

Совокупность того и другого приводит к общему ограничению C/H/S = 10/4/6 бит (всего 20 бит), что позволяет адресовать 2^{10}*2^4*(2^6-1)=1024*16*63=1 032 192[5] секторов. При размере сектора в 512 байт это даёт 528 482 304 байт (504 Мб).

Максимум BIOS IDE Общее ограничение
Секторов/трек 63 255 63
Поверхностей (головок) 256 16 16
Треков 1024 65536 1024
Объём 8064 Мбайт 127,5 Гбайт 504 Мбайт

Данное ограничение стало ощутимым в 1994в1995 годах, примерно во время первых микропроцессоров Pentium. Для его обхода была придумана трансляция значений CHS в коде обработчика Int 13h в BIOS. Среди алгоритмов трансляции был и LBA (Linear Block Addressing), когда CHS-адрес преобразовывается в линейный адрес, который уже и передаётся в контроллер диска.

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

[править] 2 ГБ

Максимальный размер файловой системы FAT16 при 32кб кластере. Для операционной системы NT это величина за счёт 64кб кластеров была равна 4Гб.[6]

[править] 2,1 ГБ

Некоторые материнские платы выделяли 12 бит на хранение числа цилиндров. 4095*16*63 в 2.1Гб[3]

[править] 3,2 ГБ

Ошибка некоторых биосов Phoenix (4.03 и 4.04), приводящая к зависанию в CMOS setup, если диск превышает в размере 3277 Мб.[3]

[править] 4 ГБ

  1. Лимит на размер FAT16 раздела в Windows NT.
  2. Лимит раздела, создаваемого Windows NT 3.51/4.0 Workstation при установке[7] (связано с тем, что при установке создаётся FAT16 раздел, который конвертируется потом в NTFS).

[править] 4,2 ГБ

Прямая трансляция числа секторов/головок методом последовательного уменьшения в 2 раза числа цилиндров и удвоения числа головок (т. н. 'Large' или ECHS (Extended CHS)) приводила к лимиту в 1024 головки: 1024*128*63*512 в 4.2Гб[3]

[править] 7,8 ГБ (1996)

Лимит на размер системного диска Windows NT 4.0[8]

[править] 7,9 ГБ

При уменьшении числа головок до 15, ECHS (revised ECHS) позволял методом удвоения получить конфигурацию с 15*2*2*2=240 головками, что давало предел в 7.9Гб.

[править] 8,4 ГБ

Максимально возможная величина для прерывания INT 13, 1024 цилиндра, 63 сектора, 255 головок. Ограничение многих BIOSв™ов того времени (P1-P2), при попытке определить диск с размером больше 8Гб такие биосы висли, так как число головок обязано быть меньше 256.[3]

В интерфейсе Int 13h для номера цилиндра отведено 10 бит, для номера головки в 8, для номера сектора в 6, всего 24 бита. Это позволяет адресовать 2^{10}*2^8*(2^6-1)=1024*256*63=16 515 072[5] секторов, что при размере сектора в 512 байт даёт 8 455 716 864 байт (8064 Мб, 7,875 Гб).

К тому времени, когда это стало проблемой в около 1997в1998 годов в стали массово использоваться полноценные многозадачные ОС, такие, как GNU/Linux, FreeBSD и Windows NT. Так как код Int 13h в BIOS никогда не разрабатывался с учётом многозадачности (в частности, он нагружает процессор бесконечным циклом в ожидании прерывания от контроллера), эти ОС не могли пользоваться Int 13h в своей работе. Вместо этого они в как ранее Novell NetWare в включали драйвер IDE, напрямую обращающийся к аппаратуре контроллера. Это снимало связанные с Int 13h ограничения при работе уже загруженной ОС, но проблема с загрузкой (запуском загрузчика системы из раздела диска, расположенного за доступной для BIOS границей) оставалась.

Для решения проблемы разработчики BIOS расширили Int 13h новыми подфункциями, принимавшими номер сектора как 64-битное целое число (LBA) без деления на C/H/S. Разработчики ОС внедрили поддержку этого новшества в загрузчики (в Windows в это один из пакетов обновления для Windows NT 4.0 в 1997 году), после чего проблема перестала существовать.

[править] 32 ГБ

  1. Искусственное ограничение на размер FAT32-раздела в Windows 2000, XP. Разделы большего размера форматировать система отказывалась[9][10]
  2. Максимальный поддерживаемый размер диска Windows 95[11]

[править] 33,8 ГБ

Большие диски сообщают о себе 16 головок, 63 секторах и 16383 цилиндрах. При использовании для вычисления реального числа цилиндров (деления ёмкости на 16*63), число цилиндров получается больше, чем 65535, что приводит к зависанию некоторых биосов. Именно из-за этой проблемы на многих ЖД того времени присутствовали джамперы ограничения ёмкости до 32Гб.

[править] 128 ГБ

  1. Лимит в Windows XP SP1 на размер раздела NTFS (исправлено в SP2)
  2. Максимальный размер FAT32, создаваемый Windows 98[9]
  3. Максимальный размер SFS, в OS семейства Amiga.

Аппаратный интерфейс регистров IDE-контроллера стандартов с ATA-1 по ATA/ATAPI-5 использует 16 бит для номера C, 4 в для H и 8 в для S, всего 28 бит. Это позволяет адресовать 2^{16}*2^4*(2^8-1)=65536*16*255=267 386 880[5] секторов, что при размере сектора в 512 байт даёт 136 902 082 560 байт (127,5 Гб).

Решение проблемы с таким ограничением возможно только на уровне аппаратуры (и обновления драйверов для использования новых возможностей аппаратуры). Оно было принято в стандарте ATA/ATAPI-6 в виде отправки адреса в контроллер дважды в определённой последовательности (48-bit LBA).[12]

В семействе Windows поддержка 48-bit LBA была добавлена в SP4 для Windows 2000 и в SP2 для Windows XP. Кроме того, в Windows 2000 также требуется явно активизировать эту поддержку с помощью редактирования реестра.[13]

[править] 137 ГБ (2001)

Максимальная величина числа цилиндров (28-бит) согласно спецификации ATA[3]. Ограничение печально известно тем, что при определённых обстоятельствах приводило к «циклической» перезаписи информации (данные, адресованные выше 137Гб записывались по адресу «адрес в 137Гб»). В ATA-6 количество битов изменено с 28 до 48 (лимит в 137 петабайт).

[править] 2 ТБ

  1. Максимальный размер диска (не раздела!), поддерживаемый MBR.
    Ограничения MBR: размер раздела, а также расстояние от начала раздела до контейнера (до начала диска в случае primary раздела, до начала extended partition в случае logical volume) в есть 32битное число секторов, то есть и тот, и другой параметр не может быть выше 2Тб.
  2. Максимальный размер файловой системы ext3 на 32-битной архитектуре
  3. Максимальный размер раздела для загрузки Windows XP (в силу ограничений MBR).

[править] 8 ТБ

Предел FAT32[10]

[править] 16 ТБ

  1. Максимальный размер файловой системы ext3 на 64-битной архитектуре (4кб блок), на Alpha при 8кб блоке может быть до 32Тб.
  2. Максимальный размер NTFS при 4кб кластере
  3. Максимальный размер файловой системы ReiserFS 3.6[14]
  4. Максимальный размер файловой системы ISO 9660 (используемой на оптических дисках).

[править] 64 ТБ

Лимит на размер 'spanned' массива дисков в Windows 2003[15]

[править] 256 ТБ

Максимальный размер файловой системы NTFS (при 64 кб кластере) в существующих 32-битных реализациях[9][15]

48-bit LBA способно адресовать до 2^{48}=256*2^{40} байт, что составляет 256 ТиБ. По состоянию на сентябрь 2011 на рынке присутствуют внутренние жесткие диски объёмом не более 4 Тб. Учитывая экспоненциальную тенденцию скорости роста объёмов жестких дисков это ограничение станет ощутимо после 2020 года.

[править] 512 ТБ

Рекомендуемый максимальный размер файловой системы exFAT[16]

[править] 4 ПБ

Лимит JFS при 4кб блоке[14]

[править] 8 ПБ

Лимит NFS[14]

[править] 137 ПБ

Лимит адресации секторов ATA-6 (48-bit LBA).

[править] 1 ЭБ

Максимальный размер ext4[17]

[править] 8 ЭБ

Лимит XFS[14]

[править] 16 ЭБ

Лимит HFS+

[править] 64 ЭБ

Теоретический максимальный размер файловой системы exFAT[16]

[править] 1 ЙБ

(1024 ЭБ) Теоретический предел NTFS при 64 кб блоках и 64-битной адресации (в настоящий момент используется 32-битная)[9]

[править] Другие ограничения

Помимо ограничений интерфейсов IDE и BIOS, имелись и другие барьеры в ошибки и ограничения в программах, ОС и в коде BIOS.

Например, DOS не поддерживает работу с количеством головок больше 255, поэтому в этой операционной системе не приемлема геометрия, в которой количество головок равно 256. Это означает, что в компьютерах, где в BIOS не поддерживалась трансляция с заменой количества головок 256 на 255, доступ к дискам объёмом больше 2^{10}*2^7*(2^6-1)=1024*128*63=8 257 536 секторов был под вопросом. При размере сектора в 512 байт это даёт 4 227 858 432 байт (4032 Мб, 3,94 Гб).

[править] Примечания

  1. в‘ 1 2 3 4 Hard Disk Size Barriers. The PC Guide
  2. в‘ MS-DOS Partitioning Summary. Microsoft.com
  3. в‘ 1 2 3 4 5 6 Properties of partition tables. Win.tue.nl
  4. в‘ The 1,024 Cylinder (504 MiB / 528 MB) Barrier. The PC Guide
  5. в‘ 1 2 3 Нумерация секторов начинается с единицы, поэтому всего секторов 2^6-1=63, а не 2^6=64 для BIOS и 255, а не 256 для IDE.
  6. в‘ Максимальный размер раздела на диске с файловой системой FAT16. Microsoft.com
  7. в‘ Boot Partition Created During Setup Limited to 4 Gigabytes. Microsoft.com
  8. в‘ Windows NT 4.0 не поддерживает системных разделов размером более 7,8 ГБ. Microsoft.com
  9. в‘ 1 2 3 4 http://www.ntfs.com/ntfs_vs_fat.htm NTFS vs FAT. Ntfs.com
  10. в‘ 1 2 Ограничения файловой системы FAT32 в Microsoft Windows XP. Microsoft.com
  11. в‘ Does Not Support Hard Disks Larger Than 32 GB. Microsoft.com
  12. в‘ 6.20. 48-bit Address feature set // AT Attachment with Packet Interface в 6 (ATA/ATAPI-6). в ANSI, T13 Commitee, 14 декабря 2001. в P. 51.
  13. в‘ KB305098: Поддержка 48-разрядной логической адресации блоков для дисководов ATAPI в Windows 2000  (рус.). Microsoft Knowledge Base (16 апреля 2006). Архивировано из первоисточника 23 марта 2012. Проверено 13 января 2010.
  14. в‘ 1 2 3 4 File system guide. File system guide. Linuxreviews.org
  15. в‘ 1 2 Reviewing Storage Limits. Microsoft Technet
  16. в‘ 1 2 Description of the exFAT file system driver update package. Microsoft
  17. в‘ Migrating to ext4. Ibm.com
Пространства имён

Варианты
Просмотры
Действия