Барьеры размеров жёстких дисков

Барьеры размеров жёстких дисков

Барьеры размеров жёстких дисков

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

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

Содержание

504 Мб

Программное обеспечение времен начала 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 бит. Это позволяет адресовать 210 * 24 * (26 − 1) = 1024 * 16 * 63 = 1 032 192[1] секторов, что при размере сектора в 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-адрес преобразовывается в линейный адрес, который уже и передаётся в контроллер диска.

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

8 Гб

В интерфейсе Int 13h для номера цилиндра отведено 10 бит, для номера головки — 8, для номера сектора — 6, всего 24 бита. Это позволяет адресовать 210 * 28 * (26 − 1) = 1024 * 256 * 63 = 16 515 072[1] секторов, что при размере сектора в 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 году), после чего проблема перестала существовать.

128 Гб

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

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

В семействе Windows ограничение было снято для Windows 2000 в SP4 и для Windows XP в SP2. В Windows 2000 также требуется явно разрешить эту поддержку редактированием реестра.[3]

Другие ограничения

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

Примечания

  1. 1 2 3 Нумерация секторов начинается с единицы, поэтому всего секторов 26 − 1 = 63, а не 26 = 64 для BIOS и 255, а не 256 для IDE.
  2. 6.20. 48-bit Address feature set // AT Attachment with Packet Interface — 6 (ATA/ATAPI-6). — ANSI, T13 Commitee, 14 декабря 2001. — P. 51.
  3. KB305098: Поддержка 48-разрядной логической адресации блоков для дисководов ATAPI в Windows 2000 (рус.). Microsoft Knowledge Base (16 апреля 2006). Проверено 13 января 2010.



Wikimedia Foundation. 2010.

Игры ⚽ Нужна курсовая?

Полезное


Смотреть что такое "Барьеры размеров жёстких дисков" в других словарях:

  • Накопитель на жёстких магнитных дисках — Запрос «HDD» перенаправляется сюда. Cм. также другие значения. Схема устройства накопителя на жёстких магнитных дисках. Накопитель на жёстких магнитных дисках, НЖМД, жёсткий диск, винчестер (англ. Hard (Magnetic) Disk Drive, HDD, HMDD; в… …   Википедия

  • Жесткий диск — Запрос «HDD» перенаправляется сюда. Cм. также другие значения. Схема устройства накопителя на жёстких магнитных дисках. Накопитель на жёстких магнитных дисках, НЖМД, жёсткий диск, винчестер (англ. Hard (Magnetic) Disk Drive, HDD, HMDD; в… …   Википедия

  • Жёсткий магнитный диск — Запрос «HDD» перенаправляется сюда. Cм. также другие значения. Схема устройства накопителя на жёстких магнитных дисках. Накопитель на жёстких магнитных дисках, НЖМД, жёсткий диск, винчестер (англ. Hard (Magnetic) Disk Drive, HDD, HMDD; в… …   Википедия

  • НЖМД — Запрос «HDD» перенаправляется сюда. Cм. также другие значения. Схема устройства накопителя на жёстких магнитных дисках. Накопитель на жёстких магнитных дисках, НЖМД, жёсткий диск, винчестер (англ. Hard (Magnetic) Disk Drive, HDD, HMDD; в… …   Википедия


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»