Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПиП МПС(Ассемблер Левицкий экт 4) / MProc / M8 / Введение в арихитектуру Itanium.doc
Скачиваний:
61
Добавлен:
16.04.2013
Размер:
91.14 Кб
Скачать

2.8. Переходы

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

Инструкции предсказания переходов могут использоваться для передачи заранее признаков целевого адреса и места перехода. Компилятор попытается указать, как должен предсказываться переход – динамически или статически. Процессор может использовать эту информацию для инициализации структур предсказания перехода, обеспечивая хорошее предсказание, даже если сталкивается с этим переходом в первый раз. Это является преимуществом для безусловных переходов или в ситуациях, где компилятор имеет информацию о вероятном поведении перехода.

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

Поддерживаются специальные переходы, завершения циклов (loop-closing) для ускорения счетных циклов и модульно спланированных циклов. Эти переходы и связанные с ними инструкции предсказания переходов обеспечивают информацию, которая учитывается для совершенного предсказания завершения цикла, тем самым, устраняя дорогостоящие потери от неправильного предсказания переходов и сокращая издержки циклов.

2.9. Ротация регистров

Модульное планирование цикла аналогично тому, как в аппаратном конвейере функциональное устройство начинает следующую итерацию с начала цикла до того, как закончится предыдущая итерация. Итерация раздроблена на стадии подобные стадиям, выполняемым на конвейере. Модульное планирование позволяет компилятору выполнить итерацию цикла скорее параллельно, чем последовательно. Параллельное выполнение множества итераций традиционно требует разворачивания циклов и программного переименования регистров. Архитектура Itaniumдопускает переименование регистров обеспечивающих каждую итерацию своим собственным набором регистров, тем самым, устраняя потребность в разворачивании. Такой тип переименования регистров называется ротацией регистров (registerrotation). В результате программный конвейер может применяться для сокращения издержек для более широкой разновидности циклов, как для маленьких, так и для больших.

2.10. Архитектура работы с плавающей точкой

Архитектура Itaniumзадает работу с плавающей точкой в соответствии с полнойIEEEподдержкой для одинарного, двойного и расширенного двойного (80-битного) типов данных. Кое-что добавлено, например объединенная операция умножения и сложения, функции минимума и максимума, формат файла регистров с диапазоном большим, чем формат памяти с двойной расширенной точностью. Задается 128 регистров с плавающей точкой. Из них 96 регистров являются ротируемыми (не стековыми) и могут быть использованы для модульного планирования циклов. Множество регистров состояния с плавающей точкой обеспечивает спекулятивность.

Архитектура Itaniumимеет параллельныеFPинструкции, которые работают с двумя 32-битными числами одинарной точности, размещенными в одномFPрегистре параллельно и независимо. Эти инструкции существенно увеличивают производительность дляFPчисел одинарной точности, при этом увеличивая производительность игр и приложений, использующих трехмерную графику.

Соседние файлы в папке M8