От Sandy Bridge до Coffee Lake: сравниваем семь поколений Intel Core i7. Процессоры Intel Sandy Bridge — все секреты

", опубликованном примерно год назад, мы говорили о микроархитектуре Nehalem, пришедшей на смену Core в конце 2008 года. В этом обзоре речь пойдёт об архитектуре Sandy Bridge, которая в самое ближайшее время должна полностью заменить Nehalem.

На сегодняшний день чипы на базе Sandy Bridge представлены во всех линейках процессоров Intel, включая серверные Xeon, дестопные и мобильные Core i3/35/i7, Pentium и Celeron и "экстремальные" Core i7 Extreme. Незадолго до публикации этой статьи, 22 мая 2011 года, были представлены ещё семь новых процессоров на основе Sandy Bridge.

В чём же заключаются принципиальные отличия Sandy Bridge от Nehalem и в чём состоят особенности и преимущества новой микроархитектуры Intel? Вкратце эти отличия таковы: обновлённое графическое ядро в составе "системного агента" расположено на одном кристалле с вычислительным, предусмотрены новый буфер микрокоманд L0, разделяемый кэш L3, модернизированная технология Turbo Boost, расширенный набор инструкций SIMD AVX и переработанный двухканальный контроллер оперативной памяти DDR3 1333 МГц. Вместе с новой архитектурой появился и новый процессорный разъём LGA 1155.

Одно из главных конструктивных отличий Sandy Bridge от Nehalem - размещение вычислительных ядер и северного моста (системного агента) на одном кристалле. Напомним, что в Nehalem сам ЦП и северный мост располагались под общей крышкой, но фактически размещались на самостоятельных чипах, которые, к тому же, были выполнены по разным технологическим нормам: ЦП - по 32-нм, а северный мост - по 45-нм. В Sandy Bridge это единый кристалл, выполненный по 32-нм техпроцессу, на котором находятся вычислительные ядра, графическое ядро, контроллеры оперативной памяти, PCI Express, электропитания (Power Control Unit, PCU) и блок видеовыхода.

