Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Архитектура ЭВМ_старый 24_06.doc
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
2 Мб
Скачать
☆

6.5. Канальные системы ввода/вывода

Дальнейшим развитием идеи прямого доступа являются следующие усовершенствования архитектуры подсистемы ввода-вывода:

  • придание контроллеру ПДП прав процессора;

  • создание в контроллере ПДП с правами процессора локальной памяти.

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

Рис. 6.9. Архитектура канальной системы ввода/вывода

Усовершенствованный модуль ввода/вывода получил на рис. 6.9 название "Канал ввода/вывода". Периферийные устройства ввода/вывода (ПУ) подключены к каналу через блоки управления периферийными устройствами (БУПУ), причём отдельные ПУ могут управляться двумя БУПУ. В локальной памяти канала образуются подканалы управления периферийными устройствами.

Программы, хранящиеся в основной памяти, делятся на две группы: программы для центрального процессора и программы для канала ввода/вывода (канальные программы). Обращение к каналу ввода/вывода происходит из программы для центрального процессора. В этом обращении передаётся сигнал "Внимание" и сообщается минимум информации для организации ввода/вывода каналом. Далее канал начинает выполнять одну из своих канальных программ, а процессор продолжает выполнять свою программу.

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

7. Аппаратно-программные средства для реализации многопрограммных режимов работы

7.1. Система адресации в реальном и защищенном режиме работы эвм и вс на базе микропроцессоров Intel.

Микропроцессоры Intel изначально предназначались для однопрограммных вычислительных систем. В этом режиме используется организация памяти в виде сегментов, и физический адрес ячейки памяти вычисляется на основе базового адреса и смещения. Базовый адрес это адрес начала сегмента памяти, а смещение – относительный адрес ячейки памяти внутри сегмента. При вычислении физического адреса команды адрес сегмента хранится в регистре CS процессора, а смещение – в регистре IP. При вычислении адреса данных базовый адрес хранится в регистре DS, а смещение в одном из регистров ВХ, ВР, SI или DI. Сегментные регистры CS, DS, SS, ES, FS и GS имеют 64-битные описания (дескрипторы), которые в реальном режиме хранят права доступа, адрес начала сегмента (базовый адрес) и длину сегмента. Дескрипторы сегментов доступны только процессору.

Вычисление физического адреса команды показано на рис. 7.1. Базовый адрес (адрес сегмента) из 16-байтного регистра перемещается в арифметико-логическое устройство (АЛУ). Далее он посредством сдвига влево на 4 позиции умножается на 16. Физический адрес получается сложением полученного результата со смещением, хранящимся в 16-битном регистре IP.

CS

15 0

АЛУ

19 3 0

Базовый адрес

Базовый адрес

0

0

0

0

+

IP

15 0

Смещение

АЛУ

19 3 0

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

Рис. 7.1. Вычисление физического адреса команды в реальном режиме

Недостатками такой адресации являются:

  • ограниченное адресное пространство (до 1 мегабайта плюс примерно 64 килобайта старшей области памяти для процессоров старше i80286);

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

Этих недостатков полностью лишена схема адресации памяти, которая используется в защищённом режиме. Защищённый режим предназначен для мультипрограммных систем и предусматривает выделение в общем адресном пространстве индивидуальных (локальных) адресных пространств, выделенных каждому процессу. Общее адресное пространство описывается таблицей GDT (Global Descriptor Table), а локальные адресные пространства – в таблицах LDT (Local Descriptor Table) задач. В таблице GDT хранятся адреса сегментов кода, сегментов данных и системных сегментов, а также адреса входа в различные процедуры и функции.

Адреса таблиц GDT и LDT хранятся в регистрах GDTR и LDTR процессора. Оба эти регистра, как и сегментные регистры, имеют 64-битные дес­крипторы, которые доступны только процессору.

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

  • два младших бита регистра образуют поле уровня привилегий RPL и определяют запрашиваемый уровень привилегий;

  • второй бит выделен под индикатор таблицы сегментов и определяет принадлежность сегмента общему (TI = 0) или локальному (TI = 1) адресному пространству;

  • биты 3 – 15 содержат номер (индекс) сегмента в соответствующей таблице дескрипторов.

Поэтому сегментные регистры в терминах защищённого режима называются селекторами сегментов.

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

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

Схема формирования виртуального адреса команды показана на рис. 7.2. Диспетчер задач переключает операционную систему на выполнение конкретной задачи. В этот момент в регистр TR выбирается её TSS. Исходными данными для расчёта адреса являются данные в видимых частях регистра TR и CS.

Поле LDTR из сегмента TSS определяет индекс дескриптора "Дескриптор_1", содержимое регистра CS – индекс дескриптора "Дескриптор_2".

Операционная система анализирует состояние бита TI и в зависимости от его состояния определяет адрес регистра CS. Если бит TI = 0 то адрес сегмента кода загружается в теневую часть регистра CS из дескриптора "Дескриптор_1". Если бит TI = 1 то сначала по индексу дескриптора TSS (поле LTDR) в таблице GDTR выбирается дескриптор "Дескриптор_1". Он содержит адрес нужной таблицы LDTR. Этот адрес загружается в теневую часть регистра LDTR и выбирает нужную таблицу LDT. Базовый адрес в этом случае загружается в теневую часть регистра CS из дескриптора "Дескриптор_2".

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

Рис. 7.2. Схема образования адреса в защищённом режиме

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

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

7.2. Система адресации для процессоров с сокращенным, длинным и сверхдлинным набором команд.