Программа для ЭВМ это упорядоченная последовательность команд, подлежащая обработке
Скачать 1.98 Mb.
|
27.Архитектура подсистемы ввода/вывода микропроцессорной системы.Подсистема ввода/вывода отвечает за связь с устройствами ввода/вывода. Обычно употребляется термин периферийныеустройства(ПУ), которые подразделяются на устройстваввода/вывода(УВВ – клавиатура, мышь, принтер, монитор и др.) и внешниезапоминающиеустройства(ВЗУ). Внешние запоминающие устройства занимают в микропроцессорной системе особое положение. С точки зрения выполняемой функции они относятся к подсистеме памяти (внешняя память, предназначенная для хранения информации, совместно с основной памятью может использоваться для организации виртуальной памяти), а связь с ними осуществляется так же, как и с устройствами ввода/вывода, т.е. с помощью подсистемы ввода/вывода. Поэтому при рассмотрении подсистемы ввода/вывода все периферийные устройства будем называть устройствами ввода/вывода. Связь устройств микропроцессорной системы друг с другом осуществляется с помощью специальных совокупностей средств и правил, которые называются интерфейсами. При любой форме взаимодействия с микропроцессорной системой аппаратура ввода/вывода обычно состоит из собственно устройства ввода/вывода и устройства управления этим устройством ввода/вывода – контроллера устройства ввода/вывода. Интерфейс между процессором и контроллером устройства ввода/вывода называется системныминтерфейсом, а интерфейс между контроллером и устройством ввода/вывода – интерфейсомввода/вывода. Системный интерфейс, как правило, является общим для всех видов устройств ввода/вывода, а интерфейсы ввода/вывода специализированы для конкретных видов устройств ввода/вывода. С точки зрения программиста, работающего на уровне машинных команд, подсистему ввода/вывода можно представить в виде пространства ввода/вывода IOS и набора команд ввода/вывода, обеспечивающих к нему доступ. Организация пространства ввода/вывода подобна организации пространства памяти: IOS организовано в виде набора n-разрядных ячеек – портов, каждый из которых может быть адресован независимо от других. Между микропроцессором и периферийными устройствами происходит обмен информацией двух типов:
Служебная информация от МП инициирует действия, связанные с обменом данными, и передается с помощью управляющихсловCW (Control Word). Служебные сообщения от периферийных устройств информируют МП о их текущем состоянии и называются словамисостоянияSW (Status Word). В отличие от них данные передаются с помощью словданныхDW (Data Word). Объем служебной информации, которой обмениваются периферийные устройства и микропроцессор, а также ее интерпретация зависят от типа периферийного устройства. Для наиболее простых устройств, таких как переключатели (кнопки) или светодиодные индикаторы, служебная информация не нужна. В других случаях управляющая информация и данные о состоянии устройства могут иметь большой объем. При этом каждое ПУ воспринимает определенный, присущий только ему набор команд управления. Поэтому передача служебной информации осуществляется путем мультиплексирования шины данных: в одни моменты времени она используется для передачи данных, в другие моменты – для передачи служебной информации. При этом для связи с периферийным устройством отводится ряд портов ввода/вывода, через которые и проходит вся информация: управляющая, слова состояния и непосредственно данные. С точки зрения программиста множество портов ввода/вывода, связанных с данным периферийным устройством, образует пространстводоступакэтомупериферийномуустройству. Основу контроллера ПУ составляют регистры, которые служат для хранения передаваемой информации. Взаимодействие микропроцессора с этими регистрами осуществляется через порты ввода/вывода из пространства доступа к ПУ. Регистры и порты тесно связаны, иногда их трудно отделить друг от друга. Зачастую их отождествляют друг с другом. В этом смысле каждый регистр имеет свой адрес. Под адресом регистра понимается адрес порта, через который осуществляется доступ к этому регистру. В контроллере ПУ используются регистры четырех типов в зависимости от типа информации, для хранения которой они предназначены:
В контроллерах сложных ПУ регистров каждого типа может быть несколько. В контроллерах, предназначенных для подключения простых ПУ, удается совместить в один регистры состояния и управления, что позволяет сократить количество используемых в контроллере портов ввода/вывода, а следовательно, и адресов, выделенных для данного ПУ. Способы организации передачи данных: прямой ввод/вывод, условный ввод/вывод, ввод/вывод по прерыванию. В микропроцессорных системах используются два основных способа организации передачи данных между системой и устройствами ввода/вывода (рис. 38):
Рисунок 38 – Способы организации передачи данных Программно-управляемыйобмен– это обмен, управляемый программой, т.е. когда процедуры обмена информацией с периферийным устройством инициируются и выполняются непосредственно программой, реализуемой процессором через его регистры. Программно-управляемый обмен осуществляется при непосредственном участии и под управлением процессора (см. рис. 38). С точки зрения аппаратных затрат программно-управляемый обмен является наиболее эффективным типом обмена, поэтому он находит самое широкое применение в различных микропроцессорных системах. Программно-управляемый обмен может осуществляться одним из трех способов:
Прямойввод/вывод. Использ-ся только для процессов, строго фиксированных во времени и полностью определенных. Процедуры ввода или вывода выпол-тся независимо от состояния периферийного устройства. Процедуры прямого ввода/вывода в чистом виде возможны только при работе с всегда готовыми к обмену простейшими устройствами, для которых точно известно время выполнения операции (например, индикатор). Они являются составными элементами более сложных процедур программно-управляемого обмена – условного ввода/вывода и ввода/вывода по прерыванию. Прямой ввод/вывод реализ-ся с помощью портов пространства IOS. Порты ввода/вывода явл-ся простейшими схемными элементами, на основе которых реализуется связь с периферийными устройствами. Они образуют первый, наиболее близкий к МП уровень аппаратных средств подсистемы ввода/вывода. В простейшем случае этот уровень явл-ся единственным. Условныйввод/вывод. Прямой ввод/вывод явл-ся наиб. простым видом обмена, требующим минимальных затрат аппаратных и программных средств. Однако, как правило, скорость работы периферийных устройств во много раз ниже скорости работы МП, что приводит к проблеме синхронизации обмена. Поэтому прежде чем приступить к чтению новых данных из порта ввода, необходимо удостовериться, что ПУ готово предоставить или уже предоставило эти данные. Иначе операция сведется к вводу недействительных или старых данных. Аналогичная ситуация складывается и при выводе данных, когда требуется проверка готовности ПУ к приему новых данных. В противном случае неразрешенный со стороны ПУ вывод может привести к потере данных. Типичное решение проблемы синхронизации обмена:использование условного ввода/вывода. При условном вводе/выводе операции обмена сопровождаются специальным сигналом готовности RDY, вырабатываемом периферийным устройством и входящим в состав его слова состояния SW. Этот сигнал служит для информирования МП о готовности периферийного устройства принять или передать новые данные. После завершения операции ввода/вывода сигнал готовности (соответствующий разряд слова состояния SW) должен быть снят и выставлен заново только при новой готовности к обмену. С этой целью периферийное устройство следует проинформировать об окончании операции, для чего используется включенный в управляющее слово CW сигнал подтверждения ACK. Протокол обмена служебной информацией такого типа называется квитированием. Он обеспечивает надежную асинхронную передачу данных со скоростями, определяемыми периферийным устройством. Состояние сигнала готовности RDY может быть определено микропроцессором путем чтения регистра состояния, в котором находится слово состояния ПУ, через соответствующий порт ввода. Сигнал подтверждения ACK может формироваться микропроцессором путем записи управляющего слова в регистр управления через соответствующий ему порт вывода. Такой вариант формирования сигналов квитирования называется программнымквитированием. В сравнении с прямым условный ввод/вывод с программным квитированием связан с увеличением аппаратных затрат, а также с потерями времени МП на ожидание готовности периферийного устройства. Однако это наиболее распространенный вид обмена с периферийными устройствами. Он используется в системах, где эффективность не связана с ожиданиями. Признаком окончания операции служит само обращение к порту данных. Это упрощает как схему порта, так и процедуру обмена, освобождая пользователя от работы с управляющим словом. При этом на входе порта ввода предусматривается регистр- защелка, фиксирующий входные данные по стробу STB, генерируемому периферийным устройством. Запись во входной буфер устанавливает флажок готовности входнойбуферполныйIBF (Input Buffer Full), инициируя операцию ввода. Флажок сбрасывается автоматически при чтении МП содержимого входного буфера. При выводе роль флажка готовности выполняет флажок выходнойбуфер пустойOBE (Output Buffer Empty). Сигналом окончания операции вывода и установки флажка OBE служит сигнал подтверждения ACK, генерируемый периферийным устройством.Ввод/выводпопрерыванию. Эффективность работы микропроцессорной системы может быть существенно повышена, если отказаться от малопроизводительного ожидания готовности ПУ на программном уровне и передать эту функцию специальным аппаратным средствам. В это время процессор может выполнять некоторую полезную работу, связанную с обработкой данных или обслуживанием других ПУ. При готовности приступить к очередной операции ввода/вывода ПУ посылает в микропроцессор запрос на прерывание, по получении которого МП временно приостанавливает (прерывает) выполнение текущей программы и передает управление специальной подпрограмме, организующей нужный вид обмена данными. После обслуживания ПУ микропроцессор возвращается к прерванной программе, продолжая ее с момента приостановки. Обслуживание прерываний осуществляется в незаметном для основной программы режиме, поэтому их наличие прямо не влияет на работу последней, за исключением времени ее исполнения. Обслуживание ввода/вывода по прерыванию явл-ся альтернативой двум другим видам программно-управляемого обмена.Если при чисто программном управлении как начало процедуры, так и непосредственное ее исполнение находятся под управлением программы, то обслуживание по прерыванию инициируется аппаратными средствами. Таким образом, обмен с прерываниями отличается от условного (асинхронного) программно-управляемого обмена тем, что переход к выполнению команд, физически реализующих обмен данными (командам ввода/вывода), осуществляется с помощью специальных аппаратных средств. Команды обмена данными в этом случае выделяют в отдельный программный модуль – подпрограммуобработкипрерывания. Задачей аппаратных средств обработки прерываний в МП является приостановка выполнения одной программы (основной) и передача управления подпрограмме обработки прерывания. Действия, выполняемые при этом МП, как правило, те же, что и при обращении к подпрограмме. Только при обращении к подпрограмме они инициируются специальной командой, а при обработке прерывания – сигналом от ПУ, который называют запросомпрерывания. Эта важная особенность обмена с прерыванием программы позволяет организовать обмен данными с ПУ в произвольные моменты времени, не зависящие от программы,выполняемой в МП. Таким образом, появляется возможность обмена данными с ПУ в реальном масштабе времени, определяемом внешней по отношению к микропроцессорной системе средой. Кроме того, обмен с прерыванием программы существенным образом экономит время процессора, затрачиваемое на обмен, за счет того, что исчезает необходимость в организации программных циклов ожидания готовности ПУ 28.Организация прерываний в микропроцессорной системе. Системойпрерыванийназывается совокупность специальных аппаратных средств, осуществляющих прием запроса на прерывание и переход к подпрограмме обработки этого запроса, команд и программ обслуживания запросов прерывания. Кроме обслуживания ПУ (выполнения обмена) в микропроцессорной системе существуют и другие события, которые могут вызвать прерывание процессора. Типы прерываний зависят от конкретной микропроцессорной системы. Прерывания распадаются на два основных класса: внешние; внутренние. Внешниепрерывания. Вызываются асинхронными событиями, которые происходят вне прерываемой программы. Например, прерывания от таймера или подсистемы ввода/вывода. Внутренниепрерывания. Вызываются событиями, которые связаны с работой процессора и являются синхронными с его операциями. Например: арифметическое переполнение, попытка деления на 0, переполнение или исчезновение порядка при выполнении операций с плавающей запятой; внутренние прерывания происходят при обращении к защищенным или несуществующим ячейкам памяти, а также к отсутствующему сегменту или странице; прерывания вызывает попытка использовать незадействованный код операции, а также попытка использовать привилегированные команды в пользовательском режиме; внутренние прерывания могут вызываться также сбоями системы, например, ошибкой четности; при выполнении специальных команд. Прерывание программы не должно оказывать на прерванную программу никакого влияния кроме увеличения времени ее выполнения за счет приостановки на время выполнения подпрограммы обработки прерывания. Для этого после приема запроса на прерывание состояние МП необходимо сохранить. Для того чтобы прерванная программа могла быть продолжена после обслуживания очередного запроса на прерывание с того места, на котором она была приостановлена, состояние процессора должно быть восстановлено. Всякий раз, когда процессор воспринимает запрос на прерывание, он активизирует процедуру обслуживания, передавая ее стартовый адрес в программный счетчик. Чтобы не потерялось старое содержимое программного счетчика, которое является адресом возврата в прерванную программу, оно должно быть автоматически сохранено. Лучше всего для этой цели использовать системный стек, тогда возврат к прерванной программе будет заключаться в передаче управления по адресу, находящемуся на вершине стека. Обычно аппаратными средствами обработки прерывания автоматически сохраняется не только содержимое программного счетчика, но и регистра состояния процессора, а также его программно-доступных регистров. Таким образом, хотя существует несколько различных способов обработки прерывания, следующая последовательность действий присуща большинству микропроцессорных систем: фиксируются характеристики произошедшего прерывания (тип прерывания); сохраняется состояние прерванной программы – состояние процессора; анализируется тип прерывания и передается управление соответствующей подпрограмме обработки этого прерывания; обрабатывается прерывание – выполняется соответствующая подпрограмма; восстанавливается состояние процессора, что приводит к возобновлению выполнения прерванной программы. Во всех системах прерываний предусмотрен механизм программно-управляемой блокировки запросов, который реализуется с помощью набора флажков, разрешающих или запрещающих восприятие запросов на прерывание процессором. Эти флажки образуют маску прерываний и либо упаковываются в отдельный регистр маски прерываний, либо входят в состав регистра флагов (признаков) процессора. Существуют две системы прерываний: радиальная система прерываний; векторная система прерываний. |