Новый набор SIMD-инструкций в чипах Sandy Bridge получил название AVX - Advanced Vector Extensions, то есть "расширенные векторные инструкции". Фактически это очередное поколение SIMD-инструкций (Single Instruction, Multiple Data - "одиночный поток команд, множественный поток данных" SSE5, альтернативная набору x86, разработанному в AMD. Разрядность регистров XMM в инструкциях AVX увеличен вдвое с 128 до 256 бит, появились 12 новых инструкций с поддержкой четырёхоперандных команд. Поддерживаются технология аппаратного шифрования Advanced Encryption Standard (AES) и система виртуализации Virtual Machine Extensions (VMX).

Несмотря на схожую конструкцию, у чипов Sandy Bridge больше исполнительных блоков, чем у Nehalem: 15 против 12 (см. блок-схему). Каждый исполнительный блок подключён к планировщику инструкций через 128-битный канал. Для выполнения новых инструкций AVX, содержащих 256-разрядные данные, одновременно используются два исполнительных блока.

Чипы Sandy Bridge cпособны обрабатывать до четырёх инструкций за такт благодаря четырём декодерам, встроенным в блоки выборки команд. Эти декодеры преобразуют инструкции x86 в простые RISC-подобные микроинструкции.

Важнейшее нововведение в процессорах Sandy Bridge - это так называемый "кэш нулевого уровня" L0, в принципе отсутствовавший в процессорах предыдущего поколения. Этот кэш способен хранить до 1536 декодированных микроинструкций: его смысл заключается в том, что когда исполняемая программа входит в кольцевой цикл, то есть повторно выполняет одни и те же инструкции, не требуется заново декодировать одни и те же инструкции. Такая схема позволяет заметно повысить производительность: по оценкам специалистов Intel, L0 используется в 80% машинного времени, то есть в подавляющем большинстве случаев. Кроме того, при использовании L0 отключаются декодеры и кэш-память первого уровня, а чип потребляет меньше энергии и выделяет меньше тепла.

В связи с появлением в чипах Sandy Bridge "кэша нулевого уровня" часто вспоминают трассировочный кэш (trace cache) "ветеранов гонки гигагерц" - процессоров Pentium 4 на базе архитектуры NetBurst. Между тем, эти буферы работают по-разному: в трассировочном кэше инструкции записываются точно в таком порядке, в каком они исполнялись, поэтому в нём могут несколько раз повторяться одни и те же инструкции. В L0 хранятся единичные инструкции, что, разумеется, более рационально.

Претерпел заметные изменения блок предсказания ветвлений, получивший буфер предсказания результата ветвлений (branch target buffer) удвоенного объёма. Кроме того, в буфере теперь используется специальный алгоритм сжатия данных, благодаря чему блок способен подготавливать большие объёмы инструкций, тем самым повышая производительность расчётов.

Подсистема памяти в Sandy Brigde была также оптимизирована для работы с 256-битными инструкциями AVX. Напомним, что в Nehalem использовались выделенные порты загрузки, хранения адресов и хранения данных, привязанные к отдельным дисптчерским портам, что означает возможность загрузки 128 бит данных из кэш-памяти L1 за такт. В Sandy Brigde порты загрузки и хранения при необходимости могут изменять назначение и одновременно выступать в роли пары портов загрузки или хранения, что позволяет работать с 256 битами данных за такт.

Для связи компонентов чипа, то есть вычислительных ядер, кэш-памяти L3, графического ядра и системного агента (контроллеров памяти, PCI Express, питания и дисплея), Sandy Bridge используется кольцевая шина (ring interconnect). За основу была взята скоростная шина QPI (Quick Path Interconnect, пропускная способность до 6,4 Гбайт/с на частоте 3,2 ГГц), впервые реализованная в чипах Nehalem Lynnfield (Core i7 9xxx для Socket LGA1366), адресованных энтузиастам.

По сути кольцевая шина в Sandy Bridge представляет собой четыре 32-байных кольца: шины данных, шины запросов, шины подтверждения и шины мониторинга. Обработка запросов осуществляется на частоте работы вычислительных ядер, при этом при тактовой частоте 3 ГГц пропускная способность шины достигает 96 Гбайт в секунду. При этом система автоматически определяет кратчайший путь передачи данных, обеспечивая минимальную латентность.

Использование кольцевой шины позволило иным способом реализовать кэш-память третьего уровня L3, которая в Sandy Bridge получила название LLC (Last Level Cache, то есть "кэш последнего уровня"). В отличие от Nehalem, здесь LLC не является общим для всех ядер, но при этом он может при необходимости распределяться между всеми ядрами, а также графикой и системным агентом. Важно отметить, что хотя для каждого вычислительного ядра выделен свой сегмент LLC, этот сегмент не привязан жёстко к "своему" ядру и его объём может посредством кольцевой шины распределяться между другими компонентами.

При переходе на Sandy Bridge в Intel присвоили всем компонентами центрального процессора, которые не относятся к собственно вычислительным ядрам, общее названием System Agent, то есть "системный агент". Фактически это всё компоненты так называемого "северного моста" набора системной логики, однако это название всё-таки больше подходит отдельной микросхеме. В применении к Nehalem использовалось странное и явно неудачное наименование "Uncore", то есть "неядро", так что "системный агент" звучит намного уместнее.

К основным элементам "системного агента" следует отнести модернизированный двухканальный контроллер оперативной памяти DDR3 до 1333 МГц, контроллер PCI Express 2.0 с поддержкой одной шины x16, двух шин x8 или одной шины x8 и двух x4. В чипе имеется специальный блок управления питанием, на основе которого реализована технология автоматического разгона Turbo Boost нового поколения. Благодаря этой технологии, учитывающей состояние как вычислительных, так и графических ядер, чип при необходимости может существенно превышать свой термопакет на время до 25 секунд без повреждения процессора и ущерба для работоспособности.

В Sandy Bridge используются графические процессоры нового поколения Intel HD Graphics 2000 и HD Graphics 3000, которые могут состоять из шести или двенадцати исполнительных блоков (execution units, EU), в зависимости от модели процессора. Номинальная тактовая частота графики составляет 650 или 850 МГц, при этом она может повышаться до 1100, 1250 или 1350 МГц в режиме Turbo Boost, который теперь распространяется и на видеоускоритель. Графика поддерживает программный интерфейс Direct X 10.1 - разработчики сочли излишней поддержку Direct X 11, справедливо посчитав, что поклонники компьютерных игр, где действительно востребован этот API, в любом случае предпочтут значительно более производительную дискретную графику.

Маркировка процессоров Sandy Bridge довольно проста и логична. Как и раньше, она состоит из цифровых индексов, которые в некоторых случаях сопровождаются буквенным. Отличить Sandy Bridge от Nehalem можно по названию: индекс новых чипов четырёхзначный и начинается с двойки ("второе поколение"), а старых - трёхзначный. К примеру, перед нами процессор Intel Core i5-2500K. Здесь "Intel Core" означает марку, "i5" - серию, "2" - поколение, "500" - индекс модели, а "K" - буквенный индекс.

Что касается буквенных индексов, то по чипам с микроархитектурой Nehalem известен один из них это "S" (процессоры i5-750S и i7-860S). Он присваивается чипам, ориентированным на домашние мультимедийные машины. Процессоры с одинаковым числовым индексом отличаются тем, что модели с буквенным индексом "S" работают на чуть меньшей номинальной тактовой частоте, но "турбочастота", достигаемая при автоматическом разгоне Turbo Boost, у них одинакова. Иными словами, в штатном режиме они экономичнее, а их система охлаждения тише, чем у "стандартных" моделей. Все новые десктопные Core второго поколения без индексов потребляют 95 Вт, а с индексом "S" - 65 Вт.

Модификации с индексом "T" работают на ещё более низкой тактовой частоте, чем "базовые", при этом "турбочастота" у них тоже ниже. Термопакет такие процессоров составляет всего 35 или 45 Вт, что вполне сравнимо с TDP современных мобильных чипов.

И, наконец, индекс "K" означает разблокированный множитель, что позволяет беспрепятственно разгонять процессор, повышая его тактовую частоту.

Мы познакомились с общими техническими решениями, реализованными в "настольных" процессорах с архитектурой Sandy Bridge. Далее мы поговорим об особенностях разных серий, изучим актуальный модельный ряд и дадим рекомендации, какие конкретные модели можно считать лучшими покупками в своём классе.

Отличие между «полностью» и «частично» разблокированными процессорами

Что в результате? Опробовав Turbo Boost на прошлых поколениях процессоров, Intel решила сделать из него инструмент для реального ценового позиционирования своих продуктов друг относительно друга. Если раньше энтузиасты чаще всего покупали младшие процессоры в серии, зачастую легко разгоняя их до уровня старших моделей, то теперь разница в 400 МГц между i3-2100 и i3-2120 стоит 21 доллар США, и ничего вы с этим не сделаете.

Оба разблокированных процессора будут стоить немного дороже, чем обычные модели. Разница эта будет меньше, чем в случае предыдущих поколений - $11 для 2500 модели и $23 для 2600. Intel всё же не хочет слишком сильно отпугивать оверклокеров. Однако теперь $216 - это порог для вступления в клуб. Разгон - развлечение, за которое нужно платить. Понятно, что такая позиция может перетянуть некоторых пользователей в стан AMD, у которой бюджетные процессоры разгоняются очень неплохо.

Сам разгон в целом стал проще - снизились требования к материнской плате и оперативной памяти, меньше мороки с таймингами и различными коэффициентами. Но экстремальщикам есть, где развернуться - про подстройку BCLK наверняка будут написаны целые трактаты.

Графическое ядро и Quick Sync

Intel начала подтягивать производительность своего встроенного графического ядра еще с анонсом Clarkdale и Arrandale, но в тот раз обогнать конкурентов не получилось. Дальнейшую планку установила компания AMD, которая собирается уничтожить рынок дискретной графики начального уровня. Решение Intel появилось раньше, но сможет ли оно справиться с поставленной задачей?

Начнем с того, что решений два. Называются они HD 2000 и HD 3000, а отличие между ними заключается в различном количестве исполнительных блоков (EU). В первом случае их 6, а во втором - 12. 12 их было и у GMA HD, но рост производительности за счет интеграции и переработанной архитектуры получился очень значительный. В модельном ряду настольных процессоров Intel продвинутой графики удостоилась только пара процессоров с разблокированным множителем. Это именно те модели, в которых встроенная графика будет использоваться с наименьшей вероятностью. Такое решение кажется нам очень странным. Остается надеяться, что в будущем Intel выпустит также модификации младших процессоров с полностью разблокированным графическим ядром.

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

Производительность встроенной графики зависит не только от количества EU. Все десктопные Sandy обладают одинаковой базовой частотой (850 МГц), но у старших (2600 и 2600K) выше максимальная частота Turbo Boost - 1350 МГц против 1100 у остальных. На результате также будет в некоторой степени сказываться мощность вычислительных ядер CPU, но куда сильнее - объем его кэш-памяти. Ведь одной из основных особенностей новой графики является совместное с вычислительными ядрами использование кэш-памяти третьего уровня, реализованное благодаря кольцевой шине LLC.

Как и в процессорах Clarkdale, в новинках используется аппаратное ускорение для декодирования MPEG, VC-1 и AVC. Однако процесс этот теперь осуществляется существенно быстрее. Как и во «взрослой» дискретной графике, в процессорах Sandy Bridge есть отдельный блок, занимающийся кодированием/декодированием видео. В отличие от процессоров прошлого поколения, он полностью берет на себя эту задачу. Использование аппаратного ускорения гораздо выгоднее с точки зрения энергоэффективности, да и производительность в случае SNB оказывается очень высокой. Intel обещает возможность одновременного декодирования более двух 1080p потоков. Такая производительность может быть нужна для быстрого перекодирования имеющегося видео в подходящий для мобильного устройства формат. К тому же богатые мультимедийные возможности делают SNB лучшим выбором при построении HTPC-системы.

Разработкой графических решений для процессоров Intel занимается отдельное подразделение компании. Новые разработки этого подразделения также очень актуальны для мобильных процессоров компании. Пока проект Larrabee в том или ином виде не получит должного развития, Intel придется мириться с «не-x86» компонентами в своих CPU.

Intel Core i5-2400 и Core i5-2500K

К нам попало 2 процессора, основанных на архитектуре Sandy Bridge. Интерес в первую очередь представляет модель 2500K, так как она обладает разблокированным множителем. В будущем, возможно, отдельно будут опубликованы бенчмарки двухъядерных моделей и процессоров серии i7.

Мы открываем цикл статей про новую процессорную микроархитектуру Intel Sandy Bridge. В первом материале мы коснемся теории ― расскажем про изменения и нововведения. В недалеком будущем на страницах блогов появятся результаты тестов новой платформы и много чего интересного.

Придуманная в недрах Intel концепция Tick-Tock продолжает работать ― каждый год производитель представляет измененную процессорную микроархитектуру. Фаза «Tick» подразумевает совершенствование предыдущих наработок (уменьшение техпроцесса, внедрение не слишком революционных новых технологий и так далее). Примерно через год после «Tick» случается «Tock» ― релиз процессоров на основе полностью новой микроархитектуры.

В начале 2010 года Intel представила линейку чипов под кодовым именем Westmere/Clarkdale ― технологическое совершенствование самых первых моделей Core i3/i5/i7 (Nehalem). Настала очередь Tock. Встречайте революционную микроархитектуру Sandy Bridge, на основе которой построены процессоры под общим названием Core 2011 ― полностью новые модели Core i3, Core i5, Core i7, а также бюджетные модели Pentium и Celeron.

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

Пресса называет Sandy Bridge одной из самых существенных микроархитектур Intel за последние годы ― производитель сделал все возможное, чтобы вывести свои процессоры на новый уровень производительности, довел до ума представленные ранее технологии, предложил невероятную интеграцию вычислительных блоков и контроллеров. По сравнению с Sandy Bridge представленные ранее модели кажутся детским лепетом. Давайте рассмотрим изменения Core 2011 более подробно.

Особенности новой микроархитектуры

Блок-схема, изображающая микроархитектуру Sandy Bridge, вряд ли расскажет много о внедренных технологиях и общих изменениях. Однако стоит знать, что все компоненты новых процессоров существенно отличаются от компонентов тех же Westmere/Clarkdale. Главное, что нужно понимать перед изучением особенностей Sandy Bridge ― архитектурные доработки позволяют новым процессорам работать на 10-50% быстрее по сравнению с поколением Core 2010.

Инженеры Intel переработали блок предсказывания ветвлений, изменили препроцессор, внедрили продвинутый декодированный кэш, скоростную кольцевую шину, блок продвинутых векторных расширений AVX, переработали интегрированный контроллер оперативной памяти и линки с шиной PCI Express, изменили интегрированный графический чип до неузнаваемости, ввели фиксированный блок для аппаратного ускорения транскодирования видео, довели до ума технологию авторазгона Turbo Boost и так далее. Теперь вы, вероятно, поверили в то, что изменений действительно очень и очень много? Мы попробуем вкратце пробежаться по каждому из них, чтобы составить определенную картину перед тем, как в наших блогах появится полноценное тестирование.

Для начала, 4-ядерные модели Sandy Bridge состоят из 995 миллионов транзисторов, произведенных по отлаженному 32-нанометровому техпроцессу. Около 114 миллионов отведено под нужды графического чипа, каждое ядро занимает по 55 миллионов транзисторов, остальное уходит под дополнительные контроллеры. Для сравнения, полноценный 4-ядерный процессор AMD Phenom II X4 содержит 758 миллионов транзисторов, а 4-ядерные Nehalem использовали 731 миллион транзисторов. При всем при этом, полноценный процессорный кристалл Sandy Bridge занимает площадь 216 квадратных миллиметров ― кристалл одного из первых 4-ядерных процессоров Intel (Core 2 Quad) занимал аналогичную площадь при намного меньшем числе транзисторов и, соответственно, предлагал несоизмеримо меньшую производительность.

Теперь, позвольте рассказать о ключевых нововведениях микроархитектуры по порядку.

Кэш декодированных инструкций (micro-op cache) ― представленный в Sandy Bridge механизм micro-op cache сохраняет инструкции по мере их декодирования. При выполнении расчетов процессор определяет, попадала ли очередная инструкция в кэш. Если да, то препроцессор и вычислительный конвейер обесточиваются, что позволяет экономить электроэнергию. При этом 1,5 Кб декодированной кэш-памяти полностью интегрированы с кэшем первого уровня (L1).

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

Кольцевая шина ― для объединения многочисленных архитектурных блоков в процессорах Sandy Bridge используется продвинутая и очень скоростная кольцевая шина. Своим появлением интерфейс обязан интегрированному графическому ядру и транскодеру видео ― необходимость общаться с кэшем третьего уровня сделала предыдущую схему соединения (около 1000 контактов для каждого ядра) неэффективной. К переработанной шине подключены все важные компоненты процессора ― графика, х86-совместимые ядра, транскодер, Системный Агент, кэш-память L3.

Под названием «Системный Агент» (System Agent) скрывается блок, ранее известный, как un-core ― здесь объединены контроллеры, которые раньше были вынесены в северный мост на материнской плате. В состав агента входят 16 линков для соединения с шиной PCI Express 2.0, двухканальный контроллер оперативной памяти DDR3, интерфейс для соединения с общей системной шиной DMI, блок управления питанием и графический блок, ответственный за вывод картинки.

Одним из самых важных нововведений Sandy Bridge принято считать переработанный с нуля графический чип. Начнем с того, что теперь графика интегрирована с другими блоками в едином кристалле (ранее под металлической крышкой процессоров Clarkdale скрывалось два разрозненных чипа). Инженеры Intel хвастаются двойным увеличением пропускной способности компонентов графического чипа по сравнению с предыдущим поколением Intel HD Graphics благодаря изменению архитектуры унифицированных шейдерных процессоров, появлению доступа к кэш-памяти L3 и другим улучшениям. При этом в новых процессорах можно будет обнаружить сразу две существенно отличающиеся модели графического ядра ― HD Graphics 2000 и HD Graphics 3000. Первая предлагает шесть унифицированных шейдерных процессоров, вторая ― двенадцать. По заявлениям Intel и профильной прессы, новая графика делает самые дешевые дискретные видеокарты излишними, но в этом нам еще предстоит убедиться в рамках отдельного обзора. Чуть не забыли сказать, новые модели HD Graphics поддерживают DirectX 10, переход к более современным графическим технологиям состоится уже в следующих поколениях процессоров.

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

Измененные алгоритмы авторазгона Turbo Boost теперь позволяют процессору слегка переваливать за нормы прописанного энергопотребления на короткое время ― на практике это означает, что процессор сможет совершать скоростные забеги на малые дистанции. Разумеется, автоматика не даст перейти рубеж надежности. Напомним, Turbo Boost автоматически увеличивает частоту одного, двух, трех или четырех ядер при необходимости. Так, самая мощная модель Intel Core i7 2600 умеет увеличивать частоту одного ядра до 3,8 ГГц при работе с неоптимизированными под многоядерную архитектуру приложениями.
Заблокированный разгон

Со времен Pentium II компания Intel начала продавать процессоры с заблокированными множителями, чтобы пользователи не могли играть с частотой, а сама компания всегда имела возможность продавать одни и те же модели в разных ценовых диапазонах. Но оверклокеры всегда имели возможность регулировать частоту FSB. К сожалению, с приходом Sandy Bridge все снова меняется ― множитель в большинстве моделей наглухо заблокирован, а генератор частоты шины интегрирован в единственный мост чипсетов 6-й серии и заблокирован на частоте 100 МГц.

Единственной оверклокерской отдушиной остаются модификации с разблокированными множителями ― таких моделей в новой линейке немного, но они есть и стоят вполне адекватных денег.

Линейка

Настало время рассказать о процессорах, которые были представлены в первую очередь ― разобраться в новых названиях и понять, какой именно процессор стоит выбрать для своих целей.
Во время релиза Sandy Bridge компания Intel представила 29 (двадцать девять!) новых моделей Core iX ― четырнадцать для настольных и пятнадцать для мобильных компьютеров.

Производитель перешел на новую, еще более замутненную схему обозначениях процессоров, в которой и предстоит покопаться.
Итак, название каждого нового процессора настольной линейки состоит из обозначения бренда (Intel Core), названия конкретной линейки (i3, i5, i7), индекса (2600) и суффикса (K). Для настольной линейки предусмотрено всего три суффикса ― К (разблокированный множитель), S (энергопотребление 65 Вт) и T (энергопотребление 34-45 Вт). Теперь, самое странное ― мощный графический чип HD Graphics 3000 входит только в состав моделей с разблокированным множителем (К), остальные процессоры довольствуются заметно более слабым HD Graphics 2000.

Изначальная линейка Core 2011 для настольных компьютеров достаточно красиво разбивается по названию линейки. Так, процессоры Core i7 ― это четырехъядерные чипы с поддержкой Hyper Threading (4 ядра, 8 потоков), Core i3 ― простенькие двухъядерные чипы без поддержки Turbo Boost, но с поддержкой Hyper Threading (2 ядра, 4 потока), Core i5 ― в первую очередь четырехъядерные модели с поддержкой Turbo Boost, но без Hyper Threading. К сожалению, в будущем в рамках линейки Core i5 появятся и двухъядерные модели, однако они будут доступны в первую очередь для сборщиков готовых систем.

Еще один повод для дальнейшей дифференциации линейки ― авторазгон встроенного графического ядра. Изначально обе модели графики работают на частоте 850 МГц, однако процессоры Core i5 и Core i3 могут разгонять его до частоты 1100 МГц. Старшие Core i7 ― до 1350 МГц. Подумайте сами, каким образом подобное скажется на конечной производительности.

С мобильными модификациями Sandy Bridge все немного сложнее. Для начала, абсолютно все мобильные процессоры в новой линейке задействуют мощный графический чип HD Graphics 3000 (даже самые экономичные модели). По непонятным причинам компания Intel решила нарушить негласный закон маркетинга и разгуляться в индексах ― как мы будем разбираться в моделях с индексами 2657, 2537, 2410 и 2720 мы пока не решили. С точки зрения индексов здесь есть обозначения XM, QM, M, указывающие на ноутбуки для разных задач. Соответственно, ХМ ― это экстремальные модели для геймерских систем, М ― двухъядерные процессоры для экономичных ноутбуков, QM ― четырехъядерные процессоры для мэйнстримовых ноутбуков.

Разумеется, это далеко не все модели на ближайший год ― Intel продолжит экспериментировать и будет изредка радовать поклонников новыми модификациями. Главное, чтобы не нарушали придуманную собственными силами логику линеек.

Платформа

Вместе с Sandy Bridge были представлены чипсеты 6-й серии с необходимым процессорным разъемом LGA1155 ― первыми ласточками стали Intel P67 и Intel H67. Разобраться в двух модификациях проще простого. Intel P67 подходит для конфигураций, где будет использоваться дискретная видеокарта, при этом платформа поддерживает средства разгона. Плюс, платы на основе P67 предлагают 2х8 линий PCI Express 2.0 для конфигураций с несколькими видеокартами в режима AMD CrossFire или NVIDIA SLI. Intel H67, напротив, малопригодна для разгона, поддерживает только один порт PCI Express x16, зато умеет выводить видеосигнал.

Всем тем, кто мечтает получить все возможности на одной плате, придется немного подождать ― где-то во втором квартале 2011 года разработчики представят чипсет Intel Z68. Материнки на основе этого чипсета будут поддерживать встроенное в процессор графическое ядро, а также все особенности Intel P67.

Пару слов о новом процессорном разъеме ― Intel переделала схематику и структуру гнезда, так что старые модели Core 2010 для LGA 1156 использовать уже не получится. К счастью, размер сокета остался прежним, сюда можно установить многочисленные кулеры для LGA 1156 и не мучиться с поиском самых новых моделей.

В чипсетах все еще не появилась врожденная поддержка интерфейса USB 3.0, хотя рынок, вроде бы, вполне готов к подобным «инновациям». Поклонникам всего самого лучше придется ориентироваться на продвинутые материнские платы, куда производители встраивают сторонние контроллеры USB 3.0.

Благо, про новую версию интерфейса SATA компания Intel не забыла ― новые платформы поддерживают SATA3 с пропускной способностью до 6 Гбит/с. Понятно, что для классических шпиндельных винчестеров все эти скоростные прибавки не нужно, но накопители на основе флэш-памяти оценят скоростное окно по достоинству. К примеру, один из представленных на выставке CES флэш-винчестер раскроет свои скоростные способности только в паре с SATA3 ― в рамках SATA2 ему тесно (речь о Crucial RealSSD C300). Что важно, порты SATA3 на новых материнских платах соседствуют с SATA2, хотя новый интерфейс и предлагает полную обратную совместимость с предыдущим поколением ― при подключении своего супер-дорогого SSD будьте внимательнее.

В новых чипсетах производители наконец-то начинают избавляться от главного архаизма ― интерфейса BIOS. На замену топорному синему экрану из прошлого приходит UEFI ― новая оболочка поддерживает управление мышью (или тачпадом), предлагает заметно более современный и удобный интерфейс. Из других особенностей UEFI можно отметить врожденную поддержку жестких дисков объемом свыше 2,2 Тб.

Что мы имеем в итоге?

Среди экспертов распространено мнение, что Sandy Bridge ― это всего лишь эволюция предыдущих микроархитектур и ничего кардинально нового компания не представила. Мы же сходимся во мнении с другой частью аналитиков. Несмотря на то, что новая линейка не предлагает по-настоящему революционных возможностей, проделанная компанией Intel работа достойна всяческих похвал. Производитель довел все свои начинания до идеала ― провел полную интеграцию всех компонентов, улучшил графический чип до приемлемого уровня, доделал кольцевую шину, переработал функции препроцессора, пересмотрел возможности авторазгона Turbo Boost, внедрил фиксированный блок для обработки видео и так далее. В итоге перед нами совершенно новые процессоры, которые на голову опережают предыдущие поколения с точки зрения технических характеристик.

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

Превосходство первых Core i (Nehalem и, в 2009 г., Westmere) над ЦП соперника стало окончательным? Ситуация немного напоминает первый год после выхода Pentium II: почивая на лаврах и получая рекордную прибыль, хорошо бы сделать продолжение удачной архитектуры, не сильно изменив её название, добавив новые , использование которых значительно улучшит производительность, не забыв и о других новшествах, ускоряющих сегодняшние версии программ. Правда, в отличие от ситуации 10-летней давности, надо обратить внимание и на модную ныне тему энергоэффективности, обыгранную двусмысленным прилагательным Cool - «крутой» и «холодный», - и не менее модное стремление встроить в процессор всё, что пока ещё существует как отдельные . Вот под таким соусом и подана новинка.

«Позавчера», «вчера» и «сегодня» процессоров Intel.


Фронт конвейера. Цвета показывают разные виды информации и обрабатывающих или хранящих её блоков.

Предсказание

Начнём с заявления Intel о полностью переработанном (BPU). Как и в Nehalem, он каждый такт (и наперёд реального исполнения) предсказывает адрес следующей 32-байтовой порции кода в зависимости от предполагаемого поведения команд перехода в только что предсказанной порции - причём, судя по всему, вне всякой зависимости от числа и типа переходов. Точнее, если в текущей порции есть предположительно срабатывающий переход, выдаются его собственный и целевой адреса́, иначе - переход к следующей подряд порции. Сами предсказания стали ещё точней за счёт удвоения (BTB), удлинения (GBHR) и оптимизации хэш-функции доступа к (BHT). Правда, фактические тесты показали, что в некоторых случаях эффективность предсказания всё же чуть хуже, чем в Nehalem. Может быть, увеличение производительности с уменьшением потребления не совместимо с качественным предсказанием переходов? Попробуем разобраться.

В Nehalem (как и других современных архитектурах) BTB присутствует в виде двухуровневой иерархии - малый-«быстрый» L1 и большой-«медленный» L2. Происходит это по той же причине, почему существуют несколько уровней : одноуровневое решение окажется слишком компромиссным по всем параметрам (размер, скорость срабатывания, потребление и пр.). Но в SB архитекторы решили поставить один уровень, причём размером вдвое больше, чем L2 BTB у Nehalem, т. е. наверняка не менее 4096 ячеек - именно столько их в Atom. (Следует учесть, что размер наиболее часто исполняемого кода медленно растёт и всё реже умещается в кэше , размер которого совпадает у всех ЦП Intel с первых Pentium M.) По идее, при этом увеличится занимаемая BTB площадь, а т. к. общую площадь менять не рекомендуется (таков один из начальных постулатов архитектуры) - у какой-то другой структуры что-то придётся забрать. Но остаётся ещё и скорость. Учитывая, что SB должен быть рассчитан на чуть большую скорость при том же техпроцессе, можно ожидать, что эта крупная структура будет бутылочным горлышком всего конвейера - если только не конвейеризировать и её (двух уже хватит). Правда, общее число срабатывающих за такт транзисторов в BTB при этом удвоится, что совсем не способствует энергоэкономии. Опять тупик? На это Intel отвечает, что новый BTB хранит адреса в некоем сжатом состоянии, что позволяет иметь вдвое больше ячеек при похожих площади и потреблении. Но проверить это пока невозможно.

Смотрим с другой стороны. SB получил не новые алгоритмы предсказания, а оптимизированные старые: общий, для косвенных переходов, циклов и возвратов. Nehalem имеет 18-битный GBHR и BHT неизвестного размера. Впрочем, можно гарантировать, что число ячеек в таблице меньше, чем 2 18 , иначе она бы заняла бо́льшую часть ядра. Поэтому существует специальная хэш-функция, сворачивающая 18 бит истории всех переходов и биты адреса команды в индекс меньшей длины. Причём, скорее всего, хэшей как минимум два - для всех битов GBHR и для тех, что отражают срабатывание наиболее трудных переходов. И вот эффективность хаотичного распределения индексами различных шаблонов поведения по номерам ячеек BHT определяет успешность предсказателя общего вида. Хотя явно это не сказано, но Intel наверняка улучшила хэши, что позволило использовать GBHR бо́льшей длины с не меньшей эффективностью заполнения. А вот о размере BHT по прежнему можно гадать - как и о том, как на самом деле изменилось потребление энергии предсказателем в целом… Что касается (RSB), он по-прежнему 16-адресный, но введено новое ограничение на сами вызовы - не более четырёх на 16 байт кода.

Пока мы не ушли далее, скажем о небольшом несоответствии декларируемой теории и наблюдаемой практики - а она показала, что предсказатель циклов в SB изъят, в результате чего предсказание финального перехода в начало цикла делается общим алгоритмом, т. е. хуже. Представитель Intel заверил нас, что ничего «хуже» быть не должно, однако…

Декодирование и IDQ

Предсказанные наперёд адреса исполняемых команд (попеременно для каждого потока - при включенной технологии ) выдаются для проверки их наличия в кэшах команд (L1I) и (L0m), но о последнем умолчим - опишем пока остальную часть фронта. Как ни странно, Intel сохранила размер считываемой из L1I порции команд в 16 байт (тут слово «порция» понимается согласно нашему ). До сих пор это было препятствием для кода, средний размер команд которого перерос 4 байта, а потому 4 команды, желательные для исполнения за такт, уже не уместятся в 16 байт. AMD решила эту проблему в архитектуре K10, расширив порцию команд до 32 байт - хотя её ЦП пока имеют не более чем 3- конвейер. В SB неравенство размеров приводит к побочному эффекту: предсказатель выдаёт очередной адрес 32-байтового блока, и если обнаружится (предположительно) срабатывающий переход в его первой половине, то считывать и декодировать вторую не надо - однако это будет сделано.

Из L1I порция попадает в предекодера, а оттуда - в сам -длиномер (), обрабатывающий до 7 или 6 команд/такт (с и без ; Nehalem умел максимум 6) в зависимости от их совокупной длины и сложности. Сразу после перехода обработка начинается с команды по целевому адресу, иначе - с того байта, перед которым предекодер остановился тактом ранее. Аналогично с финальной точкой: либо это (вероятно) срабатывающий переход, адрес последнего байта которого поступил от BTB, либо последний байт само́й порции - если только не достигнут предел в 7 команд/такт, или не встретилась «неудобная» команда. Скорее всего, буфер длиномера имеет всего 2–4 порции, однако длиномер может получить из него любые 16 подряд идущих байт. Например, если в начале порции опознаны 7 двухбайтовых команд, то в следующем такте можно обработать ещё 16 байт, начиная с 15-го.

Длиномер, помимо прочего, занимается обнаружением пар макросливаемых команд. О самих парах поговорим чуть позже, а пока заметим, что, как и в Nehalem, каждый такт может быть обнаружено не более одной такой пары, хотя максимум их можно было бы разметить 3 (и ещё одну одиночную команду). Однако измерение длин команд - процесс частично последовательный, так что определить несколько макросливаемых пар не удалось бы в течение такта.

Размеченные команды попадают в одну из двух команд (IQ: instruction queue) - по одной на поток, на 20 команд каждая (что на 2 больше, чем у Nehalem). попеременно читает команды из очередей и переводит их в мопы. В нём есть 3 простых (переводят 1 команду в 1 моп, а с макрослиянием - 2 команды в 1 моп), сложный транслятор (1 команда в 1–4 мопа или 2 команды в 1 моп) и микросеквенсер для самых сложных команд, требующих 5 и более мопов из . Причём хранит только «хвосты» каждой последовательности, начиная с 5-го мопа, потому что первые 4 выдаются сложным транслятором. При этом если число мопов в микропрограмме не делится нацело на 4, то их последняя четвёрка будет неполной, но вставить ещё 1–3 мопа от трансляторов в этом же такте не получится. Результат декодирования поступает в и два (по одному на поток). Последние (официально именуемые IDQ - instruction decode queue, очередь декодированных команд) по-прежнему имеют по 28 мопов и возможность блокировки цикла, если его исполняемая часть там уместится.

Всё это (кроме кэша мопов) уже было в Nehalem. А в чём же различия? Прежде всего, что очевидно, декодер научили обрабатывать новые команды поднабора . Поддержка наборов SSE со всеми цифрами уже никого не удивляет, а ускорение шифрования командами (включая PCLMULQDQ) было добавлено в Westmere (32 нм версия Nehalem). В подложили подводный камень: эта функция не срабатывает для команд, имеющих и константу, и RIP-относительную адресацию (RIP-relative, адрес относительно -указателя команды - обычный способ обращения к данным в 64-битном коде). Такие команды требуют 2 мопа (отдельно загрузка и операция), а значит - декодер их обработает не более одной за такт, используя лишь сложный транслятор. Intel утверждает, что эти жертвы сделаны для экономии энергии, только не ясно, на чём: двухкратные размещение, исполнение и мопов явно займут больше ресурсов, а значит - и потребят энергии, чем один.

Макрослияние оптимизировано - ранее в качестве первой сливаемой команды могло быть лишь арифметическое или логическое сравнение (CMP или TEST), теперь же допустимы простые арифметические команды сложения и вычитания (ADD, SUB, INC, DEC) и логического «И» (AND), также меняющие для перехода (вторая команда пары). Это позволяет почти в любом цикле сократить последние 2 команды до 1 мопа. Разумеется, ограничения на сливаемые команды остались, но они некритичны, т. к. перечисленные ситуации для пары команд почти всегда исполняются:

  • первый первой команды должен быть регистром;
  • если второй операнд первой команды находится в памяти, RIP-относительная адресация недопустима;
  • вторая команда не может находиться в начале или пересекать границу строк.

Правила для самого́ перехода такие:

  • только TEST и AND совместимы с любым условием;
  • сравнения на (не) равно и любые знаковые совместимы с любой разрешённой первой командой;
  • сравнения на (не) перенос и любые беззнаковые не совместимы с INC и DEC;
  • остальные сравнения (знак, переполнение, чётность и их отрицания) допустимы лишь для TEST и AND.

Главное изменение в очередях мопов - слитые мопы типа , обращение в память в которых требует чтения индексного регистра, (и ещё несколько редких видов) при записи в IDQ разделяются на пары. Даже если таких мопов попадётся 4, то в IDQ запишутся все 8 итоговых. Делается это потому, что в очередях мопов (IDQ), диспетчера (ROB) и резервации теперь применяется сокращённый формат мопа без 6-битного поля индекса (разумеется, для экономии при перемещении мопов). Предполагается, что такие случаи будут редки, а потому на скорость сильно влиять не будут.

Историю возникновения у этого буфера режима блокировки цикла мы расскажем ниже, а тут лишь укажем одну мелочь: переход на начало цикла ранее занимал 1 дополнительный такт, образуя «пузырь» между чтениями конца и начала цикла, а теперь его нет. Тем не менее, в четвёрке читаемых за такт мопов не могут оказаться последние из текущей итерации и первые из следующей, поэтому в идеале число мопов в цикле должно нацело делиться на 4. Ну а критерии для его блокировки почти не изменились:

  • мопы цикла должны порождаться не более чем 8-ю 32-байтовыми порциями исходного кода;
  • эти порции должны быть закэшированы в L0m (в Nehalem, разумеется, - в L1I);
  • допускается до 8 безусловных переходов, предсказанных как срабатывающие (включая финальный);
  • вызовы и возвраты недопустимы;
  • недопустимы непарные обращения в стек (чаще всего при неравном числе команд PUSH и POP) - об этом ниже.

Стековый движок

Есть ещё один механизм, работу которого мы в прошлых статьях не рассматривали - стековый движок (stack pointer tracker, «следитель за указателем (на вершину) стека»), расположенный перед IDQ. Он появился ещё в Pentium M и до сих пор не изменился. Суть его в том, что модификация указателя стека (регистра ESP/RSP для 32/64-битного режима) командами для работы с ним (PUSH, POP, CALL и RET) делается отдельным сумматором, результат хранится в специальном регистре и возвращается в моп как константа - вместо того, чтобы модифицировать указатель в после каждой команды, как это требует и как было в ЦП Intel до Pentium M.

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

Внимательный Читатель (добрый день!) заметит связь: при зацикливании очереди мопов непарные обращения в стек недопустимы именно по причине того, что стековый движок в конвейере находится до IDQ - если после очередной итерации значение теневого указателя окажется ненулевым, в новой потребуется вставить синхромоп, а в циклическом режиме это невозможно (мопы только читаются из IDQ). Более того, стековый движок вообще при этом выключен для экономии энергии, как и все остальные части фронта.

Тайная жизнь нопов

Ещё одно изменение коснулось длиномера, но этот случай несколько выделяется. Сначала вспомним, что такое и зачем они нужны. Когда-то в архитектуре x86 ноп был лишь 1-байтовый. Когда требовалось сместить код более чем на 1 байт или заменить команды длиной более 1-го байта, ноп просто вставляли несколько раз. Но несмотря на то, что эта команда ничего не делает, время на её декодирование всё-таки тратится, причём пропорционально числу нопов. Чтобы производительность «пропатченной» программы не просела, ноп можно удлинить . Однако в ЦП 90-х годов темп декодирования команд с числом префиксов выше определённой величины (которая куда меньше максимально допустимой длины x86-команды в 15 байт) резко падал. Кроме того, конкретно для нопа префикс применяется, как правило, одного вида, но многократно повторенный, что допускается лишь как нежелательное исключение, усложняющие длиномер.

Для разрешения указанных проблем начиная с Pentium Pro и Athlon процессоры понимают «длинный ноп» с байтом modR/M для «официального» удлинения команды с помощью регистров и адресного смещения. Естественно, никаких операций с памятью и регистрами не происходит, но при определении длины используются те же блоки длиномера, что и для обычных многобайтовых команд. Теперь использование длинных нопов официально рекомендуется учебниками по низкоуровневой программной оптимизации и от Intel, и от AMD. Кстати, предекодер SB вдвое (с 6 до 3 тактов) уменьшил штраф за префиксы 66 и 67, меняющие длину константы и адресного смещения - но, как и в Nehalem, штраф не накладывается на команды, где эти префиксы фактически не меняют длину (например, если префикс 66 применён к команде без непосредственного операнда) или являются частью списка переключателей (что сплошь и рядом используется в векторном коде).

Максимальная длина верно оформленного длинного нопа не превышает 9 байт для Intel и 11 для AMD. А потому для выравнивания на 16 или 32 байта нопов всё-таки может быть несколько. Однако т. к. команда эта простая, её декодирование и «исполнение» займёт ресурсов никак не больше обработки самых простых действующих команд. Поэтому уже много лет тестирование длинными нопами является стандартным методом определения параметров фронта конвейера, в частности - длиномера и декодера. И вот тут Sandy Bridge преподнёс очень странный сюрприз: тестирование производительности обычных программ не выявило никаких задержек и замедлений, а вот дежурная синтетическая проверка параметров декодера неожиданно показала, что его производительность равна одной команде за такт! При этом никаких официальных оповещений о таких радикальных изменениях в декодере Intel не давала.

Процедура замера отлично работала ещё на Nehalem и показывала верные 4 . Можно свалить вину на новый и «чрезмерно» активный Turbo Boost 2.0, портящий замеряемые показатели тактов, но для тестов он был отключен. Перегрев с замедляющим частоту тротлингом тоже исключён. А когда, наконец, причина обнаружилась - стало ещё страннее: оказывается, длинные нопы на SB обрабатываются только первым простым транслятором, хотя 1-байтовые нопы с любым числом префиксов и аналогичные «по бездействию» команды (например, копирование регистра в себя) запросто принимаются всеми четыремя. Зачем так было делать - не ясно, однако как минимум один недостаток такого технического решения уже себя явно показал: на выяснение причин загадочной медлительности декодера нашей исследовательской командой было угрохано дней десять… В отместку просим яростных фанатов Противоположного Лагеря придумать какую-нибудь конспирологическую теорию о коварных планах некой компании I. по запутыванию наивных доблестных исследователей процессоров. :)

