Устройство управления НМД состоит из четырех функциональных блоков:
Запрос Канала для выдачи сигнала прерывания осуществляется обычно на уровне ЗК5, вектор прерывания 2208. Для этого устройство управления (рис. 3.10) содержит семь программно адресуемых 16-разрядных регистров. Формат и назначение отдельных разрядов регистров устройства приведены на рис. 3.11.
Устройство управления НМД выполняет два вида операций, задаваемых программно: управления и передачи данных. К первой группе относятся следующие операции:
Ко второй группе относятся операции записи, чтения, контроля записи и контроля чтения.
Запись — поиск заданного в РАД цилиндра, считывание заголовка текущего сектора и сравнение его с содержимым разрядов 05 ... 12 РАД. Если они равны, то по индексному маркеру включается счетчик секторов (разряды 00 ... 03 регистра состояния диска (РСД)). Когда значение счетчика секторов совпадает с заданным в разрядах 00 ... 03 РАД адресом сектора, начинается перезапись в выбранный сектор служебной информации (зоны нулей, синхробиты и заголовки) и запись данных. Длина записываемого массива слов определяется содержимым РСС до его переполнения. Если РСС переполнился до конца сектора, то в оставшуюся часть сектора записываются нули. Для каждого сектора подсчитывается и записывается контрольная сумма.
Контроль записи — используется для поразрядного сравнения содержимого оперативной памяти ЭВМ с массивом информации, записанным на диске; при обнаружении ошибки устанавливается разряд 00 в регистре ошибок (РОШ).
Чтение — выполняется в той же последовательности: производится операция поиска, после завершения которой анализируется правильность поиска заданного заголовка и при правильном обнаружении заголовка осуществляется чтение сектора и обмен данными с ЭВМ в режиме непосредственного доступа к памяти. Число передаваемых слов определяется содержимым РСС, его переполнение и фиксирует окончание операции Чтения, а на начальный адрес памяти ЭВМ указывает регистр текущего адреса (РТА). Во время чтения контроллер производит подсчет контрольной суммы данных, сравнивая ее с записанной в конце сектора. Этим определяется правильность считанных данных. Несовпадение контрольной суммы фиксируется разрядом 01 РОШ и может вызвать прерывание.