Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
GEK / ответы (2).docx
Скачиваний:
151
Добавлен:
18.05.2015
Размер:
3.18 Mб
Скачать
  1. Организация подсистемы ввода-вывода пэвм. Программирование системы ввода-вывода.

Микропроцессорная система состоит из трех подсистем: микропроцессора, подсистемы памяти и подсистемы ввода/вывода. Подсистема ввода/вывода отвечает за связь с устройствами ввода/вывода. При рассмотрении подсистемы ввода/вывода все периферийные устройства будем называть устройствами ввода/вывода.

Связь устройств микропроцессорной системы друг с другом осуществляется с помощью специальных совокупностей средств и правил, которые называются интерфейсами.

При разработке систем ввода/вывода должны быть решены следующие проблемы:

  • возможность реализации системы с переменным составом оборудования, в первую очередь с различным набором устройств ввода/вывода, с тем, чтобы пользователь мог выбирать состав оборудования (конфигурацию) системы в соответствии с ее назначением, легко дополнять систему новыми устройствами;

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

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

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

Для обеспечения параллельной во времени работы устройств ввода/вывода с выполнением программы обработки данных процессором схемы управления вводом/выводом отделяются от процессора и им придается достаточная степень автономности.

Различают два основных вида архитектуры систем ввода/вывода:

  • система непосредственного ввода/вывода;

  • система канального ввода/вывода.

В системе непосредственного ввода/вывода (рис. 21) обмен данными с устройствами ввода/вывода выполняется процессором.

Рис. 21 – Система непосредственного ввода/вывода

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

Рис. 22 – Система канального ввода/вывода

При любой форме взаимодействия с микропроцессорной системой аппаратура ввода/вывода обычно состоит из собственно устройства ввода/вывода и устройства управления этим устройством ввода/вывода – контроллера устройства ввода/вывода.

Интерфейс между процессором или каналом ввода/вывода и контроллером устройства ввода/вывода называется системным интерфейсом, а интерфейс между контроллером и устройством ввода/вывода – интерфейсом ввода/вывода. Системный интерфейс, как правило, является общим для всех видов устройств ввода/вывода, а интерфейсы ввода/вывода специализированы для конкретных видов устройств ввода/вывода.

С точки зрения программиста, работающего на уровне машинных команд, подсистему ввода/вывода можно представить в виде пространства ввода/вывода IOS и набора команд ввода/вывода, обеспечивающих к нему доступ. Организация пространства ввода/вывода подобна организации пространства памяти: IOS организовано в виде набора n-разрядных ячеек – портов, каждый из которых может быть адресован независимо от других.

Между микропроцессором и периферийными устройствами происходит обмен информацией двух типов:

  • служебной;

  • собственно данными.

Служебная информация от МП инициирует действия, связанные с обменом данными, и передается с помощью управляющих слов CW (Control Word). Служебные сообщения от периферийных устройств информируют МП об их текущем состоянии и называются словами состояния SW (Status Word). В отличие от них данные передаются с помощью слов данных DW (Data Word).

Объем служебной информации, которой обмениваются периферийные устройства и микропроцессор, а также ее интерпретация зависят от типа периферийного устройства. Для наиболее простых устройств, таких как прямо управляемые клавишные матрицы или светодиодные индикаторы, служебная информация не нужна. В других случаях, например при взаимодействии с НГМД, управляющая информация и данные о состоянии устройства могут иметь большой объем. При этом каждое периферийное устройство (ПУ) воспринимает определенный, присущий только ему набор команд управления. Организовать в этом случае передачу каждой команды ПУ по отдельной линии магистрали (шины управления) не представляется возможным по двум причинам. Во-первых, при разработке микропроцессора достаточно трудно предусмотреть все возможные применения микропроцессорной системы на его основе, а, следовательно, и используемые в ней ПУ. Во-вторых, для каждого дополнительного управляющего сигнала потребуется отдельный вывод в БИС микропроцессора, т.е. возникают чисто конструктивные ограничения на количество используемых в шине управления магистрали управляющих сигналов, связанные с числом выводов в БИС микропроцессора. Решение указанной проблемы осуществляется путем мультиплексирования шины данных: в одни моменты времени она используется для передачи данных, в другие моменты – для передачи служебной информации. При этом для связи с периферийным устройством отводится ряд портов ввода/вывода, через которые и проходит вся информация: управляющая, слова состояния и непосредственно данные. С точки зрения программиста множество портов ввода/вывода, связанных с данным периферийным устройством, образует пространство доступа к этому периферийному устройству.

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

Подключение любого периферийного устройства к магистрали микропроцессорной системы осуществляется через контроллер ПУ.

В контроллере ПУ используются регистры четырех типов в зависимости от типа информации, для хранения которой они предназначены:

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

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

  • регистр состояния (доступен микропроцессору только по чтению). Содержит информацию о текущем состоянии ПУ (включено/выключено, готово/не готово к обмену данными, ошибка и т.п.);

  • регистр управления (доступен микропроцессору только по записи). Служит для приема из МП команд для ПУ.

В микропроцессорных системах используются два основных способа организации передачи данных между системой и устройствами ввода/вывода (рис. 24):

  • программно-управляемый обмен;

  • прямой доступ к памяти (ПДП).

Программно-управляемый обмен – обмен, управляемый программой, т. е. когда процедуры обмена информацией с периферийным устройством инициируются и выполняются непосредственно программой, реализуемой процессором через его регистры. Программно-управляемый обмен осуществляется при непосредственном участии и под управлением процессора.

Рис. 24 – Два основных способа организации передачи данных между системой и устройствами ввода/вывода

С точки зрения аппаратных затрат программно-управляемый обмен является наиболее эффективным типом обмена, поэтому он находит самое широкое применение в различных микропроцессорных системах.

В зависимости от используемого способа обмена программно-управляемый ввод/вывод называется

  1. прямым вводом/выводом;

  2. условным вводом/выводом;

  3. вводом/выводом по прерыванию.