Структура микропроцессорной системы
Структура МПС является магистрально-модульной. В такой структуре имеется группа магистралей (шин), к которым подключаются различные модули (блоки), обменивающиеся между собой информацией по одним и тем же шинам поочередно, в режиме разделения времени.
На рисунке 1 представлена типичная трехшинная структура МПС с шинами адресов ША, данных ШД и управления ШУ. Трехшинная структура в чистом виде характерна для простых МПС, в более производительных системах шинная структура образует более сложную иерархию. Но в своей основе разделение на перечисленные виды шин остается справедливым, хотя и может относиться не к отдельным шинам, а к их группам.
Рис. 1. Структура МПС
Функционирование МПС сводится к следующей последовательности действий: получение данных от различных периферийных устройств (с клавиатуры терминала, от дисплеев, из каналов связи, от различного типа внешних запоминающих устройств), обработка данных и выдача результатов обработки на периферийные устройства (ПУ). При этом данные от ПУ, подлежащие обработке, могут поступать и в процессе их обработки.
Для выполнения этих действий в МПС кроме микропроцессора (МП) предусматриваются следующие устройства:
- оперативная память (ОП), предназначенная для хранения и выдачи по запросам команд программ, определяющих работу микропроцессора, различных данных (исходных данных, промежуточных и конечных результатов обработки данных в микропроцессоре);
- контроллеры - устройства, обеспечивающие обмен данными различных ПУ с микропроцессором и ОП.
Микропроцессор выдает на шину адреса номер (адрес) ячейки ОП, в которой хранится очередная команда, и из шины управления в ОП поступают сигналы, обеспечивающие считывание содержимого указываемой шиной адреса ячейки памяти. Оперативная память выдает запрошенную команду на шину данных, откуда она принимается в микропроцессор. Здесь команда расшифровывается. Если данные, действия над которыми предусматривает команда, находятся в регистрах микропроцессора, то микропроцессор приступает к выполнению указанной в команде операции. Если при расшифровке команды выяснится, что участвующие в операции данные находятся в ОП, то микропроцессор выставляет на шину адреса адрес ячейки, хранящей эти данные; после выдачи данных из ОП микропроцессор принимает их через шину данных, затем выполняется операция над данными. После завершения текущей команды на шину адреса выдается адрес следующей команды, и описанный процесс повторяется.
Обмен данными с ПУ может осуществляться следующим образом. Группа ПУ подключается к шине данных МПС через контроллер обмена (устройства сопряжения), управляющий процессом обмена данными. До начала непосредственного обмена данными с ПУ микропроцессор через шину данных должен выдать в контроллер информацию о режимах, используемых при передаче, направлениях передачи данных (от микропроцессора к ПУ либо, наоборот, от ПУ к микропроцессору), используемых в дальнейшем при обмене данными с каждым из подключенных к контроллеру ПУ. Затем в момент, когда потребуется, например, передать в ОП выдаваемые из ПУ данные, микропроцессор, выполняя команду ввода, подает на контроллер соответствующие управляющие сигналы; данные из ПУ принимаются в регистр контроллера, откуда они затем контроллером выдаются на шину данных. Далее эти данные с шины данных принимаются в микропроцессор, после чего в процессе выполнения соответствующей команды они передаются в ОП.
Аналогично происходит обмен данными в обратном направлении — от ОП к ПУ. По соответствующей команде программы осуществляется прием из ОП в микропроцессор данных, подлежащих передаче, после чего по одной из следующих команд эти данные выдаются на шину данных и через контроллер обмена передаются на УП.
Описанный обмен предполагает, что моменты обмена данными известны заранее уже на этапе программирования, и в программе предусматриваются в определенных местах соответствующие команды, обеспечивающие обмен. Моменты обмена могут определяться и самим ПУ. Тогда эти моменты программисту оказываются неизвестными, он не может предусмотреть в программе соответствующие команды обмена. В этих случаях ПУ, подавая в микропроцессор определенные сигналы, переводит его в состояние так называемого прерывания.В этом состоянии микропроцессор прекращает выполнение основной программы и переходит к исполнению команд другой хранящейся в ОП программы (прерывающей программы),обеспечивающей обмен данными, требуемый периферийным устройством. После окончания такой прерывающей программы микропроцессор возвращается к выполнению основной программы.
Описанные способы обеспечивают низкую скорость обмена, и применять их целесообразно при обмене данными с низкоскоростными ПУ. При работе с высокоскоростными ПУ (такими, как запоминающие устройства на дисках и др.) используется так называемый режим прямого доступа к памяти(ПДП). В этом режиме микропроцессор отключается от шин адреса и данных, предоставляя их в распоряжение ПУ для непосредственного обмена данными с ОП (без участия микропроцессора). Обмен при этом организуется специальным контроллером ПДП.
В режиме ПДП ПУ обменивается с ОП не одиночными данными, а большими блоками данных. В контроллер ПДП микропроцессор предварительно помещает информацию, необходимую для управления обменом (адрес ячейки ОП, куда помещается или откуда считывается первое подлежащее обмену слово, количество слов в блоке и др.). В процессе обмена контроллер ПДП выдает на шину адреса адрес ячейки ОП, после окончания передачи слова между ОП и ПУ через шину данных контроллер ПДП увеличивает на единицу значение адреса, выдаваемого на шину адреса. После завершения передачи заданного количества слов контроллер ПДП прекращает обмен, информируя об этом микропроцессор. Последний восстанавливает связь с шинами адреса и данных и продолжает выполнение программы.