Знакомство с возможностями и функциями внешних устройств


Download 0.72 Mb.
bet3/5
Sana16.06.2023
Hajmi0.72 Mb.
#1514800
TuriПрактическая работа
1   2   3   4   5
Bog'liq
Практика 10


разделение устройств и данных между процессами (выполняющимися программами);

  • обеспечение удобного логического интерфейса между устройствами и остальной частью системы;

  • поддержка широкого спектра драйверов с возможностью простого включения в систему нового драйвера;

  • динамическая загрузка и выгрузка драйверов без дополнительных действий с операционной системой;

  • поддержка нескольких различных файловых систем;

  • поддержка синхронных и асинхронных операций ввода–вывода.

    Эволюция ввода–вывода может быть представлена следующими этапами.

    1. Процессор непосредственно управляет периферийным устройством.

    2. Устройство управляется контроллером. Процессор использует программируемый ввод–вывод без прерываний (переход к абстракции интерфейса ввода–вывода).

    3. Использование контроллера прерываний. Ввод–вывод, управляемый прерываниями.

    4. Использование модуля (канала) прямого доступа к памяти. Перемещение данных в память (из нее) без применения процессора.

    5. Использование отдельного специализированного процессора ввода–вывода, управляемого центральным процессором.

    6. Использование отдельного компьютера для управления устройствами ввода–вывода при минимальном вмешательстве центрального процессора.

    Принципы организации обмена с внешними устройствами компьютера (программно–управляемый ввод/вывод и DMA). Внешние устройства подключаются к системному интерфейсу через специальные устройства – контроллеры (адаптеры). Каждый контроллер имеет в своем составе ряд программно–доступных регистров (как минимум имеет хотя бы регистр данных, регистр состояния и регистр управления).
    Каждый контроллер имеет свой набор команд. Получив, через свои регистры, команду от выполняющего программу ввода–вывода процессора, контроллер отрабатывает команду автономно, управляя внешним устройством через "малый" интерфейс между устройством и контроллером. Контроллер, отрабатывая принятую от процессора команду, пересылает во внешнее устройство свои команды, данные, и читает из устройства состояния. Кроме того, контроллер может выполнять ряд вспомогательных аппаратных функций, инициируемых аппаратными сигналами, или записью управляющей информации в его программно–доступный регистр (например, «сброс» по сигналу RESET, или включение процесса самодиагностики жесткого диска). Существуют простые контроллеры и более сложные (интеллектуальные) контроллеры, выполняющие более сложные аппаратные функции и команды.
    Процессор управляет внешним устройством, выполняя соответствующую программу ввода/вывода, где он с помощью команд IN, OUT (чтение порта, запись в порт) осуществляет доступ к программно–доступным регистрам контроллера. Например, в регистр управления процессор записывает команду, из регистра состояния читает информацию о состоянии устройства и контроллера, в регистр данных записывает выводимые на устройство данные, или читает из регистра данных считываемую с устройства информацию.
    Возможны два способа организации программного обмена с внешними устройствами:
    Обмен с опросом готовности устройства. Выполняя программу ввода–вывода, процессор, запустив в контроллере операцию, циклически читает регистр состояния контроллера, ожидая появления в соответствующем разряде регистра состояния признака готовности к обмену данными с процессором. При появлении этого признака в регистре состояния, процессор осуществляет обмен через регистр данных, с помощью команды OUT, осуществляет запись в регистр данных (при выводе на устройство), или выполняет чтение информации из регистра данных контроллера с помощью команды IN (при вводе с устройства). После чего запускает в контроллере следующую операцию и т. д.;
    Обмен по запросам на обслуживание устройства (запросам на маскируемое прерывание). При выполнении программы ввода–вывода, процессор, запустив на контроллере операцию продолжает выполнять другую полезную программу. Контроллер внешнего устройства, в случае полной готовности к обмену данными с процессором, выдает на соответствующую линию IRQ сигнал запроса на обслуживание (запрос на маскируемое прерывание). Процессор, через выполнение процедуры прерывания по сигналу IRQ, переходит на выполнение программы ввода/вывода для данного устройства. Эта программа осуществляет обмен данными через регистр данных контроллера и запускает в контроллере следующую операцию. Процессор возвращается к выполнению прерванной программы через выполнение команды IRET (возврат из прерывания), которой заканчивается программа ввода/вывода) и т. д.
    Любой контроллер, получив от процессора (по командам OUT), через свои программно–доступные регистры команду, отрабатывает команду автономно, управляя внешним устройством через «малый» интерфейс между устройством и контроллером. Контроллер, отрабатывая принятую от процессора команду, пересылает во внешнее устройство команды, данные, и читает из устройства информацию о его состоянии и данные. Кроме того, контроллер может выполнять ряд вспомогательных аппаратных функций инициируемых аппаратными сигналами или записью управляющей информации в его программно–доступный регистр.
    Как было сказано выше, возможны два способа организации программного обмена с внешними устройствами: «обмен с опросом готовности устройства» и обмен «по запросам на обслуживание устройства» (запросам на маскируемое прерывание). Различие этих способов программного обмена в способе определения готовности устройства к обмену данными.
    Например, при обмене «с опросом готовности устройства» с матричным принтером, выполняя программу ввода–вывода, процессор, запустив в контроллере матричного принтера операцию вывода, циклически читает регистр состояния контроллера и ожидает появления (в соответствующем разряде регистра состояния) признака готовности к обмену данными с процессором. При появлении этого признака в регистре состояния, процессор, с помощью команды OUT, осуществляет запись в регистр данных контроллера принтера очередного байта информации для вывода на принтер, и запускает в контроллере принтера, записью команды в регистр управления, следующую операцию вывода и т. д.
    При обмене с принтером «по запросам на обслуживание от устройства» (запросам на маскируемое прерывание), процессор, выполняя программу вывода, запустив в контроллере принтера операцию, не ожидает готовности контролера к обмену данными. Он продолжает выполнять полезную программу. Контроллер принтера, в случае полной готовности к обмену данными с процессором, выдает на соответствующую линию IRQ (например, для принтера – IRQ7) сигнал запроса на обслуживание, который поступает на вход контроллера прерываний (который находится в микросхеме «южного моста»). Контроллер прерываний выдает на вход INTR процессора активный сигнал, а процессор, через выполнение процедуры прерывания по сигналу INTR (в ее выполнении участвуют контроллер прерываний и контроллер шины), переходит на выполнение программы вывода для данного устройства. Эта программа осуществляет запись данных в регистр данных контроллера и запись команды в регистр управления, т. е. запускает в контроллере следующую операцию вывода. Процессор в конце программы обслуживания устройства выбирает и выполняет команду IRET (возврат из прерывания, которой заканчивается программа ввода/вывода), и возвращается к выполнению прерванной ранее программы и т. д.
    Прямой доступ (DMA – DirectMemoryAccess – прямой доступ к памяти). Прямой доступ (DMA)– это способ обмена между внешним устройством и динамической памятью, при котором управление операциями обмена по интерфейсу между регистром данных устройства и последовательно расположенными ячейками памяти, осуществляет контроллер прямого доступа к памяти, а микропроцессор в это время находится в отключенном от интерфейса состоянии. Прямой доступ может осуществляться двумя способами: обычным DMA и Busmastering DMA. Существуют несколько разновидностей обмена по прямому доступу. Single word DMA – одиночный режим (в каждом цикле обмена словом, сигнал запроса на обмен сбрасывается сигналом, подтверждающим каждый цикл обмена). Multiword DMA – множественный режим (на сигнал запроса на обмен от устройства выполняется поток циклов обмена сопровождаемых сигналами подтверждения; устройство может из–за неготовности приостановить обмен, сняв свой сигнал запроса, и продолжить обмен, вновь установив запрос). Режим DMA позволяет освободить процессор от рутинной пересылки данных между внешними устройствами и памятью, отдав эту работу контроллеру DMA, процессор в это время может обрабатывать другие данные или другую задачу в многозадачной системе.
    DMA–контроллер имеет доступ к системной шине независимо от центрального процессора, как показано на рисунке 10.1. Контроллер содержит несколько регистров, доступных центральному процессу для чтения и записи (регистр адреса памяти, счетчик байтов, управляющие регистры). Управляющие регистры задают порт ввода–вывода, который должен быть использован, направление переноса данных (чтение или запись в устройство ввода–вывода), единицу переноса (побайтно, пословно), а также число байтов, которые следует перенести за одну операцию.
    Перед выполнением операции обмена ЦП программирует DMA–контроллер, устанавливая его регистры (шаг 1 на рис. 7.1). Затем ЦП дает команду дисковому контролеру прочитать внести данные во внутренний буфер и проверить контрольную сумму. После этого процессор продолжает свою работу. Когда данные получены и проверены контроллером диска, DMA может начинать работу.
    DMA–контроллер начинает перенос данных, посылая дисковому контроллеру по шине запрос чтения (шаг 2). Адрес памяти уже находится на адресной шине, так что контроллер знает, куда пересылать следующее слово из своего буфера. Запись в память является еще одним стандартным циклом шины (шаг 3). Когда запись закончена, контроллер диска посылает сигнал подтверждения контролеру DMA (шаг 4). Затем контроллер DMA увеличивает используемый адрес памяти и уменьшает значение счетчика байтов. После этого шаги 2, 3 и 4 повторяются, пока значение счетчика не станет равным нулю. По завершению цикла копирования контроллер DMA инициирует прерывание процессор, сообщая ему о завершении операции ввода–вывода.

    Рисунок 10.1 Работа DMA

    Download 0.72 Mb.

    Do'stlaringiz bilan baham:
  • 1   2   3   4   5




    Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
    ma'muriyatiga murojaat qiling