русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Программная модель процессора IA-32


Дата добавления: 2015-06-12; просмотров: 1951; Нарушение авторских прав


Структура процессора семейства IA-32 очень сложна, поскольку в них аппаратно реализована совокупность параллельных конвейеров (конвейерная и суперскалярная архитектура). На рисунке 7 процессор IA-32 представлен в виде набора основных блоков.

Блок интерфейса с магистралью управляет передачей команд и данных из памяти в процессор и результатов – обратно в оперативную память. Блок предвыборки команд отвечает за чтение последующих команд из сегмента кодов. Блок декодирования команд осуществляет расшифровку команды и формирование последовательности управляющих сигналов для ее выполнения (аналог УУ). Исполнительный блок согласно названию выполняет команду (аналог АЛУ).

 

 

Рисунок 7 – Структура процессора семейства IA-32

Блоки управления сегментами и страницами обеспечивают формирование физического адреса следующих команд и необходимых данных. При этом ограничение на нахождение не более одного операнда в оперативной памяти сохраняется.

Регистры общего назначения.Большинство регистров процессоров семейства IA‑32 – 32-х разрядные. Они включают 16-ти разрядные регистры адресов и данных, имевшиеся в прародителе i8086, как младшую часть (см. рисунок 8), и обеспечивают доступ к ним по указанным именам.

31 15 0 15 0

  AH A X AL EAX
  BH B X BL EBX
  CH C X CL ECX
  DH D X DL EDX
  SI ESI
  DI EDI
  BP EBP
  SP ESP
  IP EIP
  FLAGS EFLAGS
CS
DS
ES
SS
GS
FS

 

Рисунок 8 – Регистры адресов и данных и сегментные регистры IA-32

Сегментные регистры остались 16-ти разрядными, но их количество увеличилось до 6. Добавленные регистры позволяют адресовать еще два сегмента данных. В защищенном режиме IA-32 сегментные регистры хранят не адрес сегмента, а номер (индекс) специального дескриптора, который содержит базовый адрес сегмента, его размер и атрибуты (см. далее).



Кроме того было добавлено еще несколько специализированных регистров, используемых в защищенном режиме:

а) управляющие регистры С0..С3;

б) регистры системных адресов:

GDTR – регистр адреса таблицы глобальных дескрипторов;

LDTR – регистр адреса таблицы локальных дескрипторов;

IDTR – регистр адреса таблицы дескрипторов прерываний;

TR – регистр состояния задачи;

в) отладочные регистры;

г) тестовые регистры.

Режимы адресации.Процессоры IA-32 поддерживают три режима адресации:

1) реальный – в этом режиме адрес формируется аналогично i8086, т.е. при формировании адреса используются 16-ти разрядные смещения и 16-ти разрядные сегментные адреса, которые хранятся в сегментных регистрах. При их сложении по приведенной выше схеме получаются 20-ти разрядные физические адреса, поэтому в этом режиме доступен только первый мегабайт оперативной памяти;

2) защищенный – в этом режиме используется 32-х разрядная адресация, предусматривающая несколько вариантов защиты, откуда и появилось название этого режима;

3) виртуальный – в этом режиме процессор моделирует псевдоодновременную работу нескольких виртуальных процессоров i8086. В настоящее время режим устарел и практически не используется.

Схема 32-х разрядной адресации защищенного режима.Требование сохранить возможность выполнения программ, использующих 16-ти разрядную адресацию, привело к тому, что схема 32-х разрядной адресации является многокомпонентной (см. рисунок 9).

Рисунок 9 – Схема 32-х разрядной адресации в защищенном режиме

В этом режиме по-прежнему используется сегментная организация памяти, но размер сегмента уже не ограничивается 64 Кб, а теоретически может достигать 4 Гб. 32-х разрядный адрес базы сегмента хранится не в виде сегментного адреса в сегментном регистре, как при 16-ти разрядной адресации, а полностью в специальных внутренних регистрах процессора – дескрипторах. Номер дескриптора заносится в 14 бит сегментного регистра, который в этом режиме называется селектором. Один бит селектора из этих 14-ти отвечает за выбор таблицы локальных или глобальных дескрипторов.

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

14 бит селектора и 32 бита эффективного или исполнительного адреса, формируемого на основе машинной команды, объединяются в 46-ти разрядный виртуальный адрес.

Сумма 32-х разрядного базового адреса сегмента и 32-х разрядного эффективного адреса образует 32-х разрядный линейный адрес. Физический же адрес определяется по таблице страниц на основе линейного.

Соответственно различают несколько адресных пространств: виртуальное – 64 Тб; линейное – 4 Гб; физическое – 4 Гб.

При создании приложений Windows в основном используется модель памяти Flat«плоская». Эта модель подразумевает, что каждому приложению отводится линейное адресное пространство объемом 2 Гб, а остальные 2 Гб предоставляются операционной системе. Базовый адрес в дескрипторах всех сегментов приложения устанавливается равным 0. В результате все сегменты приложения «перекрываются». Программа, данные и стек размещаются в разных местах памяти за счет различных смещений. Разделение памяти между приложениями осуществляется операционной системой, которая размещает страницы приложений с одинаковыми линейными адресами в разных местах оперативной памяти. Следовательно и защита сегментов при этой модели не работает.

Форматы машинных команд.Размер машинной команды процессора IA-32 колеблется от 1 до 15 байт. Структура команды представлена на рисунке 10. Помимо обязательного кода операции (КОП), иногда состоящего из двух частей, команда может включать от 0 до 4 однобайтовых префиксов, а также возможно байты адресации, непосредственного смещения (смещение, указанное в команде) и непосредственного операнда.

Префикс повторения – используется только для команд обработки строк и будет рассмотрен далее.

Префикс размера адреса (67h) – применяется для изменения размера смещения, например, если необходимо использовать смещение размером 16 бит при 32-х разрядной адресации.

Префикс размера операнда (66h) – указывается, есливместо 32-х разрядного регистра для хранения операнда используется 16-ти разрядный.

Префикс замены сегмента– используется при адресации данных любым сегментным регистром кроме DS.

Рисунок 10 – Структура машинной команды IA-32

На рисунке 10 использованы следующие обозначения:

d – бит направления обработки, например, пересылки данных: 1 – в регистр, 0 – из регистра; используется в арифметических командах и командах пересылки, если хотя бы один операнд находится в регистре;

w – размер операнда: 1 – операнды – двойные слова, 0 – операнды – байты;

mod – режим: 00 – Disp=0 – смещение в команде отсутствует (0 байт);

01 – Disp=1 – непосредственное смещение размером 1 байт;

10 – Disp=2 – непосредственное смещение размером 2 байта;

11 – оба операнда находятся в регистрах.

Регистры кодируются в зависимости от размера операнда (w):

w=1 w=0



<== предыдущая лекция | следующая лекция ==>
Структурная схема процессора i8086 | EDI 111 BH


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.004 сек.