Найти

Методические указания по Организации ЭВМ и систем

Привалко Катерина, гр.22-6, 21.12.2000

Лабораторная работа №4

Диски - это запоминающие устройства, основу которых составляет вращающаяся пластина с намагниченной поверхностью, на которой сохраняется цифровая информация. Для считывания и записи данных в дисководе диска имеются головки считывания-записи. Диски называются также устройствами с произвольным доступом, поскольку головка считывания-записи может быть независимо позиционирована в любое место на диске.

Существуют два основных вида дисков: гибкий диск (дискета) и жесткий диск (диск).

Жесткий диск состоит из нескольких жестких круглых пластинок, покрытых магнитным материалом. Пластинки вращаются с огромной скоростью (порядка 3600 - 7000 об/мин) (в наше время гораздо больше) в геометрическом корпусе. Пластинки смонтированы на оси, вращаемой небольшим мотором. Около каждой стороны пластинки располагается по одной магнитной головке, но эти головки не соприкасаются с диском, а плавают на воздушной подушке в непосредственной близости от его поверхности. Головки считывания-записи смонтированы на позиционерах, перемещаемых вместе и управляемых с помощью другого мотора.

Подавая команды дисковому контроллеру, программа может перемещать блок головок вдоль радиуса диска, переходя, таким образом, от одного цилиндра к другому.

Перемещаясь вдоль окружности дорожки, магнитная головка может записывать или считывать информацию примерно так, как это происходит в бытовом магнитофоне. Запись выполняется по битам, при этом добавляется различная служебная информация и информация для контроля данных.

Контроллер диска, соединенный с каждым дисководом проводами либо представляет собой плату, вставляемую в слот компьютера, либо вмонтированную в материнскую плату, которая с помощью электрических сигналов управляет диском и головками.

Данные записываются не сплошным потоком, а блоками определенного размера - секторами. Сектор представляет собой наименьший объем данных, который записывается или прочитывается контроллером.

Для каждого сектора выполняется контроль записи или чтения. При записи сектора вычисляется контрольная сумма всех байтов, находящихся в секторе и эта контрольная сумма записывается на диск в служебную область, расположенную после сектора. При чтении эта контрольная сумма вычисляется заново и сравнивается с контрольной суммой, считанной из служебной области. При несовпадении контроллер сообщает программе об ошибке.

Дорожки нумеруются, начиная от нулевой, головки тоже начиная от нулевой, а сектора - начиная с первого. Для правильной работы с дисками на физическом уровне программе недостаточно знать номер нужной головки или дорожки. Например, она должна знать, сколько головок и сколько дорожек имеет то или иное дисковое устройство, сколько байт содержится в одном секторе, и многое другое. Эти характеристики можно определить из таблиц параметров НМД, заполняемых BIOS в процессе инициализации системы.

Анализируя содержимое CMOS-памяти или установку перемычек на плате в компьютере, BIOS в процессе инициализации создает таблицу параметров дискеты DPT (Diskette Parameter Table). Если имеется специальная "дисковая"" система ввода/вывода, то она сама создает таблицы HDPT.

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


Программирование контроллера.

Большинство дисковых операций можно выполнить на уровне BIOS. Это самый простой и надежный способ работы с диском на физическом уровне. Однако в отдельных случаях вам может потребоваться непосредственный доступ к контроллеру (например, если вы разрабатываете систему защиты данных от несанкционированного копирования).

Формат дорожки диска:

FF 
00Прединдексный синхронизирующий промежуток
IAMИндексная адресная метка
 Промежуток
 Сектор 1
 Промежуток
 Сектор 2
 Промежуток
... 
 Промежуток
 Сектор N
 Промежуток
 Конечный промежуток

Каждый сектор на дорожке состоит из областей индекса и данных. Секторы разделены промежутками. В конце дорожки располагается конечный промежуток, его размер зависит от скорости вращения диска, длин секторов и других промежутков. Область индекса содержит информацию о номере дорожки, головки, сектора, код длины сектора. Область данных, очевидно, содержит данные, которые хранятся на диске.


Формат сектора.

IDAMАдресная метка индекса
 Номер дорожки
 Номер головки
 Номер сектора
 Код длины сектора
 2 байта циклического контроля
FF 
00Промежуток
 Адресная метка данных
 Адресна
 2 байта циклического контроля

Функции BIOS для работы с дисками.

Наилучший и самый безопасный способ работы с дисками на физическом уровне - использование функций базовой системы ввода/вывода BIOS. Эти функции учитывают все особенности аппаратуры и предоставляют достаточно широкий набор средств доступа к дискам на физическом уровне.

Вся дисковая подсистема обслуживается прерыванием INT 13h. Это прерывание выполняет множество функций. Для вызова определенной функции программа должна занести ее код в регистр AH. При этом в другие регистры следует записать параметры - номер НМД или номер НГМД, номер цилиндра, головки, адрес таблицы параметров НМД или НГМД и т.д.


Краткая таблица функций прерывания INT 13h.

Номер функцииОписание
00hСброс дисковой системы
01hОпределение состояния дисковой системы
02hЧтение сектора
03hЗапись сектора
04hПроверка сектора
05hФорматирование дорожки
06hФорматирование дорожки НМД
07hФорматирование НМД
08hПолучить текущие параметры НГМД или НМД
09hИнициализация таблиц параметров НМД
0AhЧтение длинное (только для НМД)
0BhЗапись длинная (только для НМД)
0ChПоиск цилиндра (только для НМД)
0DhАльтернативный сброс НМД
0EhЧтение буфера сектора (только для НМД)
0FhЗапись буфера сектора (только для НМД)
10hПроверка готовности НМД
11hРекалибровка НМД
12hПроверка памяти контроллера НМД
13hПроверка НМД
14hПроверка контроллера НМД
15hПолучить тип НМД или НГМД
16hПроверка замены дискеты
17hУстановка типа дискеты
18hУстановка среды носителя данных для форматирования
19hПарковка головок (только для НМД)
1AhФорматирование НМД с интерфейсом ESDI

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



PS Главный недостаток этой работы - отсутствие конкретной информации по собственному винчестеру, главное достоинство - много информации общего характера, хотя и не так полно, как во многих книгах. Разумеется, повторять книги и не требуется, т.е. объем скорее избыточен, чем достаточен. Работа защищена на оценку отлично.

Рейтинг SIMPLETOP.NET
Rambler's Top100 Powered byCeleron©
Бесплатный хостинг от EOMY.NET