Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Konyukhova_arhitektura

.pdf
Скачиваний:
36
Добавлен:
12.03.2016
Размер:
6.11 Mб
Скачать

облегчает поиск их причины. Остальные параметры защиты хранятся в байте доступа (Access Rights) дескриптора, структура которого представлена на рис. 34.

7

6

5

4

3

2

1

0

P

DPL

S

 

TYPE

 

A

Рис. 34. Формат байта доступа дескриптора

Специальный бит присутствия Р указывает, где размещён искомый сегмент – в основной памяти ВМ (Р = 1) или на диске (Р = 0).

Бит доступа А фиксирует каждое обращение к сегменту.

Бит S кодирует назначение и способ использования дескриптора. При S = 0 дескрипторы являются системными. Они используются для обращения к системным сегментам TSS, LDT или являются шлюзами для задания разрешённых точек входа в защищённые программы ОС. Дескрипторы несистемных сегментов кода, данных и стека имеют бит S = 1.

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

Права, которыми может быть помечен несистемный дескриптор, ограничивают множество операций, которые можно производить

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

Поле привилегий DPL (Descriptor Privilege Level) задаёт разре-

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

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

90

Уровни привилегий (PL) удобно представлять в виде колец защиты: уровень привилегий PL = 0 отводится для ядра ОС, PL = 1 – утилитам ОС, PL = 2 – служебным программам ОС, системам управления базами данных и др., PL = 3 – пользовательским программам.

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

0

1

2

3

Рис. 35. Обращения в пределах колец защиты и между ними:

0, 1, 2,3 – уровни защиты; – данные; – код; → (× ) – разрешённый (запрещённый) переход при межсегментных передачах

управления; (× ) – разрешённый (запрещённый) переход при доступе к данным

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

91

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

Передача управления в защищённом режиме осуществляется командами CALL, JMP, INT, RET, IRET, а также механизмами исключений и прерываний. При выполнении внутрисегментного перехода осуществляется только проверка границы перехода. При исполнении команд межсегментного перехода выполняется проверка привилегированности кодового сегмента назначения. Если межсегментный переход осуществляется в пределах одного кольца защиты, то доступ к вызываемому сегменту разрешён.

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

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

Шлюзы вызова – это специальные дескрипторы, которые определяют разрешённые точки входа в защищённые процедуры более высокого уровня. Благодаря шлюзам вызова, пользовательские программы получают от ОС только те обслуживания, которые ОС разрешает оказывать пользовательским программам. По существу, шлюзы вызова не являются дескрипторами, но их удобно размещать в дескрипторных таблицах. При использовании шлюзов вызова передача управления всегда осуществляется косвенно. Вызывающая программа обращается к шлюзу вызова, а он определяет точку входа в вызы-

92

ваемой процедуре. 32-разрядный дескриптор шлюза вызова имеет следующий формат: байт доступа, счётчик слов (1 байт), селектор сегмента назначения (1 байт) и смещение (1 байт).

Селектор сегмента назначения содержит адрес дескриптора кодового сегмента назначения, который (дескриптор) также хранится

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

вразрешённой точке.

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

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

6.4. Аппаратные средства поддержки многозадачности

В структуре процессоров Pentium имеются средства поддержки многозадачного режима, с помощью которых реализуется защита и быстрое переключение задач [2]: специальная структура данных, организованная в виде сегмента состояния задачи TSS, дескриптор сегмента TSS, дескриптор шлюза задачи, 16-разрядный регистр TR (Task Register) и связанный с ним программно недоступный теневой 64-разрядный регистр TRт.

Переключение задачи сходно с вызовом процедуры, но требует сохранения большего количества информации о состоянии процессора. Содержимое регистров процессора, участвующих в выполнении задачи, называется средой задачи. Для каждой задачи создаётся собственный сегмент TSS, который фактически характеризует состояние виртуального процессора задачи в многозадачной системе. Выполнение задач процессора осуществляется в соответствии с планом и в порядке, определяемом ОС. При переключении задач среда выполняемой задачи переписывается в сегмент TSS этой задачи (на этот сегмент указывает регистр текущей задачи TRт) – (стрелка 1 на рис. 36). После этого в регистр TR помещается селектор нового сегмента TSS (стрелка 2 на рис. 36), и в регистры процессора из сегмента TSS вызываемой задачи загружается содержимое её среды (стрелка 3 на

93

рис. 36). Выполнение программы новой задачи продолжается с команды, адрес которой указан в регистре EIP новой задачи, а не с самого начала. Указанные операции реализуются автоматически, с помощью аппаратных средств процессора. При этом в стеке, в отличие от вызова подпрограмм, никакой информации не сохраняется, управление передаётся полностью в среду выполняемой задачи. Схема переключения задач представлена на рис. 36 [20].

