Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Voprosy_i_otvety_MPT.doc
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
3.94 Mб
Скачать

3. Структура микропроцессорной системы и основные режимы ее работы – выполнение основной программы, обслуживание прерываний, прямой доступ к памяти.

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

Рис. 3.1. Типовая структура МПС

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

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

С программной точки зрения память МПС представляет собой набор регистров (ячеек памяти), обычно 8-разрядных, предназначенных для хранения информации в двоичной форме. Каждая ячейка имеет уникальный адрес, что обеспечивает возможность доступа к ней.

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

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

С программной точки зрения порт ввода – это адрес устройства МПС, через которое из ВУ могут быть переданы данные на ШД. Соответственно порт вывода – это адрес устройства МПС, через которое данные с ШД передаются на ВУ.

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

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

Практически любая МПС (в том числе и компьютер) имеет три основных режима работы:

  1. выполнение основной программы;

  2. обслуживание прерываний;

  3. прямой доступ к памяти.

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

Для хранения адреса очередной команды служит специальный регистр МП – счетчик команд или программный счетчик PC (Program Counter), содержимое которого автоматически увеличивается на 1 (инкрементируется) после выборки очередного байта команды. Таким способом обеспечивается последовательность выборки команд в процессе выполнения программы. При выборке очередной команды содержимое PC поступает на шину адреса, обеспечивая считывание из памяти следующей команды выполняемой программы. При реализации безусловных или условных переходов (ветвлений) или других изменений последовательности выполнения команд производится загрузка в PC нового содержимого, в результате чего происходит переход к другой ветви программы или подпрограмме.

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

Для реализации процедуры вызова подпрограммы и возврата из нее используется стек (stack) – часть ОЗУ, предназначенная для временного хранения данных, и работающая по принципу LIFO (Last In-First Out – последним пришел, первым ушел).

Особенность стека – это заданный и неизменный способ адресации. Адресация к ячейкам стека производится с помощью специального регистра – указателя стека SP (Stack Pointer), который входит в состав МП. При записи любого числа (кода) в стек число записывается по адресу, определяемому как содержимое регистра SP, предварительно уменьшенное на единицу (декрементированное), т.е. (SP) = (SP) – 1. При чтении из стека число читается из ячейки с адресом, определяемым содержимым указателя стека, после чего это содержимое увеличивается на единицу (инкрементируется), т.е. (SP) = (SP) + 1. В результате получается, что число, записываемое последним, будет прочитано первым, а число, записанное первым, будет прочитано последним.

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

Программные прерывания возникают при поступлении в МП соответствующих команд. Аппаратные прерывания активизируются при поступлении сигналов от внешних устройств. Исключениями являются ошибки, возникающие при работе МП.

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

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

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]