Архитектура компьютера (Часть 2) Луганск 20 11 удк 004. 031., 004. 032. 8




НазваниеАрхитектура компьютера (Часть 2) Луганск 20 11 удк 004. 031., 004. 032. 8
страница1/16
Дата03.09.2012
Размер1.87 Mb.
ТипДокументы
  1   2   3   4   5   6   7   8   9   ...   16


МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ УКРАИНЫ, МОЛОДЕЖИ И СПОРТА


ГУ «ЛУГАНСКИЙ НАЦИОНАЛЬНЫЙ УНИВЕРСИТЕТ

ИМЕНТИ ТАРАСА ШЕВЧЕНКО»


Лахно В.А., Могильный Г.А.


АРХИТЕКТУРА КОМПЬЮТЕРА

(Часть 2)





Луганск 2011

УДК 004.031., 004.032.8

ББК 32.973.

Л 297


Рекомендовано Ученым советом

Луганского национального университета имени

Тараса Шевченко

Протокол № 7 от 2011 г.


Рецензенты:

Ю.П. Коробецький

професор кафедри комп’ютерні технології в промисловому та міському транспорті СНУ імені Володимира Даля, доктор техн. наук

В.Д. Сквирский

Зав.кафедрой теоретической и прикладной информатики ЛНУ имени Тараса Шевченка


Лахно В.А., Могильный Г.А.

Архитектура компьютера (часть 2): учебное пособие. – Л.: ЛНУ имени Тараса Шевченко, 2011. – 190 с.


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

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

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


© Лахно В. А., Могильний Г. А., 2011

© ГУ „ЛНУ имени Тараса Шевченко”, 2011

Содержание

4

Глава 8. Режимы работы процессоров 4

24

Глава 9. Многоядерные процессоры 24

40

Глава 10. Сопроцессоры. Способы обмена информацией между ЦП и сопроцессором 40

11.3. Кэш-память 64

11.4. Оперативная память 71

90

ГЛАВА 13. МАТЕРИНСКИЕ ПЛАТЫ И ЧИПСЕТЫ 90

99

Глава 14. Система прерываний и исключений в архитектуре IA-32 99

14.2. Расширенный программируемый контроллер прерываний (APIC) 107

14.3. Обработка прерываний на основе контроллера 8259A 108

15.2. Интерфейсы накопителей 118

15.3. Интерфейсы SCSI, RS-232C, IEEE 1284, USB, FireWire 121

15.4. Безпроводные интерфейсы 131

138

Глава 16. Устройства ввода-вывода 138



Глава 8. Режимы работы процессоров



Впервые о различных режимах работы процессоров Intel x86 стали говорить с появлением процессора 80286. Это был первый представитель данного семейства процессоров, в котором были реализованы многозадачность и защищенная архитектура [3, 12, 13, 15]. Чтобы обеспечить совместимость с предыдущими представителями этого семейства (8086,8088,80186) в процессоре 80286 было реализовано два режима функционирования: режим эмуляции 8086 (режим реального адреса) и защищенный режим, в котором используются все возможности процессора. В последующих поколениях процессоров этого семейства защищенный режим становится основным режимом работы. Для процессоров, начиная с 80386, иногда говорят еще об одном режиме работы - виртуальном режиме (режим виртуального 8086). В данном реферате он будет рассматриваться как особое состояние задачи защищенного режима.

В новых поколениях процессоров Intel появился еще один режим работы – режим системного управления (System Management Mode). Впервые он был реализован в процессоре 386SL и 486SL. Начиная с расширенных моделей 486х процессоров, этот режим стал обязательным элементом архитектуры x86-совместимых процессоров. С его помощью прозрачно даже для операционной системы на уровне BIOS реализуются функции энергосбережения.

Ниже рассмотрены особенности перечисленных выше режимов работы МП.


Реальный режим (Real Mode)

После инициализации (системного сброса) МП находится в реальном режиме. В реальном режиме МП работает как очень быстрый 8086 с возможностью использования 32-битных расширений. Механизм адресации, размеры памяти и обработка прерываний (с их последовательными ограничениями) МП 8086 полностью совпадают с аналогичными функциями других МП IA-32 в реальном режиме.

