48
Организация ЭВМ и систем Тема: Анализ развития процессоров фирмы Intel семейства IA-32 Инициализация ПЭВМ на базе микропроцессоров IA-32 Архитектура 16-битных процессоров IA-32 - 8086, 80286: основные регистры, адресация памяти, режимы работы Архитектура 32-битных процессоров IA-32: - ЦП 80386: основные регистры, режимы работы. - Страничная и сегментная организация памяти. - Многозадачность. Формат команд ЦП 80486 – режим пакетирования

Лекция № 2 Организация ЭВМ и систем

  • Upload
    -

  • View
    158

  • Download
    4

Embed Size (px)

Citation preview

Организация ЭВМ и системТема: Анализ развития процессоров фирмы Intel семейства IA-32

• Инициализация ПЭВМ на базе микропроцессоров IA-32• Архитектура 16-битных процессоров IA-32 - 8086, 80286: основные регистры, адресация памяти, режимы работы• Архитектура 32-битных процессоров IA-32: - ЦП 80386: основные регистры, режимы работы. - Страничная и сегментная организация памяти. - Многозадачность. Формат команд• ЦП 80486 – режим пакетирования

Инициализация ПЭВМИнициализация ПЭВМ

Аппаратная часть:Аппаратная часть:1.1. Системное ядроСистемное ядро ПК включает: ПК включает: ЦП;ЦП; 2 – 3х-канальных таймера;2 – 3х-канальных таймера; 2 контроллера прерываний с 8-ю уровнями 2 контроллера прерываний с 8-ю уровнями каждый;каждый; 2 – 4х-канальных контроллера ПДП;2 – 4х-канальных контроллера ПДП; порты ввода/вывода;порты ввода/вывода; CMOS CMOS память;память; часы реального времени;часы реального времени; контроллер клавиатуры.контроллер клавиатуры.

Инициализация ПЭВМИнициализация ПЭВМ

2.2. Модули расширенияМодули расширения:: Контроллеры накопителей.Контроллеры накопителей. Накопители.Накопители. Видеоадаптеры.Видеоадаптеры. Сетевые карты.Сетевые карты.

Программная часть:Программная часть: BIOSBIOS.. POSTPOST.. BIOS SETUPBIOS SETUP..

Алгоритм пробуждения Алгоритм пробуждения (инициализация) ПК(инициализация) ПК

1.1.Включение питания.Включение питания.2.2.Самодиагностика, идентификация, проверка Самодиагностика, идентификация, проверка

процессора и сопроцессора.процессора и сопроцессора.3.3.Проверка и инициализация системного ядра.Проверка и инициализация системного ядра.4.4.Включение механизма Включение механизма Plug and Play.Plug and Play.5.5.Проверка и инициализация видеоадаптера.Проверка и инициализация видеоадаптера.6.6.Проверка Проверка CMOS CMOS памяти и часов реального времени.памяти и часов реального времени.7.7.Определение объема и проверка оперативной памяти.Определение объема и проверка оперативной памяти.8.8.Проверка клавиатуры и инициализация портов Проверка клавиатуры и инициализация портов (LPT, (LPT,

COM).COM).9.9.Инициализация дисковых накопителей.Инициализация дисковых накопителей.10.10.Проверка модулей расширения Проверка модулей расширения BIOSBIOS..11.11.Включение механизма Включение механизма APRAPR..12.12.Вызов системного загрузчика.Вызов системного загрузчика.13.13.Загрузка ОС.Загрузка ОС.

Анализ развития Анализ развития ЦП ф.ЦП ф.Intel Intel семейства семейства IA-32IA-32

Тип ЦПТип ЦП

СвойстваСвойства

80868086 80888088 8028680286 8038680386 8048680486 PentiumPentium P6P6

1.1. Год выпуска Год выпуска 19781978 19791979 19821982 19851985 19891989 19931993 19951995

2.2. Проектные нормы Проектные нормы (мкм)(мкм)

33 33 1, 51, 5 11 1 - 0,81 - 0,8 0,8 - 0,60,8 - 0,6 0,6 - 0,350,6 - 0,35

3.3. Кол-во транзисторов Кол-во транзисторов 2900029000 2900029000 130000130000 275002750000

1млн201млн200т0т

3млн103млн100т0т

9млн5009млн500тт

4. 4. Разрядность ШД Разрядность ШД//ШАША 16/2016/20 8/208/20 16/2416/24 32/3232/32 32/3232/32 64/3264/32 64/32 64/32 (36)(36)

5.5. Max Max объем объем физической памятифизической памяти

11 Мб Мб 1 Мб1 Мб 16 Мб16 Мб 4 Гб4 Гб 4 Гб4 Гб 4 Гб 4 Гб 4 Гб (64 4 Гб (64 Гб)Гб)

6.6. MaxMax объем объем виртуальной памятивиртуальной памяти

1 Мб1 Мб 1 Мб1 Мб 1Гб1Гб 64 Тб64 Тб 64 Тб64 Тб 64 Тб64 Тб 64 Тб64 Тб

7.7. Max Max размер сегментаразмер сегмента 64 Кб64 Кб 64 Кб64 Кб 64 Кб64 Кб 64 Кб,64 Кб,

4 Гб4 Гб

64 Кб,64 Кб,

4 Гб4 Гб

64 Кб,64 Кб,

4 Гб4 Гб

64 Кб,64 Кб,

4 Гб4 Гб

Тип ЦПТип ЦП

СвойстваСвойства

80868086 80888088 8028680286 8038680386 8048680486 PentiumPentium P6P6

8.8. Размер очереди Размер очереди предвыборки (байт)предвыборки (байт)

6 6 66 1616 3232 3232 3232 3232

