Термины и определения
Контроллер памяти - цифровая схема, управляющая потоком данных к и от оперативной памяти. В данном документе контроллер памяти рассматривается как функциональный блок процессора. Одной из характеристик контроллера памяти является количество каналов памяти.
Канал памяти - «путь» от модуля памяти к контроллеру по которому передаются считываемые и записываемые данные. Наиболее подходящая аналогия при определении канала памяти – водопроводная труба, соединяющая резервуар-источник и резервуар-приёмник.
Банк памяти - группа модулей памяти, установленных в одноимённые слоты на разных каналах одного контроллера.
Модуль памяти - небольшая печатная плата, на которой размещены микросхемы запоминающего устройства.
Ранг - количество наборов микросхем, разрядность каждого из которых составляет 64 бита, подключенных к одной линии выбора микросхемы. Ранг является характеристикой модуля памяти.
Технология DDR3
Тип памяти DDR3 – это тип оперативной памяти, используемой в вычислительной технике в качестве оперативной памяти и видеопамяти.
Память DDR3 пришла на смену памяти типа DDR2 и обладает по сравнению с ней преимуществами в более высокой пропускной способности (до 60%) и пониженным энергопотреблением (снижение от 15% до 40%).
Модули памяти DDR3 так же, как и модули памяти DDR2, имеют 240 контактов, однако ключ находится в ином месте печатной платы модуля, что не позволяет установить модуль памяти DDR3 в сокет, предназначенный для модулей DDR2 (см. Рис.1):
Рис. 1 |
Преимущество модулей DDR3 по сравнению c модулями DDR2 в энергопотреблении связано с понижением напряжения питания с 1,8 вольт до 1,5 вольта. Существуют также модули памяти, работающие от напряжения 1,35 вольта, что делает энергопотребление систем, построенных с использованием таких модулей, ещё более низким.
Ключевым фактором, позволившим обеспечить двукратный прирост скорости по сравнению с DDR2, стала особая топология соединения микросхем памяти, использованная в модулях DDR3. Модули памяти DDR2 использовали топологию соединения, наиболее похожую на дерево и именуемую «T-Branch» (см. Рис. 2):
Рис. 2 |
При такой топологии соединения микросхем памяти, командные сигналы поступают ко всем микросхемам одновременно. При этом все микросхемы одновременно выставляют в шину запрошенные данные, а контроллер памяти считывает получившийся набор параллельных битов. Период времени, когда контроллер может считать данные, называется «data eye», и этот период сокращается при росте частоты, на которой работает память.
Решить проблему сокращения периода времени, в течение которого могут быть считаны данные, позволяет топология соединения чипов памяти, называемая «fly-by topology» (см. Рис. 3):
Рис.3 |
Скорость работы разных модулей памяти приведена в Табл.1:
|
|||||||||||||||||||||||||||||||||||
Табл. 1 |
Значение эффективной скорости часто называется «частотой» и имеет размерность «МГц», хотя на самом деле эффективная скорость работы памяти измеряется в миллионах передач за секунду – «mega transfers per second» – MT/s.
Далее в документе скорость работы модуля будет измеряться в мегагерцах – МГц.
Понятие ранга
Рангом модуля памяти называется количество наборов микросхем разрядностью 64 бита, подключенных к линии выбора микросхемы (chip select).
Объясняя очень грубо, двухранговый модуль – это два логических модуля, распаянных на печатной плате и пользующихся поочерёдно одним и тем же физическим каналом передачи данных. Четырёхранговый – то же самое, что и двухранговый, но уже в четырёхкратном масштабе (см. Рис. 4, Рис. 5):
Рис. 4 |
Рис. 5 |
Как нетрудно догадаться, организация модуля памяти с использованием рангов позволяет увеличить объём оперативной памяти, доступной по единственному набору линий.
Организация модулей памяти с использованием рангов применяется в серверах и тяжелых рабочих станциях, для достижения максимального объёма оперативной памяти при ограниченном количестве слотов.
Типы модулей памяти
В настоящее время существует три типа модулей памяти:
- Регистровые (registered);
- Небуферизованные (unbuffered);
- Со сниженной нагрузкой (load reduced).
Регистровые модули памяти
Регистровые модули памяти являются самым распространёнными и наиболее часто используемыми модулями памяти. Сокращённое название регистровых модулей, принятое в различных справочниках и спецификациях – RDIMM.
Наименование «регистровый» означает, что модули этого типа имеют буферизирующий регистр который используется для буферизации адресных и командных сигналов (см. Рис. 6):
Рис. 6 |
Наличие буферизирующего регистра позволяет снизить электрическую нагрузку на адресную шину, что, в свою очередь, позволяет установить в канал больше модулей памяти, но не более восьми рангов для одного канала.
Недостатком такого решения является незначительное повышение энергопотребления и увеличение задержек.
Используются модули памяти RDMM в больших, высокопроизводительных серверах, где требуется большое количество оперативной памяти.
Отдельно хотелось бы отметить, что полностью буферизованные модули памяти (FBDIMM), в которых буферизация осуществляется для адресных сигналов, сигналов управления и данных не являются частью стандарта DDR3.
Архитектура FBDIMM поддерживает больше модулей памяти на каждый канал памяти, но сами по себе модули FBDIMM более дорогие, потребляют больше энергии и обладают значительной задержкой. Увеличение количества каналов в серверах последних поколений, использующих процессоры Intel Xeon 5500 и более новые, сделало невыгодным использование модулей FBDIMM в качестве оперативной памяти.
Небуферизованные модули памяти
Небуферизованные модули памяти являются вторыми по распространённости и используемости модулями памяти после регистровых модулей. Сокращённое название небуферизованных модулей – UDIMM.
Наименование «небуферизованный» означает, что в модулях такого типа отсутствуют какие-либо промежуточные элементы между чипами памяти и контроллером памяти, то есть чипы памяти посредством адресных и управляющих линий подключаются напрямую к контроллеру памяти.
Организация подключения модулей памяти без каких-либо промежуточных элементов обеспечивает наиболее быстрый обмен данными между контроллером и чипами памяти на модуле, но при этом установка каждого дополнительного модуля в канал увеличивает электрическую нагрузку на шину. Как следствие, в один канал контроллера можно установить не боле двух двухранговых модуля UDIMM.
Из-за ограничения на количество устанавливаемых модулей сфера применения модулей UDIMM ограничена использованием в небольших недорогих серверах.
Несомненным преимуществом модулей UDIMM, также вытекающим из отсутствия буферизирующих компонентов, является высокая скорость работы и малые задержки.
Модули памяти со сниженной нагрузкой
Модули памяти со сниженной нагрузкой появились недавно и являются, пожалуй, наиболее редко используемыми модулями на данный момент. Сокращённое название модулей со сниженной нагрузкой – LRDIMM.
Модули памяти LRDIMM схожи с модулями RDIMM наличием промежуточного элемента между контроллером и микросхемами памяти, однако принцип их работы отличается от принципа работы регистровых модулей DIMM.
Модули LRDIMM оснащаются буфером, который, в отличие от модулей RDIMM, буферизует не только сигналы управления, но и данные (см. Рис. 7):
Рис. 7 |
При использовании модулей RDIMM пользователи сильнее ограничены в возможных вариантах конфигураций каналов, чем при использовании модулей LRDIMM. При использовании модулей RDIMM оптимальной является установка не более двух модулей DIMM на канал, поскольку при использовании третьего банка скорость работы памяти снижается.
Модули LRDIMM не имеют ограничений, присущих модулям RDIMM, потому обладают механизмом, называемым “умножение рангов” – “ rank multiplication”. Благодаря этому механизму, четырехранговые модули LRDIMM преобразуются для контроллера памяти в двухранговые. Благодаря уменьшению электрических рангов модуля LRDIMM сервер может поддерживать модули LRDIMM с повышенными скоростями по сравнению с модулями RDIMM. Например, при напряжении 1,5 В на модуль памяти процессор Xeon E5 может поддерживать до двенадцати модулей LRDIMM, или до 768ГБ для двухпроцессорного сервера, при скоростях памяти до 1066МГц. По сравнению с ними, модули RDIMM емкостью 32ГБ, доступные только в четырехранговом исполнении, ограничены в количестве – до 8 модулей на процессор Xeon E5 и в скорости – до 800МГц.
|
||||||||||||||||||||||||||||||||||||
Табл. 2 |
Архитектура подсистемы памяти
DDR3 является самостоятельной спецификацией памяти, однако она используется рука об руку с архитектурой подсистемы памяти, именуемой NUMA (Non-Uniform Memory Access).
Ранняя архитектура подсистемы памяти
Вплоть до процессоров Intel Xeon 5500 подсистема памяти серверов на базе процессоров Intel строилась с использованием северного моста, который содержал в себе контроллер памяти (см. Рис. 8):
Рис. 8 |
Каждый процессор имел доступ ко всей памяти, общаясь с контроллером памяти при помощи шины FSB (Front Side Bus). Такое построение подсистемы памяти обеспечивало до 9,6 Гбит/с теоретической пропускной способности для канала, заполненного модулями памяти PC2-6400 FBDIMM.
Однако, подсистема памяти, построенная при помощи контроллеров памяти, интегрированных в северный мост, обладает некоторыми негативными особенностями:
- Ширина полосы пропускания шины FSB является узким местом подсистемы памяти;
- Конфигурации большого объёма требуют использования модулей FBDIMM, что приводит к увеличению задержек и снижению общей производительности подсистемы памяти.
Архитектура подсистемы памяти NUMA
Начиная с процессоров Intel Xeon 5500, контроллер памяти стал интегрирован непосредственно в процессор, переместившись туда из микросхемы чипсета.
Такая конструкция процессора, а также появление в процессорах Intel шины QPI (Quick Path Interconnect) определили архитектуру подсистемы памяти, известную как NUMA (Non-Uniform Memory Access). К слову сказать, сервера на процессорах AMD Opteron использовали построение подсистемы памяти по архитектуре NUMA c момента своего появления – с модулями DDR1 и DDR2.
Применение архитектуры NUMA в серверных системах позволило обойти узкое место в виде сокращения ширины пропускания процессорной шины, неизбежно появлявшееся в SMP-системах при увеличении количества процессоров.
Все современные серверы построены по архитектуре NUMA, что означает возможность для каждого из процессоров сервера получить доступ ко всей памяти системы (см. Рис. 9):
Двухпроцессорные серверы, построенные на базе процессоров Intel и AMD, имеют сходную архитектуру подсистемы памяти, с разницей лишь в названии шины, предназначенной для обмена данными между процессорами – у Intel она называется QPI, а у AMD – HyperTransport (см. Рис. 9):
Рис. 9 |
Применение архитектуры NUMA в серверных системах позволило решить следующие проблемы:
- Избавиться от узкого места в виде процессорной шины;
- Позволило создавать системы с большим количеством оперативной памяти без значительного падения производительности подсистемы памяти.
Использование модулей памяти DDR3 в системах, имеющих организацию памяти по архитектуре NUMA, позволяет обеспечить значительный рост пропускной способности. Так, использование модулей памяти с эффективной скоростью 1600 MT/s позволяет теоретически обеспечить пропускную способность в 12,8 Гбит/с для единственного канала памяти. Использование модулей DDR3 в двухпроцессорных системах с тремя каналами памяти для каждого процессора позволит обеспечить ширину полосы пропускания подсистемы памяти в 64 Гбит/с, что на 65% выше аналогичного показателя для систем, построенных по архитектуре с использованием северного моста и модулей DDR2.
Создание конфигураций памяти
После того, как мы разобрались с тем, как устроена подсистема памяти в современных серверах и описали все значимые характеристики модулей памяти, перейдём непосредственно к описанию процесса создания конфигураций памяти.
В процессе создания конфигураций памяти всегда решается вопрос баланса между итоговым объёмом ОЗУ, производительностью подсистемы памяти, её энергопотреблением и ценой модулей. В этой связи сложно предложить решение, одновременно являющееся оптимальным по всем параметрам, однако можно наметить некоторые соображения, следуя которым можно будет проще получить решение в каждом конкретном случае.
В первую очередь следует задуматься о том, какие требования предъявляются к подсистеме памяти со стороны приложений, для работы которых собирается сервер, к чему они наиболее требовательны – к объёму, скорости работы или пропускной способности. На следующем шаге следует задуматься о том, какую цену вы готовы заплатить за максимально эффективное удовлетворение запросов приложений, потому что иногда дополнительные 3-5% производительности могут стоить до 40% дороже.
Факторами, влияющими на производительность подсистемы памяти, являются:
- Многоканальный режим работы подсистемы памяти;
- Скорость работы модулей;
- Электрическая нагрузка на шину данных.
Многоканальный режим работы подсистемы памяти
Многоканальный режим работы подсистемы памяти является ключевым фактором, влияющим на производительность. Чем больше каналов задействовано, тем выше пропускная способность подсистемы памяти. Многоканальный режим работы подсистемы памяти называется термином «interleaving» и состоит в том, что хранение блоков данных, составляющих единое целое в адресном пространстве операционной системы, распределяется между модулями, установленных в разных каналах контроллера памяти. В обычном случае во время обращения к памяти никакие другие обращения к памяти производиться не могут. При работе в многоканальном режиме, соседние по адресам ячейки размещаются в различных модулях памяти, и появляется возможность производить несколько операций одновременно.
За счёт такого распараллеливания достигается выигрыш в скорости записи и чтения данных (см. Рис. 10):
Рис. 10 |
Поэтому, устанавливая модули в слоты, сперва следует двигаться «вширь», заполняя все каналы, и только потом «вглубь», добавляя второй и последующий модули в канал.
Задействование каждого следующего канала теоретически удваивает величину пропускной способности. Рост пропускной способности наблюдается до тех пор, пока все 8 каналов (для 2-процессорной системы) не будут задействованы.
При установке модулей памяти следует обращать внимание на объёмы модулей. Наиболее предпочтительной является ситуация, когда объёмы модулей, устанавливаемых в соседние каналы, одинаковы.
Требование одинакового объёма следует из распараллеливания хранения данных – когда объёмы модулей одинаковы, контроллер памяти может равномерно «размазать» по ним адресное пространство (для двух модулей – в один четные «слова», в другой «нечетные», длина «слова» зависит от разрядности памяти)
Тогда при последовательном чтении адрес надо передавать в два раза реже, и т.к. адрес для второго чтения известен заранее, то не надо второй раз ждать его дешифрации и пока откроются банки памяти.
В случае если используются модули разного объёма, равномерное распределение данных по модулям памяти становится невозможным, к тому же контроллер вынужден чаще передавать адрес для считывания данных из модулей большего объёма, что приводит к снижению производительности.
Скорость работы модулей
Вторым фактором, влияющим на производительность подсистемы памяти, является скорость работы модулей. Понятно, что чем выше скорость работы, тем выше итоговая производительность подсистемы памяти.
При выборе модулей памяти следует обращать внимание на поддерживаемую скорость работы модуля, а также на скорость работы с памятью процессора. В случае несовпадения этих величин, подсистема памяти будет работать на меньшей из двух частот. Например, процессор Intel Xeon E5-2609 поддерживает скорости работы с памятью 800МГц и 1066МГц, поэтому установка в систему на этом процессоре более скоростных модулей памяти не приведёт к росту производительности.
Также следует обращать внимание на скорость работы модулей памяти. В случае если конфигурация будет составляться из модулей с разными частотами работы, итоговая скорость работы всех модулей памяти будет выбрана по наименьшей из частот работы модулей.
Например, если в системе установлены модули памяти со скоростью работы 1333МГц, то установка части модулей, поддерживающих скорость работы 1600МГц, не приведёт к росту производительности.
Производительность работы подсистемы памяти при 1333 MT/s на 20% выше, чем при 1066 MT/s. В свою очередь, производительность работы подсистемы памяти при 1600 MT/s на 17% выше, чем при 1333 MT/s.
Скорость работы с памятью каждого конкретного процессора сообщается производителем и может быть почерпнута из соответствующих документов:
Количество рангов в канале
Как упоминалось выше, одной из характеристик модуля памяти является количество рангов – один, два или четыре. Вернёмся к понятию ранга. Ранг модуля памяти – это количество наборов микросхем разрядностью 64 бита, подключенных к линии выбора микросхемы (chip select). Таким образом, наибольшее количество чипов, одновременно подключенных к линии адреса, у четырёхранговых модулей.
Теперь рассмотрим процесс считывания данных из оперативной памяти. Как мы знаем, оперативная память представлена двумерным массивом запоминающих элементов, обращение к которым происходит путём указания строки и столбца. Так вот, в начале цикла считывания происходит открытие ряда (строки), из которой будет производиться чтение, затем осуществляется выбор столбца и производится считывание данных. В двухранговых и четырёхранговых модулях в строке содержится больше запоминающих элементов, чем в одноранговых модулях, строка как бы проходит сквозь ранги. Также следует отметить, что выбор столбца и последующее считывание при открытой строке происходит гораздо быстрее, чем при регулярном повторном открытии строки. Собственно, на этом и базируется преимущество модулей с большим количеством рангов – для них выше вероятность повторного чтения из уже открытой строки, т.к. строка содержит больше запоминающих элементов.
Если следовать этой логике, то наиболее перспективно при создании конфигурации памяти использовать именно четырёхранговые модули, т.к. именно для них вероятность повторного чтения из открытой строки будет выше всего. На практике дело обстоит таким образом, что применение четырёхранговых модулей создаёт большую электрическую нагрузку на шину, чем при использовании одно- или двухранговых модулей, поэтому контроллер вынужден снижать скорость работы памяти, чтобы обеспечить целостность сигнала. Поэтому, несмотря на то, что теоретически четырёхранговые модули должны быть производительнее двухранговых, на практике получается так, что конфигурации, построенные с использованием четырёхранговых модулей, работают медленнее, чем конфигурации, построенные с использованием одно- и двухранговых модулей.
В современных серверах, построенных на процессорах Intel Xeon 5600 и более новых, а также аналогичных им процессорам AMD, прослеживается следующая тенденция – скорость работы канала остаётся постоянной величиной при установке в него как единственного одноранговогно или двухрангового модуля, так и при установке пары из двух одноранговых или двухранговых модулей.
Конкретное значение скорости работы канала зависит от процессора, установленного в сервере, используемых модулей памяти и является справочной величиной, приведённой в документации к серверу.
Примеры конфигураций
Итоговая конфигурация подсистемы памяти для сервера может быть одного из трёх видов:
- Сбалансированная;
- Почти сбалансированная;
- Несбалансированная.
Особенности этих конфигураций приведены в Табл. 3:
|
||||||||||||||||
Табл. 3 |
Сбалансированные конфигурации
Сбалансированная конфигурация памяти, это конфигурация, все каналы и банки которой заняты одинаковыми модулями (см. Рис. 11):
Рис. 11 |
Конфигурации такого вида обладают наилучшей производительностью, которая достигается ввиду наилучшей возможности работы в многоканальном режиме.
Почти сбалансированные конфигурации
Почти сбалансированные конфигурации называются так, потому что они похожи на сбалансированные конфигурации тем, что все каналы заполнены модулями одинаковым способом, но внутри канала модули могут отличаться (см. Рис. 12):
- Задействованы все каналы памяти;
- Модули установлены во все каналы одинаковым способом;
- Все модули памяти работают на одной частоте;
- Модули памяти внутри канала отличаются по объёму или количеству рангов.
Рис. 12 |
Основным отличием почти сбалансированной конфигурации от полностью сбалансированной является то, что модули внутри канала могут варьироваться по объёму и/или количеству рангов. При такой же или чуть меньшей производительности, почти сбалансированные конфигурации обладают одним неоспоримым преимуществом – они позволяют более гибко управлять объёмом ОЗУ, получаемым в процессе конфигурирования, по сравнению с полностью сбалансированными конфигурациями.
Несбалансированные конфигурации
Существует два вида несбалансированных конфигураций:
Несбалансированная по каналам;
Несбалансированная по процессорам.
Несбалансированная по каналам
Конфигурация памяти является несбалансированной по каналам в следующих ситуациях (см. Рис. 13):
- В каналы установлено разное количество модулей;
- Модули памяти в каждом канале имеют разный объём;
- Модули памяти в каждом канале имеют разные ранги.
Рис. 13 |
Несбалансированная по каналам конфигурация обладает меньшей производительностью по сравнению со сбалансированной или почти сбалансированной. Падение производительности несбалансированной конфигурации может быть вызвано следующими причинами:
- Нарушением многоканального режима работы;
- Использование модулей с большим количеством рангов.
Можно говорить о нарушении многоканального режима работы, когда каждый из каналов представляет собой уникальную конфигурацию модулей памяти. В этом случае, на контроллер возлагается дополнительная работа по синхронизации чтения и записи из модулей разного объёма, что ведёт к появлению циклов простоя и, как следствие, снижению производительности.
Как говорилось выше, использование модулей памяти с большим количеством рангов, повышает электрическую нагрузку на шину, поэтому использование четырёхранговых модулей приводит к тому, что контроллер понижает скорость работы с памятью. В этом контексте следует отметить, что установка всего одного модуля памяти с четырьмя рангами приведёт к снижению скорости всей подсистемы в целом. Следует отметить, что снижение скорости работы также возникнет в случае, если каналы содержат разное количество модулей, например, в один канал установлено два двухранговых модуля, а в другой – три двухранговых. В этом случае скорость работы конфигурации будет определяться по наиболее загруженному каналу, которым оказывается канал с шестью рангами.
Несбалансированная по процессорам
Несбалансированная по процессорам конфигурация получается тогда, когда различаются объёмы памяти, доступные каждому процессору (см. Рис. 14):
Рис. 14 |
Появление несбалансированной по процессорам конфигурации приводит к снижению производительности приложений, исполняющихся на процессоре с недостатком памяти ввиду частых межпроцессорных обращений, которые выполняются гораздо дольше, чем запросы к локальной памяти.
Примеры конфигураций
Исходя из вышесказанного, рекомендации по составлению конфигураций памяти для обыденного использования выглядят следующим образом:
- Устанавливайте модули памяти сперва «вширь» до заполнения всех каналов, а только затем «вглубь», добавляя второй и последующие модули в канал;
- Стремитесь к одинаковой конфигурации модулей в каждом канале;
- Используйте модули с минимально возможным количеством рангов;
- Для конфигураций объёмом 24Гб и менее используйте модули UDIMM.
Существуют специальные конфигурации подсистемы памяти, направленные на повышение отказоустойчивости, но о них будет сказано ниже.
Возможны следующие варианты оптимизации подсистемы памяти для обыденного использования:
- Максимальная пропускная способность;
- Сбалансированная производительность;
- Максимальная ёмкость.
Максимальная пропускная способность
Конфигурация, обеспечивающая максимальную пропускную способность, получается тогда, когда в каждом канале занят всего один банк. При создании конфигурации с максимальной пропускной способностью не должны использоваться четырёхранговые модули памяти, только модули памяти с одним или двумя рангами.
Скорость работы такой конфигурации зависит от скорости работы с памятью процессора конкретного сервера, для которого составляется конфигурация.
Конфигурации такого вида предназначены, в основном, для высокопроизводительных вычислений.
Рис. 15 |
Сбалансированная производительность
Конфигурация, обеспечивающая сбалансированную производительность, получается тогда, когда в каждом канале занято по два банка. При создании такой конфигурации не должны использоваться четырёхранговые модули памяти, только модули памяти с одним или двумя рангами. В случае, если в конфигурации используются четырёхранговые модули, скорость работы конфигурации снижается, однако это ограничение можно обойти, использовав модули LRDIMM.
Конфигурации такого вида обладают «сбалансированными» в целом параметрами – средним объёмом памяти, средней пропускной способностью, средней ценой. Конфигурации этого вида пригодны для большинства задач общего назначения.
Рис. 16 |
Максимальная ёмкость
Конфигурация, обеспечивающая максимальную ёмкость, получается тогда, когда в каждом канале заняты все банки памяти. Разумеется, при создании конфигурации памяти большого объёма следует использовать модули максимального объёма, которые являются четырехранговыми, что ведёт к снижению скорости работы конфигурации. Значительного падения скорости работы можно избежать, используя модули памяти LRDIMM, при этом, однако, следует помнить, что модули LRDIMM дороже модулей RDIMM.
Конфигурации большого объёма, использующие все банки памяти, являются самыми медленными и обладают самой малой пропускной способностью из всех возможных. Значения скорости работы и пропускной способности могут быть получены из документации к серверу.
Рис. 17 |
Специальные конфигурации памяти
Memory Mirroring
Memory Mirroring или Mirrored memory protection - это режим работы подсистемы памяти, при которой осуществляется зеркалирование каналов, т.е. каналы разбиваются на пары, внутри которой один из каналов является копией другого. Для работы в режиме зеркалирования все банки памяти должны быть сконфигурированы идентично.
Работа в режиме зеркалирования памяти защищает от однобитовых ошибок и выхода из строя всего модуля DRAM.
Работа в режиме зеркалирования памяти осуществляется следующим образом - одни и те же данные записываются в банки системной и зеркалированной памяти, но считываются только из банков системной памяти. Если в одном из модулей системной памяти произошла многобитовая ошибка, или достигнут заранее определенный порог однобитовых ошибок, то происходит переназначение банков: банки зеркалированной памяти назначаются системной памятью, а банки системной - зеркалированной. Как и раньше, данные по-прежнему записываются в банки системной и зеркалированной памяти, но считываются только из банков системной памяти. Это обеспечивает непрерывность операций и поддерживает доступность сервера за исключением тех случаев, когда ошибка одновременно происходит в одном и том же месте в системном и зеркалированном DIMM (вероятность таких совпадений, впрочем, крайне мала).
Lock Step mode
Режим lockstep – это режим работы подсистемы памяти, в которой два канала контроллера памяти работают как один – каждая операция записи-чтения помещает и считывает данные из обоих каналов памяти. Два канала, работающих в режиме lockstep, используют один кэш, но коррекция ошибок осуществляется в каждом канале, что обеспечивает двойное обнаружение восьмибитных ошибок и коррекцию восьмибитных ошибок для одного чипа DRAM. В трехканальных системах памяти третий канал не используется и не заполняется.
Заключение
Ниже приводятся собранные воедино рекомендации по установке модулей памяти. Многие из них были упомянуты в других разделах, здесь же они представлены все вместе и представляют собой некое пособие по созданию конфигураций памяти. Хочется отдельно отметить, что приведённые рекомендации подходят как для устаревших процессоров Intel Xeon 5500/5600, так и для современных Xeon E7/E5/E3 и аналогичных процессоров AMD.
Устанавливайте в сервер модули только одного типа (UDIMM, RDIMM или LRDIMM), запрещается смешивать модули в рамках сервера в целом. Если в рамках сервера будут установлены модули разных типов, сервер будет неработоспособен.
Устанавливайте модули только в те слоты, которые соотносятся с установленным процессором. Если в двухпроцессорной системе установлен только один процессор, то модули памяти могут быть установлены только в те слоты, которые подключены к слоту с установленным процессором. Память, установленная в слоты, подключённые к пустому процессорному сокету, работать не будет.
По возможности используйте сбалансированные конфигурации:
- Задействованы все каналы контроллера;
- Используемые модули памяти идентичны по скорости, объёму и количеству рангов;
- В каждом канале контроллера установлено одинаковое количество модулей.
Используйте почти сбалансированные конфигурации при невозможности использования сбалансированных:
- Задействованы все каналы контроллера;
- Используемые модули памяти идентичны по скорости;
- Все каналы заполнены модулями одинаковым способом;
- В канале могут встречаться модули, различающиеся по объёму или количеству рангов.
Используйте более быструю память. Память со скоростью работы 1600 МГц предпочтительнее памяти со скоростью работы 1333 МГц. Не допускайте ситуации, когда количество модулей памяти в соседних каналах отличается более чем на один. Ситуация, когда в одном из каналов установлено три модуля памяти, а в другом только один приводит к значительному падению производительности.
Следите за количеством рангов в канале. Количество рангов в канале не должно превышать 8, из чего следует, что при установке четрырёхранговых модулей один слот должен останется незанятым.
Устанавливайте модули памяти таким образом, чтобы не допускать большой разницы меду объёмом памяти, доступной каждому из процессоров. Старайтесь делать так, чтобы объём памяти, установленной для каждого процессора, был одинаков.
Устанавливайте модули таким образом, чтобы сперва заполнить все каналы, и только потом устанавливать более одного модуля в канал.
Сперва устанавливайте модули с наибольшим количеством рангов и только потом более «легковесные».
Если в каком-либо канале установлен модуль памяти с 4 рангами, то в другие каналы нельзя устанавливать более 2 модулей памяти;
При прочих равных, конфигурации, имеющие больше модулей в канале, показывают лучшую производительность.
Используйте модули UDIMM в недорогих серверах, когда требуется получить небольшой объём памяти.
Наилучшим вариантом установки модулей памяти является такой, при котором все каналы заполнены одинаково и конфигурация для каждого процессора совпадает.
Для правильной установки модулей памяти в конкретный сервер следует обратиться к документации для этого сервера. Как правило, установка модулей памяти начинается с белых слотов (см. Рис. 18):
Рис. 18 |
Редакция Практики