Особенности контроллера памяти в процессорах для LGA1366


C момента появления процессоров на ядре Nehalem, одним из их преимуществ все считали интегрированный трехканальный контроллер памяти. Не просто интегрированный контроллер памяти (ИКП сокращенно), а именно трехканальный. Понятно, чем это «круто» — все-таки одноканальные и двухканальные контроллеры памяти у AMD были еще за пять лет до этого, так что дополнительный канал, да еще и наиболее скоростной на данный момент памяти типа DDR3, выглядел весьма серьезным преимуществом. По мнению многих пользователей, также и одним основных факторов, которым процессоры линейки Core i7 обязаны своей высокой производительностью. Стоит заметить, что сама компания Intel это мнение никак не опровергала, за что и немного поплатилась — по-настоящему массовые процессоры архитектуры Nehalem, которые будут выпущены в начале осени, рассчитаны на конструктив LGA1156, предполагающий использование лишь двух каналов памяти. Казалось бы, серьезный недостаток новых моделей, который неспособен будет позволить им конкурировать со старшими братьями. Но так ли это?

В обзорах материнских плат мы уже пробовали оценить полезность многоканального режима памяти в процессорах под LGA1366, и результаты оказались, мягко говоря, неутешительными. Для режимов, разумеется, а не для пользователей. Однако проверки проводились на весьма ограниченном количестве приложений, так что окончательного ответа на вопрос, нужен ли трехканальный режим на практике, они не давали. Сейчас мы решили восполнить этот пробел. Точнее, сначала просто возникло желание опробовать не трех-, а двухканальный режим, для последующего более корректного сравнения производительности Core i7 900-й и 800-й серий: чтобы потом не строить гипотез о том, что сильнее всего повлияло на результаты (если они, действительно, окажутся существенно различными). Однако просто «прогнать» тесты из последней версии нашей методики в еще одной конфигурации - слишком скучно, да и из такого противостояния всего двух вариантов хорошей статьи получиться не может, поэтому мы немного усложнили задачу.

Конфигурация тестовых стендов

Все тестирование проводилось с использованием процессора Core i7 920, материнской платы Intel DX58SO («Smackover») и референс-видеокарты на базе NVIDIA GeForce GTX 275 — словом, как все положено, согласно версии 4.0 нашей методики тестирования. Различалась только память. В дополнение к обычно используемому нами комплекту Kingston KVR1333D3N9K3/6G, мы взяли еще и кит от Apacer, имеющий вдвое меньший объем. Все модули поддерживают работу на более высоких частотах, нежели официальные для Core i7 920 1066 МГц, но мы тестировали их именно на этой частоте по схеме 8-8-8-19.

Получилось четырех конфигурации, представленные в таблице:

  Число каналов Общий объем
3×2 3 6 ГБ
2×2 2 4 ГБ
1×4 1 4 ГБ
3×1 3 3 ГБ

Почему именно они? Две трехканальных нам нужны, чтобы четко понять — что важно в каком-то приложении: трехканальность или суммарный объем? Это будет хорошо видно по результатам: если и 3×2, и 3×1 в победителях, значит, польза от трех каналов есть, если только первый, значит, приложению просто нужно много памяти (точнее, оно способно ее использовать). Без 3×1 к однозначному ответу прийти было бы сложно. Полезность участия в тестах 2×2 очевидна — именно таким образом комплектуются современные системы на Core 2 и процессорах AMD, и именно он на некоторое время станет весьма массовым для систем на LGA1156 (конечно, можно было бы протестировать память и в конфигурации 2×1, но это уже с точки зрения систем, не относящихся к бюджетному сектору, совсем не интересно). 1×4 выглядит крайне синтетичным, поскольку вряд ли кто-то, имея два модуля памяти по 2 ГБ, будет их устанавливать в один канал, «презрев» остальные, однако… Он нам нужен для повышения общей образованности. Да и модули DDR3, емкостью 4 ГБ, уже появились. К сожалению, пока это экзотика, даже до наших рук не добравшаяся (иначе бы в списке тестируемых обязательно был бы и вариант 2×4), однако массовое распространение на рынке, как таких модулей, так и китов на их основе лишь вопрос времени.

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

