
- •Устройство и принцип действия микропроцессорных систем Микропроцессор и микропроцессорная система
- •Базовая структура мпс
- •Арифметико-логическое устройство (алу)
- •Устройство управления (уу)
- •Устройства ввода-вывода (увв)
- •Обобщенный алгоритм функционирования мпс
- •Функциональная схема мпс
- •Представление информации и система команд мп
- •Связь с внешними устройствами
Устройства ввода-вывода (увв)
УВВ МПС представляют собой совокупность буферных .регистров (устройства ввода) и регистров-фиксаторов (устройства вывода), через которые осуществляется связь МП с ВУ. Эти регистры называются портами ввода-вывода. Порты ввода-вывода (ВВ) также имеют адреса, как и ячейки памяти, но в отличие от них, с ними могут производиться только операции считывания (ввода) - для портов ввода, или записи (вывода) - для портов вывода.
Обобщенный алгоритм функционирования мпс
Итак, активной частью МПС, ее ядром, является МП - функциональное устройство, которое под воздействием тактовых импульсов способно в бесконечной последовательности выполнять посылаемые ему команды.
Рис. 2
Во-первых, выбрать команду из памяти.
После того как программа и данные введены в память, адрес первой выполняемой команды загружается в счётчик команд (СК) и начинается фаза выборки: содержимое СК выставляется на АШ, и команда, которая находится в адресованной ячейке памяти, посылается по ШД в регистр команд УУ. Поскольку команды в памяти располагаются в последовательных ячейках памяти, содержимое СК увеличивается на 1, и в нем оказывается адрес следующего слова программы. Затем УУ декодирует код операции только что полученной команды. Если код операции показывает, что команда состоит из более, чем одного слова, фаза выборки повторяется нужное число раз, чтобы выбрать команду полностью. При этом каждый раз содержимое СК увеличивается на 1. Таким образом, после завершения фазы выборки команды СК всегда содержит в себе адрес следующей команды.
Во-вторых, выполнить команду.
После выборки и декодирования всей команды УУ переходит к фазе ее выполнения . Оно формирует управляющие сигналы, и соответствующие схемы выполняют заданную в команде операцию. Если в команде задан адрес операнда, УУ переходит к пересылке адресуемой информации между указанной ячейкой или портом ввода-вывода и соответствующим блоком МПС, например, АЛУ. Для этого адресная часть команды передается на АШ, подготавливая последующее появление адресуемой информации на ШД. В конечном счете, УУ обеспечивает фактическое выполнение заданной операции.
В-третьих, определить адрес следующей команды.
Когда команды расположены в последовательных ячейках памяти, адрес следующей выполняемой команды уже находится в СК. В этом случае МП вновь обращается к фазе выборки и описанный выше процесс повторяется до тех пор, пока МП не получит указание остановиться.
Описанный алгоритм работы МПС характерен для известных автоматов, управляемых последовательной программой. Однако этим не исчерпываются возможности МПС. Новое качество МП как программно управляемого автомата состоит в том, что он способен обеспечить ветвление программ. Это значит, что в зависимости от ранее полученного результата обработки информации (нуль, переполнение разрядной сетки и т.д.) возможно альтернативное продолжение программы. Для этой цели используются команды переходов или передачи управления. Эти команды осуществляют проверку состояния флажка, отражающего соответствующий признак полученного результата, и при выполнении условия перехода изменяют содержимое СК, помещая в него новый адрес, содержащийся в адресной части команды перехода. Таким образом, УУ автоматически получает нужную ему следующую команду.
Существует особый тип команд перехода - команды вызова и команды возврата, которые позволяют многократно использовать некоторую последовательность команд, называемую подпрограммой. Подпрограмма хранится в памяти отдельно от главной программы и предназначается для выполнения конкретной функции или процедуры, которая часто встречается в главной программе.
Для использования подпрограммы ее необходимо вызвать из главной программы (передать ей управление), выполнить и вернуться в главную программу для продолжения работы. Чтобы обеспечить возвращение в главную программу, команда вызова сохраняет содержимое СК, которое было в нем до перехода к подпрограмме, т.е. адрес возврата, в специальной области памяти - стеке, и затем передаёт управление подпрограмме. В свою очередь подпрограмма всегда заканчивается командой возврата, которая восстанавливает содержимое СК, помещая в него сохраненный в стеке адрес возврата.
В общем случае стек - это совокупность регистров, которые принимают и выдают информацию в соответствии с правилом: “последним вошел - первым вышел” (LIFO - last-in first-out). Это означает, что только вершина стека, где находится последний его элемент, непосредственно доступна извне. В зависимости от типа МП стек может находиться в УУ или использовать часть общей памяти системы.
Если стек может хранить несколько адресов (значений СК), то это позволяет выполнять вложенные подпрограммы. Очевидно, что глубина вложений подпрограмм зависит от емкости стека.
В-четвёртых, осуществить проверку запросов прерывания.
При работе в режиме реального времени МПС должна обладать способностью как можно быстрее реагировать на определённые события, спонтанно возникающие в системе управления. При возникновении такого события МП должен приостановить выполнение текущей программы и перейти к соответствующей подпрограмме, выполняемой как необходимая реакция МПС на возникшее событие. В соответствии со случайным характером этот вид ветвления должен в каждом из многочисленных случаях распознаваться и осуществляться специальными аппаратными средствами. Эти средства - система прерываний, являющаяся составной частью МПС.
Для реализации механизма прерываний МП имеет специальный вход, на который подаются сигналы, или запросы прерывания от ВУ. Поскольку сигналы прерывания возникают в случайные моменты времени, МП реагирует на них не сразу, а лишь после завершения текущего командного цикла.
В конце каждого командного цикла и перед началом следующего МП проверяет наличие сигнала прерывания и в случае его обнаружения сохраняет адрес следующей команды в стеке, а в СК записывает предусмотренный системой прерывания начальный адрес соответствующей подпрограммы обслуживания этого прерывания. Таким образом гарантируется, что после выполнения подпрограммы обслуживания прерывания сохраненный в стеке первоначальный адрес следующей команды будет возвращен в СК (разумеется, с некоторой задержкой) и прерванная программа будет продолжена без потери информации.
Таким образом, следует различать прекращение последовательного выполнения программы по командам перехода и по запросам прерывания. В обоих случаях последствия одинаковы: продолжение программы следует не в соответствии с последующей командой программной памяти, а по заранее предусмотренному адресу. Но по существу здесь имеются значительные различия, а именно: командами перехода осуществляется детерминированное ветвление программы как реакция на определенные события, возникающие по ходу выполнения программы; прерывания, напротив, обуславливают ветвление программы вследствие случайных событий, появляющихся независимо от выполняемой программы как необходимая реакция МПС на поведение или состояние ВУ.
Способность прерывания является решающим инструментом обработки информации в реальном масштабе времени. Пропускная способность систем прерывания (например, требуемое время перехода к подпрограмме) является поэтому важнейшей характеристикой МПС.
Отметим, что порядок обработки прерываний от нескольких устройств определяется аппаратным и программным обеспечением системы прерываний и может следовать правилу обслуживания: ”первым вошел - первым вышел” (FIFO), либо некоторой приоритетной схеме в соответствии с установленным приоритетом устройств.