Для этого в блоке предсказания ветвлений предусматривается специальная ассоциативная память, называемая буфером адресов ветвлений (BTB – BranchTargetBuffer). Например, в процессорах поколения P6, в этой памяти сохраняется 512 адресов ранее выполненных переходов. (В современных моделях микропроцессоров объём этой памяти достигает до 4086 адресов и больше). BTB процессоров поколения P6 организована в виде 128 наборов, с ассоциативностью 4 (4-х входовая множественно-ассоциативная кэш-память). Для адресации используются младшие разряды адреса 16-байтового блока инструкций.
Структурная схема буфера адресов ветвлений, поясняющая принцип его работы, приведена на рис.X.1.
Эта буферная память содержит адреса инструкций, на которые ранее производились переходы. Кроме этого BTB содержит четыре бита предыстории ветвления, которые определяют, выполнялся ли переход при четырех предыдущих выборках данной команды.
Рис X.1 Структурная схема буфера адресов ветвлений
Основой блока предсказания ветвлений, как было уже отмечено, является буфер BTB, ассоциативная память, доступ к содержимому которой осуществляется по адресу очередной выбранной команды, сформированному в регистре IP (Instruction Pointer).
Тэгами этой ассоциативной памяти являются адреса команд переходов в выполняемых программах.
Как только поступила команда условного перехода, определенная по коду операции команды, адрес этой команды сравнивается с адресами (тэгами), находящимися в буферной памяти BTB. При отсутствии аналогичного адреса в буферной памяти, делается вывод о том, что ранее по этому адресу переходов не было и, следовательно, предсказывается отсутствие ветвления. Поэтому дальнейшая выборка и декодирование инструкций продолжается в порядке их следования. Если же указанный в инструкции адрес передачи управления в BTB обнаруживается, то производится анализ предыстории переходов, при котором определяется чаще всего реализуемое направление ветвления и выявляются чередующиеся переходы. Предыстория переходов кодируется в таблице BHT (В процессорах поколения P6 четырехразрядными кодами) и дает информацию о вероятности реализации переходов на основе поведения при предыдущих выборках данной команды. После этого на конвейер передаётся команда по предсказанному адресу. При этом в блоке декодирования конвейера сохраняется декодированной и та команда, которая должна была выполняться, если бы предсказание перехода было бы отрицательным. Это делается для сокращения потерь времени на перезагрузку конвейера в случае, если бы предсказание оказалось бы ошибочным.
После окончания операций по выявлению истинности реализованного прогноза осуществляется коррекция содержания соответствующих областей памяти BTB.
Заметим, что в микропроцессорах архитектуры IA-64 (например, семейства Itanium) используется прием одновременного вычисления нескольких веток программного кода. Встретив инструкцию условного перехода, процессор начинает просчитывать одновременно оба варианта исполнения программы, пока не станет ясно какой из этих путей должен быть реализован. Поскольку исполнительные устройства процессоров этой архитектуры обычно загружены далеко не полностью, то исполнение ветвей программы осуществляется практически с одинаковой скоростью. Поэтому даже при неправильном предсказании условного перехода, осуществляется лишь небольшое снижение производительности на этом небольшом участке программы.
Динамический анализ потока данных – концепция, которая заключается в том, что в режиме реального времени происходит анализ зависимости инструкций от исходных данных и значений, хранящихся в регистрах процессора. Этот анализ позволяет определить возможность исполнения инструкций не в том порядке, который определён программой, а в том, который позволяет наиболее эффективно загрузить исполнительные блоки процессора. Анализируется наличие данных для выполнения той или иной микрокоманды, либо из-за отсутствия их в данный момент в кэш L1 памяти данных, либо в связи с тем, что эти данные должны быть получены в результате исполнения последующей команды и т.д.
Спекулятивное исполнение инструкций – способность процессора исполнять инструкции не в том порядке, который задан программой, а в том, который оптимален для наибольшей производительности исполнительного модуля процессора. Однако возвращать результаты исполнения инструкций он должен в той же последовательности, которая соответствует исходному потоку инструкций.
В начале 2011 года фирма Intel объявила о 14 моделях новых процессоров микроархитектуры Sandy Bridge для настольных компьютеров, 15 – для мобильных и несколько серверных версий. Торговые марки Core i3, i5 и i7 сохранились, соответствуя процессорам начального уровня, массового рынка и топ – моделей. Однако числа-модификаторы изменились.
Список объявленных моделей настольных версий микропроцессоров архитектуры Sandy Bridge приведен в таблице X.1.
Табл. X.1
Ядра (Потоки) |
Процессор Марка, модель |
ЦПУ (Тактовая частота, ГГц) |
Графика (Тактовая частота,МГц) |
Кэш L3 Мб. |
TDP Вт |
Шина |
Поддержка памяти |
Стоим. |
|||
Шт. |
Турбо |
Шт. |
Турбо |
||||||||
4 (8) |
Core i7 |
2600k |
3,4 |
3,8 |
850 |
1350 |
8 |
95 |
DMI 2.0 |
До 4-х каналов DDR3-1333 |
$317 |
2600 |
$294 |
||||||||||
2600s |
2,8 |
65 |
$306 |
||||||||
4 (4) |
Core i5 |
2500k |
3,3 |
3,7 |
1100 |
6 |
95 |
$216 |
|||
2500 |
$205 |
||||||||||
2500s |
2,7 |
65 |
$216 |
||||||||
2500t |
2,3 |
3,3 |
650 |
1250 |
45 |
$184 |
|||||
2400 |
3,1 |
3,4 |
850 |
1100 |
95 |
$195 |
|||||
2405s |
2,5 |
3,3 |
65 |
$195 |
|||||||
2400s |
$195 |
||||||||||
2300 |
2,8 |
3,1 |
95 |
$177 |
|||||||
2 (4) |
2390t |
2,7 |
3,5 |
650 |
3 |
35 |
$195 |
||||
Core i3 |
2120 |
3,3 |
× |
850 |
65 |
$138 |
|||||
2105 |
$117 |
||||||||||
2100 |
$117 |
||||||||||
2100t |
2,5 |
650 |
35 |
$127 |
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.