stringtranslate.com

Цилиндр-головка-сектор

Цилиндр, головка и сектор жесткого диска.

Сектор головки цилиндра ( CHS ) — это ранний метод назначения адресов каждому физическому блоку данных на жестком диске .

Это 3D-система координат, состоящая из вертикальной координатной головки , горизонтального (или радиального) координатного цилиндра и углового координатного сектора . Головка выбирает круглую поверхность: пластину на диске (и одну из двух ее сторон). Цилиндр — это цилиндрическое пересечение через стопку пластин на диске, центрированное вокруг шпинделя диска. Вместе цилиндр и головка пересекаются в круговую линию или, точнее, в круговую полосу физических блоков данных, называемую дорожкой . Сектор, наконец, выбирает, к какому блоку данных на этой дорожке следует обратиться, поскольку дорожка подразделяется на несколько частей одинакового размера, каждая из которых представляет собой дугу (360/n) градусов, где n — количество секторов на дорожке.

Адреса CHS были раскрыты вместо простых линейных адресов (от 0 до общего количества блоков на диске - 1 ), поскольку ранние жесткие диски не поставлялись со встроенным контроллером диска , который скрывал бы физическую компоновку. Использовалась отдельная универсальная плата контроллера, так что операционной системе приходилось знать точную физическую «геометрию» конкретного диска , подключенного к контроллеру, для правильной адресации блоков данных. Традиционные ограничения составляли 512 байт/сектор × 63 сектора/дорожка × 255 головок (дорожек/цилиндр) × 1024 цилиндра, что приводило к ограничению в 8032,5 МиБ для общей емкости диска.

По мере усложнения геометрии (например, с введением записи битов зоны ) и увеличения размеров дисков со временем метод адресации CHS стал ограничивающим. С конца 1980-х годов жесткие диски начали поставляться со встроенным контроллером диска [1], который хорошо знал физическую геометрию; однако они сообщали компьютеру ложную геометрию, например, большее количество головок, чем фактически имелось, чтобы получить больше адресуемого пространства. Эти логические значения CHS транслировались контроллером, таким образом, адресация CHS больше не соответствовала никаким физическим атрибутам диска. [2]

К середине 1990-х годов интерфейсы жестких дисков заменили схему CHS на логическую адресацию блоков (LBA), но многие инструменты для управления таблицей разделов главной загрузочной записи (MBR) по-прежнему выравнивали разделы по границам цилиндров; таким образом, артефакты адресации CHS все еще наблюдались в программном обеспечении для разбиения на разделы к концу 2000-х годов. [2]

В начале 2010-х годов ограничения по размеру диска, накладываемые MBR, стали проблематичными, и в качестве замены была разработана таблица разделов GUID (GPT); современные компьютеры, использующие прошивку UEFI без поддержки MBR, больше не используют какие-либо понятия адресации CHS.

Определения

схема геометрии жесткого диска

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

Сектора

Дискеты и контроллеры использовали физические размеры секторов 128, 256, 512 и 1024 байта (например, PC/AX), но форматы с 512 байтами на физический сектор стали доминирующими в 1980-х годах. [3] [4]

Наиболее распространенный размер физического сектора для жестких дисков сегодня составляет 512 байт, но были жесткие диски с 520 байтами на сектор, а также для не-IBM-совместимых машин. В 2005 году некоторые пользовательские жесткие диски Seagate использовали размеры сектора 1024 байта на сектор. Жесткие диски Advanced Format используют 4096 байт на физический сектор ( 4Kn ) [5] с 2010 года, но также смогут эмулировать 512-байтовые сектора ( 512e ) в течение переходного периода. [6]

Магнитооптические приводы используют размеры секторов 512 и 1024 байта на 5,25-дюймовых приводах и 512 и 2048 байта на 3,5-дюймовых приводах.

В адресации CHS нумерация секторов всегда начинается с 1 , сектора 0 не существует , [1] что может привести к путанице, поскольку схемы логической адресации секторов обычно начинают отсчет с 0, например, логическая блочная адресация (LBA) или «относительная адресация секторов», используемая в DOS.

