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

Лекция. Процессоры Core i7 (Nehalem) фирмы Intel

(ядро Bloomfield, Socket LGA1366).

6 ноября 2008 года корпорация Intel официально представила Core i7 – первые процессоры архитектуры Nehalem. Новая линейка CPU принимает эстафету у суперуспешной разработки Intel Core. Оба поколения процессоров будут продаваться параллельно, вплоть до анонса двухъядерников Havendale, использующих микроархитектуру Intel Nehalem и разъем LGA1366.

Выпуск четырехъядерников Core i7 должен закрепить подавляющее преимущество Intel в секторе наиболее производительных решений. Кроме того, с анонсом Core i7 возвращается подзабытая технология Hyper-Threading, обеспечивающая многопоточную обработку данных в пределах одного физического ядра. Этот факт должен побудить разработчиков ПО к дальнейшей оптимизации софта для процессоров с числом ядер больше двух.

Выход Nehalem полностью согласуется с фирменной концепцией Intel: появление новой архитектуры один раз в два года. Так, эра Intel Core 2 началась в июле 2006-го с выпуском процессоров Conroe. Далее последовал переход на 45-нм технологическую норму (семейство Penryn). И вот, с сегодняшнего дня, мы имеем дело с Core i7 – представителями архитектуры Nehalem на ядре Bloomfield.

Эволюция процессоров Intel

Архитектура

Согласно официальным сведениям первые процессоры Nehalem обладают, по крайней мере, 731 млн. транзисторов, что на 10,7% меньше, чем у «квадов» Penryn Yorkfield. В то же время, площадь кристалла Core i7 увеличена с 214 до 263 мм2.

Архитектура Nehalem изначально была разработана как модульная. Инженеры Intel хотели создать набор базовых "кирпичей, которые можно собирать как блоки конструктора Lego, чтобы создавать разные версии архитектуры.

Модульная архитектура Nehalem.

Основной чертой новой архитектуры стала модульность. Главный модуль представляет собой классический одноядерный x86-процессор: он состоит из исполнительного ядра, L1 Cache размером 64 КБ, поделенного на 2 равные части для данных и инструкций и L2 Cache размером 256 КБ.

Прочие блоки могут быть следующими:

  1. разделяемый L3 Cache;

  2. контроллер памяти;

  3. контроллер шины QPI (QuickPath Interconnect);

  4. контроллер шины PCI Express (пока не реализовано);

  5. контроллер энергопотребления (PCU) и генератор частот;

  6. контроллер интегрированной графики.

Впрочем, не следует считать, что это строго фиксированный список, и ни одного пункта больше архитектура Core i7 включить не позволяет. Скорее данный набор базовых элементов явился демонстрацией намерений Intel по дальнейшему усовершенствованию архитектуры – недаром в него вошёл контроллер интегрированной графики, на тот момент ни в одном процессоре Core i7 ещё не присутствующий. Всё это вместе может комбинироваться произвольным образом, причём допускается как наличие, или отсутствие определённых модулей, так и различное их количество внутри процессора. Модель Core i7 920 выглядит, например, так:

Как легко заметить, она включает в себя четыре процессорных ядра, один трёхканальный контроллер памяти DDR3, один контроллер шины QPI для общения с чипсетом, и модуль отвечающий за генерацию необходимых процессору для работы частот и управление энергопотреблением. С другой стороны, это лишь один из возможных вариантов, реализованный в данной конкретной модели. Например, если на базе новой архитектуры создавать серверный процессор — то не лишним будет увеличить количество не только ядер, но и контроллеров QPI, если же, наоборот, мы разрабатываем мобильный CPU — можно сократить количество ядер, чтобы уменьшить энергопотребление и заменить контроллер чересчур быстрой QPI на обычную PCI Express. Чисто теоретически, никто, наверное, не мешает убрать и L3, оставив всего по минимуму: одно исполнительное ядро, контроллер памяти, PCI-E (Celeron?..) Таким образом, главная цель Intel, похоже, достигнута: у неё есть модульная архитектура с достаточно небольшим количеством основных модулей, из которых, комбинируя их произвольным путём, можно достаточно легко «слепить» как скромный low-end процессор для какого-нибудь неттопа, так и многоядерного серверного монстра. И всё это — из одних и тех же модулей, вот в чём основная прелесть! Однако, разумеется, не только в модульности дело, есть и другие важные изменения. Давайте рассмотрим их подробнее.

Архитектура Core i7.

