Как настроить смартфоны и ПК. Информационный портал

Что такое sandy bridge. Кодирование аудио в различные форматы

Сравнение с мобильными и десктопными процессорами

В середине января мы провели первое исследование системы на новой платформе Intel Sandy Bridge. В том тесте участвовал прототип ноутбука Toshiba A665-3D с новым видеоадаптером NVIDIA и технологией NVIDIA Optimus. Однако, что называется, перемудрили: на ноутбуке не включалась внешняя графика. Поэтому приложения, задействующие графику (в первую очередь, игры), тестировать просто не было смысла. Да и вообще, некоторые вещи невозможно адекватно протестировать на раннем и плохо работающем семпле.

Поэтому решено было провести повторное тестирование уже другой системы, и случай не заставил себя ждать. На тестирование попал другой ноутбук, Hewlett-Packard DV7, на новой платформе и с новым поколением графики от AMD. Правда, когда тесты уже были закончены, появилась информация о печально знаменитой ошибке в южном мосту, из-за которой проданные устройства (в том числе и мобильные) подлежат отзыву. Так что и здесь результаты в строгом смысле слова не совсем официальные (по крайней мере, компания Hewlett-Packard просила вернуть ноутбук), но мы-то понимаем, что ошибка (да еще и настолько «теоретическая») не может повлиять на результаты тестов.

Тем не менее, не стоило выпускать отдельный материал только для того, чтобы еще раз повторить измерения и назвать их финальными. Поэтому в настоящем обзоре мы поставили перед собой несколько задач:

  • проверить результаты новой системы в «мобильной» методике;
  • проверить работу системы разгона Intel Turbo Boost на другой системе с другим охлаждением;
  • сравнить между собой мобильную и настольные версии процессора Sandy Bridge в настольной методике тестирования компьютерных систем.

Ну что же, переходим к тестированию.

Конфигурация участников тестирования по методике для мобильных систем

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

Посмотрим на конкурентов, точнее на изменение их состава по сравнению с предыдущим тестированием. Во-первых, мы решили убрать из сравнения модель Core i5-540M. Она относится к более слабой двухъядерной линейке, да и в линейке Sandy Bridge ей будут соответствовать другие модели. Если результаты этого процессора так важны, их можно взять из предыдущей статьи. Вместо него в сравнение включен Hewlett-Packard Elitebook 8740w, тоже на процессоре Core i7-720QM, ну и добавлена основная тестовая система на сегодня - Hewlett-Packard Pavillon DV7 на процессоре Sandy Bridge 2630QM.

Таким образом, в тесте участвуют две модели на процессоре Core i7-720QM и две модели на процессоре Core i7 2630QM. Это позволит не только сравнить между собой производительность систем на более старом и более новом процессоре, но и убедиться, что уровень производительности одинаков для двух систем на одинаковом процессоре.

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

Название ноутбука HP 8740w ASUS N53Jq Toshiba A665-3D HP DV7
Процессор Core i7-720QM Core i7-720QM Core i7-2630QM Core i7-2630QM
Количество ядер 4 (8 потоков) 4 (8 потоков) 4 (8 потоков) 4 (8 потоков)
Номинальная частота 1,6 ГГц 1,6 ГГц 2 ГГц 2 ГГц
Макс. частота Turbo Boost 2,6* ГГц 2,6* ГГц 2,9* ГГц 2,9* ГГц
Объем кэша LLC 6 МБ 6 МБ 6 МБ 6 МБ
Оперативная память 10 ГБ 10 ГБ 4 ГБ 4 ГБ
Видеоподсистема NVIDIA QUADRO FX 2800M NVIDIA GT 425M Intel интегр. ATI 6570

* указана частота автоматического разгона в том случае, если у процессора под нагрузкой находятся все четыре ядра. Если под нагрузкой находится два ядра, то частота может еще вырасти (с 2,6 ГГц до 2,8 ГГц), а если одно - то подняться до максимальной отметки (с 2,6 ГГц до 2,9 ГГц).

Анализируем необходимые для сравнения данные о процессорах. Во-первых, производитель утверждает, что в линейке Sandy Bridge оптимизирована внутренняя архитектура процессора, это должно приносить какой-то прирост общей производительности.

