Сектор головки цилиндров - Cylinder-head-sector

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

Сектор головки цилиндров (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-дюймовых дисках.

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

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

Треки

В треки тонкие концентрический круговые полоски секторов. Для чтения одной дорожки требуется хотя бы одна голова. Что касается геометрии дисков, термины отслеживать и цилиндр тесно связаны. Для одностороннего или двустороннего дискета отслеживать это общий термин; и более двух голов цилиндр это общий термин. Строго говоря отслеживать дано CЧАС комбинация, состоящая изSPT секторов, а цилиндр состоит изSPT ×ЧАС секторов.

Цилиндров

Цилиндр - это разделение данных в дисковод, как используется в режиме адресации CHS Фиксированная блочная архитектура диск или запись головки блока цилиндров (ГКПЗ) в режиме адресации CKD диск.

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

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

Головы

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

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

Эта историческая странность может повлиять на максимальный размер диска в старом BIOS. ИНТ 13ч код так же как старый ПК DOS или аналогичные операционные системы:

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

Треки и цилиндры отсчитываются от 0, т. е. дорожка 0 является первой (самой внешней) дорожкой на дискета или другие цилиндрические диски. Старый BIOS код поддерживает десять битов при адресации CHS с числом цилиндров до 1024 (1024=210). Добавление шести бит для сектора и восемь бит для головы приводит к 24 битам, поддерживаемым Прерывание BIOS 13ч. Вычитая запрещенный сектор номер 0 в 1024×256 треков соответствует 128МБ для сектора размером 512 байт (128 МБ = 1024 × 256 × (512 байт / сектор)); и 8192-128=8064 подтверждает (примерно) ГБ предел.[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 биты в АТА-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 байт блоки.

Кластеры единицы размещения данных в различных файловых системах (ТОЛСТЫЙ, NTFS и др.), где данные в основном состоит из файлов. Кластеры не зависят напрямую от физической или виртуальной геометрии диска, т. е. кластер может начинаться в секторе, близком к концу данного CЧАС отслеживать и заканчивать в секторе на следующем физически или логически CЧАС отслеживать.

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

В 2002 г. АТА-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 = 214).[14]

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

А = (cNголовы + час) ⋅ Nсектора + (s − 1),

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

А Номер логического сектора формула в ECMA -107[3] и ISO /IEC  9293:1994[15] (заменяет ISO 9293: 1987[16]) стандарты для ТОЛСТЫЙ файловые системы точно соответствуют приведенной выше формуле 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.
Все секторы каждой головки / дорожки подсчитываются перед переходом к следующей головке / дорожке.
Все головки / дорожки одного и того же цилиндра подсчитываются перед переходом к следующему цилиндру.
Внешняя половина всего жесткого диска будет первой половиной диска.

История

Формат записи головки блока цилиндров был использован Подсчет ключевых данных (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 ДОС или более старая версия Windows, каждый раздел должен начинаться и заканчиваться на границе цилиндра.[нужна цитата ] Только некоторые из самых современных операционные системы (Windows XP в комплекте) может игнорировать это правило, но это все равно может вызвать некоторые проблемы совместимости, особенно если пользователь хочет выполнить двойная загрузка на том же диске. Microsoft не следует этому правилу с инструментами для внутренних разделов диска, начиная с Windows Vista.[17]

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

Рекомендации

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