Смекни!
smekni.com

Дисковая система IBM PC. (стр. 2 из 5)

поддерживает размеры сектора дискет 128, 256, 512 и 1024 байта,

однако используется сектор размером 512 байт и, по-видимому, это

в ближайшее время не изменится ( если и измениться, то только в

сторону увеличения ).

Структура формата дорожки зависит от типа контроллера, но, как

правило, включает в себя байты синхронизации, указывающие на на-

чало каждого сектора, идентификационные заголовки, cостоящие из

номера цилиндра, головки, сектора и размера сектора, и поля, хра-

нящего байты циклического контроля, предназначеные для обнаруже-

ния ошибок при считывании данных и служебной информации. На сле-

дующем рисунке представлен формат дорожки для стандарта IMB 34.

индекс

───┐ ┌───────────────────────────────────────────────────────────

│ │

└─┘

──┬────────┬───────┬──────┬──────────┬──∙∙──┬──────────┬─────────

│ 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

В случае несовпадении этих двух чисел выставляется флаг ошибки.

_@ Интерфейс адаптера НГМД

Функции сигналов адаптера НГМД следующие:

┌─────────────┬─────────────────────────────────────────────────┐

│Наименование │ Выполняемая функция │

├─────────────┼─────────────────────────────────────────────────┤

│High/Normal │ Используется для переключения схем записи/чтения│

│ │ для работы с нормальной и высокой плотностью │

│Index │ Перепад напряжения с высокого уровня на низкий │

│ │ при обнаружение индексного отверстия │

│Select │ Выбор накопителя ( присутствует постоянно ) │

│Mot │ Включение мотора дисковода │

│Direction │ Направление перемешения головок при сигнале Step│

│ │ низкий уровень - к центру дискеты; │

│ │ высокий уровень - к краю дискеты; │

│Step │ Перемещеие головок на одну дорожку │

│Write data │ Запись информации, каждый импульс вызывает │

│ │ изменение магнитного потока на обратный │

│Write gate │ Разрешение записи информации │

│Track 0 │ Перемещене головок к началу дискеты │

│Write │ Запрет записи на дискеты ( сигнал появляется при│

│ protected │ присутствии дискеты с защитной наклейкой ) │

│Read data │ Перепад напряжения с высокого уровня на низкий │

│ │ соответствуют обнаружению на дискете перехода │

│ │ намагниченности. │

│Select head │ Выбор головки для чтения/записи │

│ │ низкий уровень - головка 1; │

│ │ высокий уровень - головка 0; │

│Ready │ Дискета готова к работе │

│Disk change │ Вставлена новая дискета │

└─────────────┴─────────────────────────────────────────────────┘

Полярность всех сигналов интерфейса (кроме тех, где указано иное)

отрицательная. Сигналы Disk change и High/Normal в IBM PC/XT не

используются.

_@ Логическая организация диска

Первая операция, которую необходимо выполнить перед тем, как

дискета будет готова к использованию - это форматирование. Этот

процесс позволяет придать диску его окончательную структуру. В

ходе форматирования определяется количество дорожек и число сек-

торов на дорожке.

MS-DOS предусматривает четыре логических области дискеты:

- _ загрузочный сектор ( boot record )

- _ таблица размещения файлов ( file allocation table )

- _ корневой каталог

- _ область данных

_"Загрузочный сектор

Содержит короткую ( менее 512 байт ) программу начальной загруз-

ки ОС в память компьютера. Независимо от типа ОС и способа форма-

тирования дискеты, эта программа _ всегда__ занимает самый первый

сектор на самом первой дорожке диска. Следуетразличать _ Boot

_ record __и _ Master__ _ Boot record. __Первый находится на дискеты в слу-

чае если эта дискета не системная. Второй же находится исключи-

тельно на системных дисках. Также этот сектор содержит всю важ-

ную информацию о характеристиках диска. Структура этой информации

следующая :

┌────────┬─────────────────┬────┬─────────────────────────────────┐