Пристрелка

Но для начала мы решили проверить производительность каждого из вариантов в синтетическом приложении, в роли которого сегодня выступал Everest 4.6 (да, это далеко не последняя версия популярного тестового пакета, однако и «реальный» софт обновляется далеко не мгновенно, так что эти результаты нам весьма интересны даже если предположить слабую оптимизированность 4.6 под Nehalem).

И первые же результаты несколько обескураживают — как мы видим, никакого видимого прироста от задействования третьего канала ИКП нет. Более того — три модуля от Apacer справляются с этой задачей медленнее, чем два от Kingston. В то же время одноканальный режим — явный аутсайдер. Теоретическая ПСП DDR3 1066 составляет 8528 МБ/с, во что мы и уперлись — это понятно. Но добавление еще одного канала увеличивает скорость чтения далеко не в два, а менее чем в полтора раза, а третий вообще ничего не дает.

Со скоростью записи все еще веселее — одноканальный режим честно уперся в теоретическую ПСП, а увеличение количества каналов дало лишь менее 20% во всех случаях.

И, наконец, задержки доступа. Очевидный лидер здесь — двухканальный режим (напомним, что на этой диаграмме чем меньше цифры, тем лучше), хотя и одноканальный доступ дело не сильно ухудшает, но в трехканальном режиме задержки сравнительно сильно возрастают: на четверть.

Уже можно делать определенные выводы. Как мы помним из поведения других архитектур с ИКП (AMD K8/K10), они наиболее восприимчивы именно к задержкам при доступе к памяти, что очень заметно в реальных приложениях. Вряд ли Nehalem будет вести себя строго наоборот. Причем все это на фоне одинаковых скоростей чтения и записи, то есть двухканальный режим должен стать лидером. Одноканальный — уже не факт, что будет слишком быстрым: задержки меньше, но и ПСП гораздо ниже, а это не может не сказаться. Насколько сильно — мы и проверим. И попутно посмотрим, как разные приложения относятся к разному полному объему памяти: синтетические бенчмарки никакой информации по этому поводу дать не могут.

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

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

Рендеринг трёхмерных сцен

Рендеринг вообще мало восприимчив к характеристикам системы памяти, что можно было предполагать и изначально — здесь главное именно «числодробительные» способности вычислительных ядер и их количество (да и «виртуальные» потоки вычисления тоже воспринимаются положительно). Причем и к объему памяти требований особых нет — лишь бы ее хватало для просчитываемой сцены и накладных расходов. Для наших тестов вполне достаточно 3 ГБ, что и демонстрирует нам диаграмма выше.

Научные и инженерные расчёты

А в этой группе появляется еще один класс приложений, в дополнение к тем, кому нужно как можно больше памяти и кому объем не важен — те, кто начинает в зависимости от увеличения ОЗУ работать медленнее. На первый взгляд, ситуация необъяснимая — если скорость падает от нехватки памяти, это понять легко, но избыток просто никто не должен «заметить». С другой стороны — а почему не должен? Эффективность кэширования вполне может зависеть от объема ОЗУ и даже должна от него зависеть. Если конкретное приложение использует лишь небольшой объем памяти, причем постоянный, ему будет «доставаться» разный объем кэш-памяти процессора. Например, при шести установленных гигабайтах лишь половина из 8 МБ кэша L3 будет отведена для данных программы «переднего плана» (не забываем, что в оставшейся памяти тоже может кто-то «жить», пусть и не очень активно, но на кэш при этом претендовать), а при трех их обслуживанием будут заниматься уже 2/3 от 8 МБ. Любопытный эффект, конечно, жаль только несколько в стороне от основной темы нашего исследования лежащий. С ней все, как обычно — в среднем, самым быстрым оказывается двухканальный режим, а из двух вариантов трехканального, несмотря на наличие упомянутых выше приложений-ренегатов, производительнее тот, где суммарный объем памяти выше.