Для физических геометрий дисков максимальное число секторов определяется низкоуровневым форматом диска. Однако для доступа к диску с помощью BIOS IBM-PC-совместимых машин число секторов кодировалось шестью битами, что давало максимальное число 111111 (63) секторов на дорожку. Этот максимум все еще используется для виртуальных геометрий CHS.

Треки

Дорожки — это тонкие концентрические круговые полосы секторов. Для чтения одной дорожки требуется по крайней мере одна головка. Что касается геометрии диска, термины дорожка и цилиндр тесно связаны. Для одно- или двухстороннего гибкого диска общим термином является дорожка ; а для более чем двух головок общим термином является цилиндр . Строго говоря, дорожка — это заданная комбинация, состоящая из секторов, в то время как цилиндр состоит из секторов.CHSPTSPT×H

Цилиндры

Цилиндр — это раздел данных на диске , используемый в режиме адресации CHS диска с архитектурой фиксированных блоков или в режиме адресации цилиндр–головка–запись (CCHHR) диска CKD .

Концепция заключается в концентрических, полых, цилиндрических срезах через физические диски ( пластины ), собирающих соответствующие круговые дорожки, выровненные через стопку пластин. Количество цилиндров дисковода точно равно количеству дорожек на одной поверхности в приводе. Он включает в себя тот же номер дорожки на каждой пластине, охватывая все такие дорожки на каждой поверхности пластины, которая может хранить данные (независимо от того, является ли дорожка «плохой» или нет). Цилиндры вертикально образованы дорожками . Другими словами, дорожка 12 на пластине 0 плюс дорожка 12 на пластине 1 и т. д. составляют цилиндр 12.

Другие формы устройств хранения данных с прямым доступом (DASD), такие как устройства барабанной памяти или ячейка данных IBM 2321 , могут выдавать адреса блоков, включающие адрес цилиндра, хотя адрес цилиндра не выбирает (геометрический) цилиндрический срез устройства.

Головы

Устройство, называемое головкой, считывает и записывает данные на жестком диске, манипулируя магнитным носителем, который составляет поверхность соответствующей дисковой пластины. Естественно, пластина имеет 2 стороны и, следовательно, 2 поверхности, на которых можно манипулировать данными; обычно на пластину приходится 2 головки, по одной на сторону. (Иногда термин « головка» заменяется термином «сторона », поскольку пластины могут быть отделены от своих головных узлов, как в случае со съемными носителями дисковода . )

Адресация , поддерживаемая в коде BIOS , совместимом с IBM-PC, использовала восемь бит для максимум 256 головок, которые считались головками от 0 до 255 ( ). Однако ошибка во всех версиях Microsoft DOS / IBM PC DOS до 7.10 включительно приведет к сбою этих операционных систем при загрузке при обнаружении томов с 256 головками [2] . Поэтому все совместимые BIOS будут использовать сопоставления только с 255 головками ( ), включая виртуальные геометрии.CHSFFh00h..FEh255×63

Эта историческая странность может влиять на максимальный размер диска в старом коде BIOS INT 13h , а также в старых операционных системах PC DOS или подобных им:

(512 bytes/sector)×(63 sectors/track)×(255 heads (tracks/cylinder))×(1024 cylinders)=8032.5 МБ , но на самом деле 512×63×256×1024=8064 МБ дает то, что известно как предел в 8  ГБ . [7] В этом контексте соответствующее определение 8  ГБ = 8192  МБ является еще одним неверным пределом, поскольку для этого потребуется CHS 512×64×256с 64 секторами на дорожку.

Дорожки и цилиндры отсчитываются от 0, т. е. дорожка 0 является первой (самой внешней) дорожкой на дискете или других цилиндрических дисках. Старый код BIOS поддерживал десять бит в адресации CHS с количеством цилиндров до 1024 ( ). Добавление шести бит для секторов и восьми бит для головок приводит к 24 битам, поддерживаемым прерыванием BIOS 13h . Вычитание запрещенного номера сектора 0 в дорожках соответствует 128  МБ для размера сектора 512 байт ( ); и подтверждает (примерно) ограничение в 8  ГБ . [8]1024=2101024×256128 MB=1024×256×(512 byte/sector)8192-128=8064

