Последовательность выполнения лабораторной работы. Получить у преподавателя номер варианта

Получить у преподавателя номер варианта.

Условные обозначения переменных:

tn – длительность выполнения микрокоманд в n-й ступени, где
n={1, 2, 3, 4, 5};

К – число команд в потоке

Тср – среднее время выполнения одной команды в конвейере;

Тпр – суммарное время простоя (ожидания) в конвейере.

Задание 1. Определить зависимости Tср (t, К) и Тпр (t, К), где аргумент t - одинаковая длительность выполнения микрокоманд во всех ступенях конвейера, и параметр К берутся из таблицы 5.1 по номеру варианта.

Задание 2. Определить зависимости Tср (К, t) и Тпр (К, t), где аргумент К - число команд в потоке, и параметр t – одинаковая длительность микрокоманды в ступени, берутся из таблицы 5.1 по номеру варианта.

Задание 3. Определить зависимости Tср (К, t5) и Тпр (К, t5), где аргумент К и параметр t5 - длительность пятой ступени, берутся из таблицы 5.1 по номеру варианта.

Задание 4. Определить зависимости Tср (К, t1) и Тпр (К, t1), где аргумент К и параметр t1 - длительность первой ступени, берутся из таблицы 5.1 по номеру варианта.

Задание 5. Определить зависимости Tср (К, tm) и Тпр (К, tm), где аргумент К и параметр tm берутся из таблицы 5.1 по номеру варианта. При этом m берется из набора {2, 3, 4} - номер второй или третьей или четвертой ступени.

Таблица 5.1

Значения параметров для заданий 1 - 3

№ варианта   Задание 1     Задание 2   Задание 3
  Аргумент t, такты Параметр K Аргумент K Параметр t, такты Аргумент K Параметр t5, такты
  1; 3; 5 3; 5; 10 3; 5; 7 1; 3; 7 3; 5; 7 1; 4; 8
  1; 2; 7 3; 5; 10 3; 4; 8 1; 3; 7 3; 4; 8 1; 4; 8
  1; 3; 7 3; 5; 10 3; 5; 9 1; 3; 7 3; 5; 9 1; 4; 8
  2; 4; 8 3; 5; 10 3; 5; 10 1; 3; 7 3; 5; 10 1; 4; 8
  2; 4; 7 3; 5; 10 3; 6; 9 1; 3; 7 3; 6; 9 1; 4; 8
  2; 3; 7 3; 5; 10 3; 6; 10 1; 3; 7 3; 6; 10 1; 4; 8
  2; 3; 8 3; 5; 10 3; 4; 9 1; 3; 7 3; 4; 9 1; 4; 8
  2; 5; 10 3; 5; 10 3; 6; 10 1; 3; 7 3; 6; 10 1; 4; 8
  2; 3; 10 3; 5; 10 4; 6; 10 1; 3; 7 4; 6; 10 1; 4; 8
  1; 4; 7 3; 5; 10 4; 6; 9 1; 3; 7 4; 6; 9 1; 4; 8
  2; 6; 10 3; 5; 10 3; 5; 9 1; 3; 7 3; 5; 9 1; 4; 8
  1; 5; 10 3; 5; 10 4; 6; 8 1; 3; 7 4; 6; 8 1; 4; 8

 

Продолжение таблицы 5.1

Значения параметров для заданий 4 - 5

№ варианта   Задание 4   Задание 5
  Аргумент K Параметр t1, такты Аргумент K Параметр tm, такты
  3; 5; 7 1; 3; 7 3; 5; 7 m=2 1; 4; 8
  3; 4; 8 1; 3; 7 3; 4; 8 m=3 1; 4; 8
  3; 5; 9 1; 3; 7 3; 5; 9 m=4 1; 4; 8
  3; 5; 10 1; 3; 7 3; 5; 10 m=2 1; 4; 8
  3; 6; 9 1; 3; 7 3; 6; 9 m=3 1; 4; 8
  3; 6; 10 1; 3; 7 3; 6; 10 m=4 1; 4; 8
  3; 4; 9 1; 3; 7 3; 4; 9 m=2 1; 4; 8
  3; 6; 10 1; 3; 7 3; 6; 10 m=3 1; 4; 8
  4; 6; 10 1; 3; 7 4; 6; 10 m=4 1; 4; 8
  4; 6; 9 1; 3; 7 4; 6; 9 m=2 1; 4; 8
  3; 5; 9 1; 3; 7 3; 5; 9 m=3 1; 4; 8
  4; 6; 8 1; 3; 7 4; 6; 8 m=4 1; 4; 8

 

Построить графики для среднего времени выполнения одной команды в конвейере и суммарного времени простоя (ожидания) в конвейере.

Содержание отчета о выполненной работе

Отчет должен содержать следующее:

1. Название и цель работы.

2. Исходные данные.

3. Графики зависимостей среднего времени выполнения команды.

4. Выводы об эффективных режимах работы конвейера.

 

Контрольные вопросы

1. Назовите основные методы повышения производительности современных вычислительных систем.

2. Какое количество обрабатывающих устройств необходимо для организации работы конвейера?

3. Как влияет количество команд в последовательности на эффективность работы конвейера?

4. Как влияет изменение длительностей микроопераций в последовательности команд на эффективность работы конвейера?

5. При каком соотношении длительностей микроопераций работа конвейера наиболее эффективна?

6. Как влияет на эффективность работы конвейера изменение длительности первой микрооперации?

7. Как влияет на эффективность работы конвейера изменение длительности последней микрооперации?

8. Как влияет на эффективность работы конвейера изменение длительности одной из средних микроопераций команды?

9. Какой основной прием используется для согласования скоростей работы различных устройств конвейера?

10.Сформулируйте предложения по наиболее эффективной организации работы конвейера с предложенным Вам набором команд.

 

Лабораторная работа №6
Исследование конфликтов в работе конвейера

 

Краткая теория

Цель работы. Изучение влияния различных конфликтов на эффективность конвейерной обработки.

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

1) выборка команд из памяти (по адресу в счётчике команд);

2) декодирование кода операции;

3) выборка операндов из регистров;

4) выполнение операции в АЛУ;

5) запоминание результата в регистре.

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

- все микрокоманды имеют одинаковую длительность;

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

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

1) Структурные, которые возникают из-за занятости отдельных ресурсов (когда аппаратные средства не могут поддерживать выполнение команд в режиме с совмещением);

2) Конфликты по данным, появляющиеся, если выполнение одной команды зависит от результата предыдущей;

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

Все конфликты приводят к приостановке выполнения команды, в которой они возникли (pipeline stall), а также всех следующих за ней до конца конвейера. Эта ситуация называется "конвейерным пузырем" (pipeline bubble). Пузырь проходит по конвейеру, не выполняя никакой работы.

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

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

Add R1, R2 – /сложение двух чисел из регистров R1 и R2/

Sub R3, R1 - /вычитание двух чисел из регистров R3 и R1/

And R4, R1- / логическое умножение/

Or R5, R1 - /логическое сложение/

Xor R6, R1 - /исключающее ИЛИ/.

Все команды, следующие за Add, используют ее результат (который помещен в регистр R1) и должны ожидать завершения ее последней микрооперации. В неймановской машине конфликтов нет, так как команды выполняются строго последовательно. В конвейере из-за совмещения операций последующие команды могут запрашивать результат предыдущей команды, который еще не получен.

Конфликты по данным возможны везде, где имеет место зависимость между командами, и они расположены достаточно близко друг к другу. Причем эти ситуации могут возникать не только при работе с регистрами АЛУ, но и при обращении к одной и той же ячейке памяти.

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

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: