Справочное пособие по цифровой электронике | страница 24



Стек работает по принципу «последний пришел — первый ушел» (LIFO). Данные включаются («проталкиваются») в стек, а затем извлекаются («выталкиваются») из него. Указатель стека SP следит за положением стека, т. е. содержит адрес последней использованной ячейки стека. В некоторых микропроцессорах, например в микропроцессоре 6809, имеются два независимых указателя стека — системный указатель стека SSP и пользовательский указатель стека USР.

Регистр команды непосредственно программисту недоступен. Он содержит текущий командный байт, который декодируется дешифратором команды. Выходы дешифратора команды подаются в схему управления микропроцессора, определяющую направление передач данных и реагирующую на внешние сигналы, появляющиеся на шине управления, а также выполняет другие функции.

Упрощенная внутренняя архитектура типичного 8-битного микропроцессора показана на рис. 5.1.



Рис. 5.1.Упрощенная внутренняя архитектура типичного 8-битного микропроцессора.


Отметим, что линии внешней шины управления изолированы от линий внутренней шины с помощью буферов и основные внутренние элементы связаны быстродействующей внутренней шиной данных.


5.2. Линии управления

Рассмотрим вкратце функции наиболее важных внешних линий управления, которые имеются в большинстве микропроцессоров.

Считывание/запись. На линии считывания/записи R/W¯ действует сигнал низкого уровня, когда микропроцессор выполняет операцию записи, и сигнал высокого уровня в операции считывания. В некоторых микропроцессорах, например в Z80, имеются отдельные линии считывания READ и записи WRITE.

Запрос прерывания. На входной линии запроса прерывания 

или 
внешнее устройство формирует сигнал низкого уровня, обращая «внимание» микропроцессора на этот сигнал. Если флажок прерывания сброшен (логический 0), запрос воспринимается и микропроцессор прерывает обычную обработку и переходит к выполнению нужной процедуры прерывания.

Немаскируемое прерывание. Реакция на обычный запрос прерывания (

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