Адресация CHS начинается 0/0/1с максимального значения 1023/255/63для 24=10+8+6битов или 1023/254/63для 24 бит ограничена 255 головками. Значения CHS, используемые для указания геометрии диска, должны учитывать цилиндр 0 и головку 0, что приводит к максимуму ( 1024/256/63или) 1024/255/63для 24 бит с (256 или) 255 головками. В кортежах CHS, указывающих геометрию, S фактически означает секторы на дорожку, и где (виртуальная) геометрия все еще соответствует емкости, диск содержит C×H×Sсекторы. По мере того, как стали использоваться более крупные жесткие диски, цилиндр стал также логической структурой диска, стандартизированной [ требуется ссылка ] на 16 065 секторов ( 16065=255×63).

Адресация CHS с 28 битами ( EIDE и ATA-2 ) допускает восемь бит для секторов, все еще начинающихся с 1, т. е. секторы 1...255, четыре бита для головок 0...15 и шестнадцать бит для цилиндров 0...65535. [9] Это приводит к ограничению примерно в 128  ГБ ; фактически 65536×16×255=267386880сектора соответствуют 130560  МБ для размера сектора 512 байт. [7] Биты 28=16+4+8в спецификации ATA-2 также охвачены Списком прерываний Ральфа Брауна , и был опубликован старый рабочий проект этого теперь устаревшего стандарта. [10]

При старом ограничении BIOS в 1024 цилиндра и ограничении ATA в 16 головок [11] совокупный эффект составил 1024×16×63=1032192секторы, т. е. ограничение в 504  МБ для размера сектора 512. Схемы трансляции BIOS , известные как ECHS и пересмотренный ECHS, смягчили это ограничение, используя 128 или 240 вместо 16 головок, одновременно уменьшая количество цилиндров и секторов для размещения 1024/128/63(ограничение ECHS: 4032  МБ ) или 1024/240/63(пересмотренное ограничение ECHS: 7560 МБ) для заданного общего количества секторов на диске. [7]

Блоки и кластеры

Сообщества Unix используют термин «блок» для обозначения сектора или группы секторов. Например, утилита Linux fdisk до версии 2.25 [12] отображала размеры разделов с использованием блоков по 1024 байта .

Кластеры — это единицы распределения данных в различных файловых системах ( FAT , NTFS и т. д.), где данные в основном состоят из файлов. Кластеры не зависят напрямую от физической или виртуальной геометрии диска, т. е. кластер может начинаться в секторе, близком к концу заданной дорожки, и заканчиваться в секторе на физически или логически следующей дорожке.CHCH

Сопоставление CHS с LBA

В 2002 году спецификация ATA-6 ввела необязательную 48-битную логическую адресацию блоков и объявила адресацию CHS устаревшей, но все еще позволяла реализовывать трансляции ATA-5. [13] Неудивительно, что формула трансляции CHS в LBA, приведенная ниже, также соответствует последней трансляции ATA-5 CHS. В спецификации ATA-5 поддержка CHS была обязательной для секторов до 16 514 064 и необязательной для дисков большего размера. Предел ATA-5 соответствует CHS 16383 16 63или эквивалентной емкости диска (16514064 = 16383 × 16 × 63 = 1032 × 254 × 63) и требует 24 = 14 + 4 + 6 бит ( 16383 + 1 = 2 14 ). [14]

Кортежи CHS можно сопоставить с адресами LBA, используя следующую формулу:

где A — адрес LBA, N головок — количество головок на диске, N секторов — максимальное количество секторов на дорожку, а ( c , h , s ) — адрес CHS.

Формула логического номера сектора в стандартах ECMA -107 [3] и ISO / IEC  9293:1994 [15] (заменяющий ISO 9293:1987 [16] ) для файловых систем FAT в точности соответствует формуле LBA, приведенной выше: адрес логического блока и номер логического сектора (LSN) являются синонимами. [3] [15] [16] Формула не использует количество цилиндров, но требует количества головок и количества секторов на дорожку в геометрии диска, поскольку один и тот же кортеж CHS адресует разные номера логических секторов в зависимости от геометрии.

Примеры :