Но Intel не только обновила свою архитектуру, взяв у конкурента интересные инновации. С бюджетом более 700 млн. транзисторов (731 млн., если быть точным), инженеры смогли серьёзно улучшить основные характеристики исполнительного ядра, добавив в то же время новую функциональность. Например, поддержка многопоточности (simultaneous multi-threading, SMT), которая впервые появилась в Pentium 4 "Northwood" под названием Hyper-Threading, вновь вернулась. Поскольку физических ядер на кристалле четыре, некоторые версии Nehalem, которые используют два ядра в одной упаковке, смогут выполнять до 16 потоков одновременно.

Первые процессоры Core i7 с ядром Bloomfield имели четырехъядерный дизайн, тогда как структура их предшественников – Core 2 Quad – представляла собой мультичиповый модуль из пары Core 2 Duo. К числу основных элементов кристалла Core i7 принадлежат четыре физических ядра, разделяемый L3 Cache, встроенный контроллер памяти DDR3 и шина QuickPath Interconnect (QPI).

Структура кристалла Core i7

Каждое из четырех ядер Bloomfield, в свою очередь, распределяется на меньшие блоки.

Устройство ядра Bloomfield.

Трёхуровневая иерархия Cache

Иерархия памяти в Conroe была очень простой; Intel сконцентрировалась на производительности общего L2 Cache, который стал лучшим решением для архитектуры, нацеленной, главным образом, на двуядерные конфигурации. Но в случае с Nehalem инженеры начали с нуля и пришли к такому же заключению, что и конкуренты: общий L2 Cache не очень хорошо подходит для "родной" четырёхъядерной архитектуры. Разные ядра могут слишком часто "вымывать" данные, необходимые другим ядрам, что приведёт к слишком многим проблемам с внутренними шинами и арбитражем, пытаясь обеспечить все четыре ядра достаточной пропускной способностью с сохранением задержек на достаточно низком уровне. Чтобы решить эти проблемы, инженеры оснастили каждое ядро собственным L2 Cache. Поскольку он относительно мал (256 КБ), получилось обеспечить Cache очень высокой производительностью; в частности, задержки существенно улучшились по сравнению с Penryn – с 15 тактов до, примерно, 10 тактов. Объем L1 Cache составляет 64 КБ: по 32 КБ для инструкций и данных.

Трёхуровневая иерархия Cache

Затем есть огромная Cache–память третьего уровня (8 МБ), отвечающая за связь между ядрами. Архитектура Cache Nehalem – инклюзивная для всех нижних уровней иерархии Cache. Это означает, что если ядро попытается получить доступ к данным, и они отсутствуют в L3 Cache, то нет необходимости искать данные в собственных Cache других ядер – там их нет. Напротив, если данные присутствуют, четыре бита, связанные с каждой строчкой Cache–памяти (один бит на ядро) показывают, могут ли данные потенциально присутствовать (потенциально, но без гарантии) в нижнем Cache другого ядра, и если да, то в каком. Чем выше загрузка L3 Cache, тем эффективнее проявляет себя Core i7 в мультипоточных приложениях.

Эта техника весьма эффективна для обеспечения когерентности персональных Cache каждого ядра, поскольку она уменьшает потребность в обмене информацией между ядрами. Есть, конечно, недостаток в виде потери части Cache-памяти на данные, присутствующие в Cache других уровней. Впрочем, не всё так страшно, поскольку L1 и L2 Cache относительно небольшие по сравнению с L3 Cache – все данные L1 и L2 Cache занимают, максимум, 1,25 Мбайт в L3 Cache из доступных 8 Мбайт. Как и в случае Barcelona, L3 Cache работает на других частотах по сравнению с самим чипом. Следовательно, задержка доступа на данном уровне может меняться, но она должна составлять около 40 тактов.

Организация Cache–памяти

Единственные разочарования в новой иерархии Cache Nehalem связаны с L1 Cache. Пропускная способность Cache инструкций не была увеличена – по-прежнему 16 байт на такт по сравнению с 32 у Barcelona. Это может создать "узкое место" в серверно-ориентированной архитектуре, поскольку 64-битные инструкции крупнее, чем 32-битные, тем более что у Nehalem на один декодер больше, чем у Barcelona, что сильнее нагружает Cache. Что касается Cache данных, его задержка была увеличена до четырёх тактов по сравнению с тремя у Conroe, облегчая работу на высоких тактовых частотах. Но инженеры Intel увеличили число промахов L1Cache данных, которые архитектура может обрабатывать параллельно.

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