Кстати, как оказалось, «более равным» среди прочих транслятор №1 уже был. В Nehalem команды циклической прокрутки (ROL и ROR) с явным операндом-константой тоже декодировались только в первом трансляторе, причём в этом же такте отключался четвёртый, так что величина IPC падала до 3-х. Казалось бы - зачем приводить тут такой редкий пример? Но именно из-за этого подвоха, чтобы добиться пиковой скорости на алгоритмах хэширования вроде SHA-1, нужна была очень точная планировка команд, с которой компиляторы не справлялись. В SB же такие команды просто стали 2-мопными, так что, занимая сложный транслятор (который и так один), они ведут себя почти неотличимо для ЦП, но более предсказуемо для человека и компилятора. С нопами же получилось всё наоборот. Кэш мопов

Цели и предшественники

Мы не зря отделили эту главу от остального описания фронта - добавление кэша мопов наглядно демонстрирует, какой путь выбрала Intel для всех своих процессоров, начиная с Core 2. В последний впервые (для Intel) был добавлен блок, который одновременно достигал две, казалось бы, противоречивые цели: увеличение скорости и экономия энергии. Речь идёт об очереди команд (IQ) между предекодером и декодером, хранившей тогда до 18 команд длиной до 64 байт в сумме. Если бы она только сглаживала разницу темпов подготовки и декодирования команд (как обычный буфер) - выгода была бы небольшая. Но в Intel догадались приделать к IQ небольшой блок LSD (вряд ли парни что-то «приняли», просто у них юмор такой) - Loop Stream Detector, «детектор циклического потока». При обнаружении цикла, умещающегося в 18 команд, LSD отключает все предыдущие стадии (предсказатель, кэш L1I и предекодер) и поставляет из очереди в декодер команды цикла, пока тот не завершится, либо пока не будет сделан переход за его пределы (вызовы и возвраты не допустимы). Таким образом экономится энергия за счёт отключения временно простаивающих блоков и увеличивается производительность за счёт гарантированного потока в 4 команды/такт для декодера, даже если они были «снабжены» самыми неудобными префиксами.