9.9. Размер операндов Размер операндов (бит) (бит)

8, 168, 16 8, 168, 16 8, 168, 16 8, 16, 8, 16, 3232

8, 16,8, 16,

32, 6432, 64

8, 16,8, 16,

32, 6432, 64

8, 16,8, 16,

32, 6432, 64

10.10. Размер регистров Размер регистров (бит)(бит)

8, 168, 16 8, 168, 16 8, 168, 16 8, 16, 8, 16, 3232

8, 16, 8, 16, 3232

8, 16, 8, 16, 3232

8, 16, 328, 16, 32

11.11. Разбиение на Разбиение на страницыстраницы

нетнет нетнет нетнет естьесть естьесть есть есть естьесть

12.12. Рабочая частота Рабочая частота (МГЦ)(МГЦ)

5, 8, 5, 8, 1010

5, 8, 105, 8, 10 8, 10,8, 10,

12, 1612, 16

20, 20, 25,25,

33, 4033, 40

25 - 13325 - 133 60 - 23360 - 233 166, 180, 166, 180,

200200

13.13. Защита памяти и Защита памяти и ввода/выводаввода/вывода

нетнет нетнет естьесть естьесть естьесть естьесть естьесть

14.14. Сопроцессор Сопроцессор 80878087 80878087 8028780287 8028780287

8038780387

FPUFPU FPUFPU FPUFPU

Поколения процессоров фирмы Intel Поколения процессоров фирмы Intel Название ядра Версия процессораНазвание ядра Версия процессора

Есть рабочее название ядер процессора (определяется микроархитектурой) и есть Есть рабочее название ядер процессора (определяется микроархитектурой) и есть рабочее название версии процессора (определяется, например, техпроцессом или рабочее название версии процессора (определяется, например, техпроцессом или размером кэша). Иногда они совпадают.размером кэша). Иногда они совпадают.

11 086086      

22 286286      

33 386386      

44 486486      

55 P5P5 Pentium (P5)Pentium (P5)   

      Pentium (P54)Pentium (P54)   

      Pentium MMX (P55)Pentium MMX (P55)   

66 P6P6 Pentium Pro Pentium Pro   

     Pentium II (Klamath, Pentium II (Klamath, Deschutes, Katmai)Deschutes, Katmai)

Celeron (Covington, Celeron (Covington, Mendocino, Dixon и т.д.)Mendocino, Dixon и т.д.)

     Pentium III (Coppermine, Pentium III (Coppermine, Tualatin)Tualatin) CeleronCeleron

      Pentium MPentium M   

      Core Duo Core Duo   

77P7 P7

NetBurstNetBurst Pentium 4 (Willamette)Pentium 4 (Willamette)   

      Pentium 4 (Northwood)Pentium 4 (Northwood)   

      Pentium 4 серии 5XX (Prescott)Pentium 4 серии 5XX (Prescott) Celeron D 3XX (Prescott)Celeron D 3XX (Prescott)

     Pentium 4 серии 6XX (Prescott Pentium 4 серии 6XX (Prescott 2M)2M)   

     Pentium 4 eXtreme Edition Pentium 4 eXtreme Edition серии 840 (Smithfield)серии 840 (Smithfield)   

     Pentium eXtreme Edition серии Pentium eXtreme Edition серии 9XX (Smithfield)9XX (Smithfield)   

     Pentium D серии 8XX Pentium D серии 8XX (Smithfield)(Smithfield)   

     Pentium D серии 9XX Pentium D серии 9XX (Smithfield)(Smithfield)   

88P8 P8

Intel Core Intel Core Core 2 Duo серии E4300 и Core 2 Duo серии E4300 и E6XXX (Conroe)E6XXX (Conroe)   

     Core 2 Extreme X6800 и Core 2 Extreme X6800 и QX6700 (Conroe)QX6700 (Conroe)   

     Core 2 Quad (Kentsfield) серии Core 2 Quad (Kentsfield) серии Q6xxxQ6xxx   

ЦП 8086ЦП 8086 Регистры данныхРегистры данных Регистры сегментовРегистры сегментов

Регистры указатели Регистры указатели

АН AL15 8 7 0

AX

BX

DX

CX

Базовый адрес сегмента кода

Базовый адрес сегмента данных

Базовый адрес сегмента данных

Базовый адрес сегмента стека

CS

DS

ES

SS

015

15 0SP

BP

SI

DI

Регистр указатель стека

Регистр указатель базы

Индексный регистр (источник)

Индексный регистр (приемник)

Адресное пространство

CSDS SS

Счетчик команд

Регистр флагов

IP

FLAGS

Формирование линейного адресаФормирование линейного адреса

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

+

19 0

15 0

019

0 0 0 04

Àíèìàöèÿ.swf

ЦП 80286ЦП 80286

Программная модель:Программная модель: 14 регистров ЦП 8086 + 5 новых:14 регистров ЦП 8086 + 5 новых:GDTRGDTR – 40- – 40-разрядный (определяет размер и разрядный (определяет размер и

положение (базовый адрес) глобальной дескрипторной положение (базовый адрес) глобальной дескрипторной таблицы).таблицы).

LDTRLDTR – 16-разрядный (селектор – 16-разрядный (селектор LDTLDT, определяет , определяет базовый адрес локальной дескрипторной таблицы).базовый адрес локальной дескрипторной таблицы).

IDTRIDTR – – 40-разрядный (определяет начало и размер 40-разрядный (определяет начало и размер таблицы векторов прерываний).таблицы векторов прерываний).

MSWMSW – – слово состояния (если флаг слово состояния (если флаг PE=1PE=1, то , то процессор переключается в защищенный режим).процессор переключается в защищенный режим).

