Порядок выполнения лабораторной работы. 1. Знакомство со всеми разделами руководства

Подготовка к работе

1. Знакомство со всеми разделами руководства.

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

3. Исследование заданной мультиконвейерной структуры.

4. Оформление отчета.

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

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

В лабораторной работе необходимо исследовать следующие режимы функционирования мультиконвейерной архитектуры.

По результатам экспериментов определить:

а) зависимость средней длительности Т1 СР выполнения команд в конвейерах (такты/команды):

Т1 СР = f1(K, NKK, NDK),

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

NKK - число коротких конвейеров,

NDK - число длинных конвейеров;

б) зависимость средней длительности Т2 СР выполнения команд в конвейерах

Т2 СР = f2(K, NKK, NDK, РКД),

где РКД – число коротких команд, стоящих между длинными командами в потоке;

в) число М выполненных тактов на поток команд.

Задание 1. Определить зависимости М и T2 ср , где аргумент К - число команд в потоке выбирается по варианту из таблицы 7.1.

Параметры: число коротких конвейеров NKK =1; длинных конвейеров нет - NDK =0.

Задание 2. Определить зависимости М и T2 ср , где аргумент К - число команд в потоке выбирается по варианту из таблицы 7.1.

Длинных конвейеров нет.

Параметр: число коротких конвейеров из таблицы 7.1.

Задание 3. Определить зависимости М и T2 ср , где аргумент К - число команд в потоке выбирается по варианту из таблицы 7.1.

Длинный конвейер один - NDK =1. Промежуток РКД =1 - длинная команда стоит после каждой короткой команды.

Параметр: число коротких конвейеров берется из таблицы 7.1.

Задание 4. Определить зависимости М и T2 ср , где аргумент РКД – промежуток между длинными и короткими командами в потоке, и параметры: число коротких конвейеров NKK, число длинных конвейеров NDK и число команд К в потоке, берутся по варианту из таблицы 7.1.

Задание 5. Определить зависимости М и T2 ср , где аргумент К -число команд в потоке выбирается по варианту из таблицы 7.1.

Короткий конвейер один, NKK =1. Промежуток РКД =1 - длинная команда стоит после каждой короткой команды,

Параметр: число длинных конвейеров NDK берется из таблицы 7.1.

Таблица 7.1

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

№ варианта Задание 1 Задание 2 NDK=0
    Аргумент K Параметр   Аргумент K Параметр
NKK   NDK NKK  
  100 – 500 Шаг=100     100 – 500 Шаг=100 2; 3; 5
  100 – 500 Шаг=100     100 – 500 Шаг=100 2; 4; 6
  100 – 500 Шаг=100     100 – 500 Шаг=100 2; 4; 6
  100 – 500 Шаг=100     100 – 500 Шаг=100 2; 3; 6
  100 – 500 Шаг=100     100 – 500 Шаг=100 2; 3; 4
  100 – 500 Шаг=100     100 – 500 Шаг=100 2; 3; 5
  100 – 500 Шаг=100     100 – 500 Шаг=100 2; 4; 6
  100 – 500 Шаг=100     100 – 500 Шаг=100 2; 4; 6
  100 – 500 Шаг=100     100 – 500 Шаг=100 2; 3; 6
  100 – 500 Шаг=100     100 – 500 Шаг=100 2; 3; 4
  100 – 500 Шаг=100     100 – 500 Шаг=100 2; 3; 6
  100 – 500 Шаг=100     100 – 500 Шаг=100 2; 3; 4

 

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

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

№ вари-анта   Задание 3 NDK=1; РКД=1   Задание 4   Задание 5 NKK=1; РКД=1
    Аргумент K Параметр NKK   Аргумент РКД Параметры   Аргумент K   Параметр NDK
NKK   NDK K
  100 – 500 Шаг=100 1; 2; 5; 7 1; 3; 5; 10     100; 400; 500 100 – 500 Шаг=100 1; 2; 5; 7
  100 – 500 Шаг=100 1; 3; 5; 7 1; 4; 7; 10     100; 300; 500 100 – 500 Шаг=100 1; 3; 5; 7
  100 – 500 Шаг=100 1; 2; 3; 5 1; 3; 7; 10     100; 200; 300 100 – 500 Шаг=100 1; 2; 3; 5
  100 – 500 Шаг=100 1; 3; 4; 5 1; 3; 5; 10     100; 400; 500 100 – 500 Шаг=100 1; 3; 4; 5
  100 – 500 Шаг=100 1; 2; 4; 5 1; 4; 7; 10     100; 300; 500 100 – 500 Шаг=100 1; 2; 4; 5
  100 – 500 Шаг=100 1; 3; 4; 7 1; 3; 7; 10     100; 200; 300 100 – 500 Шаг=100 1; 3; 4; 7
  100 – 500 Шаг=100 1; 2; 5; 7 1; 4; 8; 10     100; 400; 500 100 – 500 Шаг=100 1; 2; 5; 7
  100 – 500 Шаг=100 1; 3; 5; 7 1; 3; 5; 10     100; 300; 500 100 – 500 Шаг=100 1; 3; 5; 7
  100 – 500 Шаг=100 1; 2; 3; 5 1; 4; 7; 10     100; 200; 300 100 – 500 Шаг=100 1; 2; 3; 5
  100 – 500 Шаг=100 1; 3; 4; 5 1; 3; 7; 10     100; 400; 500 100 – 500 Шаг=100 1; 3; 4; 5
  100 – 500 Шаг=100 1; 2; 4; 5 1; 4; 8; 10     100; 300; 500 100 – 500 Шаг=100 1; 2; 4; 5
  100 – 500 Шаг=100 1; 3; 4; 7 1; 3; 5; 10     100; 200; 300 100 – 500 Шаг=100 1; 3; 4; 7

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

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

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

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

3. Общую структуру исследованной в работе мультиконвейерной системы.

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

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

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

· Какое минимальное время выполнения команды можно получить с помощью одного конвейера, и при каких условиях?

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

· Как влияет использование конвейерных устройств разных типов на производительность системы?

· Что дает использование длинных конвейеров?

· Как влияет длина программы на производительность системы?

· Зависит ли производительность системы от типов команд программы?

· Как влияет чередование длинных и коротких команд на производительность системы?

· Какая структура программы наиболее просто реализуется исследованной Вами системой?

· Какой из известных Вам типов процессоров имеет конвейеры, подобные тем, которые изучались в лабораторной работе?

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

 

Лабораторная работа №8
Исследование конфликтов в мультиконвейерных системах

 

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

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

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

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

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

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

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

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

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

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

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

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

 


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



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