Работа с дисками
Категория реферата: Рефераты по кибернетике
Теги реферата: ответы 8 класс, реферат история развития
Добавил(а) на сайт: Самуил.
Предыдущая страница реферата | 1 2 3 4 5 6 7 8 9 10 11 | Следующая страница реферата
3.4 Таблицы параметров НМД и НГМД.
Для работы с диском на физическом уровне необходимо знать такие его характеристики, как количество головок, секторов и др. Эти характеристики можно определить из таблиц параметров НГМД и НМД, заполняемых BIOS в процессе инициализации системы.
Анализируя содержимое CMOS-памяти в компьютерах IBM PC/AT или
установку переключателей конфигурации на основной плате в компьютерах IBM
PC и IBM PC/XT, BIOS в процессе инициализации создает таблицу параметров
дискеты DPT (Diskette Parameter Table), а также одну или две таблицы
параметров жесткого диска HDPT (Hard Disk Parameter Table). Если имеется
специальная "дисковая" система ввода/вывода, то она сама создает таблицы
HDPT.
Таблица параметров дискеты DPT имеет длину 10 байт, ее адрес
располагается в области данных BIOS по адресу 0000h:0078h, что
соответствует вектору прерывания INT 1Eh . Таблица содержит следующие
параметры:
|Смещение,|Размер|Имя |Описание |
|байт |, байт|поля | |
|0 |1 |srt_hut|Биты 0...3:SRT (Step Rate Time) - задержка |
| | | |для переключения головок, лежит в пределах 1|
| | | |- 16 мс и задается с интервалом 1 мс (0Fh - |
| | | |1 мс, 0Eh - 2 мс, 0Dh - 3 мс, ...).Биты |
| | | |4...7:Задержка разгрузки головки, лежит в |
| | | |пределах 16 - 240 мс и задается с интервалом|
| | | |16 мс (1 - 16 мс, 2 - 32 мс, ..., 0Fh - 240 |
| | | |mc) |
|1 |1 |dma_hlt|Бит 0:Значение этого бита, равное 1, говорит|
| | | |о том, что используется прямой доступ к |
| | | |памяти; |
| | | |Биты 2...7:Время загрузки головок HLT - |
| | | |интервал между сигналом загрузки головок и |
| | | |началом операции чтения или записи, лежит в |
| | | |пределах 2 - 254 мс и задается с интервалом |
| | | |2 мс (1 - 2 мс, 2 - 4 мс, ..., 0FFh - 254 |
| | | |мс) |
|2 |1 |motor_w|Задержка перед выключением двигателя |
|3 |1 |sec_siz|Код размера сектора в байтах:0 - 128;1 - |
| | |e |256;2 - 512;3 - 1024 |
|4 |1 |eot |Номер последнего сектора на дорожке |
|5 |1 |gap_rw |Длина межсекторного промежутка для чтения |
| | | |или записи |
|6 |1 |dtl |Максимальная длина передаваемых данных. |
| | | |Используется, когда не задана длина сектора |
|7 |1 |gap_f |Длина межсекторного промежутка для операции |
| | | |форматирования |
|8 |1 |fill_ch|Байт-заполнитель для форматирования, обычно |
| | |ar |используется F6h |
|9 |1 |hst |Время установки головки в мс |
|10 |1 |mot_sta|Время запуска двигателя в 1/8 долях секунды |
| | |rt | |
Все времена зависят от частоты тактового генератора контроллера НГМД, приведенные значения соответствуют частоте 8 МГц.
Адреса таблиц параметров жестких дисков HDPT расположены по адресам, соответствующим векторам прерываний INT 41h (для первого физического диска)
и INT 46h (для второго физического диска). Эти таблицы имеют следующий
формат:
|Смещение,|Размер|Имя поля|Описание |
|байт |, байт| | |
|0 |2 |max_cyl |Максимальное количество дорожек на диске |
|2 |1 |max_head|Максимальное количество магнитных головок |
|3 |2 |srwcc |Начальная дорожка для предварительной |
| | | |записи (Starting reduced-write current |
| | | |cylinder) |
|5 |2 |swpc |Начальная дорожка для предварительной |
| | | |компенсации при записи (Starting write |
| | | |precompensation cylinder) |
|7 |1 |max_ecc |Максимальная длина блока коррекции ошибок |
| | | |ECC (Maximum ECC data burst length) |
|8 |1 |dstopt |Параметры устройства: |
| | | |бит 7 - запрет восстановления; |
| | | |бит 6 - запрет восстановления по блоку |
| | | |коррекции ошибок ECC (Error Correction |
| | | |Code); |
| | | |биты 2-0 - дополнительные параметры |
| | | |устройства |
|9 |1 |st_del |Стандартная величина задержки |
|10 |1 |fm_del |Величина задержки для форматирования диска |
|11 |1 |chk_del |Величина задержки для проверки диска |
|12 |4 |reserve |Зарезервировано |
Таблица параметров жесткого диска содержит такие важнейшие значения, как максимальное количество дорожек и максимальное количество головок. Если вам не удалось определить тип диска, то таблица HDPT - единственное надежное место, откуда можно получить информацию о количестве дорожек и головок.
Глава 4. Программирование контроллера НГМД.
Большинство дисковых операций можно выполнить на уровне функций BIOS.
Это самый простой и надежный способ работы с диском на физическом уровне.
Однако в отдельных случаях вам может потребоваться непосредственный доступ
к контроллеру НГМД - например, если вы разрабатываете систему защиты данных
от несанкционированного копирования.
Информация, приведенная в этой главе, ориентирована прежде всего не на выполнение операций чтения или записи (которые лучше выполнять с помощью функций BIOS), а на управление контроллером и получение состояния контроллера. Именно эти операции требуются для организации защиты данных от несанкционированного копирования.
4.1 Порты контроллера НГМД.
Программа обращается к контроллеру для выполнения различных операций с помощью команд ввода/вывода. Для IBM PC и IBM PC/XT используются три порта с адресами 3F2h, 3F4h и 3F5h. В компьютерах IBM PC/AT дополнительно используются два порта с адресами 3F6h и 3F7h.
Порт 3F2h работает только на запись, это порт вывода. С его помощью можно выбирать для работы один из НГМД (одновременно можно работать только с одним НГМД), сбрасывать контроллер в исходное состояние, разрешать или запрещать прерывания от контроллера и работу схем прямого доступа к памяти, включать или выключать двигатели НГМД.
Приведем назначение отдельных бит этого порта:
|Биты |Назначение |
|0-1 |Выбор НГМД. Компьютеры IBM PC/AT не используют бит 1, так как в |
| |них установлены только два НГМД |
|2 |0 - сброс контроллера; |
| |1 - разрешение работы контроллера |
|3 |1 - разрешение прерываний и прямого доступа к памяти |
|4-7 |Значение 1 в каждом разряде вызывает включение соответствующего |
| |двигателя НГМД. Для компьютеров IBM PC/AT биты 6-7 не |
| |используются |
Порт 3F4h предназначен только для чтения. С его помощью можно получить
байт основного состояния контроллера. Назначение отдельных бит приведено
ниже:
|Биты |Назначение |
|0-3 |Значение 1 говорит о том, что соответствующий НГМД занят, он |
| |выполняет операцию поиска. Для IBM PC/AT биты 2-3 не |
| |используются |
|4 |Контроллер занят выполнением команды чтения или записи |
|5 |0 - используется режим прямого доступа к памяти; |
| |1 - режим прямого доступа к памяти не используется |
|6 |Направление передачи данных: |
| |0 - от процессора к контроллеру; |
| |1 - от контроллера к процессору |
|7 |Запрос на передачу данных - контроллер готов к записи или |
| |чтению данных |
Порт 3F5h предназначен для записи или чтения данных. Он используется для всех операций.
Выполнение любой операции начинается с того, что программа посылает в этот порт байт кода операции, за которым следует один или несколько байт параметров. Количество байт параметров и их назначение зависит от кода операции (т. е. от первого байта). После выполнения операции программа считывает несколько байт результата для анализа результата выполнения операции.
Порт 3F7h работает на запись и чтение, он используется только в IBM
PC/AT.
При записи в этот порт биты 0-1 определяют скорость передачи данных:
|Биты|Скорость передачи данных, Кбайт/с |
|00 |500 (высокая плотность HD) |
|01 |300 (двойная плотность DD) |
|10 |250 (одинарная плотность SD) |
|11 |Зарезервировано |
Приведем назначение отдельных бит порта 3F7h при чтении из него:
|Биты |Назначение |
|0 |1 - выбран НГМД 0 |
|1 |1 - выбран НГМД 1 |
|2-5 |Выбраны головки : бит 2 соответствует головке 0, бит 3 - |
| |головке 1 и т. д. |
|6 |Переключатель записи |
|7 |1 - признак замены дискеты |
4.2 Команды для контроллера НГМД.
Контроллер НГМД может выполнять 15 операций, или команд. Команда
разделяется на три фазы - командная фаза, фаза выполнения, фаза результата.
В командной фазе программа должна передать контроллеру всю информацию, необходимую для команды. В фазе выполнения команда выполняется, и в фазе
результата программа получает от контроллера информацию о состоянии
контроллера.
Информация, необходимая для команды, передается контроллеру через порт данных 3F5h. В соответствии с форматом команды программа должна последовательно вывести в этот порт код команды и все параметры.
Прежде чем программа начнет командную фазу, она должна убедиться в том, что контроллер завершил выполнение предыдущей операции и готов к приему команды. Для этого программа должна прочитать байт основного состояния контроллера из порта с адресом 3F4h и проверить биты 6 и 7. Бит 6 должен быть установлен в 0. Это означает, что данные будут передаваться от процессора к контроллеру. Бит 7 должен быть установлен в 1 - это готовность контроллера к приему команды.
Фаза выполнения начинается после установки битов 6 и 7 байта основного состояния в 1. После завершения команды контроллер формирует сигнал запроса прерывания.
В фазе результата процессор считывает состояние контроллера. Это
состояние хранится в нескольких внутренних регистрах контроллера:
• RS - регистр основного состояния;
• ST0, ST1, ST2, ST3 - регистры дополнительного состояния.
Рекомендуем скачать другие рефераты по теме: список литературы реферат, изложение дубровский.
Предыдущая страница реферата | 1 2 3 4 5 6 7 8 9 10 11 | Следующая страница реферата