- •Вопрос 1. Характеристики микропроцессоров
- •Вопрос 2. Классификация микропроцессоров
- •Вопрос 3. Принстонская и гарвардская архитектуры микропроцессорных систем
- •Вопрос 4. Организация пространств памяти и ввода/вывода в микропроцессорной системе
- •Вопрос 5. Магистрально-модульный принцип построения микропроцессорных систем. Шинная организация микропроцессорных систем. Типовые структуры
- •Вопрос 6. Магистраль микропроцессорной системы. Трехшинная магистраль
- •Вопрос 7. Организация обмена по магистрали микропроцессорной системы
- •Вопрос 8. Простые циклы обмена по системной магистрали
- •Вопрос 9. Организация обращения к системной магистрали с асинхронным доступом. Использование сигнала готовности
- •Вопрос 10. Совмещение шины адреса и шины данных в магистрали микропроцессорной системы. Двухшинная магистраль с совмещенными шинами адреса/данных
- •Вопрос 11. Механизм пакетной передачи данных по системной магистрали
- •Вопрос 12. Механизм транзакций при передаче данных по системной магистрали
- •Вопрос 13. Архитектура подсистемы памяти микропроцессорной системы
- •Вопрос 14. Основные характеристики запоминающих устройств
- •Вопрос 15. Классификация устройств памяти
- •Вопрос 16. Организация запоминающих устройств с произвольной выборкой
- •Вопрос 17. Ассоциативная память
- •Вопрос 18. Стековая память
- •Вопрос 19. Основная память. Блочная организация основной памяти
- •Вопрос 20. Кэш-память. Принципы кэширования памяти
- •Вопрос 21. Организация кэш-памяти: кэш прямого отображения, наборно-ассоциативный кэш, полностью ассоциативный кэш
- •Вопрос 22. Концепция виртуальной памяти
- •Вопрос 23. Организация виртуальной памяти. Страничная и сегментная организации виртуальной памяти
- •Вопрос 24. Архитектура подсистемы ввода/вывода микропроцессорной системы
- •Вопрос 25. Программно-управляемый обмен
- •Вопрос 26. Организация прерываний в микропроцессорной системе
- •Вопрос 27. Радиальная и векторная системы прерываний
- •Вопрос 28. Организация прямого доступа к памяти в микропроцессорной системе
- •Вопрос 29. Структурная организация универсальных микропроцессоров
Вопрос 24. Архитектура подсистемы ввода/вывода микропроцессорной системы
Микропроцессорная система состоит из трех подсистем: микропроцессора, подсистемы памяти и подсистемы ввода/вывода. Подсистема ввода/вывода отвечает за связь с устройствами ввода/вывода.
Связь устройств микропроцессорной системы друг с другом осуществляется с помощью специальных совокупностей средств и правил, которые называются интерфейсами. Интерфейс – совокупность линий и шин, сигналов, электронных схем и алгоритмов, предназначенная для осуществления обмена информацией между устройствами компьютерной системы.
При разработке систем ввода/вывода должны быть решены следующие проблемы:
возможность реализации системы с переменным составом оборудования, в первую очередь с различным набором устройств ввода/вывода, с тем, чтобы пользователь мог выбирать состав оборудования (конфигурацию) системы в соответствии с ее назначением, легко дополнять систему новыми устройствами;
для эффективного и высокопроизводительного использования оборудования системы возможность параллельной во времени работы процессора над программой и выполнения периферийными устройствами процедур ввода/вывода;
упрощение для пользователя и стандартизация программирования операций ввода/вывода, обеспечение независимости программирования ввода/вывода от особенностей того или иного устройства ввода/вывода;
автоматическое распознавание и реакция системы на многообразие ситуаций, возникающих в устройствах ввода/вывода (например, готовность устройства, отсутствие носителя, различные нарушения нормальной работы устройства и т. п.).
Основными путями решения указанных проблем являются следующие:
модульность;
унифицированные (не зависящие от типа устройства ввода/вывода) форматы данных, которыми устройства ввода/вывода обмениваются с системой;
унифицированные интерфейсы;
унифицированные (не зависящие от типа устройства ввода/вывода) формат и набор команд процессора для операций ввода/вывода.
Для обеспечения параллельной во времени работы устройств ввода/вывода с выполнением программы обработки данных процессором схемы управления вводом/выводом отделяются от процессора и им придается достаточная степень автономности.
Различают два основных вида архитектуры систем ввода/вывода:
система непосредственного ввода/вывода;
система канального ввода/вывода.
В системе непосредственного ввода/вывода (рис. 32) обмен данными с устройствами ввода/вывода выполняется процессором.
Р ис. 32
В системе канального ввода/вывода (рис. 33) обмен данными, подлежащими вводу в процессор или выводу из него, происходит между процессором и памятью, а память связана с устройствами ввода/вывода через канал или процессор ввода/вывода.
Р ис. 33
При любой форме взаимодействия с микропроцессорной системой аппаратура ввода/вывода обычно состоит из собственно устройства ввода/вывода и устройства управления этим устройством ввода/вывода – контроллера устройства ввода/вывода.
Интерфейс между процессором или каналом ввода/вывода и контроллером устройства ввода/вывода называется системным интерфейсом, а интерфейс между контроллером и устройством ввода/вывода – интерфейсом ввода/вывода. Системный интерфейс, как правило, является общим для всех видов устройств ввода/вывода, а интерфейсы ввода/вывода специализированы для конкретных видов устройств ввода/вывода.
В общем случае ввод и вывод данных осуществляются путем обмена данными между основной памятью и устройствами ввода/вывода. Данные, находящиеся в основной памяти, подаются на устройства вывода, а от устройства ввода данные поступают для занесения в основную память. Для управления этим обменом необходимо обеспечить выполнение следующих функций:
управление адресацией всех данных, подлежащих вводу и выводу, обновление адресов при передаче каждого слова.
синхронизация обмена данными между устройствами ввода/вывода и основной памятью или процессором;
управление работой устройств ввода/вывода. Необходимо осуществлять не только передачу данных, но и реализацию управляющих действий, например, перемещение магнитной головки на нужную дорожку;
преобразование информации. Обычно основная память связана с внутренней системной шиной, а связь с устройствами ввода/вывода может осуществляться по-разному в зависимости от специфики этих устройств. Поэтому при передаче информации по шинам между основной памятью или процессором и устройствами ввода/вывода должно осуществляться ее преобразование.
Таким образом, при вводе/выводе принципиально необходимы действия, связанные с синхронизацией обмена данными ввода/вывода и их адресацией. В системах непосредственного ввода/вывода такие действия (перечисленные выше функции) выполняет процессор, а в системах канального ввода/вывода их выполнение возложено на различные канальные устройства (контроллеры ПДП, процессоры ввода/вывода).
Функции управления вводом/выводом могут быть
общими, не зависящими от типа устройств ввода/вывода;
специфичными для каждого типа устройств ввода/вывода.
Выполнение общих функций возлагают на общие для групп устройств ввода/вывода унифицированные устройства – контроллеры ПДП, процессоры (каналы) ввода/вывода, а специфических – на специализированные для каждого типа устройств ввода/вывода устройства управления – контроллеры устройств ввода/вывода.
С точки зрения программиста, работающего на уровне машинных команд, подсистему ввода/вывода можно представить в виде пространства ввода/вывода IOS и набора команд ввода/вывода, обеспечивающих к нему доступ. Организация пространства ввода/вывода подобна организации пространства памяти: IOS организовано в виде набора n-разрядных ячеек – портов, каждый из которых может быть адресован независимо от других.
Между микропроцессором и периферийными устройствами происходит обмен информацией двух типов:
служебной;
собственно данными.
Служебная информация от МП инициирует действия, связанные с обменом данными, и передается с помощью управляющих слов CW (Control Word). Служебные сообщения от периферийных устройств информируют МП о их текущем состоянии и называются словами состояния SW (Status Word). В отличие от них данные передаются с помощью слов данных DW (Data Word).
Объем служебной информации, которой обмениваются периферийные устройства и микропроцессор, а также ее интерпретация зависят от типа периферийного устройства. Для наиболее простых устройств, таких как прямо управляемые клавишные матрицы или светодиодные индикаторы, служебная информация не нужна. В других случаях, например при взаимодействии с НГМД, управляющая информация и данные о состоянии устройства могут иметь большой объем. При этом каждое ПУ воспринимает определенный, присущий только ему набор команд управления. Организовать в этом случае передачу каждой команды ПУ по отдельной линии магистрали (шины управления) не представляется возможным по двум причинам. Во-первых, при разработке микропроцессора достаточно трудно предусмотреть все возможные применения микропроцессорной системы на его основе, а следовательно, и используемые в ней ПУ. Во-вторых, для каждого дополнительного управляющего сигнала потребуется отдельный вывод в БИС микропроцессора, т.е. возникают чисто конструктивные ограничения на количество используемых в шине управления магистрали управляющих сигналов, связанные с числом выводов в БИС микропроцессора. Решение указанной проблемы осуществляется путем мультиплексирования шины данных: в одни моменты времени она используется для передачи данных, в другие моменты – для передачи служебной информации. При этом для связи с периферийным устройством отводится ряд портов ввода/вывода, через которые и проходит вся информация: управляющая, слова состояния и непосредственно данные. С точки зрения программиста множество портов ввода/вывода, связанных с данным периферийным устройством, образует пространство доступа к этому периферийному устройству.
В общем случае размер пространства доступа не зависит от объема информации, которой обмениваются периферийное устройство и микропроцессор, так как используется последовательная передача массива информации через один и тот же порт. При этом существуют правила обмена информацией между конкретным периферийным устройством и микропроцессором, которые называют протоколом обмена. Взаимодействие с периферийным устройством организуется с помощью драйвера – специальной программы, составленной на основе этих правил.
Подключение любого периферийного устройства к магистрали микропроцессорной системы осуществляется через контроллер ПУ (рис. 34).
Р ис. 34
Основу контроллера составляют регистры, которые служат для хранения передаваемой информации. Взаимодействие микропроцессора с этими регистрами осуществляется через порты ввода/вывода из пространства доступа к ПУ. Регистры и порты тесно связаны, иногда их трудно отделить друг от друга. Зачастую их отождествляют друг с другом. В этом смысле каждый регистр имеет свой адрес. Под адресом регистра понимается адрес порта, через который осуществляется доступ к этому регистру.
В контроллере ПУ используются регистры четырех типов в зависимости от типа информации, для хранения которой они предназначены:
регистр входных данных или входной регистр (доступен микропроцессору только по чтению);
регистр выходных данных или выходной регистр (доступен микропроцессору только по записи);
регистр состояния (доступен микропроцессору только по чтению). Содержит информацию о текущем состоянии ПУ (включено/выключено, готово/не готово к обмену данными, ошибка и т.п.);
регистр управления (доступен микропроцессору только по записи). Служит для приема из МП команд для ПУ.
В контроллерах сложных ПУ регистров каждого типа может быть несколько. В контроллерах, предназначенных для подключения простых ПУ, удается совместить в один регистры состояния и управления, что позволяет сократить количество используемых в контроллере портов ввода/вывода, а следовательно, и адресов, выделенных для данного ПУ.
Логика управления контроллера выполняет селекцию адресов регистров (портов ввода/вывода) контроллера, прием, обработку и формирование управляющих сигналов системной магистрали, а также выработку внутренних управляющих сигналов, обеспечивая тем самым обмен информацией между регистрами контроллера и шиной данных магистрали микропроцессорной системы.
Приемо-передатчики шины данных и шины адреса служат для физического подключения схем контроллера к соответствующим шинам системной магистрали.
На практике часто используют программируемые контроллеры, режимы работы которых устанавливаются специальными командами МП. Программируемый контроллер необходимо настраивать на конкретный режим обмена данными, присущий ПУ: синхронный или асинхронный, с использованием сигналов прерывания или без их использования, на заданную скорость обмена и т.д. Настройка таких контроллеров на требуемый режим обмена производится программным путем с помощью специальных команд (управляющих слов), передаваемых из МП в контроллер ПУ перед началом обмена. Управляющее слово записывается в специальный регистр и инициирует заданный режим обмена с ПУ. В качестве примера можно привести микросхему фирмы Intel 8255 – программируемый контроллер параллельного интерфейса.
В микропроцессорных системах используются два основных способа организации передачи данных между системой и устройствами ввода/вывода (рис. 35):
программно-управляемый обмен;
прямой доступ к памяти (ПДП).
Программно-управляемый обмен – обмен, управляемый программой, т. е. когда процедуры обмена информацией с периферийным устройством инициируются и выполняются непосредственно программой, реализуемой процессором через его регистры. Программно-управляемый обмен осуществляется при непосредственном участии и под управлением процессора.
Р ис. 35
С точки зрения аппаратных затрат программно-управляемый обмен является наиболее эффективным типом обмена, поэтому он находит самое широкое применение в различных микропроцессорных системах.
Прямой доступ к памяти – обмен, управляемый внешним устройством. ПДП осуществляется непосредственно с памятью без вмешательства программы, минуя МП, в общем случае по специальному информационному каналу под управлением специального устройства – контроллера прямого доступа к памяти.