Физическая структура диска: дорожки, секторы, блоки.
Емкость диска зависит от характеристики дисковода и особенностей операционной системы; однако, структура диска, в сущности, всегда одна и та же. Данные всегда записываются на магнитной поверхности в виде концентрических окружностей, называемых дорожками. Каждая дорожка, в свою очередь, состоит из нескольких секторов, количество которых определяется при операции форматирования.
Сектор является единицей хранения информации на дискете. Количество информации на диске, таким образом, зависит от числа дорожек (от плотности записи ) и общего размера секторов на каждой дорожке. Старые модели дисководов работали с 40 дорожками, нынешние модели - с 80, большинство современных дисководов позволяют форматировать дискеты плотностью до 85 дорожек.
Для стандартных дискет IBM расположение каждой дорожки не может быть изменен, потому что это, прежде всего, зависит не от ОС и не от дискеты, а от конструктивных особенностей дисковода. Однако, число, размер и расположение секторов задаются программно при первоначальной разметке ( форматировании ) дискеты. Разметка осуществляется либо ОС, либо используются функции BIOS. Хотя MS-DOS поддерживает размеры сектора дискет 128, 256, 512 и 1024 байта, однако используется сектор размером 512 байт и, по-видимому, это в ближайшее время не изменится ( если и измениться, то только в сторону увеличения ).
Структура формата дорожки зависит от типа контроллера, но, как правило, включает в себя байты синхронизации, указывающие на начало каждого сектора, идентификационные заголовки, состоящие из номера цилиндра, головки, сектора и размера сектора, и поля, хранящего байты циклического контроля, предназначенные для обнаружения ошибок при считывании данных и служебной информации.
──┬────────┬───────┬──────┬──────────┬──∙∙──┬──────────┬─────────
│ gap4a │ index │ gap1 │ sector 1 │ │ sector n │ gap4b
──┴────────┼───────┼──────┼──────────┼──∙∙──┴──────────┴─────────
┌────┘ └───┐ │ │
├───────┬────────┤ │ │
│ sync │ IAM │ │ │
└───────┴────────┘ │ │
┌──────┘ └───┐
├────────┬────────────┤
│ header │ data field │
├────────┴────────────┤
┌────────────────┘ └──────────────────────┐
├─────┬─────┬─┬─┬─┬─┬────┬──────┬─────┬─────┬──────┬────┬─────┤
│ sync│ SAM │c│h│r│n│ crc│ gap2 │ sync│ DAM │ data │ crc│ gap3│
└─────┴─────┴─┴─┴─┴─┴────┴──────┴─────┴─────┴──────┴────┴─────┘
На приведенной выше схеме :
┌────────┬──────────────────────────────────┬───────────┬──────┐
│ Обозн. │ Назначение поля │ Содержимое│ Длина│
├────────┼──────────────────────────────────┼───────────┼──────┤
│ GAP4A │ Предындексный зазор дорожки │ 4E │ 50 │
│ SYNC │ Поле синхронизации │ 00 │ 0C │
│ IAM │ Адресный маркер начала дорожки─┬─┼── C2* │ 3 │
│ │ └─┼── FC │ 1 │
│ SAM │ Маркер начала сектора──────────┬─┼── A1 │ 3 │
│ │ └─┼── FE │ 1 │
│ C │ Номер цилиндра │ -- │ 1 │
│ Н │ Номер головки │ -- │ 1 │
│ R │ Номер сектора │ -- │ 1 │
│ N │ Код размера сектора │ -- │ 1 │
│ CRC │ Контрольный код │ -- │ 2 │
│ GAP2 │ Зазор заголовка сектора │ 4E │ 16 │
│ DAM │ Маркер начала данных───────────┬─┼── A1 │ 3 │
│ │ └─┼── FB │ 1 │
│ GAP3 │ Зазоp области данных │ 4E │ 50 │
│ data │ Данные │ -- │ ** │
│ GAP4B │ Зазор дорожки │ 4E │ *** │
* - Данные поля записываются со специально нарушенными битами синхронизации.
** - Длина данных определяется по формуле 128*2^N, где N – код длины из заголовка сектора: от 0 (128б) до 7 (16384б).
*** - Длина определяется оставшимся расстоянием до индексного отверстия и зависит только от скорости вращения дисковода в момент форматирования.
Поля GAP1..GAP4 служат прежде всего для организации задержки при выдачи порций данных с дискеты, а также для компенсации разбросов физической длины различных полей, возникающих из-за несовершенства механизма дисковода ( конкретнее, из-за нестабильности вращения ). Маркеры служат для выделения определенных областей на диске: идентификатора дорожки, заголовка сектора или области данных. Для того что бы маркеры можно было отличить от данных, их записывают со специально нарушенным кодом синхронизации. Четвертый байт маркера обозначает тип выделяемой им области. Конкретно в маркере области данных значение fb соответствует обычным данным, а f8 - удаленным.
Целостность информации в областях данных контролируется с помощью циклического контрольного кода, контрольные числа которого записываются после определенных областей. При считывании с дискеты контроллер самостоятельно высчитывает контрольную сумму, а затем сравнивает ее со считанной с диска. Эта контрольная сумма, называемая кодом циклического контроля ( CRC - Cyrcle Redundency Contol ), подсчитывается с помощью полинома следующего вида :
X__16__ + X__12__ + X__5__ + X + 1
В случае несовпадении этих двух чисел выставляется флаг ошибки.
Дата добавления: 2016-11-26; просмотров: 2597;