Доступ к памяти в реальном режиме осуществляется конструкцией «сегмент:смещение», которая описывает логический адрес. Значение сегмента, как и смещения, лежит в пределах от 0 до 0FFFFh.

Так как адресоваться можно только в пределах одного сегмента, то максимальный размер сегмента равен 64 килобайт. Физический адрес, который выставляется на адресную шину процессора, считается по формуле:

линейный адрес = сегмент * 16 + смещение

В отличие от 8086, остальные члены семейства IA-32 в определенных ситуациях генерируют исключения, например, при превышении предела сегмента, который для всех сегментов в реальном режиме равен 0FFFFh.

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

Ячейки от 00000h до 003FFH резервируются для векторов прерываний. Каждое из 256 возможных прерываний имеет зарезервированный 4-байтовый адрес перехода. Ячейки от FFFFFFF0H до FFFFFFFFH резервируются для инициализации системы.


Режим системного управления (System Management Mode)

В новых поколениях МП Intel появился еще один режим работы – режим системного управления. Впервые он был реализован в МП 80386SL и i486SL. Начиная с расширенных моделей Intel-486, этот режим стал обязательным элементом архитектуры IA-32. С его помощью прозрачно даже для операционной системы на уровне BIOS реализуются функции энергосбережения.

Режим системного управления предназначен для выполнения некоторых действий с возможностью их полной изоляции от прикладного программного обеспечения и даже от операционной системы. МП переходит в этот режим только аппаратно: по низкому уровню на контакте SMI# или по команде с шины APIC (Pentium+). Никакой программный способ не предусмотрен для перехода в этот режим. МП возвращается из режима системного управления в тот режим, при работе в котором был получен сигнал SMI#. Возврат происходит по команде RSM. Эта команда работает только в режиме системного управления и в других режимах не распознается, генерируя исключение #6 (недействительный код операции).

Когда МП находится в режиме SMM, он выставляет сигнал SMIACT#. Этот сигнал может служить для включения выделенной области физической памяти (System Management RAM), так что память SMRAM можно сделать доступной только для этого режима. При входе в режим SMM МП сохраняет свой контекст в SMRAM (контекст сопроцессора не сохраняется) и передает управление процедуре, называемой обработчиком System Management Interrupt. Состояние МП в этот момент точно определено: регистр EFLAGS обнулен (кроме зарезервированных битов), сегментные регистры содержат селектор 0000, базы сегментов установлены в 00000000, пределы 0FFFFFFFFh.

Следует отметить, что в режиме SMM не предусмотрена работа с прерываниями и особыми случаями: прерывания по IRQ и SMI# замаскированы, пошаговые ловушки, и точки останова отключены, обработка прерывания по NMI откладывается до выхода из режима SMM. Если необходимо обеспечить работу с прерываниями или особыми случаями, то надо инициализировать IDT и разрешить прерывания, выставив флаг IF в регистре EFLAGS. Прерывания по NMI будут разблокированы автоматически после первой же команды IRET.

При возврате из SMM (по инструкции RSM) МП восстанавливает свой контекст из SMRAM. Обработчик может программно внести изменения в образ контекста МП, тогда МП перейдет не в то состояние, в котором произошло SMI.

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

Защищенный режим (Protected Mode)

Защищенный режим – основной режим работы МП. Ключевые особенности защищенного режима: виртуальное адресное пространство, защита и многозадачность. МП может быть переведен в защищенный режим установкой бита 0 (Protect Enable) в регистре CR0. Вернуться в режим реального адреса МП может по сигналу RESET или сбросом бита PE (в Intel-286 недоступно).

Этот режим имеет сложную конструкцию по сравнению с реальным. Логический адрес представляется конструкцией "селектор:смещение". Селектор находится в пределах от 0 до 0FFFFh (на самом деле, селекторов в 4 раза меньше). Смещение, в отличие от реального режима, является 32-разрядным, что позволяет адресовать сегменты размером 4 гигабайт. Логический адрес преобразуется в линейный по следующей схеме:


линейный адрес = база сегмента + смещение


