Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Аппаратные средства вычислительной техники. Ч.1. Лабораторный практикум

.pdf
Скачиваний:
0
Добавлен:
12.08.2026
Размер:
820 Кб
Скачать

6.Как устраняются конфликты по управлению в конвейере?

7.Как влияет на эффективность работы конвейера наличие «пузыря»?

8.Как влияет на эффективность работы конвейера изменение положения «пузыря»?

9.Как влияет на эффективность работы конвейера изменение длительности микроопераций при постоянном положении начала «пузыря»?

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

80

Лабораторная работа № 8 ИССЛЕДОВАНИЕ ПРИНЦИПОВ МУЛЬТИКОНВЕЙЕРНОЙ ОБРАБОТКИ КОМАНД

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

Цель работы. Изучение принципов мультиконвейерной обработки с помощью простейшей имитационной модели.

Исследования, проведенные в лабораторных работах №№ 6 и 7, показывают, что при эффективной организации работы конвейера время выполнения одной команды в нем стремится к одному такту (длительности одной микрооперации). Дальнейшее повышение производительности возможно только за счет параллельного выполнения нескольких команд в одном такте. Для этого в процессор необходимо включить несколько параллельно работающих конвейеров, т.е. использовать мультиконвейерную архитектуру [5, 6]. Такую архитектуру имеют все современные микропроцессоры, причем в них, как правило, имеются конвейерные устройства различных типов: для длинных и коротких операций или для операций с памятью, команд целочисленной арифметики и арифметики с плавающей точкой [1, 3, 4].

Поток команд из памяти обрабатывается блоком диспетчеризации процессора и разделяется на потоки коротких и длинных команд. Эти потоки направляются соответственно на короткие или длинные конвейеры. К коротким командам относятся арифметические и логические операции с целочисленным форматом. К длинным командам относятся команды для чисел с плавающей точкой и команды обращения к основной памяти.

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

81

Описание лабораторной установки

Лабораторная работа выполняется на персональном компьютере с ОС Windows. Программа имитационного моделирования конвейера команд составлена на языке Delphi 7.0 и позволяет выполнить следующее:

варьировать количество команд в последовательности от 100 до 500 (по умолчанию их 100);

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

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

ConvMod и находится в папке Лаб_8. Его запуск осуществляется традиционным способом. После запуска на экране появляется основное окно, которое позволяет задать параметры модели и режим моделирования.

Предусмотрено три режима моделирования:

непрерывный;

потактовый;

по таймеру.

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

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

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

Режим «По таймеру» позволяет варьировать скорость моделирования. При этом имитация осуществляется непрерывно. Имеется возможность в любой момент просматривать с помощью полос прокрутки содержимое кэшей команд и данных, оперативной памяти и вы-

82

ходной очереди, а также выходного буфера. Интервал между тактами можно задать в меню Файл → Настройка → Другие. По умолчанию он равен 1 секунде.

Перед началом моделирования необходимо задать исходные данные (выполнить настройку модели). Эта процедура выполняется с помощью меню Файл → Настройка. При выборе указанного пункта появляется окно, содержащее несколько закладок. Выбрав одну из них, можно задать соответствующие параметры модели. Так, с помощью закладки Команды устанавливается количество команд в моделируемой последовательности. Как отмечалось, оно может изменяться в пределах от 100 до 500. Здесь же имеется кнопка, позволяющая включить в последовательность длинные команды и задать их чередование. С помощью закладки Конвейеры устанавливается количество этих устройств. Имеется возможность включить в структуру системы длинные конвейеры и задать их количество. Остальные параметры в данной лабораторной работе не используются и будут рассмотрены позднее.

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

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

83

ПОРЯДОК ВЫПОЛНЕНИЯ ЛАБОРАТОРНОЙ РАБОТЫ

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

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

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

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

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

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

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

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

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

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

Т1ср = f1(K, NKK, NDK),

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

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

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

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

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

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

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

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

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

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

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

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

84

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

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

Параметр число коротких конвейеров берется из табл. 8.1. Задание 4. Определить зависимости М и T2ср, где аргумент РКД

промежуток между длинными и короткими командами в потоке и па- раметры число коротких конвейеров NKK, число длинных конвейеров NDK и число команд К в потоке берутся по варианту из табл. 8.1.

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

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

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

 

 

 

 

 

 

 