Количество ядер и потоков гипертрейдинга одинаковое у всех участников. Однако отличается тактовая частота: у 720QM она всего лишь 1,6 ГГц, тогда как новые процессоры работают на 2 ГГц. Предельная тактовая частота, правда, отличается не так сильно. Дело в том, что для 720QM указана частота, когда задействованы четыре ядра, а для 2630QM - когда задействовано одно. Если же у него загружены четыре ядра, то максимальная частота составляет те же 2,6 ГГц. Другими словами, в «разоганном» состоянии процессоры должны работать на одинаковой частоте (пока не сработает контроль температуры). Вот только в Sandy Bridge более продвинутая технология разгона Intel Turbo Boost, которая может дольше держать повышенную частоту, так что у него может быть преимущество. Но точно предсказать, как поведет себя разгон, невозможно, т. к. слишком много зависимостей от внешних факторов.

Давайте переходить непосредственно к тестам.

Сравнение производительности процессора линейки Sandy Bridge с предыдущим поколением в наборе приложений методики исследования производительности мобильных систем. Определение повторяемости результатов

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

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

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

Начнем с профессиональных приложений.

3D-визуализация

В этой группе собраны приложения, требовательные и к производительности процессора, и графики.

HP 8740w
Core i7-720QM
ASUS N53Jq
Core i7-720QM
Toshiba A665-3D
Core i7-2630QM
HP DV7
Core i7-2630QM
Lightwave - работа 20,53 22,97 24,87 16,17
Solidworks - работа 52,5 58,83 133,12 60,45
Lightwave - рейтинг 122 109 101 155
Solidworks - рейтинг 129 115 51 112
Группа - рейтинг 126 112 76 134

Что интересно, обе системы «второй волны» значительно обходят по производительности системы, протестированные полтора месяца назад. Интересно, что это - влияние драйверов? Другой, значительно более мощной графики в обоих случаях? Даже если не обращать внимание на старые результаты процессора Sandy Bridge, в сравнении двух Core i7 наблюдается та же зависимость.

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

3D-рендеринг

Посмотрим, как обстоит дело в рендеринге финальной сцены. Такой рендеринг выполняется силами центрального процессора.

HP 8740w
Core i7-720QM
ASUS N53Jq
Core i7-720QM
Toshiba A665-3D
Core i7-2630QM
HP DV7
Core i7-2630QM
Lightwave 138,58 131,56 269,89 90,22
3Ds MAX 0:10:04 0:10:06 00:21:56 0:07:45
Lightwave - рейтинг 95 101 49 146
3Ds MAX - рейтинг 113 112 52 147
Группа - рейтинг 104 107 51 147

Напомню, семпл компании Toshiba показывал в этом тесте очень слабые результаты. Зато в полностью работоспособной системе процессор Sandy Bridge позволяет добиться существенного превосходства в обоих графических пакетах. В Lightwave, как вы видите, есть разница и между двумя Core i7-720QM, а в 3Ds MAX разницы почти нет.

Зато в обоих тестах видно, что процессор Core i7-2630QM существенно быстрее, значительно обгоняет представителей предыдущего поколения.

Вычисления

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

HP 8740w
Core i7-720QM
ASUS N53Jq
Core i7-720QM
Toshiba A665-3D
Core i7-2630QM
HP DV7
Core i7-2630QM
Solidworks 46,36 45,88 44,02 38,42
MATLAB 0,0494 0,0494 0,0352 0,0365
Solidworks - рейтинг 111 112 117 134
MATLAB - рейтинг 113 113 159 153
Группа - рейтинг 112 113 138 144

Ну что же, а вот математические тесты не чувствуют разницы между двумя Core i7-720QM. Из этого можно сделать предварительный вывод, что эти приложения в минимальной степени реагируют на другие компоненты системы и программную часть.

Процессор нового поколения быстрее, но здесь отрыв не настолько большой, особенно это очевидно по цифрам рейтинга. Почему-то производительность DV7 в тесте MATLAB немного ниже, чем A660.

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

Компиляция

Тест на скорость компиляции программы с помощью компилятора Microsoft Visual Studio 2008. Этот тест хорошо реагирует на скорость процессора и кэш, да и многоядерность умеет задействовать.

HP 8740w
Core i7-720QM
ASUS N53Jq
Core i7-720QM
Toshiba A665-3D
Core i7-2630QM
HP DV7
Core i7-2630QM
Compile 0:06:29 0:06:24 0:04:56 0:04:54
Compile - рейтинг 123 125 162 163

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

Производительность приложений Java

Этот бенчмарк представляет собой скорость выполнения набора приложений Java. Тест критичен к быстродействию процессора и очень положительно реагирует на дополнительные ядра.