Для геометрии 1020 16 63диска с 1028160 секторами CHS 3 2 1равен LBA 3150 = ((3 × 16) + 2) × 63 + (1 – 1) ;
Для геометрии 1008 4 255диска с 1028160 секторами CHS 3 2 1равен LBA 3570 = ((3 × 4) + 2) × 255 + (1 – 1)
Для геометрии  64 255 63диска с 1028160 секторами CHS 3 2 1равен LBA 48321=((3 × 255) + 2) × 63 + (1 – 1)
Для геометрии 2142 15 32диска с 1028160 секторами CHS 3 2 1равен LBA 1504 = ((3 × 15) + 2) × 32 + (1 – 1)

Чтобы визуализировать последовательность секторов в линейной модели LBA, обратите внимание на следующее:

Первый сектор LBA — это сектор № 0, этот же сектор в модели CHS называется сектором № 1.
Все сектора каждой головки/дорожки подсчитываются перед переходом к следующей головке/дорожке.
Все головки/дорожки одного цилиндра подсчитываются перед переходом к следующему цилиндру.
Внешняя половина целого жесткого диска будет первой половиной диска.

История

Формат Cylinder Head Record использовался жесткими дисками Count Key Data (CKD) на мэйнфреймах IBM по крайней мере с 1960-х годов. Он во многом сопоставим с форматом Cylinder Head Sector, используемым ПК, за исключением того, что размер сектора не был фиксированным, а мог меняться от дорожки к дорожке в зависимости от потребностей каждого приложения. В современном использовании геометрия диска, представленная мэйнфрейму, эмулируется встроенным ПО хранилища и больше не имеет никакого отношения к геометрии физического диска. [ необходима цитата ]

Более ранние жесткие диски, используемые в ПК, такие как MFM и RLL , делили каждый цилиндр на равное количество секторов, поэтому значения CHS соответствовали физическим свойствам диска. Диск с кортежем CHS 500 4 32имел бы 500 дорожек на сторону на каждой пластине, две пластины (4 головки) и 32 сектора на дорожку, с общим объемом 32 768 000 байт (31,25  МиБ ). [ необходима цитата ]

Диски ATA/IDE были намного более эффективны при хранении данных и заменили теперь уже архаичные диски MFM и RLL. Они используют зонную битовую запись (ZBR), где количество секторов, разделяющих каждую дорожку, зависит от расположения групп дорожек на поверхности пластины. Дорожки, расположенные ближе к краю пластины, содержат больше блоков данных, чем дорожки, расположенные ближе к шпинделю, поскольку в пределах данной дорожки у края пластины больше физического пространства. Таким образом, схема адресации CHS не может напрямую соответствовать физической геометрии таких дисков из-за различного количества секторов на дорожку для разных областей на пластине. Из-за этого многие диски по-прежнему имеют избыток секторов (размером менее 1 цилиндра) в конце диска, поскольку общее количество секторов редко, если вообще когда-либо, заканчивается на границе цилиндра. [ необходима цитата ]

Диск ATA/IDE может быть установлен в BIOS системы с любой конфигурацией цилиндров, головок и секторов, которые не превышают емкость диска (или BIOS), поскольку диск преобразует любое заданное значение CHS в фактический адрес для своей конкретной аппаратной конфигурации. Однако это может вызвать проблемы совместимости. [ необходима цитата ]

Для операционных систем, таких как Microsoft DOS или более старая версия Windows , каждый раздел должен начинаться и заканчиваться на границе цилиндра. [ необходима ссылка ] Только некоторые из относительно современных операционных систем (включая Windows XP) могут игнорировать это правило, но это все равно может вызвать некоторые проблемы совместимости, особенно если пользователь хочет выполнить двойную загрузку на одном и том же диске. Microsoft не следует этому правилу с помощью внутренних инструментов для разделов диска, начиная с Windows Vista. [17]

Смотрите также

