Запоминающие устройства прямого доступа
Контроллер гибких дисков ДВК
В качестве простейшего дискового контроллера рассмотрим микросхему К1801ВП1-097 [МикроЭВМ 1988] (Эта микросхема является советским функциональным аналогом микросхемы контроллера гибких магнитных дисков, разработанной фирмой DEC для использования в мини – и микрокомпьютерах семейства PDP-11. К сожалению, автору не удалось найти маркировку оригинальной микросхемы и ссылку на документацию о ней).
Микросхема допускает подключение четырех приводов 5-дюймовых гибких дисков и содержит в себе порты управления основным и шаговым электродвигателями привода, сдвиговый регистр, модулятор и демодулятор МФМ, логику обнаружения маркеров, генератор циклической контрольной суммы и интерфейс системной шины Q-Bus. У микросхемы есть два 16-разрядных регистра, регистр управления и регистр данных. Описание битов регистра управления приведено в табл. 9.6.
Таблица 9.6. Управляющий регистр К1801ВП1-097.
Бит | Описание | Комментарий |
---|---|---|
00 (W) | Выбор накопителя 0 | |
00 (R) | Дорожка 0 | Головка чтения/записи установлена на дорожку 0 |
01 (W) | Выбор накопителя 1 | |
01 (R) | Накопитель готов | |
02 (W) | Выбор накопителя 2 | |
02 (R) | Запись запрещена | На дискете установлена защита записи |
03 (W) | Выбор накопителя 3 | |
04 | Включение двигателя | |
05 | Поверхность | Если 1, запись (чтение) происходите верхней поверхности диска |
06 | Направление шага | При записи 1, направление к оси диска |
07 (W) | Шаг | При записи 1 в этот бит, головка перемещается на один шаг и бит очищается |
07 (R) | Данные готовы | Контроллер выставляет этот бит, когда считано или записано очередное слово данных. ЦПУ должно прочитать или записать следующее слово сектора |
08 | Частичный сброс | |
09 | Запись маркера | |
10 | Включение внешней схемы прекоррекции фазовых искажений | |
14 | Успех операции | 0, если операция завершилась ошибкой |
15 | Начало дорожки |
Видно, что микросхема предусматривает работу с ней центрального процессора в режиме опроса. Более сложный контроллер КМД (Контроллер МиниДисков), основанный на этой микросхеме, содержит микропроцессор, ПЗУ с программой для него и 2Кб ОЗУ (которое может использоваться и для промеж, точных данных программы микропроцессора, и для хранения самих данных передаваемого блока) [МикроЭВМ 1988]. Работа с этим контроллером осуществляется посредством двух регистров, команды/состояния и данных.
Центральный процессор записывает в эти регистры команду (табл. 9.7) и адрес блока параметров в основном ОЗУ. Контроллер в режиме ПДП считывает блок параметров и пытается выполнить операцию, передавая данные, если это необходимо, также в режиме ПДП. Указатель на блок данных содержится в блоке параметров. Одной операцией можно прочитать или записать несколько последовательных секторов. После завершения передачи контроллер генерирует прерывание.
Таблица 9.7. Список команд контроллера КМД, цит. по [МикроЭВМ 1988].
Код | Мнемоника | Описание |
---|---|---|
0h | RD | Чтение |
1h | WR | Запись |
2h | RDM | Чтение с маркером |
3h | WRM | Запись с маркером |
4h | RDTR | Чтение дорожки |
5h | RDID | Чтение заголовка |
6h | FORMAT | Форматирование дорожки |
7h | SEEK | Подача головки |
8h | SET | Установка параметров |
9h | RDERR | Чтение состояния и ошибок |
Fh | LOAD | Загрузка |