Линейный адрес в дальнейшем выставляется на адресную шину, если не включен режим страничной адресации. В противном случае линейный адрес преобразуется в физический, и только после этого выставляется на адресную шину. Кроме этого, защищённый режим позволяет организовать виртуальную память, достигающую размера до 64 терабайт и зависящую лишь от объёма жёсткого диска (например, тот же файл подкачки в Windows реализует виртуальную память). В защищённом режиме функционируют практически все современные операционные системы.

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

1. проверить, возможно, ли переключиться в защищённый режим;

2. инициализировать таблицы дескрипторов;

3. запретить прерывания (как маскируемые, так и не маскируемые);

4. открыть линию A20;

5. загрузить регистры управления памятью;

6. установить нулевой бит (далее он будет называться PE) регистра CR0;

7. выполнить переход на 32-битный сегмент кода, переопределив регистр CS.

Запрещение прерываний предохраняет нас от перезагрузки. Прерывания делятся как на маскируемые, так и немаскируемые. Чтобы запретить маскируемые прерывания, надо сбросить флаг IF регистра EFLAGS командой cli, разрешение же прерываний выполняется командой sti. Немаскируемые прерывания запрещаются несколько иначе. Для этого существуют два способа: программирование регистров контроллера прерываний (этот способ будет рассмотрен несколько позже) или изменение седьмого бита порта 70h: если бит установлен, то прерывания запрещены, если бит сброшен – прерывания могут выполняться.

Линия A20 – одна из 32 адресных линий. При загрузке компьютера линия A20 закрыта. Это приводит к генерации 20-разрядных адресов (то есть всё адресное пространство получается равным (2^20)=1 мегабайт). Введено это для совместимости с процессором 8086: таким образом, пытаясь записать по линейному адресу 12345678h, мы, на самом деле, запишем по адресу 00045678h, что может привести к совершенно неожиданному результату. Поэтому для полноценного функционирования 32-разрядного приложения линия A20 обязательно должна быть открыта. Осуществляется это установкой бита 1 порта 92h, закрытие линии A20 – сброс этого бита.


Пример.

use16

org 100h

start: ;Мы находимся в реальном режиме

cli ;Запретить маскируемые прерывания

;Запретить немаскируемые прерывания (NMI)

in al, 70h

or al, 80h

out 70h, al

;Открыть линию A20

in al, 92h

or al, 2

out 92h, al

;Переключиться в защищённый режим

mov eax, cr0

or al, 1

mov cr0, eax

;Теперь находимся в защищённом режиме

;Небольшой двойной цикл

mov cx, 20

cycle:

mov ax, cx

mov cx, 0ffffh

loop $

mov cx, ax

loop cycle

;Переключиться в реальный режим

mov eax, cr0

and al, 0feh

mov cr0, eax

;Закрыть линию A20

in al, 92h

and al, 0fdh

out 92h, al

;Разрешить немаскируемые прерывания (NMI)

in al, 70h

and al, 7fh

out 70h, al

;Разрешить маскируемые прерывания

sti ;* ;Мы снова находимся в реальном режиме

ret ;завершить программу


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

Преобразование логического адреса в физический происходит в два этапа. Сначала блок управления сегментами выполняет трансляцию адреса в соответствии с сегментированной моделью памяти, получая 32-битный линейный адрес. Затем блок страничного преобразования выполняет разбиение на страницы, преобразуя 32-битный линейный адрес в 32-битный или 36-битный (P6) физический. МП не предусматривает механизмов запрещения сегментации; с другой стороны, страничная трансляция есть опциональный механизм, и может использоваться либо не использоваться в зависимости от особенностей операционной системы.

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

С каждым сегментом связана особая структура, хранящая информацию о нем: дескриптор. Дескриптор – это 8-байтная единица описательной информации, распознаваемая устройством управления памятью в защищенном режиме, хранящаяся в дескрипторной таблице. Дескриптор сегмента содержит базовый адрес описываемого сегмента, предел сегмента и права доступа к сегменту. В защищенном режиме сегменты могут начинаться с любого линейного адреса (который называется базовым адресом сегмента) и иметь любой предел вплоть до 4 Гбайт.