Растровая графика

В основном, все понятно, поскольку среди растровых редакторов нам встречаются все три уже определенных «группы» приложений. Хотя и с некоторыми вариациями — так, например, обоим продуктам Corel все равно, сколько памяти и какой — 3 или 4 ГБ неважно, но лишь бы не 6. Но обнаружилось просто очень «памятелюбивое» приложение - Adobe Photoshop. Причем тут очень интересен не общий результат подтестов, а некоторые из них в отдельности. Точнее, один — Convert. И настолько интересен, что продублируем в статье соответствующий кусок таблицы с «сырыми» данными.

Core 2 Quad Q9300 2×2 Core i7 920 3×2 Core i7 920 2×2 Core i7 920 1×4 Core i7 920 3×1
0:09:07 0:04:45 0:08:05 0:08:12 0:17:42

Вывод? Несмотря на то, что большинство обзоров в сети, где сравниваются процессоры разных архитектур в этом приложении (в меньшинстве обзоров теста по Photoshop просто нет, так что можно даже сказать, что во всех статьях такого рода), утверждается, что Core i7 просто идеальный процессор для Photoshop, как мы видим, ничего особо выдающегося в нем нет. Идеальным тут является не архитектура ядра, а количество памяти. При 6 ГБ Core i7 920 вдвое обгоняет Core 2 Quad Q9300, обеспеченный всего 4 ГБ. Именно такие сравнения в большинстве статей и встречаются (в том числе и на нашем сайте, но и прочие ресурсы ведут себя аналогично): 3х2 для процессоров под LGA1366 и 2х2 для Core2, AMD Phenom и т.п. Но если мы ограничим первый из процессоров теми же 4 ГБ (причем неважно, каким образом набранными), то выясняется… что отличие от Core 2 Quad вполне укладывается в допустимое, с точки зрения разницы в тактовой частоте. А если мы «отберем» у Core i7 еще всего один гигабайт памяти (казалось бы — 3 или 4: невелика разница), то результат ухудшится еще вдвое! Это наиболее показательный пример, однако и другие подтесты ведут себя сходным образом, хоть микроскопическую, но разницу находят всегда. И ничего не поделаешь — Photoshop действительно память «любит», причем чем больше «весят» обрабатываемые в нем файлы, тем больше «любит», а все утилиты тестирования производительности в данном приложении (а не только наши самописные тесты), естественно, оперируют именно большими файлами.

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

Сжатие данных

Программы-архиваторы не умеют использовать слишком большой объем памяти, поэтому им он просто вредит — к доступной емкости кэш-памяти они очень восприимчивы. К задержкам основного ОЗУ еще более восприимчивы, поэтому и имеем такую картину — самой медленной конфигурацией является 3х2, а выйти на первое место 3х1 мешает латентность.

Компиляция (VC++)

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

Java

Тест Java-машины оказался очень восприимчив к скорости чтения из памяти, но и ее общий объем ему достаточно важен. Именно такую картину можно было бы ожидать везде, если бы верны были наивные предположения о том, что трехканальный доступ к памяти является залогом высокой производительности, но памяти при этом много не бывает. Жаль только, что среди протестированных приложений эти мечты подтверждены буквально пару-тройку раз. Но, как раз, пример, когда подтверждены.

Кодирование аудио

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

Кодирование видео

А вот тут все почти так, как должно быть в «наивной теории». Портит картинку только недостаточно заметный проигрыш двухканального режима. Точнее, будет сказать, почти незаметный. Да и тому, что он вообще есть, мы обязаны ровно одному приложению — DivX. Пример хорошей оптимизации под все особенности сегодняшние Core i7. Как он поведет себя на «завтрашних» будем проверять уже менее чем через месяц.

Игровое 3D