Длительность процедуры переключения задач составляет 200 тактов.

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

Основным назначением механизма переключения задач является организация очередных переходов между выполняемыми программами. Переключение программ может производиться командами JMP и CALL типа FAR (межсегментные переходы), командами вызова прерываний (INT n) или командой IRET, а также аппаратными прерываниями и ловушками.

Оперативная

память

Задача А

 

Задача В

TSS

2

TSS

задачи А

 

задачи В

 

 

 

 

 

1

 

3

 

Процессор

2

Программно видимые

 

TR

регистры процессора

 

 

 

 

 

 

 

 

 

Рис. 36. Схема переключения задач

При выполнении межсегментных переходов в защищённом режиме в регистре EIP содержится смещение (адрес команды внутри сегмента), а в регистре CS может находиться адрес либо дескриптора сегмента, либо шлюза дескриптора сегмента, а также дескриптора TSS или дескриптора шлюза TSS.

94

Сегмент TSS определяется одноимённым сегментным дескриптором, который может находиться только в глобальной дескрипторной таблице GDT. Этот дескриптор, помимо адреса, содержит ещё указание размера и уровня привилегий сегмента TSS. Выбор дескриптора TSS текущей задачи в таблице GDT осуществляется с помощью селектора, загружаемого в программно доступный регистр TR. Для уменьшения времени обращения к операндам сегмента TSS дескриптор TSS текущей задачи после выборки из таблицы GDT запоминается в программно недоступном регистре TRт. Содержимое этого регистра автоматически обновляется процессором при смене задачи. При инициализации системы с помощью специальной команды LTR в регистр TR загружается селектор исходной задачи, а в процессе работы его содержимое может изменяться.

Ссегментом TSS нельзя явно проводить операции записи, чтения

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

ипредел, что и программно недоступный системный сегмент.

6.5. Перспективы развития процессоров

Согласно [2], самым существенным фактором, влияющим на архитектурные решения современных процессоров, является постоянное совершенствование технологии производства ИС. Как следствие – рост уровня интеграции, уменьшение задержек в вентилях и связях, снижение энергопотребления при переключении вентиля. В целом с ростом уровня интеграции увеличиваются ресурсы на кристалле и повышается тактовая частота работы микросхем, что позволяет повышать производительность процессоров. Первое направление связано с увеличением объёма внутренней кэш-памяти и совершенствованием способов её организации. Второе – с реализацией

впроцессорах принципов конвейеризации и параллельной обработки

внескольких конвейерах на разных стадиях выборки и выполнения команд.

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

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

95

несвязанных команд программы из памяти и параллельном запуске их на исполнение (например, процессоры Pentium, PowerPC, Alpha, SPARC и др.).

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

идр.).

3.Использование аппаратных средств, обеспечивающих векторную обработку данных.

Современный процессор – это 64-разрядный суперконвейерный, суперскалярный процессор с RISC-операционным ядром и большим числом дополнительных блоков, реализующий динамическое исполнение команд. Для эффективной обработки данных мультимедиа

играфики система команд современных процессоров расширяется за счёт специализированных команд мультимедийной обработки: например, команд расширений MMX, SSE, SSE2 в процессорах компа-

нии «Intel»; ActiVec – «IBM», «Motorola»; VIS – «SPARC»; 3DNow! – «AMD».

Для унификации структур обработки данных в структуры некоторых современных процессоров включают специальные преобразователи исходных кодов команд во внутренние машинные команды

«исполнительного процессора» (например, сложных CISC-команд

вRISC-команды в процессорах Pentium, AMD или VLIW-команды

впроцессоре Crusoe).

Как уже упоминалось ранее, масштабные исследования по созданию процессорных элементов и компьютеров в целом ведутся с использованием принципиально иной элементной базы: биполярных молекул, молекул ДНК, квантовых кубитов и света.

Вопросы для самопроверки

1.В чём заключаются архитектурные особенности процессоров

Pentium?

2.Что входит в состав прикладной и системной моделей процессоров Pentium? Какие команды составляют систему команд процессоров Pentium? Назовите режимы адресации, поддерживаемые процессорами Pentium.

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

96

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

5.Перечислите средства поддержки многозадачности процессоров Pentium. Поясните схему переключения задач. Что такое сегмент задачи TSS? Что называется средой задачи?