Дескрипторные таблицы – это массивы памяти переменной длины, содержащие 8-байтные элементы: дескрипторы. Дескрипторная таблица может иметь длину от 8 байт до 64 Кбайт и в каждой таблице может быть до 8192 дескрипторов. Существуют две обязательных дескрипторных таблицы, см. главу 5 – глобальная дескрипторная таблица (Global Descriptor Table - GDT) и дескрипторная таблица прерывания (Interrupt Descriptor Table - IDT), а также множество (вплоть до 8191) необязательных локальных дескрипторных таблиц (Local Descriptor Table - LDT), из которых в каждый момент времени процессору доступна только одна. Расположение дескрипторных таблиц определяется регистрами процессора GDTR, IDTR, LDTR.

GDT содержит дескрипторы, доступные всем задачам в системе. GDT может содержать дескрипторы любых типов: и дескрипторы сегментов, и системные дескрипторы (кроме шлюзов прерываний и ловушек). Первый элемент GDT (с нулевым индексом) не используется. Ему соответствует нуль-селектор, обозначающий "пустой" указатель.

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

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

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

Для вычисления линейного адреса МП выполняет следующие действия см. рис. 8.1.

МП использует селектор сегмента для нахождения дескриптора сегмента. Селектор содержит индекс дескриптора в дескрипторной таблице (Index), бит TI, определяющий, к какой дескрипторной таблице производится обращение (LDT или GDT), а также запрашиваемые права доступа к сегменту (RPL). Если селектор хранится в сегментном регистре, то обращение к дескрипторным таблицам происходит только при загрузке селектора в сегментный регистр, т. к. каждый сегментный регистр хранит соответствующий дескриптор в программно-недоступном ("теневом") регистре-кэше.

МП анализирует дескриптор сегмента, контролируя права доступа (сегмент доступен с текущего уровня привилегий) и предел сегмента (смещение не превышает предел);

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

Если страничная трансляция отключена, то сформированный линейный адрес считается физическим и выставляется на шину процессора для выполнения цикла чтения или записи памяти.





Рис. 8.1. Схема преобразования логического адреса в линейный


Механизм сегментации обеспечивает превосходную защиту, но он не очень удобен для реализации виртуальной памяти (подкачки). В дескрипторе сегмента есть бит присутствия, по нему процессор определяет, находится ли данный сегмент в физической памяти или на внешнем запоминающем устройстве (на винчестере). В последнем случае генерируется исключение #11, обработчик которого может подгрузить сегмент в память. Неудобство заключается в том, что различные сегменты могут иметь различную длину. Этого можно избежать, если механизм подкачки реализовывать на основе страничного преобразования. Особенностью этого преобразования является то, что процессор в этом случае оперирует с блоками физической памяти равной длины (4 Кбайт) – страницами. Страницы не имеют непосредственного отношения к логической структуре программы. Кроме того, в МП подсемейства P6 страничная трансляция обеспечивает 36-битную физическую адресацию памяти (64 Гбайт). Страничное преобразование действует только в защищенном режиме и включается установкой в 1 бита PG в регистре CR0.

В страничном преобразовании участвуют два типа структур: каталоги таблиц (Page Directory) и таблицы страниц (Page Table). Эти структуры состоят из 1024 32-битных элементов. Элементы содержат старшие 20 бит физического адреса адресуемых объектов. Элементы таблицы страниц (Page Table Entry – PTE) адресуют страницы, а элементы каталога таблиц (Page Directory EntryPDE) адресуют таблицы страниц. Старшие 20 бит физического адреса каталога таблиц хранятся в регистре CR3 (Page Directory Base Register – PDBR) (это единственный регистр МП, который содержит физический адрес памяти). Все структуры выровнены по границе страницы, см. рис. 8.2.




Рис. 8.2. Стандартная 2-уровневая схема страничной трансляции

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

Страницы начинаются на границах 4 Кбайт областей памяти, поэтому младшие 12 бит адреса страницы всегда равны нулю. В каталоге таблиц элементы хранят физические адреса таблиц страниц. В таблице страниц элементы хранят физические адреса самих страниц.

В МП Pentium фирма Intel реализовала новую возможность – расширение размера страниц (Page Size Extensio - PSE). PSE позволяет использовать страницы размером 4 Мбайт и одноуровневый механизм страничной трансляции.

