Курс лекций по компьютерной геометрии и графике
  256Компьютерная графикаКГиГТема № 5. Использование функций BIOS для работы с видеоадаптерами

Тема № 5 Использование функций BIOS для работы с видеоадаптерами

Страницы: 1 2 3

Страница 1

5.1 Прерывания

Концепция прерываний и связанная с ней концепция исключительных ситуаций составляют фундамент конструкции процессоров Intel-80x86. Это очень мощные идеи, позаимствованные от больших ЭВМ. Программно-аппаратное обеспечение, поддерживающее прерывания, дает возможность писать более качественные программы с меньшими затратами сил. Намереваясь управлять видеосистемой или другими устройствами компьютера необходимо понимать принципы работы прерываний. В частности, надо знать о многочисленных возможных конфликтных ситуациях, как их выявить и устранить. Без прерываний невозможно понять работу резидентных программ или драйверов устройств.

Прерывания - это сигналы, заставляющие центральный процессор компьютера приостановить выполнение текущей работы и перейти на выполнение программы, называемой обработчиком прерываний (Interrupt handler). Переход этот осуществляется за малое время с помощью специально разработанных аппаратных средств. Обработчик прерываний определяет причину прерывания, выполняет запланированные действия, после чего возвращает управление приостановленному процессу. Обычно прерывания вызываются событиями внешними по отношению к центральному процессору и требующему немедленных действий. К таким событиям относятся:

  • Завершение операции ввода/вывода;
  • Обнаружение аппаратного сбоя;
  • Катастрофы (отказ питания).

Для обеспечения эффективного обслуживания прерываний большинство современных процессоров поддерживают механизм типов или уровней прерывания. Любому типу обычно соответствует ячейка в памяти, называемая вектором прерывания, который определяет место положения программы обработчика прерываний данного типа. Такая система ускоряет обработку прерываний, т.к. у компьютера есть возможность непосредственной передачи управления соответствующей программе. Отпадает необходимость в центральной программе, которая определяла бы источник прерываний, затрачивая на это драгоценные машинные циклы. Концепция типов прерываний позволяет, к тому же, назначать прерыванию приоритет, чтобы в случае одновременного возникновения нескольких прерываний, наиболее важное могло быть обработано в первую очередь. Процессоры компьютеров, которые поддерживают систему прерываний, должны иметь средства для блокирования прерываний во время выполнения критических участков программы, центральный процессор может блокировать прерывания избирательно или глобально, последнее происходит чаще. Пока идёт обслуживание прерывания, центральный процессор блокирует все остальные прерывания того же или более низких уровней до тех пор, пока программа активного обработчика не завершится. В то же время, если происходит выполнение программы обработчика прерываний и возникает прерывание с более высоким приоритетом, то первая программа будет приостановлена. Семейство процессоров Intel-80x86 поддерживает 256 уровней приоритетных прерываний. Они вызываются тремя типами прерываний:
1. Внутренние аппаратные прерывания;
2. Внешние аппаратные прерывания;
3. Программные прерывания.

Внутренние аппаратные прерывания, например, попытка деления на ноль.

Внешние аппаратные прерывания инициируются контроллерами периферийного оборудования или сопроцессорами.

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

5.2 Программные прерывания

Любая программа может инициировать синхронное программное прерывание с помощью выполнения команды INT. Операционная система MS DOS пользуется для ввода данных со своими модулями и прикладными программами прерывания в диапазоне от 20H до 3FH, например: доступ к диспетчеру функций MS DOS осуществляется с помощью прерывания 21H. Программы BIOS, хранящиеся в ПЗУ и прикладные программы IBM - совместимых компьютеров используют другие прерывания с меньшими или большими прерываниями. Например: прерывание 10H ПЗУ BIOS используется для обслуживания драйвера дисплея; прерывание 42H - используется BIOS для обслуживания дисплея, если установлен видеоадаптер EGA, прерывание 43H - содержит таблицы символов для графических адаптеров EGA, MCGA, VGA.

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

Страницы: 1 2 3

Рекламный блок

Информационный блок