Intel явно понравилась эта идея, так что для Nehalem схема была оптимизирована: IQ продублирована (для двух потоков), а между декодером и диспетчером (т. е. аккурат на границе фронта и тыла) были поставлены две очереди IDQ на 28 мопов каждая, и блок LSD перенесли к ним. Теперь при блокировке цикла отключается ещё и декодер, а производительность поднялась в т. ч. за счёт гарантированного притока уже не 4-х команд, а 4-х мопов за такт, даже если их генерация производилась с минимальным (для Core 2/i) темпом в 2 мопа/такт. Яростные фанаты Противоположного Лагеря, на секунду оторвавшись от любимого занятия, тут же вставят шпильку: если LSD такая хорошая штука, почему же его не встроили в Atom? И шпилька справедлива - имея 32-моповую очередь после декодера, Atom не умеет блокировать в ней цикл, что как раз очень бы пригодилось для экономии драгоценных милливатт. Тем не менее, Intel не собиралась бросать идею и для новых ЦП подготовила обновление, да ещё какое!

Официальное внутреннее название кэша мопов - DSB (decode stream buffer: буфер потока декодирования), хотя он не так точно отражает суть, как рекомендуемый термин DIC (decoded instruction cache: кэш декодированных команд). Как ни странно, он не подменяет, а дополняет очереди IDQ, которые теперь соединяются с декодером или с кэшем мопов. При очередном предсказании перехода целевой адрес одновременно проверяется в кэшах команд и мопов. Если сработает последний - то далее считывание идёт из него, а остальной фронт отключается. Вот почему кэш мопов является кэшем нулевого уровня для мопов, т. е. L0m.

Интересно, что продолжить эту мысль можно, назвав IDQ кэшами «минус первого» уровня. :) Но не является ли такая сложная иерархия в рамках даже не всего ядра, а одного только фронта избыточной? Пускай Intel в качестве исключения не пожалела площадь, но принесёт ли пара IDQ существенную дополнительную экономию, учитывая, что при их работе теперь отключается лишь кэш мопов, т. к. остальной фронт (кроме предсказателя) и так спит? И ведь особой прибавки к скорости тоже не получишь, т. к. кэш мопов также настроен на генерацию 4 мопов/такт. Видимо, инженеры Intel решили, что 3-уровневая игра стоит милливаттовых свеч.