В подсемействе P6 шина адреса была расширена до 36 бит. Соответственно, процессоры Pentium Pro, Pentium II, Pentium III и более поздние способны адресовать до 64 Гбайт физической памяти. Эта возможность называется расширением физического адреса (Physical Address Extension – PAE) и доступна только при использовании страничной трансляции.

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

Задача – это "единица измерения" заданий для процессора, которую процессор может выполнять, приостанавливать и осуществлять над ней диспетчеризацию. В качестве задачи может исполняться прикладная программа, сервис операционной системы, ядро операционной системы, обработчик прерывания или исключения и т.п. В защищенном режиме архитектура IA-32 предоставляет механизм для сохранения состояния задачи и переключения с одной задачи на другую. Все команды процессора выполняются в контексте той или иной задачи. Даже самые простые системы должны определить как минимум одну задачу. Более сложные системы могут использовать средства управления задачами для поддержки многозадачных приложений.

Среда задачи состоит из содержимого регистров МП и всего кода с данными в пространстве памяти. МП способен быстро переключаться из одной среды выполнения в другую, имитируя параллельную работу нескольких задач. Для некоторых задач может эмулироваться управление памятью, как у МП 8086. Такое состояние задачи называется режимом виртуального 8086 (Virtual 8086 Mode). О пребывании задачи в данном состоянии сигнализирует бит VM в регистре флагов. При этом задачи виртуального МП 8086 изолированы и защищены, как от друг друга, так и от обычных задач защищенного режима.

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

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

Сегмент состояния задачи хранит состояние регистров (контекст) процессора:

  • состояние сегментных регистров (селекторы сегментов, формирующие адресное пространство задачи);

  • состояние регистров общего назначения;

  • состояние регистра флагов (EFLAGS);

  • указатель очередной команды (EIP);

  • значение регистра CR3 (PDBR);

  • значение регистра LDTR.

В многозадачных системах TSS предоставляет механизм для связывания (вложения) задач.

Каждая задача идентифицируется селектором соответствующего ей TSS. Этот селектор загружается в регистр задачи (Task Register - TR) при переключении на задачу. В теневую часть регистра загружаются базовый адрес, предел и атрибуты TSS. Операционная система может предусматривать для каждой задачи свое линейное адресное пространство (свой набор страниц для страничного преобразования), тогда при переключении задачи загружается и регистр CR3 (PDBR), хранящий адрес каталога таблиц для страничного преобразования.

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

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

  • контроль предела;

  • контроль типа;

  • контроль уровня привилегий;

  • контроль выравнивания;

  • ограничение адресного пространства;

  • ограничение точек входа в процедуры (для шлюзов);

  • ограничение набора команд (привилегированные инструкции).

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

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

Архитектура защиты МП обеспечивает 4 иерархических уровня привилегий, что позволяет ограничить задаче доступ к отдельным сегментам в зависимости от ее текущих привилегий. Привилегии – это свойство (обычно устанавливаемое при проектировании системы), которое определяет, какие компьютерные операции разрешаются в любой момент времени и какие доступы к памяти законны. Привилегии используются для обеспечения безопасности в компьютерной системе. Привилегии реализуются путем присвоения значения от 0 до 3 ключевым объектам, которые опознаются процессором. Значение 0 соответствует наибольшим привилегиям, тогда как значение 3 – наименьшим.

Четыре уровня привилегий можно интерпретировать в виде колец защиты, см. рис. 8.3 [12, 13, 15]. Центр (уровень 0) предназначен для сегментов, содержащих наиболее критичные программы (обычно ядро операционной системы). Внешние кольца предназначены для сегментов с менее критичными программами или данными. Использование всех четырех уровней привилегий не является необходимым. Существующие системы, спроектированные с меньшим количеством уровней, могут просто игнорировать другие допустимые уровни. UNIX и Windows, например, используют только два уровня привилегий: 0 (для ядра системы) и 3 (для всего остального), а OS/2 использует уровни 0 (для ядра системы), 2 (для процедур ввода-вывода) и 3 (для прикладных программ).




Рис. 8.3. Интерпретация уровней привилегий в виде колец защиты

Механизм контроля уровня привилегий микропроцессора оперирует следующими значениями:

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

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

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

