Скачиваний:
56
Добавлен:
16.04.2013
Размер:
123.39 Кб
Скачать

6.3.7.2. Предвыборка данных

Инструкция lfetchпозволяет предварительную предвыборку (advancedprefetching), строки данных (заданной как 32 байта или более), из кэша в память. Для указания характера местоположения последующих обращений к данным, и для указания до какого уровня кэша следует продвинуть данные,– могут использоваться подсказки распределения.

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

6.3.7.3. Управление распределением

Так как обращения к данным имеют различные локальные атрибуты (временный/не временный, пространственный/не пространственный), то для отражения этих атрибутов, архитектура Itaniumпозволяет давать примечания (аннотировать -annotating) обращениям к данным (загрузкам и сохранениям). Выполнение, основанное на этих аннотациях, может лучше управлять хранением данных в кэшах.

Определены временныеине временныеподсказки. Эти атрибуты применимы к различным уровням кэшей. (Правда, пока, определены только два уровня кэшей). Не временные подсказки лучше всего использовать для данных, которые обычно не имеют повторного использования на этом уровне кэша. Временная подсказка используется для всех других данных (которые используются повторно).

6.4. Итоги

Эта глава описывает ограничивающие факторы для многих научных приложений и приложений с плавающей точкой: ожидание памяти и пропускная способность, время выполнения функциональных устройств и количество доступных функциональных устройств. Здесь также описываются важные свойства поддержки плавающей точки в архитектуре Itanium, выходящие за рамки поддержки программной конвейерной обработки описанной в главе 5 «Поддержка программной конвейерной обработки и циклов», которые помогают преодолевать некоторые из этих ограничений эффективности. Также описана архитектурная поддержка для спекуляции, округления и управления точностью.

Примеры в главе показывают, как осуществить деление и вычисление квадратного корня с плавающей запятой, обычные научные вычисления, такие как редукция, использование особенностей типа инструкции fma, и различных Ливерморских ядер.