
Режимы работы процессора
Выделение режимов
Помимо различных состояний, в которые может переходить процессор в ходе своей работы, и о которых было сказано выше, процессор имеет т. н. различные режимы работы. Режим — это укрупненное состояние. Режимы выделяются по множеству доступных ресурсов процессора: входных и выходных сигналов, регистров и команд.
Режимы работы процессора i8086
Процессор i8086 имеет два режима работы: минимальный и максимальный. Выбор того или иного режима осуществляется аппаратно, подачей сигнала необходимого уровня на вход MN/MX#.
Типы циклов шины i8086 в минимальном режиме
В минимальном режиме работы процессора на верхнем уровне классификации можно выделить два типа циклов шины (так называется машинный цикл в i8086 из-за введения устройства шинного интерфейса): цикл чтения и цикл записи. Их временные диаграммы приведены на рис.
Рис. Временные диаграммы циклов чтения и записи
процессора i8086 в минимальном режиме
Каждый цикл шины i8086 состоит, как минимум, из четырех машинных тактов Т1-Т4. В такте Т1 на канал адреса/данных всегда выдается адресная информация. В этом же такте вырабатывается сигнал ALЕ, который позволяет идентифицировать начало цикла шины и используется как стробирующий для защелкивания адресной информации в буферном регистре адреса. В такте Т2 производится переключение шины адреса/данных. Обмен данными происходит в тактах ТЗ и Т4. Длительность цикла шины может быть увеличена использованием сигнала RDY. Этот сигнал позволяет синхронизировать скорость работы различных устройств системы со скоростью работы процессора введением в цикл шины между тактами ТЗ и Т4 дополнительных тактов ожидания ТWI. В течение тактов ожидания данные на канале остаются неизменными. Между тактом Т4 текущего цикла и тактом Т1 следующего цикла канала процессор может вводить дополнительные “холостые” такты, предназначенные для выполнения внутренних действий. Моменты введения этих тактов и их число зависят от состояния очереди команд и выполняемой команды.
В цикле чтения в такте Т2 шина A/D переключается в высокоомное состояние, вырабатывается сигнал RD#, который используется для чтения адресуемого устройства. Для управления шинными формирователями, обеспечивающими развязку шины адреса/данных процессора от системной шины данных, используются сигналы DT/R# и DEN#.
В цикле записи в такте Т2 непосредственно за выдачей адреса на шину А/D выдаются данные для записи в адресуемое устройство. Эта информация остается истинной на канале данных до окончания такта Т4. Сигнал WR# вырабатывается в начале такта Т2 и остается в этом состоянии до начала такта Т4.
Типы циклов шины i8086 в максимальном режиме
В максимальном режиме существует восемь типов циклов шины (табл.).
Табл. Типы циклов шины i8086 в максимальном режиме
ST2# |
ST1# |
ST0# |
Тип цикла шины |
0 |
0 |
0 |
Подтверждение прерывания |
0 |
0 |
1 |
Ввод |
0 |
1 |
0 |
Вывод |
0 |
1 |
1 |
Останов |
1 |
0 |
0 |
Выборка команды |
1 |
0 |
1 |
Чтение |
1 |
1 |
0 |
Запись |
1 |
1 |
1 |
Пассивный (цикла шины нет) |
Режимы работы процессоров IA-32 и Intel 64
Процессоры IA-32 имеют следующие режимы работы:
-
реальный — режим процессора i8086 — процессор переходит в этот режим при включении питания или при сбросе;
-
защищенный — введен в i80286 — предоставляет все возможности архитектуры процессора;
-
режим виртуального 8086 — реальный режим в защищенной многозадачной среде;
-
режим управления системой (SMM, System Management Mode) — введен в i386SL, стал стандартным для IA-32 в процессорах семейства Pentium, предоставляет возможность операционной системе или другой программе выполнять платформенно-специфичные функции, такие как управление питанием или безопасностью системы.
Процессоры Intel 64 имеют все режимы IA-32 плюс дополнительный — IA-32e, предоставляющий 64-битную программную среду. IA-32e имеет два подрежима:
-
64-битный режим, поддерживающий 64-битные операционные системы и приложения;
-
режим совместимости, позволяющий работать любому программному обеспечению в 64-битной среде.
Переключение процессора в защищенный режим и возврат в реальный режим
Переключение процессора из реального в защищенный режим и обратно осуществляется программно. Для того чтобы перейти в защищенный режим, необходимо выполнить следующие действия:
-
подготовить глобальную таблицу дескрипторов;
-
подготовить при необходимости другие системные структуры данных, например таблицу дескрипторов прерываний;
-
включить адресную линию А20;
-
загрузить регистр глобальной таблицы дескрипторов и при необходимости другие системные регистры, например регистр таблицы дескрипторов прерываний;
-
запретить маскируемые прерывания;
-
переключиться в защищенный режим установкой бита 0 в CR0;
-
осуществить переход на первую команду защищенного режима, загрузив CS селектором соответствующего сегмента кода, IP нужным смещением;
-
загрузить при необходимости другие сегментные регистры;
-
разрешить при необходимости прерывания.
Для возврата из защищенного режима в реальный необходимо:
-
запретить маскируемые прерывания;
-
осуществить переход в точку возврата, загрузив в CS селектор сегмента кода реального режима, а в IP смещение точки возврата в соответствующем сегменте;
-
переключиться в реальный режим сбросом бита 0 в CR0;
-
загрузить CS базой сегмента кода реального режима;
-
выполнить необходимую инициализацию;
-
разрешить прерывания.
Переключение процессора в режим управления системой
В SMM процессор переходит при поступлении сигнала активного уровня на вход SMI# (System Management Interrupt) или если SMI принимается от APIC. При этом процессор переключается в отдельное адресное пространство, сохраняя контекст текущей задачи. По возвращении из SMM процессор переходит в прежнее состояние.