Опорный конспект лекции фсо пгу 18. 2/07 Министерство образования и науки Республики Казахстан

Вид материалаКонспект
Основные стадии выполнения команды. Рабочий цикл процессора
Код операции
1.2Организация прерываний в ЭВМ
Вектором прерывания
Подобный материал:
1   2   3   4   5   6   7

Основные стадии выполнения команды. Рабочий цикл процессора


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

В общем виде команды, выполняемые процессором, имеют следующий формат:

Код операции

Адресный код

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

Схема рабочего цикла процессора представлена на рисунке.

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

Рабочий цикл начинается с распознавания состояния процессора – «счет» или «ожидание». Далее производится проверка наличия немаскированных прерываний.

В состоянии «ожидание» никакие программы не выполняются – процессор ждет поступления прерывания, после чего управление передается прерывающей программе, переводящей процессор в состояние «счет».

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

При отсутствии прерываний в состоянии «счет» последовательно выполняются этапы рабочего цикла: выборка очередной команды и определение по коду операции ее группы, подготовка операндов (формирование исполнительных адресов и выборка операндов из памяти), обработка операндов в АЛУ и запоминание результата.

На этапе выборки очередной команды образуется согласно естественному порядку адрес следующей за ней команды (продвинутый адрес), при этом счетчик команд инкрементируется.

В процессе выполнения заданной командой операции формируется признак результата операции, используемый командами условного перехода при организации ветвлений в программах.

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

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

Команды ввода-вывода инициируют в канале операцию обмена информацией между ядром ЭВМ (основной памятью) и периферийным устройством.

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



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

1.2Организация прерываний в ЭВМ


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

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

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



Каждое событие, требующее прерывания, сопровождается сигналом, называемым запросами прерывания.

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

Основными функциями системы прерывания являются:
  • запоминание состояния прерываемой программы и осуществление перехода к прерывающей программе
  • восстановление состояния прерванной программы и возврат к ней.

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

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

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

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

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

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

В ОС MS DOS и MS Windows таблица векторов прерываний занимает 1024 байта и располагается по адресу 0000h:0000h. Каждый 4-байтный элемент таблицы соответствует типу прерывания (от 0 до 0FFH) и содержит сегмент и относительный адрес обработчика прерывания данного уровня. Прерывания от 0 до 1FH (самые нижние уровни) используются как прерывания внутренней аппаратуры; MS-DOS использует прерывания от 20Н до 3FH, все остальные прерывания могут использоваться внешней аппаратурой, системными драйверами и прикладными программами.

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

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