Архитектура ЭВМ
Главная
Вход
Регистрация
Понедельник, 20.05.2024, 11:32Приветствую Вас Гость | RSS
Меню сайта

Форма входа

Режимы работы процессора

Все 32-разрядные процессоры Intel (и совместимые с ними) начиная с 80386-го могут выполнять программы в нескольких режимах. Режимы процессора предназначены для выполнения программ в различных средах; в разных режимах возможности МП неодинаковы, потому что команды выполняются по-разному.

Режимы процессора.

В зависимости от режима процессора изменяется схема управления памятью системы и задачами. Процессоры могут работать в трех режимах:

  • Реальный режим (16-разрядное программное обеспечение).
  • Режим IA-32:
  • • защищенный режим (32-разрядное программное обеспечение);
  • • виртуальный реальный режим (16-разрядное программное обеспечение в 32-разрядной среде).
  • Расширенный 64-разрядный режим IA-32e (также называемый AMD64, x86-64 и EM64T):
  • • 64-разрядный режим (64-разрядное программное обеспечение);
  • • режим совместимости (32-разрядное программное обеспечение).

 Реальный режим. В первоначальном IBM PC использовался процессор i8086, который мог выполнять 16-разрядные команды, применяя 16-разрядные внутренние регистры, и адресовать только 1 Мбайт (220 байт) памяти, используя 20 разрядов для адреса. Все программное обеспечение PC первоначально было предназначено для этого процессора; оно было разработано на основе 16-разрядной системы команд и модели памяти объемом 1 Мбайт. Например, DOS, все программное обеспечение DOS, Windows от 1.x до 3.x и все приложения для Windows от 1.x до 3.x написаны в расчете на 16-разрядные команды. Эти 16-разрядные операционные системы и приложения были разработаны для выполнения на процессоре i8086.

Более поздние процессоры, например i80286, могли также выполнять те же самые 16-разрядные команды, что и первоначальный i8086, но намного быстрее. Другими словами, процессор i80286 был полностью совместим с первоначальным i8086. Шестнадцатиразрядный режим, в котором выполнялись команды процессоров i8086 и i80286, был назван реальным режимом. Все программы, выполняющиеся в реальном режиме, должны использовать только 16-разрядные команды, 20-разрядные адреса и поддерживаться архитектурой памяти, рассчитанной на емкость до 1 Мбайт.

Для программного обеспечения этого типа обычно используется однозадачный режим, т. е. одновременно может выполняться только одна программа. Нет никакой встроенной защиты для предотвращения перезаписи ячеек памяти одной программы или даже операционной системы другой программой; это означает, что при выполнении нескольких программ вполне могут быть испорчены данные или код одной из них, а это может привести всю систему к краху (или останову).

Защищенный режим. Несмотря на то, что процессор i80286, как и i8086, является 16-разрядным, он (в отличие от последнего) может работать в новом — защищенном — режиме и имеет аппаратурную поддержку многозадачных операционных систем, значительно ускоряющую и упрощающую процесс переключения задач. Эта поддержка активно используется всеми мультизадачными операционными системами и оболочками, разработанными для компьютера IBM PC.

Адресная шина i80286 была увеличена с 20 до 24 разрядов, что привело к расширению адресного пространства с 1 до 16 Мбайт (224 байт). Новый метод адресации памяти позволил изолировать адресные пространства отдельных задач друг от друга. При этом прикладная программа, работающая в среде операционной системы, использующей защищенный режим, не может случайно или намеренно разрушить целостность самой операционной системы.

В защищенном режиме программа может записывать данные только в те области памяти, которые выделены ей операционной системой. Это повышает надежность работы мультизадачных и, в частности, мультипользовательских операционных систем. В последнем случае изолирование адресных пространств задач, принадлежащих отдельным пользователям, в хорошо спроектированной мультипользовательской операционной системе полностью исключает такую ситуацию, когда после запуска одним пользователем недостаточно отлаженной программы приходится перезапускать всю систему.

Следующие модели процессоров фирмы Intel — i80386, i80486 и i80586 (Pentium) были 32-разрядными. Помимо расширения адресного пространства до величины в 4 Гбайта (232 байт) в них реализована концепция страничной виртуальной памяти, возможной только в защищенном режиме.

Механизм страничной виртуальной памяти позволяет разместить часть оперативной памяти на диске. При этом размер виртуальной памяти, предоставляемой программам, ограничивается размером свободного пространства на диске.

Перечислим кратко основные преимущества, которые получает программа, работающая в защищенном режиме процессора:

·                     возможность непосредственной адресации памяти за пределами первого мегабайта;

·                     для процессоров i80x86 реализован механизм страничной виртуальной памяти, позволяющий программам работать с памятью, размер которой может быть много больше физической оперативной памяти, установленной в компьютере;

·                     аппаратная поддержка мультизадачности позволяет создавать на основе процессоров, работающих в защищенном режиме, высокопроизводительные мультизадачные и мультипользовательские системы.

Виртуальный реальный режим. Помимо страничной виртуальной памяти в процессорах i80386 и более поздних реализован так называемый режим виртуального процессора i8086 или просто виртуальный режим. Этот режим реализуется в рамках защищенного режима (процессор может переключиться в виртуальный режим только из защищенного режима). В виртуальном режиме процессор способен выполнять программы, составленные для процессора i8086, находясь в защищенном режиме и используя аппаратные средства защищенного режима: мультизадачность, изолирование адресных пространств отдельных задач друг от друга, страничная виртуальная память.

