· устанавливаются маски прерываний RSTx.5 (эти запросы замаскированы);
· сбрасывается триггер разрешения прерываний IF (прерывания от сигналов RSTx.5 и INTR запрещены);
· сбрасываются внутренние триггеры: tTRAP, tRST7.5, tINTR, tHOLD, tREADY, tHALT (триггер останова, см. п. 2.7).
Таким образом, после окончания инициализации МП будет читать КОП первой команды программы по нулевому адресу. Дальнейшее поведение МП зависит от программы, а также сигналов запроса прерываний и захвата.
2.7. Граф состояний МП
Граф состояний МП (см. рис. 2.12) позволяет представить работу МП в более обобщенном виде. Кружками на нем показаны состояния, обозначения которых совпадает с обозначениями соответствующих машинных тактов (см. пп. 2.4...2.6). Это неслучайно, поскольку действия, которые выполняет МП в этих состояниях полностью соответствуют действиям, которые выполняются в соответствующих машинных тактах.
Например, в состоянии Тrs выполняется инициализация МП, в состоянии Т1 - вывод адреса ячейки памяти или порта ввода/вывода с инициализацией сигнала ALE и т.п.
Рис. 2.12. Граф состояний МП
Единственным новым состоянием является состояние останова (HALT) МП - Тос. В этом состоянии МП переводит свои магистральные выходы в третье состояние (как в циклах захвата). Длиться это состояние может до активизации сигналов RESET#, HOLD или ПД (прерывание действительно). Событие ПД определяется следующей формулой:
ПД = TRAP + IF * (Mask7.5# * RST7.5 + Mask6.5# * RST6.5 +
Mask5.5# * RST5.5 + INTR). (2.3)
Если во время состояния активизируется сигнал RESET#, то следует переход в состояние Тrs. Если активизируется сигнал HOLD, то триггер захвата устанавливается (tHOLD:= 1) и следует переход в состояние захвата Тзх. Это состояние отличается от состояния останова только одним сигналом: HLDA равен1, а не нулю как в состоянии останова.
После выхода из состояния захвата триггер захвата обнуляется и производится проверка состояния, из которого был переход в состояние захвата (tHALT = 0?). Если в состояние захвата МП перешел из состояния останова, то переход будет в состояние останова. В противном случае переход последует в состояние Т1.
Если в состоянии останова будет действительно хотя бы одно прерывание, то последует сброс триггера останова tHALT, установка триггера прерываний tINTR и сброс триггера разрешения прерываний IF, т. е. последует переход в цикл прерываний (см. п. 2.5). Очевидно, что окончательно из состояния останова можно выйти только с помощью сигнала сброса RESET# или незамаскированного запроса на прерывание.
В состояние останова МП можно ввести командой HLT МП (см. п. 2.8.12). Эта команда устанавливает триггер останова tHALT, состояние которого проверяется в каждом такте Т1. Если на момент проверки этот триггер окажется установленным, то последует переход в состояние останова.
Граф состояний МП позволяет также определить приоритеты всех входных внешних сигналов. Наибольший приоритет имеет сигнал RESET#, поскольку при его активизации (независимо от текущего состояния МП) следует переход в состояние Тrs. Следующий приоритет будет у сигнала READY, поскольку он проверяется в состоянии Т2.
Приоритет сигнала HOLD выше чем у самого приоритетного запроса на прерывание TRAP, поскольку HOLD проверяется в каждых состояниях Т3 и Т5 (если таковое имеется при выполнении конкретной команды), а сигнал TRAP только один раз за время выполнения команды (в последнем машинном цикле (Посл. МЦ)) и после проверки сигнала HOLD.
2.8. Система команд
2.8.1. Общие сведения
Команда - это внешнее воздействие на МП, которое заставляет МП выполнять ту или иную операцию (сложение, вычитание и т.п.). Команда представляет собой совокупность n - байтовых кодов (где n = 1...3 в зависимости от формата соответствующей команды), которые перед выполнением последовательно считываются в МП через регистр команд (см. п. 2.3).
Система команд - это совокупность всех команд, поддерживаемых данным МП. Система команд МП типа М1821ВМ85А содержит следующие группы:
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.