Механизм контроля уровня привилегий обычно сравнивает уровень привилегий дескриптора (DPL) с максимальным из двух чисел CPL и RPL. Наименее привилегированный из текущего уровня привилегий и запрашиваемого считается эффективным уровнем привилегий: EPL=max (CPL, RPL).

Контроль привилегий при доступе к данным осуществляется при загрузке селектора в сегментный регистр DS, ES, FS, GS (либо при обращении к памяти, если селектор содержится в коде инструкции). Программа может обратиться к сегменту данных, который находится на том же или более низком уровне привилегий (с учетом RPL), т.е. доступ к данным разрешен, если max(CPL, RPL)<= DPL; в противном случае генерируется нарушение общей защиты.

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

Для передачи управления на обычный сегмент кода его уровень привилегий должен совпадать с текущим уровнем привилегий. Значение RPL должно быть не больше CPL, чтобы не вызывать исключения, но вне зависимости от значения RPL уровень привилегий не изменится: CPL = DPL. Текущий уровень привилегий может измениться при передаче управления через селектор шлюза. Шлюзы бывают четырех типов: шлюз вызова, шлюз задачи, шлюз ловушки и шлюз прерывания (последние два типа не используются в командах перехода и вызова). При передаче управления через селектор шлюза задачи или селектор TSS происходит переключение задач. Одна задача может передать управление другой задаче, при этом контролируется, чтобы объект, через который передается управление, был на том же или более низком уровне привилегий, чем CPL (правило контроля как для сегментов данных).

Кроме того, текущий уровень привилегий задачи влияет на возможность выполнения тех или иных специфических команд (привилегированных инструкций). Кроме привилегированных, существуют инструкции, результат выполнения которых зависит от поля IOPL в регистре флагов (I/O Privilege Levelуровень привилегий ввода-вывода): IN, INS, OUT, OUTS, CLI, STI. Механизм защиты процессора позволяет выполнять эти инструкции, только если задача обладает достаточными привилегиями, т.е. CPL <= IOPL.

