Сектор-цилиндр ( CHS ) - это ранний метод присвоения адресов каждому физическому блоку данных на жестком диске .
Это трехмерная система координат, состоящая из вертикальной координатной головки , горизонтального (или радиального) координатного цилиндра и углового координатного сектора . Голова выбирает круговую поверхность: опорную пластину в диске (и одну из двух его сторон). Цилиндр - это цилиндрическое пересечение стопки пластин в диске с центром вокруг шпинделя диска. Вместе цилиндр и головка пересекаются по круговой линии, а точнее: круговой полосе физических блоков данных, называемой дорожкой.. Сектор, наконец, выбирает, к какому блоку данных в этой дорожке следует обращаться, и его можно рассматривать как своего рода угловой компонент - срез треков или в этой системе координат, часть определенной дорожки в определенном срезе.
Были представлены адреса CHS вместо простых линейных адресов (от 0 до общего числа блоков на диске - 1), потому что ранние жесткие диски не поставлялись со встроенным контроллером диска , который скрывал бы физическую структуру. Использовалась отдельная универсальная карта контроллера, так что операционная система должна была знать точную физическую «геометрию» конкретного диска, подключенного к контроллеру, для правильной адресации блоков данных.
По мере усложнения геометрии (например, с введением зональной записи битов ) и увеличения размеров дисков со временем метод адресации CHS стал ограничивающим. С конца 1980-х годов жесткие диски начали поставляться со встроенным контроллером диска [1] , который хорошо знал физическую геометрию; однако они будут сообщать компьютеру ложную геометрию, например, о большем количестве головок, чем на самом деле, чтобы получить больше адресного пространства. Эти логические значения CHS будут преобразованы контроллером, поэтому адресация CHS больше не соответствует никаким физическим атрибутам диска. [2]
К середине 1990-х интерфейсы жестких дисков заменили схему CHS на логическую адресацию блоков (LBA), но многие инструменты для управления таблицей разделов основной загрузочной записи (MBR) все еще выравнивали разделы по границам цилиндров; таким образом, к концу 2000-х годов в программном обеспечении для разбиения на разделы все еще наблюдались артефакты адресации CHS. [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 байта на сектор. Жесткие диски расширенного формата используют 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 стороны и, следовательно, 2 поверхности, на которых можно манипулировать данными; Обычно на пластине 2 головки, по одной с каждой стороны. (Иногда термин сторона заменяется на головку, поскольку пластины могут быть отделены от их головок, как в случае съемного носителя в дисководе для гибких дисков.)
Адресация поддерживается в IBM-PC совместимых биосов коды используется восемь бит для - теоретически до 256 голов считаются как головка 0 до 255 ( ). Однако ошибка во всех версиях Microsoft DOS / IBM PC DOS до 7.10 включительно приведет к сбою этих операционных систем при загрузке при обнаружении томов с 256 головками [2] . Следовательно, все совместимые BIOS будут использовать сопоставления до 255 голов ( ), в том числе в виртуальной геометрии.CHS
FFh
00h..FEh
255×63
Эта историческая странность может повлиять на максимальный размер диска в старом коде BIOS INT 13h, а также в старых 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=210
1024×256
128 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 сообщества используют термин блок для обозначения сектора или группы секторов. Например, утилита fdisk в Linux до версии 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 = ( c ⋅ N голов + h ) ⋅ N секторов + ( s - 1),
где A - адрес LBA, N головок - количество головок на диске, N секторов - максимальное количество секторов на дорожку, а ( c , h , s ) - адрес CHS.
Номер логического сектора формула в ECMA -107 [3] и ИСО / МЭК 9293: 1994 [15] (заменяющий ISO 9293: 1987 [16] ) стандарты для FAT файловых систем точно соответствует формуле ЛАБА , приведенной выше: адрес логического блока и Номер логического сектора (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 - это сектор №0, тот же сектор в модели CHS называется сектором №1.
- Все секторы каждой головки / дорожки подсчитываются перед переходом к следующей головке / дорожке.
- Все головки / дорожки одного и того же цилиндра подсчитываются перед переходом к следующему цилиндру.
- Внешняя половина всего жесткого диска будет первой половиной диска.
История
Формат записи головки блока цилиндров использовался жесткими дисками 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]
Смотрите также
- Формат CD-ROM
- Блок (хранилище данных)
- Дисковое хранилище
- Форматирование диска
- Таблица размещения файлов
- Разбиение диска
Рекомендации
- ^ «Обзор и история интерфейса IDE / ATA» . Руководство для ПК . 17 апреля 2001 года Архивировано из оригинала 4 февраля 2019 года.
- ^ а б де Бойн Поллар, Джонатан (2011). «Генерация выравнивания разделов диска» .
- ^ а б в «Объем и файловая структура дисковых картриджей для обмена информацией» . Стандарт ECMA-107 (2-е изд., Июнь 1995 г.) . ECMA . 1995 . Проверено 30 июля 2011 года .
- ^ «Стандартные форматы гибких дисков, поддерживаемые MS-DOS» . KB75131 . База знаний Microsoft . 12 мая 2003 . Проверено 31 июля 2011 года .
- ^ «Расширенный формат Western Digital: переход в сектор 4K начинается» . AnandTech . 18 декабря 2009 . Проверено 29 июля 2011 года .
- ^ «Краткий обзор передовых технологий форматирования» (PDF) . Hitachi . 2010. с. 1. Архивировано из оригинального (PDF) 27 сентября 2011 года . Проверено 1 августа 2011 года .
Эмуляция 512 байт иногда обозначается как 512e
- ^ а б в Андрис Брауэр (1 ноября 2004 г.). «История ограничений BIOS и IDE» . Большой диск HOWTO v2.5 . Проверено 30 июля 2011 года .
- ^ «Windows NT 4.0 поддерживает системный раздел размером не более 7,8 ГБ» . Microsoft . 23 февраля 2007 . Проверено 30 июля 2011 года .
- ^ «5K500.B SATA OEM Specification Revision 1.2» (PDF) . Hitachi . 17 марта 2009 г. с. 51. Архивировано из оригинального (PDF) 27 сентября 2011 года.
- ^ «АТА-2» (PDF) . X3T10 / 0948D . Технический комитет INCITS T13 AT Приложение. 18 марта 1996 г. Архивировано из оригинального (PDF) 28 июля 2011 г.
- ^ «АТА-1» (PDF) . X3T10 / 791D . Интерфейсы хранения SCSI T10 Технического комитета INCITS . 1994. Архивировано из оригинального (PDF) 21 марта 2012 года.
- ^ «Примечания к выпуску Util-linux 2.25» . Архивы ядра Linux . Проверено 24 марта 2016 .
- ^ «АТА-6» (PDF) . T13 / 1410D . Интерфейс хранения ATA T13 Технического комитета INCITS . 2002. с. 22. Архивировано из оригинального (PDF) 28 июля 2011 года . Проверено 30 июля 2011 года .
В стандартах ATA / ATAPI-5 и ранее была определена трансляция CHS. Это преобразование устарело, но может быть реализовано, как определено в ATA / ATAPI-5.
- ^ «АТА-5» (PDF) . Т13 / 1321Д . Интерфейс хранения ATA T13 Технического комитета INCITS . 2000. с. 19. Архивировано из оригинального (PDF) 28 июля 2011 года . Проверено 30 июля 2011 года .
Если емкость устройства больше или равна одному сектору и меньше или равна 16 514 064 секторам, то устройство должно поддерживать трансляцию CHS.
- ^ а б «Информационные технологии - Объем и файловая структура дисковых картриджей для обмена информацией» . ИСО / МЭК 9293: 1994 . Каталог ISO . 1994 . Проверено 6 января 2012 года .
- ^ а б «Обработка информации - Объем и файловая структура гибких дисковых картриджей для обмена информацией» . ISO 9293: 1987 . Каталог ISO . 1987 . Проверено 6 января 2012 года .
- ^ «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 (
0xFF
) в 0 (0x100 & 0xFF = 0x00
) вместо 256. этого следовало ожидать. Это было исправлено в DOS 8, но к тому времени стало стандартом де-факто не использовать значение заголовка 255.