Очень, очень спокойная немного непонятная общая картина. Однако под внешним спокойствием в детальных результатах таится настоящая буря. Пристрастия игр сильно разделились, а у каких как — оставим в качестве задачи для самостоятельного изучения. Главный вывод — для игр (именно как множества, а не для одной конкретной игры) вопрос конфигурации памяти не является каким-то важным. В общем-то, решать его даже менее необходимо, чем вопрос выбора центрального процессора (разумеется, если речь не идет о совсем уж бюджетном секторе, типа Core 2 Duo или вообще Pentium/Celeron). Главным же вопросом, стоящим перед «хардкорным» геймером сегодня, будет: «Потяну на multi-GPU или придется свои желания как-то ограничивать?»

А зачем вообще нужен трехканальный ИКП?

Как мы видим, большой пользы от задействования третьего канала контроллера памяти в Core i7 LGA1366 нет. Канал — есть, использовать — можно, но результаты далеко не всегда улучшаются. Чаще даже, наоборот, ухудшаются. Так зачем компания Intel делала ИКП именно трехканальным? Из желания поиграть мускулами (у конкурента два, а мы все три сделаем)? Возможно, такой соблазн тоже был, но вряд ли — все-таки три канала даются достаточно высокой ценой. Причем в прямо смысле: разводка плат становится очень сложной, а сложно — значит дорого. Процессоры можно делать и недорогими (и использованный нами сегодня Core i7 920 тому яркий пример — его розничная цена как Core 2 Quad Q9650), но сама платформа оказывается дороговатой. Причем без особой пользы — для большинства «типично пользовательских» приложений сейчас легко можно ограничиться двумя модулями по 2 ГБ и не волноваться (особенно если учесть процент до сих пор использующих 32-х разрядные операционные системы, где больший объем ОЗУ просто не будет использоваться). Как было сказано в хорошем анекдоте про верблюжонка и его маму: «А зачем нам эти навороты, если мы все равно живем в зоопарке?»

В том-то и дело, что нынешние Core i7, по сути, в зоопарке и живут. Наилучшим образом под него будут приспособлены «настоящие» настольные модели, рассчитанные под исполнение LGA1156, главным (да и вообще — единственным) отличием которого от LGA1366 является поддержка «всего-навсего» двухканального режима памяти. А LGA1366 — платформа изначально серверная. В серверах нужно много памяти. Ни 4, ни 8 и даже ни 12 ГБ, а действительно много. Там и полсотни гигабайт легко могут оказаться востребованными, а то и недостаточными. Как же можно установить больше памяти в одну систему? Общий объем равен произведению количества модулей на их объем. Стало быть, нужно увеличивать либо количество, либо емкость каждого модуля. Второе — сложно и от производителей процессоров/чипсетов, вообще говоря, не зависит. Более того — освоение индустрией более «плотных» микросхем памяти благотворно сказывается на всех производителях серверных платформ одновременно, так что не может стать конкурентным преимуществом.

Значит, надо увеличивать количество поддерживаемых модулей. А оно равно (в общем случае) количеству контроллеров памяти, умноженных на количество поддерживаемых каждым модулей. Последнее — произведение числа поддерживаемых каналов на число одновременно работающих на каждом канале модулей. Увеличивать последнее — очень сложная задача, поскольку одновременно нужно и скоростные характеристики не ухудшать, как минимум. Эта проблема даже в настольных системах проявляется, где больше двух-трех модулей на канал не используется. Например, может быть так: один модуль — DDR3 1333, два — DDR3 1066, три — DDR3 800. Очень много медленной памяти, конечно, иногда лучше, чем мало быстрой, но идти на такие издержки все равно нежелательно. А иногда и невозможно.

Над проблемой увеличения количества поддерживаемых одним каналом контроллера модулей памяти в Intel работали долго и небезуспешно. Однако оказалось, что конечный результат (FB-DIMM) изначально поставленным требованиям удовлетворяет, но его использование вызывает массу нежелательных побочных эффектов.