TRTR – – 16-разрядный (содержит селектор сегмента 16-разрядный (содержит селектор сегмента состояния задачи, используется для многозадачности).состояния задачи, используется для многозадачности).

+ 6 невидимых регистров (они связаны с + 6 невидимых регистров (они связаны с CS, DS, ES, CS, DS, ES, SS, GDTR, IDTRSS, GDTR, IDTR))..

ЦП 80286 (режимы работыЦП 80286 (режимы работы))

В процессоре 80286 было реализовано два режима В процессоре 80286 было реализовано два режима функционирования:функционирования:

режим эмуляции 8086режим эмуляции 8086 (режим реального (режим реального адреса);адреса);

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

Формирование линейного адреса в Формирование линейного адреса в защищенном режимезащищенном режиме

ИНДЕКС

01215

RPLRPL

TITI 0 0 - GDT- GDT1- LDT1- LDT

Указывает на номерУказывает на номерзаписи в дескрипторнойзаписи в дескрипторнойтаблицетаблице

Значения, помещаемые в сегментные регистры, Значения, помещаемые в сегментные регистры, называютсяназываются селекторамиселекторами. Селектор содержит индекс . Селектор содержит индекс дескриптора в дескрипторной таблице, бит дескриптора в дескрипторной таблице, бит определяющий, к какой дескрипторной таблице определяющий, к какой дескрипторной таблице производится обращение (LDT или GDT), а также производится обращение (LDT или GDT), а также запрашиваемые права доступа к сегменту. запрашиваемые права доступа к сегменту.

Формирование линейного адреса в Формирование линейного адреса в защищенном режимезащищенном режиме

        ДескрипторДескриптор - это 8-байтная единица - это 8-байтная единица

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

Дескриптор сегмента содержит:Дескриптор сегмента содержит:

базовый адрес описываемого сегмента,базовый адрес описываемого сегмента,предел (размер) сегментапредел (размер) сегментаи права доступа к сегменту.и права доступа к сегменту.

Формирование линейного адреса в Формирование линейного адреса в защищенном режимезащищенном режиме

Существуют Существуют две обязательных две обязательных дескрипторных таблицыдескрипторных таблицы - - глобальнаяглобальная (GDT) и (GDT) и дескрипторная дескрипторная таблица прерываниятаблица прерывания (IDT), (IDT),

а также а также множество локальных множество локальных дескрипторных таблицдескрипторных таблиц (LDT), из которых (LDT), из которых в один в один момент времени процессору доступна только момент времени процессору доступна только одна.одна.

Формирование линейного адреса в Формирование линейного адреса в защищенном режимезащищенном режиме

СелекторСелектор СмещениеСмещение

ДескрипторДескриптор

Логический адресЛогический адрес

Дескрипторная таблица (Дескрипторная таблица (0 – GDT, 1 – LDT)0 – GDT, 1 – LDT)

002323 Физический адресФизический адрес

++

15 0

15 0

Àíèìàöèÿ.swf

Формирование линейного адреса в Формирование линейного адреса в защищенном режимезащищенном режиме

Расположение дескрипторных таблицРасположение дескрипторных таблиц определяется регистрами процессора определяется регистрами процессора GDTR, GDTR, IDTR, LDTR. IDTR, LDTR.

Регистры Регистры GDTRGDTR и и IDTRIDTR - содержат базовый - содержат базовый адрес и предел дескрипторной таблицы. адрес и предел дескрипторной таблицы.

Программно доступная часть регистра Программно доступная часть регистра LDTRLDTR - - 16 бит, которые являются 16 бит, которые являются селектором LDTселектором LDT. .

Дескрипторы LDT находятся в GDT.Дескрипторы LDT находятся в GDT.

Шинная архитектура ЦП 80286Шинная архитектура ЦП 80286

Синхро-генератор

82284

ЦП80286

CLK

RESET

READY

Шинный контроллер

82288

S0 S1

L-ш

ина

окал

ьная

)адрес

данныеБуфер

S-ш

ина

(си

стем

ная)

Буфер

Буфер

М-ш

ина

(па

мят

и)

ОП

Х-ш

ина

(пе

ри

фе

ри

й-

ного

уст

ро

йст

ва)

ПУ

на

ма

тер

инс

кой

пл

ате

управление

Структура микропроцессора Структура микропроцессора Intel 80386Intel 80386

Циклическийсдвигатель,сумматор

Умножитель/делитель

Наборрегистров

Декодированиеи упорядочение

УправляющееПЗУ

Декодеркоманд

Очередьдекодированных

команд

Устройствопредварительной

выборки

16-байтнаяочередь

кодов

Трехвходовыйсумматор

Регистрыдескрипторов

ПЛМ граници атрибутов

Сумматор

Кэш страниц

ПЛМ управленияи атрибутов

Блок проверкизащиты

Арбитрзапросов

Драйверадреса

Управлениеразмером

шины,конвейером

Мультиплексор,приемопере-

датчики

АЛУ

Управление

Предварительноедекодирование

команд

Предварительная выборка команд

Специализированная шина АЛУ32

Шина исполнительного адреса

32

Шина исполнительного адреса

32

Внутренняяшина

управленияШ

ина

см

ещен

ий

32

Шин

а л

иней

ного

ад

реса

Выборка кодов,Таблицы страниц

Блок сегментацииБлок разбивки

на страницыУправление шиной

Упр

авл

ение

Шин

а ф

изич

еско

гоад

реса

34

32

32

Регистры ЦП 80386Регистры ЦП 80386

Программно доступные регистры:Программно доступные регистры:

1.1. 8 регистров общего назначения 8 регистров общего назначения EAX, EBX, ECX, EDX, EBP, ESP, ESI, EDI – EAX, EBX, ECX, EDX, EBP, ESP, ESI, EDI – 32-разрядные).32-разрядные).

