1.43 Mb.Название страница7/9Дата09.03.2012Размер1.43 Mb.Тип ... Смотрите также: 7 ^ Предварительная выборка команд и предсказание переходов Поскольку при суперскалярной обработке необходимо извлекать из памяти несколько команд за один такт для загрузки параллельно рабо]тающих функциональных модулей, повышенные требования предъявля]ются к пропускной способности интерфейса микропроцессор-память. В со]временных микропроцессорах применяются многоуровневые раздельные кэш-памяти данных и команд. Для уменьшения потерь процессорных циклов, связанных с промаха]ми при обращении к кэш-памяти в случае выполнения команд ветвления, в состав системы кэширования введены средства предсказания переходов, основное назначение которых - повысить вероятность наличия в кэш-па]мяти требуемой команды. Исполнение условных ветвлений состоит из следующих этапов: распознание команды условного ветвления; проверка выполнения условия перехода; вычисление адреса перехода; передача управления, в случае перехода. На каждом этапе используются специальные приемы повышения про]изводительности. 1. Для быстрого декодирования используются либо дополнительные биты в поле команды, либо преддекодирование команд при выборе из кэш-памяти команд. 2. Часто, когда команда уже выбрана в кэш, условие перехода еще не вычислено. Чтобы не задерживать поток команд в данном случае исполь]зуется предсказание перехода по одной из нескольких возможных схем. Некоторые предсказатели используют статическую информацию из дво]ичного кода программы или специально выработанную компилятором. Например, определенные коды операций чаще вырабатывают ветвление, чем другие коды, или ветвление более вероятно (при организации цик]лов), или компилятор может устанавливать флаг, указывающий направ]ления перехода. Может также использоваться статистическая информа]ция, полученная при трассировке программы. Другие предсказатели используют динамически формируемую инфор]мацию в процессе исполнения программы. Обычно это информация, ка]сающаяся истории выполнения данного ветвления, сохраняемая в табли]це ветвлений или в таблице предсказаний ветвлений. Таблица предсказа]ния ветвлений организуется по ассоциативному принципу, подобно кэш-памяти, ее элементы доступны по адресу команды, ветвление которой пред]сказывается. В некоторых реализациях элемент таблицы предсказания ветв]ления является счетчиком, значение которого увеличивается при правиль]ном предсказании и уменьшается при неправильном. При этом значение счетчика определяет преобладающее направление ветвлений. В момент определения действительного значения условия ветвления, вно]сится изменение в историю ветвления. Если предсказание было неверным, то должна инициироваться выборка правильных команд. Результаты ко]манд, которые были условно выполнены, должны быть аннулированы. 3. Для определения адреса ветвления обычно требуется выполнить це]лочисленное сложение, прибавляющее к текущему значению счетчика ко]манд смещение, заданное в поле команды ветвления. И хотя это не требует дополнительных циклов для обращения к регистрам, ускорение вычисле]ния адреса может быть достигнуто благодаря использованию буфера, со]держащего ранее использованные адреса переходов. Если требуется осуществить смену значения счетчика команд, то необ]ходим, по крайней мере, один такт для распознания команды ветвления, модификации счетчика команд и выборки команды по заданному значе]нию счетчика команд. Эти задержки вызывают пустые такты в конвейе]рах процессора. Более сложные решения используют буферы, содержащие наборы команд для двух возможных результатов ветвлений. Возможно также использование "отложенных переходов", когда одна или несколько команд пос
Комплекс технических и про]граммных средств, предназначенный для автоматизации подготовки и реше]ния задач пользователей. Структура - страница 7
Комментариев нет:
Отправить комментарий