Сектор головки цилиндра
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.
Треки
[ редактировать ]Дорожки представляют собой тонкие концентрические круговые полоски секторов. Для чтения одной дорожки требуется как минимум одна головка. Что касается геометрии диска, термины « дорожка» и « цилиндр» тесно связаны. односторонней или двусторонней дискеты для Это общий термин ; а для более чем двух головок цилиндр является общим термином. Строго говоря, трек — это данность. CH
комбинация, состоящая из SPT
секторов, а цилиндр состоит из SPT×H
сектора.
Цилиндры
[ редактировать ]Цилиндр — это часть данных на диске , которая используется в режиме адресации CHS диска с фиксированной блочной архитектурой или в режиме адресации головки цилиндра-записи (CCHHR) диска CKD .
Идея заключается в концентрических, полых, цилиндрических срезах физических дисков ( пластины ), собирающих соответствующие круговые дорожки, выровненные по стопке пластин. Число цилиндров жесткого диска в точности равно количеству дорожек на одной поверхности накопителя. Он содержит один и тот же номер дорожки на каждой пластине, охватывая все такие дорожки на каждой поверхности пластины, которая может хранить данные (независимо от того, является ли дорожка «плохой»). Цилиндры вертикально образованы гусеницами . Другими словами, дорожка 12 на пластине 0 плюс дорожка 12 на пластине 1 и т. д. — это цилиндр 12.
Другие формы устройств хранения данных с прямым доступом (DASD), такие как барабанные устройства памяти или IBM 2321 Data Cell , могут давать адреса блоков, которые включают адрес цилиндра, хотя адрес цилиндра не выбирает (геометрический) цилиндрический фрагмент устройства. .
Руководители
[ редактировать ]Устройство, называемое головкой, считывает и записывает данные на жесткий диск, манипулируя магнитным носителем, составляющим поверхность связанного диска. Естественно, у пластины есть две стороны и, следовательно, две поверхности, на которых можно манипулировать данными; обычно на блюдо приходится 2 головки, по одной с каждой стороны. (Иногда термин «сторона» заменяется словом «головка», поскольку пластины могут быть отделены от головок, как в случае со съемными носителями флоппи - дисковода.)
The CHS
совместимом с IBM-PC, Адресация, поддерживаемая в коде BIOS, использует восемь битов, максимум 256 головок, которые считаются головками от 0 до 255 ( FFh
). Однако ошибка во всех версиях Microsoft DOS / IBM PC DOS до 7.10 включительно приведет к сбою этих операционных систем при загрузке при обнаружении томов с 256 головками. [2] . Следовательно, все совместимые BIOS будут использовать сопоставления с числом головок до 255 ( 00h..FEh
) только, в том числе в виртуальном 255×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 ( 1024=210
). Добавление шести битов для секторов и восьми битов для головок дает 24 бита, поддерживаемые прерыванием BIOS 13h . Вычитание запрещенного сектора номер 0 в 1024×256
треков соответствует 128 МБ для размера сектора 512 байт ( 128 MB=1024×256×(512 byte/sector)
); и 8192-128=8064
подтверждает (примерно) ограничение в 8 ГБ . [ 8 ]
Адресация 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 и т. д.), где данные в основном состоят из файлов. На кластеры напрямую не влияет физическая или виртуальная геометрия диска, т. е. кластер может начинаться в секторе, близком к концу заданного диска. CH
отслеживаться и заканчиваться в секторе, расположенном физически или логически следующим CH
отслеживать .
Сопоставление 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 ] и ИСО / МЭК 9293:1994. [ 15 ] (заменяет ISO 9293:1987). [ 16 ] ) для файловых систем FAT в точности соответствует приведенной выше формуле LBA: адрес логического блока и номер логического сектора (LSN) являются синонимами. [ 3 ] [ 15 ] [ 16 ] В формуле не используется количество цилиндров, но требуется количество головок и количество секторов на дорожку в геометрии диска, поскольку один и тот же кортеж CHS адресует разные номера логических секторов в зависимости от геометрии.
Примеры :
- Для геометрии
1020 16 63
диска с 1028160 секторами, CHS3 2 1
LBA 3150 = ((3 × 16) + 2) × 63 + (1 – 1) ; - Для геометрии
1008 4 255
диска с 1028160 секторами, CHS3 2 1
LBA 3570 = ((3 × 4) + 2) × 255 + (1 – 1) - Для геометрии
64 255 63
диска с 1028160 секторами, CHS3 2 1
это LBA 48321 = ((3 × 255) + 2) × 63 + (1 – 1) - Для геометрии
2142 15 32
диска с 1028160 секторами, CHS3 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 ]
См. также
[ редактировать ]- формат компакт-диска
- Блок (хранение данных)
- Дисковое хранилище
- Форматирование диска
- Таблица размещения файлов
- Разметка диска
Ссылки
[ редактировать ]- ^ «Обзор и история интерфейса IDE/ATA» . Руководство для ПК . 17 апреля 2001 г. Архивировано из оригинала 4 февраля 2019 г.
- ^ Перейти обратно: а б Джонатан де Бойн Поллард (2011). «Генератор выравнивания разделов диска» . Проверено 21 ноября 2022 г.
- ^ Перейти обратно: а б с «Объем и файловая структура дисковых картриджей для обмена информацией» . Стандарт ECMA-107 (2-е изд., июнь 1995 г.) . ЭКМА . 1995 . Проверено 30 июля 2011 г.
- ^ «Стандартные форматы гибких дисков, поддерживаемые MS-DOS» . КБ75131 . База знаний Майкрософт . 12 мая 2003 г. Архивировано из оригинала 31 января 2009 г. Проверено 4 июня 2023 г.
- ^ «Расширенный формат Western Digital: начинается переход в сектор 4K» . АнандТех . 18 декабря 2009 года . Проверено 29 июля 2011 г.
- ^ «Краткое описание технологии расширенного формата» (PDF) . Хитачи . 2010. с. 1. Архивировано из оригинала (PDF) 27 сентября 2011 года . Проверено 1 августа 2011 г.
Эмуляцию 512 байт иногда называют 512e.
- ^ Перейти обратно: а б с Андрис Брауэр (1 ноября 2004 г.). «История ограничений BIOS и IDE» . Большой диск HOWTO v2.5 . Проверено 30 июля 2011 г.
- ^ «Windows NT 4.0 поддерживает системный раздел размером не более 7,8 ГБ» . Майкрософт . 23 февраля 2007 года . Проверено 30 июля 2011 г.
- ^ «5K500.B OEM-спецификация SATA, версия 1.2» (PDF) . Хитачи . 17 марта 2009 г. с. 51. Архивировано из оригинала (PDF) 27 сентября 2011 года.
- ^ «АТА-2» (PDF) . X3T10/0948D . INCITS Технический комитет T13 AT. Приложение. 18 марта 1996 г. Архивировано из оригинала (PDF) 28 июля 2011 г.
- ^ «АТА-1» (PDF) . X3T10/791D . Технический комитет INCITS Интерфейсы хранения данных T10 SCSI. 1994. Архивировано из оригинала (PDF) 21 марта 2012 года.
- ^ «Примечания к выпуску Util-linux 2.25» . Архивы ядра Linux . Проверено 24 марта 2016 г.
- ^ «АТА-6» (PDF) . Т13/1410Д . Технический комитет INCITS Интерфейс хранения данных T13 ATA. 2002. с. 22. Архивировано из оригинала (PDF) 28 июля 2011 года . Проверено 30 июля 2011 г.
В стандартах ATA/ATAPI-5 и более ранних версиях была определена трансляция CHS. Этот перевод устарел, но может быть реализован, как определено в ATA/ATAPI-5.
- ^ «АТА-5» (PDF) . Т13/1321Д . Технический комитет INCITS Интерфейс хранения данных T13 ATA. 2000. с. 19. Архивировано из оригинала (PDF) 28 июля 2011 года . Проверено 30 июля 2011 г.
Если емкость устройства больше или равна одному сектору и меньше или равна 16 514 064 секторам, то устройство должно поддерживать трансляцию CHS.
- ^ Перейти обратно: а б «Информационные технологии -- Объем и файловая структура дисковых картриджей для обмена информацией» . ИСО/МЭК 9293:1994 . ИСО Каталог . 1994 . Проверено 6 января 2012 года .
- ^ Перейти обратно: а б «Обработка информации. Объем и файловая структура гибких дисковых картриджей для обмена информацией» . ИСО 9293:1987 . ИСО Каталог . 1987 год . Проверено 6 января 2012 года .
- ^ «КБ931760» . Поддержка 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 (
0xFF
) в 0 (0x100 & 0xFF = 0x00
) вместо ожидаемых 256. Это было исправлено в DOS 8, но к тому времени стало стандартом де-факто не использовать значение заголовка 255.