Алгоритм - Учебный центр

Версия сайта для слабовидящих
Заполните форму ниже! Мы вам перезвоним!

Нажав на кнопку "Отправить", Я даю своё согласие на автоматизированную обработку указанной информации, распространяющейся на осуществление всех действий с ней, включая сбор, передачу по сетям связи общего назначения, накопление, хранение, обновление, изменение, использование, обезличивание, блокирование, уничтожение и обработку посредством внесения в электронную базу данных, систематизации, включения в списки и отчетные формы.


Управление внешними устройствами ПК.

Управление внешними устройствами ПК.

 Программно-управляемый ввод/вывод.

Внешние устройства подключаются к системному интерфейсу через специальные устройства - контроллеры (адаптеры). Каждый контроллер имеет в своем составе ряд программно-доступных регистров (как минимум имеет хотя бы регистр данных, регистр состояния и регистр управления).

Каждый контроллер имеет свой набор команд. Получив команду от процессора, выполняющего программу ввода-вывода, контроллер отрабатывает команду автономно, управляя внешним устройством через "малый" интерфейс между устройством и контроллером. Контроллер, отрабатывая принятую от процессора команду, пересылает во внешнее устройство свои команды, данные и читает из устройства состояния, данные (команды и состояния обычно представляют собой высокий или низкий уровень напряжения в соответствующей линии "малого" интерфейса, импульс или последовательность импульсов в соответствующей линии "малого" интерфейса). Кроме того, контроллер может выполнять ряд вспомогательных аппаратных функций инициируемых аппаратными сигналами или записью управляющей информации в его программно-доступный регистр (например, сброс по сигналу RESET или включение шпиндельного двигателя гибкого диска путем записи в регистр 3F2 контроллера гибкого диска управляющей информации).

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

Возможны два способа организации программного обмена с внешними устройствами: обмен с опросом готовности устройства, обмен по запросам на обслуживание устройства (запросам на маскируемое прерывание).

При первом способе обмена, выполняя программу ввода-вывода, процессор запустит в контроллере операцию и циклически читает регистр состояния контроллера. Он ожидает появления (в соответствующем разряде регистра состояния) признака готовности к обмену данными с процессором. При появлении этого признака в регистре состояния процессор с помощью команды OUT осуществляет запись в регистр данных (при выводе на устройство), или выполняет чтение информации из регистра данных контроллера с помощью команды IN (при вводе с устройства). После чего запускает в контроллере следующую операцию и т. д.

При выполнении обмена по второму варианту, процессор, выполняя программу, и запустив на контроллере операцию, не ожидает готовности контролера к обмену данными. Он продолжает выполнять полезную программу. Контроллер внешнего устройства в случае полной готовности к обмену данными с процессором выдает на соответствующую линию IRQ сигнал запроса на обслуживание. Процессор через выполнение процедуры прерывания по сигналу IRQ (в ее выполнении участвуют контроллер прерываний и контроллер шины) переходит на выполнение программы ввода/вывода для данного устройства. Эта программа осуществляет обмен данными через регистр данных контроллера, запускает в контроллере следующую операцию и т. д. Процессор возвращается к выполнению прерванной программы через выполнение команды IRET (возврат из прерывания), которой заканчивается программа ввода/вывода, и т. д.

Прямой доступ (DMA).

Прямой доступ - это способ обмена между внешним устройством и динамической памятью, при котором управление операциями обмена по интерфейсу между регистром данных устройства и последовательно расположенными ячейками памяти осуществляет контроллер прямого доступа к памяти, а микропроцессор в это время свободен. Прямой доступ может осуществляться двумя способами: обычным DMA и busmastering DMA. В первом случае используется стандартный контроллер прямого доступа, который интегрирован в ICH. Во втором случае, функции аналогичные функциям контроллера выполняет аппаратура, расположенная в составе адаптера устройства (например, контроллер жестких дисков поддерживает режим Bus Master). 


Лицензия