- •Глава 9
- •Синхронные линейные конвейеры
- •Метрики эффективности конвейеров
- •Нелинейные конвейеры
- •Конвейер команд
- •Конфликты в конвейере команд
- •Методы решения проблемы условного перехода
- •Предсказание переходов
- •Статическое предсказание переходов
- •Динамическое предсказание переходов
- •Суперконвейерные процессоры
- •Архитектуры с полным и сокращенным набором команд
- •Основные черты risc-архитектуры
- •Регистры в risc-процессорах
- •Преимущества и недостатки risc
- •Суперскалярные процессоры
- •Особенности реализации суперскалярных процессоров
- •Стратегии выдачи и завершения команд
- •Аппаратная поддержка суперскалярных операций
- •Переименование регистров
- •Переупорядочивание команд
- •Контрольные вопросы
Предсказание переходов
Предсказание переходов на сегодняшний день рассматривается как один из наиболее эффективных способов борьбы с конфликтами по управлению. Идея заключается в том, что еще до момента выполнения команды условного перехода или сразу же после ее поступления па конвейер делается предположение о наиболее вероятном исходе такой команды (переход произойдет или не произойдет). Последующие команды подаются на конвейер в соответствии с предсказанием. Для иллюстрации вернемся к примеру (см. рис. 9.5), где команда 3 является командой УП. Пусть для команды 3 предсказано, что переход не произойдет. Тогда вслед за командой 3 на конвейер будут поданы команды 4-6 и т. д. Если предсказан переход, то после команды 3 на конвейер подаются команды 15-17, ... При ошибочном предсказании конвейер необходимо вернуть к состоянию, с которого началась выборка «ненужных» команд (очистить начальные ступени конвейера), и приступить к загрузке, начиная с «правильной» точки, что по эффекту эквивалентно приостановке конвейера. Цена ошибки может оказаться достаточно высокой, но при правильных предсказаниях крупен и выигрыш — конвейер функционирует ритмично без остановок и задержек, причем выигрыш тем больше, чем выше точность предсказания. Термин «точность предсказания» в дальнейшем будем трактовать как процентное отношение числа правильных предсказаний к их общему количеству. В работе [70] дается следующая оценка: чтобы снижение производительности конвейера из-за его остановок по причине конфликтом по управлению не превысило 10%, точность предсказания переходов должна быть выше 97,7%.
К настоящему моменту известно более двух десятков различных способов реализации идеи предсказания переходов [165,230-232], отличающихся друг от друга исходной информацией, на основании которой делается прогноз, сложностью реализации и, главное, точностью предсказания. При классификации схем предсказания переходов обычно выделяют два подхода: статический и динамический, в зависимости от того, когда и на базе какой информации делается предсказание.
Эффективность большинства из приводимых в учебнике методов предсказания переходов иллюстрируется результатами исследований, опубликованными в [68,95,107,197,207,228]. Все эксперименты проводились по примерно одинаковой методике: численные показатели получены путем имитации методов предсказания переходов при выполнении наборов стандартных тестовых программ. Главное различие заключалось в выборе тестовых программ, что и нашло отражение в существенном расхождении полученных оценок.
Так, в работе Смита [197] использовались шесть тестовых программ, написанных на языке Фортран:
■ ADVAN: решение системы из трех дифференциальных уравнений в частных производных;
■ GIBSON: искусственная программа компиляции набора команд, примерно удовлетворяющего так называемой смеси Гибсона № 5;
■ SCI2: обращение матрицы;
■ SINCOS: преобразование массива координат из полярной системы отсчета в прямоугольную;
■ SORTST: сортировка массива из 10 000 целых чисел;
■ TBLINK: работа со связанным списком.
В прочих исследованиях участвовали программы, входящие в различные версии тестовых пакетов SPEC, в частности пакетов SPEC_92, SPEC_95 и CPU2000.
Последующий материал раздела посвящен рассмотрению различных механизмов предсказания переходов.
