Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект по периферийным устройствам.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
11.84 Mб
Скачать

1.3.2.2. Прямой доступ к памяти

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

Данный вид доступа выполняется специальным устройством (контроллером DMA (Direct Memory Access)) и выполняется без участия центрального процессора. Использование этого режима значительно ускоряет пересылку данных, так как исключает пересылки данных в процессор и обратно.

1.3.2.3. Прерывания.

Прерывания – специальные сигналы, посылаемые процессору устройством или программой, когда требуется его немедленное вмешательство.

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

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

В зависимости от источника прерывания делятся на три больших класса:

  • внешние;

  • внутренние;

  • программные.

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

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

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

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

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

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

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

Механизм прерываний некоторой аппаратной платформы может сочетать векторный и опрашиваемый типы прерываний. Типичным примером такой реализации является платформа на основе процессоров Intel Pentium. Шины PCI, ISA, EISA и MCА, используемый в этой платформе в качестве шин подключения ВУ, поддерживают механизм опрашиваемых прерываний. Контролеры периферийных устройств выставляют на шину не вектор прерываний, а сигнал запроса прерывания определенного уровня IRQ. Но в данном процессоре система прерываний является векторной. Вектор прерываний в процессор предоставляет контролер прерываний, который отображает поступающий от шины сигнал IRQ на определенный номер вектора.

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

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