HP 8740w
Core i7-720QM
ASUS N53Jq
Core i7-720QM
Toshiba A665-3D
Core i7-2630QM
HP DV7
Core i7-2630QM
Java 79,32 83,64 111,8 105,45
Java - рейтинг 90 94 126 119

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

Перейдем к производительным домашним задачам: работе с видео, звуком и фотографиями.

2D-графика

Напомню, в этой группе остались всего два теста, достаточно разноплановых. ACDSee конвертирует набор фотографий из формата RAW в JPEG, а Photoshop проводит серию операций по обработке картинки - накладку фильтров и т. д. Приложения зависят от скорости процессора, а вот многоядерность задействуют постольку-поскольку.

HP 8740w
Core i7-720QM
ASUS N53Jq
Core i7-720QM
Toshiba A665-3D
Core i7-2630QM
HP DV7
Core i7-2630QM
ACDSee 0:07:01 0:06:55 0:05:11 0:04:52
Photoshop 0:01:17 0:01:17 0:00:49 0:00:51
ACDSee - рейтинг 108 110 146 156
Photoshop - рейтинг 426 426 669 643
Группа - рейтинг 267 268 408 400

ACDSee демонстрирует некоторую нестабильность результатов, но в целом разница между поколениями соответствует тенденции, она даже чуть больше.

На рейтинги Photoshop не стоит обращать внимание из-за измененного тестового задания. Эти же рейтинги портят и общий рейтинг группы. Но если посмотреть на время выполнения, то видно, что преимущество примерно такое же.

Кодирование аудио в различные форматы

Кодирование аудио в различные аудиоформаты - задача для современных процессоров достаточно простая. Для кодирования используется оболочка dBPowerAmp. Она умеет использовать многоядерность (запускаются дополнительные потокие кодирования). Результат теста - ее же баллы, они обратны затраченному на кодирование время, т. е. чем больше, тем лучше результат.

HP 8740w
Core i7-720QM
ASUS N53Jq
Core i7-720QM
Toshiba A665-3D
Core i7-2630QM
HP DV7
Core i7-2630QM
apple 148 159 241 238
flac 199 214 340 343
monkey 143 155 239 235
mp3 89 96 150 152
nero 85 91 135 142
ogg 60 65 92 90
apple - рейтинг 90 97 147 145
flac - рейтинг 99 106 169 171
monkey - рейтинг 97 105 163 160
mp3 - рейтинг 103 112 174 177
nero - рейтинг 104 111 165 173
ogg - рейтинг 103 112 159 155
Группа - рейтинг 99 107 163 164

Тест достаточно простой, но в то же время наглядный. Совершенно неожиданно здесь появилась разница между двумя процессорами Core i7-720QM, причем не в пользу недавно протестированной системы. Процессоры Sandy Bridge показали почти одинаковую производительность. Как видите, преимущество новых процессоров очень существенное, больше, чем в предыдущих группах тестов.

Видеокодирование

Три теста из четырех - это кодирование видеоролика в определенный видеоформат. Особняком стоит тест Premiere, в этом приложении сценарий предусматривает создание ролика, включая наложение эффектов, а не просто кодирование. К сожалению, Sony Vegas на некоторых системах не отработал, поэтому для этой статьи мы убрали его результаты.

HP 8740w
Core i7-720QM
ASUS N53Jq
Core i7-720QM
Toshiba A665-3D
Core i7-2630QM
HP DV7
Core i7-2630QM
DivX 0:05:02 0:05:23 0:04:26 0:04:18
Premiere 0:05:04 0:04:47 0:03:38 0:03:35
x264 0:10:29 0:10:01 0:07:45 0:07:35
XviD 0:03:31 0:03:34 0:02:34 0:02:30
DivX - рейтинг 86 80 98 101
Premiere - рейтинг 101 107 140 142
x264 - рейтинг 100 105 135 138
XviD - рейтинг 87 86 119 123
Группа - рейтинг 94 95 123 126

Особняком стоят результаты кодирования в DivX. Почему-то в этом тесте очень большая разница у систем с 720QM и очень маленькая разница между старым и новым поколением.

В остальных тестах разница существенна, а разница между поколениями примерно соответствует общей тенденции. Интересно, что в Premiere разница примерно такая же, как и в простом кодировании. Кстати, в этом тесте тоже обращает на себя внимание большая разница между двумя системами на 720QM.

Ну и, наконец, несколько типов домашних задач.

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

Архивирование представляет собой достаточно простую математическую задачу, в которой активно работают все компоненты процессора. 7z более продвинутый, т. к. может задействовать любое количество ядер, да и вообще более эффективно работает с процессором. Winrar задействует до двух ядер.

HP 8740w
Core i7-720QM
ASUS N53Jq
Core i7-720QM
Toshiba A665-3D
Core i7-2630QM
HP DV7
Core i7-2630QM
7-zip 0:01:57 0:01:55 0:01:30 0:01:27
WinRAR 0:01:50 0:01:48 0:01:25 0:01:25
Unpack (RAR) 0:00:50 0:00:49 0:00:42 0:00:41
7-zip - рейтинг 115 117 149 154
WinRAR - рейтинг 135 138 175 175
Unpack (RAR) - рейтинг 140 143 167 171
Группа - рейтинг 130 133 164 167

Разница между одинаковыми процессорами очень невелика. Опять видно, что в сравнении двух систем на 720QM ноутбук 8740 не намного, но стабильно быстрее. Процессоры нового поколения существенно быстрее, разница между двумя поколениями в целом такая же, как в большинстве других групп.

Производительность в тестах браузеров

Тоже достаточно простые тесты. Оба замеряют производительность в Javascript, это, пожалуй, наиболее требовательная к производительности часть движка браузера. Фокус в том, что у теста V8 результат в баллах, а у Sunspider - в миллисекундах. Соответственно, в первом случае чем выше цифра, тем лучше, во втором - наоборот.

HP 8740w
Core i7-720QM
ASUS N53Jq
Core i7-720QM
Toshiba A665-3D
Core i7-2630QM
HP DV7
Core i7-2630QM
Googlev8-chrome 6216 6262 7414 7366
Googlev8-firefox 556 555 662 654
Googlev8-ie 122 123 152 147
Googlev8-opera 3753 3729 4680 4552
Googlev8-safari 2608 2580 3129 3103
Sunspider-firefox 760 747 627 646
Sunspider-ie 4989 5237 4167 4087
Sunspider-opera 321 322 275 275
Sunspider-safari 422 421 353 354
Googlev8 - рейтинг 134 134 162 160
Sunspider - рейтинг 144 143 172 172
Группа - рейтинг 139 139 167 166

Сравнение в HD Play

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

HP 8740w
Core i7-720QM
ASUS N53Jq
Core i7-720QM
Toshiba A665-3D
Core i7-2630QM
HP DV7
Core i7-2630QM
H.264 hardware 2,6 2,5 2,3 1,2
H.264 software 19,7 18,9 13,4 14
H.264 hardware - рейтинг 631 656 713 1367
H.264 software - рейтинг 173 180 254 243

В абсолютных цифрах разница между двумя 720QM не очень велика, хотя в рейтингах она может показаться существенной. Интересно посмотреть на разницу между двумя процессорами Core i7-2630QM в режиме с использованием аппаратного ускорения. Система с графикой AMD показывает более низкую загрузку, но и при использовании адаптера Intel результаты были очень хорошие. В программном режиме обе системы хорошо справляются с декодированием, загрузка процессора невелика. У процессоров Sandy Bridge загрузка системы прогнозируемо ниже.

Посмотрим на средний балл систем, участвовавших в тестах.

HP 8740w
Core i7-720QM
ASUS N53Jq
Core i7-720QM
Toshiba A665-3D
Core i7-2630QM
HP DV7
Core i7-2630QM
Общий рейтинг системы 128 129 158 173

Хотя в некоторых тестах разница между двумя системами с процессорами Intel Core i7-720QM была ощутимой, в целом они показали практически идентичный результат.

Производительность полностью исправной и работоспособной системы с процессором Core i7-2630QM гораздо выше, чем у протестированного нами ранее семпла. По этим результатам уже можно делать выводы о производительности платформы.

И эти выводы состоят в том, что производительность новой платформы Sandy Bridge где-то на 35% (в зависимости используемых приложений) выше, чем используемой платформы предыдущего поколения. Конечно, выводы все равно не окончательные. Как минимум, у чипов разная частота. Да и вообще, применительно к новым процессорам Intel такое понятие, как «тактовая частота», стало достаточно иллюзорным, потому что у нас появилась технология Intel Turbo Boost.

Проверка работы системы Intel Turbo Boost

В процессорах серии Sandy Bridge реализована новая версия технологии Intel Turbo Boost, обладающая гораздо более широкими возможностями по управлению тактовой частотой процессора. Система контроля и управления стала гораздо более сложной и интеллектуальной. Теперь она может брать в расчет много параметров: какие ядра и насколько загружены, температура процессора и отдельных компонентов (т. е. система может отслеживать и предупреждать локальный перегрев).

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

Более того, новая система управления разгоном способна учитывать «эффект инерции». Когда процессор холодный, на короткое время частота может подняться очень высоко, процессор может даже выходить за определенный производителем предел рассеивания тепла. Если нагрузка краткосрочная, процессор не успеет нагреться до предельных температур, а если нагрузка продлится дольше - процессор нагреется и система снизит температуру до безопасных пределов.

Таким образом, у процессора Sandy Bridge есть три рабочих положения:

Активированы механизмы энергосбережения, процессор работает на низкой частоте и пониженном напряжении питания. Активируется система Intel Turbo Boost, процессор разгоняется до максимально разрешенной разгонной частоты (она зависит в т. ч. от того, сколько ядер и как загружены), повышается напряжение питания. Процессор работает на этой тактовой частоте, пока позволяет нагрев ядра. Процессор при превышении порогов по нагрузке или нагреву возвращается к тактовой частоте, на которой он гарантированно стабильно работает. Например, для 2630QM эта частота указана как 2 ГГц, эта частота указана в спецификациях и производитель гарантирует, что процессор сможет поддерживать эту частоту сколь угодно долго при условии соблюдения оговоренных внешних условий. Intel Turbo Boost позволяет поднять частоту работы, но параметры его работы и частота работы зависят от внешних условий, поэтому производитель не может гарантировать, что эта система всегда будет работать одинаково.

Впрочем, эту информацию можно почерпнуть из первого обзора. Напомнию, в первом тестировании процессор в простое работал со следующими параметрами:

  • Простой: 800 МГц, напряжение питания 0,771 В.
  • Нагрузка (все ядра, максимум): частота 2594 МГц (множитель 26), напряжение питания 1,231 В.
  • Нагрузка (спустя порядка 5 минут работы) - либо 2594 МГц (множитель 26), либо 2494 МГц (множитель 25).
  • Нагрузка (спустя где-то 7-8 минут работы) - 1995 МГц (множитель 20). Напряжение 1,071 В. Система вернулась к стабильным, заложенным производетелем параметрам работы.

Посмотрим, сколько продержится в разогнанном положении Hewlett-Packard DV7.

Запускаем программы мониторинга состояния процессора.

Частота работы и напряжение те же, что и в предыдущем тестировании. Посмотрим на показания температуры.

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

Запускаем нагрузочный тест. Напомню, он грузит все ядра сразу, так что максимальных цифр (2,9 ГГц) в Intel Turbo Boost мы не увидим.

Как видите, напряжение поднялось до 1,211 Вольт, частота стала 2594 МГц из-за изменившегося множителя, теперь он составляет 26. Процессор начинает стремительно набирать температуру, все громче начинает звучать вентилятор системы охлаждения.

Ну что же, посмотрим, насколько хватит процессора, когда он перейдет на штатную частоту.

Прошла минута, видно, что температуры начинают стабилизироваться.

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

Прошло 15 минут с начала тестирования. Температуры стабильны, система охлаждения справляется. Тактовая частота остается на уровне 2,6 ГГц.

Прошло 48 минут. Ноутбук продолжает работать под нагрузкой, температуры стабильны (ну, выросли на градус). Тактовая частота та же:

Ну что же, по крайней мере зимой и в не очень горячем помещении DV7 может работать с максимальной доступной частотой неограниченно долго. Мощности системы охлаждения вполне хватает, чтобы Intel Turbo Boost без проблем держала максимально доступную «разгонную» частоту. Теоретически можно было бы разогнать процессор еще немножко.

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

Ну что же, а мы переходим ко второй очень интересной части статьи: сравнение мобильного процессора Core i7-2630QM с настольными процессорами серии Sandy Bridge в настольной методике тестирования.

Сравнение производительности мобильного процессора Core i7-2630QM с настольными процессорами серии Sandy Bridge

Для сравнения мы используем результаты из нашего исследования настольных процессоров Core i7 и Core i5 на ядре Sandy Bridge.

Сравним конфигурации участников, включив в таблицу информацию о Core i7-2630QM.

Процессор Core i5-2300 Core i5-2400 Core i5-2500/2500K Core i7-2600/2600K Core i7-2630QM
Название ядра Sandy Bridge Sandy Bridge Sandy Bridge Sandy Bridge Sandy Bridge
Технология пр-ва 32 нм 32 нм 32 нм 32 нм 32 нм
Частота ядра (std/max), ГГц 2,8/3,1 3,1/3,4 3,3/3,7 3,4/3,8 2,0/2,9
Стартовый коэффициент умножения 28 31 33 34 20
Схема работы Turbo Boost 3-2-2-1 3-2-2-1 4-3-2-1 4-3-2-1 н/д
Кол-во ядер/потоков вычисления 4/4 4/4 4/4 4/8 4/8
Кэш L1, I/D, КБ 32/32 32/32 32/32 32/32 н/д
Кэш L2, КБ 4×256 4×256 4×256 4×256 н/д
Кэш L3, МиБ 6 6 6 8 6
Оперативная память 2×DDR3-1333
Графическое ядро GMA HD 2000 2000 2000/3000 2000/3000 3000
Частота графического ядра (max), МГц 1100 1100 1100 1350 1100
Сокет LGA1155 LGA1155 LGA1155 LGA1155 н/д
TDP 95 Вт 95 Вт 95 Вт 95 Вт 45 Вт

Тактовая частота у мобильного процессора ниже, что очевидно. В максимальном режиме Turbo Boost он чуть-чуть обгоняет по тактовой частоте младший настольный Core i5, работающий без Turbo Boost, но не более того. Зато значительно ниже тепловой пакет - более чем вдвое. Кроме того, у него меньше объем кэша последнего уровня, всего 6 МБ. Из плюсов стоит отметить, что у мобильного процессора четыре ядра и восемь потоков вычислений, т. к. это Core i7. Хоть какое-то преимущество над младшими настольными Core i5. Посмотрим, во что оно выльется на практике.

К сожалению, полноценного сравнения все равно не получилось. Некоторые пакеты из настольной методики не запустились (например, Pro/Engineer стабильно зависал на нашей тестовой системе), в результате пришлось выкинуть их результаты из рейтинга, а значит, и сам рейтинг поменялся по сравнению с рейтингами из основного материала.

Перейдем к тестам. Фраза «тест не запустился» означает, что тест не запустился именно на нашем ноутбуке, поэтому убраны результаты всех участников тестирования. Рейтинги в этом случае пересчитываются.

По результатам сразу видно, что мобильный процессор проигрывает настольным довольно серьезно - не может достичь уровня производительности даже младшего процессора новой настольной линейки. Результаты настольного процессора Core i7, на мой взгляд, слабоваты, все же он должен быть намного мощнее линейки Core i5, по результатам же зависимость кажется линейной. Результаты Solidworks вообще практически одинаковые для всех настольных систем. Этому тесту все равно, какая тактовая частота у процессора?

Посмотрим на скорость рендеринга трехмерных сцен.

Core i5-2300 Core i5-2400 Core i5-2500/2500K Core i7-2600/2600K Core i7-2630QM
3ds max 181 195 207 233 157
Lightwave 153 168 180 234 161
Maya 142 170 181 240 165
Rendering 159 178 189 236 161

Здесь ситуация немного повеселее - мобильная система все-таки достигла уровня младшей настольной. Однако настольный Core i7 далеко впереди во всех тестах. Для сравнения, вот абсолютные результаты одного из тестов, Maya. Результатом этого теста является затраченное на выполнение проекта время, что более наглядно, чем очки в других тестах.

Core i5-2300 Core i5-2400 Core i5-2500/2500K Core i7-2600/2600K Core i7-2630QM
Maya 00:08:47 00:07:20 00:06:52 00:05:11 00:07:34

Как видите, даже при не очень большом времени просчета проекта разница существенна. В случае более сложных проектов она должна быть еще больше.

Переходим к следующем тесту.

Практически все приложения используют сложные математические вычисления, поэтому настольная линейка с более высокой частотой очевидно будет впереди. В то же время, меня очень смущает слишком маленькая разница между настольными Core i5-2500 и Core i7-2600, в некоторых приложениях более мощный процессор даже проигрывает. Неужели в этих приложениях гипердрединг действительно настолько неэффективен, что даже разница в тактовых частотах не может компенсировать вызыванное им замедление? Это тем более интересно, ведь в мобильном процессоре конфигурация ядер такая же, как в серии 2600, а он в общем-то не так уж и сильно и отстает от младшего настольного процессора, учитывая разницу в рабочих частотах между ними.

А мы переходим к менее профессиональным и более распространенным тестам. И начнем с растровой графики. К сожалению, не запустился один из тестов, что опять повлияло на картину тестов.

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

Core i5-2300 Core i5-2400 Core i5-2500/2500K Core i7-2600/2600K Core i7-2630QM
ACDSee 00:04:20 00:03:59 00:03:46 00:03:34 00:04:57
Photoshop 00:03:36 00:03:15 00:03:07 00:02:58 00:04:00

Так можно оценить конкретную разницу во времени выполнения задания.

Переходим к тестам на архивирование. Это простые вычисления, хорошо чувствующие и скорость, и наличие дополнительных ядер процессора (хотя с этим есть вопросы).

Core i5-2300 Core i5-2400 Core i5-2500/2500K Core i7-2600/2600K Core i7-2630QM
7-zip 140 151 156 213 137
RAR 191 207 216 229 173
Unpack (RAR) 179 194 206 219 167
Archivers 170 184 193 220 159

И опять, и снова… Если смотреть на результаты 7-zip, то можно видеть, что многоядерность (даже в виде гипертрединга) дает существенные дивиденды. Но, видимо, тактовая частота тоже дает существенные дивиденды, потому что мобильный Core i7 с восемью ядрами опять не дотянул даже до младшего настольного процессора. И такая же ситуация сохранилась и в тестах Winrar. Зато настольный Core i7-2600 в тесте 7-zip уходит очень далеко вперед.

Тест компиляции, опять же задействующий математические возможности процессора…

В тесте на производительность приложений Java тенденция в принципе подтверждается. Но отставание мобильного процессора еще больше.

Посмотим на производительность Javascript в современных браузерах.

Core i5-2300 Core i5-2400 Core i5-2500/2500K Core i7-2600/2600K Core i7-2630QM
Google V8 161 176 190 191 148
Sun Spider 156 162 167 170 198
Browser 159 169 179 181 173

Если результаты теста от Google примерно соответствуют тому, что мы видели раньше, то в Sunspider явно что-то не так. Хотя в принципе во всех браузерах этот тест отработал на мобильном процессоре быстрее, чем на всех настольных, включая и настольный Core i7 (который, правда, по результатам очень несильно отличается от старшего Core i5).

В общем, весьма неожиданный результат второго теста, который я объяснить не могу. Возможно, что-то по-разному сработало именно в ПО?

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

Core i5-2300 Core i5-2400 Core i5-2500/2500K Core i7-2600/2600K Core i7-2630QM
Apple Lossless 135 149 154 206 126
FLAC 145 159 171 233 144
Monkey"s Audio 150 165 174 230 139
MP3 (LAME) 162 179 191 258 152
Nero AAC 154 171 179 250 148
Ogg Vorbis 164 179 191 252 147
Audio 152 167 177 238 143

Аудиокодирование не преподносит нам никаких сюрпризов. Мобильный Core i7-2630QM немного слабее всех протестированных настольных процессоров, настольный Core i7 уходит в серьезный отрыв. А что будет в видеокодировании?

Core i5-2300 Core i5-2400 Core i5-2500/2500K Core i7-2600/2600K Core i7-2630QM
DivX 146 160 170 157 96
Mainconcept (VC-1) 153 167 175 187 133
Premiere 155 169 178 222 132
Vegas 164 177 185 204 131
x264 152 165 174 225 136
XviD 166 180 190 196 133
Video 156 170 179 199 127

Отставание мобильного процессора увеличилось, настольный Core i7 по-прежнему сильно опережает все остальные процессоры, хотя разрыв и уменьшился.

Ну и одно из самых «реальных» тестирований: игры!

Core i5-2300 Core i5-2400 Core i5-2500/2500K Core i7-2600/2600K Core i7-2630QM
Batman 131 134 135 134 40
Borderlands 142 149 157 160 234
DiRT 2 109 110 110 110 36
Far Cry 2 200 218 232 237 84
Fritz Chess 142 156 166 215 149
GTA IV 162 164 167 167 144
Resident Evil 125 125 125 125 119
S.T.A.L.K.E.R. 104 104 104 104 28
UT3 150 152 157 156 48
Crysis: Warhead 127 128 128 128 40
World in Conflict 163 166 168 170 0
Games 141 146 150 155 84

