Базовая архитектура 32-разрядного микропроцессора Intel

Краткая историческая справка развития микропроцессоров

7.02.13

В 1971 году был разработан 4-битовый микропроцессор фирмы Intel MP4004. 1973 – появился 8-битовый процессор MP8080. Первый рабочий процессор - 1975 - 16-битный Intel 8086.

Командный поток - извлекает из памяти и выполняет команду. Успеху развития способствовало:

1. использование их IBM для создания нового поколения ПК;

2. разработка фирмой Microsoft 16-разрядной ОС – MS-Dos.

Базовая архитектура 32-разрядного микропроцессора Intel

14.02.13

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

Регистр – минимальный объем памяти, который находится в самом процессоре.

Память делится на несколько уровней.

Пользовательские регистры микропроцессоров:

1. регистры общего назначения;

2. сегментные регистры;

3. указатель команд (адрес смещения);

4. регистр флагов (разряд 0 или 1).

Регистры общего назначения

Регистр аккумулятор – для хранения промежуточных данных. При этом большинство команд использующих этот регистр выполняются быстрее, чем они использовали бы другой регистр. Все команды умножения и деления обязательно должны использовать регистр аккумулятор. Также используется в командах ввода-вывода.

Базовый регистр. Используются в базовой адресации.

Счетчик используется для указания количества повторений в циклических командах.

Регистр данных. Участвует вместе с аккумулятивным регистром в командах умножения деления, ввода-вывода, используется для хранения номера порта, куда осуществляется вывод.

РОНы:

Esp – указатель стека. Предназначен для хранения вершины стека, для текущего сегмента стека. Используется неявно (по ум.) командами работы со стеком: включение/исключение в/из стек, команды вызова процедур и обработки прерывания.

Ebp – указатель базы. Предназначен для удобного доступа к объектам данных, находящихся в стеке при помощи базовой адресации.

Индексные регистры. Si – индекс источника, di – индекс приемника. Используются в командах работы со строками. Si адресует элемент строки источника, di – элемент строки приемника.

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

Сегментные регистры.

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

Cs – сегментный регистр предназначенный для идентификации текущего сегмента, который содержит коды, исполняющихся программ.

Ss – сегментный регистр стека. Позволяет идентифицировать текущий сегмент стека.

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

Дополнительные сегментные регистры предназначены для идентификации дополнительных сегментов данных.

Указатель команд

Указатель команд содержит адрес смещения команды, которая будет выполняться в след за текущей. Напрямую указатель команд не указывается и не изменяется.

Регистр флагов содержит флаги управления и флаги состояния.

Флаги состояния сообщают об особенностях результатов обработки данных:

1. Cf – флаг переноса. Устанавливается в единицу, если при выполнении операции умножения вычитании произошел перенос или займ. В остальных случаях равен 0.

2. Pf – флаг четности. Устанавливается в 1, если младшие 8 бит результата имеют четное число единичных бит.

3. Af – флаг дополнительного переноса.

4. Zf – флаг нуля. Устанавливается в 1, когда результат = 0, в противном случае 0.

5. Sf – флаг знака. Всегда равен знаковому (старшему) биту результата.

6. Of – флаг переполнения. Устанавливается в 1, если в арифметической операции со знаковыми операндами результат превысил диапазон предоставляемых чисел.

7. Iopl – двубитное поле – уровень привилегии ввода-вывода. Позволяет определить минимальный уровень привилегий задачи, на котором ей разрешается выполнять операции ввода-вывода.

8. Nt – флаг вложенной задачи. Используется в защищенном режиме и устанавливается в единицу, когда в рамках выполнения одной программы вызывается дочерняя задача.

9. Tf – флаг пошагового выполнения команд. Используется в механизме отладки программ.

10. If – флаг прерывания. Всегда равен 1 по умолчанию. Разрешает обработку аппаратных прерываний. Есть специальная команда, которая управляет этим процессом.

11. Df – флаг направления. Задает направление обработки цепочек данных.

12. Rf – флаг возобновления. Используется в механизме отладки для подавления особых случаев отладки по одной и той же команде. Действует в защищенном режиме.

13. Vm – флаг виртуального режима. При 0 в режиме реального адреса, в защищенном режиме, при 1 – превращается в высокопроизводительный мп, использующий только режим реального адреса.

Режимы адресации:

При адресации операндов различают:

1. неявная адресация – операнд адресуется неявно, если в команде нет полей для его определения. В команде операнд отсутствует, но команда оперирует данными.

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

mov ax, bx – присвоение значения одного операнда другому (второе первому).

