Цилькер Б.Я., Орлов С.А. Организация ЭВМ и систем
.pdf42 6 Глава 9. Основные направления в архитектуре процессоров
К настоящему моменту известно более двух десятков различных способов реа лизации идеи предсказания переходов [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.
Последующий материал раздела посвящен рассмотрению различных механиз мов предсказания переходов.
Статическое предсказание переходов
Статическое предсказание переходов осуществляется на основе некоторой апри орной информации о подлежащей выполнению программе. Предсказание делает ся на этапе компиляции программы и в процессе вычислений уже не меняется. Главное различие между известными механизмами статического прогнозирования заключается в виде информации, используемой для предсказания, и ее трактовке. Исходная информация может быть получена двумя путями: на основе анализа кода программы или в результате ее профилирования (термин «профилирование» по ясняется ниже).
Известные стратегии статического предсказания для команд УП можно клас сифицировать следующим образом:
-переход происходит всегда (ПВ);
-переход не происходит никогда (ПН);
-предсказание определяется по результатам профилирования;
Конвейеризация вычислений 4 3 3
\
Рис. 9.17. Диаграмма состояний двухразрядного автомата A3
Логику предсказания можно описать диаграммой состояний двухразрядного автомата A3 (рис. 9.17).
Поскольку вариант РНТ со счетчиками получил наиболее широкое распрост ранение, в дальнейшем будем ссылаться именно на него.
После определения способов учета истории переходов и логики предсказания необходимо остановиться на особенностях использования таблицы, в частности на том, какая информация выступает в качестве шаблона для доступа к РНТ и ка кого рода история фиксируется в элементах таблицы. Именно различия в спосо бах использования РНТ определяют ту или иную стратегию предсказания.
Вкачестве шаблонов для доступа к РНТ могут быть взяты:
-адрес команды условного перехода;
-регистр глобальной истории;
-регистр локальной истории;
-комбинация предшествующих вариантов.
Схема, где для доступа к РНТ выбран адрес команды условного перехода (со держимое счетчика команд), позволяет учитывать поведение каждой конкретной команды УП. При многократном выполнении большинства команд условного пе рехода наблюдается повторяемость исхода: переход либо, как правило, происхо дит, либо, как правило, не происходит (имеет место бимодальное распределение исходов). Индексация РНТ с помощью адреса команды УП дает возможность от делить первые от вторых и, соответственно, повысить точность предсказания. Каж дой команде условного перехода в РНТ соответствует свой счетчик. Когда коман да завершается переходом, содержимое счетчика увеличивается на единицу, а в противном случае — уменьшается на единицу (естественно, с соблюдением логи ки счета с насыщением). В качестве шаблона для поиска в РНТ служат младшие k разрядов содержимого счетчика команд (рис. 9.18).
При k-разрядном индексе таблица может содержать 2k элементов.
Схема обеспечивает достаточно высокий процент правильных предсказаний для тех команд У П, которые в ходе вычислений выполняются многократно, например