Возможности отладчика AFD позволяют контролировать оборудование памяти, контроллеров внешних устройств и самих внешних устройств. В составе отладчика имеются подпрограммы, запускаемые на выполнение командами отладчика, которые могут быть применены для определения состояния контроллеров внешних устройств и доступности их портов ввода-вывода. С помощью отладчика можно создавать и использовать программы, без которых невозможно добраться до причины неисправности.
Для грамотной работы с отладчиком «AFD» и использования всех его потенциальных возможностей конечно необходима соответствующая теоретическая и практическая подготовка, которой и посвящена начальная часть данной статьи. Эта информация будет полезна во многих ситуациях ремонта компьютерной техники.
Программно-управляемый ввод/вывод DMA
Внешние устройства подключаются к системному интерфейсу через специальные устройства — контроллеры (адаптеры). Каждый контроллер имеет в своем составе ряд программно- доступных регистров (как минимум имеет хотя бы регистр данных, регистр состояния и регистр управления).
Каждый контроллер имеет свой набор команд. Получив, через свои регистры, команду от выполняющего программу ввода-вывода процессора, контроллер отрабатывает команду автономно, управляя внешним устройством через малый интерфейс между устройством и контроллером. Контроллер, отрабатывая принятую от процессора команду, пересылает во внешнее устройство свои команды, данные и читает из устройства состояния. Кроме того, контроллер может выполнять ряд вспомогательных аппаратных функций, инициируемых аппаратными сигналами, или записью управляющей информации в его программно-доступный регистр (например, «сброс» по сигналу RESET, или включение процесса самодиагностики жесткого диска). Существуют простые контроллеры и более сложные (интеллектуальные) контроллеры, выполняющие более сложные аппаратные функции и команды.
Процессор управляет внешним устройством, выполняя соответствующую программу ввода/вывода, где он с помощью команд IN, OUT (чтение порта, запись в порт) осуществляет доступ к программно-доступным регистрам контроллера. Например, в регистр управления процессор записывает команду, из регистра состояния читает информацию о состоянии устройства и контроллера, в регистр данных записывает выводимые на устройство данные, или читает из регистра данных считываемую с устройства информацию.