Скачиваний:
13
Добавлен:
03.10.2016
Размер:
390.91 Кб
Скачать

Статическое предсказание переходов

Статическое предсказание (Static prediction) –

фиксированное правило работы предсказателя – условный переход либо выполняются всегда, либо не выполняются никогда.

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

Кстатическим методам можно отнести:

Возврат. Статическое прогнозирование перехода как: всегда выполняемого, либо – всегда не выполняемого.

Разворачивание циклов.

Чёрная команда (СПбПУ)

Branch Target Buffer

8 марта 2016 г.

11 / 26

Динамические предсказание переходов

Динамическое предсказание (Dynamic prediction) –

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

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

Информация о предыдущих ветвленияххранится в буфере предсказания переходов (Branch Target Buffer – BTB).

Чёрная команда (СПбПУ)

Branch Target Buffer

8 марта 2016 г.

12 / 26

Branch Target Buffer

Branch Target Buffer (BTB) –

это ассоциативный массив (хештаблица) сопоставляющий адресу инструкции ветвления историю переходов и адрес перехода.

На этапе Fetch по адресу инструкции (по IP–Instr. Pointer) происходит обращение в BTB,если запись для IP есть, значит загруженная инструкция –это ветвлениеи в BTB имеется адрес перехода (target address).

Чёрная команда (СПбПУ)

Branch Target Buffer

8 марта 2016 г.

13 / 26

Branch History (1 bit)

0–ветвление не состоялось, не осуществлять переход;

1–ветвление состоялось, осуществлять переход.

Чёрная команда (СПбПУ)

Branch Target Buffer

8 марта 2016 г.

14 / 26

Branch History (1 bit)

Чёрная команда (СПбПУ)

Branch Target Buffer

8 марта 2016 г.

15 / 26

Диаграмма состояний автомата схемы Смита

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

Чёрная команда (СПбПУ)

Branch Target Buffer

8 марта 2016 г.

16 / 26

Эксперимент

Задание 3. Исследование характеристик динамического предсказания ветвлений в конвейере с использованием BTB = Branch Target Buffer при разных размерах ВТВ, от 8 до 128 строк. На той же вычислительной нагрузке.

Чёрная команда (СПбПУ)

Branch Target Buffer

8 марта 2016 г.

17 / 26

Ливерморские циклы

"Ливерморские циклы"появился в середине 60-х годов и состоит из фрагментов программ, имеющих реальное хождение в Ливерморской Национальной лаборатории им. Лоуренса в США.

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

Чёрная команда (СПбПУ)

Branch Target Buffer

8 марта 2016 г.

18 / 26

Ливерморские циклы

1

Hydro fragment

2

ICCG excerpt (Incomplete Cholesky Conjugate Gradient)

3

Inner product

4

Banded linear equations

5

Tri-diagonal elimination, below diagonal

6

General linear recurrence equations

7

Equation of state fragment

8

ADI integration

9

Integrate predictors

Исходный код https://github.com/SemenMartynov/SPbPU_ ComputingSystems/tree/master/lab2/livermorec.txt

Чёрная команда (СПбПУ)

Branch Target Buffer

8 марта 2016 г.

19 / 26

Результат

Для изучения характеристик динамического предсказания ветвлений в конвейере, было решено построить модель BPU(Branch Prediction Unit) и использовать информацию о выполнении нагрузки, а именно результат профилирования.

Для получения результатов профилирования был использован pintool: pin-instant. https://github.com/wuyongzheng/pin-instat

Чёрная команда (СПбПУ)

Branch Target Buffer

8 марта 2016 г.

20 / 26

Соседние файлы в предмете Высокопроизводительные вычислительные системы