Цилькер Б.Я., Орлов С.А. Организация ЭВМ и систем
.pdf4 3 8 Глава 9. Основные направления в архитектуре процессоров
В больших РНТ частота перекрытия снижается по причине большего числа счетчиков. Схема со счетчиком команд в наименьшей степени подвержена эффек ту наложения. С другой стороны, в схемах, где шаблон для доступа к РНТ форми руется на основе содержимого регистра глобальной истории, причем использует ся операция конкатенации, эффект наложения сказывается в значительной мере и обычно отрицательно влияет на точность предсказания переходов.
При классификации динамических стратегий обычно выделяют следующие их виды:
-одноуровневые или бимодальные;
-двухуровневые или коррелированные;
-гибридные;
-асимметричные.
Одноуровневые схемы предсказания переходов. В многочисленных исследованиях, проводившихся на самых разнообразных программах, была отмечена ин тересная закономерность. В поведении многих команд условного перехода явно прослеживается тенденция повторяемости исхода: одни команды программы, как правило, завершаются переходом, в то время как другие — остаются без оного, то есть имеет место бимодальное распределение исходов. Идея одноуровневых схем предсказания, известных также под вторым названием — бимодальные схемы [165], сводится к отделению команд, имеющих склонность завершаться переходом, от команд, при выполнении которых переход обычно не происходит. Такая диффе ренциация позволяет для каждой команды выбрать наиболее подходящее пред сказание. Для реализации идеи в составе схемы предсказания достаточно иметь лишь одну таблицу, каждый элемент которой отображает историю исходов одной команды УП. Для обращения к элементу, ассоциированному с определенной ко мандой УП, используется адрес этой команды (или его младшие биты). Таким об разом, одноуровневые схемы предсказания переходов можно определить как схе мы, содержащие один уровень таблиц истории переходов (обычно единственную таблицу), адресуемых с помощью адреса команды условного перехода.
В первом из возможных вариантов одноуровневых схем строится сравнитель но небольшая таблица, куда заносятся адреса п последних команд У П, при выпол нении которых переход не случился. В сущности, это ранее упоминавшийся буфер адресов перехода (ВТВ), но с противоположным правилом занесения информа ции (фиксируются адреса команд, завершившихся без перехода). Таблица обычно реализуется на базе ассоциативной кэш-памяти. При поступлении на конвейер очередной команды УП ее адрес сравнивается с адресами, хранящимися в таблице. При совпадении делается предположение о том, что перехода не будет, в против ном случае предсказывается переход. С этих позиций для каждой новой команды УП по умолчанию принимается, что переход произойдет. После того как факти ческий исход становится очевидным, содержимое таблицы корректируется. Если команда завершилась переходом, соответствующая запись из таблицы удаляется. Если же перехода не было, то адрес команды заносится в таблицу при условии, что до этого он там отсутствовал. При заполнении таблицы опираются на алгоритмы LRU или FIFO. По точности предсказания стратегия превосходит большинство стратегий статического предсказания.