Фаза
выполнения начинается после установки битов 6 и 7 байта основного состояния в
1. После завершения команды контроллер формирует сигнал запроса прерывания.
В фазе
результата процессор считывает состояние контроллера. Это состояние хранится в
нескольких внутренних регистрах контроллера:
• RS - регистр основного
состояния;
• ST0, ST1, ST2, ST3 -
регистры дополнительного состояния.
Регистр
основного состояния доступен через порт 3F4h, содержимое остальных регистров
процессор считывает после выполнения контроллером команды через порт данных
3F5h.
В форматах команд и таблицах,
приведенных ниже, используются следующие обозначения:
Обозначение |
Описание |
MT |
Двухсторонняя операция |
MFM |
Двойная/одинарная плотность
записи |
SK |
Пропуск удаленных данных |
HDS |
Номер головки для двухстороннего
НГМД |
DS1, DS0 |
Номер выбираемого НГМД |
C |
Номер цилиндра |
H |
Номер головки для двухстороннего
НГМД |
R |
Номер сектора |
N |
Число байт в секторе |
EOT |
Номер последнего сектора на
дорожке |
GPL |
Размер промежутка |
DTL |
Количество считываемых или
записываемых байт |
SC |
Количество секторов в цилиндре |
D |
Данные |
PCN |
Номер цилиндра после выполнения
команды чтения состояния прерывания |
SRT |
Время шага, мс |
HUT |
Время разгрузки головки |
HLT |
Время загрузки головки |
ND |
Режим прерывания |
NCN |
Номер цилиндра после поиска |
Приведем форматы всех команд
контроллера НГМД.
MT |
MFM |
SK |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
HDS |
DS1 |
DS0 |
MT |
MFM |
SK |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
HDS |
DS1 |
DS0 |
MT |
MFM |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
HDS |
DS1 |
DS0 |
MT |
MFM |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
HDS |
DS1 |
DS0 |
MT |
MFM |
SK |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
HDS |
DS1 |
DS0 |
MT |
MFM |
SK |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
HDS |
DS1 |
DS0 |
- Сканирование до
"меньше" или "равно"
MT |
MFM |
SK |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
HDS |
DS1 |
DS0 |
- Сканирование до
"больше" или "равно"
MT |
MFM |
SK |
1 |
1 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
HDS |
DS1 |
DS0 |
0 |
MFM |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
HDS |
DS1 |
DS0 |
- Считывание индексных данных
0 |
MFM |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
HDS |
DS1 |
DS0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
- Чтение состояния прерывания
- Чтение состояния накопителя
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
HDS |
DS1 |
DS0 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
HDS |
DS1 |
DS0 |
Первые
несколько команд имеют одинаковый формат параметров и одинаковые байты результата.
Приведем байты
параметров, которые должны следовать за командами и байты результата, которые
процессор должен считать после выполнения команды.
Команда |
Байты параметров |
Байты результата |
Чтение данных
Чтение удаленных данных
Запись данных
Запись удаленных данных
Чтение данных с дорожки
Сканирование до "равно"
Сканирование до "меньше" или "равно"
Сканирование до "больше" или "равно"
|
C, H, R, N, EOT,EOT,
GPL, DTL |
ST0, ST1, ST2,C, H,
R, N |
Форматирование дорожки |
N, SC, GPL, D |
ST0, ST1, ST2,C, H,
R, N |
Чтение индексных данных |
Отсутствуют |
ST0, ST1, ST2,C, H,
R, N |
Инициализация |
Отсутствуют |
Отсутствуют |
Чтение состояния прерывания |
Отсутствуют |
ST0, PCN |
Определить параметры |
1 байт:
мл. тетрада - HUT
ст. тетрада - SRT
2 байт:
бит 0 - ND
биты 1-7 - HLT
|
Отсутствуют |
Чтение состояния накопителя |
Отсутствуют |
ST3 |
Поиск |
C |
Отсутствуют |
После
выполнения команды центральный процессор должен получить от контроллера байты
результата. Среди них - содержимое внутренних регистров состояния контроллера
ST0, ST1, ST2, ST3. Опишем назначение отдельных бит этих регистров.
Формат
регистра ST0:
Биты |
Название |
Назначение |
1, 0 |
US1, US2 |
Код НГМД |
2 |
HD |
Номер головки |
3 |
NC |
Устанавливается, если НГМД не
готов выполнить команду чтения или записи |
4 |
EC |
Сбой оборудования |
5 |
SE |
Завершена команда
"Поиск" |
7, 6 |
I, C |
Код прерывания:
00 - нормальное завершение;
01 - аварийное завершение;
10 - неправильная команда;
11 - нет готовности НГМД
|
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9