2.2. Регистр флагов (Регистр флагов (EFLAGS – 32-EFLAGS – 32-разрядный).разрядный).

3.3. Счетчик команд (Счетчик команд (EIP – 32-EIP – 32-разрядный).разрядный).

4.4. 6 сегментных регистров (16-разрядные).6 сегментных регистров (16-разрядные).

Регистры ЦП 80386Регистры ЦП 80386Системные регистры:Системные регистры:

1.1. 4 регистра4 регистра управления: управления: CR0CR0::• PG (PG (31 бит) – разбиение на страницы;31 бит) – разбиение на страницы;• TSTS (3 бит) – переключение задач; (3 бит) – переключение задач;• PEPE (0 бит) – включение защиты; (0 бит) – включение защиты; CR1, CR2CR1, CR2 ((сохраняют состояние сохраняют состояние

микропроцессорамикропроцессора));; CR3 CR3 ((хранится физический адрес текущей хранится физический адрес текущей

таблицы страничных директорийтаблицы страничных директорий))..2.2. 8 8 отладочных регистра: отладочных регистра: DR0-DR3, DR6, DR7, DR0-DR3, DR6, DR7,

(DR4, DR5 – (DR4, DR5 – зарезервированные ф.зарезервированные ф. Intel). Intel).3.3. 4 регистра защищенного режима: 4 регистра защищенного режима: GDTR, IDTR – GDTR, IDTR –

48-48-разрядные; разрядные; LDTR, TR – LDTR, TR – 16-разрядные.16-разрядные.4.4. 2 регистра страничных проверок: 2 регистра страничных проверок: TR6, TR7.TR6, TR7.

Режимы работы ЦП 80386Режимы работы ЦП 80386

1.1.Реальный режимРеальный режим или режим реальных или режим реальных адресов.адресов.

В реальном режиме МП работает как очень В реальном режиме МП работает как очень быстрый 8086 сбыстрый 8086 с возможностью использования 32-возможностью использования 32-битных расширений. битных расширений.

2.2.Виртуальный режимВиртуальный режим или режим или режим виртуального 8086 (виртуального 8086 (VM 86)VM 86)..

3.3.Защищенный режимЗащищенный режим – полностью 32- – полностью 32-разрядный процессор.разрядный процессор.

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

Особенности режима Особенности режима системного управлениясистемного управления

Режим системного управления (Режим системного управления (SMM)SMM) предназначен для выполнения некоторых предназначен для выполнения некоторых действий с возможностью их полной действий с возможностью их полной изоляции от прикладного программного изоляции от прикладного программного обеспечения и даже операционной системыобеспечения и даже операционной системы. .

Переход в этот режим происходит только Переход в этот режим происходит только аппаратно. аппаратно.

При входе в режим SMM процессор сохраняет При входе в режим SMM процессор сохраняет свой контекст в SMRAM (System Management свой контекст в SMRAM (System Management RAM) (контекст сопроцессора не сохраняется!) по RAM) (контекст сопроцессора не сохраняется!) по адресу SMM Base и передает управление адресу SMM Base и передает управление процедуре, называемой обработчиком System процедуре, называемой обработчиком System Management Interrupt.Management Interrupt.

Особенности режима Особенности режима системного управлениясистемного управления

В режиме SMM В режиме SMM не предусмотрена работа с не предусмотрена работа с прерываниями и особыми случаямипрерываниями и особыми случаями: : прерывания по IRQ и SMI# замаскированы, прерывания по IRQ и SMI# замаскированы, пошаговые ловушки и точки останова отключены, пошаговые ловушки и точки останова отключены, обработка прерывания по NMI откладывается до обработка прерывания по NMI откладывается до выхода из режима SMM. выхода из режима SMM.

При возврате из SMM (по инструкции RSM) При возврате из SMM (по инструкции RSM) процессор восстанавливает свой контекст из процессор восстанавливает свой контекст из SMRAM. SMRAM.

Эти Эти особенности режима системного особенности режима системного управления позволяют использовать его для управления позволяют использовать его для реализации системы управления реализации системы управления энергосбережениемэнергосбережением..

Формирование линейного адресаФормирование линейного адреса без участия селекторов без участия селекторов

Упрощенная схема формирования линейного Упрощенная схема формирования линейного адреса используется:адреса используется:

в режиме реального адреса, в режиме реального адреса, в режиме системного управления,в режиме системного управления, для вычисления адресов задачи для вычисления адресов задачи

защищенного режима, находящейся в защищенного режима, находящейся в состоянии эмуляции 8086состоянии эмуляции 8086 (Virtual 8086 Mode). (Virtual 8086 Mode).

Формирование линейного адресаФормирование линейного адреса без участия селекторов без участия селекторов

В этом случае В этом случае базовый адрес сегмента базовый адрес сегмента берется из сегментного регистраберется из сегментного регистра. .

Значение в сегментном регистре представляет Значение в сегментном регистре представляет собой собой биты 4-19биты 4-19 базового адреса сегмента. Из базового адреса сегмента. Из этого следует, что сегменты в этих режимах этого следует, что сегменты в этих режимах выровнены по 16-байтной границе и все сегменты выровнены по 16-байтной границе и все сегменты начинаются в пределах нижнего мегабайта начинаются в пределах нижнего мегабайта линейного адресного пространства. линейного адресного пространства.

Предел для всех сегментов одинаковПредел для всех сегментов одинаков. . В режиме реального адресаВ режиме реального адреса и и для задачи в для задачи в

состоянии VM86состоянии VM86 предел сегмента – предел сегмента – 64 Кбайт64 Кбайт, а , а в в режиме системного управлениярежиме системного управления – 4 Гбайт. – 4 Гбайт.

