Главная страница
Навигация по странице:

  • Контроллер внешнего устройства. Назначение и функции контроллеров.

  • 3 Модуль ввода вывода. Параллельный и последовательный ввод вывод информации в микропроцессорной системе (2 часа)


    Скачать 178.38 Kb.
    Название3 Модуль ввода вывода. Параллельный и последовательный ввод вывод информации в микропроцессорной системе (2 часа)
    Дата11.04.2023
    Размер178.38 Kb.
    Формат файлаdocx
    Имя файла3.7.docx
    ТипДокументы
    #1054034

    3.7. Модуль ввода - вывода. Параллельный и последовательный ввод - вывод информации в микропроцессорной системе (2 часа)


    1. Архитектура подсистемы ввода/вывода.

    2. Контроллер внешнего устройства. Назначение и функции контроллеров.

    3. Последовательный и параллельный интерфейс

    4. Способы организации ввода-вывода

    Микропроцессорная система состоит из трех подсистем: микропроцессора, подсистемы памяти и подсистемы ввода/вывода (модуля ввода/вывода).

    Модуль ввода/вывода в составе МПС отвечает за управление подключенными к нему одним или несколькими периферийными устройствами (ПУ) и за обмен данными между этими устройствами, с одной стороны, и основной памятью или регистрами микропроцессора – с другой.

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

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

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

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

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

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

    Основными путями решения указанных проблем являются:

    − модульность;

    − унифицированные (не зависящие от типа устройства ввода/вывода) форматы данных, которыми устройства ввода/вывода обмениваются с системой;

    − унифицированные интерфейсы;

    − унифицированные (не зависящие от типа устройства ввода/вывода) формат и набор команд процессора для операций ввода/вывода.

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

    Основные функции модуля ввода/вывода:

    1. локализация данных;

    2. управление и синхронизация;

    3. обмен информацией;

    4. буферизация данных;

    5. обнаружение ошибок.

    Локализация данных – это возможность обращения к одному из ПУ, а также адресации данных на нем. Адрес ПУ обычно содержится в адресной части команд ввода/вывода. Для простейших периферийных устройств (клавиатура, принтер и т. п.) адрес ПУ однозначно определяет и расположение данных на этом устройстве. Для более сложных ПУ, таких как внешние запоминающие устройства, информация о местонахождении данных требует детализации (например, номер цилиндра, номер сектора и т. п.). Эта часть адресной информации передается в модуль ввода/вывода не по шине адреса, а в виде служебных сообщений, пересылаемых по шине данных. Обработка такой информации в модуле, естественно, сложнее, чем выбор нужного регистра или ПУ. В частности, она может требовать от МВВ организации процедуры поиска на носителе информации.

    Функция управления и синхронизации заключается в том, что модуль ввода/вывода должен координировать перемещение данных между внутренними ресурсами МПС и периферийными устройствами. При разработке системы управления и синхронизации модуля ввода/вывода необходимо учитывать целый ряд факторов. Прежде всего, нужно принимать во внимание, что центральный процессор может взаимодействовать одновременно с несколькими ПУ, причем быстродействие подключаемых к модулю ввода/вывода периферийных устройств варьируется в очень широких пределах. В отличие от обмена с памятью, процессы ввода/вывода и работа ЦП протекают не синхронно. Очередная порция информации может быть выдана на устройство вывода лишь тогда, когда это устройство готово их принять. Аналогично, ввод допустим только в случае доступности информации на устройстве ввода. Таким образом, модуль ввода/вывода обязан снабдить центральный процессор информацией о собственной готовности к обмену, а также о готовности подключенных к модулю ПУ. Помимо этого, процессор должен обладать оперативной информацией и об иных событиях, происходящих в СВВ.

    Основной функцией модуля ввода/вывода является обеспечение обмена информацией. Помимо обмена с процессором, модуль ввода/вывода должен обеспечивать функцию обмена информацией с ПУ. Такой обмен также включает в себя передачу данных, команд и информации о состоянии. Последовательность операций, выполняемых процессором при вводе/выводе:

    1. Выбор требуемого периферийного устройства.

    2. Определение состояния модуля ввода/вывода и ПУ.

    3. Выдача указания модулю ввода/вывода на подключение нужного ПУ к процессору.

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

    5. Распознавание сигнала готовности устройства к передаче очередной порции информации.

    6. Прием (передача) порции информации.

    7. Циклическое повторение двух предшествующих пунктов до завершения передачи информации в полном объеме.

    8. Логическое отсоединение ПУ от процессора.

    Буферизация. Несмотря на различия в скорости обмена информацией для разных ПУ, все они в этом плане значительно отстают от ЦП и памяти. Такое различие компенсируется за счет буферизации. При выводе информации на ПУ данные пересылаются из основной памяти в модуль ввода/вывода с большой скоростью. В модуле эти данные буферизируются и затем направляются в ПУ со скоростью, свойственной последнему. При вводе из ПУ данные буферизируются так, чтобы не заставлять память работать в режиме медленной передачи. Таким образом, модуль ввода/вывода должен обеспечивать работу как со скоростью памяти, так и со скоростью ПУ.

    Еще одной из важнейших функций модуля ввода/вывода является обнаружение ошибок, возникающих в процессе ввода/вывода. Центральный процессор следует оповещать о каждом случае обнаружения ошибки.

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

    Каждое ПУ подключается к модулю ввода/вывода посредством индивидуальной шины. Интерфейс, по которому организуется взаимодействие модуля ввода/вывода и ПУ, часто называют «малым». Индивидуальная шина обеспечивает обмен данными и управляющими сигналами, а также информацией о состоянии участников обмена. Интерфейс, по которому организуется взаимодействие с ЦП, называют «большим» интерфейсом.


    Рисунок 3.7.1 – Структура модуля ввода/вывода
    Связь модуля ввода/вывода с ядром МПС осуществляется посредством системной шины. С этой стороны МВВ реализуется так называемый «большой» интерфейс.

    Данные, передаваемые между модулем ввода/вывода и ядром МПС, буферизируются в регистре данных, благодаря чему удается компенсировать различие в быстродействии ядра МПС и периферийных устройств. Модуль ввода/вывода может содержать несколько регистров данных, что позволяет независимо хранить текущие данные каждого из периферийных устройств, подключенных к данному модулю ввода/вывода.

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

    Регистр состояния служит для хранения битов состояния модуля ввода/вывода и подключенных к нему ПУ. Содержимое определенного разряда регистра может характеризовать, например, готовность устройства ввода к приему очередной порции данных, занятость устройства вывода.

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

    Узел управления вводом/выводом, по сути, играет роль местного устройства управления модуля ввода/вывода. На него возлагаются две задачи: обеспечение взаимодействия с ЦП и координация работы всех составляющих модуля ввода/вывода. Связь с ЦП реализуется посредством линий управления, по которым из ЦП в модуль поступают сигналы, служащие для синхронизации операций ввода и вывода. В обратном направлении передаются сигналы, информирующие о происходящих в модуле событиях, например сигналы прерывания.

    Со стороны «малого» интерфейса модуль ввода/вывода обеспечивает подключение периферийных устройств и взаимодействие с ними. Эта часть модуля ввода/вывода более унифицирована, поскольку периферийные устройства всегда «подгоняются» под один из стандартных протоколов. Каждое из периферийных устройств обслуживается своим узлом «малого» интерфейса, который реализует принятый для данного ПУ стандартный протокол взаимодействия.

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

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

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

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

    1) управление адресацией всех данных, подлежащих вводу и выводу, обновление адресов при передаче каждого слова;

    2) синхронизация обмена данными между устройствами ввода/вывода и основной памятью или процессором;

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

    4) преобразование информации. Обычно основная память связана с внутренней системной шиной, а связь с устройствами ввода/вывода может осуществляться по-разному в зависимости от специфики этих устройств. Поэтому при передаче информации по шинам между основной памятью или процессором и устройствами ввода/вывода должно осуществляться ее преобразование.

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

    Функции управления вводом/выводом могут быть:

    − общими, не зависящими от типа устройств ввода/вывода;

    − специфичными для каждого типа устройств ввода/вывода.

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

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

    − служебной;

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

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

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

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



    Рисунок 3.7.2 – Организация контроллера ПУ
    Основу контроллера составляют регистры, которые служат для хранения передаваемой информации. Взаимодействие микропроцессора с этими регистрами осуществляется через порты ввода/вывода из пространства доступа к ПУ. Каждый регистр имеет свой адрес. Под адресом регистра понимается адрес порта, через который осуществляется доступ к этому регистру.

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

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

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

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

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

    В контроллерах сложных ПУ регистров каждого типа может быть несколько. В контроллерах, предназначенных для подключения простых ПУ, удается совместить регистры состояния и управления, что позволяет сократить количество используемых в контроллере портов ввода/вывода, а следовательно, и адресов, выделенных для данного ПУ.

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

    Приемо-передатчики шины данных и шины адреса служат для физического подключения схем контроллера к соответствующим шинам системной магистрали.

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

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

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

    Программно-управляемый обмен данными по прерываниям характеризуется аппаратной проверкой готовности периферийного устройства. Это позволяет устранить основной недостаток асинхронного способа обмена – непроизводительные потери времени процессора в циклах ожидания. Режим прерываний может быть применим как к параллельному, так и последовательному каналам.

    Обмен данными с аппаратным управлением носит название “прямой доступ к памяти” (ПДП) или Direct Memory Access (DMA). Аппаратное управление обменом данных осуществляет специальный контроллер ПДП. Микропроцессор в обмене не участвует и отключается от системного интерфейса. Данные передаются от одного устройства к другому через системный интерфейс, минуя микропроцессор. Одним из партнеров обмена чаще всего выступает основная память микропроцессорной системы. Отсюда название – ПДП. Возможны два вида ПДП – с блочными или одиночными передачами. В первом работа процессора останавливается на все время передачи блока данных, во втором передачи слов в режиме ПДП перемежаются с выполнением программы, и для передач ПДП выделяются отдельные такты машинных циклов, в которых процессор не использует системный интерфейс. Производительность системы может возрасти из-за параллелизма процессов обмена и обработки данных, благодаря тому, что ПДП будет для процессора “невидимым”. При непрерывной передаче блока данных скорость обмена ограничивается лишь длительностью циклов ЗУ, быстродействием самого контроллера и скоростью выдачи/приема данных внешним устройством. В отличие от процессов прерывания, при ПДП обмен выполняется без участия программы, поэтому содержимое рабочих регистров процессора не изменяется и на вхождение в режим ПДП не требуется затрат времени. ПДП предоставляется по завершении текущего машинного цикла.

    С увеличением расстояния обмен данными по параллельному каналу становится неприемлемо сложным и экономически невыгодным. В этом случае применяют преобразование параллельного кода в последовательный для его передачи по одной сигнальной линии. Кроме того, последовательный канал характеризуется сравнительно небольшим числом сигнальных линий. Это дает ему определенные преимущества, например, при интегрировании устройств в систему, даже если устройства расположены на малых расстояниях друг от друга. Протоколы последовательного обмена задают два его вида: синхронный и асинхронный. При синхронной передаче байты (слова) следуют один за другим слитно, поэтому можно говорить о передаче массива байтов. Синхронный обмен повышает скорость передачи данных. При асинхронном обмене данные передаются по мере их готовности.

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

    Использование последовательных линий связи для обмена данными с внешними устройствами возлагает на контроллеры ВУ дополнительные по сравнению с контроллерами для параллельного обмена функции. Во-первых, возникает необходимость преобразования формата данных из параллельного формата, в котором они поступают в контроллер ВУ из системного интерфейса компьютера, в последовательный при передаче в ВУ. И обратно из последовательного в параллельный при приеме данных из ВУ. Во-вторых, требуется реализовать соответствующий режиму работы внешнего устройства способ обмена данными: синхронный или асинхронный. В современных МПС применяют, как правило, универсальные контроллеры для последовательного ввода/вывода, обеспечивающие как синхронный, так и асинхронный режим обмена данными с ВУ.

    На практике часто используют программируемые контроллеры, режимы работы которых устанавливаются специальными командами МП. Программируемый контроллер необходимо настраивать на конкретный режим обмена данными, присущий ПУ:

    • синхронный или асинхронный,

    • с использованием сигналов прерывания или без их использования,

    • на заданную скорость обмена и т. д.

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

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

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

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


    написать администратору сайта