stringtranslate.com

Сектор головки цилиндра

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

Cylinder-head-sector ( CHS ) — это ранний метод присвоения адресов каждому физическому блоку данных на жестком диске .

Это трехмерная система координат, состоящая из вертикальной координатной головки , горизонтального (или радиального) координатного цилиндра и углового сектора координат . Голова выбирает круглую поверхность: пластину в диске (и одну из двух его сторон). Цилиндр — это цилиндрическое пересечение стопки пластин диска, сосредоточенное вокруг шпинделя диска. В совокупности цилиндр и головка пересекаются в круговую линию, или, точнее, в круговую полосу физических блоков данных, называемую дорожкой . Наконец, сектор выбирает, к какому блоку данных на этой дорожке следует обратиться, поскольку дорожка подразделяется на несколько частей одинакового размера, каждая из которых представляет собой дугу размером (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), но в 1980-х годах стали доминировать форматы с 512 байтами на физический сектор. [3] [4]

Сегодня наиболее распространенный размер физического сектора жестких дисков составляет 512 байт, но существуют жесткие диски с 520 байтами на сектор и для машин, не совместимых с IBM. В 2005 году на некоторых специальных жестких дисках Seagate использовался сектор размером 1024 байта на сектор. Жесткие диски расширенного формата используют 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 Data Cell , могут давать адреса блоков, которые включают адрес цилиндра, хотя адрес цилиндра не выбирает (геометрический) цилиндрический фрагмент устройства. .

Руководители

Устройство, называемое головкой , считывает и записывает данные на жесткий диск, манипулируя магнитным носителем, составляющим поверхность связанного диска. Естественно, у пластины есть две стороны и, следовательно, две поверхности, на которых можно манипулировать данными; обычно на блюдо приходится 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 также соответствует последнему переводу CHS ATA-5. В спецификации 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 — это сектор № ноль, тот же сектор в модели CHS называется сектором № один.
Все сектора каждой головки/дорожки подсчитываются перед переходом к следующей головке/дорожке.
Все головки/дорожки одного цилиндра подсчитываются перед переходом к следующему цилиндру.
Внешняя половина всего жесткого диска будет первой половиной диска.

История

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

Ранее используемые в ПК жесткие диски, такие как диски 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». Руководство для ПК . 17 апреля 2001 г. Архивировано из оригинала 4 февраля 2019 г.
  2. ^ аб Джонатан де Бойн Поллард (2011). «Генератор выравнивания разделов диска» . Проверено 21 ноября 2022 г.
  3. ^ abc «Объем и файловая структура дисковых картриджей для обмена информацией». Стандарт ECMA-107 (2-е изд., июнь 1995 г.) . ЭКМА . 1995 . Проверено 30 июля 2011 г.
  4. ^ «Стандартные форматы гибких дисков, поддерживаемые MS-DOS» . КБ75131 . База знаний Майкрософт . 12 мая 2003 г. Архивировано из оригинала 31 января 2009 г. Проверено 4 июня 2023 г.
  5. ^ «Расширенный формат Western Digital: начинается переход в сектор 4K» . АнандТех . 18 декабря 2009 года . Проверено 29 июля 2011 г.
  6. ^ «Краткое описание технологии расширенного формата» (PDF) . Хитачи . 2010. с. 1. Архивировано из оригинала (PDF) 27 сентября 2011 года . Проверено 1 августа 2011 г. Эмуляцию 512 байт иногда называют 512e.
  7. ^ abc Андрис Брауэр (1 ноября 2004 г.). «История ограничений BIOS и IDE». Большой диск HOWTO v2.5 . Проверено 30 июля 2011 г.
  8. ^ «Windows NT 4.0 поддерживает системный раздел размером не более 7,8 ГБ» . Майкрософт . 23 февраля 2007 года . Проверено 30 июля 2011 г.
  9. ^ «5K500.B OEM-спецификация SATA, версия 1.2» (PDF) . Хитачи . 17 марта 2009 г. с. 51. Архивировано из оригинала (PDF) 27 сентября 2011 года.
  10. ^ «АТА-2» (PDF) . X3T10/0948D . Технический комитет INCITS T13 AT. Приложение. 18 марта 1996 г. Архивировано из оригинала (PDF) 28 июля 2011 г.
  11. ^ «АТА-1» (PDF) . X3T10/791D . Технический комитет INCITS Интерфейсы хранения данных T10 SCSI. 1994. Архивировано из оригинала (PDF) 21 марта 2012 года.
  12. ^ «Примечания к выпуску Util-linux 2.25» . Архивы ядра Linux . Проверено 24 марта 2016 г.
  13. ^ «АТА-6» (PDF) . Т13/1410Д . Технический комитет INCITS Интерфейс хранения данных T13 ATA. 2002. с. 22. Архивировано из оригинала (PDF) 28 июля 2011 года . Проверено 30 июля 2011 г. В стандартах ATA/ATAPI-5 и более ранних версиях была определена трансляция CHS. Этот перевод устарел, но может быть реализован, как определено в ATA/ATAPI-5.
  14. ^ «АТА-5» (PDF) . Т13/1321Д . Технический комитет INCITS Интерфейс хранения данных T13 ATA. 2000. с. 19. Архивировано из оригинала (PDF) 28 июля 2011 года . Проверено 30 июля 2011 г. Если емкость устройства больше или равна одному сектору и меньше или равна 16 514 064 секторам, то устройство должно поддерживать трансляцию CHS.
  15. ^ ab «Информационные технологии - Объем и файловая структура дисковых картриджей для обмена информацией». ИСО/МЭК 9293:1994 . Каталог ИСО . 1994 . Проверено 6 января 2012 года .
  16. ^ ab «Обработка информации. Объем и файловая структура гибких дисковых картриджей для обмена информацией». ИСО 9293:1987 . Каталог ИСО . 1987 год . Проверено 6 января 2012 года .
  17. ^ "KB931760". Поддержка Microsoft Windows XP . База знаний Майкрософт . 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