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

редактировать

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

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

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

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

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

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

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

Содержание
  • 1 Определения
    • 1.1 Секторы
    • 1.2 Дорожки
    • 1.3 Цилиндры
    • 1.4 Головки
    • 1.5 Блоки и кластеры
  • 2 Отображение CHS в LBA
  • 3 История
  • 4 См. Также
  • 5 Ссылки
  • 6 Примечания
Определения
схематическая геометрия жесткого диска

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

Секторы

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

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

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

При адресации CHS номера секторов всегда начинаются с 1, нет сектора 0, что может привести к путанице, поскольку схемы адресации логических секторов обычно начинают отсчет с 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 головки, по одной с каждой стороны. (Иногда термин сторона заменяется на головку, поскольку пластины могут быть отделены от их головок, как в случае со съемным носителем флоппи-дисковода.)

Адресация CHSподдерживается в IBM-PC-совместимых Код BIOS использовал восемь бит для - теоретически до 256 головок, считающихся головками 0 до 255 (FFh). Однако ошибка во всех версиях Microsoft DOS / IBM PC DOS до 7.10 включительно приведет к сбою этих операционных систем при загрузке при обнаружении томов с 256 головками. Следовательно, все совместимые BIOS будут использовать сопоставления до 255 головок (00h..FEh), в том числе в виртуальной 255 × 63геометрии.

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

(512 байт / сектор) × (63 сектора / дорожка) × (255 головок (дорожек / цилиндр)) × (1024 цилиндра) = 8032,5MB, но на самом деле 512 × 63 × 256 × 1024 = 8064MB дает то, что известен как предел 8 GB. В этом контексте соответствующее определение 8 ГБ = 8192 МБ является еще одним неверным пределом, поскольку для него потребуется CHS 512 × 64 × 256с 64 секторами на дорожку.

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

Адресация 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. В результате получается ограничение примерно 128 GB ; фактически 65536 × 16 × 255 = 267386880секторов, соответствующих 130560 МБ для размера сектора 512 байт. 28 = 16 + 4 + 8бит в спецификации ATA-2 также охвачены Списком прерываний Ральфа Брауна, и теперь его старый рабочий проект опубликован стандарт с истекшим сроком годности.

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

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

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

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

Отображение CHS в LBA

В 2002 году спецификация ATA-6 представила необязательную 48-битную логическую адресацию блоков и объявила адресацию CHS как устаревшую, но все еще разрешенную реализовать переводы ATA-5. Неудивительно, что приведенная ниже формула преобразования 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).

CHS кортежи могут быть отображены на адреса LBA с помощью следующей формулы:

A = (c ⋅ N Heads + h) ⋅ N секторов + (s - 1),

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

Формула логического номера сектора в стандартах ECMA -107 и ISO / IEC 9293: 1994 (заменяющих ISO 9293: 1987) для Файловая система FAT точно соответствует приведенной выше формуле LBA: логический адрес блока и логический номер сектора (LSN) являются синонимами. Формула не использует количество цилиндров, но требует количества головок и количества секторов на дорожку в геометрии диска, потому что один и тот же кортеж 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.
Все секторы каждой головки / дорожки подсчитываются перед переходом к следующей головке / дорожке.
Все головки / дорожки одного и того же цилиндра подсчитываются перед переходом к следующему цилиндру.
Внешняя половина всего жесткого диска будет первой половиной диска.
История

Формат записи головки блока цилиндров использовался жесткими дисками 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.

См. Также
Ссылки
Примечания
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.
Последняя правка сделана 2021-05-16 12:51:25
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте