Как настроить смартфоны и ПК. Информационный портал
  • Главная
  • Windows 10
  • Процессоры Intel Sandy Bridge — все секреты. Пять поколений Core i7: от Sandy Bridge до Skylake

Процессоры Intel Sandy Bridge — все секреты. Пять поколений Core i7: от Sandy Bridge до Skylake

", опубликованном примерно год назад, мы говорили о микроархитектуре 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. Далее мы поговорим об особенностях разных серий, изучим актуальный модельный ряд и дадим рекомендации, какие конкретные модели можно считать лучшими покупками в своём классе.

Мы открываем цикл статей про новую процессорную микроархитектуру 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 КБ, но всё равно - в четырёх случаях из пяти кэш мопов оправдывает своё присутствие.

Его детального обзора на нашем сайте (правда, поддержка состояния глубокого сна C6 и низковольтной памяти LV-DDR3 появилась только в Westmere). А что появилось в SB?

Во-первых - второй тип термодатчиков. Привычный термодиод, показания которого «видят» BIOS и утилиты, измеряет температуру для регулировки оборотов вентиляторов и защиты от перегрева (частотным троттлингом и, если не поможет, аварийным отключением ЦП). Однако его площадь весьма велика, потому их всего по одному в каждом ядре (включая ГП) и в системном агенте. К ним в каждом крупном блоке добавлено по нескольку компактных аналоговых -схем с термотранзисторами. У них меньший рабочий диапазон измерений (80–100 °C), но они нужны для уточнения данных термодиода и построения точной карты нагрева кристалла, без чего нереализуемы новые функции TB 2.0. Более того, силовой контроллер может использовать даже внешний датчик, если производитель системной платы разместит и подключит его - хотя не совсем ясно, чем он поможет.

Добавлена функция перенумерации C-состояний, для чего отслеживается история переходов между ними для каждого ядра. Переход занимает время тем большее, чем больше «номер сна», в который ядро входит или из которого выходит. Контроллер определяет, имеет ли смысл усыплять ядро с учётом вероятности его «пробудки». Если таковая ожидается скоро, то вместо затребованного ОС ядро будет переведено в C3 или C1, соответственно, т. е. в более активное состояние, быстрее выходящее в рабочее. Как ни странно, несмотря на большее потребление энергии в таком сне, общая экономия может не пострадать, т. к. сокращаются оба переходных периода, в течение которых процессор совсем не спит.

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

Core i3/i5 прошлого поколения являлись своеобразными рекордсменами по требованиям к сложности системы питания ЦП на системной плате, требуя аж 6 напряжений - точнее, все 6 были и ранее, но не все вели в процессор. В SB изменились не числом, а использованием:

  • x86-ядра и L3 - 0,65–1,05 В (в Nehalem L3 отделён);
  • ГП - аналогично (в Nehalem почти весь северный мост, который, напомним, являлся там вторым кристаллом ЦП, питается общей шиной);
  • системный агент, у которого частота фиксирована, а напряжение - постоянное 0,8, 0,9 или 0,925 В (первые два варианта - для мобильных моделей), либо динамически регулируемое 0,879–0,971 В;
  • - постоянное 1,8 В или регулируемое 1,71–1,89 В;
  • драйвер шины памяти - 1,5 В или 1,425–1,575 В;
  • драйвер PCIe - 1,05 В.

Регулируемые версии силовых шин используются в разблокированных видах SB с буквой K. В настольных моделях частота простоя x86-ядер повышена с 1,3 до 1,6 ГГц, судя по всему, без ущерба для экономии. При этом 4-ядерный ЦП при полном простое потребляет 3,5–4 Вт. Мобильные версии простаивают на 800 МГц и просят ещё меньше. Модели и чипсеты

Производительность

Что эта глава делает в теоретическом обзоре микроархитектуры? А то, что есть один общепризнанный тест, уже 20 лет (в разных версиях) использующийся для оценки не теоретической, а программно достижимой скорости компьютеров - SPEC CPU. Он может комплексно оценить производительность процессора, причём в наилучшем для него случае - когда исходный код тестов скомпилирован и оптимизирован для тестируемой системы (т. е. походя проверяется ещё и компилятор с библиотеками). Таким образом, полезные программы окажутся быстрее лишь с написанными вручную вставками на ассемблере, на что сегодня идут редкие смельчаки-программисты с большим запасом времени. SPEC можно отнести к полусинтетическим тестам, т. к. он и ничего полезного не вычисляет, и никаких конкретных цифр не даёт (IPC, флопсы, тайминги и пр.) - «попугаи» одного ЦП нужны только для сравнения с другими.

Обычно Intel предоставляет результаты для своих ЦП почти одновременно с их выпуском. Но с SB произошла непонятная 3-месячная задержка, а полученные в марте цифры всё ещё предварительны. Что именно их задерживает - неясно, однако это всё равно лучше, чем ситуация с AMD, вообще не выпустившей официальных результатов своих последних ЦП. Нижеуказанные цифры для Opteron даны производителями серверов, использовавшими компилятор Intel, так что эти результаты могут быть недооптимизированы: что программный инструментарий Intel может сделать с кодом, исполняемым на «чужом» ЦП, . ;)


Сравнение систем в тестах SPEC CPU2006. Таблица составлена Дэвидом Кантером с по данным на март"2011.

В сравнении с предыдущими ЦП SB показывает превосходные (в прямом смысле) результаты в абсолюте и вовсе рекордные на каждое ядро и гигагерц. Включение HT и добавление 2 МБ к L3 даёт +3% к вещественной скорости и +15% к целой. Однако самую высокую удельную скорость имеет 2-ядерная модель, и в этом - поучительное наблюдение: очевидно, Intel задействовала AVX, но т. к. целочисленного прироста пока получить нельзя, то можно ожидать резкое ускорение лишь вещественных показателей. Но и для них никакого скачка нет, что показывает сравнение 4-ядерных моделей - а результаты для i3-2120 раскрывают причину: имея те же 2 канала ИКП, каждое ядро получает вдвое бо́льшую ПСП, что отражается 34-процентным приростом удельной вещественной скорости. Видимо, кэш L3 на 6–8 МБ слишком мал, и масштабирование его собственной ПС за счёт кольцевой шины уже не спасает. Теперь ясно, зачем Intel планирует оснастить серверные Xeon 3- и даже 4-канальными ИКП. Только вот тамошним 8 ядрам уже и их не хватит, чтобы развернуться по полной…

Дополнение: В появились финальные результаты SB - цифры (ожидаемо) чуть подросли, но качественные выводы те же. Перспективы и итоги

О выходящем весной 2012 г. 22-нанометровом преемнике Sandy Bridge под названием Ivy Bridge («плющевый мост») уже многое известно. Ядра общего назначения будут поддерживать чуть обновлённый поднабор AES-NI; вполне возможно и «бесплатное» копирование регистров на стадии переименования. Улучшений в Turbo Boost не предвидится, зато ГП (который, кстати, заработает на всех версиях чипсета) нарастит максимальное число ФУ до 16, станет поддерживать подключение не двух, а трёх экранов, наконец-то обретёт нормальную поддержку OpenCL 1.1 (вместе с DirectX 11 и OpenGL 3.1) и улучшит возможности по аппаратной обработке видео. Скорее всего, уже и в настольных и мобильных моделях ИКП станет поддерживать частоту 1600 МГц, а контроллер PCIe - версию шины 3.0. Главное технологическое новшество - в кэше L3 будут использоваться (впервые в массовом микроэлектронном производстве!) транзисторы с вертикально расположенным многосторонним затвором-ребром (FinFET), имеющие радикально улучшенные электрические характеристики (детали - в одной из ближайших статей). Ходят слухи, что версии с ГП снова станут многочиповыми, только на этот раз к процессору добавят один или несколько кристаллов быстрой видеопамяти.

Ivy Bridge будет подключаться к новым чипсетам (т. е. южным мостам) 70-й серии: Z77, Z75 и H77 для дома (заменят Z68/P67/H67) и Q77, Q75 и B75 для офиса (вместо Q67/Q65/B65). Она (т. е. физическая микросхема под разными именами) по-прежнему будет иметь не более двух портов SATA 3.0, а поддержка USB 3.0 наконец-то появится, но на год позже, чем у конкурента. Встроенная поддержка PCI исчезнет (после 19 лет шине пора на покой), зато контроллер дисковой подсистемы в Z77 и Q77 получит технологию Smart Response для увеличения производительности кэшированием дисков с помощью SSD. Впрочем, наиболее волнительная новость заключается в том, что несмотря на старую добрую традицию, настольные версии Ivy Bridge не просто будут размещаться в том же разъёме LGA1155, что и SB, но и будут обратно совместимы с ними - т. е. современные платы подойдут и новому ЦП.

Ну а для энтузиастов уже в 4-м квартале этого года будет готов куда более мощный чипсет X79 (к 4–8-ядерным SB-E для «серверно-экстремального» разъёма LGA2011). Он пока не будет иметь USB 3.0, зато портов SATA 3.0 будет уже 10 из 14 (плюс поддержка 4 видов RAID), а 4 из 8 полос PCIe могут соединяться с ЦП параллельно с DMI, удваивая ПС связи «ЦП-чипсет». К сожалению, X79 не подойдёт к 8-ядерным Ivy Bridge.

В качестве исключения (а может быть, и нового правила) список того, что бы хотелось улучшить и исправить в Sandy Bridge, приводить не будем. Уже очевидно, что любое изменение является сложным компромиссом - строго по закону сохранения вещества (в формулировке Ломоносова): если где-то что-то прибыло, то где-то столько же и убудет. Если бы Intel кидалась в каждой новой архитектуре исправлять ошибки старой, то число наломанных дров и полетевших щепок могло бы превысить выгоду от полученного. Поэтому вместо крайностей и недостижимого идеала экономически выгодней искать баланс между постоянно меняющимися и подчас противоположными требованиями.

Несмотря на некоторые пятна, новая архитектура должна не только ярко засветить (что, судя по тестам, она и делает), но и затмить все предыдущие - как свои, так и соперника. Объявленные цели по производительности и экономности достигнуты, за исключением оптимизации под набор AVX, которая вот-вот должна проявиться в новых версиях популярных программ. И тогда Гордон Мур ещё раз удивится своей прозорливости. Судя по всему, Intel во всеоружии подходит к Эпической Битве между архитектурами, которую мы увидим в этом году.

Благодарности выражаются:

  • Максиму Локтюхину, тому самому «представителю Intel», сотруднику отдела программной и аппаратной оптимизации - за ответы на многочисленные уточняющие вопросы.
  • Марку Бакстону, ведущему программному инженеру и главе отдела оптимизации - за его ответы, а также за саму возможность получить какую-то официальную реакцию.
  • Агнеру Фогу, программисту и исследователю процессоров - за независимое низкоуровневое тестирование SB, обнаружившее массу нового и загадочного.
  • Внимательному Читателю - за внимательность, стойкость и громкий храп.
  • Яростным фанатам Противоположного Лагеря - до кучи.

Наконец-то компания Intel официально анонсировала новые процессоры, работающие на новой микроархитектуре Sandy Bridge . Для большинства людей «анонс Sandy Bridge» всего лишь слова, но по большому счету, Intel Core ll поколения являются если не новой эпохой, то как минимум обновлением практически всего рынка процессоров.


Первоначально сообщалось о запуске всего семи процессоров, однако на полезнейшей страничке ark.intel.com уже появилась информация обо всех новинках. Процессоров, а точнее их модификаций, оказалось несколько побольше (в скобках я указал ориентировочную цену - во столько обойдется каждый процессор в партии из 1000 штук):

Мобильные:

Intel Core i5-2510E (~266$)
Intel Core i5-2520M
Intel Core i5-2537M
Intel Core i5-2540M

Наглядное детальное сравнение мобильных процессоров Intel Core i5 второго поколения.

Intel Core i7-2617M
Intel Core i7-2620M
Intel Core i7-2629M
Intel Core i7-2649M
Intel Core i7-2657M
Intel Core i7-2710QE (~378$)
Intel Core i7-2720QM
Intel Core i7-2820QM
Intel Core i7-2920XM Extreme Edition

Наглядное детальное сравнение мобильных процессоров Intel Core i7 второго поколения.

Настольные:

Intel Core i3-2100 (~117$)
Intel Core i3-2100T
Intel Core i3-2120 (138$)

Наглядное детальное сравнение настольных процессоров Intel Core i3 второго поколения.

Intel Core i5-2300 (~177$)
Intel Core i5-2390T
Intel Core i5-2400S
Intel Core i5-2400 (~184$)
Intel Core i5-2500K (~216$)
Intel Core i5-2500T
Intel Core i5-2500S
Intel Core i5-2500 (~205$)

Наглядное детальное сравнение настольных процессоров Intel Core i5 второго поколения.

Intel Core i7-2600K (~317$)
Intel Core i7-2600S
Intel Core i7-2600 (~294$)

Наглядное детальное сравнение настольных процессоров Intel Core i7 второго поколения.

Как видите, названия моделей теперь имеют четыре цифры в названии – это сделано для того, чтобы не было путаницы с процессорами предыдущего поколения. Модельный ряд получился достаточно полным и логичным – наиболее интересные серии i7 явно отделены от i5 наличием технологии Hyper Threading и увеличенным объемом кэша. А процессоры семейства i3 отличаются от i5 не только меньшим количеством ядер, но и отсутствием технологии Turbo Boost .

Наверное, вы так же обратили внимание на буквы в названиях процессоров, без которых модельный ряд сильно поредел. Так вот, буквы S и T говорят о пониженное энергопотребление, а К – свободный множитель.

Наглядная структура новых процессоров:

Как видите, помимо графического и вычислительных ядер, кэш-памяти и контроллера памяти, присутствует так называемый System Agent – туда свалено много чего, например контроллеры DDR3-памяти и PCI-Express 2.0, модель управления питанием и блоки, отвечающие на аппаратном уровне за работы встроенного GPU и за вывод изображения в случае его использования.

Все «ядерные» компоненты (в том числе графический процессор) связаны между собой высокоскоростной кольцевой шиной с полноценным доступом к L3-кэшу, благодаря чему выросла общая скорость обмена данными в самом процессоре; что интересно – такой подход позволяет увеличивать производительность в дальнейшем, попросту увеличивая количество ядер, добавленных к шине. Хотя и сейчас всё обещает быть на высоте - по сравнению с процессорами предыдущего поколения, производительность новых является более адаптивной и по заявлению производителя, во многих задачах способна продемонстрировать 30-50% прирост в скорости выполнения задач!

Если есть желание узнать более подробно о новой архитектуре, то на русском языке могу посоветовать эти три статьи – , , .

Новые процессоры целиком и полностью выполнены согласно нормам 32-нм техпроцесса и впервые обладают «визуально умной» микроархитектурой, сочетающей в себе лучшую в классе вычислительную мощность и технологию обработки 3D-графики на одном кристалле. В графике Sandy Bridge появилось действительно много нововведений, нацеленных главным образом на увеличение производительности при работе с 3D. Можно долго спорить о «навязывании» интегрированной видеосистемы, но другого решения пока нет как такового. Зато есть такой вот слайд из официальной презентации, который претендует на правдоподобность в том числе в мобильных продуктах (ноутбуках):

Частично о новых технологиях второго поколения процессоров Intel Core я уже рассказывал , поэтому повторяться не буду. Остановлюсь лишь на разработке Intel Insider , появление которой были многие удивлены. Как я понял, это будет своего рода магазин, который даст владельцам компьютеров доступ к фильмам высокой четкости, непосредственно от создателей данных фильмов – то, что раньше появлялось лишь спустя некоторое время после анонса и появления дисков DVD или Blu-ray. Для демонстрации этой функции вице-президент Intel Мули Иден (Mooly Eden) пригласил на сцену Кевина Тсужихару (Kevin Tsujihara), президента Warner Home Entertainment Group. Цитирую:

«Warner Bros. находит персональные системы самой универсальной и распространенной платформой для доставки высококачественного развлекательного контента, а сейчас Intel делает эту платформу еще более надежной и безопасной. Отныне мы при помощи магазина WBShop, а также наши партнеры, такие как CinemaNow, сможем предоставлять пользователям ПК новые релизы и фильмы из нашего каталога в настоящем HD-качестве » - работу данной технологии Мули Иден продемонстрировал на примере фильма «Начало». В сотрудничестве с ведущими студиями индустрии и гигантами медиаиконтента (такими как Best Buy CinemaNow, Hungama Digital Media Entertainment, Image Entertainment, Sonic Solutions, Warner Bros. Digital Distribution и другими), Intel создает безопасную и защищенную от пиратства (на аппаратном уровне) экосистему для дистрибуции, хранения и воспроизведения высококачественного видео.

Работа упомянутой выше технологии будет совместимой с двумя не менее интересными разработках, которые так же присутствуют во всех моделях процессоров нового поколения. Я говорю о (Intel WiDi 2.0) и Intel InTru 3-D . Первая предназначена для беспроводной передачи HD-видео (с поддержкой разрешения вплоть до 1080p), вторая предназначена для отображения стереоконтента на мониторах или телевизорах высокой четкости через соединение HDMI 1.4 .

Еще две функции, для которых я не нашел в статье более подходящего места - Intel Advanced Vector Extensions (AVX). Поддержка процессорами этих команд повышает скорость работы приложений с интенсивной обработкой данных, таких как аудиоредакторы и программное обеспечение для профессионального редактирования фотографий.

… и Intel Quick Sync Video - благодаря совместной работе с такими софтверными компаниями, как CyberLink, Corel и ArcSoft, процессорному гиганту удалось поднять производительность при выполнении этой задачи (транскодирование между форматами H.264 и MPEG-2) в 17 раз по сравнению с производительностью встроенной графики прошлого поколения.

Допустим, процессоры есть – как их использовать? Всё правильно – вместе с ними были так же анонсированы новые чипсеты (наборы логики), которые являются представителями «шестидесятой» серией. Судя по всего, для жаждущих новинок Consumer-ов отведено всего два набора, это Intel H67 и Intel P67 , на которых и будет построено большинство новых материнских плат. H67 способен работать с интегрированным в процессор видеоядром, в то время как P67 наделили функцией Performance Tuning для разгона процессора. Все процессоры будут работать в новом сокете, 1155 .


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

В общей сложности Intel представила более 20 чипов, чипсетов и беспроводных адаптеров, включая новые процессоры Intel Core i7, i5 и i3, чипсеты Intel 6 Series и адаптеры Intel Centrino Wi-Fi и WiMAX. Помимо упомянутых выше, на рынке могут появиться и таких «бейджики»:

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

Ну и напоследок еще раз awesome-ролик, вдруг кто не видел:

Лучшие статьи по теме