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

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

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


Принципы организации обмена с внешними устройствами компьютера (программно-управляемый ввод/вывод и DMA).

Принципы организации обмена с внешними устройствами компьютера (программно-управляемый ввод/вывод и DMA).

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

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

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

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

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

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

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

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

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

Как было сказано выше, возможны два способа организации программного обмена с внешними устройствами: «обмен с опросом готовности устройства» и обмен «по запросам на обслуживание устройства» (запросам на маскируемое прерывание). Различие этих способов программного обмена в способе определения готовности устройства к обмену данными.

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

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

3) Прямой доступ (DMA - DirectMemoryAccess - прямой доступ к памяти).

Прямой доступ (DMA)- это способ обмена между внешним устройством и динамической памятью, при котором управление операциями обмена по интерфейсу между регистром данных устройства и последовательно расположенными ячейками памяти, осуществляет контроллер прямого доступа к памяти, а микропроцессор в это время находится в отключенном от интерфейса состоянии. Прямой доступ может осуществляться двумя способами: обычным DMA и Busmastering DMA. Существуют несколько разновидностей обмена по прямому доступу. Single word DMA – одиночный режим (в каждом цикле обмена словом, сигнал запроса на обмен сбрасывается сигналом, подтверждающим каждый цикл обмена). Multiword DMA – множественный режим (на сигнал запроса на обмен от устройства выполняется поток циклов обмена сопровождаемых сигналами подтверждения; устройство может из-за неготовности приостановить обмен, сняв свой сигнал запроса, и продолжить обмен, вновь установив запрос). Режим DMA позволяет освободить процессор от рутинной пересылки данных между внешними устройствами и памятью, отдав эту работу контроллеру DMA, процессор в это время может обрабатывать другие данные или другую задачу в многозадачной системе.

4) BIOS, UEFI-BIOS. Важным компонентом системы ввода-вывода компьютеров является BIOS – это Basic Input/Output System - базовая система ввода/вывода, «зашитая» в ПЗУ (отсюда и название ROM BIOS). BOIS представляет собой набор программ которые реализуют функции управления внешними устройствами на физическом уровне (программно-управляемый ввод/вывод и DMA), функции проверки и обслуживания аппаратуры компьютера, и выполняет роль посредника между операционной системой и аппаратурой.

BIOS – практически уже достаточно давно начинает уступать место платформе UEFI (Unified Extensible Firmware Interface), представляющей собой новый тип интерфейса между, оборудованием и операционной системой (OS) компьютера. BIOS, созданная четверть века назад, давно не удовлетворяет требованиям, предъявляемым к современным ПК. Все новые компьютеры используют систему UEFI (но в системе UEFI есть блок совместимости с BIOS, поэтому те программы, которым для работы нужен был BIOS, спокойно могут работать и на компьютерах с UEFI). Этот тип интерфейса между оборудованием и ОС, изначально носивший имя EFI, уже в середине девяностых годов создавался корпорацией Intel для платформы Itanium. Сейчас разработку EFI курирует организация Unified EFI Forum (UEFI).

Перевод компьютеров на интерфейс UEFI позволил значительно сократить время загрузки ПК. Если при использовании BIOS с момента включения питания до появления экрана приветствия ОС проходит в среднем полминуты, то с внедрением UEFI этот показатель сократится до нескольких секунд. UEFI обеспечит поддержку альтернативных средств ввода данных, таких как виртуальные клавиатуры и сенсорные дисплеи. Администраторы получат в своё распоряжение расширенные инструменты удалённого управления и средства диагностики, а пользователи - возможность запускать приложения вроде браузера и медиаплеера, не загружая ОС.

 


Лицензия