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

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

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


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

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

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

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

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

Возможны два способа организации программного обмена с внешними устройствами:

1) Обмен с опросом готовности устройства.

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

2) Обмен по запросам на обслуживание устройства (запросам на маскируемое прерывание).

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

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

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


Лицензия