Ссылки

  1. ^ "Обзор и история интерфейса IDE/ATA". The PC Guide . 17 апреля 2001 г. Архивировано из оригинала 4 февраля 2019 г.
  2. ^ ab Jonathan de Boyne Pollard (2011). "The gen on disc partition alignment" . Получено 21 ноября 2022 г. .
  3. ^ abc "Объем и структура файлов дисковых картриджей для обмена информацией". Стандарт ECMA-107 (2-е изд., июнь 1995 г.) . ECMA . 1995 . Получено 30 июля 2011 г. .
  4. ^ "Стандартные форматы дискет, поддерживаемые MS-DOS". KB75131 . База знаний Microsoft . 12 мая 2003 г. Архивировано из оригинала 31 января 2009 г. Получено 4 июня 2023 г.
  5. ^ "Western Digital's Advanced Format: The 4K Sector Transition Begins". AnandTech . 18 декабря 2009 г. Получено 29 июля 2011 г.
  6. ^ "Advanced Format Technology Brief" (PDF) . Hitachi . 2010. стр. 1. Архивировано из оригинала (PDF) 27 сентября 2011 г. . Получено 1 августа 2011 г. . Эмуляция 512 байт иногда называется 512e
  7. ^ abc Andries Brouwer (1 ноября 2004 г.). "История ограничений BIOS и IDE". Large Disk HOWTO v2.5 . Получено 30 июля 2011 г.
  8. ^ "Windows NT 4.0 поддерживает системный раздел размером максимум 7,8 ГБ". Microsoft . 23 февраля 2007 г. . Получено 30 июля 2011 г. .
  9. ^ "5K500.B SATA OEM Specification Revision 1.2" (PDF) . Hitachi . 17 марта 2009 г. стр. 51. Архивировано из оригинала (PDF) 27 сентября 2011 г.
  10. ^ "ATA-2" (PDF) . X3T10/0948D . Технический комитет INCITS T13 AT Приложение. 18 марта 1996 г. Архивировано из оригинала (PDF) 28 июля 2011 г.
  11. ^ "ATA-1" (PDF) . X3T10/791D . Технический комитет INCITS T10 Интерфейсы хранения SCSI. 1994. Архивировано из оригинала (PDF) 21 марта 2012 г.
  12. ^ "Util-linux 2.25 Release Notes". Архив ядра Linux . Получено 24 марта 2016 г.
  13. ^ "ATA-6" (PDF) . T13/1410D . Технический комитет INCITS T13 ATA Storage Interface. 2002. стр. 22. Архивировано из оригинала (PDF) 28 июля 2011 г. . Получено 30 июля 2011 г. В стандартах ATA/ATAPI-5 и более ранних была определена трансляция CHS. Эта трансляция устарела, но может быть реализована, как определено в ATA/ATAPI-5.
  14. ^ "ATA-5" (PDF) . T13/1321D . Технический комитет INCITS T13 ATA Storage Interface. 2000. стр. 19. Архивировано из оригинала (PDF) 28 июля 2011 г. . Получено 30 июля 2011 г. . Если емкость устройства больше или равна одному сектору и меньше или равна 16 514 064 секторам, то устройство должно поддерживать трансляцию CHS.
  15. ^ ab "Информационные технологии. Объем и структура файлов дисковых картриджей для обмена информацией". ISO/IEC 9293:1994 . Каталог ISO . 1994 . Получено 6 января 2012 г. .
  16. ^ ab "Обработка информации. Объем и структура файлов картриджей гибких дисков для обмена информацией". ISO 9293:1987 . Каталог ISO . 1987 . Получено 6 января 2012 .
  17. ^ "KB931760". Поддержка Microsoft Windows XP . База знаний Microsoft . 23 июля 2009 г. Получено 30 июля 2011 г.

Примечания

1. ^ Это правило справедливо по крайней мере для всех форматов, где физические сектора именуются от 1 и выше. Однако есть несколько странных форматов дискет (например, формат 640  КБ , используемый BBC Master 512 с DOS Plus 2.1), где первый сектор на дорожке именуется «0», а не «1».
2. ^ В то время как компьютеры начинают отсчет с 0, DOS начинает отсчет с 1. Чтобы сделать это, DOS добавляет 1 к счету голов перед тем, как отобразить его на экране. Однако вместо того, чтобы сначала преобразовать 8-битное целое число без знака в большее значение (например, 16-битное целое число), DOS просто добавляет 1. Это переполняет счет голов 255 ( ) до 0 ( ) вместо 256, которые можно было бы ожидать. Это было исправлено в DOS 8, но к тому времени фактическим стандартом стало не использовать значение голов 255.0xFF0x100 & 0xFF = 0x00