Формирование линейного адреса в Формирование линейного адреса в защищенном режимезащищенном режиме

Если Если в регистре управления в регистре управления CR0CR0 бит бит PGPG - разбиение на страницы не установлен, - разбиение на страницы не установлен, PGPG=0=0 то полученный то полученный линейный адрес линейный адрес является физическимявляется физическим, ,

если если PG=1PG=1, то включается, то включается страничная страничная адресация памяти.адресация памяти.

Формирование линейного адреса в Формирование линейного адреса в защищенном режимезащищенном режиме

В процессе страничной трансляцииВ процессе страничной трансляции адресов адресов полученный полученный линейный адрес разбивается на линейный адрес разбивается на три части. три части.

Старшие десять битСтаршие десять бит линейного адреса линейного адреса являютсяявляются индексом элемента из каталога индексом элемента из каталога таблицтаблиц.. По этому элементу определяется По этому элементу определяется физический адрес таблицы страниц. физический адрес таблицы страниц. Биты 21-12Биты 21-12 линейного адреса выбираютлинейного адреса выбирают элемент изэлемент из этойэтой таблицы страництаблицы страниц. Выбранный элемент . Выбранный элемент определяет физический адрес страницы. определяет физический адрес страницы. Младшие 12 битМладшие 12 бит линейного адреса определяют линейного адреса определяют смещение от начала страницысмещение от начала страницы..

Сегментная и страничная Сегментная и страничная организация памятиорганизация памяти

СелекторСелектор СмещениеСмещение

ДескрипторДескриптор

CRCR33

Линейный адресЛинейный адрес

Логический Логический адресадрес

ФизическийФизическийадресадрес

Дескрипторная таблица (Дескрипторная таблица (0 – GDT, 1 – LDT)0 – GDT, 1 – LDT)

ДиректорияДиректория СтраницаСтраница СмещениеСмещение

0011111212212122223131

+

31 0 15 0

Àíèìàöèÿ.swf

Многозадачность в ЦП 80386Многозадачность в ЦП 80386

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

Задачу составляют два компонента:Задачу составляют два компонента: адресное пространство задачиадресное пространство задачи ( доступные ( доступные ей сегменты кода, данных и стека) и ей сегменты кода, данных и стека) и сегмент состояния задачи (Task State сегмент состояния задачи (Task State Segment - TSS). Segment - TSS).

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

ДескрипторДескриптор TSSTSS

GDTGDT

СелекторСелектор БазаБаза ПределПредел

Сегмент состоянияСегмент состояниязадачи задачи TSSTSS

Регистр - TRневидимая часть

состояние регистра флагов (EFLAGS); состояние регистра флагов (EFLAGS); селектор сегмента TSS предыдущей исполняемой задачи; селектор сегмента TSS предыдущей исполняемой задачи; 2) 2) статический наборстатический набор (ЦП его считывает, но не изменяет): (ЦП его считывает, но не изменяет): значение регистра CR3 (PDBR); значение регистра CR3 (PDBR); значение регистра LDTR;значение регистра LDTR; информация о месте расположения стека для каждого уровня информация о месте расположения стека для каждого уровня привилегий;привилегий; TT-разряд, позволяющий осуществить для целей отладки внутреннее -разряд, позволяющий осуществить для целей отладки внутреннее прерывание и т.д. прерывание и т.д.

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

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

следующемследующем::

1.1. Производится проверка, допускает ли текущая задача Производится проверка, допускает ли текущая задача переключение на задачу назначения.переключение на задачу назначения.

2.2. Проверяется, что дескриптор Проверяется, что дескриптор TSSTSS новой задачи есть и новой задачи есть и имеет правильный предел.имеет правильный предел.

3.3. Сохраняется состояние текущей задачи.Сохраняется состояние текущей задачи.4.4. Происходит загрузка регистра задачи Происходит загрузка регистра задачи TRTR селектором селектором

дескриптора дескриптора TSSTSS переключающей задачи. переключающей задачи.5.5. Выполняется загрузка состояния переключающей Выполняется загрузка состояния переключающей

задачи из ее задачи из ее TSSTSS и возобновляется работа ЦП. и возобновляется работа ЦП.

Лишь значение первых Лишь значение первых 68h байт68h байт сегмента состояния сегмента состояния задачи строго определены. Именно задачи строго определены. Именно это число является это число является минимальным размером TSS.минимальным размером TSS.

Операционная система может по своему усмотрению Операционная система может по своему усмотрению устанавливать размер TSS и заполнять сегмент устанавливать размер TSS и заполнять сегмент данными.данными. Кроме того, в TSS может располагаться Кроме того, в TSS может располагаться необязательная для задачи структура - необязательная для задачи структура - двоичная карта двоичная карта разрешения ввода вывода (I/O permission bit map).разрешения ввода вывода (I/O permission bit map). Ее Ее адрес задается в последнем обязательном поле TSS. адрес задается в последнем обязательном поле TSS. Процессор обращается к этой карте, когда IOPL не Процессор обращается к этой карте, когда IOPL не позволяет выполнять инструкцию ввода-вывода. Каждый позволяет выполнять инструкцию ввода-вывода. Каждый бит этой карты соответствует одному порту ввода-вывода. бит этой карты соответствует одному порту ввода-вывода. Если бит сброшен в 0, то операция ввода-вывода Если бит сброшен в 0, то операция ввода-вывода выполняется без нарушения общей защиты, а если бит выполняется без нарушения общей защиты, а если бит выставлен в 1, то генерируется исключение #13.выставлен в 1, то генерируется исключение #13.

В глобальной дескрипторной таблицеВ глобальной дескрипторной таблице ( (GDTGDT))