Остается только один путь — во-первых, перенести контроллер памяти в процессор, что в многопроцессорной системе автоматически обеспечивает нам поддержку и нескольких контроллеров памяти. Во-вторых, увеличивать количество каналов памяти. И то, и другое было сделано. Результат? В системе на двух Xeon, равно как и в системе на двух Opteron, есть два контроллера памяти. Только в первой оба трехканальные, а во второй — двухканальные, что дает нам шесть и четыре канала памяти, соответственно. При установке двух модулей памяти на канал (очень даже щадящий режим) в первой системе их окажется 12, а во второй — 8. Допустим, каждый модуль имеет емкость 4 ГБ, тогда в первой системе окажется 48 ГБ, а во второй — 32 ГБ. В ряде задач это сразу обеспечит первой системе весомое преимущество. А как в сервере на Оптеронах теми же модулями «добить» память до 48 ГБ? Легко — устанавливаем три модуля на канал и… вся система памяти начинает работать медленнее, поскольку, например, задержки придется сильно увеличить. И получается: при одинаковой скорости работы памяти система «и» имеет в полтора раза больший ее объем, чем система «а», а при равном объеме система «и» работает с памятью быстрее, чем система «а».

Именно поэтому в Xeon трехканальный контроллер памяти нужен. Он и в Opteron нужен, но не удалось в свое время сделать. Точно так же, как сейчас Intel не удалось четыре канала реализовать. Все равно по этому пути идти обоим производителям, поскольку альтернативным (а именно FB-DIMM и количество модулей на канале увеличивать) один из них уже идти пробовал и остался не очень довольным.

А зачем все это в зоопарке, на рабочем столе обычного пользователя? Правильно — незачем. Кому нужно — те многопроцессорную рабочую станцию купят и сведут задачу к предыдущей. Основная масса как-то желанием не горела и по 8 ГБ в компьютеры устанавливать (хотя это-то давно доступно), так что ей нет разницы — можно поставить 12 или как. Тем более что сейчас уже при двух модулях на канал двухканального контроллера памяти можно получить и 16 ГБ, а вопрос — насколько это хуже/лучше, чем 24 ГБ, для нормального пользователя компьютера сродни вопросу, сколько ангелов поместятся на кончике иглы.

Итого

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

Но! Успокаиваться на этом рано — как мы видим, в общем зачете получилась идиллия именно из-за того, что разные приложения друг друга уравновешивают, однако ведут себя они совершенно по-разному. Кому-то нужно много памяти, кому-то ее увеличение наоборот — мешает, кому-то не важен объем, но жизненно важны низкие задержки, но DivX, по сути, «презрел» все объективно существующие параметры памяти и отдал предпочтение трехканальному режиму в любом виде. Поэтому, при сравнении систем с разными конфигурациями памяти в рамках одной статьи (или самостоятельно), в конкретных тестах не стоит забывать поинтересоваться — как именно получен тот или иной результат. Впрочем, не так уж долго осталось нам возиться именно с разными конфигурациями — LGA1156, напомним, поддерживает только два канала памяти, так что с этими процессорами все будет просто и логично. Устройства в конструктиве LGA1366 мы продолжим тестировать в конфигурации 3х2, однако иногда будем извлекать из запасников и 2х2 (когда нежелательно будет делать поправки в уме на особенности системы памяти). Можно было бы даже полностью перейти на последние, но нет смысла — в среднем, они, конечно, несколько быстрее, но поддержка трех каналов памяти эксклюзивная особенность LGA1366, так что пусть за нее отдувается. Нам просто достаточно помнить, что трехканальный доступ к памяти на этой платформе производительность совсем не увеличивает, а даже наоборот.



Благодарим российское представительство Kingston Technology
и компанию Apacer за помощь в комплектации тестовых стендов



Дополнительно

Нашли ошибку на сайте? Выделите текст и нажмите Shift+Enter

Код для блога бета

Выделите HTML-код в поле, скопируйте его в буфер и вставьте в свой блог.