Функции страничной трансляции, впервые появившиеся в Intel 386, обеспечивают дополнительные механизмы защиты на уровне страниц. Особенно это удобно при использовании сплошной модели памяти, когда и операционная система, и прикладные программы работают в едином пространстве логических адресов, т.к. защита на уровне страниц может обеспечить разграничение привилегий для страниц операционной системы и прикладных программ. Защита на уровне страниц предоставляет два типа контроля: ограничение адресного пространства (страницы супервизора и страницы пользователя) и ограничение типа доступа (доступ только для чтения и доступ на чтение-запись). Если проверки не проходят, генерируется страничное нарушение (исключение #14).

Ограничение адресного пространства на уровне страниц обеспечивается двумя уровнями привилегий: режим супервизора (уровень 0) и режим пользователя (уровень 1). Режим супервизора соответствует привилегиям на уровне сегментов CPL=0, CPL=1 и CPL=2. В режиме супервизора доступны все страницы. Режим пользователя соответствует привилегиям на уровне сегментов CPL = 3. В режиме пользователя доступны только страницы пользователя. В адресное пространство супервизора попадают страницы, для которых соответствующий элемент таблицы страниц или каталога таблиц содержит бит US=0. В адресное пространство пользователя попадают страницы, для которых и соответствующий элемент таблицы страниц, и соответствующий элемент каталога таблиц содержат бит US=1.

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

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

В табл. 8.1. представлены сводные характеристики режимов IA-32.

Таблица 8.1

Сравнение режимов микропроцессоров IA-32

Характеристика

RM

PM, VM = 0

PM, VM = 1

SMM

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

без дескриптор-ных таблиц

через дескриптор-ную таблицу

без дескриптор-ных таблиц

без дескриптор-ных таблиц

Предел сегментов

64 Кб

Определяет-ся дескрипто-ром

64 Кб

4 Гб

Размер адреса/данных по умолчанию

16 бит

Определяет-ся дескрипто-ром

16 бит

16 бит

Максима-льный объем доступной памяти (виртуальной)

~1 Мб

~64 Тб

~1 Мб

~4 Гб

Защита

нет

да

да

нет

Страничная трансляция

нет

да

да

нет

Многозадач-ность

нет

да

да

нет

Обработка прерываний

таблица векторов

Дескриптор-ная таблица

Дескриптор-ная таблица

нет






Вопросы для самоконтроля

    1. В каких режимах может работать IA-32?

  1. Как формируется физический адрес при сегментной адресации?

  2. Как формируется физический адрес при страничной адресации?

  3. Что такое многозадачность? Какими средствами она поддерживается?

  4. Какие правила на основе привилегий применяются для защиты сегментов кода, стека и данных?







Литература для самостоятельной подготовки по теме:

5, 8, 12, 13, 17.
  1   2   3   4   5   6   7   8   9   ...   16

Похожие:

Архитектура компьютера (Часть 2) Луганск 20 11 удк 004. 031., 004. 032. 8 iconИнструкция по охране труда при проведении работ с лазерными аппаратами
Взамен гост 12 004-79 постановлением Госстандарта от 5 ноября 1990 г. N 2797 утвержден и введен в действие гост 12 004-90
Архитектура компьютера (Часть 2) Луганск 20 11 удк 004. 031., 004. 032. 8 iconМетодические указания к лабораторным работам для студентов экономических специальностей Могилев 2012 удк 004. 42: 004. 43 Ббк 32. 97 Рекомендовано к опубликованию учебно-методическим управлением гу впо «Белорусско-Российский университет»
Методические указания к лабораторным работам для студентов экономических специальностей
Архитектура компьютера (Часть 2) Луганск 20 11 удк 004. 031., 004. 032. 8 iconПроблемы и перспективы павлодар 2008 удк 004: 37. 02
Рекомендовано ученым советом Павлодарского государственного университета им. С. Торайгырова
Архитектура компьютера (Часть 2) Луганск 20 11 удк 004. 031., 004. 032. 8 iconЖ. К. Нурбекова теоретико-методологические основы обучения программированию Павлодар удк 004. 45
Рекомендовано ученым советом Павлодарского государственного университета им. С. Торайгырова
Архитектура компьютера (Часть 2) Луганск 20 11 удк 004. 031., 004. 032. 8 icon0 загальний відділ 004 комп'ютерна наука І технології
...
Архитектура компьютера (Часть 2) Луганск 20 11 удк 004. 031., 004. 032. 8 iconРуководство по эксплуатации ункр. 407629. 004 Рэ
Руководство по эксплуатации предназначено для изучения уровнемеров радиоволновых рду3 ту 4214 032 29421521 08 (далее “уровнемеры”)...
Архитектура компьютера (Часть 2) Луганск 20 11 удк 004. 031., 004. 032. 8 iconОбоснования противопожарных мероприятий к сниП 21-01-97* мдс 21 2001 в развитие сниП 21-01-97* и гост 12 004-91 разработано
В развитие сниП 21-01-97* и гост 12 004-91 разработано методическое пособие по выбору рациональных конструктивных, объемно-планировочных...
Архитектура компьютера (Часть 2) Луганск 20 11 удк 004. 031., 004. 032. 8 icon"Общероссийский классификатор видов экономической деятельности, продукции и услуг" ок 004-93 (ред от 01. 02. 2002) (утв. Постановлением Госстандарта РФ от 06. 08. 1993 n 17) (Части I ii, часть III разделы a c, раздел d (коды 1510000 2420000)) (с изм и доп., вступающими в силу с 01. 01. 2003)
Общероссийский классификатор видов экономической деятельности, продукции и услуг ок 004-93 (ред от 01. 02. 2002) (утв. Постановлением...
Архитектура компьютера (Часть 2) Луганск 20 11 удк 004. 031., 004. 032. 8 iconУчебное пособие Санкт-Петербург 2008 удк 005. 91: 004. 9(075. 8) Ббк 65. 291. 212. 8с51я73
Печатается по решению Редакционно-издательского совета математико-механического факультета
Архитектура компьютера (Часть 2) Луганск 20 11 удк 004. 031., 004. 032. 8 iconГост 12 004-91 Система стандартов безопасности труда
Система стандартов безопасности труда. Пожарная безопасность государственный стандарт СССР гост 12 004-91
Разместите кнопку на своём сайте:
Библиотека


База данных защищена авторским правом ©lib.znate.ru 2014
обратиться к администрации
Библиотека
Главная страница