Современные высокопроизводительные компьютеры
Как мы упоминали выше, увеличение числа бит в схеме прогноза также имеет малый эффект.
Рис. 6.9. Сравнение качества 2-битового прогноза Рассмотренные двухбитовые схемы прогнозирования используют информацию о недавнем поведении команды условного перехода для прогноза будущего поведения этой команды. Вероятно можно улучшить точность прогноза, если учитывать не только поведение того перехода, который мы пытаемся предсказать, но рассматривать также и недавнее поведение других команд перехода. Рассмотрим, например, небольшой фрагмент из текста программы eqntott тестового пакета SPEC92 (это наихудший случай для двухбитовой схемы прогноза): if (aa==2) aa=0; if (bb==2) bb=0; if (aa!=bb) { Ниже приведен текст сгенерированной программы (предполагается, что aa и bb размещены в регистрах R1 и R2): SUBI R3,R1,#2 BNEZ R3,L1 ; переход b1 (aa!=2) ADD R1,R0,R0 ; aa=0 L1: SUBI R3,R2,#2 BNEZ R3,L2 ; переход b2 (bb!=2) ADD R2,R0,R0 ; bb=0 L2: SUB R3,R1,R2 ; R3=aa-bb BEQZ R3,L3 ; branch b3 (aa==bb). ... L3: Пометим команды перехода как b1, b2 и b3. Можно заметить, что поведение перехода b3 коррелирует с переходами b1 и b2. Ясно, что если оба перехода b1 и b2 являются невыполняемыми (т.е. оба условия if оцениваются как истинные и обеим переменным aa и bb присвоено значение 0), то переход b3 будет выполняемым, поскольку aa и bb очевидно равны. Схема прогнозирования, которая для предсказания направления перехода использует только прошлое поведение того же перехода никогда этого не учтет. Схемы прогнозирования, которые для предсказания направления перехода используют поведение других команд перехода, называются коррелированными или двухуровневыми схемами прогнозирования. Схема прогнозирования называется прогнозом (1,1), если она использует поведение одного последнего перехода для выбора из пары однобитовых схем прогнозирования на каждый переход. В общем случае схема прогнозирования (m,n) использует поведение последних m переходов для выбора из 2m схем прогнозирования, каждая из которых представляет собой n-битовую схему прогнозирования для каждого отдельного перехода.
|