Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
много полезного по асвт / ЛЕКЦИИ_по_АСВТ.doc
Скачиваний:
149
Добавлен:
10.05.2014
Размер:
585.73 Кб
Скачать

Кэширование адреса

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

Методы кэширования для операционной памяти: сквозная запись и обратная запись применяются и для кэширования дисков. Кэш память диска заполняется не только требуемым сектором, но и в соответствии с принципом чтения вперед с несколькими последующими секторами. Если кэш память полностью заполнена, то по алгоритму LRUзаменяется та информация, к которой был минимум обращений. Если в кэш хранитьFATтаблицу и древо каталогов, то поиск файлов выполняется очень эффективно даже для винчестеров большой емкости. Архитектура кэш памяти использует полностью ассоциативное изображение. Это значит, что кэш может быть использован для работы с любым количеством страниц. На плате кэш контроллеров для жестких дисков находится собственно кэш память на 30 контактныхSIMMмодулях и процессорIntel 80/286илиMotorola 68000. Размер кэш памяти до 16 Мбайт.

Системы прерывания Прерывания и исключения

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

  • аппаратные - маскируемые и немаскируемые;

  • вызываемые электрическими сигналами на входах микропроцессора;

  • программные выполняемые по команде INT.

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

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

Немаскируемые прерывания выполняются независимо от состояния флага IFпо сигналуNMI. Высокий уровень на этом входе вызовет прерывание с вектором 2 который выполняется так же, как и маскируемые. Его обработка не может прерываться под действием сигнала на входеNMIдо выполнения командыIRET.

Исключения делятся на отказы, ловушки и аварийные завершения.

Отказ - это исключение, которое обнаруживается и обслуживается до выполнения инструкции вызывающей ошибку.После обслуживания этого исключения управление возвращается на ту же инструкцию, включая все префиксы, которая вызвала отказ.

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

Аварийное завершение - это исключение, которое не позволяет точно установить инструкцию его вызывающую.Оно используется для сообщения о серьезной ошибки такой как аппаратная ошибка или повреждение системных таблиц. Набор и обработка исключений реального и защищенного режимов различны. Под исключения зарезервированы векторы 0?31 в таблице прерываний. Однако вРСчасть из них перекрывается системами прерыванийBIOSиDOS. Процедура, обслуживающая прерывания и исключения определяется по таблице с помощью номера 8 битного указателя прерывания. Указатель для программных прерываний задается командой. Для маскируемых вводится от внешнего контроллера во втором циклеINTA. Немаскируемый имеет фиксированный вектор, а исключения генерируют и передают вектор внутри микропроцессора. Каждому номеру от 0 до 255 соответствует элемент в таблице дескрипторов прерываний, в реальном режиме таблица прерываний содержит двойные слова -дальние адреса обслуживающих процедур. И после сброса располагаются, начиная с нулевых адресов командойLIDTможно изменять ее положение в пределах первого Мбайта. А размер ее может быть уменьшен до007F. При попытке обслуживания прерывания с номером, выходящим за заданные параметры таблицы, генерируется исключение типа 8. В защищенном режимеIDTсодержит 8 байтные дескрипторы прерываний, может иметь размер от 32 до 256 дескрипторов и располагается в любом месте физической памяти. Анализ условия обслуживания прерываний и исключений выполняется в следующем порядке (по убыванию приоритета):

  • проверка на исключение (ловушка) отладки (типа 1) по выполненной инструкции (пошаговый режим через флаг TF или точка останова по данным через регистр отладки);

  • проверка на исключение (отказ) отладки (типа 1) по следующей инструкции (точа останова по инструкции через регистр отладки);

  • немаскируемые прерывания;

  • маскируемые прерывания;

  • проверка на исключения (отказ) сегментации (типа 11 или 13) при выборе следующей инструкции;

  • проверка на исключение (отказ) страницы (типа 14) при выборке следующей инструкции;

  • проверка на отказ (декодирование) следующей инструкции (типа 6 или 13);

  • для операции WAIT проверка TS и MP (исключение 7, если они в единице);

  • для операции ESCAPE (к математическому сопроцессору) проверка EM и TS (исключение 7, если они в единице);

  • для операции WAIT или ESCAPE проверка на исключение 16 от сопроцессора;

  • проверка на отказ сегментации (исключения 11, 12, 13) и страницы (исключения 14) для операндов используемых в инструкции.

Двойной отказ - это исключение 8 возникает, когда при обработке исключения связанного с сегментацией (типа 10?13) микропроцессор обнаруживает исключения отличные от отказа страницы (типа 14). Также двойной отказ возникает, если при отработке исключения отказа страницы (типа 14) обнаруживается исключения другого типа, в этом случае тоже выполняется исключение 8. Если во время обслуживания исключения отказа страницы произойдет еще один отказ страницы, то происходит отключение микропроцессора. Во время отключения никакие новые инструкции не выполняются. Из этого состояния микропроцессор можно вывести только аппаратным сигналом NMI, оставляя его в защищенном режиме или сигналом RESET переводящим процессор в реальный режим. При отработке исключений в защищенном режиме микропроцессор сохраняет в стеке слово, когда ошибки, если оно отлично от нуля то оно содержит селектор дескриптора, с которым связана ошибка.