
Смена состояний процессора при выполнении программы
Начальное состояние процессора
Процессор при подаче на него питания или сигнала сброса (SR или RESET) устанавливается в исходное состояние. Исходным состоянием любого процессора является чтение первого байта команды из памяти по определенному адресу.
Для процессора i8080 длительность сигнала сброса должна быть не менее трех периодов тактовой частоты. В начальном состоянии процессора триггер разрешения прерывания, триггер захвата, регистр команд, регистр признаков и счетчик команд имеют нулевое значение. Таким образом, после окончания действия сигнала SR процессор производит первое обращение за чтением команды к ячейке памяти по адресу 000016.
Для процессора i8086 сигнал сброса должен подаваться на соответствующий вход не менее четырех периодов тактовой частоты. В начальном состоянии регистр признаков F, регистр указателя команд IР, сегментные регистры процессора i8086 имеют значения в соответствии с табл., выходы шины адреса/данных находятся в высокоомном состоянии, выходы шины управления — в высокоомном или пассивном состоянии, пошаговые и маскируемые прерывания запрещены.
Табл. Начальное значение регистров процессора i8086
Назначение регистра |
Содержимое регистра |
Регистр признаков F |
F00216 |
Регистр адреса команды IP |
000016 |
Регистр сегмента команд CS |
FFFF16 |
Регистр сегмента данных DS |
000016 |
Регистр сегмента стека SS |
000016 |
Регистр дополнительного сегмента ES |
000016 |
Таким образом, по окончании сигнала SR первая команда начинает выбираться из ячейки памяти с физическим адресом FFFF0h. Обычно первой командой является команда межсегментного перехода.
В зависимости от выполняемой команды, значений управляющих сигналов и внутреннего состояния процессор осуществляет то или иное действие, переходит в то или иное состояние, формируя необходимые управляющие сигналы. Управляющие сигналы могут формироваться аппаратной логикой процессора или микропрограммно. В последнем случае каждой команде процессора соответствует программа (подпрограмма), располагающаяся в специальной памяти процессора — микропрограммной памяти. Микропрограмма состоит из микрокоманд. Микрокоманда представляет собой совокупность битов, соответствующих определенным управляющим сигналам процессора в определенном такте. Если бит равен единице, то соответствующий управляющий сигнал устанавливается в активный уровень, если нулю — в неактивный.
Особые состояния процессора
При выполнении программы процессор может переходить в одно из трех особых состояний: ожидание, захват и останов, длительность которых определяется внешними управляющими сигналами. Кроме того, у многих процессоров имеются состояния пониженного энергопотребления.
Состояние ожидания
В состояние ожидания процессор переходит, когда на входе RDY появляется логический 0. Сигнализирует процессор о переходе в это состояние активизацией сигнала WAIT. Сигнал RDY может быть использован для согласования работы процессора с работой медленных устройств, а также для организации пошагового выполнения программы (по командам или по машинным циклам).
Состояние захвата
В состояние захвата процессор переходит при подаче сигнала высокого уровня на вход HLD. Информирует о переходе в это состояние сигналом высокого уровня на выходе HLDA. В этом состоянии буферные схемы шин адреса и данных переходят в высокоомное состояние, т.е. выводы адреса и данных процессора отключаются, а выходные управляющие сигналы переходят в неактивный уровень. Это состояние позволяет организовать режим прямого доступа к памяти для любого внешнего устройства, способного сформировать необходимые управляющие и адресные сигналы и осуществить обмен данными с памятью.
Состояние останова
В состояние останова процессор переходит при выполнении команды HLT. Подтверждает переход в это состояние сигналом HLTA (бит 3 байта состояния). При этом буферные схемы адреса и данных переводятся в высокоомное состояние. Выход из состояния останова осуществляется при появлении сигнала высокого уровня на одном из трех входов:
-
SR. Процессор начинает выполнять цикл М1.
-
HLD. Процессор переходит в состояние захвата и возвращается из него при дезактивации сигнала HLD в состояние останова.
-
INT. Процессор переходит к выполнению цикла прерывания при останове, если прерывания разрешены, иначе остается в состоянии останова. После обработки прерывания в состояние останова процессор не возвращается.
При выполнении цикла прерывания процессор выдает на шину данных в такте Т1 байт состояния с активным сигналом в бите D0 (INTA), который используется контроллером прерываний для выдачи на шину данных команды вызова подпрограммы обслуживания прерывания.