Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Intel_Corei_Lections_2012.doc
Скачиваний:
4
Добавлен:
05.09.2019
Размер:
3.47 Mб
Скачать

Подсистема кэширования

Однако наибольшие изменения, естественно, коснулись «основной» подсистемы кэширования, а именно — взаимодействия между L1 Cache и L2 Cache, а также появившимся L3 Cache у Nehalem. Во-первых, теперь снова L2 Cache является «персональной собственностью» конкретного ядра, и оно ни с кем его не делит — разделяемым и общим для всех является Cache следующего уровня — L3 Cache. Во-вторых, Intel немного «переиграла» значения латентности для L1 и L2 Cache— у L1 Cache латентность стала на 1 такт больше, чем в Core 2, а у L2 Cache она наоборот стала в полтора раза ниже.

Но основной интерес, конечно же, вызывает L3 Cache. Он, как и L2 Cache в Core 2, является динамически разделяемым. Более того, он наконец-то является не «не-эксклюзивным», а именно инклюзивным: данные, находящиеся в L1/L2 Cache — обязаны присутствовать в L3 Cache. Intel даже объясняет причину подобного решения (далее на рисунках левый соответствует эксклюзивному Cache, а правый — инклюзивному).

Р ассмотрим первую ситуацию: ядро 0 запрашивает данные из L3 Cache, и они там не обнаруживаются.

В случае с эксклюзивным Cache (слева) это ещё ничего не значит: данные могут находится в L1/L2 Cache других ядер. Инклюзивный Cache такую ситуацию исключает, поэтому никаких дополнительных проверок не требуется.

Рассмотрим другую ситуацию: ядро 0 запрашивает данные из L3 Cache, и они там обнаружены. В случае с эксклюзивным Cache, проблем, наоборот, нет никаких: если данные обнаружены в L3 Cache — то больше их нигде нет. В случае с инклюзивным Cache могла бы возникнуть проблема: данные, наоборот, наверняка есть в L1/L2 Cache одного из ядер. Которого?..

Д ля Nehalem эта проблема проблемой не является: каждая строка L3 Cache содержит биты core valid (по количеству физических ядер), которые указывают, копией содержимого L1/L2 какого ядра является данная строчка. Поэтому нет никакой необходимости опрашивать на предмет нахождения данных каждое ядро.

В общем, Intel придерживается достаточно последовательных взглядов в вопросе об оптимальной архитектуре Cache: лучше проиграть в объёме, чем в скорости. Быть может, это связано с тем, что у неё и так хорошо получается делать большие Cache?. Некоторое разочарование вызывает тот факт, что L3 Cache у Core i7 будет работать не на частоте процессора, а на некой фиксированной для целого ряда моделей частоте. Впрочем, эту ложку дёгтя насколько компенсируют два факта: во-первых, у AMD Phenom L3 Cache тоже работает на фиксированной частоте, а во-вторых — у Core i7 эта частота выше (2,66 ГГц).

Технология Turbo Boost

Intel шла к идее оверклокинга медленно, но верно: сначала оверклокерские функции появились в её платах, теперь вот — прямо в процессорах. Ну а если серьёзно, то именно наличие в составе Nehalem PCU, позволило реализовать ещё одну интересную особенность данного процессора: он может повышать частоту работы одного или нескольких ядер в том случае, если остальные простаивают. При этом, насколько нам удалось понять, доступны два варианта «турбирования» ядер: повышение частоты нескольких ядер на одну ступень (+133 МГц) и повышение частоты работы одного ядра на две ступени (+266 МГц).

При этом подчёркивается, что совершенно не обязательно, чтобы остальные ядра были полностью разгружены: Turbo Mode включается в тех случаях, когда уровень загрузки ядер позволяет повысить частоту некоторых из них, не выходя за пределы максимального TDP. Дополнительным бонусом является то, что технология Turbo Boost, как и работа PCU — совершенно не связана ни с какой внешней поддержкой т.е. функционирует внутри процессора полностью самостоятельно и не требует каких-либо дополнительных программных или аппаратных средств.

Исполнительное ядро

В «исполнительном ядре» происходят не только собственно вычисления, но и декодирование инструкций. Теперь рассмотрим более детально новую архитектуры, начиная с первых ступеней конвейера – часть, которая отвечает за считывание инструкций из памяти и подготовку их для выполнения.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]