3. непосредственная адресация – операнд находится в самой команде и хранится в сегменте кода. При записи программы непосредственный операнд записывается своим изображением.

Mov ax, 1AFBh

4. адресация ввода-вывода. Существует адресное пространство ввода-вывода размером 64 кбайта (номера портов ввода-вывода) – in, out.

In al, 4oh

In al,dx

Out 20h, al

Out dx, al

Адресация операндов памяти:

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

Mov al, [1234h]

При данном виде адресации часто используют преобразование типов.

Inc word ptr [1fh]

Байт – 1 байт (db)

Word – слово 2 байта (dw)

Dword – двойное слово 4 байта (dd)

Qword – 8 байт (dq)

Tword – 10 байт (dt)

2 директивы, содержащие адреса.

X db 10

Прямая адресация применяется к ячейкам памяти с фиксированными адресами.

2. косвенная регистровая адресация.

При базовой адресации предполагается, что адрес операндов находится в базовом регистре.

Mov al, [ecx]

Dec dword ptr [dx]

Если при использовании в качестве базового регистра используются bp, ebp то идет обращение к сегменту стека, в остальных случаях к сегменту данных.

Базовая адресация со смещением.

Mov al, [ecx+4] – к значению адреса находящемуся в регистре прибавляется константа, при этом в совокупности получается адрес смещения данных, находящихся в памяти.

Индексная адресация.

Mov ax, array [si]

Суммируется адрес array+ индекс в si. – эффективный адрес

Базовая индексная адресация с масштабированием и смещением.

Mov ax, [bx+2] [si*4]

2[bx]

Системные регистры мп

21.02.13

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

1) регистры управления памяти защищенного режима. Предназначены для организации работы памяти. Состоит из 4 регистров:

GDTR – регистр глобальной действительной таблицы.

47 15 0

ЛБА предел

Имеет 48 разрядов. Состоит из 2 частей: предел – определяет максимально возможный размер таблицы в байтах (максимально возможное смещение относительно начала таблицы), ЛБА (линейный базовый адрес) определяет верхнюю границу (начало таблицы), т.е. линейный адрес.

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

47 15 0

АБА предел

48 разрядов. Регистр предназначен для идентификации дескрипторной таблицы прерывания.

LDTR – регистр локальной дескрипторной таблицы. Предназначен для адресации локальной дескрипторной таблицы для активной на данный момент задачи.

15 0

селектор
Index TI RPL1

RPL – используется в механизме защиты по привилегиям.

TI – бит индексации таблицы. Определяет в какой таблице находится соответствующий дискриптор.

0- глобальная таблица GDTR.

1 – локальная дескрипторная таблица LDTR.

Index – порядковый номер дескриптора в таблице.

TR – регистр задач. Содержит селектор дескриптора сегмента состояния задачи, которая активна в данный момент.

Регистры управления:

CR0-CR3

ФАКС РСД PWT  
ЛАСН
резерв
PG CD NW   AM   WP   NE ET TS EM MP PE
                                 

Все регистры управления доступны привилегированным задачам и только при помощи команды mov.

CR0 содержит системные флаги управления режимами и флаги показа состояния относящиеся ко всему мп. Назначение:

1. PG - страничное преобразование. =1 – разрешено, =0 – запрещено.

2.CD - запрещение кэш-памяти. При=1 – запрещено

3. NW - бит не сквозной записи. При =0 разрешает сквозную запись в памяти.

4. AM – маска выравнивания. При =1 разрешается контроль выравнивания данных.

5. WP – защита от записи. При =1 защищает от записи страницы уровня пользователя от обращения супервизора.

6. NE – численная ошибка. При установке в единицу разрешается стандартный механизм обработки численных механизмов.

7. ET – тип расширения. При =1 осуществляет поддержку устаревших команд математического сопроцессора.

8. TS – задача переключена. При каждом переключении устанавливается в единицу. Сбрасывается специальная команда CLTS.

9. EM – эмуляция. При =1 указывает на эмуляцию команд математического сопроцессора.

10. MP – указывает на присутствие математического сопроцессора. Всегда на 1.

11. PE – включить защиту. При =1 разрешено использование защищенного режима.

ЛАСН – линейный адрес последнего страничного нарушения используется механизмом отладки.

Последний. Важен для страничного преобразования адреса. ФАКС (физический адрес каталога страниц). РСД – запрещение кэширования страниц. PWT – бит не сквозной записи строения.

Также есть в системных регистрах системы отладки DR0-DR7 и регистры проверки TR0-TR7 предназначены для проверки работы кэш-памяти.








Дата добавления: 2017-01-13; просмотров: 971;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.022 сек.