6.Назовите основные направления развития процессоров. Какие тенденции можно выделить в развитии архитектур современных процессоров?

7.ПАМЯТЬ. ОРГАНИЗАЦИЯ ПАМЯТИ

Память – одна из наиболее важных подсистем вычислительных машин. В первую очередь от памяти зависят функциональные возможности вычислительной машины как средства обработки данных. Организация и характеристики памяти существенно влияют на общетехнические показатели вычислительных машин: производительность, стоимость, надежность [2, 6, 7].

7.1. Иерархическая организация памяти

Совокупность устройств, обеспечивающих запись, хранение и чтение информации в вычислительной машине, образует систему памяти [2]. Основными характеристиками памяти являются [2, 3, 5]:

1)информационная ёмкость;

2)время доступа к информации – промежуток времени между началом обращения процессора за данными и моментом их появления на выходе памяти;

3)стоимость хранения единицы информации (бита).

Эти параметры находятся в противоречии между собой. Например, большая информационная ёмкость не сочетается с высоким быстродействием. А быстродействие, в свою очередь, не сочетается с низкой стоимостью. Поэтому системы памяти обычно имеют ие-

рархическую многоступенчатую организацию с использованием различных устройств.

97

В иерархии памяти можно выделить следующие пять уровней [5]:

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

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

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

4)специализированные виды памяти – характерны для некоторых

специфических архитектур (видеопамять, многопортовая память

ит.д.);

5)внешняя память – позволяет хранить большие объёмы информации; реализуется обычно на основе устройств с подвижным носителем информации (магнитные и оптические диски, магнитные ленты

идр.).

Внекоторых источниках [8] накопители на магнитных лентах

иоптических дисках относят еще к одному уровню – архивной па-

мяти.

Чем ниже уровень иерархии, тем выше быстродействие, но при этом также возрастает стоимость запоминающего элемента. На отдельных этапах решения какой-либо задачи в вычислительном процессе задействована относительно небольшая доля команд данных соответствующей программы. В процессе работы эту часть информации требуется обновлять. Это свойство и позволяет использовать в вычислительных системах устройства памяти с различным быстродействием. Выбор информационного объёма устройств памяти и организации обмена между ними проводятся в целях оптимизации соотношения стоимости к быстродействию всей системы памяти [2].

Далее рассмотрим типичные сигналы простейшего запоминающего устройства и разновидности современных запоминающих устройств (ЗУ).

98

7.2. Классификация запоминающих устройств

Условное обозначение простейшего ЗУ и его типовые сигналы представлены на рис. 37 [5]. Обозначение M (Memory) – устройство памяти.

A – адрес, разрядность которого n определяется числом ячеек памяти, а также является номером ячейки, к которой идёт обращение:

, где N – количество ячеек устройства памяти.

n

A

М

 

 

 

 

 

 

m

 

 

DI

DO

m

 

 

 

 

R/W

 

 

 

 

 

 

 

 

 

 

 

 

 

 

CS

 

 

 

 

 

 

 

 

 

Рис. 37. Условное обозначение и типовые сигналы простейшего запоминающего устройства

CS (Chip Select) – сигнал, который разрешает или запрещает работу данной микросхемы.

R/W – сигнал, задающий выполняемую операцию (при единичном значении – чтение (Read), при нулевом – запись (Write)).

DI (Data Input) и DO (Data Output) – шины входных и выходных данных, разрядность которых m определяется разрядностью ячеек запоминающего устройства. В некоторых устройствах памяти эти линии объединены (обозначаются как DIO).

Вначале подаётся адрес, чтобы последующие операции не коснулись какой-либо ячейки, кроме выбранной. Затем разрешается работа микросхемы сигналом CS и подаётся сигнал чтения/записи R/W. В зависимости от вида операции, на выходе DO формируются считываемые данные или на ходе DI готовятся данные для записи.

Классифицировать ЗУ можно по различным признакам. Рассмотрим наиболее важные из них [5].

По способу доступа ЗУ делятся на адресные, последовательные

иассоциативные.

1.При адресном доступе код на адресных входах указывает ячейку, с которой ведётся обмен информацией. В момент обращения все ячейки адресной памяти равнодоступны. Другие виды памяти часто строят на основе адресной памяти с соответствующими модификациями. В свою очередь, адресные ЗУ по организации записи де-

лятся на оперативные – ОЗУ (RAM – Random Access Memory) и постоянные – ПЗУ (ROM – Read Only Memory).

99

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]