Работа с внешними устройствами — КиберПедия 

Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...

Археология об основании Рима: Новые раскопки проясняют и такой острый дискуссионный вопрос, как дата самого возникновения Рима...

Работа с внешними устройствами

2022-10-04 24
Работа с внешними устройствами 0.00 из 5.00 0 оценок
Заказать работу

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

Все стрелки на схеме - это шины; некоторые из них находятся на системной шине, а некоторые - на шинах, связывающих устройства с процессором.

Процессор взаимодействует с внешними устройствами через порты ввода/ вывода (не путайте их с портами LPT, PS/2 и т. д.) и через спроецированные на память регистры устройств. Это взаимодействие основано на том, что процессор выводит какие-либо данные в порты либо в определённые ячейки памяти, на которые спроецированы регистры устройств. На рисунке посредником между процессором и устройствами выступает контроллер ввода-вывода (это общий случай; иногда посредником между процессором и внешним устройством может выступать какой-либо другой контроллер).

 

Но как процессор «узнаёт» о том, что устройство обработало данные или получило новые данные от пользователя? Если внешнее устройство хочет что-то «сказать» процессору (например, что оно обработало запрос или приняло от пользователя какие-либо данные), то оно через контроллер прерываний передаёт процессору сигнал о прерывании.

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

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

Процессоры семейства х86 и совместимые с ними могут порождать 256 прерываний. Адреса всех 256 функций обработки прерываний (так называемые векторы прерываний) хранятся в специальной таблице векторов прерываний.

Прерывания могут быть программными и аппаратными.

Аппаратные прерывания происходят по запросу периферийных устройств и называются IRQ (InterruptRequests). Архитектура шины ISA ограничивает их число до 16 (IRQ0 — IRQ15).

К аппаратным прерываниям относятся также специальные прерывания, которые генерирует сам процессор. Такие прерывания используются для обработки «исключительных ситуаций» — неверный операнд, неизвестная команда, переполнение и другие непредвиденные операции, когда процессор сбит с толку и не знает, что делать. Эти прерывания имеют свои обозначения и никак не относятся к зарезервированным для периферии прерываниям IRQ0-IRQ15.

Все аппаратные прерывания можно разделить на две группы: прерывания, которые можно игнорировать («замаскировать») и те, которые игнорировать нельзя. Первые называются маскируемыми (maskable), а вторые — немаскируемыми (non-maskable). Аппаратные прерывания могут быть отключены путем установки флага IF регистра признаков в 0. Единственное прерывание, которое отключить нельзя — это NMI, немаскируемое прерывание, генерирующееся при сбое памяти, сбое в питании процессора и подобных форсмажорных обстоятельствах.

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

 

Регистр флагов

Если после выполнения команды произошла ошибка, то, следовательно, все дальнейшие команды будут ошибочны, что может привести к нежелательным последствиям. Для того чтобы указать программе о результате выполнения очередной команды, процессор должен сохранить результат успешности выполнения команды в некотором регистре. Этот регистр называется регистром флагов EFLAGS (FLAGS, RFLAGS). Регистр флагов является ключевым в работе процессора: он управляет основополагающими аспектами его работы.

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

Таблица Регистр флагов

Номер бита Название Описание

0  CF  Флаг переноса

1  -      Зарезервирован (всегда установлен)

2  PF   Флаг чётности

3  -      Зарезервирован (всегда сброшен)

4  AF  Дополнительный флаг переноса

5  -      Зарезервирован (всегда сброшен)

6  ZF  Флаг нулевого результата

7  SF   Флаг знака результата

8   TF     Флаг трассировки

9   IF           Флаг разрешения прерывания

10  DF   Флаг направления

11 OF  Флаг переполнения

12 IOPL Текущий уровень привилегий ввода/вывода

13                

14 NT  Флаг вложенности задачи

15 -      Зарезервирован (всегда сброшен)

16 RF  Флаг возобновления

17 VM Флаг виртуального процессора 8086

18 AC Флаг проверки выравнивания адреса

19 VIF Флаг виртуального прерывания

20 VIP Флаг отложенного виртуального прерывания

21 ID Флаг разрешения идентификации процессора

22-31(63) - Зарезервированы (всегда сброшены)

 



Поделиться с друзьями:

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

Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...

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

Архитектура электронного правительства: Единая архитектура – это методологический подход при создании системы управления государства, который строится...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.009 с.