Переход к использованию симметричных многопроцессорных систем
Контроллер прерываний (8259А) не предназначен для работы в симметричных многопроцессорных системах. По этой причине начиная с МП Pentium Over Drive (Pentium второго поколения) в системе прерываний используется новый усовершенствованный контроллер прерываний APIC (Advanced Programmable Interrupt Controller Enable). Для локальных запросов прерываний APIC использует индивидуальные линии LINT0 и LINT1 по одной на процессор. Общие (разделяемые) сигналы прерываний поступают к процессорам по интерфейсу APIC. При этомконтроллеры предварительно программируются для определения функций каждого из процессоров по обработке аппаратных прерываний.
Использование механизма защиты программ от взаимных помех
Механизм защиты программ от взаимных помех предусматривает разделение программ по четырем уровням защиты, причем самый нижний уровень защиты предназначен для пользовательских программ. Их защита от взаимных помех обеспечивается операционной системой разделением их адресных пространств и использованием локальных таблиц дескрипторов. Пользовательским программам доступны только сегменты, зафиксированные в их локальных таблицах.
Программы обработки прерываний размещаются на более высоком уровне привилегий. Механизм защиты позволяет использование этих программ только командами перехода с возвратом и только с использованием шлюзов (см. 2.3.Программная модель 32-разрядного микропроцессора).
Кроме этого, механизм защиты позволяет при передачах управления использовать более защищенную процедуру переключения задач.
По этой причине таблица прерываний на каждое прерывание (включая исключения) может содержать:
· дескриптор шлюза прерывания, или
· дескриптор шлюза исключения, или
· дескриптор шлюза задачи.
Максимальное число дескрипторов в таблице – 256.
Структуры шлюзов таблицы прерываний представлены на рис.5.4.
Селектор | Offset (Смещение в сегменте) | Атрибуты | |||||
а. Структура дескриптора шлюза прерывания | |||||||
Селектор | Offset(Смещение в сегменте) | Атрибуты | |||||
б. Структура дескриптора шлюза исключения | |||||||
Селектор | поле не используется | Атрибуты | |||||
с. Структура дескриптора шлюза исключения. | |||||||
Рис.5.4. Структура дескрипторов таблицы прерывания | |||||||
При использовании шлюза прерывания или исключения задается процедура передачи управления с сохранением в стеке адреса возврата и содержимого регистра флагов. По селектору дескриптора шлюза производится обращение к GDT (Глобальной таблице дескрипторов) для определения дескриптора кодового сегмента программы прерывания или исключения, включая проверки по уровням привилегий.
При этом селектор дескриптора шлюза прерывания или исключения записывается в сегментный регистр CSпроцессора, дескриптор сегмента – в регистр дескриптора процессора, ассоциативно связанный с сегментным регистром CS, и уровень привилегий дескриптора – в поле текущего уровня селектора CS.
Отличие процедуры прерывания от процедуры исключения заключается только в том, что в процедуре прерывания после сохранения в стеке содержимого регистра флага процессор сбрасывает бит разрешения прерывания, а в процедуре исключения – не сбрасывает.
При использовании шлюза TSS переход на программу обработки прерывания и возврат производится с применением процедуры переключения программ.
Вопросы и/или темы для самопроверки:
1. Понятие исключения – отказ (fault). Приведите пример.
2. Понятие исключения – ловушка (trap). Приведите пример.
3. Понятие исключения – аварийное завершение (abort). Приведите пример.
4. Особенности работы контроллера прерывания в симметричных многопроцессорных системах.
5. Содержимое строк таблицы прерывания в защищенном режиме.
6. Отличия в процедуре прерывания при использовании дескрипторов ловушки и прерывания.
9-неделя.Лекция 9
Теоретические основы операций ввода/вывода
Организация ввода/вывода – это передача данных между оперативной памятью (ОП) и периферийными устройствами (ПУ).
Управление вводом/выводом относится к нижнему физическому уровню управления средствами вычислительных систем.На базе операций этого уровня реализуются процедуры верхнего уровня управления, например, процедуры команд операционных систем и программных оболочек: сохранить файл, загрузить файл, копировать файл и т.д.
Для каждого типа ПУ используется устройство управления (контроллер, адаптер), алгоритмы работы которого учитывают индивидуальные особенности данного типа ПУ.
Организация управления вводом/выводом связана с решением ряда задач. Решения части из этих задач зависят от физики работы конкретных ПУ и реализуются на уровне обмена физическими сигналами (в определенные моменты времени формируются импульсы тока или напряжения определенной амплитуды и длительности). На этом уровне решаются следующие проблемы:
· запись информации во внутреннюю память ПУ и чтение из нее,
· управление адресацией внутренней памяти ПУ,
· передача информации между ПУ и контроллером и, частично, контроль процесса ввода/вывода.
Решения другой части задач не зависят от физики работы отдельных ПУ и реализуются на уровне обмена логическими сигналами. На этом уровне решаются проблемы:
· задания кода операции и адреса блока данных в ПУ,
· передачи данных между ПУ и ОП,
· синхронизации передачи данных,
· контроля процесса ввода/вывода,
· активизации и окончания работы ПУ.
Для организации ввода/вывода в контроллерах устройств ввода/вывода предусмотрены специальные регистры (основными являются регистр данных RD и регистр управления RU), а в системе команд – команды ввода/вывода.
Управление вводом/выводом на этом уровне может быть реализовано двумя способами:
· с использованием средств процессора.Такой ввод-вывод называется программным,
· с использованием специальных устройств управления (процессоров ввода/вывода, устройств прямого доступа к памяти ПДП). Такой ввод-вывод называется аппаратным (внепроцессорным, с занятием цикла, с прямым доступом к памяти).
Программный ввод/вывод
При программном вводе/выводе контроллерами управляет ПР при помощи программы (драйвера) ввода/вывода.Программы этого типа учитывают конструкцию контроллера и используемого в вычислительной системе ПР и обычно входят в базовую систему программ управления вводом/выводом на физическом уровне (в РС – BIOS). Программы BIOS выполняют роль интерфейса между программами операционных систем и используемой аппаратурой вычислительной системы и обеспечивают переносимость операционных систем между ЭВМ с одинаковыми процессорами.
Синхронизация передачи данных при вводе/выводе
Специфика периферийных устройств заключается в том, что их схемы работают несинхронно с тактом работы процессора и, как правило, являются намного менее быстродействующими по сравнению с ПР и ОП.
RD контроллера по отношению к ПР является быстродействующим регистром, который способен производить прием/передачу данных наравне с внутренними регистрами ПР. С другой стороны, RD осуществляет прием/передачу данных от связанного с ним ПУ с той скоростью и в том порядке, которые обусловлены характеристиками данного ПУ.
Поэтому, моменты появления данных на RD контроллера ПУ при вводе, или готовность ПУ принять новые данные при выводе – непредсказуемы. Определение моментов готовности ПУ принять или передать новые данные и передача данных при условии наступления ожидаемых моментов составляют суть условных программных способов ввода/вывода.
В настоящее время известны два условных способа программного ввода/вывода:
· с проверкой готовности,
· с использованием системы прерывания.
В обоих способах синхронизация передачи данных осуществляется при помощи бита RDY("флага готовности") в специальном программно доступном регистре управления (RU) контроллера ПУ.
Работа RD с использованием бита RDY в процессе ввода или вывода характеризуется чередованием двух фаз:
1. передача данных между RD и ПУ (доступ ПР к RD при этом запрещен);
2. передача данных между RD и ПР (доступ ПУ к RD при этом запрещен).
Закончив свои операции по загрузке RD при вводе или чтению содержимого RD при выводе, ПУ устанавливает бит RDY в состояние 1 - "поднимает флаг готовности". Поднятие флага означает окончание фазы ПУ в работе RD и начало фазы ПР : поднятый флаг разрешает доступ к RD со стороны ПР и запрещает доступ со стороны ПУ.
ПР по окончании своего этапа обмена информацией с RD сбрасывает флаг в нулевое состояние. Сброс флага символизирует окончание фазы ПР и начало фазы ПУ.
Использование системы прерывания при организации ввода/вывода освобождает процессор от непрерывного опроса состояния флага готовности, дает возможность использования процессора в фоновой работе. В этом варианте готовность данных используется для формирования сигнала прерывания фоновой работы и передачи управления программе ввода/вывода с последующим возвратом к фоновой работе.
Рассмотренная процедура передачи данных через буфер (регистр РД) и синхронизации с помощью обоюдно управляемого и тестируемого флага составляет техническую основу всякой передачи данных между устройствами.
Ввод/вывод с использованием системы прерывания
Основное преимущество организации ввода/вывода с использованием системы прерывания заключается в возможности организации фоновой работы, т.е. более эффективное использование функциональных возможностей процессора.
Отличие этого метода организации ввода/вывода заключается в том, что:
· установка бита готовности не проверяется программой процессора, а приводит к формированию сигнала прерывания,
· проверка нарушения тайм-аута производится не программно, а с использованием аппаратных средств процессора или внешних устройств.
В этом варианте программа ввода/вывода делится на части.
Начальная часть программы (передача параметров процедуре ввода/вывода) и заключительная часть исполняются в виде проблемной программы, а программа управления передачей оформляется в виде программы обработки внешнего прерывания.
При использовании программы обработки прерывания возникает ряд проблем. Это передача параметров и сохранение содержимого РОН.
При прерываниях основной контекст программы сохраняется аппаратно, а РОНы – в программе обработки прерывания. Перед выходом из прерывания программа обработки восстанавливает содержимое РОНов. Но фоновая (проблемная) программа может испортить содержимое РОНов, в которых программа управления вводом/выводом хранит текущий адрес оперативной памяти и размер блока вводимых (выводимых) данных. Чтобы этого не случилось, можно или сохранять эти параметры в зарезервированных ячейках оперативной памяти, или, для МП IA-32, в процедуре прерывания использовать механизм переключения задач
Ввод/вывод с использованием устройств прямого доступа к памяти
Изначально прямой доступ к памяти был предназначен для исполнительных устройств обработки данных, т.е. для процессора. Но для более эффективного использования вычислительных средств процессора стали создавать дополнительные, специализированные устройства, ориентированные на выполнение процедур управления операциями ввода/вывода.
В вычислительных системах корпорации CDC используются периферийные процессоры, которые, кроме управления вводом/выводом, могут выполнять ряд вычислительных операций и использоваться для обработки прерываний от внешних устройств. В моделях семейства IBMпериферийные процессоры (каналы) более простые. При выполнении операций ввода/вывода они даже для простейших вычислений через систему прерываний используют вычислительные возможности центрального процессора.
В моделях PC IA используют не процессоры, а простейшие устройства ПДП для управления вводом/выводом. Обычно это стандартные устройства управления вводом/выводом на одну операцию. Обычно они рассчитаны на работу с широким кругом периферийных устройств.
Функции процессора в передаче данных с использованием ПДП сводятся к инсталляции устройства и анализу корректности завершения передачи данных.
В этой фазе процессор производит загрузку регистра адреса начальным адресом области ввода ОП, загрузку регистра счетчика передаваемых слов и включает ПДП в работу установкой бита "Пуск" регистра управления RU в единичное состояние.
На этом этап инсталляции ПДП заканчивается, и процессор переключается на выполнение фоновых программ. Одновременно с работой процессора производится операция ввода данных устройством ПДП с занятием циклов процессора.
После активизации устройства ввода/вывода с контроллером ПДП, через определенное время устройство записывает в регистр данных RD передаваемые данные (слово) и устанавливает бит готовности RU в единичное состояние.
Бит готовности запускает процедуру внепроцессорной передачи (передачу с занятием цикла процессора):
· ПУ в очередном цикле процессора по шинам арбитража выставляет запрос шин интерфейса для передачи данных в следующем цикле,
· Процессор уступает шины передачи данных на следующий цикл устройству ПДП, выигравшему арбитражный запрос на занятие цикла процессора.
В следующем цикле шин устройство ПДП вместо процессора занимает шины интерфейса, задавая код операции (для ввода – записать), данные из регистра RD,, адрес ячейки ОП из регистра RAи сигнал начала цикла передачи.
Контроллер оперативной памяти принимает команду ПДП, выполняет запись переданных данных по заданному адресу ОП и выставляет сигнал окончания операции.
По этому сигналу схемы контроллера ПДП производят:
· продвижение адреса данных в регистре адреса ,
· коррекцию счетчика передаваемых данных
· сброс бита готовности в регистре управления (RU),
При значении счетчика> 0, ПДП формирует новые данные и повторяет цикл внепроцессорной передачи.
При значении счетчика= 0 или обнаружении нештатной ситуации, устройство ПДП формирует и передает в процессор сигнал прерывания.
Таким образом, ввод/вывод данных с использованием внепроцессорных передач начинается с программы процессора по настройке устройства ПДП, а заканчивается программой процессора по анализу корректности окончания операции ввода/вывода.
Вопросы и/или темы для самопроверки:
1. Определение операции ввода/вывода.
2. Определение программного ввода/вывода.
3. Ввод/вывод с проверкой готовности.
4. Ввод/вывод с использованием системы прерывания.
5. Основные особенности организации ввода/вывода с использованием системы прерывания.
6. Процедура прямого доступа к памяти.
7. 4. Процедура занятия цикла процессора.
8. 5. Действия контроллера ПДП по завершению цикла ПДП.
9. 6. Окончание процедуры ввода-вывода.
10 -неделя.Лекция 10
Дата добавления: 2015-08-14; просмотров: 629;