Основной алгоритм работы процессора.
Работа процессора фон-неймановской машины основана на регистрах двух видов.[1] 1. счетчик команд (счетчик адреса команд) – содержит адрес следующей команды, которую следует выполнить. 2. регистр команд (хранит команду, которая в данный момент выполняется.) Основной алгоритм:
То есть при выполнении каждой команды вычислительная машина проделывает определенные стандартные действия: 1. Согласно содержимому счетчика адреса команд считывается очередная команда программы. Ее код заносится на хранение в регистр команд. 2. Счетчик команд автоматически изменяется так, чтобы в нем содержался адрес следующей команды. 3. Считанная в регистр команд операция расшифровывается, извлекаются необходимые данные и над ними в АЛУ выполняются требуемые действия. Таким образом, УУ непрерывно повторяет алгоритм, состоящий из трех шагов и называющийся машинным циклом: ü Выбрать ü Расшифровать ü Выполнить
Замечание: этот алгоритм позволяет шан за шагом выполнить линейную команду. А для изменения порядка выполнения команд в программе используются операции условного (например IF) и безусловного (GOTO) переходов. Поверку условия делает АЛУ (вернее анализ). И еще – по способу задания адреса, на который надо перейти инструкции делятся на абсолютные (адрес задается явно) относительные (указывается смещение, которое прибавляется к текущему содержимому счетчика команд). Система команд процессора. Несмотря на большое количество разновидностей ЭВМ, на самом низком (машинном) уровне системы их команд имеют много общего. Любая ЭВМ обязательно содержит следующие группы команд. 1. Команды передачи данных, копирующие информацию из одного места в другое
2. Арифметические операции, 3. Логические операции, позволяющие компьютеру производить анализ получаемой информации. После выполнения такой команды часто следует условный переход. Простейшими примерами команд рассматриваемой группы могут служить сравнение, а также логические операции И, ИЛИ, НЕ. Кроме того, к ним часто добавляют анализ отдельных битов кода, их сброс и установку. 4. Сдвиги двоичного кода влево и вправо. Это очень важные операции. Так как в некоторых случаях умножение и деление вообще может быть заменено сдвигом (действительно, если дописать или убрать ноль справа, фактически сдвигая десятичную запись числа, то можно увеличить или уменьшить его в 10 раз.) 5. Команды ввода и вывода информации для обмена с внешними устройствами. 6. Команды управления, к которым, прежде всего, следует отнести все виды переходов
Структура команд процессора Любая команда ЭВМ обычно состоит из двух частей – операционной и адресной. Операционная часть (КОП-код операции) указывает, какое действие необходимо выполнить с информацией. Адресная часть описывает, где используемая информация хранится и куда поместить результат. У некоторых команд управления работой машины адресная часть может отсутствовать, например в команде останова. Операционная часть имеется всегда. Код операции можно представить себе как некоторый условный номер в общем списке системы команд. В основном этот список построен в соответствии с определенными внутренними закономерностями, а они не всегда очевидны.
Обработка прерываний Важную роль в работе современного МП играют прерывания. Они нарушают естественный ход выполнения программы для осуществления неотложных действий, связанных например с реакцией на щелчок мыши или сбой в цепи электропитания. Прерывание - временный останов выполнения одной программы в целях оперативного выполнения другой, в данный момент более важной (приоритетной) программы. Это процедуры, которые процессор вызывает для выполнения определенной задачи.
Прерывания возникают при работе компьютера постоянно [4]. Достаточно сказать, что все процедуры ввода-вывода информации выполняются по прерываниям, Контроллер прерываний обслуживает процедуры прерывания, принимает запрос на прерывание от внешних устройств, определяет уровень приоритета этого запроса и выдает сигнал прерывания в МП. МП, получив этот сигнал, приостанавливает выполнение текущей программы и переходит к выполнению специальной программы обслуживания того прерывания, которое запросило внешнее устройство. После завершения программы обслуживания восстанавливается выполнение прерванной программы. Контроллер прерываний является программируемым События, вызывающие прерывания можно разделить на фатальные и нефатальные. На фатальные (неотвратимо наступающие) процессро может реагировать единственным образом: прекратить исполнение программы, проанализировать событие и принять соответствующие меры (чаще всего сообщить причину прерывания пользователю и ждать его реакции.) Однако часто можно с остановкой программы повременить: запомнить, что прерывание было и продолжить исполнять программу. Например сложение с переполнением разрядной сетки – фатальное, остановка неизбежна, а попытка вывода на принтер, не готовый к приему информации, может быть отложена (с сохранением этой информации). Прерывания делятся на: 1. аппаратные – инициируются аппаратурой, например сигналом от принтера, нажатием клавиши на клавиатуре и т.п. 2. логические – возникают при нестандартных ситуациях в работе МП (например переполнение регистров, деление на ноль) 3. программные – инициируются программами, то есть появляются когда одна программа хочет получить сервис от другой, например доступ к определенным аппаратным средствам. Каждое прерывание имеет уникальный номер и с ним связана определенная подпрограмма. Для IBM совместимых ПК существует команда прерывания INT с разными номерами. INT – это одна из инструкций процессора. Аппаратные прерывания возникают аппаратно и не требуют каких-либо команд в тексте прерываемой программы. Прерывание вообще может произойти между двумя командами программы.
Схема обработки прерываний:
Аппаратные прерывания - низшего уровня, их обслуживает BIOS. Программные и логические – обрабатываются операционной системой (верхний уровень).
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|