Настоящая интрига в ранее спокойном сегменте серверной памяти началась с выходом на рынок процессоров Opteron с интегрированным двухканальным контроллером регистровой памяти DDR333. В действительности именно этот продукт дал старт гонке скоростей в серверном сегменте по всем параметрам, в том числе и по увеличению производительности и функциональности подсистемы памяти.
Не станем повторять, что было до появления Opteron, просто напомним, что до 2003 г. основным критерием, определяющим требования к подсистеме памяти, был прежде всего ее объем, и уже затем – наличие технологии, повышающей стабильность работы. Скорости обмена особое внимание не удалялось, считалось, что двухканального контроллера DDR200/266 вполне достаточно, чтобы обеспечить должную производительность в большинстве приложений.
Компания «Оникс» уже поставляет на украинский рынок мощнейшие решения Supermicro с поддержкой FB-DIMM-памяти до 64 GB |
Первые профессиональные процессоры семейства AMD64 продемонстрировали, на что способен современный контроллер памяти, встроенный в процессор. Результатом применения такого новшества стало минимальное время доступа к ячейкам памяти при сохранении высокого быстродействия. Однако по-настоящему преимущество новых серверных CPU от AMD раскрылось в многопроцессорных системах. В отличие от SMP-модели конкурента (когда все процессоры делят между собой одну шину и обращаются к одному контроллеру памяти), у AMD количество процессоров по определению совпадало с числом контроллеров памяти, связанных между собой скоростными двунаправленными последовательными шинами HyperTransport. В результате рост количества CPU и объема памяти (из-за прямой 64-битовой адресации) не приводил к потере производительности.
Применение технологии FB-DIMM с последовательной шиной предусматривает полную буферизацию ОЗУ, но приводит к более высоким значениям латентности при доступе к памяти |
Intel, в свою очередь, в новых чипсетах семейств 7525 и 7530, также рассчитанных на работу с 64-битовыми CPU, использовала ряд технологий повышения отказоустойчивости подсистемы памяти, которые обычно применяются в классе high-end. К таковым можно отнести Memory Scrubbing, x4 SDDC (Single Device Data Correction) и Memory Mirroring. Суть первой сводится к тому, что во время простоя сервера контроллер начинает интенсивно нагружать имеющуюся память с целью выявления ее некорректной работы и при обнаружении ошибки не допускает последующей записи в данные области. Зеркалирование (mirroring), по сути, повторяет одноименный принцип формирования RAID-массивов из жестких дисков: при использовании этого решения доступный объем памяти будет равен половине реально установленного. Однако в случае сбоя можно считывать данные с зеркального образа той области памяти, где была найдена ошибка. Кроме того, семейство чипсетов 75хх положено в основу первых серверных платформ с применением регистровой памяти DDR2 (осуществлялась поддержка только стандарта DDR2-400).
Основные конкуренты в серверном сегменте – стандарты памяти FB-DIMM и Rеgistered DDR2 – используют одинаковые чипы, но разные подходы |
Дальнейшие усовершенствования со стороны AMD сначала привели к увеличению частоты (до RDDR400), а затем были применены контроллеры, рассчитанные на работу с модулями RDDR2-533/667. Хотя стоит отметить, что внедрять регистровую память DDR2 компания особо не хотела по причине увеличившейся латентности. Новейшее поколение Opteron (Dual Core, Socket F) использует пока самый быстрый официальный стандарт JEDEC – Registered DDR2-667 с последней технологией повышения стабильности, позволяющей проверять четность не только данных, но и адреса. Причем, когда утвердят следующую ступень DDR2-800, эти CPU поддержат и ее. Правда, не обошлось без ложки дегтя: даже новые Opteron (возможно, пока) не могут работать более чем с четырьмя модулями памяти на один процессор, что ограничивает ее объем до 8 GB на каждый CPU. Разумеется, запас «прочности» весьма солидный, однако сейчас можно легко найти задачи, для которых его будет недостаточно.
Структурная схема усовершенствованного буферного контроллера AMB, применяемого в технологии FB-DIMM |
Системная плата Tyan Thunder h1000E станет основой для серверов среднего уровня на базе Opteron 2000, разработанных компанией Entry |
Принципиально иным путем пошла Intel, выпустив новое поколение серверов на базе чипсетов серии 5000 с поддержкой памяти FB-DIMM. Благодаря этой технологии удалось полностью вынести логику управления памятью на сам модуль (контроллер AMB), так что северный мост чипсета теперь только инициирует обращение к AMB за нужными данными, все дальнейшие процессы – от их нахождения до передачи – уже контролируются в AMB. Это производится в режиме последовательного доступа, когда все модули одного канала соединены друг за другом. Таким образом, если данные находятся в последнем из них, запрос должен пройти через все AMB-чипы планок, установленных на этом канале, с аналогичным по длине путем дальнейшей обратной пересылки данных. Как можно заметить, такой подход существенно увеличивает время отклика системы, особенно при случайном доступе. Для минимизации потерь, связанных с высокой латентностью, Intel решила применить метод наращивания каналов (благо с помощью последовательного интерфейса это сделать гораздо проще, чем использовать широкую параллельную шину, да еще и на сверхвысокой частоте). В результате первые чипсеты с последовательной подсистемой памяти получили четыре канала с возможностью установки на каждый из них до четырех модулей. Так что на двухпроцессорной системе теперь можно использовать ОЗУ до 64 GB стандарта FB-DIMM 533/667 с максимальной полосой пропускания 21 GBps. Количество модулей, устанавливаемых на каждый канал, практически не ограничено (приводимое разработчиком число в 288 планок на канал вряд ли будет когда-либо реализовано), так что в случае необходимости памяти может быть столько, сколько нужно. В перспективе подобная концепция могла бы стать очень эффективной, если бы не описанная выше значительная латентность и действительно устаревшая единая процессорная шина, применяемая во всех CPU от Intel. В последнем варианте 1333 MHz уже можно назвать попыткой выжать все соки из AGTL+, особенно с учетом того, что в десктопных системах такая частота вообще пока не используется (и неизвестно, будет ли). В результате для двух процессоров (восьми логических ядер) максимальная полоса пропускания составляет 10,6 GBps (всего лишь по 1,3 GBps на каждое ядро по сравнению с 4 GBps у двухъядерных Opteron). В то же время память работает ровно вдвое быстрее (21 GBps у Intel и 10,6 – у AMD), так что помимо скрытых задержек, связанных с самой технологией последовательного доступа, дополнительное время подсистема памяти простаивает, ожидая необходимых данных от процессора.
Итак, в результате мы видим два совершенно разных подхода к функционированию (мы бы даже сказали, позиционированию) подсистемы памяти, но с использованием стандарта DDR2 (напомним, внутренняя архитектура модуля FB-DIMM полностью повторяет оную в DDR2). AMD по-прежнему ориентирована на массовый рынок, ее процессоры универсальнее, если можно так выразиться, и пока справляются с широким кругом задач лучше продуктов конкурента. Правда, с другой стороны, они имеют более слабое вычислительное ядро, а также подвержены ограничениям, наложенным встроенным контроллером памяти. Новая технология последовательной организации подсистемы памяти по своей концепции во многом напоминает появление Pentium 4, когда частоты и уникальность подхода не смогли компенсировать реальных требований ПО того времени. Сейчас ситуация очень похожа. Судите сами: наиболее перспективная и быстрая технология памяти не может работать на полную мощность даже в паре с топовыми CPU Xeon нового поколения.
Причина, как и прежде, одна – необходимость срочной замены процессорной шины, существующая уже без малого шесть лет. Трудно представить, на что были бы способны сегодняшние Xeon, если бы каждый из них был оснащен собственной последовательной шиной, и им не приходилось бы делить между собой общую полосу пропускания, особенно с учетом наличия четырех логических ядер в каждом. Выход же видится один. Безусловно, нужно разрабатывать и внедрять новую процессорную шину (и очень быстро), а до того – выпустить чипсет, аналогичный пятитысячному, но с поддержкой обычной RDDR2, что позволило бы раскрыть потенциал серверных CPU от Intel в задачах пусть и ресурсоемких, но не заточенных на потоковую передачу данных.
Возможно, мы вернемся к этому вопросу, когда серверы с процессорами для Socket F и последовательные серверные платформы от Intel станут массовыми (это должно произойти ориентировочно к середине 2007 г.), и уже тогда станет ясно, чья же технология организации подсистемы памяти оказалась лучше.
APP (Address Parity Protection) – проверка четности адреса. По стандарту JEDEC поддержка технологии APP обязательна в регистровых модулях типа DDR2-667 и выше (для новых процессоров Opteron под Socket F). Она позволяет «не ошибиться» при выборе области памяти, к которой обращается контроллер. Вероятность появления подобной ошибки и ранее была крайне мала, в современных же топовых серверах, как считают в консорциуме JEDEC, она должна быть исключена полностью. Кроме того, необходимость введения APP связывают с резко возросшими частотой и объемами устанавливаемой в серверах памяти.
ECC (Error Correction Code) – память с коррекцией ошибок и контролем четности. Модули с поддержкой ECC являются минимальным обязательным требованием для серверов начального уровня. Данная технология позволяла выявлять ошибки длиной в два бита (double error detection) и исправлять однобитовые (single error correction). Для обеспечения этой функции необходима установка дополнительного чипа памяти на модуль и поддержка со стороны чипсета (топовые декстопные наборы системной логики от Intel – 875, 925, 955, 975 и все серверные). Следующим шагом стало применение двух дополнительных микросхем на модуле, что дало возможность находить ошибки длиной в четыре бита и исправлять двухбитовые. В ряде серверных платформ Intel использует надстройку, названную x4 SDDC (x4 Single Device Data Correction), обеспечивающую поиск и коррекцию ошибок для 1, 2, 3 или 4 бит данных в одном модуле, а также обнаружение ошибок длиной до 8 бит в двух планках памяти.
Подобная функциональность (коррекция ошибок длиной более одного бита) имеется только у регистровых буферизованных модулей, что связано с необходимостью применения дополнительной логики на самом модуле с соответствующей поддержкой со стороны чипсета. Последней разработкой в области коррекции ошибок и проверки четности считается технология Address Parity Protection.
FB-DIMM (Fully Buffered DIMM) – новый тип серверной памяти, получивший распространение благодаря новым процессорам Xeon и чипсетам Intel серии 5000. Принцип ее работы заключается в использовании контроллера AMB (Advanced Memory Buffer), расположенного на PCB модуля памяти и соединенного последовательной двунаправленной шиной (аналог PCI Express) с северным мостом чипсета. За исключением AMB, планка FB-DIMM полностью повторяет характеристики регистровой буферизованной DDR2-памяти (так как использует стандартные чипы DDR2). По сути, AMB является процессором, распределяющим работу подсистемы памяти на две независимые друг от друга составляющие: управление всеми операциями внутри модуля (чтение, запись, регенерация ячеек) и передачу данных контроллеру чипсета. Пожалуй, технология FB-DIMM – самая интеллектуальная из применяемых сегодня.
Она позволяет при уменьшении количества проводников значительно повысить частоты работы модулей и благодаря последовательному интерфейсу увеличить общий объем памяти на сервере. В перспективе системы на основе FB-DIMM могут получить в свое распоряжение до шести каналов при возможности использования до восьми модулей в каждом, что обеспечит совершенно фантастические характеристики, ранее принципиально не достижимые на платформах x86: полосу пропускания 32 GBps и суммарный объем в 192 GB для одного сервера. Недостатками данного подхода можно считать высокое энергопотребление – на 30% больше, чем у стандарта DDR2 (нагрев AMB требует обязательной установки рассеивателя тепла) и чрезвычайно большое (по сравнению с классическими технологиями DDR и DDR2) время доступа. Следовательно, применение платформ с FB-DIMM оправдано скорее для сложных SQL-систем, где в основном используются потоковые методы обмена данными.
Rank – ранг модуля памяти. Этот термин, разработанный JEDEC, применим абсолютно для всех модулей памяти, однако актуальным является только для серверов – из-за больших объемов инсталлированной памяти. Помимо максимального объема, поддерживаемого конкретным чипсетом, существуют ограничения и по количеству рангов. В случае простых (не регистровых) модулей разобраться с их рангом очень просто: если микросхемы смонтированы только с одной стороны PCB – модуль всегда одноранговый, если же с двух – двухранговый. Себестоимость одноранговых модулей, как правило, больше, ведь они базируются на микросхемах DRAM высокой плотности (особенно это актуально для планок объемом 1 GB и выше), в то же время двухранговые на многих контроллерах памяти способны показывать значительно большее быстродействие в операциях записи.
Регистровые модули в силу специфики их работы через буфера могут иметь от одного до четырех рангов. Так, даже двухстороннее расположение чипов может означать как одно-, так и 2–4-ранговую схему, когда объем памяти разбивается на четыре 64-битовых пространства, что, в свою очередь, требует более мощной микросхемы-регистра для управления. Например, серверный чипсет Intel E7520/E7320 допускает установку до 16 GB памяти DDR2-400, но при ограничении сверху в восемь рангов. Следовательно, чтобы достичь максимального объема, потребуется применение только восьми одноранговых планок объемом по 2 GB каждая.
Ситуация с ценами и производительностью такая же, как и с десктопной памятью. Разумеется, самой дорогой является одноранговая большого объема, но в то же время 2- и 4-ранговая в некоторых случаях обеспечивает повышенное быстродействие.
Здесь же следует упомянуть и о существенной разнице в стоимости между модулями с одинаковым рангом и объемом, но с разным числом микросхем. Например, одноранговый модуль объемом 1 GB, состоящий из четырех чипов, может быть вдвое дороже аналогичного однорангового, но построенного на 8 или 16 чипах, так как большее количество микросхем означает большее энергопотребление и повышенную вероятность возникновения ошибки.
Registered Buffered Memory – регистровая буферизованная память. Использование дополнительных буферных регистров на ее модуле способствует уменьшению электрической нагрузки на чипсет и обеспечивает боóльшую стабильность по обмену данными между северным мостом и модулем. В обычном модуле контроллер памяти обращается напрямую к ячейкам DRAM, в регистровом же «общение» происходит только между контроллером и регистрами. Подобный подход позволяет увеличить общий объем памяти (из-за уменьшения электрической нагрузки контроллер может обслуживать большее количество модулей), а также существенно повысить стабильность, поскольку регистры гарантированно сохраняют сигнал до его считывания. В настоящее время регистровая буферизованная память является стандартом де-факто для серверов среднего и высокого уровней (не вдаваясь в подробности, слова «буферизованная» и «регистровая» в данном случае можно считать синонимами).
BGA (Ball Grid Array) – наиболее распространенный способ упаковки современных типов памяти. В роли проводников выступают контактные площадки на нижней стороне чипов. Подход более дорогостоящий, однако позволяющий увеличить частоты работы и уменьшить паразитные электрические параметры.
DDP (Dual Die Package) – по сути, два чипа, упакованных в один TSOP-элемент.
TSOP (Thin Small Outline Package) – ранее применяемая классическая упаковка с использованием ножек по обеим сторонам чипа. В современных типах памяти практически не применяется.