Кроме экономии, кэш мопов ускоряет производительность в т. ч. сокращением штрафа при фальш-предсказании перехода: в Nehalem при нахождении верного кода в L1I штраф был 17 тактов, в SB - 19, но если код нашёлся в L0m - то только 14. Причём это максимальные цифры: при ложно предсказанного перехода планировщику надо ещё запустить и завершить предыдущие в программном порядке мопы, а за это время L0m может успеть подкачать верные мопы, чтобы планировщик успел их запустить сразу после отставки команд до перехода. В Nehalem такой приём работал с IDQ и фронтом, но в первом случае вероятность того, что верный целевой адрес тоже будет внутри 28-мопового цикла, весьма мал, а во втором медлительность фронта в большинстве случаев не позволяла снизить задержку до нуля. У SB такой шанс больше.

Устройство

Топологически L0m состоит из 32 по 8 строк (8- ). В каждой строке хранится 6 мопов (во всём кэше - 1536, т. е. «полтора киломопа»), причём за такт кэш может записать и считать по одной строке. Предсказатель выдаёт адреса 32-байтовых блоков, и именно этот размер является рабочим для L0m, поэтому далее под термином «порция» будем понимать выровненный и предсказанный как исполняющийся 32-байтовый блок кода (а не 16-байтовый, как для декодера). При декодировании контроллер L0m ждёт обработки порции до конца или до первого срабатывающего в ней перехода (разумеется, предположительно - тут и далее полагаем предсказания всегда верными), накапливая мопы одновременно с их отправкой в тыл. Затем он фиксирует точки входа в порцию и выхода из неё, согласно поведению переходов. Обычно точкой входа оказывается целевой адрес срабатывающего в предыдущей порции перехода (точнее, младшие 5 бит адреса), а точкой выхода - собственный адрес срабатывающего перехода в этой порции. В крайнем случае, если ни в предыдущей, ни в текущей порциях не сработает ни один переход (т. е. порции не только исполняются, но и хранятся подряд), то обе выполнятся целиком - вход в них будет на нулевом мопе и первом байте первой целиком уместившейся в этой порции команды, а выход - на последнем мопе последней целиком уместившейся команды и её начальном байте.

Если в порции оказалось более 18 мопов - она не кэшируется. Это задаёт минимум среднего (в пределах порции) размера команды в 1,8 байта, что не будет серьёзным ограничением в большинстве программ. Можно вспомнить второй пункт ограничений IDQ - если цикл уместится в порции, но займёт от 19 до 28 мопов, его не зафиксируют ни кэш L0m, ни очередь IDQ, хотя по размеру он бы везде уместился. Впрочем, в этом случае средняя длина команд должна быть 1,1–1,7 байта, что для двух десятков команд подряд крайне маловероятно.

Скорее всего, мопы порции одновременно записываются в кэш, занимая 1–3 строки одного набора, так что для L0m нарушается один из главных принципов работы наборно-ассоциативного кэша: при обычно срабатывает одна строка набора. Тут же теги до трёх строк могут получить адрес одной и той же порции, отличаясь лишь порядковыми номерами. При попадании предсказанного адреса в L0m считывание происходит аналогично - срабатывают 1, 2 или 3 пути нужного набора. Правда, такая схема таит в себе недостаток.

Если исполняемая программа во всех порциях декодируется в 13–18 мопов, что займёт по 3 строки L0m для всех порций, обнаружится следующее: если текущий набор уже занят двумя 3-строчными порциями, и в него пытается записаться третья (которой не хватит одной строки), придётся вытеснить одну из старых, а с учётом её связности - все 3 старых. Таким образом больше двух порций «мелко-командного» кода в наборе не должно уместиться. При проверке этого предположения на практике получилось вот что: порции с крупными командами, требующие менее 7 мопов, упаковались в L0m числом в 255 (ещё одну занять почему-то не получилось), уместив почти 8 КБ кода. Средние порции (7–12 мопов) заняли все 128 возможных позиций (по 2 строки каждая), закэшировав ровно 4 КБ. Ну а мелкие команды уместились в 66-и порциях, что на две больше ожидаемого значения (2112 байт против 2048), что, видимо, объясняется граничными эффектами нашего тестового кода. Недостача на лицо - если бы 256 6-моповых строк могли быть заполнены полностью, их бы хватило на 85 полных троек с общим размером кода 2720 байт.

Возможно, Intel не рассчитывает, что в каком-то коде будет так много коротких и простых команд, что более 2/3 его придётся на 3-строчные порции, которые станут вытеснять друг друга из L0m раньше необходимого. А даже если такой код и встретится - учитывая простоту его декодирования, остальные блоки фронта запросто справятся с задачей поставки необходимых тылу 4 мопов/такт (правда, без обещанной экономии ватт и тактов штрафа при фальш-предсказании). Любопытно, что имей L0m 6 путей, проблемы бы не возникло. Intel же решила, что иметь размер кэша на треть больше именно за счёт ассоциативности - важнее…

Размеры

Вспомним, что идея кэшировать большое количество мопов вместо команд x86, не нова. Впервые она появилась в Pentium 4 в виде кэша моп-трасс - последовательностей мопов после развёртки циклов. Причём кэш трасс не дополнял, а заменял отсутствующий L1I - команды для декодера читались сразу из . Не смотря на забвение архитектуры NetBurst, разумно предположить, что инженеры Intel использовали прошлый опыт, хоть и без развёртки циклов и выделенного для кэша предсказателя. Сравним старое и новое решения (новые ЦП тут названы Core i 2, потому что номера почти всех моделей с архитектурой SB начинаются с двойки):

* - предположительно

Тут нужны пояснения. Во-первых, пропускная способность для L0m указана с учётом общего ограничения ширины конвейера в 4 мопа. Выше мы предположили, что за такт L0m может прочесть и записать по 18 мопов. Однако при чтении все 18 (если их получилось именно столько при декодировании оригинальной порции) не могут быть отправлены за такт, и отправка происходит за несколько тактов.

Далее, размер мопа в битах вообще относится к очень деликатной информации, которую производители либо вообще не выдают, либо только при припирании к стенке (дескать, вы и так уже всё вычислили, так и быть - подтвердим). Для ЦП Intel последняя достоверно известная цифра - 118 бит для Pentium Pro. Ясно, что с тех пор размер увеличился, но с этого места начинаются догадки. 118 бит для 32-битного x86-ЦП может получиться, если в мопе есть поля для адреса породившей его команды (32 бита), непосредственного операнда (32 бита), адресного смещения (32 бита), регистровых операндов (3 по 3 бита + 2 бита на масштаб для индексного регистра) и опкода (11 бит, в которых закодирован конкретный вариант x86-команды с учётом префиксов). После добавления , и SSE2 поле опкода наверняка выросло на 1 бит, откуда и получена цифра 119.

После перехода на (Prescott и далее), по идее, все 32-битные поля должны возрасти до 64-х бит. Но тут есть тонкости: 64-битные константы в x86-64 допускаются только по одной (т. е. более 8 байт обе константы в команде точно не займут), а и тогда, и сейчас пока обходится 48 битами. Так что увеличить размер мопа требуется всего на 16 бит адреса и 3 дополнительных бита номеров регистров (коих стало 16) - получаем (примерно) 138 бит. Ну а в SB моп, видимо, вырос ещё на 1 бит за счёт добавления очередных нескольких сотен команд со времён последних P4, и ещё на 8 - за счёт увеличения максимального числа явно указанных регистров в команде до 5 (при использовании AVX). Последнее, впрочем, сомнительно: со времён, представьте себе, аж i386 в архитектуру x86 не была добавлена ни одна новая команда, требующая хотя бы 4 байта константы (с единственным недавним и крайне незаметным исключением в SSE4.a от AMD, о котором даже большинство программистов не знает). А т. к. Intel AVX и AMD обновили кодировку лишь векторных команд, биты номеров дополнительных регистров уместятся в старшей половине частично неиспользуемого (для этих команд) 32-битного поля непосредственного операнда. Тем более, что и в само́й x86-команде 4-й или 5-й регистр кодируется как раз четыремя битами константы.

Очевидно, что хранить и пересылать таких «монстров» в сколько-нибудь большом количестве - сильно затратно. Поэтому ещё для P4 Intel придумала сокращённый вариант мопа, в котором лишь одно поле для обеих констант, причём если они там не умещаются, то недостающие биты размещаются в этом же поле соседнего мопа. Однако если он уже хранит там свои константы, то в качестве соседа приходится вставлять ноп как донор-носитель дополнительных бит. Преемственность такой схемы наблюдается и в SB: лишние нопы не вставляются, но команды с 8-байтовыми константами (или с суммой размеров константы и адресного смещения в 5–8 байт) имеют в L0m двойной размер. Впрочем, учитывая длину таких команд, больше 4-х их в порции не уместится, так что ограничение по занимаемым мопам явно некритично. Тем не менее, констатируем: SB, в отличие от предыдущих ЦП, имеет аж 3 формата мопов - декодируемый (самый полный), хранимый в кэше мопов (с сокращением констант) и основной (без поля регистра индекса), используемый далее в конвейере. Впрочем, большинство мопов проходят нетронутыми от декодирования до отставки.

Ограничения

«Правила пользования кэшем» на спецформате мопов не заканчиваются. Очевидно, столь удобный блок как L0m никак не мог оказаться совсем без ограничений той или иной степени серьёзности, о которых нам не рассказали в рекламных материалах. :) Начнём с того, что все мопы транслируемой команды должны уместиться в одной строке, иначе они переносятся в следующую. Это объяснимо тем, что адреса мопов строки хранятся отдельно (для экономии 48 бит в каждом мопе), а все порождаемые командой мопы должны соответствовать адресу её первого байта, хранимому в теге только одной строки. Для восстановления оригинальных адресов в тегах хранятся длины породивших мопы команд. «Непереносимость» мопов несколько портит эффективность использования L0m, т. к. изредка встречающиеся команды, генерирующие несколько мопов, имеют существенный шанс не уместиться в очередной строке.

Более того, мопы самых сложных команд по-прежнему хранятся в ПЗУ с микрокодом, а в L0m попадают лишь первые 4 мопа последовательности, плюс ссылка на продолжение, так что всё вместе занимает целую строку. Из этого следует, что в порции могут встретиться не более трёх микрокодовых команд, а учитывая средний размер команды более вероятным пределом будут две. В реальности, впрочем, они попадаются куда реже.

Ещё один важный момент - L0m не имеет своего . Вроде бы, это должно ускорять проверку адресов (которые тут только виртуальные) и уменьшить потребление энергии. Но всё гораздо интересней - не зря все современные кэши имеют . Виртуальные адресные пространства исполняемых в ОС программ могут пересекаться, поэтому при переключении контекста задачи, чтобы по тем же адресам не считать старые данные или код, виртуально адресуемый кэш должен сбрасываться (именно так было с кэшем трасс у P4). Разумеется, его эффективность при этом будет низкой. В некоторых архитектурах применяются т. н. ASID (address space identifier, идентификатор адресного пространства) - уникальные числа, присваиваемые ОС каждому потоку. Однако x86 не поддерживает ASID за ненадобностью - учитывая наличие физических тегов для всех кэшей. Но вот пришёл L0m и нарушил картину. Более того, вспомним, что кэш мопов, как и большинство ресурсов ядра, разделяется между двумя потоками, так что в нём окажутся мопы разных программ. А если добавить переключение между виртуальными ОС в соответствующем режиме, то мопы двух программ могут совпасть по адресам. Что же делать?

