Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Предварительная выборка команд и предсказание переходов

Поскольку при суперскалярной обработке необходимо извлекать из памяти несколько команд за один такт для загрузки параллельно рабо­тающих функциональных модулей, повышенные требования предъявля­ются к пропускной способности интерфейса микропроцессор-память. В со­временных микропроцессорах применяются многоуровневые раздельные кэш-памяти данных и команд.

Для уменьшения потерь процессорных циклов, связанных с промаха­ми при обращении к кэш-памяти в случае выполнения команд ветвления, в состав системы кэширования введены средства предсказания переходов, основное назначение которых - повысить вероятность наличия в кэш-па­мяти требуемой команды.

Исполнение условных ветвлений состоит из следующих этапов:

• распознание команды условного ветвления;

• проверка выполнения условия перехода;

• вычисление адреса перехода;

• передача управления, в случае перехода. На каждом этапе используются специальные приемы повышения про­изводительности.

1. Для быстрого декодирования используются либо дополнительные биты в поле команды, либо преддекодирование команд при выборе из кэш-памяти команд.

2. Часто, когда команда уже выбрана в кэш, условие перехода еще не вычислено. Чтобы не задерживать поток команд в данном случае исполь­зуется предсказание перехода по одной из нескольких возможных схем. Некоторые предсказатели используют статическую информацию из дво­ичного кода программы или специально выработанную компилятором. Например, определенные коды операций чаще вырабатывают ветвление, чем другие коды, или ветвление более вероятно (при организации цик­лов), или компилятор может устанавливать флаг, указывающий направ­ления перехода. Может также использоваться статистическая информа­ция, полученная при трассировке программы.

Другие предсказатели используют динамически формируемую инфор­мацию в процессе исполнения программы. Обычно это информация, ка­сающаяся истории выполнения данного ветвления, сохраняемая в табли­це ветвлений или в таблице предсказаний ветвлений. Таблица предсказа­ния ветвлений организуется по ассоциативному принципу, подобно кэш-памяти, ее элементы доступны по адресу команды, ветвление которой пред­сказывается. В некоторых реализациях элемент таблицы предсказания ветв­ления является счетчиком, значение которого увеличивается при правиль­ном предсказании и уменьшается при неправильном. При этом значение счетчика определяет преобладающее направление ветвлений.

В момент определения действительного значения условия ветвления, вно­сится изменение в историю ветвления. Если предсказание было неверным, то должна инициироваться выборка правильных команд. Результаты ко­манд, которые были условно выполнены, должны быть аннулированы.

3. Для определения адреса ветвления обычно требуется выполнить це­лочисленное сложение, прибавляющее к текущему значению счетчика ко­манд смещение, заданное в поле команды ветвления. И хотя это не требует дополнительных циклов для обращения к регистрам, ускорение вычисле­ния адреса может быть достигнуто благодаря использованию буфера, со­держащего ранее использованные адреса переходов.

Если требуется осуществить смену значения счетчика команд, то необ­ходим, по крайней мере, один такт для распознания команды ветвления, модификации счетчика команд и выборки команды по заданному значе­нию счетчика команд. Эти задержки вызывают пустые такты в конвейе­рах процессора. Более сложные решения используют буферы, содержащие наборы команд для двух возможных результатов ветвлений.

Возможно также использование "отложенных переходов", когда одна или несколько команд после команды ветвления выполняются безусловно.

<== предыдущая лекция | следующая лекция ==>
Архитектура суперскалярных процессоров | Декодирование команд, переименование ресурсов и диспетчеризация
Поделиться с друзьями:


Дата добавления: 2014-01-06; Просмотров: 582; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.01 сек.