Организация процессоров
2) Реализацию команд условного перехода в процессоре таким образом, чтобы адрес перехода выяснялся на начальных этапах выполнения команды.
3) Динамическое предсказание ветвлений в процессоре (branching predict).
Рис. 3.8 Динамическое предсказание ветвлений в процессорах осуществляется с помощью буферов предсказания перехода (БПП – Branch Predicting Buffer – BPB). Чаще всего в них используется счетчик прогнозов, который представляет собой обычный n-разрядный двоичный счетчик. При каждом выполненном переходе счетчик прогнозов для данного перехода увеличивается, а при невыполненном – уменьшается на единицу. Если текущее значение счетчика > 2n-1, то переход прогнозируется как выполняемый, иначе – как невыполняемый. На практике ограничиваются либо 1-битным, либо 2-битными счетчиками, которые при этом обеспечивают вероятность правильного прогноза соответственно до 70% и 85%.
Для еще большего ускорения предсказания используют буфер целевых адресов переходов (Branch Target Buffer – BTB), представляющий собой ассоциативную кэш –память, в которой в качестве тегов используются адреса команд ветвления в текущей части программы, а в ячейках содержатся счетчики прогнозов и целевые адреса перехода при условии его выполнения. Процессор при выборке команды проверяет, не хранится ли ее адрес в BTB, считывает счетчик прогнозов и в зависимости от его значения принимает решение о выборке команд по следующему адресу или по адресу, указанному в BTB.
3.5.4 Суперскалярные архитектуры Итак, использование конвейера команд позволяет в лучшем случае снизить показатель CPI до 1, то есть на каждом такте с конвейера должна «сходить» новая обработанная команда. В этом случае производительность нашего процессора ARC должна увеличиться в 4 раза, при его длительности такта в 10 нс (тактовая частота 100 Мгц) имеем производительность в 100 MIPS. Но во-первых, у Celeron такой показатель равняется, как мы выяснили, где-то 250, а во-вторых – как показано ранее, достижение показателя 1 CPI не всегда возможно из-за конфликтов при конвейеризации.
|