Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пособие по АрхЭВМ для 27 гр.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
319.49 Кб
Скачать

3. Рабочий цикл процессора

Код операции

Адресный код

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

Выделяют четыре группы команд: основные (арифметические, логические и пересылочные операции); передачи управления; ввода-вывода; системные (устанавливающие состояние процессора).

Н а рис 5 представлен рабочий цикл процессора.

Рис. 5. Рабочий цикл процессора

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

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

Рис. 6. Прерывание программы

Начальный адрес прерывающей программы называется вектором прерывания. В общем случае, каждому запросу прерывания соответствует свой вектор прерывания, способный инициировать выполнение соответствующей прерывающей программы. Векторы прерывания обычно находятся в специально выделенных фиксированных ячейках памяти – таблице векторов прерывания. Таблица векторов прерываний располагается в ОП по нулевому адресу. Номер прерывания передается контроллером прерывания в ЦП в виде 8-разрядного числа.

В таблице векторов прерываний для каждого прерывания всегда указывается адрес начала сегмента кода (этот адрес представляет собой 16-тиразрядное число), который будет записан в регистре CS процессора, и смещение первой команды программы-обработчика прерывания относительно начала сегмента кода этой программы-обработчика. Это смещение тоже представляет собой 16-тиразрядное число и будет записано в регистре IP процессора. Таким образом, таблица векторов прерываний состоит из 4-байтных элементов, соответствующих каждому типу прерывания. Соответственно, в ОП эта таблица будет занимать 28 4 байта = 1024 байта.

Когда контроллер прерываний посылает в ЦП сигнал (электрический) через вывод INTR, он должно также поместить тип прерывания в виде 8-разрядного числа на системную магистраль для передачи в ЦП. Процессор, умножив это число на 4, определяет адрес используемого вектора прерывания и перейдет на обслуживание прерывания.

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

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

Прерывания от 0 до 31 (самые нижние уровни) используются как прерывания внутренней аппаратуры (прерывания BIOS). Прерывания от 32 до 63 используются как прерывания MS-DOS. Все остальные прерывания применяются внешней аппаратурой, системными драйверами и прикладными программами.

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