Проблема с потоками решается просто - L0m просто делится пополам по наборам, так что номер потока даёт старший бит номера набора. Кроме того, L1I имеет политику хранения относительно L0m. Поэтому при вытеснении кода из L1I происходит и удаление его мопов из L0m, что требует проверки двух смежных порций (размер строки всех кэшей современных ЦП, не считая самого́ L0m - 64 байта). Таким образом виртуальный адрес из закэшированных мопов всегда можно проверить в тегах L1I, используя его TLB. Выходит, что хоть L0m и имеет виртуальную адресацию, но заимствует физические теги для кода из L1I. Тем не менее, есть ситуация, при которой L0m целиком сбрасывается - и замещение в L1I TLB, а также его полный сброс (в т. ч. при переключении режимов работы ЦП). Кроме того, L0m совсем отключается, если базовый адрес селектора кода (CS) не равен нулю (что крайне маловероятно в современных ОС).

Работа

Главный секрет кэша мопов - алгоритм, подменяющий чтениями из L0m работу фронта по переработке команд в мопы. Начинается он с того, что при очередном переходе для выбора набора L0m использует биты 5–9 адреса цели перехода (или биты 5–8 плюс номер потока - при 2-поточности). В тегах набора указаны точка входа в порцию, мопы которой записаны в соответствующей тегу строке, и порядковый номер этой строки в пределах порции. Совпасть могут 1–3 строки, которые (скорее всего) одновременно считываются в 18-моповый буфер. Оттуда мопы четвёрками посылаются в IDQ, пока не будет достигнута точка выхода - и всё повторяется сначала. Причём когда в порции остаются неотправленными 1–3 последних мопа, они высылаются с 3–1 первыми мопами новой порции, в сумме составив обычную четвёрку. Т. е. с точки зрения принимающей мопы очереди IDQ все переходы сглажены в равномерный поток кода - как в P4, но без кэша трасс.

А теперь любопытный момент - в строке допускается не более двух переходов, причём если один из них - безусловный, то он окажется последним для строки. Наш Внимательный Читатель сообразит, что на всю порцию допустимо иметь до 6 условных переходов (каждый из которых может сработать, не будучи при этом точкой выхода), либо 5 условных и 1 безусловный, который будет последней командой порции. Предсказатель переходов в ЦП Intel устроен так, что он не замечает условный переход, пока он хотя бы раз не сработает, и только после этого его поведение будет предсказываться. Но даже «вечносрабатывающие» переходы тоже подпадают под ограничение. Фактически это значит, что завершить исполнение мопов порции допустимо и до точки её выхода.

А вот аналогичный трюк со множественным входом не пройдёт - если происходит переход в уже закэшированную порцию, но по другому смещению в ней (например, когда там более одного безусловного перехода), то L0m фиксирует промах, включает фронт и запишет поступившие мопы в новую порцию. Т. е. в кэше допустимы копии для порций с разными входами и одинаковым, точно известным выходом (помимо ещё нескольких возможных). А при вытеснении кода из L1I в L0m удаляются все строки, точки входа которых попадают в любой из 64-х байт двух порций. Кстати, в кэше трасс P4 тоже были возможны копии, причём они существенно уменьшали эффективность хранения кода…

Такие ограничения уменьшают доступность пространства L0m. Попробуем подсчитать, сколько же его остаётся для фактического использования. Средний размер команды x86-64 - 4 байта. Среднее число мопов на команду - 1,1. Т. е. на порцию скорее всего придётся 8–10 мопов, что составляет 2 строки. Как было ранее подсчитано, L0m сможет сохранить 128 таких пар, чего хватит на 4 КБ кода. Однако с учётом неидеального использования строк реальное число будет, видимо, 3–3,5 КБ. Интересно, как это вписывается в общий баланс объёмов кэшевой подсистемы?

  • 1 (фактически часть L3, в среднем приходящаяся на ядро) - 2 МБ;
  • L2 - 256 КБ, в 8 раз меньше;
  • оба L1 - по 32 КБ, в 8 раз меньше;
  • кэшируемый объём в L0m - примерно в 10 раз меньше.

Любопытно, что если найти в ядре ещё одну структуру, хранящую много команд или мопов, то ей окажется очередь ROB диспетчера, в которой умещается 168 мопов, генерируемые примерно 650–700 байтами кода, что в 5 раз меньше эффективного эквивалентного объёма L0m (3–3,5 КБ) и в 9 раз меньше полного (6 КБ). Таким образом, кэш мопов дополняет стройную иерархию различных хранилищ кода с разными, но хорошо сбалансированными параметрами. Intel утверждает, что в среднем 80% обращений попадают в L0m. Это значительно ниже цифры в 98–99% для кэша L1I на 32 КБ, но всё равно - в четырёх случаях из пяти кэш мопов оправдывает своё присутствие.

Очередной обзор на тему нового продукта Intel, как правило, начинается с объяснения стратегии процессорного гиганта под названием Тик-Так. Смысл ее заключается в том, что каждые два года миру представляется новая архитектура с промежуточным переходом на более тонкий техпроцесс.


Благодаря ей, прогресс на рынке не останавливается и мы постоянно сталкиваемся с более функциональными и производительными решениями. Правда, некоторые нововведения не так сильно влияют на производительность, как того хотелось бы. Например, переход от архитектуры Core к Nehalem серьезной прибавки в скорости не принес, но позволил отказаться от привычной шины FSB и сделать ЦП более интегрированным, содержащим в себе не только контроллер памяти, но и графическое ядро. Последним оснащались очень медленные представители семейства Westmere. Следующий шаг Intel призван как раз исправить сложившуюся ситуацию и вывести будущие продукты на новый уровень производительности.

Семейство процессоров Intel, выполненных по 32-нм технологическим нормам (ядро Clarkdale) оказалось медленнее первых решений на базе архитектуры Nehalem (Bloomfield и Lynnfield). Исключением были шестиядерные Core i7-9xx (Gulftown), лишенные встроенного видеоядра. Такое поведение было обусловлено строением младших представителей Westmere, которые состояли из двух кристаллов. На одном из них располагались вычислительные блоки и кэш, а на другом — контроллеры памяти, шины PCI Express и графическое ядро. Связь между этими половинками осуществлялась за счет интерфейса QPI. Естественно, этот гибрид не смог демонстрировать чудес производительности, даже несмотря на поддержку технологии Hyper-Threading, благодаря которой он лишь конкурировал с младшими четырехъядерными моделями Core 2.

При такой высокой интеграции использование монолитного кристалла с внутренними широкими шинами для обмена информацией между блоками напрашивается само собой. Пройдя обкатку 32-нм техпроцесса, инженеры компании наконец-то смогли объединить все блоки в одном чипе и даже пересмотрели архитектуру, которая получила название Sandy Bridge.


Итак, что же в ней такого особенного? Во-первых, как уже отмечалось, все функциональные блоки теперь располагаются на одном кристалле, а количество ядер в производительных моделях процессоров увеличено до четырех. Во-вторых, разделяемая кэш-память третьего уровня стала общей для всех, включая видеоядро, и работает она на частоте процессора, что наилучшим образом скажется на производительности последнего. Кроме того, было увеличено быстродействие графического ядра, а часть северного моста, известная по старым процессорам как Uncore, теперь называется System Agent. И в-третьих, тактовый генератор встроен в чипсет и разгон по базовой частоте теперь потерял свою актуальность. Но обо всем по порядку.


Основные представители архитектуры Sandy Bridge содержат четыре ядра и поддерживают технологию Hyper-Threading, благодаря которой процессоры могут выполнять восемь потоков одновременно. Кэш-память третьего уровня (или LLC — last level cache, кэш последнего уровня) теперь работает на частоте процессора, имеет объем в восемь мегабайт и может использоваться всеми блоками ЦП, которые в нем нуждаются. Учитывая большое количество потребителей и возможный рост числа ядер в будущих процессорах, инженерам Intel пришлось отказаться от привычной топологии связи между узлами и отдать предпочтение 256-битной кольцевой шине, соединяющей вычислительные ядра, кэш, графический процессор и «системный агент». Пропускная способность такой шины за такт равна произведению количества процессорных ядер на ее ширину. Для четырехъядерного Sandy Bridge с 8 мегабайтами кэша и частотой 3,0 ГГц она составит 384 Гбайт в секунду (96 Гбайт/с на одно соединение), а для двухъядерного — лишь 192 Гбайт/с.


Объемы кэш-памяти остальных уровней остались без изменений (по 32 Кбайт для инструкций и данных, и 256 Кбайт второго уровня для каждого ядра), но скорость работы с ними теперь выше. Был еще добавлен так называемый L0-кэш на 1,5 тыс. декодированных микроопераций, позволяющий повысить быстродействие процессора и его энергоэффективность.

System Agent, пришедший на смену Uncore, является аналогом северного моста и содержит контроллеры памяти DDR3 и шин PCI Express, DMI, блок видеовыхода и модуль управления питанием (Power Control Unit, PCU). В отличие от того же Uncore, «системный агент» функционирует отдельно от L3-кэша и не зависит от его частоты и напряжения питания. Ранее связь с кэш-памятью третьего уровня накладывала сильные ограничения при разгоне процессоров, особенно на ядре Bloomfield. Двухканальный контроллер памяти был переработан и его производительность с латентностью теперь не хуже, чем у лучших представителей архитектуры Nehalem. Из поддерживаемой памяти заявлена DDR3-1066 и DDR3-1333, но при использовании материнских плат на чипсете Intel P67 Express можно будет устанавливать модули частотой до 2133 МГц. Количество линий PCI Express 2.0 по сравнению с предшественниками не изменилось и составляет 16 штук. При работе CrossFireX или SLI они могут комбинироваться по восемь линий для каждой видеокарты. «Системный агент», вычислительные ядра с кэшем и графический процессор трактуются отдельно друг от друга и имеют свои напряжения питания. Модуль PCU собирает данные по уровню энергопотребления и тепловыделения этих блоков и управляет их состоянием, переводя либо в экономичный режим работы, либо в производительный. Благодаря раздельной схеме тактования частот, ЦП и видеоядро за счет технологии Turbo Boost 2.0 могут разгоняться независимо друг от друга, и даже сверх нормы уровня TDP, но лишь на непродолжительное время и при условии, что процессор до этого простаивал некоторое время.


Помимо архитектурных изменений, в новых процессорах появилась поддержка 256-битных инструкций AVX (Advanced Vector Extensions), являющихся дальнейшим развитием SSE и позволяющих увеличить скорость вычислений с плавающей точкой в мультимедиа-приложениях, научных и финансовых задачах. Поддержка инструкций AES-NI, которые появились в Westmere и давали возможность повысить быстродействие шифрования и дешифрования по алгоритму AES, продолжила свое существование и в Sandy Bridge.

Новое графическое ядро Intel HD Graphics хоть и относится к новому поколению, но существенных архитектурных различий между ним и графическим процессором, встроенным в Clarkdale, нет. Это все те же 12 шейдерных блока (для HD Graphics 3000 и шесть для HD Graphics 2000), но уже с поддержкой DirectX 10.1 и OpenGL 3.0.


За счет переноса видеоядра на общий с процессором кристалл, выполненный по 32-нм технологическим нормам, стало возможным увеличивать тактовую частоту GPU до 1,35 ГГц. Это может положительно сказаться на быстродействии видеоподсистемы, вплоть до конкуренции с дискретными графическими адаптерами начального уровня AMD и NVIDIA. Но даже на такой частоте скорость в игровых приложениях все равно будет оставлять желать лучшего. В новой версии Intel HD Graphics скорее будет интересна возможность аппаратного кодирования видео формата MPEG2 и H.264, новые фильтры пост-обработки и поддержка HDMI 1.4 с Blu-Ray 3D.


Конечно, вышеперечисленные изменения призваны увеличить производительность новых решений, но самое серьезное нововведение в Sandy Bridge, пожалуй, будет перенесение генератора базовой частоты в набор системной логики. Он единственный и от него зависят все частоты различных узлов и блоков, как самого процессора, так и чипсета. По этой причине базовая частота составляет 100 МГц и при ее повышении будут расти частота не только процессора, но и всевозможных шин и контроллеров, а это серьезно скажется на стабильности системы во время разгона.


В связи с этим для новых процессоров потребовался и новый разъем — LGA 1155. И хотя он внешне похож на LGA 1156, в нем отсутствует один контакт, а ключ смещен ближе к краю разъема, что не позволяет вставить в него ЦП старого поколения.


