
- •2. Учебно-методический блок
- •2.1 Теоретическая часть
- •Краткая история развития компьютерной техники.
- •2. Ко времени ее реализации должна быть достаточно развита техническая база для реализации идеи в массовом масштабе.
- •3. В практической реализации этой идеи должна быть заинтересована значительная часть общества (должен «созреть» социальный заказ).
- •2. Обобщенная структурная схема компьютера
- •3.Оценка производительности компьютеров
- •4. Классификация и краткий обзор современных компьютеров
- •Суперкомпьютеры
- •Мини-компьютеры
- •Микроконтроллеры
- •5. Формы представления информации в компьютере.
- •5.1. Кодирование в компьютерах числовой информации.
- •Десятичная:
- •Шестнадцатеричная:
- •Двоично-десятичная:
- •5.2. Кодирование в компьютерах символьной (алфавитно-цифровой) информации.
- •5.3 Кодирование в компьютерах звуковой информации.
- •5.4 Кодирование в компьютерах визуальной информации.
- •Основы компьютерной арифметики.
- •1. Операции сложения и вычитания целых чисел.
- •2. Операции с вещественными числами.
- •7. Элементная база компьютера.
- •8. Структура и функционирование cpu.
- •9. Способы адресации информации
- •10. Система прерываний компьютера.
- •Основные понятия.
- •Основные характеристики систем прерывания.
- •4. Классификация систем прерывания.
- •11. Принципы организации системы ввода/вывода в компьютерах.
- •Общие положения
- •3. Ввод/вывод по прерыванию.
- •4. Ввод/вывод с прямым доступом к памяти.
- •12. Конструктив атх рс и архитектура системной платы
- •13. Устройства ввода информации
- •1. Клавиатура
- •2. Мышь.
- •14. Организация оперативных запоминающих
- •1. Общие принципы функционирования
- •2. Тайминги
- •3. Тенденции развития
- •4. Распределение адресного пространства оп пк.
- •2.2 Лабораторный практикум
- •2.3 Методические рекомендации для преподавателей и студентов
- •2.3.1.Методические рекомендации по изучению дисциплины для преподавателя
- •2.3.2. Методические рекомендации для студентов
- •2.3.3. Методические рекомендации для применения активных и интерактивные формы проведения занятий
- •3.Глоссарий
- •Диагностико-контролирующий блок
- •Тест по теме: «Архитектура компьютеров» Вариант №1
- •Тест по теме: «Архитектура пк» Вариант №2
- •Блок наглядно-демонстрационного материала
10. Система прерываний компьютера.
Основные понятия.
Во время выполнения компьютером текущей программы, внутри компьютера, а также во внешней среде, связанной с ним (клавиатура, дисплей, внешняя память, технологические и научно-исследовательские процессы, управляемые компьютером и т.д.) могут возникать события, требующие немедленной реакции на них с его стороны. Реакция компьютера заключается в том, что он прерывает обработку текущей программы и переходит к выполнению некоторой другой программы (подпрограммы, процедуры), специально предназначенной для выполнения требований, запрашиваемых данным событием. Процесс выполнения такой подпрограммы называется обработкой (обслуживанием) данного прерывания, а сама подпрограмма обслуживания прерывания часто называется обработчиком прерывания.
Итак:
Прерыванием называется процесс, обуславливающий реакцию компьютера на некоторое событие, требующее немедленного его вмешательства.
Запрос прерывания – есть сигнал процессору о появлении события, требующего немедленной реакции процессора путем перехода на подпрограмму обслуживания этого события.
Системой прерывания называется комплекс аппаратных и программных
средств, обеспечивающих выявление запросов прерывания и эффективное их обслуживание.
Процесс прерывания схематически иллюстрирован на рис.10.1.
Основными функциями системы прерывания являются следующие.
1. Запоминание состояния процессора (состояния всех его текущих регистров) на момент прерывания текущей программы.
2. Осуществление передачи управления на процедуру обслуживания прерывания.
3. Восстановление состояния процессора после окончания выполнения процедуры обслуживания прерывания.
4. Передача управления на продолжение выполнения текущей программы.
При этом система прерывания должна:
- устанавливать определенный порядок обслуживания запросов прерываний при одновременном их появлении;
- вследствие различной важности устройств, которые могут запрашивать прерывания у компьютера, устанавливать запросам прерывания определенный уровень приоритета, который дает возможность запросу с большим уровнем приоритета прерывать исполнение процедур обслуживания прерывания от устройств с меньшим уровнем приоритета;
- давать возможность пользователю запрещать компьютеру реагировать на запросы прерывания внешних устройств, как всех одновременно, так и по отдельности для каждого устройства (т.е. выполнять так называемое маскирование запросов прерывания).
Рис.10.1 Схема процесса прерывания программ.
Таким образом, после появления запроса прерывания процессор прерывает выполнение текущей программы, автоматически запоминает в стеке адрес возврата (CS и IP), а также содержимое регистра флагов Flags. В стеке может, также, сохранятся содержимое тех регистров, которые могут понадобиться при исполнении процедуры обслуживания прерывания и, следовательно, могут быть искажены. Однако, если содержимое CS, IP и Flags записываются в стек автоматически, то для записи в стек содержимого, требующихся при исполнении процедуры обслуживания прерывания регистров, об этом должен позаботится сам пользователь (процессор ведь не знает, что может потребоваться). Поэтому пользователь должен включить в начале процедуры обслуживания прерывания, команды сохранения в стеке этих регистров, а в конце процедуры – команды восстановления содержимого их, путем считывания из стека.
2. Классификация типов прерывания.
Запросы на прерывание могут возникать как внутри самого процессора, так и со стороны внешней среды (периферийных устройств). Поэтому можно выделить сразу же два класса типов прерываний.
1. Внешние прерывания.
2. Внутренние прерывания.
Схематически, источники прерываний программ, применительно к процессорам семейства Х86 иллюстрированы на рис.10.2.
Рис.10.2 Источники прерываний микропроцессоров семейства Х86.
Здесь: INTi (Interrupt i) – i-ый источник (тип) запроса прерывания от внешних устройств;
NMI (Nonmaskable Interrupt) – немаскируемое прерывание, т.е. прерывание, которое нельзя замаскировать;
INTR (Interrupt) – общий запрос на прерывание процессора;
INTA (Interrupt Acknowledge) – подтверждение процессором получения запроса прерывания и готовность принятия кода типа прерывания.
Внешние прерывания
Внешние прерывания относят к так называемым аппаратным прерываниям, поскольку они вызываются аппаратурой, находящейся вне пределов самого компьютера. Внешние прерывания подразделяются на
а) маскируемые прерывания,
б) немаскируемые прерывания.
Маскируемые прерывания.
Маскируемыми – называются такие прерывания, запросы которых могут
быть выключены из зоны внимания процессора, путем наложения маски
на возможные запросы прерываний.
Индивидуальные прерывания запрещаются или разрешаются кодом маски в контроллерах прерываний, которые в современных процессорах входят в состав микросхемы «южного моста» Chipset.
Маска представляет собой двоичный код, каждый разряд которого соответствует некоторому запросу прерывания. Обычно устройство маскирования делают таким образом, чтобы логическая единица, записанная в разряд маски, запрещала прохождение соответствующего запроса прерывания к процессору, а логический ноль – разрешала. Иллюстрация процесса маскирования запросов прерывания приведена на рис.10.3.
Рис.10.3 Иллюстрация принципа маскирования запросов прерывания.
В то же время, маскируемые прерывания могут быть запрещены или разрешены все вместе одновременно, путем установки или сброса флага IF в регистре флагов процессора, подачей соответствующих команд STI или CLI.
Немаскируемые прерывания.
Запросы немаскируемых прерываний подаются на специально выделенный вход NMI. Они запрещены быть не могут. Источниками запросов таких прерываний являются, например, устройства контроля пропадания напряжения питания или контроля повреждения каких-либо особо важных систем обработки.
Все внешние прерывания асинхронны по отношению к работе процессора, так как они могут появиться в любой момент времени. Наибольшее время реакции, т.е. запаздывания начала обслуживания по отношению к появлению запроса прерывания, может произойти при выполнении команд умножения, деления и арифметического сдвига на много разрядов.
Внутренние прерывания.
Внутренние прерывания образуются внутри компьютера по запросам его отдельных функциональных узлов, или как следствие выполнения некоторых специальных команд INT N. Внутренние прерывания замаскированы быть не могут. Код типа прерываний такого рода формируется автоматически при поступлении соответствующего запроса внутреннего прерывания.
Внутренние прерывания бывают двух типов:
а) особые случаи или исключения;
б) программные прерывания.
Особые случаи или исключения.
Особые случаи или исключения – это прерывания, которые возникают при аномальной ситуации, сложившейся при выполнении конкретной команды и препятствующей нормальному продолжению программы.
К прерываниям – особым случаям (исключениям), относятся, например, такие ситуации:
- ошибка деления (частный случай – деление на 0);
- пошаговое прерывание, которое включается при установке в состояние 1 флага TF в регистре флагов Flags. При этом, после выполнения каждой команды программы, в стеке автоматически запоминается состояние CS, IP, Flags и выводится на экран дисплея состояние всех регистров процессора и части ячеек ОЗУ. После этого процесс выполнения текущей программы останавливается и ожидается следующий запуск программы для выполнения очередного шага;
- переполнение разрядной сетки после выполнения очередной команды;
- неразрешенный код команды;
и.т.п.
Программные прерывания.
Под программными прерываниями понимаются прерывания, инициируемые самой выполняемой программой, а именно, командами типа INT N, где N – номер прерывания в некотором заданном диапазоне.
Действие этих прерываний весьма похожи на вызов подпрограмм (процедур), за исключением того, что передача управления осуществляется не по адресу, указываемому в команде CALL, а по номеру (типу) прерывания, по которому в таблице векторов прерывания находится адрес передачи управления. Кроме того, при программном прерывании автоматически запоминается в стеке состояние регистра флагов Flags. Программные прерывания отличаются от других тем, что они задаются заранее и определены в программе, а не являются случайными по отношению к работе компьютера. Они широко используются при вызове функций DOS и BIOS.