- •Раздел 3. Микропроцессорная техника
- •3.1. Общие сведения о микропроцессорных средствах.
- •§ 3.1.1. Большие интегральные схемы
- •3.1.2. Микропроцессоры. Основные определения
- •3.2. Понятия о преобразовании информации и теории алгоритмов
- •3.2.1. Понятия о преобразовании информации
- •3.2.2 Особенности систем обработки информации на основе бис
- •3.3 Аналоговые и цифровые микроэлектронные устройства
- •3.3.1. Основные понятия. Логические операции
- •§ 3.3.2. Аналоговые интегральные микросхемы
- •§ 3.3.3. Цифровые микроэлектронные устройства
- •3.4. Архитектура микропроцессора
- •3.4.1. Понятие об архитектуре микропроцессора
- •3.4.2. Организация процесса обработки информации
- •3.4.3. Организация процесса управления
- •3.4.4. Организация шин в микропроцессорах
- •3.5. Организация интерфейса в микропроцессорах
- •3.5.1. Понятие об интерфейсе
- •3.5.2. Порты ввода-вывода
- •3.5.3. Координация взаимодействия микропроцессора с внешними устройствами
- •3..5.4. Организация передачи данных с использованием систем прерываний
- •3.5.5. Прямой доступ к памяти
- •3.5.6. Организация связи микропроцессора с памятью
- •3.5.7. Аналого-цифровые и цифро-аналоговые преобразователи
- •3.5.8. Практическое применение микропроцессоров.
- •3.5.9. Системы управления технологическими процессами
3.4.3. Организация процесса управления
Устройство управления ЭВМ, микро - ЭВМ и любой микропроцессорной системы обеспечивает выполнение последовательности микроопераций в соответствии с кодом текущей команды и организует выборку команд программы в соответствии с выполняемой программой. Обобщенная схема управления представлена на рис. 15.
Рис. 15. Обобщенная схема устройства управления.
Остановимся на назначении каждого блока:
блок микропрограммной памяти хранит микрокоманды;
блок генерации адреса микрокоманды формирует адрес очередной микрокоманды, который в общем случае зависит от кода выполняемой микрокоманды, кодов признаков, выполняемых в АЛБ операций, информации блоков синхронизации и прерывания процессора;
блок синхронизации принимает управляющие сигналы и формирует последовательность синхроимпульсов для основных блоков микропроцессора;
дешифратор микрокоманд формирует управляющие сигналы, поступающие на исполнительные блоки микропроцессора.
Наибольшее распространение получили управляющие устройства с использованием в качестве микропрограммной памяти постоянного запоминающего устройства (ПЗУ) или перепрограммируемого запоминающего устройства (ППЗУ) и устройства на базе программируемой логической матрицы (ПЛМ). В первом случае блок памяти микрокоманд выполняют на базе стандартных БИС памяти типа ПЗУ и ППЗУ. Остальные блоки устройства управления объединяют в отдельную БИС или исполняют в виде отдельных устройств. В устройствах управления на базе ПЛМ все блоки объединяют в одну БИС, представляющую собой законченный цифровой автомат.
Принцип работы устройства управления заключается в том, что блоком генерации адреса указывается адрес команды, которая выбирается из блока микропрограммной памяти. Данная команда поступает на дешифратор, который в зависимости от кода команды вырабатывает управляющие сигналы, поступающие в операционную (обрабатывающую) часть микропроцессора. Здесь выполняются арифметические или логические операции. После выполнения этих операций от АЛБ подается сигнал в блок генерации адреса, где выбирается следующий адрес команды и таким образом будут выбраны и выполнены все микрокоманды для выполнения нужной операции.
Наример, надо перемножить два числа, хранящиеся в двух регистрах Р1 и Р2 в блоке РОН (рис. 13а). Устройство управления вырабатывает первую микрокоманду, по которой число из регистра Р1 будет перенесено в регистр БР; второй микрокомандой будет перенесено второе число в регистр Рсдв, а по третьей микрокоманде в АЛБ будет выполнено умножение этих чисел и результат записан в третий регистр РОН.
Как же выбирается адрес следующей команды?
Наиболее распространены в микропроцессорных устройствах управления способы формирования следующего адреса микрокоманд с помощью инкрементного счетчика, поля «следующего адреса» в составе формата микрокоманды и стековой памяти.
Рис. 16. Схемы генерации адреса:
а — с икрементным счетчиком; б—с полем «следующего адреса»;
в — со стековой магазинной памятью
Устройство управления с инкрементным счетчиком для определения следующего адреса является самым простым: адресc. следующей команды определяется увеличением на единицу адреса исполняемой команды. Такое устройство управления предполагает естественный порядок следования микрокоманд, при котором последующие микрокоманды отличаются адресом на единицу от предыдущих (рис. 16, а). На вход М.1 подается начальный адрес последовательности команд. Мультиплексор этот адрес пропускает в регистр адреса РгА. После выполнения микрокоманды содержимое счетчика увеличивается на единицу и с его выхода подается сигнал на мультиплексор МС, который передает в регистр РгА адрес команды на единицу больше.
Устройство с полем «следующего адреса» в составе микрокоманды позволяет организовать произвольный порядок следования микрокоманд. В поле «следующего адреса» исполняемой микрокоманды указывается адрес следующей команды. Адрес следующей команды (рис. 16б) определяется содержимым одной из магистралей М1 или М2, а при исполнении программы — кодом поля «следующего адреса», входящего в состав микропрограммы из ПЗУ. Такая схема блока генерации используется в микропроцессорах серии K525.
Использование стека (стековой магазинной памяти, рис. 16в) эффективно тогда, когда основная программа содержит совокупность подпрограмм, повторяющихся при выполнении основной программы.
Например, в программе может возникнуть необходимость многократного перемножения двух чисел, причем числа будут меняться, а порядок их перемножения не меняется. Поэтому последовательность команд для выполнения перемножения можно помещать в память в единственном экземпляре. Обращение к выделенной последовательности команд, называемой подпрограммой, можно производить из любой команды основной программы. Стековая память устройства управления обеспечивает возврат к основной программе после завершения выполнения подпрограммы. Для обращения к подпрограмме в основной программе указывается адрес первой микрокоманды подпрограммы, а содержимому счетчика команд дается приращение, после чего это содержимое записывается в стековую память. При этом в стеке будет записан номер микрокоманды, с которой необходимо продолжить основную программу после завершения подпрограммы.
Все подпрограммы при такой организации должны заканчиваться командой передачи управления по содержимому памяти стека. По этой команде выполняется перезапись адреса, хранящегося в стеке, в счетчик команд и выполнение основной программы продолжается с того места, в котором произошло обращение к подпрограмме.
Рассмотрим такой пример. Пусть с помощью микропроцессорной системы автоматически управляется электрический кондиционер. Здесь без участия человека осуществляется поддержание заданной температуры (19...25°С), влажности (40...75 %), контролируется подача электропитания, защита электродвигателя от работы на двух фазах и т. д. Если при выполнении микрокоманды по основной программе, соответствующей охлаждению, поступила информация о повышении влажности выше заданной, то микропроцессор прерывает выполнение микрокоманды по основной программе и приступает к выполнению первой подпрограммы, по которой должен включиться вентилятор. При выполнении этой подпрограммы поступает информация от датчиков контроля о том, что пропало напряжение от основной сети. В этом случае микропроцессор прерывает выполнение первой подпрограммы и переходит ко второй подпрограмме, по которой должно включиться резервное питание. В стек микропроцессора первым будет загружен адрес основной микрокоманды, затем — адрес микрокоманды первой подпрограммы. После выполнения второй подпрограммы — резервное питание будет включено — микропроцессор «вытащит» из стека сначала адрес микрокоманды первого прерывания и после ее выполнения (вентилятор будет включен), адрес микрокоманды основной программы и система будет работать по основной программе.
Из приведенного примера видно, что стековая память должна иметь емкость, равную числу возможных обращений к подпрограммам и обеспечивать считывание данных в порядке, обратном порядку записи (первым вошел, а последним вышел). Стеки могут выполняться на сдвиговых регистрах или на ячейках памяти. В последнем случае используется регистр, который хранит адрес текущей верхушки стека и называется указатель стека.
Устройство управления со стековой памятью используется в микропроцессорном комплекте серии К580.
