Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Раздел 4 МП ЭВС.doc
Скачиваний:
35
Добавлен:
06.12.2018
Размер:
683.01 Кб
Скачать

Исключительные ситуации

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

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

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

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

    1. Механизм обработки прерываний

При появлении запроса на прерывание микропроцессор, после завершения выполнения текущей команды программы, анализирует допустимость (разрешенность и приоритетность) данного вида прерывания. Если прерывание разрешено, микропроцессор выполняет следующие действия: 1) запоминание в стековой памяти текущего состояния регистров микропроцессора, 2) выполнение подпрограммы обработки прерывания, 3) восстановление состояния регистров микропроцессора и возврат к выполнению прерванной программы.

Тема 4.5. Сопроцессоры

      1. Общие сведения и технические характеристики. Форматы команд и обрабатываемых данных. Система команд арифметического сопроцессора

      2. Структура арифметического сопроцессора

    1. Общие сведения и технические характеристики. Форматы команд и обрабатываемых данных. Система команд арифметического сопроцессора

Блок вычислений с плавающей точкой (Floating Point Unit, FPU) или арифметический сопроцессор – функционально самостоятельный модуль, который вплоть до микропроцессора INTEL486 размещался в отдельной микросхеме. В микропроцессорах, начиная с INTEL486DX математический сопроцессор встроенный.

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

Сопроцессор INTEL 8087 может обрабатывать данные, представленные в следующих форматах:

  1. целые двоичные числа

15

0

знак

двоичный код

31

30

0

знак

двоичный код

63

62

0

знак

двоичный код

2. упакованные двоично-десятичные числа

79

72

0

знак

0000000

d17 d16 d15 d14 d13 d12 d11 d10 d9 d8 d7 d6 d5 d4 d3 d2 d1 d0

3. двоичные числа с плавающей точкой

31

30

23

22

0

знак

порядок

мантисса

63

62

52

51

0

знак

порядок

мантисса

79

78

64

63

0

знак

порядок

мантисса

Комбинацию микропроцессора и сопроцессора рассматривают как единый процессор с расширенной системой команд и типами данных. Совмещение микропроцессора INTEL 8086 с сопроцессором INTEL 8087 сводится к простым соединениям соответствующих выводов без использования дополнительных интегральных схем. В сопроцессоре INTEL 8087 отсутствует механизм выборки команд, поэтому он функционирует совместно с основным микропроцессором и под управлением последнего.

Система команд сопроцессора расширяет набор команд основного микропроцессора и включает следующие группы команд:

  1. команды передачи данных,

  2. арифметические команды:

    1. сравнение,

    2. анализ,

    3. сложение,

    4. вычитание,

    5. умножение,

    6. деление;

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

  4. команды трансцендентных функций:

    1. tg,

    2. arctg,

    3. 2x-1,

    4. Ylog2X и т.д.;

  5. команды управления:

    1. команды инициализации сопроцессора,

    2. команды разрешения прерываний,

    3. команды загрузки управляющего слова,

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

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

    6. команды записи содержимого всех регистров сопроцессора в память,

команды установки в ноль флагов исключительных ситуаций и т.д.