Так и хочется сказать «ой». Все игры четко разделяются на зависящие от процессора и зависящие от графики. Установкой более мощного процессора можно здорово повысить скорость в Borderlands, Far Cry 2 и Fritz Chess. Некоторые игры реагируют на более мощные процессоры совсем чуть-чуть, некоторые не реагируют вообще. Если убрать из рассмотрения World in Confict, где мобильный Core i7 получил 0, то общий рейтинг выглядит так.

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

Core i5-2300 Core i5-2400 Core i5-2500/2500K Core i7-2600/2600K Core i7-2630QM
Batman 205 209 210 209 63
Borderlands 75 79 83 85 124
DiRT 2 76 77 77 77 25
Far Cry 2 76 83 88 90 32
Fritz Chess 8524 9368 9982 12956 8936
GTA IV 63 64 65 65 56
Resident Evil 128 128 128 128 121,6
S.T.A.L.K.E.R. 62,9 62,9 63 62,9 17,2
UT3 166 169 174 173 53
Crysis: Warhead 57,4 57,6 57,7 57,7 18,1
World in Conflict 62,6 63,5 64,3 65

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

Практически для всех игр процессоры слишком быстрые, финальный результат зависит в основном от производительности видеокарты. При этом уровень производительности мобильной системы значительно ниже, что позволяет сделать некоторые выводы об очень большой разнице между настольными и мобильными видеорешениями. Разница на примере наших тестов составляет в среднем три раза. Особняком стоят GTA IV и Resident Evil, которые показывают на всех системах, включая мобильную, близкие результаты.

В шахматной программе, где нагружен процессор, мобильный Core i7 выступает хорошо, между бюджетными настольными моделями.

Ну что же, подведем итог.

Core i5-2300 Core i5-2400 Core i5-2500/2500K Core i7-2600/2600K Core i7-2630QM
Общая оценка 157 170 180 203 141

Общий результат подтверждает тенденцию: один из самых мощных мобильных процессоров Core i7-2360QM не может достичь уровня производительности младшего настольного процессора в более слабой линейке Core i5. Настольный процессор Core i7 по производительности сильно отрывается даже от настольных процессоров из младшей линейки, что уж говорить о мобильной версии.

Вывод

Итак, время переходить к выводам. Напомню некоторые итоги из предыдущего материала.

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

И действительно, в практическом тестировании Core i7-2630QM, который должен быть самым младшим в новой мобильной линейке Core i7, серьезно обходит по уровню производительности Core i7-720QM, самый распространенный из производительных (или самый производительный из распространенных) процессоров мобильной линейки Intel Core первого поколения. Судя по всему, 2630QM должен занять его место, т. е. стать мейнстримовым производительным процессором в линейке Core 2-го поколения.

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

Однако в сравнении с новыми настольными процессорами Sandy Bridge Core i5 и i7 новый мобильный Core i7-2630QM все-таки проигрывает. Причем мобильная платформа слабее стабильно и во всех группах тестов. Это нормальная ситуация, т. к. при создании мобильных линеек приоритетами являются не только производительность, но и малое энергопотребление (для обеспечения большего времени работы от батарей), и низкое энергопотребление (из-за более компактных и слабых систем охлаждения). Стоит посмотреть хотя бы на термопакет нового мобильного процессора, который больше, чем в два раза (!) ниже, чем у настольных версий. За это приходится расплачиваться, в т. ч. более низкой штатной частотой и производительностью в целом.

Кстати, если говорить о частотах. Hewlett-Packard DV7 преподнес в этом плане приятный сюрприз (хотя возможно, что жарким летом все будет не столь радужно). Процессор, при условии хорошей системы охлаждения, может неограниченно долгое время работать на максимальной частоте Turbo Boost 2,6 ГГц, так что он вполне способен продемострировать более высокий уровень производительности, чем в соответствии со стандартными спецификациями. Конечно, нет никаких гарантий, что летом система охлаждения будет справляться, а если нет, то уровень реальной производительности относительно настольных систем может оказаться существенно ниже, чем в наших тестах. Поэтому наличие грамотной системы охлаждения в ноутбуке с новым мобильным процессором Core i7 выходит на первый план.

Его детального обзора на нашем сайте (правда, поддержка состояния глубокого сна 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-ролик, вдруг кто не видел:

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

Что в результате? Опробовав 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.

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

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