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

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

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


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

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

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

 

       Внешние устройства (принтер, клавиатура и др.) подключаются к системному интерфейсу через специальные устройства - контроллеры (адаптеры). Каждый контроллер имеет в своем составе ряд программно-доступных регистров (как минимум имеет хотя бы регистр данных, регистр состояния и регистр управления). Каждый регистр имеет свой индивидуальный адрес, по которому процессор может обратиться и прочитать или записать в регистр (через регистр данных - данные, из регистра состояния - прочитать информацию о состоянии устройства и контроллера, в регистр команд - записать команду контроллеру и т.п.). Каждый контроллер имеет свой набор команд. Получив команду от процессора, выполняющего программу ввода-вывода, контроллер отрабатывает команду автономно, управляя внешним устройством через "малый" интерфейс между устройством и контроллером. Контроллер, отрабатывая принятую от процессора команду, пересылает во внешнее устройство команды (свои), данные и читает из устройства состояния, данные. Команды и состояния обычно представляют собой высокий или низкий уровень напряжения в соответствующей линии "малого" интерфейса, импульс или последовательность импульсов в соответствующей линии "малого" интерфейса. Кроме того, контроллер может выполнять ряд вспомогательных аппаратных функций инициируемых аппаратными сигналами или записью управляющей информации в его программно-доступный регистр (например, «сброс»). Существуют простые контроллеры и более сложные (интеллектуальные) контроллеры, выполняющие более сложные аппаратные функции и команды. 
                Процессор управляет внешним устройством, выполняя соответствующую программу ввода/вывода, где он с помощью команд IN, OUT (чтение порта, запись в порт) имеет доступ к программно-доступным регистрам контроллера. В регистр управления процессор записывает команду, из регистра состояния читает информацию о состоянии устройства и контроллера, в регистр данных записывает выводимые на устройство данные, или читает из регистра данных считываемую с устройства информацию. Возможны два способа организации программного обмена с внешними устройствами:
                1. Обмен с опросом готовности устройства. Выполняя программу ввода-вывода, процессор, запустив в контроллере операцию, циклически читает регистр состояния контроллера. Он ожидает появления (в соответствующем разряде регистра состояния) признака готовности к обмену данными с процессором. При появлении этого признака в регистре состояния, процессор, с помощью команды OUT, осуществляет запись в регистр данных (при выводе на устройство), или выполняет чтение информации из регистра данных контроллера с помощью команды IN (при вводе с устройства). После чего запускает в контроллере следующую операцию и т. д.;
                2. Обмен по запросам на обслуживание устройства (запросам на маскируемое прерывание). При выполнении программы процессор, запустив на контроллере операцию для считывания регистра состояния, не ожидает готовности контролера к обмену данными. Он продолжает выполнять полезную программу. Контроллер внешнего устройства в случае полной готовности к обмену данными с процессором выдает на соответствующую линию IRQ сигнал запроса на обслуживание. Процессор, через выполнение процедуры прерывания по сигналу IRQ (в ее выполнении участвует специальный контроллер - контроллер прерываний), переходит на выполнение программы ввода/вывода для данного устройства. Эта программа осуществляет обмен данными через регистр данных контроллера и запускает в контроллере следующую операцию и т. д. Процессор возвращается из программы обслуживания к выполнению прерванной программы через выполнение команды IRET (команда "возврат из прерывания", на которой заканчивается программа ввода/вывода) и т. д.
                Прямой доступ (DMA - Direct Memory Access - прямой доступ к памяти). Прямой доступ - это способ обмена между внешним устройством и динамической памятью, при котором управление операциями обмена по интерфейсу между регистром данных устройства и последовательно расположенными ячейками памяти осуществляет контроллер прямого доступа к памяти, а микропроцессор в это время может исполнять программу. Прямой доступ может осуществляться двумя способами: обычным DMA и busmastering DMA. В первом случае используется стандартный контроллер прямого доступа (8 каналов). Во втором случае, функции аналогичные функциям контроллера прямого доступа, выполняет аппаратура, расположенная в составе адаптера устройства (например, контроллер жестких дисков поддерживает режим Bus Master IDE). 
                Режим DMA позволяет освободить процессор от рутинной пересылки данных между внешними устройствами и памятью, отдав эту работу контроллеру DMA; процессор в это время может обрабатывать другие данные или другую задачу в многозадачной системе.


Лицензия