- •3.Внешняя память Назначение. Классификация
- •Внутренняя память Оперативная память
- •Постоянная память
- •Внешняя память Различные виды носителей информации, их характеристики
- •5.3 Прерывание
- •Шаги которые выполн.Привыполнение прерыв.
- •Приоритеты бывают 2 вида:
- •5.4. Алгоритм выполнения команды int Шаги которые выполн.Привыполнение прерыв.
- •4.4. Особенности обработки аппаратных прерываний
- •5.2. Системные ресурсы. Понятие интерфейса. Назначение контролера
- •5 )Назначается высокоскоростного канал dma
- •6)Адрес контроллера
- •7)Адрес dram,куда данные должны перейти
- •2.4 Драйвер
- •2.5.Средства контроля и диагностики
- •6.6. Аппаратно-программные средства контроля. Post
- •6.4.Аппаратные средства контроля. Код Хемминга.
- •6.5. Аппаратные средства контроля. Crt.
- •3.6 Импульсный бп,структура,отличия.
- •Ключевой
- •7.1 Мониторы
- •7.1.3 Плазменный
5.3 Прерывание
Прерывание-приостановка выполнения текущей программы и вызов программы обрабатывающей данные прерывания по завершению программы управления передаётся приостановленной программе
INT XX-команда при которой процессор реализов.прерывания
п
рерывание
программные(синхронные) аппаратные(асинхронные)
системные маскируемые
программные немаскируемые
Немаскируемые-такие прерывание невыполненные, которых приводит к отказу системы (DRAM,регистр памяти, конденсатор)
Стек-память для временного хранения состояние процессора в точку возврата (Lifo и Fifo в IBM-Lifo)
Маскируемые-те которые можно замаскировать (запретить) используются для организации ввода\вывода.
Шаги которые выполн.Привыполнение прерыв.
1)Появления на шине управления сигналов NMI (не маскир),INTK (маскир) для аппаратных.Для программных INT XX
2)В стеке по адресу SS:SP сохраняется текущее состояние процессора (точка возврата)
3)По номеру XX команды INT-XX определяет элемент (адреса 0000.XX.4) таблицы векторов прерывания в котором находится (4б) программы обрабатывающее данное прерывание.
4)Логический адрес программы загруж в регистры процессора CS:IP и начинается выполняется программа обработки прерывания до появления команды RET.
Таблицы векторов прерывания-В. Оп в начале 0400:0000.Адрес элемент прерывания номера умножить 4 (2h*4=8)
5)По команде RETI из стека в по адресу SS:SP в регистры процессора возвращаются прерванной программы ( точка возврата) и продолжает выполнятся основная программа
Приоритеты бывают 2 вида:
1)Фиксируемый приоритет-(каждое прерывания строго определенный приоритет 0-наивышим 7-низший)
Недостаток-прерывания с наименьшим приоритетом может быть необработаная
2)Циклический приоритет-(приоритет сдвигается после выполнения очередного прерывания)
5.4. Алгоритм выполнения команды int Шаги которые выполн.Привыполнение прерыв.
1)Появления на шине управления сигналов NMI (не маскир),INTK (маскир) для аппаратных.Для программных INT XX
2)В стеке по адресу SS:SP сохраняется текущее состояние процессора (точка возврата)
3)По номеру XX команды INT-XX определяет элемент (адреса 0000.XX.4) таблицы векторов прерывания в котором находится (4б) программы обрабатывающее данное прерывание.
4)Логический адрес программы загруж в регистры процессора CS:IP и начинается выполняется программа обработки прерывания до появления команды RET.
Таблицы векторов прерывания-В. Оп в начале 0400:0000.Адрес элемент прерывания номера умножить 4 (2h*4=8)
5)По команде RETI из стека в по адресу SS:SP в регистры процессора возвращаются прерванной программы ( точка возврата) и продолжает выполнятся основная программа
4.4. Особенности обработки аппаратных прерываний
Аппаратные прерывания вырабатываются устройствами компьютера, как правило, при завершении ими операций обмена данными или при изменении состояния. В зависимости от типа устройства обработчик прерывания может выполнять те или иные функции. Например, по прерыванию таймера соответствующий обработчик увеличивает содержимое счетчика, расположенного в оперативной памяти. По содержимому этого счетчика программы могут определить текущее время.
В отличие от программных прерываний, вызываемых запланировано программой или драйвером, аппаратные прерывания всегда происходят асинхронно по отношению к выполняющимся программам. Кроме того, может возникнуть одновременно сразу несколько прерываний!
Для того чтобы система "не растерялась", решая какое прерывание обслуживать в первую очередь, существует специальная схема приоритетов. Каждому прерыванию назначается свой приоритет. Если происходит одновременно несколько прерываний, система отдает предпочтение самому высокоприоритетному, откладывая на время обработку остальных прерываний.
Система приоритетов реализована на двух микросхемах Intel 8259 (или аналогичных). Каждая микросхема является контроллером прерывания и обслуживает до восьми приоритетов. Микросхемы можно объединять (каскадировать) для увеличения количества уровней приоритетов в системе.
Уровни приоритетов обозначаются сокращенно IRQ0 - IRQ15 .
В компьютере типа IBM PC/XT была установлена только одна микросхема контроллера прерывания. Приоритеты линейно зависели от номера уровня прерывания. Прерывание IRQ0 соответствовало самому высокому приоритету, за ним шли прерывания IRQ1 , IRQ2 , IRQ3 и так далее.
Прерывание IRQ2 в компьютерах IBM PC/XT было зарезервировано для дальнейшего расширения системы. В компьютерах IBM PC/AT прерывание IRQ2 стало использоваться для каскадирования двух контроллеров прерывания 8259. Добавленные приоритетные уровни прерываний IRQ8 - IRQ15 в этих компьютерах располагаются по приоритету между прерываниями IRQ1 и IRQ3 .
Приведем список аппаратных прерываний, расположенных в порядке убывания приоритета:
Номер |
Описание |
8 |
IRQ0 - прерывание интервального таймера, возникает 18,2 раза в секунду |
9 |
IRQ1 - прерывание от клавиатуры |
A |
IRQ2 - используется для каскадирования аппаратных прерываний |
70 |
IRQ8 - прерывание от часов реального времени |
71 |
IRQ9 - прерывание от контроллера EGA |
72 |
IRQ10 - зарезервировано |
73 |
IRQ11 - зарезервировано |
74 |
IRQ12 - зарезервировано |
75 |
IRQ13 - прерывание от арифметического сопроцессора |
76 |
IRQ14 - прерывание от контроллера жесткого диска |
77 |
IRQ15 - зарезервировано |
B |
IRQ3 - прерывание асинхронного порта COM2 |
C |
IRQ4 - прерывание асинхронного порта COM1 |
D |
IRQ5 - прерывание от контроллера жесткого диска (только в компьютерах IBM PC/XT) |
E |
IRQ6 - прерывание генерируется контроллером НГМД |
F |
IRQ7 - прерывание принтера |
Из этого списка видно, что самый высокий приоритет у прерываний от интервального таймера, затем идет прерывание от клавиатуры. Наименьший приоритет имеет прерывание принтера.
Для управления схемами приоритетов необходимо знать внутреннее устройство контроллера прерываний 8259.
Поступающие прерывания запоминаются в регистре запроса на прерывание IRR. Каждый бит из восьми в этом регистре соответствует своему прерыванию.
Перед выдачей в процессор запроса на прерывание проверяется содержимое восьмибитового регистра маски прерываний IMR. Если прерывание данного уровня не замаскировано, то запрос на прерывание выдается.
Наиболее интересными с точки зрения программирования контроллера прерываний являются регистры маски прерываний IMR и управляющий регистр прерываний.
В компьютерах IBM PC/XT регистр маски прерываний имеет адрес 21h, управляющий регистр прерываний - 20h. В компьютерах IBM PC/AT первый контроллер 8259 имеет такие же адреса, что и в IBM PC/XT. Регистр маски прерываний второго контроллера имеет адрес A1h, управляющий регистр прерываний - адрес A0h.
Разряды регистра маски прерываний соответствуют номерам IRQ. Для того чтобы замаскировать аппаратное прерывание какого-либо уровня, надо записать в регистр маски байт масок. В этом байте следует установить в 1 те биты, которые соответствуют маскируемым прерываниям . Например, для маскирования прерываний от НГМД в порт 21h надо записать двоичное число 01000000.
Существует несколько зарезервированных за микропроцессором прерываний. Они возникают при обнаружении оборудованием процессора некорректных ситуаций в программе пользователя. Такие перывания называются ИСКЛЮЧЕНИЯМИ.
Исключения делятся на:
ОТКАЗЫ (faults) - выявляются и обслуживаются перед выполнением команды. Они могут иметь место в виртуальной системе памяти, когда процессор обращается к несуществующим странице или сегменту. В процессе обработки такого исключения операционная система обращается к странице или сегменту на диске, а микропроцессор перезапускает команду;
ЛОВУШКИ (traps) - прерывания возникающие непосредственно после выполнения команды автоматически или после выполнения соответствующей команде INT;
ВЫХОДЫ ИЗ ПРОЦЕССА (aborts) - возникают при обнаружении крупных, неисправимых ощибок в системных таблицах или оборудовании.
ОШИБКА ДЕЛЕНИЯ (0h) генерируется сразу после выполнения команд деления DIV и IDIV, если формат частного превышает формат получателя или в случае деления на 0.
ПОШАГОВОЕ ВЫПОЛНЕНИЕ (1h) вырабатывается если установлен флаг трассировки TF, после выполнения каждой каманды, кроме команд изменяющих содержимое сегментных регистров. Используется при отладке. Управление битом трассировки вазможно косвенным образом, поместив регистр флагов в стек и после модификации бита 8 возвратив на место.
ПРЕРЫВАНИЕ КОНТРОЛЬНОЙ ТОЧКИ (3h) по существу является программным прерыванием, но в отличии от остальных вызавается однобайтовой камандой INT3, что делает ее более удобной при подстановке в отлаживаемую программу особенно при работе в кодах.
ПЕРЕПОЛНЕНИЕ (4h) генерируется по однобайтовой команде INTO, если установлен флаг переполнения OF при выполнении сложения или вычитания.