Что качается разгона, то максимум чего можно добиться, так это поднятия базовой с номинальных 100 МГц до 105 МГц (+/- один-два мегагерца), чего явно будет недостаточно. Пожалуй, с таким подходом Intel энтузиасты могли бы поставить крест на платформе LGA1155, если бы не одно но — компания все же решила оставить возможность разгона своих процессоров, но только в K-серии и путем поднятия множителя, так как в них он не заблокирован (максимальный x57). Пользователи уже успели познакомиться с подобными моделями на ядрах Lynnfield и Clarkdale. Их аналогов на Sandy Bridge пока два и все они относятся к ценовому диапазону $200-300, что еще больше разочарует оверклокеров, большинство которых вряд ли смогут позволить себе такие процессоры.

Но для самых экономных все-таки была сделана поблажка — в любом обычном процессоре на базе новой архитектуры можно поднять множитель на четыре пункта, не считая турбо-режим. Например, если частота ЦП 3,1 ГГц, то он легко заработает на 3,5 ГГц, при этом технология Turbo Boost будет исправно функционировать. Это, конечно, не разгон в 1,5 раза по частоте, к которому уже привыкли, но все же лучше, чем ничего.


Помимо всего прочего, официальному разгону теперь поддается и графическое ядро, естественно, при использовании материнской платы на соответствующем чипсете. Для производительного ПК потребуется плата на Intel P67 Express, позволяющему разгонять сам процессор, а чтобы воспользоваться встроенным видеядром — на Intel H67 Express. К сожалению, последний лишен возможности управлять множителем ЦП.


Более подробно о них будет рассказано в ближайших материалах на нашем сайте, а в заключении об архитектуре Sandy Bridge стоит упомянуть о реализации поддержки памяти DDR3, максимальный объем которой доведен до 32 Гбайт. Дело в том, что с переходом на раздельное формирование частот основных блоков и разгон процессора путем повышения его множителя, частота памяти всегда постоянна и равна умножению определенного коэффициента на частоту 133 МГц, имеющую соотношение с базовой как 4:3. Количество множителей памяти позволяет использовать ее в режимах от DDR3-800 до DDR3-2400 с шагом 266 МГц. Если рабочая частота модулей не будет кратна 266, они автоматически (при использовании профилей XMP) переведутся в режим с ближайшей меньшей частотой.

После краткого описания архитектурных особенностей Sandy Bridge перейдем к продуктам на ее основе.
Модельный ряд

Процессоры на базе новой микроархитектуры в скором времени должны будут занять все ниши, включая решения начального уровня, где сейчас господствуют продукты с разъемом LGA775. Исключением станет высокопроизводительный сегмент рынка, который отдан на откуп моделям Bloomfield и Lynnfield, хотя в конце этого года все должно будет измениться в пользу Sandy Bridge и ее производных.


На данный момент компания Intel анонсировала 29 моделей новых процессоров, из которых 14 предназначены для настольного рынка. Среди них как обычные (95 Вт), так и с пониженным энергопотреблением (модели с суффиксом S — 65 Вт, и T — 45-35 Вт). Естественно, больший интерес для значительной части пользователей представляют процессоры со стандартным уровнем TDP. Тем более, что на отечественном рынке какие-либо другие вариации встречаются крайне редко.

В представленной ниже таблице приводится список всех стандартных моделей ЦП на базе Sandy Bridge, старшие из которых уже доступны на рынке.

Intel Core i7-2600/2600K* Intel Core i5-2500/2500K* Intel Core i5-2400 Intel Core i5-2300 Intel Core i3-2120 Intel Core i3-2100
Семейство
Разъем LGA1155 LGA1155 LGA1155 LGA1155 LGA1155 LGA1155
Техпроцесс CPU, нм 32 32 32 32 32 32
Число ядер 4
(8 потоков)
4
(4 потока)
4
(4 потока)
4
(4 потока)
2
(4 потока)
2
(4 потока)
Номинальная частота, ГГц 3,4 3,3 3,1 2,8 3,3 3,1
Turbo Boost (шаг поднятия частоты в зависимости от загрузки 1/2/3/4 ядер) 4/3/2/1 4/3/2/1 4/3/2/1 4/3/2/1 - -
Объем L3 кэша, Мбайт 8 6 6 6 3 3
Графическое ядро GMA HD 2000/3000 GMA HD 2000/3000 GMA HD 2000 GMA HD 2000 GMA HD 2000 GMA HD 2000
Частота графического ядра, МГц (номинанальная/турбо-режим) 850/1350 850/1100 850/1100 850/1100 850/1100 850/1100
Каналов памяти 2 2 2 2 2 2
Поддерживаемый тип памяти DDR3-1333/
1066
DDR3-1333/
1066
DDR3-1333/
1066
DDR3-1333/
1066
DDR3-1333/
1066
DDR3-1333/
1066
Hyper-Threading + - - - + +
AES-NI + + + + - -
Intel vPro +/- +/- + - - -
TDP, Вт 95 95 95 95 65 65
Рекомендованная стоимость, $ 294/317 205/216 184 177 138 117
* — множитель разблокирован на повышение.

Как видим, название серий остались прежние — Core i7, Core i5 и Core i3, но изменились номера процессоров, которые стали четырехзначными. Первая цифра обозначает второе поколение Intel Core, следующие три цифры относятся к рейтингу производительности, а суффикс, в данном случае K, означает разблокированный множитель.

В серии Core i7 пока представлены две модели с частотой 3,4 ГГц и кэш-памятью объемом восемь мегабайт. Технология Turbo Boost позволяет поднимать рабочую частоту на 1-4 шага в зависимости от количества загруженных ядер. В процессоре с разблокированным множителем используется более продвинутое видеоядро GMA HD 3000, частота которого может увеличиваться с номинальных 850 МГц до 1350 МГц. Такой ЦП оценен в 317 долларов в партиях по одной тыс. штук. Более доступное решения для энтузиастов относится к серии Core i5 и имеет номер 2500K со стоимостью порядка $216. Процессоры этого модельного ряда оснащены лишь шестью мегабайтами кэша и лишены поддержки технологии Hyper-Threading. Но как покажет наше тестирование, Sandy Bridge неплохо справляется и без нее. Как и в случае со старшими продуктами, режим Turbo Boost и графическое ядро используются аналогичные, только частота GPU может подниматься до 1100 МГц. Для менее производительных Core i5 авторазгон процессора не такой прыткий и имеет шаг 1-2-2-3 (для четырех, трех, двух и одного ядра соответственно). Самые недорогие представители нового поколения относятся к серии Core i3, обладают лишь двумя ядрами и кэш-памятью в три мегабайта, но зато поддерживают Hyper-Threading и могут обрабатывать четыре потока одновременно. Технология Turbo Boost недоступна и для компенсации низкой производительности их частота изначально высокая и стартует с отметки 3,1 ГГц. Поддержка новых инструкций AES-NI ими не предусмотрена. За такие лишения производитель назначил цену около 120-140 долларов за процессор. Осталось лишь дождаться замены нынешнему Celeron, который базируется на уже древней архитектуре пятилетней давности.

Оба они относятся к решениям для энтузиастов и рассчитаны на без проблемный разгон, благодаря разблокированному на повышение множителю. Внешне процессоры Sandy Bridge отличаются от Lynnfield и Clarkdale смещенными к краю ключами и меньшим количеством контактов на лицевой стороне подложки:

Core i7-2600K, Core i5-2500K (слева), Core i5-870 и Core i5-660 (справа)


Частота модели Core i7-2600K составляет 3,4 ГГц, но за счет технологии Turbo Boost она выше на 100 МГц. И чем меньше исполняется потоков, тем она больше растет.


При загрузке трех ядер их частота будет равна 3,6 ГГц, двух — уже 3,7 ГГц, а одного — достигнет своего максимума в 3,8 ГГц. На данный момент, это один из самых высокочастотных процессоров в активе Intel. И в будущих моделях этот предел безболезненно может быть доведен до 4,2-4,5 ГГц.


Следующий участник лишен поддержки Hyper-Threading, обладает объемом кэш-памяти шесть мегабайт и по спецификациям функционирует на 3,3 ГГц. За счет авторазгона фактическая частота, естественно, равна 3,4 ГГц.


В плане работы Turbo Boost ничего не изменилось и частота Core i5-2500K меняется с шагом 100 МГц, пока не достигнет максимальных 3,7 ГГц.


В простое процессоры функционируют на 1600 МГц, при этом напряжение питания снижается с 1,2 до 0,9 В. Во время работы авторазгона оно наоборот, немного повышается (до 1,24 В). В целом, ничего особенного и все характеристики рассматриваемых моделей полностью соответствуют спецификациям на них.

Система охлаждения

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

К нам на тестирование попали два кулера. Один из них простой, с алюминиевым радиатором и медным пяточком. Частота вращения вентилятора с ШИМ-управлением составляла около 1100-2000 об/мин. Им, вероятнее всего, будут оснащаться все представители архитектуры Sandy Bridge.



Второй охладитель — башенного типа, знакомый нам еще по шестиядерному Core i7-980X Extreme Edition, где он впервые был использован. С небольшими изменениями в его конструкции компания стала им оснащать продукты для энтузиастов прошлого поколения, и даже поставляла кулер на розничный рынок отдельной единицей по названием XTS100H.



В его конструкции применены три тепловые трубки (а не четыре, как у СО Core i7-980X), пронизывающие ряд тонких часто расположенных алюминиевых пластин. Вентилятор с ШИМ-управлением защищен проволочной решеткой и обладает скоростью 800-2600 об/мин (17-45 дБА). Для снижения уровня шума предусмотрен переключатель на крышке кулера, переводящий вентилятор в менее интенсивный режим работы — 800-1400 об/мин.


Основание кулера медное, небольших размеров, но отполировано до зеркального блеска. Крепление XTS100H к плате осуществляется за счет пластиковой усилительной пластины и четырех винтов, и оно вполне надежно.


По эффективности в номинальном режиме работы процессора Core i7-2600K данные системы охлаждения проявляют себя вполне неплохо на фоне недорогого Arctic Cooling Freezer 11 LP и даже Noctua NH-D14.


Но это касается функционирования процессора на стандартной частоте — с разгоном до 4,5-5 ГГц использовать такие кулеры, к сожалению, нельзя.

Разгон

Теперь самое интересное. Наверняка многие сталкивались с проблемой разгона процессоров архитектуры Nehalem на базе 45-нм техпроцесса, которым частоты свыше 4,2 ГГц при воздушном охлаждении давались с трудом. Но никого не удивляли 4,5 ГГц на 32-нм Clarkdale и Gulftown. Помимо самого потенциала ядра свою лепту в проблему разгона вносила высокая частота BCLK, которая получалась с младшими моделями ЦП. С Sandy Bridge повышать частоту можно лишь путем увеличения множителя, предел которого будет определяться уже возможностями процессора K-серии (максимум x57). Для достижения 4,5 ГГц достаточно будет поднять немного напряжение на ядрах, не затрагивая остальные параметры (Turbo Boost обязательно должен быть включен). Тестовые экземпляры Core i7-2600K и Core i5-2500K на такой частоте заработали при повышении напряжения до 1,28 и 1,35 В соответственно, чего вполне достаточно для режима работы системы 24/7. Прибавка еще 200 МГц потребовала увеличение напряжения до 1,3 В для старшей модели и 1,375 В для младшей. Пять гигагерц покорились лишь Core i7-2600K при 1,45 В:


Температура процессора в таком режиме с Noctua NH-D14 не превышала 78°C.

Core i5-2500K смог стабильно функционировать на 4,8 ГГц при напряжении 1,425 В (температура не выходила за рамки 71 градуса по Цельсию) — если младшие все такие, то для серьезных экспериментов с разгоном он явно не подходит.


