Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ГЭК(вопросы и ответы).doc
Скачиваний:
13
Добавлен:
10.09.2019
Размер:
5.98 Mб
Скачать

1.30. Архітектура та управління контролером нжмд. Структура команд.

Арх-ра ХТ-подобных ПЭВМ допускает подключение к одному контроллеру до двух накопителей. Обмен с жесткими дисками производится с использованием третьего канала DMA. Контроллер генерирует аппар прерыв 5-го уровня (IRQ5), вектор прерывания 0Dh. Работа с диском осуществл с использов отдельного ПЗУ, содержащего процедуры управл-я диском, что явл. характерной особенностью ХТ-подобных ПЭВМ. Обычно в качестве сегментного адреса ПЗУ используется C8000h, но возможны и другие значения. Имеется 16 адресов портов вв-выв, предназнач для управл контроллером и накопителями (320h-32Fh), однако реально использ-ся только 4 из них, например 320h-323h, или 324h-327h, или 328h-32Bh, или 32Ch-32Fh. Назначение портов (1-й, 2-й, 3-й и 4-й в каждой группе) одно и то же, поэтому далее будут описаны только порты 320h-323h. Назнач портов контроллера жестких дисков приведено в табл:

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

│Порт │ Режим │ Назначение │

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

│ 320h │ запись │ Передача команд по управлению накопителями│

│ 320h │ чтение │ Чтение параметров состояния после ошибок, │

│ │ │ возникших в процессе выполнения последней │

│ │ │ команды │

│ 321h │ запись │ Сброс контроллера │

│ 321h │ чтение │ Чтение состояния контроллера │

│ 322h │ запись │ Разблокировка (выбор) контроллера │

│ 322h │ чтение │ Чтение типа накопителя │

│ 323h │ запись │ Установка режима работы контроллера │

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

Общий формат команд НЖМД:

Команда контроллера может состоять из 1 - 6 байт. Общий формат команды:

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

│ \ биты│ │ │ │ │ │ │ │ │

│ \ │ 7 │ 6 │ 5│ 4 │ 3 │ 2 │ 1 │ 0 │

│байты\ │ │ │ │ │ │ │ │ │

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

│ 0 │ Класс команды │ Код операции (КОП) │

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

│ 1 │ 0│ 0 │ У │ Номер головки │

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

│ │ Цилиндр │ │

│ 2 │ (старшие │ Номер сектора │

│ │ биты) │ │

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

│ 3 │ Цилиндр ( младшие биты ) │

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

│ 4 │ Фактор чередования или число секторов │

│ │ (зависит от команды) │

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

│ 5 │ Управляющий байт │

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

Здесь: - класс команды и код операции определяют код команды контроллера;

- У - номер устройства (0/1);

- номер сектора - номер начального сектора для обмена;

- фактор чередования задает последовательность чередования секторов на дорожке;

- структура управляющего байта следующая:

0 - 2 период импульсов сигнала "шаг";

3 - 5 не используются;

6: 1 - запретить повторное считывание при ошибке контрольной суммы, 0 - разрешить;

7: 1 - запретить повторный доступ к диску при ошибке, 0 - разрешить.