могут быть:могут быть:

дескрипторы сегментов кода, данных, стека;дескрипторы сегментов кода, данных, стека; дескрипторы сегментовдескрипторы сегментов состояния задачисостояния задачи

TSSTSS;; дескрипторы таблиц дескрипторы таблиц LDTLDT;; системные дескрипторы: шлюзы вызовов и системные дескрипторы: шлюзы вызовов и

шлюзы задач.шлюзы задач.

При переключении задачи процессор может При переключении задачи процессор может продолжить выполнение новой задачи в продолжить выполнение новой задачи в особом состоянии - в состоянии эмуляции 8086 особом состоянии - в состоянии эмуляции 8086 (VM86).(VM86).

Переход в это состояние инициирует установка Переход в это состояние инициирует установка в 1 флажка 17 (Virtual Mode) в регистре EFLAGS в 1 флажка 17 (Virtual Mode) в регистре EFLAGS при восстановлении контекста процессора из TSS.при восстановлении контекста процессора из TSS.

Для задачи в состоянии VM86 считаетсяДля задачи в состоянии VM86 считается, что , что CPL=3, код и данные по умолчанию имеют CPL=3, код и данные по умолчанию имеют размер 16 бит, пределы всех сегментов – 64 размер 16 бит, пределы всех сегментов – 64 Кбайт, адресуется только нижний мегабайт Кбайт, адресуется только нижний мегабайт линейного пространства.линейного пространства.

Виртуальный режимВиртуальный режим

ЦП 80ЦП 803386 (переключение режимов)86 (переключение режимов)

Сравнительные характеристики Сравнительные характеристики режимов работы процессорарежимов работы процессора

ХарактеристикаХарактеристика RMRM PM, VM=0PM, VM=0 PM, VM=1PM, VM=1 SMMSMM

Формирование Формирование линейного адреса линейного адреса

без участия без участия селекторовселекторов

через через селекторы и селекторы и дескрипторыдескрипторы

без участия без участия селекторовселекторов

без участия без участия селекторовселекторов

Предел сегментовПредел сегментов 64К64К определяется определяется дескрипторомдескриптором

64К64К 4Г4Г

Максимальный Максимальный объем доступной объем доступной

памяти памяти (виртуальной) (виртуальной)

1M+64K-16 1M+64K-16 64T-2х4Г 64T-2х4Г 1M+64K-16 1M+64K-16 4Г4Г

Защита Защита Нет Нет Да Да Только на Только на

уровне страницуровне страниц Нет Нет

Страничное Страничное преобразование (в преобразование (в

т.ч. PAE) т.ч. PAE)

Нет Нет Да Да Да Да Нет Нет

Мультизадачность Мультизадачность НетНет Да Да Да Да НетНет

ЦП 80386 (формат команды)ЦП 80386 (формат команды)

ПРЕФИКС КОП MOD R/M SIB СМЕЩЕНИЕ ДАННЫЕ

1-2 байта 1-2 байта 0-1 байт 0-1 байт 0,1,2,4 байт

0,1,2,4 байт

Адресная часть

Типы префиксов:Типы префиксов:замена сегментов;замена сегментов;размер адреса (16 или 32 бит);размер адреса (16 или 32 бит);размер операнда;размер операнда;повторение (используется с командами обработки повторение (используется с командами обработки

строк);строк);блокировка.блокировка.

Формат командыФормат команды

КОП - КОП - код операциикод операции..Байт "Байт "Mod RMod R//MM" определяет " определяет режим адресациирежим адресации, а , а

также иногда дополнительный код операции. также иногда дополнительный код операции. Необходимость байта "Необходимость байта "Mod RMod R//MM" зависит от типа " зависит от типа инструкции.инструкции.

Байт Байт SIBSIB ( (ScaleScale--IndexIndex--BaseBase) определяет ) определяет способ способ адресацииадресации при обращении к памяти в 32-битном режиме. при обращении к памяти в 32-битном режиме. Необходимость байта Необходимость байта SIBSIB зависит от режима адресации, зависит от режима адресации, задаваемого полем "задаваемого полем "Mod RMod R//MM".".

Кроме того, инструкция может содержать Кроме того, инструкция может содержать непосредственный операнд и/или смещение операнданепосредственный операнд и/или смещение операнда в сегменте данных.в сегменте данных.

На размер инструкции накладывается ограничение в 15 На размер инструкции накладывается ограничение в 15 байт. Для совместимости с 16-битными процессорами байт. Для совместимости с 16-битными процессорами архитектура архитектура IAIA-32 использует одинаковые коды для инструкций, -32 использует одинаковые коды для инструкций, оперирующих как с 16-битными, так и 32-битными операндами.оперирующих как с 16-битными, так и 32-битными операндами.

Структура МП Структура МП Intel 80486Intel 80486

Шинный интерфейс

Драйверыадреса

Буферы записи

Приемо-передатчики

данных

Управлениешиной

Управление пакетами

Управление размером

Управление кэш-памятью

Управлениепаритетом

Адрес

Данные

Управление

Кэш-память 8К

Устройствопредвыборки

команд

Очередькода 32 байта

32

32

32

Устройствостраничного

преобразования

Ассоциативныйбуфер

PCD

PWT

Физи- ческий адрес

128

Устройство сегментации

Регистрыдескрипторов

Контроль пределаи атрибутов

Парал-ныйсдвигатель

Регистры

АЛУ

32

Дешифраторкоманд

24Устройство управления

УправляющееПЗУ

Дешифрированная команда

Устройствос плавающей

точкой

Регистры

Микрокоманда

Шина смещения32

База

Команды

Шина линейного адреса32

Шина данных32

Шина данных32

64-битная внутренняя шина