Для достижения еще большего уровня разгона Sandy Bridge в обязательном порядке необходимо активировать в BIOS/UEFI материнских плат опцию Internal PLL Overvoltage. Можно также попытаться поднять различные напряжения питания. Максимально безопасное для процессора составляет 1,52 В (но есть мнение, что выше 1,38-1,4 В для режима 24/7 использовать не рекомендуется), для «системного агента» — 0,971 В, модулей памяти — 1,57 В. Параметр VCCIO (или Vtt — напряжение на контроллере памяти) позволяет добиться стабильности при работе с высокочастотной памятью, но выше 1,1 В поднимать не рекомендуется. CPU PLL ограничен 1,89 В, а графическое ядро, как и процессорное, может довольствоваться 1,52 В.

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


Но у этой медали есть и обратная сторона. Так как предел разгона по базовой составляет около 105 МГц, определить максимальную конкретно возможную частоту теперь будет сложно. Придется либо ограничиваться фиксированными режимами, либо подбирать BCLK в пределах 100-105 МГц, что даст прибавку по 20 МГц на каждый мегагерц сверх номинала, что не так уж и много.
Тестовые конфигурации

Для сравнения производительности новых процессоров с решениями прошлого поколения и конкурентами была собрана следующая система:

  • материнская плата: ASUS P8P67 Deluxe (Intel P67 Express, EFI 1053);
  • память: Kingston KHX2000C8D3T1K3/6GX (3x2 ГБ, DDR3-2000@1333, 8-8-8-24-1T);
  • кулер: Noctua NH-D14;
  • видеокарта: ASUS ENGTX580/2DI/1536MD5 (GeForce GTX 580);
  • жесткий диск: Seagate ST3500418AS (500 ГБ, 7200 об/мин, SATAII);
  • блок питания: Seasonic SS-600HM (600 Вт);
  • операционная система: Windows 7 Home Premium x64;
  • драйвер чипсета: Intel Chipset Software Installation Utility 9.2.0.1019;
  • драйвер видеокарты: GeForce 263.09.
В операционной системе брандмауэр, UAC и Windows Defender отключались, файл подкачки устанавливался в размере 4096 МБ. Настройки видеодрайвера не изменялись. Память работала на частоте 1333 МГц с задержками 8-8-8-24-1T. Остальные настройки в UEFI материнской платы оставлялись по умолчанию.

Конфигурации остальных участников отличались процессорами, материнскими платами и, по необходимости, памятью. Для платформы LGA1366 она была следующая:

  • процессор: Intel Core i7-975 EE (3,33 ГГц, 8 Мбайт кэш);
  • материнская плата: ASUS Sabertooth X58 (Intel X58 Express, BIOS 0603).
Платформа LGA1156 комплектовалась таким оборудованием:
  • процессор: Intel Xeon X3470 (взамен Core i7-870; 2,93 ГГц, 8 МБайт кэш);
  • процессор: Intel Core i5-660 (3,33 ГГц, 4 Мбайт кэш);
  • материнская плата: ASUS Maximus III Extreme (Intel P55 Express, BIOS 1204).
Конкурирующий лагерь отстаивал честь следующим:
  • процессор: AMD Phenom II X6 1100T (3,3 ГГц, 6 МБайт кэш);
  • процессор: AMD Phenom II X6 1075T (3,0 ГГц, 6 МБайт кэш);
  • материнская плата: ASUS Crosshair IV Extreme (AMD 890FX, BIOS 0502);
  • память: Goodram Play GY1600D364L8/4GDC (2x2 ГБ, DDR3-1600@1333, 8-8-8-24-1T).
Такой выбор процессоров обусловлен как наличием их на момент тестирования, так и ценовым позиционированием каждой из моделей. Так, стоимость Core i7-2600K (а значит и обычной версии) почти соответствует Core i7-870, а с Core i5-2500K конкурируют Core i5-660 и AMD Phenom II X6 1075T. Модель Phenom II X6 1100T является флагманом компании AMD и занимает среднее положение между линейками Core i7 и Core i5.

Все процессоры тестировались как в номинальном режиме (частота Uncore у Core i7-975 EE составляла 2940 МГц) со всеми включенными технологиями, такими как Hyper-Threading, Turbo Boost и Turbo Core, так и при разгоне до 3,8 ГГц с отключенными функциями авторазгона. Частота памяти всегда держалась на уровне 1333 МГц, представитель AMD разгонялся лишь один, так как разницы при этом между ними фактически не было бы:

  • Core i7-2600K — частота процессора 3800 МГц (38x100), память 1333 МГц (10x133);
  • Core i5-2500K — частота процессора 3800 МГц (38x100), память 1333 МГц (10x133);
  • Core i7-975 EE — частота процессора 3806 МГц (22x173), Uncore 3114 МГц (18x173), QPI 3114 МГц (18x173), память 1384 МГц (8x173);
  • Core i7-870 — частота процессора 3806 МГц (22x173), Uncore 3114 МГц (18x173), QPI 3114 МГц (18x173), память 1384 МГц (8x173);
  • Core i5-660 — частота процессора 3806 МГц (22x173), Uncore 3114 МГц (18x173), QPI 3806 МГц (22x173), память 1384 МГц (8x173);
  • Phenom II X6 1100T — частота процессора 3813 МГц (15,5x246), NB и HT 2214 МГц (9x246), память 1311 МГц (5,33x246).
Результаты тестирования в прикладном ПО

Подсистема памяти




Судя по результатам в программе Aida64 контроллер памяти Sandy Bridge действительно был переработан и демонстрирует высокую производительность, особенно в тесте на запись. Копирование данных происходит быстрее у старшей модели, а Core i5-2500K в этом случае близок по показателям к процессорам предыдущего поколения.


Обойти по латентности контроллер Lynnfield пока не удалось, но разница при стандартном режиме работы минимальна и больше проявляется уже с разгоном. И скорее всего, она будет расти с дальнейшим повышением частоты. Но учитывая потенциал новинок, на это обращать особо не стоит.

Синтетика


В PCMark Vantage рассматриваемые процессоры превосходят своих предшественников. Даже урезанный Sandy Bridge оказался производительнее бывшего флагмана компании Intel. Также достойно себя ведет Core i5-660, хотя в большинстве тестов этого пакета результатами он не блистал. Например, в игровом он хуже остальных решений компании на 20-40%.


Но за счет поддержки инструкций AES-NI в тесте Communications он почти на равных соперничает с двухтысячными моделями.


Отсюда такой высокий итоговый балл. Отметим небольшой проигрыш Core i5-2500K в игровом тесте.

Архивирование



Тестирование в архиваторах осуществлялось путем сжатия папки с различными файлами общим объемом 600 Мбайт. Оба новых процессора демонстрируют чудеса производительности. Двухъядерник Clarkdale не очень приспособлен к такой работе и результат приходится ждать в 1,5 раза дольше, чем с остальными участниками.

Рендеринг



В однопроцессороном тесте Cinebench 11 видна вся мощь архитектуры Sandy Bridge, но с переходом к многопоточному вычислению младший представитель начинает сдавать позиции, хотя и не значительно — он совсем немного отстает от более дорогого Core i7-870. Решения AMD, до этого находившиеся в тени, неожиданно вырвались вперед за счет своих шести ядер.



С POV-Ray такая же ситуация, и чем больше ядер у процессора, тем он производительнее в программе рендеринга.

Математические расчеты


Расчет количества ходов в Fritz Chess Benchmark также зависит от количества ядер или исполняемых потоков и Core i5-2500K опять отстает от Lynnfield. Его даже умудряется обойти Phenom II X6 1075T, и с разгоном разница между ними только увеличивается, вплоть до 16%.



Еще один хорошо оптимизированный под многопоточность бенчмарк. Лидеров в wPrime как таковых нет — все высокоуровневые процессоры обоих производителей показывают одинаковые результаты, которые зависят от частоты той или иной модели. Лишенный Hyper-Threading Sandy Bridge опять отстает, но не так сильно, как Core i5-660.

Работа с видео


Интересная картина наблюдается в x264 HD Benchmark, который производит двухпроходное сжатие видеофайла кодеком H.264. Первый проход на дух не переваривает Hyper-Threading и без этой технологии результат обычно выше, что мы и наблюдаем с Core i5-2500K.


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

Синтетика



Теперь перейдем к игровым тестам, начав с синтетики. В 3DMark Vantage расстановка сил была предсказуема, учитывая его оптимизацию под многоядерность. Core i7-2600K безоговорочный лидер, вслед за ним расположились продукты на базе архитектуры Nehalem. Нынешний флагман AMD соперничает лишь с новым четырехъядерником Core i5, немного отставая от него. Но с разгоном они выступают почти вровень.


Новый тест на наших страницах показывает неоднозначные результаты — новинки проигрывают своим предшественникам до 3%. В чем же дело? Почему же 3DMark 11 так не благосклонен к ним? Смотрим на результаты процессорного теста Physics. В нем все закономерно и ничего нового мы не видим.


А вот в графическом подтесте наблюдается падение производительности системы на базе Sandy Bridge, и она пасует даже перед Core i5-660, во что очень трудно поверить.


Возможно, проблема заключается в реализации интерфейса PCI Express или еще чего-нибудь и в будущих версиях тестового пакета или драйверов она будет решена. Пока же можем отметить первое поражение представителей платформы LGA1155.

Игры



В реальных игровых приложениях, например, Crysis, двухтысячные модели смотрятся более привлекательно, особенно, когда 200-долларовый Core i5-2500K не хуже дорогих Lynnfield и Bloomfield.



Стратегия реального времени World in Conflict оказалась не менее чувствительной к новинкам. На фоне таких результатов покупка устаревших решений себя не оправдает. Если, конечно, они прилично не подешевеют.



S.T.A.L.K.E.R.: Call of Pripyat сильно зависит от частоты процессора и емкости его кэша. Если в номинале Core i5-2500K обходит на десяток кадров Core i7-870, то с разгоном последний берет реванш. Но ведь Lynnfield не сможет без проблем работать на частотах 4,5 ГГц, а то и выше, не так ли?

Выводы

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

Процессоры Sandy Bridge, несмотря на свою среднюю стоимость, предлагают нам новый уровень производительности, ранее доступный лишь с топовыми решениями. Благодаря переработанному контроллеру памяти и некоторым архитектурным изменениям удалось избавиться от многих ограничивающих факторов, сдерживающих дальнейшее развитие архитектуры Nehalem. Но платой за это стала необходимость в новой платформе с разъемом LGA1155, несовместимой с ранее выпущенными решениями. Несмотря на всю привлекательность Sandy Bridge переход на нее с LGA1156 или даже LGA1366 вряд ли оправдает затраты, но она даст возможность наконец-то избавиться от древней LGA775 или же перейти из конкурирующего лагеря. Тем более, что новинка действительно того стоит.

Помимо процессорного ядра было усовершенствовано графическое, расположенное теперь на одном кристалле с остальными блоками. Его функциональность и производительность позволяет конкурировать с дискретными картами начального уровня серии GeForce и Radeon. Пользователям теперь не придется задумываться о покупке недорого адаптера, когда возможности встроенного сильно ограничены.

Энтузиасты оценят разгонный потенциал процессоров на базе очередной микроархитектуры, который благодаря использованию 32-нм техпроцесса вырос до 4,5-5,0 ГГц и выше. Такие частоты доступны при воздушном охлаждении и небольшом повышении питающего напряжения. Для подобных подвигов ранее необходимо было прибегнуть к усиленному охлаждению и серьезному увеличению напряжения питания.

Но какой бы ни была идеальной новая платформа, определенный недостаток в ней обязательно найдется. И в данном случае он касается энтузиастов. Разгонять процессоры теперь можно определенной серии с разблокированным множителем, а не любой, как это было ранее. И все бы ничего, если бы не их стоимость, которая пока находится в пределах 250-350 долларов, что не каждому оверклокеру будет по карману. Здесь явно не хватает более доступной модели, позволяющей экономным энтузиастам, коих большинство, безболезненно перейти на новую платформу.
— процессоры Intel Core i7-2600K, Core i5-2500K, Core i7-975 EE, Xeon X3470 и Core i5-660;

  • Kingston — память Kingston KHX2000C8D3T1K3/6GX;
  • Noctua — кулер Noctua NH-D14 и термопаста Noctua NT-H1;
  • Syntex — блок питания Seasonic SS-600HM;
  • Wilk Elektronik — память Goodram Play GY1600D364L8/4GDC.