Intel Smart Memory Access
Технологии, объединенные под этим собирательным названием, направлены на уменьшение задержек, которые могут возникнуть при доступе процессора к обрабатываемым данным. Очевидно, что для этой цели как нельзя лучше подходит предварительная выборка данных из памяти в обладающие гораздо более низкой латентностью L1 и L2 кеши процессора. Надо сказать, что алгоритмы предварительной выборки данных эксплуатируются в процессорах Intel достаточно давно. Однако с выходом микроархитектуры Core соответствующий функциональный узел будет усовершенствован.
Микроархитектура Core предполагает реализацию в процессоре шести независимых блоков предварительной выборки данных. Два блока нагружаются задачей предварительной выборки данных из памяти в общий L2 кеш, ещё по два блока работают с кешами первого уровня каждого из ядер CPU. Каждый из этих блоков независимо друг от друга отслеживает закономерные обращения (потоковые, либо с постоянным шагом внутри массива) исполнительных устройств к данным. Базируясь на собранной статистике, блоки предварительной выборки стремятся подгружать данные из памяти в процессорный кеш ещё до того, как к ним последует обращение.
Также, L1 кеш каждого из ядер процессоров, построенных на базе Intel Core Microarchitecture, имеет по одному блоку предварительной выборки инструкций, работающий по аналогичному принципу.
Кроме улучшенной предварительной выборки данных, Intel Smart Access предполагает ещё одну интересную технологию, названную memory disambiguation (устранение противоречий в памяти). Данная технология направлена на повышение эффективности работы алгоритмов внеочередного исполнения инструкций, осуществляющих чтение и запись данных в памяти. Дело в том, что в современных процессорах, осуществляющих внеочередное исполнение команд, не допускается выполнение команды чтения до того, как не будут завершены все инструкции сохранения данных. Объясняется это тем, что планировщик заранее не обладает информацией о зависимости загружаемых и сохраняемых данных.
Однако достаточно часто последовательные инструкции сохранения и загрузки данных из памяти не имеют между собой никакой взаимной зависимости. Поэтому, отсутствие возможности изменения порядка их выполнения зачастую снижает загрузку исполнительных устройств и эффективность работы CPU в целом. Для решения этой проблемы и предусматривается новая технология memory disambiguation. Она предусматривает специальные алгоритмы, позволяющие с достаточно высокой вероятностью устанавливать зависимость последовательных команд сохранения и загрузки данных, и даёт возможность, таким образом, применять внеочередное выполнение инструкций к этим командам.
Дата добавления: 2015-08-21; просмотров: 1006;