Режим пакетированияРежим пакетирования

ТактТакт КонвейеризацияКонвейеризация

(80286)(80286)

ПакетПакет

(80486)(80486)

11 Адрес 1 словаАдрес 1 слова Адрес 1 словаАдрес 1 слова

22 Передача 1 словаПередача 1 слова --------------------

33 Адрес 2 словаАдрес 2 слова Передача 1 словаПередача 1 слова

44 Передача 2 словаПередача 2 слова Передача 2 словаПередача 2 слова

55 Адрес 3 словаАдрес 3 слова Передача 3 словаПередача 3 слова

66 Передача 3 словаПередача 3 слова Передача 4 словаПередача 4 слова

77 Адрес 4 словаАдрес 4 слова --------------------

88 Передача 4 словаПередача 4 слова --------------------

Средство блочной передачиСредство блочной передачи: : 64 бита за 1 раз64 бита за 1 раз..

Уровни привилегий в Уровни привилегий в IAIA--3232

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

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

Привилегии используются для обеспечения Привилегии используются для обеспечения безопасности в компьютерной системебезопасности в компьютерной системе. Привилегии . Привилегии реализуются путем присвоения значения от 0 до 3 реализуются путем присвоения значения от 0 до 3 ключевым объектам, которые опознаются процессором. ключевым объектам, которые опознаются процессором. Значение 0 соответствует наибольшим привилегиям, тогда Значение 0 соответствует наибольшим привилегиям, тогда как значение 3 наименьшим.как значение 3 наименьшим.

В процессоре имеется В процессоре имеется два уровня защиты: защита на два уровня защиты: защита на уровне сегментов и защита на уровне страниц.уровне сегментов и защита на уровне страниц.

ЦП 80486 (уровни привилегий)ЦП 80486 (уровни привилегий)

0

12

3 0 – Ядро ОС; 1 – ОС; 2 – Системы 0 – Ядро ОС; 1 – ОС; 2 – Системы программирования; 3 – Прикладные программирования; 3 – Прикладные программыпрограммы

В реальных операционных системах В реальных операционных системах обычно не используются все четыре обычно не используются все четыре уровня. UNIX и Windows, например, уровня. UNIX и Windows, например, используют только два уровня привилегий используют только два уровня привилегий - 0 (для ядра системы) и 3 (для всего - 0 (для ядра системы) и 3 (для всего остального), а OS/2 использует уровни 0 остального), а OS/2 использует уровни 0 (для ядра системы), 2 (для процедур (для ядра системы), 2 (для процедур ввода-вывода) и 3 (для прикладных ввода-вывода) и 3 (для прикладных программ).программ).

Направление Направление обращения к данным обращения к данным

Защита на уровне сегментов представлена Защита на уровне сегментов представлена четырьмя уровнями привилегийчетырьмя уровнями привилегий.. Привилегированные Привилегированные команды выполняются только на «0» - уровне привилегий, команды выполняются только на «0» - уровне привилегий, на всех других уровнях вызывается исключение №13 – на всех других уровнях вызывается исключение №13 – нарушение общей защиты. нарушение общей защиты.

Защита на уровне сегментовЗащита на уровне сегментовЗащита на уровне сегментов состоит в защите от выполнения Защита на уровне сегментов состоит в защите от выполнения

привилегированных команд, защите доступа к данным и защите привилегированных команд, защите доступа к данным и защите сегментов кода.сегментов кода.

