Существо аппаратурно-микропрограммного контроля (АМП) состоит в том, что в узел (устройство) вводится избыточная аппаратура, которая реализует контрольные микропрограммы либо во время простоев, либо прерывая работу устройства по основной программе на короткие промежутки времени. АМП контроль может осуществляться периодически в виде единичных контрольных актов, во время которых может проверяться как часть, так и вся контролируемая аппаратура.
Для АМП контроля ОА, выполняющего операции арифметического сложения, вычитания, умножения и деления, полная проверка может быть осуществлена, если нужно проверить правильность выполнения следующих стандартных микроопераций, входящих в состав вышеперечисленных операций:
запись информации с шины в регистры;
выдача информации из регистров в сумматор;
пересылка информации из одного регистра в другой;
сдвиг информации, содержащийся в регистре;
выдача информации из регистра на шину;
инвертирование содержимого регистра;
увеличение (уменьшение) на единицу содержимого регистра-счётчика.
Следовательно, если сформировать контрольные микропрограммы, в состав которых хотя бы по одному разу включалась каждая стандартная микрооперация, то аппаратура ОА была бы проверена полностью.
При проверке оперативной памяти невозможно задать произвольные входные слова, так как произойдёт искажение хранящейся информации. Следовательно, контроль должен осуществляться с теми словами, которые записаны в ячейках памяти.
Оперативная память хранит слова, представленные в двоичном коде, поэтому в каждом разряде могут быть ошибки только двух видов. В одном случае, когда при считывании в данном разряде всегда получают единицу, независимо от того, что было ранее записано, ошибка называется закреплением единицы. В другом, когда происходит считывание только нуля, ошибка называется закреплением нуля.
Для выявления отказов, приводящих к указанным ошибкам, необходимо вначале произвести считывание содержимого ячейки памяти, запомнить его, а затем инвертировать и вновь произвести запись и считывание. Несовпадение результатов первого и второго считываний во всех разрядах свидетельствует об отсутствии ошибки.
Аппаратурно-микропрограммный контроль достаточно эффективен, требует очень мало дополнительного времени для своей реализации, количество контрольного оборудования невелико.
К недостаткам этого вида контроля можно отнести то, что он позволяет обнаруживать лишь систематические ошибки (вызванные постоянными отказами) и не может выявить сбои в процессе выполнения программы.