Таблица 8.1

 

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

 

 

 

 

 

 

 

 

 

 

Задание 1

 

Задание 2

 

варианта

 

 

NDK=0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Аргумент

 

Параметр

Аргумент

 

Параметр

 

K

 

 

 

K

 

 

 

 

NKK

NDK

 

NKK

 

 

 

 

 

1

100 – 500

 

1

0

100 – 500

 

2; 3; 5

 

Шаг=100

 

 

 

Шаг=100

 

 

 

 

 

 

 

 

 

 

2

100 – 500

 

1

0

100 – 500

 

2; 4; 6

 

Шаг=100

 

 

 

Шаг=100

 

 

 

 

 

 

 

 

 

 

3

100 – 500

 

1

0

100 – 500

 

2; 4; 6

 

Шаг=100

 

 

 

Шаг=100

 

 

 

 

 

 

 

 

 

 

4

100 – 500

 

1

0

100 – 500

 

2; 3; 6

 

Шаг=100

 

 

 

Шаг=100

 

 

 

 

 

 

 

 

 

 

5

100 – 500

 

1

0

100 – 500

 

2; 3; 4

 

Шаг=100

 

 

 

Шаг=100

 

 

 

 

 

 

 

 

 

 

6

100 – 500

 

1

0

100 – 500

 

2; 3; 5

 

Шаг=100

 

 

 

Шаг=100

 

 

 

 

 

 

 

 

 

 

7

100 – 500

 

1

0

100 – 500

 

2; 4; 6

 

Шаг=100

 

 

 

Шаг=100

 

 

 

 

 

 

 

 

 

 

8

100 – 500

 

1

0

100 – 500

 

2; 4; 6

 

Шаг=100

 

 

 

Шаг=100

 

 

 

 

 

 

 

 

 

 

85

 

 

 

Задание 1

 

 

 

 

 

Задание 2

 

 

варианта

 

 

 

 

 

 

 

 

 

NDK=0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Аргумент

 

Параметр

 

 

 

Аргумент

 

Параметр

 

 

 

K

 

 

 

 

 

 

 

K

 

 

 

 

 

 

 

 

NKK

 

NDK

 

 

 

NKK

 

 

 

 

 

 

 

 

 

 

 

 

9

 

100 – 500

1

 

0

 

 

 

100 – 500

 

 

2; 3; 6

 

 

Шаг=100

 

 

 

 

 

 

 

Шаг=100

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

10

 

100 – 500

1

 

0

 

 

 

100 – 500

 

 

2; 3; 4

 

 

Шаг=100

 

 

 

 

 

 

 

Шаг=100

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

11

 

100 – 500

1

 

0

 

 

 

100 – 500

 

 

2; 3; 6

 

 

Шаг=100

 

 

 

 

 

 

 

Шаг=100

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

12

 

100 – 500

1

 

0

 

 

 

100 – 500

 

 

2; 3; 4

 

 

Шаг=100

 

 

 

 

 

 

 

Шаг=100

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Окончание табл. 8.1

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Задание 3

 

 

 

 

 

 

 

 

 

 

Задание 5

вари-

 

 

 

Задание 4

 

 

 

 

NDK=1; РКД=1

 

 

 

 

NKK=1; РКД=1

анта

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Аргумент

 

Параметр

 

Аргумент

 

 

Параметры

 

Аргумент

 

Параметр

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

K

 

NKK

 

РКД

 

NKK

 

NDK

K

 

K

 

NDK

1

100 – 500

 

1; 2; 5; 7

 

1; 3; 5; 10

2

 

2

100;

 

100 – 500

 

1; 2; 5; 7

 

Шаг=100

 

 

 

 

 

 

 

 

 

400;

 

Шаг=100

 

 

 

 

 

 

 

 

 

 

 

 

 

 

500

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

100 – 500

 

1; 3; 5; 7

 

1; 4; 7; 10

2

 

3

100;

 

100 – 500

 

1; 3; 5; 7

 

Шаг=100

 

 

 

 

 

 

 

 

 

300;

 

Шаг=100

 

 

 

 

 

 

 

 

 

 

 

 

 

 

500

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

100 – 500

 

1; 2; 3; 5

 

1; 3; 7; 10

3

 

2

100;

 

100 – 500

 

1; 2; 3; 5

 