В процессоре есть команды, которые могут кардинально изменить В процессоре есть команды, которые могут кардинально изменить состояние всей системы. Такие команды выполняются только на состояние всей системы. Такие команды выполняются только на нулевом уровне привилегий, а на всех других уровнях вызывают нулевом уровне привилегий, а на всех других уровнях вызывают нарушение общей защиты (исключение #13). К этим командам нарушение общей защиты (исключение #13). К этим командам относятся:относятся:

HLT - останов процессора; HLT - останов процессора; CLTS - сброс флажка Task Switched (исп. при управлении CLTS - сброс флажка Task Switched (исп. при управлении

мультизадачностью); мультизадачностью); LIDT, LGDT, LLDT - загрузка регистров дескрипторных таблиц; LIDT, LGDT, LLDT - загрузка регистров дескрипторных таблиц; LTR - загрузка регистра задачи; LTR - загрузка регистра задачи; LMSW - загрузка младшего слова регистра CR0; LMSW - загрузка младшего слова регистра CR0; MOV CRx,reg32 - работа с управляющими регистрами; MOV CRx,reg32 - работа с управляющими регистрами; MOV DRx,reg32 - работа с регистрами отладки,MOV DRx,reg32 - работа с регистрами отладки,а также команды работы со специфическими регистрами (TRx - для а также команды работы со специфическими регистрами (TRx - для

386,486; MCRs - для Pentium и P6; MTRRs - для P6). Следует отметить, 386,486; MCRs - для Pentium и P6; MTRRs - для P6). Следует отметить, что команда POPFD также чувствительна к уровню привилегий. Она не что команда POPFD также чувствительна к уровню привилегий. Она не изменяет состояние управляющих флажков IOPL, IF и др., если изменяет состояние управляющих флажков IOPL, IF и др., если выполняется на уровне привилегий, отличном от нулевого.выполняется на уровне привилегий, отличном от нулевого.

Защита на уровне сегментовЗащита на уровне сегментовCPLCPL – – текущий уровень привилегийтекущий уровень привилегий (Current Privilege (Current Privilege

Level): Level): уровень привилегий, на котором в данный уровень привилегий, на котором в данный момент исполняется задачамомент исполняется задача. Значение CPL хранится в . Значение CPL хранится в поле RPLполе RPL селектора сегмента кода, который помещен в селектора сегмента кода, который помещен в регистр CSрегистр CS. . Обычно это значение соответствует уровню Обычно это значение соответствует уровню привилегий дескриптора исполняемого сегмента кода. Уровень привилегий дескриптора исполняемого сегмента кода. Уровень привилегий меняется, когда управление передается сегменту кода с привилегий меняется, когда управление передается сегменту кода с другим значением DPL (за исключением подчиняемых сегментов другим значением DPL (за исключением подчиняемых сегментов кода).кода).

DPLDPL – – уровень привилегий дескрипторауровень привилегий дескриптора (Descriptor (Descriptor Privilege Level): наименее привилегированный уровень, на Privilege Level): наименее привилегированный уровень, на котором задача может получить доступ к сегменту или котором задача может получить доступ к сегменту или шлюзу, связанному с этим дескриптором. шлюзу, связанному с этим дескриптором.

RPLRPL – – запрашиваемый уровень привилегийзапрашиваемый уровень привилегий (Requested (Requested Privilege Level) используется для временного понижения Privilege Level) используется для временного понижения своего уровня привилегий при обращении к памяти. RPL своего уровня привилегий при обращении к памяти. RPL заносится в заносится в младшие биты селекторамладшие биты селектора..

IOPLIOPL – – уровень привилегий ввода уровень привилегий ввода//вывода (вывода (EFLAGSEFLAGS).).

Доступ к данным разрешенДоступ к данным разрешен, если , если max(CPL,RPL)<=DPLmax(CPL,RPL)<=DPL, в противном случае генерируется , в противном случае генерируется нарушение общей защиты.нарушение общей защиты.

Команды с портами или команды Команды с портами или команды I/OI/O выполняются выполняются только в том случае еслитолько в том случае если:: CPL<=IOPLCPL<=IOPL..

Контроль привилегий Контроль привилегий при доступе к стекупри доступе к стеку осуществляется при загрузке селектора в регистр SS. осуществляется при загрузке селектора в регистр SS. Программа должна использовать сегмент стека, Программа должна использовать сегмент стека, находящийся на том же уровне привилегий, т. е. находящийся на том же уровне привилегий, т. е. CPL=RPL=DPLCPL=RPL=DPL..

Для передачи управления на обычный сегмент Для передачи управления на обычный сегмент кодакода его уровень привилегий должен совпадать с текущим его уровень привилегий должен совпадать с текущим уровнем привилегий. Значение RPL должно быть не уровнем привилегий. Значение RPL должно быть не больше CPL, чтобы не вызывать исключения, но вне больше CPL, чтобы не вызывать исключения, но вне зависимости от значения RPL уровень привилегий не зависимости от значения RPL уровень привилегий не сменится: сменится: CPL=DPLCPL=DPL..

Правила на основе привилегийПравила на основе привилегий

Для передачи управления между уровнями Для передачи управления между уровнями привилегий используютсяпривилегий используются системные дескрипторысистемные дескрипторы, , называемые называемые шлюзами вызовашлюзами вызова. .

Дескриптор шлюза вызоваДескриптор шлюза вызова содержит точку входа в содержит точку входа в привилегированную процедуру (селектор: смещение) и привилегированную процедуру (селектор: смещение) и число передаваемых ей через стек параметров. Для число передаваемых ей через стек параметров. Для передачи управления привилегированной процедуре передачи управления привилегированной процедуре адресуется не сама процедура, а шлюз к ней. Шлюзы адресуется не сама процедура, а шлюз к ней. Шлюзы можно адресовать только в команде FAR CALL, т.е. можно адресовать только в команде FAR CALL, т.е. "насовсем" сменить уровень привилегий таким способом "насовсем" сменить уровень привилегий таким способом нельзя, всегда предполагается возврат на более низкий нельзя, всегда предполагается возврат на более низкий уровень привилегий. Правило разрешения вызова через уровень привилегий. Правило разрешения вызова через шлюз выглядит так: шлюз выглядит так:

DPLDPLцелицели<=max(CPL,RPL)<=DPL<=max(CPL,RPL)<=DPLшлюзашлюза..

Защита на уровне страницЗащита на уровне страниц

Защита страниц обеспечивается двумя уровнями Защита страниц обеспечивается двумя уровнями привилегий: супервизора и пользователя.привилегий: супервизора и пользователя.

Уровню супервизора соответствуют 0-й, 1-й, 2-й уровни Уровню супервизора соответствуют 0-й, 1-й, 2-й уровни привилегий сегментов, а уровню пользователя - 3-й. Для привилегий сегментов, а уровню пользователя - 3-й. Для каждой страницы указывается (в PDE/PTE), с какого каждой страницы указывается (в PDE/PTE), с какого уровня привилегий она доступна. уровня привилегий она доступна.

Правило привилегий таково: с уровня супервизора Правило привилегий таково: с уровня супервизора доступны все страницы, а с уровня пользователя - доступны все страницы, а с уровня пользователя - только страницы с битом U/S=1только страницы с битом U/S=1. Кроме того, в PDE/PTE . Кроме того, в PDE/PTE указывается тип доступа к странице (доступна ли страница указывается тип доступа к странице (доступна ли страница для записи): R/W=0 - только чтение, R/W=1 - доступны для записи): R/W=0 - только чтение, R/W=1 - доступны чтение и запись. Следует отметить действие бита 16 (Write чтение и запись. Следует отметить действие бита 16 (Write Protect) в регистре CR0. Когда этот бит выставлен, Protect) в регистре CR0. Когда этот бит выставлен, страницы уровня пользователя с пометкой "read-only" страницы уровня пользователя с пометкой "read-only" защищены от записи при обращениях с уровня защищены от записи при обращениях с уровня супервизора.супервизора.