Точные прерывания в процессорах с параллельным выполнением команд

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

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

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

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

Для этого результаты каждого этапа, кроме последнего, сохраняются во вспомогательных элементах памяти (регистрах), расположенных между этапами:

Результат выборки — закодированная команда — сохраняется в регистре, расположенном между этапами выборки и декодирования

Результат декодирования — тип операции, значения операндов, адрес результата — сохраняются в регистрах между этапами декодирования и исполнения

Результаты исполнения — новое значение счетчика команд для условного перехода, вычисленный в АЛУ результат арифметической операции и так далее — сохраняются в регистрах между этапами исполнения и записи результатов

На последнем этапе результаты и так записываются в регистры и/или память, поэтому никакие вспомогательные регистры не нужны.

Вот так работает получившийся конвейер:

Такт СК Выборка Декодирование Исполнение Запись_результатов

1 0x00 Команда1 - - -

2 0x04 Команда2 Команда1 - -

3 0x08 Команда3 Команда2 Команда1 -

4 0x0C Команда4 Команда3 Команда2 Команда1

5 0x10 Команда5 Команда4 Команда3 Команда2

Векторные прерывания

Чтобы значительно уменьшить время реакции на внешние события, используются многоуровневые или, что то же самое, векторные прерывания. В векторных прерываниях КАЖДОМУ источнику прерывания соответствует СВОЙ, вполне определенный, адрес процедуры обработки прерывания, который принято называть вектором прерывания.

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

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

Вопрос 16: Режимы работы процессора: мультипрограммный, пакетный, разделения времени, реального времени.

Основные режимы работы мультипрограммной ЭВМ

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

1. пакетный ;

2. разделения времени ;

3. реального времени.

Пакетный режим

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

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

kПС = TОПР/TМПР

где ТОПР и ТМПР - время выполнения пакета задач при однопрограммном и мультипрограммном режиме работы соответственно.

В рассмотренном в лекции 12 примере работы мультипрограммной ЭВМ kПС =36/24=1,5 при Км=2 и Точные прерывания в процессорах с параллельным выполнением команд - student2.ru при Км = 3.

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

Основные этапы обработки пакета задач:

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

2. Передача программ и исходных данных на ЭВМ, которая будет обрабатывать их в пакетном режиме.

3. Формирование пакета задач из переданных программ по одному из эвристических алгоритмов.

4. Обработка пакета задач на мультипрограммной ЭВМ.

Особенности пакетного режима работы:

1. Пользователь отстранен от непосредственного доступа к ЭВМ.

2. Результаты работы пользователь получает через определенное (иногда достаточно большое) время одновременно для всех задач пакета.

3. Увеличивается время отладки программ.

4. Существенно возрастает пропускная способность ЭВМ по сравнению с последовательным решением задач пакета.

Таким образом, пакетный режим наиболее эффективен при обработке больших отлаженных программ.

Наши рекомендации