Реальный режим процессора 80х86. Это режим генерирования адресов, используемый процессором 8086. В этом режиме не может быть использована виртуальная память. Можно адресовать лишь до 1 Мбайт (220 байт) оперативной памяти, так как у процессора 8086 20-разрядная шина адреса. Так как все регистры процессора 8086 являются 16-разрядными, для представления 20-разрядного физического адреса памяти используется содержимое нескольких 16-разрядных регистров.

Оперативную память при работе в этом режиме можно разбить на логические блоки по 64 Кбайт, называемые сегментами, причем каждый сегмент может начинаться с адреса, кратного 16 байт. Таким образом, первый сегмент имеет начальный адрес 0, второй находится по адресу 16 (или 10 в шестнадцатеричной системе) и т. д. Несколько близко расположенных сегментов могут перекрываться. Это удобно при организации совместного доступа к командам и данным разными программами. Доступ к каждой ячейке в памяти происходит путем указания значения регистра сегмента (см. далее), определяющего блок размером 64 Кбайт, и положения, или смеще¬ния, этого адреса внутри этого блока.

Микропроцессор использует четыре регистра сегмента, при этом каждый регистр имеет размер, равный одному слову (16 бит):

·                     регистр сегмента команд CS (Code Segment), указывающий на сегмент, содержащий текущую исполняемую программу;

·                     регистр сегмента данных DS (Data Segment), указывающий на данные;

·                     регистр дополнительного сегмента ES (Extra Segment), указывающий на дополнительные данные;

·                     регистр сегмента стека SS (Stack Segment), указывающий на стек.

У процессора 80386 и старше есть еще два сегментных регистра — FS и GS.

Содержимое каждого из этих регистров однозначно связано с местом в памяти соответствующего сегмента. Его адрес получается приписыванием справа четырех двоичных нулей к значению сегмента, что соответствует умножению на 16 (или на 10 по основанию 16). Полученное 20-битовое значение представляет собой адрес начала (или базовый адрес) сегмента в физической памяти. Для определения реального адреса команды или данных процессор добавляет затем значение смещения к базовому адресу.

Например, команда, подлежащая исполнению процессором в каждый данный момент времени, определяется из значений двух регистров: регистра CS, значение которого, будучи умножено на 16, дает адрес начала сегмента команд, и регистра указателя команд IP (instruction Pointer), указывающего положение соответствующей команды относительно начала сегмента команд.

В реальном режиме не существует никакого механизма защиты, так что любая программа может обратиться к произвольной ячейке памяти в пределах 1 Мбайт, включая область экрана или область расположения операционной системы.

Выделим два основных недостатка схемы адресации памяти реального режима:

·                     ограниченное адресное пространство (до 1 Мбайта и еще примерно 64 Кбайта старшей области памяти для процессоров 80286 и старше);

·                     свободный доступ любых программ к любым областям данных, что представляет потенциальную опасность для целостности операционной системы.

Рассмотрим работу в защищенном режиме процессоров 80286, 80386 и более старших моделей.

Адресация в защищенном режиме 16-разрядного МП 80286

В этом режиме механизм адресации отличается от механизма адресации в реальном режиме. За счет использования 24-битной адресной шины процессора 80286 физическое адресное пространство достигает 16 Мбайт (224 байт).

В данном режиме для определения адресов также необходимы два регистра, однако содержимое каждого регистра сегмента не соответствует непосредственно какому-либо участку оперативной памяти. Регистр сегмента, который в защищенном режиме называют селектором, в действительности становится индексом, указывающим на элемент таблицы, называемой таблицей дескрипторов (Descriptor Table). Каждый элемент этой таблицы (называемый дескриптором) характеризует один сегмент команд или один сегмент данных. Сегмент стека относят при этом к сегментам данных, поскольку он не содержит исполняемых команд.

Дескриптор содержит физический адрес начала сегмента в памяти (базовый адрес), его размер, а также другую информацию. Базовый адрес размещается в 24 битах (а не в 20, как для реального режима), поэтому сегменты не обязательно теперь должны быть выровнены на адрес, кратный 16. Размер сегмента указывается в 16 битах, и поэтому может принимать любые значения, меньшие или равные 64 Кбайт. В этом состоит фундаментальное отличие от реального режима, где каждый сегмент по умолчанию имеет размер 64 Кбайт. После определения базового адреса сегмента к нему прибавляется значение смещения (размещаемого в 16 битах), и процессор может обратиться к соответствующей ячейке памяти. Очевидно, что метод вычисления физических адресов в защищенном режиме значительно сложнее, чем в реальном режиме. Однако эти вычисле¬ния выполняются процессором и «прозрачны» для программиста, для которого механизм адресации выглядит неизменным. Действительно, как и в реальном режиме, команды, стек и данные адресуются с помощью соответствующего регистра сегмента (называемого селектором) и смещения.

Поиск

Друзья сайта
  • История развития вычислительной техники
  • Поколения ЭВМ
  • Все о системах счисления
  • Вычислительная техника
  • Основы построения ЭВМ