Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ответы 2008-2009.doc
Скачиваний:
20
Добавлен:
17.09.2019
Размер:
4.36 Mб
Скачать

81. Прерывания: фаза прерывания, поток данных, классы прерываний.

Фаза прерывания

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

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

Последовательность действий:

  1. сохранение текущего состояния процесса;

  2. переход к процедуре обслуживания прерывания.

*Если прерывания разрешены и имеется запрос прерывания.

Классы прерываний

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

Аппаратные – генерируются специальными средствами контроля работоспособности аппаратуры при обнаружении сбоев (пропадание питания, ошибка контроля памяти по четности и т.п.).

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

Прерывная по таймеру – генерируются таймером процессора и используются ОС для переходов в многозадачном режиме.

Поток данных в цикле прерывания

В ПС вместо текущего адреса прерванной программы загружается начальный адрес подпрограммы обработки прерывания.

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

82. Арифметический конвейер: назначение, принципы реализации. Понятие суперковейера.

Синоним: магистральный конвейер.

В устройствах, выполняющих содержательную обработку информации (АЛУ).

Магистральные конвейерные линии могут быть:

    • в нескольких экземплярах в одном процессоре;

    • ориентированы (каждая) на определенные операции с данными.

Пример арифметического конвейера

Конвейер с дополнительными функциональными устройствами

Функциональное устройство

Задержка

Скорость повторения

Целочисленный блок

1

1

Блок сложения с ПТ

4

2

Блок умножения

6

3

Блок деления

15

15


Конвейер с дополнительными функциональными устройствами

Проблемы «длинного» конвейера

    • структурные конфликты (выдача команд приостанавливается):

      • устройства не являются полностью конвейерными;

      • устройства имеют разные времена выполнения (количество записей в регистровый файл в каждом такте может быть больше 1);

    • конфликты WAW (т.к. команды больше не поступают на ступень WB в порядке их выдачи для выполнения); конфликты типа WAR невозможны (чтение регистров осуществляется на ступени ID);

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

Временная диаграмма синхронного конвейера (k = 5)

Команда

Такты

1

2

3

4

5

6

7

8

9

10

MULTD F0,F4,F6

IF

ID

EX11

EX12

EX13

EX21

EX22

EX23

MA

WB

. . .

IF

ID

EX

MA

WB

ADDD F2,F4,F6

IF

ID

EX11

EX12

EX21

EX22

MA

WB

. . .

IF

ID

EX

MA

WB

. . .

IF

ID

EX

MA

WB

LD F8,0(R2)

IF

ID

EX

MA

WB

Суперконвейер

Общие сведения

Superpipeline (1988 г.).

Увеличение количества ступеней конвейера путем:

    • добавления новых ступеней;

    • дробления имеющихся ступеней на несколько простых подступеней.

Основные требования:

    • возможность реализации операции в каждой подступени наиболее простыми техническими средствами (с минимальными затратами времени);

    • одинаковость задержки во всех подступенях.

Практическая реализация

Первая реализация – процессор MIPS R4000 (1991 г.):

(MIPSMicroprocessor without Interlocked Pipeline Stages (микропроцессор без блокировок в конвейере))

    • разбиение этапов выборки команды и выборки операнда;

    • введение в конвейер дополнительного этапа проверки тега.

Микропроцессор

Кол-во ступеней

MIPS R4400

8

UltraSPARC I

9

Pentium III

10

Itanium

10

UltraSPARC III

14

Pentium 4

20

Недостатки суперконвейера

    • усугубление проблем, характерных для любого конвейера:

      • возрастает вероятность конфликтов;

      • высокий штраф за ошибку предсказания перехода;

    • усложнение логики взаимодействия ступеней конвейера.