Шаг=100

 

 

 

 

 

 

 

 

 

200;

 

Шаг=100

 

 

 

 

 

 

 

 

 

 

 

 

 

 

300

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

100 – 500

 

1; 3; 4; 5

 

1; 3; 5; 10

2

 

2

100;

 

100 – 500

 

1; 3; 4; 5

 

Шаг=100

 

 

 

 

 

 

 

 

 

400;

 

Шаг=100

 

 

 

 

 

 

 

 

 

 

 

 

 

 

500

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

100 – 500

 

1; 2; 4; 5

 

1; 4; 7; 10

2

 

3

100;

 

100 – 500

 

1; 2; 4; 5

 

Шаг=100

 

 

 

 

 

 

 

 

 

300;

 

Шаг=100

 

 

 

 

 

 

 

 

 

 

 

 

 

 

500

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6

100 – 500

 

1; 3; 4; 7

 

1; 3; 7; 10

3

 

2

100;

 

100 – 500

 

1; 3; 4; 7

 

Шаг=100

 

 

 

 

 

 

 

 

 

200;

 

Шаг=100

 

 

 

 

 

 

 

 

 

 

 

 

 

 

300

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

86

Задание 3

 

 

 

 

 

 

Задание 5

вари-

 

Задание 4

 

NDK=1;

РКД=1

 

 

NKK=1; РКД=1

анта

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Аргумент

 

Параметр

Аргумент

 

Параметры

 

Аргумент

Параметр

 

 

 

 

 

 

 

 

 

 

 

 

 

 

K

 

NKK

РКД

NKK

 

NDK

 

K

K

NDK

7

100 – 500

 

1; 2; 5; 7

1; 4; 8; 10

2

 

2

 

100;

100 – 500

1; 2; 5; 7

 

Шаг=100

 

 

 

 

 

 

 

400;

Шаг=100

 

 

 

 

 

 

 

 

 

 

500

 

 

 

 

 

 

 

 

 

 

 

 

 

 

8

100 – 500

 

1; 3; 5; 7

1; 3; 5; 10

2

 

3

 

100;

100 – 500

1; 3; 5; 7

 

Шаг=100

 

 

 

 

 

 

 

300;

Шаг=100

 

 

 

 

 

 

 

 

 

 

500

 

 

 

 

 

 

 

 

 

 

 

 

 

 

9

100 – 500

 

1; 2; 3; 5

1; 4; 7; 10

3

 

2

 

100;

100 – 500

1; 2; 3; 5

 

Шаг=100

 

 

 

 

 

 

 

200;

Шаг=100

 

 

 

 

 

 

 

 

 

 

300

 

 

 

 

 

 

 

 

 

 

 

 

 

 

10

100 – 500

 

1; 3; 4; 5

1; 3; 7; 10

2

 

2

 

100;

100 – 500

1; 3; 4; 5

 

Шаг=100

 

 

 

 

 

 

 

400;

Шаг=100

 

 

 

 

 

 

 

 

 

 

500

 

 

 

 

 

 

 

 

 

 

 

 

 

 

11

100 – 500

 

1; 2; 4; 5

1; 4; 8; 10

2

 

3

 

100;

100 – 500

1; 2; 4; 5

 

Шаг=100

 

 

 

 

 

 

 

300;

Шаг=100

 

 

 

 

 

 

 

 

 

 

500

 

 

 

 

 

 

 

 

 

 

 

 

 

 

12

100 – 500

 

1; 3; 4; 7

1; 3; 5; 10

3

 

2

 

100;

100 – 500

1; 3; 4; 7

 

Шаг=100

 

 

 

 

 

 

 

200;

Шаг=100

 

 

 

 

 

 

 

 

 

 

300

 

 

 

 

 

 

 

 

 

 

 

 

 

 

СОДЕРЖАНИЕ ОТЧЕТА О ВЫПОЛНЕННОЙ РАБОТЕ

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

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

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

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

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

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

87

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

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

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

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

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

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

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

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

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

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

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

88

Лабораторная работа № 9 ИССЛЕДОВАНИЕ КОНФЛИКТОВ

В МУЛЬТИКОНВЕЙЕРНЫХ СИСТЕМАХ

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

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

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

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

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

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

3)по управлению, возникающие при наличии команд переходов

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

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

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

89

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]