§11.2. Программный автомат
Программный автомат генерирует адреса команд и обеспечивает гибкое управление программой. Он позволяет осуществлять последовательное выполнение команд, обработку прерываний оригинальным образом и реализовать за один цикл команды вызова, условного и безусловного перехода.
В данной главе, кроме описания логических устройств программного автомата, приводится также информация о командах, которые задают последовательность выполнения программы в процессорах семейства ADSP-2100. К ним относятся следующие команды:
DO UNTIL
JUMP
CALL
RTS (Return From Subroutine - возвращение в главную программу)
RTI (Return From Interrupt - возобновление работы после обслуживания
прерывания)
IDLE
Логическое устройство выбора адреса следующей команды
Пока процессор выполняет текущую команду, программный автомат осуществляет предварительную выборку следующей команды. Адрес этой команды выбирается в памяти программы логическим устройством выбора адреса следующей команды из одного из четырех источников:
• инкрементор счетчика команд
• стек счетчика команд
• регистр команд
• контроллер прерываний
компаратора циклов и контроллера прерываний. Затем адрес этой команды выводится на шину адреса памяти программы (АПП).
В случае последовательного выполнения программы, а также когда не предпринимается переход или возвращение по условию, или когда цикл DO UNTIL заканчивается, в качестве источника адреса следующей команды выбирается инкрементор счетчика команд. Выходное значение инкрементора выводится на шину АПП и загружается обратно в счетчик команд для начала следующего цикла.
При возвращении из подпрограммы или после окончания обработки прерывания в качестве источника адреса следующей команды выбирается стек счетчика команд. Верхнее значение стека может также использоваться в качестве следующего адреса при возвращении к началу цикла DO UNTIL.
В случае прямой адресации адрес команды, к которой осуществляется переход, берется из регистра команд. Адрес перехода разрядностью 14 бит содержится в командном слове.
При обслуживании прерывания адрес следующей команды в памяти программы берется из контроллера прерываний. После обнаружения прерывания, процессор переходит к ячейке, содержащей вектор прерывания, соответствующий запросу прерывания.
Еще одним источником адреса следующей команды может служить один из индексных регистров (14-17) Генератора адреса данных 2 (DAG2), Это происходит при использовании косвенной адресации в такой команде перехода, как:
JUMP (14);
В этом случае в счетчик команд загружается значение из DAG2 через шину АПП. (
Счетчик команд и стек счетчика команд
Счетчик команд представляет собой 14-битовый регистр, в котором постоянно содержится адрес текущей выполняемой команды. Это значение увеличивается на 1 в 14-разрядном инкременторе. Выходное значение инкрементора может выбираться мультиплексором следующего адреса для выборки следующей последовательной команды.
Счетчик команд связан со стеком, содержащим до шестнадцати 14-битовых слов, в который при выполнении команды CALL помещается значение инкрементора. Стек счетчика команд заполняется также при выполнении команды DO UNTIL и при обработке прерываний. Однако, в случае прерывания, инкрементор игнорируется, а в стек помещается текущее значение счетчика команд (а не значение, на единицу большее). Таким образом можно возобновить выполнение преждевременно прерванной команды по окончанию обслуживания прерывания. Данные автоматически помещаются и извлекаются из стека счетчика команд во всех вышеназванных случаях. Возможно и непосредственное извлечение данных из стека посредством команды POP.
Для чтения (и непосредственного извлечения), а также записи (и помещения в стек) верхнего значения стека счетчика команд предусмотрена специальная команда, использующая псевдорегистр TOPPCSTACK, описание которого приводится в конце данной главы.
Выходное значение мультиплексора следующего адреса подается обратно в счетчик команд, который, как правило, перезагружает это значение в конце каждого цикла процессора. Однако, в случае косвенной адресации адрес следующей команды выводится на шину АПП Генератором адреса данных DAG2, и счетчик команд загружается непосредственно с шины АПП.
Счетчик циклов и стек счетчика
Счетчик циклов и стек счетчика обеспечивают программный автомат мощным механизмом для организации циклов. Счетчик представляет собой 14-битовый регистр с возможностью автоматического постдекрементирования, управляющий последовательностью циклов программы, которые выполняются заданное число раз. Значения счетчика являются беззнаковыми величинами разрядностью 14 бит.
До начала цикла в счетчик (регистр CNTR) загружаются 14 младших бит с шины ДПД, являющиеся требуемым числом циклов. Действительному числу циклов N противопоставляется значение N - 1. Благодаря логической операции проверки состояния заполненности счетчика СЕ (счетчик пуст), которая вместе с автоматическим пост-декрементированием значения счетчика осуществляется в конце цикла DO UNTIL, степень заполненности счетчика используется в качестве условия прекращения цикла. Заполненность счетчика проверяется в начале каждого цикла процессора, и значение счетчика уменьшается на 1 в конце; таким образом, когда значение счетчика достигает 1, устанавливается, что счетчик пуст, а значит, цикл выполнен N раз.
Проверка условия СЕ и автоматическое уменьшение значения счетчика может также выполняться при команде условного перехода, которая проверяет Заполненность счетчика. Когда Заполненность счетчика проверяется как часть команды возврата по условию или условной арифметической команды, декрементирование счетчика не выполняется.
Компаратор циклов и стек циклов
Команда DO UNTIL инициализирует цикл с нулевыми потерями ресурсов, используя компаратор (сравнивающее устройство) циклов и стек циклов программного автомата.
В каждом цикле компаратор сравнивает следующий адрес, сгенерированный программным автоматом, с адресом последней команды цикла (который содержится в команде DO UNTIL). Адрес первой команды в цикле устанавливается в вершине стека счетчика команд. Когда выполняется последняя команда цикла, процессор реализует операцию условного перехода на начало цикла без каких-либо издержек, которые могут возникнуть при организации цикла другим образом.
В стеке циклов, в котором может записываться до четырех уровней, содержатся адреса последних команд и условия окончания временно задержанных циклов. Единственный дополнительный цикл, связанный с организацией вложенных циклов DO UNTIL, возникает при выполнении самой команды DO UNTIL, так как помещение и извлечение данных из всех стеков производится автоматически. При использовании состояния заполненности счетчика в качестве условия окончания цикла для начальной загрузки счетчика требуется другой цикл. В таблице 11.1 приводятся условия завершения цикла, которые могут использоваться совместно с командой DO UNTIL.
Таблица 11.1 Логические условия завершения цикла DO UNTIL
Синтаксис | Условие состояния | Истинно, если: |
EQ | Равно нулю | AZ= 1 |
NE | Не равно нулю | AZ=0 |
L7 | Меньше нуля | AN.XOR.AV = 1 |
GE | Больше или равно нулю | AN.XOR.AV = 0 |
LE | Меньше или равно нулю | (AN.XOR.AV).OR.AZ = 1 |
GT | Больше нуля | (AN.XOR.AV).OR.AZ = 0 |
АС | Перенос в АЛУ | АС= 1 |
NOT AC | Нет переноса в АЛУ | АС=0 |
AV | Переполнение в АЛУ | AV= 1 |
NOTAV | Нет переполнения в АЛУ | AV=0 |
MV | Переполнение в умножителе-накопителе | MV= 1 |
NOTMV | Нет переполнения в умножителе-накопителе | MV =0 |
NEG | Операнд Х последней команды ABS был | AS = 1 |
| Отрицателен |
|
POS | Операнд Х последней команды ABS был | AS =0 |
| Положителен |
|
CE | Счетчик пуст |
|
FOREVER | Всегда |
|
Случаи в примерах 2 и 3 также не исключаются, но для их надлежащего выполнения требуется более сложная программа.
Примечание:
Повышенная осторожность необходима в случае преждевременного выхода из цикла, а также в случаях, когда цикл заканчивается командами JUMP, CALL, RETURN или IDLE. Так как ни один из механизмов организации циклов не работает во время выполнения команд перехода/вызова/возврата, то в стеках счетчика, циклов и счетчика программ сохраняется не извлеченная информация, касающаяся организации цикла.
Поэтому для восстановления правильного состояния процессора следует непосредственно извлечь эти данные из каждого задействованного стека. При обращении к подпрограмме подобная проблема возникает только тогда, когда команда вызова стоит последней в цикле; в таких случаях по команде возврата осуществляется переход программы к команде, следующей сразу после цикла. Команды вызова подпрограмм, находящиеся внутри цикла и не являющиеся последней командой цикла, обрабатываются согласно процедуре, рассмотренной в примере 1.
Единственным ограничением при организации циклов с помощью команды DO UNTIL является невозможность завершения вложенных циклов на одной и той же команде. Так как компаратор циклов может проверить только одно условие завершения цикла за один такт, то в случаях, когда внешний и вложенный цикл завершаются на одной и той же команде, при инкрементировании счетчика команд может произойти выход из внутреннего вложенного цикла за пределы конечного адреса внешнего цикла.
- Цифровые эвм
- §1.2 Структуры типичных микроЭвм
- §1.3 Архитектура микро- и мини – эвм
- §1.4 Архитектура эвм
- §1.5 Ортогональность архитектуры микропроцессоров.
- §2. Микропрограммные устройства управления §2.1 Структура микропрограммных устройств
- §2.2 Способы записи микропрограмм
- 1) Гса должна содержать одну начальную, одну конечную вершину и конечное множество операторных и условных вершин;
- 2) Каждый выход гса соединяется только с одним входом;
- 3) Входы и выходы различных вершин соединяются дугами, направленными от выхода к входу;
- 4) Для любой вершины гса существует, по крайней мере, один путь из этой вершины к конечной вершине, проходящей через операторные и условные вершины в направлении соединяющих их дуг;
- §2.3 Микропрограммный принцип управления операциями
- 1) Определение формата операционной части мк;
- 2) Синтез формата адресной части мк;
- 3) Синтез структурной схемы автомата;
- 4) Построение карты программирования пзу или плм.
- §2.4 Синтез мпа с использованием “жёсткой” логики
- 2. Прибавить к содержимому сумматора первое частичное произведение.
- 3. К содержимому сумматора прибавить сдвинутое на разряд вправо второе частичное произведение.
- 4. Далее аналогично прибавить третье, четвертое и последующие частичные произведения.
- §2.5 Выбор схемы операционного устройства
- 1) Два регистра (регистр множимого rg2 и регистр множителя rg1);
- 2) Сумматор (5м);
- 3) Счетчик (ст) для подсчета числа суммирований. На рис. 2.9 показаны обозначения этих узлов на схемах.
- §3. Запоминающие устройства §3.1 Запоминающие устройства и их назначение
- §3.2Классификация и основные характеристики полупроводниковых зу
- §3.3 Статические озу
- §3.4 Динамические озу
- §3.5 Память на пзс
- §3.7 Функциональные схемы озу
- §3.8 Функциональные схемы пзу и ппзу
- §3.9 Организация многокристальной памяти
- §3.10 Программирование пзу
- §3.11 Программируемые логические матрицы
- §4. Процессоры и микропроцессоры §4.1Классификация микропроцессоров
- §5.Сравнение архитектур микропроцессоров
- §5.1 Архитектуры микропроцессоров.
- §5.2 Ортогональность архитектуры микропроцессоров.
- §5.3 Основные принципы построения устройств обработки цифровой информации
- Существует два основных типа управляющих автоматов:
- 1) Управляющий автомат с жесткой логикой.
- 2) Управляющий автомат с хранимой в памяти логикой.
- §5.4 Принципы организации арифметико – логических устройств.
- §5.5 Классификация алу
- 1) Для чисел с фиксированной запятой;
- 2) Для чисел с плавающей запятой;
- 3) Для десятичных чисел.
- §5.6 Структура и формат команд. Кодирование команд.
- 1) Команды арифметических операций для чисел с фиксированной и плавающей запятой;
- §6.Проектирование микро - эвм
- §6.1.Функциональные блоки и организация управления в микро - эвм §6.1.1Общие сведения
- §6.1.2. Структура операционного устройства
- §6.1.3. Структура устройства управления
- 1. Безусловный переход из адреса Ai по адресу Aj определенному одним из способов адресации (рис. 6.7,а).
- Однокристальные эвм §7.Описание микроконтроллеров 8051, 8052 и 80c51 §7.1 Вступление
- §7.2Специальные функциональные регистры
- §7.3 Структура и работа портов
- §7.3.1 Конфигурации ввода-вывода
- §7.3.2 Запись в порт
- §7.3.3 Загрузка и согласование портов.
- §7.3.4 Особенность чтения-модификации-записи
- §7.4.Доступ к внешней памяти
- §7.5 Таймер/счетчик
- Таймер 0 и Таймер 1
- Режим 0 (mode 0)
- М1 м0 Режим
- §7.5 Последовательный интерфейс
- §7.5.1 Многопроцессорные связи
- §7.5.2 Управляющий регистр последовательного порта
- §7.5.4 Скорость приема/передачи
- §7.5.5Использование таймера 1 для задания скорости приема/передачи
- Дополнительные сведения о режиме 0
- Дополнительные сведения о режиме 1
- Дополнительные сведения о режимах 2 и 3
- Прерывания
- §7.6 Структура уровней приоритета
- Перехват прерываний
- Внешние прерывания
- Время отклика
- Одношаговые операции
- Версии микросхем с сппзу
- Две схемы блокировки программной памяти
- Защита пзу
- Внутричиповые осцилляторы
- Осцилляторах mcs-51
- Внутренняя синхронизация
- §8.1.Введение
- §8.2. Обзор характеристик
- Отличия pic16c84 от pic16c5x
- Mаркировка при заказе
- Разводка ножек
- Прямая адресация.
- Проблемы с таймером
- Регистр статуса
- Программные флаги статуса
- Аппаратные флаги статуса
- Организация встроенного пзу
- Pc и адресация пзу
- Стек и возвраты из подпрограмм
- Данные в eeprom
- Управление eeprom
- Организация прерываний
- Регистр запросов и масок
- Внешнее прерывание
- Прерывание от rtcc
- Прерывание от порта rb
- Прерывание от eeprom
- Обзор регистров/портов
- 2) Прочитать порт в. Это завершит состояние сравнения.
- Проблемы с портами
- Обзор команд и обозначения
- Условия сброса
- Алгоритм сброса при вал. Питания
- Watch Dog таймер
- Типы генераторов.
- Генератор на кварцах
- Rc генератор.
- Внешнее возбуждение. Регистр option
- Подключения делителя частоты
- 1. Movlw b`xx0x0xxx` ;выбрать внутреннюю синхронизацию и новое
- Конфигурационное слово
- 01 Xt генератор
- 10 Hs генератор
- 11 Rc генератор
- Индивидуальная метка
- Защита программ от считывания
- 1) Запрограммируйте и проверьте работу исправного кристалла.
- 2) Установите защиту кода программы и считайте содержимое программной памяти в файл-эталон.
- 3) Проверяйте любой защищенный кристалл путем сравнения его программной памяти с содержимым этого эталона.
- Режим пониженного энергопотребления.
- 1. Внешний сброс - импульс низкого уровня на ножке /mclr.
- 2. Сброс при срабатывании wdt(если он разрешен)
- 3. Прерывания. (Прерывание с ножки int, прерывание при изменении порта b, прерывание при завершении записи данных eeprom).
- Максимальные значения электрических параметров
- 1. Полная рассеиваемая мощность не должна превышать 800 мВт для каждого корпуса. Рассеиваемая мощность вычисляется по следующей формуле:
- Скоростные характеристики:
- §8.3. Что такое pic ?....
- Hабор регистров pic
- Регистр косвенной адресации ind0
- Регистры общего назначения
- Сторожевой таймер wdt
- Тактовый геhератор
- Xt кварцевый резонатор
- От теории - к практике...
- Initb equ b'00000000' ; ; Рабочая секция ; ; начало исполняемого кода
- Пример программы
- Ассемблироваhие
- Программироваhие
- Набор команд pic
- Incf scratch,0 ;увеличить scratch на 1
- Iorwf dataport,1 ;установить биты в поpте b по маске w
- Iorlw 09h ;установить 0-й и 3-й биты Светодиоды покажут 00011001.
- Xorlw b'11111111' ;пpоинвеpтиpовать w Светодиоды покажут 11011111.
- Comf scratch,0 ;инвеpтиpовать scratch Светодиоды покажут 10101010.
- Специальные команды
- §9.Введение вAdsp §9.1. Обзор
- §9.2. Функциональные устройства
- §9.3. Интерфейс системы и памяти
- §9.4. Набор команд
- §9.5. Рабочие характеристики цифровых сигнальных процессоров
- §9.6. Базовая архитектура
- §9.7. Вычислительные устройства
- §9.8. Генераторы адреса и программный автомат
- §9.9. Шины
- §9.10. Другие устройства на кристалле
- §9.11. Последовательные порты
- §9.12. Таймер
- §9.13. Порт интерфейса хост-машины (adsp-2111, adsp-2171, adsp-21msp5x)
- §9.14. Порты прямого доступа к памяти (adsp-2181)
- §9.15. Аналоговый интерфейс
- §9.16. Система программно – аппаратных средств отладки процессоров семействаAdsp - 2100
- §9.17. Генераторы адреса и программный автомат
- §10Вычислительные устройства §10.1. Обзор
- Последовательности двоичных символов
- Беззнаковый формат
- Знаковые числа в дополнительном коде
- §10.2. Арифметико – логическое устройство (алу)
- Блок-схема алу
- Стандартные функции
- Регистры ввода/вывода алу
- Возможность операций с повышенной точностью
- Режим насыщения алу
- Режим фиксации переполнения алу
- Деление
- §10.3. Умножитель – накопитель (умножитель)
- Арифметические операции умножителя
- Арифметические операции устройства сдвига
- Операции умножителя-накопителя
- X*y Умножение операндов х и y
- Форматы ввода данных
- Регистры ввода/вывода умножителя-накопителя
- §10.4. Устройство циклического сдвига
- Денормализация
- Нормализация
- §11. Управление программой
- §11.1. Обзор
- §11.2. Программный автомат
- §11.3 Команды управления программой
- §11.4. Контроллер прерываний
- §11.5. Условные команды
- §12. Дополнительное аппаратное обеспечение §12.1. Обзор
- §12.2. Начальная загрузка через хост – машину с использованием процедур запроса и предоставления шины
- 1) Для перезапуска процессора семейства adsp-2100 pb8 устанавливается низким.
- §12.4. Сопряжение последовательного порта с цап
- §12.5. Сопряжение последовательного порта с ацп
- §12.6. Сопряжение последовательного порта с другим последовательным портом
- §12.7. Сопряжение микрокомпьютера 80с51 с портом интерфейса хост – машины
- §12.8. Обзор
- §13. Программное обеспечение §13.1. Процесс отладки системы
- §14. Система команд мп типа к580ик80
- §14.1 Способы адресации мп
- §14.2 Команды мп
- §14.3 Пояснения к некоторым командам
- §15. Архитектура микропроцессора z-80
- §15.1 Назначение выводов
- §15.2 Логическая организацияZ80
- Устройство управления.
- Регистры пользователя (основные регистры).
- Регистровая пара hl.
- Набор альтернативных регистров.
- Арифметико-логическое устройство (алу).
- §15.3 Система команд микропроцессора z – 80. Команды и данные.
- 3. Двухбайтовый адрес (addv).
- 4. Однобайтовая константа смещения.
- Группа команд
- Группа 1. Команда «нет операции»
- Группа 2. Команды загрузки регистра константами.
- Группа 4.Команды загрузки регистров из памяти.
- Группа 5.Команды записи в память содержимого регистра или константы.
- Группа 6.Команды сложения.
- Группа 7.Команды вычитания.
- Группа 8.Команды сравнения.
- Подгруппа b. Команда or.
- Подгруппа c. Команда xor.
- Группа 11. Команда стека.
- 2.Адрес addr затем записывается в счетчик команд, и выполняется программа.
- 3.По команде ret осуществляется возврат из программы.
- §16.Микросхема 80130
- §17.Микросхема 80186
- §18.Микросхема 80286
- Verr — Проверить доступ по считыванию
- Verw — Проверить доступ по записи
- Определение состояния цикла шины процессора 80286
- §19.Микропрцессоры серииiX86 фирмы intel Выбор в программе на Ассемблере типа процессора
- §19.1. Процессоры 80186 и 80188
- Новые инструкции
- Инструкции pusha и popa
- Инструкции enter и leave
- Инструкция bound
- Инструкции ins и outs
- Расширенные версии инструкций процессора 8086
- Imul si,10 это просто сокращенная форма инструкции:
- §19.2. Процессор 80286
- §19.3. Процессор 80386
- Новые типы сегментов
- Новые регистры
- Новые сегментные регистры
- Новые режимы адресации
- Процессор 80386, новые инструкции
- Проверка битов
- Просмотр битов
- Преобразование данных типа dword или qword
- Сдвиг нескольких слов
- Условная установка битов
- Загрузка регистров ss, fs и gs
- Расширенные инструкции
- Специальные версии инструкции mov
- Новые версии инструкций loop и jcxz
- Новые версии строковых инструкций
- Инструкция iretd
- Инструкции pushfd и popfd
- Инструкции pushad и popad
- Новые версии инструкции imul
- Imul ebp,ecx,100000000h а следующая инструкция умножает ecx на ebx, записывая результат в edx:eax:
- Технический обзор Новое поколение процессоров фирмы intel
- Pentium процессор. Технические нововведения.
- Архитектура Pentium процессора
- Суперскалярная архитектура.
- Блок предсказания правильного адреса перехода.
- Высокопроизводительный блок вычислений с плавающей запятой.
- Расширенная 64-битовая шина данных.
- Средства разделения памяти на страницы.
- Определение ошибок и функциональная избыточность.
- Управление производительностью.
- §22.Введение в команды mmx.
- §22.1. Регистры
- §22.2. Префиксы
- §22.3.Распаровка (paring).
- §22.4. Типы данных
- §22.5. Краткое описание команд
- §23.Логическая структура микропроцессорной системы на основе комплекта бис секционного микропроцессора §23.1. Комплект бис секционного микропроцессора.
- §23.2. Бис микропрограммного управления на основе программируемой логической матрицы (плм).
- §23.3. Комплект бис для построения электронной системы.
- §24. Обзор секционируемых мпк бис §24.1. Микропроцессорный комплект серии кр1802
- §24.1.1. Восьмиразрядная микропроцессорная секция (мс) кр1802вс1.
- §24.1.2. Двухадресная память общего назначения кр1802ир1.
- §24.1.3. Шестнадцатиразрядный арифметический расширитель кр1802вр1.
- §24.1.4. Схема обмена информацией (ои) кр1802вв1.
- §24.1.5. Бис интерфейса (бис и) кр1802вв2.
- §24.1.6. Сумматор (см) к1802им1.
- §24.1.7. Км1802врз—умножитель двух 8-разрядных чисел.
- §24.1.8. Км1802вр4—умножитель двух 12-разрядных чисел.
- §24.1.9. Км1802вр5—умножитель двух 16-разрядных чисел.
- §24.2. Микропроцессорный комплект серии к1804
- §24.2.1. Центральные процессорные элементы к1804вс1 и к1804вс2
- §24.3. Микропроцессорный комплект серии к587 §24.3.1. Арифметическое устройство к587ик2.
- §24.3.2. Управляющая память к587рп1.
- §24.3.3. Устройство обмена информации к587ик1.
- §24.3.4. Арифметический расширитель к587икз.
- §24.3.5. Архитектурные особенности построения управляющей микро-эвм на базе мпк серии к587