Что такое ecc в оперативной памяти


Режим поддержки ECC оперативной памяти – что это такое и как работает?

Всем привет! Тема сегодняшней публикации – поддержка ECC оперативной памяти: что это такое, как работает данная функция, зависит ли от процессора ее использование на ПК.

Что такое ЕСС память

Аббревиатура происходит от английского названия error correcting code memory, то есть память с коррекцией ошибок кода. Такая ОЗУ распознает и устраняет спонтанно возникающие изменения в битах памяти, которых быть не должно.

Как правило, такая память может исправить изменения в одном бите одного машинного слова. При его чтении будет опознано то же значение, что и было записано, несмотря на возникающие «глюки».

Обычная память, то есть non‐ECC, этого делать не умеет.

Этот тип памяти используется в компьютерах, для которых важна бесперебойная работа, включая крупные серверные станции. Для использования такого режима необходима поддержка контроллером ОЗУ – как встраиваемого в чипсет, так и реализованном на кристалле вместе с ядрами.

Базовый алгоритм, который используется чаще всего, основан на коде Хемминга – самоконтролирующемся двоичном коде, названном в честь предложившего такую систему американского математика.

Существуют алгоритмы, способные исправлять более одной ошибки, но используются они реже. С технологической точки зрения такая система предполагает использование модулей ОЗУ, в которых на каждые 8 микросхем памяти приходится один компонент, хранящий ЕСС‐коды (то есть 8 бит на каждые 64 бита).

Причины появления ошибок в ОЗУ

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

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

Характерно, что чем выше от уровня моря, тем меньше плотность воздуха и соответственно, интенсивнее космическое излучение. Компьютерные системы, которые работают на большой высоте, требуют более эффективной защиты. Советую также почитать «Что такое ОЗУ в компьютере: из чего состоит и для чего служит?»(уже на сайте).

Стоит ли использовать ЕСС память

Объективных причин для использования такой ОЗУ на домашнем ПК нет.

Несмотря на то, что земной диск медленно дрейфует по Космическому океану, покоясь на спинах трех китов, вероятность искажения данных под воздействием вредоносных лучей, на самом‐то деле крайне мала. При этом самое страшное, что может случиться при таких неполадках – вылет операционной системы в синий экран.

Впрочем, это может быть действительно страшно – например, в случае, если вы в течение пары часов монтировали видеоролик, забывая сохраняться в процессе, или же у вас последний и решительный бой, от которого зависит судьба клана, в какой‐нибудь ММОРПГ.

Такая память работает медленнее обычной – в среднем, на 2–3%, так как для проверки контрольных сумм необходим один дополнительный такт контроллера. Такой режим работы требует больше логических ресурсов.

Как уже сказано выше, в основном такая память почти всегда регистровая (Registered), то есть имеет дополнительный регистр для считывания и хранения двоичных кодов. Существуют модули ECC памяти без регистров (UDIMM), которые можно использовать в домашних ПК.

Однако учтите, что такое удовольствие обойдется дороже, так как цена на такие модули ОЗУ обычно выше. Кроме того, требуется наличие материнской платы, чипсета и процессора (к слову, такие модели есть и у Intel, и у AMD), поддерживающих ЕСС память. Стоят они внезапно тоже, как правило, дороже.

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

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

Также советую на эту тему ознакомиться с публикациями «Влияние тактовой частоты оперативной памяти в компьютере»(уже на блоге) и «Тайминги и частота оперативной памяти: кто важнее и влиятельней?». Буду признателен всем, кто расшарит эту статью в социальных сетях. До завтра!

С уважением, автор блога Андрей Андреев.

infotechnica.ru

Что такое ECC RAM? Буферизированная оперативная память — что это?

Очень часто при выборе комплектующих мы сталкиваемся с различными непонятными терминами и понятиями. При выборе оперативной памяти это может быть DDR, DDR2, DDR3, DDR4, RDRAM, RIMM и т.п. Если с основными типами ОЗУ всё более-менее понятно, а поддержка каждого типа указана в описании к материнской плате, то такой параметр, как ECC у многих вызывает некоторые вопросы. Что такое ECC-память? Можно ли использовать ECC оперативку на домашнем компьютере и в чём главное отличие ECC RAM и non-ECC RAM?

Что такое ECC-память?

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

ECC-Ram автоматически распознаёт спонтанные изменения данных в блоках хранения, то есть возникшие ошибки. Обычная — десктопная память без поддержки механизмов коррекции называется non-ECC.

На что способна ECC-память и как это работает?

Память с коррекцией ошибок может определить и исправить 1 бит изменённых данных в каждом машинном слове. Что это значит? Если данные между записью и чтением были по каким-либо причинам изменены (то есть возникла ошибка), то ECC ОЗУ скорректирует значение до верного. Подобная функциональность требует поддержки со стороны контроллера оперативной памяти. Эта поддержка может быть организована со стороны чипсета материнской платы, встроенного контроллера ОЗУ в современные процессоры.

Алгоритм исправления ошибок основан на коде Хэмминга, но для исправления более одной ошибки применяются прочие алгоритмы. На практике используются модули памяти, где для каждых 8 микросхем памяти добавляется ещё по одной микросхеме, хранящей ECC-коды (8 бит на каждые 64 бита основной памяти).

Почему искажается значение в ячейках памяти RAM?

Одна из основных причин искажения данных — космические лучи. Хотя мы находимся на Земле под защитой атмосферы, космические лучи несут с собой некие элементарные частицы, способные влиять на электронику, в том числе, на компьютерную память. Под действием энергии этих частиц возможно изменение состояния ячейки памяти, что ведёт к искажению данных и возникновению ошибок. Интересно, что воздействие космических лучей увеличивается с ростом высоты, поэтому компьютерные системы, находящиеся на большой высоте требуют лучшей защиты.

Как работает память с поддержкой ECC

Один из механизмов контроля ошибок в оперативной памяти — использовать технологию контроля чётности, что позволяет фиксировать факт возникновения ошибки в данных, но не позволяет скорректировать данные. 

Для ECC коррекции используется код Хэмминга. ECC защищает компьютерные системы от некорректной работы в связи с порчей памяти и снижает вероятность критического отказа системы. Память с поддержкой ECC работает на 2-3 % медленнее чем non-ECC в зависимости от приложений.

Причины использовать ЕСС-память

Объективных причин использовать оперативную память с поддержкой ECC в настольных компьютерах нет. Так как вероятность возникновения ошибок данных крайне мала, то в обычных сценариях использования ПК крайне маловероятно, что возникновение ошибки приведёт к возникновению проблем или критических сбоев в работе ПК. Самый страшный сценарий — появление синего экрана смерти BSOD. Кроме того, использование ECC-ОЗУ затруднено тем, что настольные процессоры и материнские платы в своём большинстве не поддерживают данный тип оперативной памяти.

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

sam-elektronik.ru

Что за ECC RAM и как она работает?

Память с коррекцией ошибок (Error correction code - ECC) – это тип памяти, использующийся в рабочих станциях и серверах. В первую очередь она предназначена для бизнеса и профессиональных задач где критически важна работа с данными. Такая память позволяет исправлять ошибки в памяти и бороться с повреждением данных. Также предполагается, что она может сократить количество сбоев в работе сервера или рабочей станции. Все это позволяет использовать ECC RAM в профессиональных сферах и бизнесе, включая финансовые институты и облачные вычисления, где ошибки с данными и простои недопустимы.

Память ECC против обычной памяти

Физически ECC память отличается от обычной не ECC памяти (та, что используется в потребительских компьютерах и ноутбуках) наличием 9 чипов памяти с одной стороны вместо 8 (чипы памяти используются для хранения данных, которые при вызове отправляются в ЦПУ). Дополнительный чип памяти как раз используется для обнаружения и исправления ошибок в других 8 чипах.

Разное количество чипов памяти

Какое оборудование поддерживает ECC память?

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

И опять же ECC память в первую очередь предназначена для серверов и рабочих станций, поэтому для ее работы вам потребуется производительный процессор. Из модельного ряда Intel только серверная линейка Xeon предназначена для работы с ECC памятью и компания таким образом пытается отделить потребительские продукты от профессиональных. С другой стороны, компания AMD предлагает для энтузиастов многопоточные чипы Threadripper, которые поддерживают работу с таким типом памяти.

Недостатки ECC памяти

Возможно это покажется странным, но ECC память несколько медленней обычной памяти из-за того, что для проверки данных на ошибки требуется время. Вместе с тем, в 2014 году компания Puget провела исследования, согласно которым ECC память оказалась на 0,25 процента медленнее обычной памяти, а регистровая ECC память на 0,44 процента медленней. На наш взгляд данное исследование больше доказывает, что различия в производительности весьма незначительны.

Как работает ECC память?

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

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

Большинство вычислительных систем перемещают данные большими блоками по 64 бита (они называются «машинным словом»). Вместо генерации одного дополнительного бита четности для каждых восьми битов данных, ECC генерирует семь дополнительных битов на 64 бита данных. Система выполняет сложный математический алгоритм на дополнительных семи битах данных, чтобы гарантировать, что остальные 64 бита являются правильными. В случае, если один бит неверен (однобитовая ошибка), алгоритм ECC может восстановить данные. Однако при более крупных ошибках (два или более бит) такой алгоритм может лишь уведомить систему.

Регистровая память

ECC память не всегда является регистровой, но с другой стороны любая регистровая память всегда является ECC памятью.

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

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

zen.yandex.ru

Следует ли покупать память ECC?

Джефф Этвуд, возможно, самый читаемый программист-блоггер, опубликовал пост против использования памяти ECC. Как я понимаю, его доводы такие:

  1. В Google не использовали ECC, когда собирали свои серверы в 1999 году.
  2. Большинство ошибок ОЗУ — это ошибки систематические, а не случайные.
  3. Ошибки ОЗУ возникают редко, потому что аппаратное обеспечение улучшилось.
  4. Если бы память ECC имела на самом деле важное значение, то она использовались бы везде, а не только в серверах. Плата за такого рода опциональный материал явно слишком сомнительна.
Давайте рассмотрим эти аргументы один за другим:

1. В Google не использовали ECC в 1999 году

Если вы делаете нечто только из-за того, что когда-то это сделал Google, то попробуйте:

A. Поместите свои серверы в транспортные контейнеры.

Сегодня все ещё пишут статьи о том, что это — отличная идея, хотя Google всего лишь провёл эксперимент, который был расценен как неудачный. Оказывается, даже эксперименты Google не всегда удаются. Фактически, их известное пристрастие к «прорывным проектам» («луншоты») означает, что у них имеется больше неудачных экспериментов, чем у большинства компаний. По-моему, для них это существенное конкурентное преимущество. Не стоит делать это преимущество больше, чем оно есть, слепо копируя провалившиеся эксперименты.

B. Вызывайте пожары в своих собственных центрах обработки данных.

Часть поста Этвуда обсуждает, насколько удивительными были эти серверы:

Некоторые могут взглянуть на эти ранние серверы Google и увидеть непрофессионализм в отношении опасности пожара. Не я. Я вижу здесь дальновидное понимание того, как недорогое стандартное оборудование будет формировать современный интернет.

Последняя часть высказанного — это правда. Но и в первой части есть доля правды. Когда Google начал разрабатывать свои собственные платы, одно их поколение имело проблему «роста» (1), вызвавшую ненулевое число возгораний.

Кстати, если вы перейдёте к посту Джеффа и посмотрите на фотографию, на которую ссылается цитата, то вы увидите, что на платах много кабелей-перемычек. Это вызывало проблемы и было исправлено в следующем поколении оборудования. Также можно видеть довольно неряшливо выполненную кабельную разводку, что дополнительно вызывало проблемы и что также было быстро устранено. Были и другие проблемы, но я оставлю их в качестве упражнения для читателя.

C. Создавайте серверы, которые травмируют ваших сотрудников

Острые грани одного из поколений серверов Google заработали им репутацию сделанных из «бритвенных лезвий и ненависти».

D. Создавайте свою погоду в ваших центрах обработки данных

После разговоров с сотрудниками многих крупных технологических компаний создаётся впечатление, что в большинстве компаний был такой климат-контроль, что в их центрах обработки данных образовывались облака или туман. Можно было бы назвать это расчётливым и коварным планом Google по воспроизведению сиэтловской погоды, чтобы переманивать сотрудников Microsoft. Как вариант, это мог быть план создания в буквальном смысле «облачных вычислений». А может и нет.

Обратите внимание, что всё указанное Google попробовал, а затем изменил. Делать ошибки, а затем устранять их — распространённое явление в любой организации, успешно занимающейся разработками. Если вы боготворите инженерную практику, то следует держаться, по крайней мере, за современную практику, а не за сделанное в 1999 году.

Когда Google использовал серверы без ECC в 1999 году, на них проявился ряд симптомов, которые, как в конце концов выяснилось, были вызваны повреждением памяти. В том числе индекс поиска, который возвращал фактически случайные результаты в запросы. Реальный режим сбоя здесь поучителен. Я часто слышу, что на этих машинах можно игнорировать ECC, потому что ошибки в отдельных результатах являются допустимыми. Но даже если вы считаете для себя случайные ошибки допустимыми, их игнорирование означает, что существует опасность полного повреждения данных, если только не проводить тщательный анализ с целью убедиться, что одна ошибка может лишь незначительно исказить один результат.

В исследованиях, проведённых на файловых системах, неоднократно было показано, что, несмотря на героические попытки создания систем, устойчивых к одной ошибке, сделать это крайне сложно. По существу, каждая сильно тестируемая файловая система может иметь серьёзный сбой из-за единственной ошибки (см. результаты работы исследовательской группы Андреа и Ремзи, Висконсин, если вам интересно это). Я не собираюсь нападать на разработчиков файловых систем. Они лучше разбираются в таком анализе, чем 99,9% программистов. Просто неоднократно уже было показано, что эта проблема настолько трудная, что люди не могут достаточно обоснованно обсуждать её, и автоматизированное инструментальное средство для такого анализа ещё далеко от процесса простого нажатия кнопки. В своём справочнике по компьютерной обработке складских данных Google обсуждает обнаружение и исправление ошибок, и память ECC рассматривается как самый правильный вариант, когда очевидно, что необходимо использовать исправление ошибок аппаратного обеспечения (2).

Google имеет отличную инфраструктуру. Из того, что я слышал об инфраструктуре в других крупных инфотехнологических компаниях, Google представляется лучшим в мире. Но это не значит, что следует копировать всё, что они делают. Даже если рассматривать только их хорошие идеи, для большинства компаний нет смысла копировать их. Они создали замену планировщику перехвата работ Linux, который использует как аппаратную информацию времени выполнения, так и статические трассировки, чтобы позволить им использовать преимущества нового оборудования в серверных процессорах Intel, что позволяет динамически разбивать кэш между ядрами. Если использовать это на всём их оборудовании, то Google сэкономит за неделю больше денег, чем компания Stack Exchange потратила на все свои машины за всю свою историю. Означает ли это, что вы должны скопировать Google? Нет, если на вас уже не свалилась манна небесная, например, в виде того, что ваша основная инфраструктура написана на высокооптимизированном C++, а не на Java или (не дай бог) Ruby. И дело в том, что для подавляющего большинства компаний написание программ на языке, который влечёт 20-кратное снижение производительности, — совершенно разумное решение.

2. Большинство ошибок ОЗУ — это систематические ошибки

Аргументация против ECC воспроизводит следующий раздел исследования ошибок DRAM (выделение дано Джеффом): Наше исследование имеет несколько основных результатов. Во-первых, мы обнаружили, что приблизительно 70% сбоев DRAM является повторяющимися (например, постоянными) сбоями, тогда как только 30% является неустойчивыми (перемежающимися) сбоями. Во-вторых, мы обнаружили, что большие многобитовые сбои, такие как сбои, которые затрагивают всю строку, столбец или блок, составляют более 40% всех сбоев DRAM. В-третьих, мы обнаружили, что почти 5% отказов DRAM влияют на схемы на уровне платы, такие как линии данных (DQ) или стробирования (DQS). Наконец, мы обнаружили, что функция Chipkill уменьшила частоту отказов системы, вызываемих сбоями DRAM, в 36 раз. Цитата кажется несколько ироничной, поскольку она выглядит не аргументом против ECC, а аргументом за Chipkill — определённый класс ECC. Отложив это в сторону, пост Джеффа указывает, что систематические ошибки встречаются в два раза чаще, чем ошибки случайные. Затем пост сообщает, что они запускают memtest на своих машинах, когда происходят систематические ошибки. Во-первых, соотношение 2:1 не столь велико, чтобы просто игнорировать случайные ошибки. Во-вторых, пост подразумевает веру Джеффа, что систематические ошибки, по существу, неизменны и не могут проявиться через некоторое время. Это неверно. Электроника изнашивается точно так же, как изнашиваются механические устройства. Механизмы разные, но эффекты схожи. Действительно, если сравнить анализ надёжности чипов с другими видами анализа надёжности, то можно видеть, что они часто используют одни и те же семейства распределений для моделирования отказов. В-третьих, ход рассуждений Джеффа подразумевает, что ECC не может помочь в обнаружении или исправлении ошибок, что не только неверно, но и прямо противоречит цитате. Итак, как часто вы собираетесь запускать memtest на своих машинах в попытках поймать эти системные ошибки и сколько потерь данных вы готовы пережить? Одно из ключевых применений ECC состоит не в том, чтобы исправить ошибки, а в том, чтобы сигнализировать об ошибках, благодаря чему оборудование может быть заменено до того, как произойдёт «silent corruption» («скрытое повреждение данных»). Кто согласится закрывать всё на машине каждый день, чтобы запустить memtest? Это было бы намного дороже, чем просто купить ECC-память. И даже если бы вы смогли убедить гонять тестирование памяти, memtest не обнаружил бы столько ошибок, сколько сможет найти ECC. Когда я работал в компании с парком в примерно тысячу машин, мы заметили, что у нас происходят странные отказы при проверке целостности данных, и примерно через полгода мы поняли, что отказы на одних машинах более вероятны, чем на других. Эти отказы были довольно редкими (может быть, пару раз в неделю в среднем), поэтому потребовалось много времени для накопления информации и понимания, что же происходит. Без знания причины анализ логов с целью понять, что ошибки были вызваны единичными случаями инвертирования битов (с большой вероятностью), также был нетривиальным. Нам повезло, что в качестве побочного эффекта процесса, который мы использовали, контрольные суммы вычислялись в отдельном процессе на другой машине в разное время, так что ошибка не могла исказить результат и распространить это повреждение на контрольную сумму. Если вы просто пытаетесь защитить себя с помощью контрольных сумм в памяти, есть немалая вероятность того, что вы выполните операцию вычисления контрольной суммы на уже повреждённых данных и получите правильную контрольную сумму неправильных данных, если только вы не делаете некоторые действительно необычные операции с вычислениями, которые дают их собственные контрольные суммы. А если вы серьёзно относитесь к исправлению ошибок, то вы, вероятно, всё же используете ECC. Во всяком случае, после завершения анализа мы обнаружили, что memtest не мог обнаружить какие-либо проблемы, но замена ОЗУ на плохих машинах привела к уменьшению частоты ошибок на один-два порядка. У большинства сервисов нет такого рода контрольных сумм, которые были у нас; эти сервисы будут просто молча записывать повреждённые данные в постоянное хранилище и не увидят проблему, пока клиент не начнёт жаловаться.

3. Благодаря развитию аппаратного обеспечения ошибки стали очень редкими

Данных в посте недостаточно для такого утверждения. Обратите внимание, что поскольку использование ОЗУ возрастает и продолжает увеличиваться экспоненциально, отказы ОЗУ должны уменьшаться с большей экспоненциальной скоростью, чтобы фактически уменьшить частоту повреждения данных. Кроме того, поскольку чипы продолжают уменьшаться, элементы становятся меньше, что делает более актуальными проблемы износа, обсуждаемые во втором пункте. Например, при технологии 20 нм конденсатор DRAM может накпливать где-то электронов 50, и это число будет меньше для следующего поколения DRAM при сохранении тенденции уменьшения.

Исследование 2012 года, которое цитирует Этвуд, имеет этот график по исправленным ошибкам (подмножество всех ошибок) на десяти случайно выбранных отказавших узлах (6% узлов имели по крайней мере один отказ):

Рис. 1. Исправленные за месяц ошибки для выбранных случайным образом узлов. Количество ошибок показывает тип сбоя, возникший в каждом узле. Речь идёт о количестве ошибок от 10 до 10 тыс. для типичного узла, у которого происходит отказ, и это — тщательно отобранное исследование с поста, утверждающего, что вам не нужна память ECC. Обратите внимание, что здесь рассматриваются узлы с ОЗУ только 16 ГБ, что на порядок меньше, чем у современных серверов, и что исследование было проведено на более старом техпроцессе, который был менее уязвим для шума, чем нынешний. Для тех, кто привык иметь дело с проблемами надёжности и просто хочет знать значение FIT (единица измерения интенсивности отказов): исследование показывает, что значение FIT составляет 0,057-0,071 сбоев на один мегабит (что — в противоположность утверждению Этвуда — не является поразительно низким числом). Если взять самое оптимистичное значение FIT, равное 0,057, и провести расчёт для сервера не с самой большой оперативной памятью (здесь я использую 128 ГБ, поскольку серверы, которые я вижу в настоящее время, обычно имеют ОЗУ от 128 до 1,5 ТБ), то получим ожидаемое значение 0,057 * 1 000 * 1 000 * 8 760 /1 000 000 000 = 0,5 сбоя в год на каждый сервер. Обратите внимание, что это относится к сбоям, а не к ошибкам. Из графика выше видно, что сбой может легко вызвать сотни или тысячи ошибок в месяц. Ещё нужно отметить, что есть несколько узлов, у которых нет ошибок в начале исследования, но ошибки появляются позже. Компания Sun/Oracle серьёзно столкнулась с этим несколько десятилетий назад. Транзисторы и конденсаторы DRAM становились всё меньше, как это происходит и сейчас, а использование памяти и кэши росли, так же как и в настоящее время. Столкнувшись, с одной стороны, со всё уменьшающимся транзистором, который был менее стойким к временному нарушению и более сложным в изготовлении, а, с другой стороны, с растущим встроенным кэшем, подавляющее большинство поставщиков серверов ввело ECC в свои кэши. Компания Sun решила сэкономить несколько долларов и не использовать ECC. Прямым результатом было то, что ряд клиентов Sun сообщил о периодических повреждении данных. В результате затем Sun несколько лет занималась разработкой новой архитектуры с кэшем на ECC и заставляла клиентов подписывать NDA для замены чипов.

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

Ещё одно замечание: когда вы платите за ECC, вы платите не просто за память ECC — вы платите за детали (процессоры, платы), которые являются более качественными. Такое легко можно видеть с частотой отказа дисков, и я слышал, что многие замечают такое в своих личных наблюдениях. Если приводить общедоступные исследования: насколько помню, группа Андреа и Ремзи несколько лет назад выпустила документ SIGMETRICS, который показал, что вероятность сбоя при чтении у диска SATA в 4 раза выше, чем у диска SCSI, а вероятность скрытого повреждения данных — в 10 раз выше. Это соотношение сохранялось даже при использовании дисков одного изготовителя. Нет особой причины думать, что интерфейс SCSI должен быть более надёжным, чем интерфейс SATA, но речь идёт не об интерфейсе. Речь идёт о покупке высоконадёжных серверных компонентов по сравнению с клиентскими. Возможно, конкретно надёжность диска вас не интересует, потому что у вас всё на контрольных суммах, и повреждения легко находятся, но есть некоторые виды нарушений, которые обнаружить труднее.

4. Если бы память ECC имела, действительно, важное значение, то её использовали бы везде, а не только в серверах.

Немного перефразируя этот аргумент, можно сказать, что «если бы эта характеристика была, действительно, важна для серверов, то она использовалась бы и в не-серверах». Можно применить этот аргумент к довольно большому количеству аппаратных средств сервера. На самом деле это одна из наиболее неприятных проблем, стоящих перед крупными поставщиками облачных решений. У них достаточно рычагов воздействия, чтобы получать большинство компонентов по подходящей цене. Но поторговаться получится только там, где есть более одного жизнеспособного поставщика. Одной из немногих областей, где нет каких-либо жизнеспособных конкурентов, является производство центральных процессоров и видеоускорителей. К счастью для крупных поставщиков, видеоускорители им обычно не нужны, нужны процессоры, много — уже давно так сложилось. Было несколько попыток поставщиков процессоров войти на серверный рынок, но всегда каждая такая попытка с самого начала имела фатальные недостатки, делавшие очевидной её обречённость (а это часто проекты, требующие не менее 5 лет, т.е. необходимо было потратить очень много времени без уверенности в успехе). Усилия Qualcomm получили много шума, но, когда я общаюсь с моими контактами в Qualcomm, они все говорят мне, что сделанный в данный момент чип предназначен, по существу, для пробы. Так получилось, потому что компании Qualcomm нужно было узнать, как сделать серверный чип, у всех тех специалистов, которых она переманила из IBM, и что следующий чип будет первым, который, можно надеяться, станет конкурентоспособным. Я возлагаю большие надежды на Qualcomm, а также на усилия ARM по созданию хороших серверных компонентов, но эти усилия пока не дают желаемого результата. Почти полная непригодность текущих вариантов ARM (и POWER) (не считая гипотетических вариантов впечатляющего чипа ARM от Apple) для большинства рабочих нагрузок серверов с точки зрения производительности на доллар совокупной стоимости владения (TCO) — эта тема немного в стороне, поэтому я оставлю её для другой публикации. Но дело в том, что Intel имеет такую позицию на рынке, что может заставить людей платить сверху за серверные функции. И Intel это делает. Кроме того, некоторые функции действительно важнее для серверов, чем для мобильных устройств с несколькими гигабайтами оперативной памяти и энергетическим бюджетом в несколько ватт, мобильных устройств, от которых всё равно ожидают периодические вылеты и перезагрузки.

Заключение

Следует ли покупать ECC-ОЗУ? Это зависит от многого. Для серверов это, вероятно, хороший вариант, учитывая затраты. Хотя на самом деле трудно провести анализ затрат/выгод, потому что довольно сложно определить ущерб от скрытого повреждения данных или затраты на риск потерять полгода времени разработчика на отслеживание перемежающихся сбоев, только чтобы обнаружить, что они вызваны использованием памяти без ECC.

Для настольных компьютеров я тоже сторонник ECC. Но если вы не делаете регулярные бэкапы, то вам полезнее вложиться в регулярные бэкапы, чем в ECC-память. И если у вас есть резервные копии без ECC, то вы можете легко записать повреждённые данные в основное хранилище и реплицировать эти повреждённые данные в резервную копию.

Спасибо Прабхакару Рагде, Тому Мерфи, Джею Вайскопфу, Лии Хансон, Джо Уайлдеру и Ральфу Кордерою за обсуждение / комментарии / исправления. Кроме того, спасибо (или, может быть, не-спасибо) Лии за то, что убедила меня написать этот устный экспромт как пост в блоге. Приносим извинения за любые ошибки, отсутствие ссылок и возвышенную прозу; это, по существу, запись половины обсуждения, и я не объяснил условия, не предоставил ссылки или не проверил факты на том уровне детализации, как я обычно делаю.

1. Одним из забавных примеров является (по крайней мере, для меня) магическая самовосстанавливающаяся плавкая перемычка. Хотя реализаций много, представим себе плавкую перемычку на чипе как некоторый резистор. Если вы пропускаете через неё какой-то ток, то вы должны получить соединение. Если ток слишком большой, то резистор разогреется и, в конце концов, разрушится. Это обычно используется для отключения элементов на микросхемах или для таких действий, как задание тактовой частоты. Основной принцип состоит в том, что после сгорания перемычки нет возможности вернуть её в исходное состояние.

Давным давно жил да был производитель полупроводниковых устройств, который немного поторописля со своим производственным процессом и несколько чрезмерно уменьшил допуски в некотором технологическом поколении. Через несколько месяцев (или лет) соединение между двумя концами подобной перемычки смогло снова появиться и восстановить его. Если вам повезёт, то такая перемычка будет чем-то вроде старшего бита множителя тактовой частоты, который в случае его изменения будет выводить чип из строя. Если не повезёт, то это приведёт к скрытому повреждению данных. Я слышал от многих людей в разных компаниях о проблемах в этом технологическом поколении этого производителя, так что это не были отдельные случаи. Когда я говорю, что это забавно, я имею в виду, что забавно услышать эту историю в баре. Менее забавно обнаружить через год тестирования, что некоторые из ваших чипов не работают, потому что их установки для перемычек бессмысленны, и необходимо переделать ваш чип и отложить выпуск на 3 месяца. Кстати, эта ситуация с восстановлением плавкой перемычки — ещё один пример класса ошибок, остроту которых можно сгладить с помощью ECC. Это не проблема Google; я упоминаю об этом только потому, что многие люди, с которыми я общаюсь, удивлены тем, каким образом аппаратное обеспечение может выйти из строя.

2. Если вы не хотите копаться во всей книге, то вот нужный фрагмент:

В системе, которая может выдержать ряд отказов на программном уровне, минимальное требование, предъявляемое к аппаратной части, заключается в том, что сбои этой части всегда обнаруживаются и сообщаются программному обеспечению достаточно своевременно, чтобы позволить программной инфраструктуре ограничить их и принять соответствующие действия по восстановлению. Необязательно, чтобы аппаратное обеспечение явно справлялось со всеми сбоями. Это не означает, что оборудование для таких систем должно быть спроектировано без возможности исправления ошибок. Всякий раз, когда функциональные возможности исправления ошибок могут быть предложены с разумной ценой или сложностью, поддержка их часто окупается. Это означает, что, если аппаратная коррекция ошибок была бы чрезвычайно дорогостоящей, то система могла бы иметь возможность использования более дешёвой версии, которая предоставляла бы возможности только обнаружения. Современные системы DRAM являются хорошим примером ситуации, в которой мощная коррекция ошибок может быть предоставлена при очень низких дополнительных затратах. Однако смягчение требования об обнаружении аппаратных ошибок было бы намного сложнее, поскольку это означало бы, что каждый программный компонент был бы обременён необходимостью проверки его собственного правильного выполнения. На начальном этапе своей истории Google пришлось иметь дело с серверами, на которых у DRAM отсутствовал даже контроль чётности. Создание индекса веб-поиска состоит, по существу, из очень большой операции сортировки/слияния, использующей длительно несколько машин. В 2000 году одно из ежемесячных обновлений веб-индекса Google не прошло предварительную проверку, когда обнаружилось, что некоторое подмножество проверенных запросов возвращает документы, по-видимому, случайным образом. После некоторого исследования в новых индексных файлах была выявлена ситуация, которая соответствовала фиксации бита на нуле в определённом месте в структурах данных, что было негативным побочным эффектом потоковой передачи большого количества данных через неисправный чип DRAM. В структуры данных индекса были добавлены проверки непротиворечивости, чтобы свести к минимуму вероятность повторения этой проблемы, и в дальнейшем проблем такого характера не было. Однако следует отметить, что этот способ не гарантирует 100% обнаружения ошибок в проходе индексации, так как не все позиции памяти проверяются — инструкции, например, остаются без проверки. Это сработало потому, что структуры данных индекса были настолько больше, чем все другие данные, участвующие в вычислении, что наличие этих самоконтролируемых структур данных делало очень вероятным, что машины с дефектным DRAM будут идентифицированы и исключены из кластера. Следующее поколение машин в Google уже содержало обнаружение чётности в памяти, и как только цена памяти с ECC опустилась до конкурентного уровня, все последующие поколения использовали ECC-DRAM.

Теги:
  • память
  • ECC
  • сервер
  • сбои
  • отказы памяти
  • 24 мая 2019 в 15:24
  • 10 сентября 2015 в 00:04
  • 6 марта 2013 в 11:39

habr.com

ECC vs non-ECC: так ли медлительна память с коррекцией ошибок?

Оглавление

Вступление

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

Сегодня мы разберемся в этом вопросе и сравним производительность серверного процессора с обоими типами памяти. Но для начала небольшой экскурс.

Коррекция ошибок

Для чего необходима коррекция? И почему в работе памяти возникают ошибки? Перед ответом на эти вопросы следует разделить ошибки на два типа:

  • Аппаратные ошибки;
  • Случайные ошибки.

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

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

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

В свое время было предложено много различных способов решения данной проблемы, но на сегодняшний день наибольшее распространение получил метод коррекции ошибок или ECC (Error-Correcting Code). Данный метод позволяет автоматически исправлять однобитовые ошибки в 64-битном слове – SEC (Single Error Correction) и детектировать двухбитовые – DED (Double Error Detection).

Физическая реализация ECC заключается в размещении дополнительной микросхемы памяти на модуле ОЗУ – соответственно, при одностороннем дизайне модуля памяти вместо восьми чипов располагается девять, а при двустороннем вместо шестнадцати – восемнадцать. Таким образом, ширина модуля становится не 64 бита, а 72 бита.

Метод коррекции ошибок работает следующим образом: при записи 64 бит данных в ячейку памяти происходит подсчет контрольной суммы, составляющей 8 бит. Когда процессор обращается к этим данным и производит считывание, проводится повторный подсчет контрольной суммы и сравнение с исходной. Если суммы не совпадают – произошла ошибка. Если она однобитовая, то неправильный бит исправляется автоматически, если двухбитовая – детектируется и сообщается ОС.

Финансовая сторона

Прежде чем приступить к тестированию, необходимо затронуть финансовый вопрос.

Стоимость обычного модуля памяти DDR3-1600 с напряжением 1.35 В и объемом 8 Гбайт составляет около 3600 рублей, а с коррекцией ошибок – 4800 рублей. На первый взгляд ECC-память выходит на 30-35% дороже, что, в целом, не позволяет их сравнивать в силу существенно большей стоимости последней. Но почему же тогда такой вопрос возникает при сборке рабочей станции? Все просто – необходимо смотреть на данный вопрос шире, а именно – смотреть на общую стоимость рабочей станции.

Ценник однопроцессорной станции на базе четырехъядерного восьмипоточного Xeon (настольные процессоры серий i5 и i7 не поддерживают ECC-память) с 32 Гбайтами памяти, материнской платы с чипсетом C222/С224/С226 (десктопные наборы логики Z87/Z97 и другие также не поддерживают память с коррекцией ошибок) будет превышать 70 000 рублей (при условии, что устанавливаются серверные SSD с повышенным ресурсом). А если включить в эту стоимость и дискретную видеокарту, и прочие сопутствующие компоненты, например, ИБП, то ценник из пятизначного превратится в шестиизначный, перевалив планку в 100 000 рублей.

Покупка 32 Гбайт памяти с коррекцией ошибок потребует дополнительных 4-6 тысяч рублей, что по отношению к общей стоимости рабочей станции не превышает 5%, то есть не является критичным. Также переход от десктопного к серверному железу предоставит и другие преимущества, например: интегрированные графические карты P4600 в процессорах Intel Xeon E3-1200 третьего поколения получили оптимизированные драйверы, которые должны повышать производительность в профессиональных приложениях, например, в CAD; поддержка технологии Intel VT-d, которая позволяет пробрасывать устройства в виртуальную среду, например, видеокарты; прочие серверные технологии – Intel AMT или IPMI, WatchDog и другие, которые также могут оказаться полезными.

Таким образом, хоть и сама ECC-память стоит заметно дороже обычной, в общей стоимости рабочей станции данная статья затрат является несущественной, и переплата не превышает 5%.

Тестовый стенд

Для данного обзора использовалась следующая конфигурация:

  • Материнская плата: Supermicro X10SAE (Intel C226, LGA 1150);
  • Процессор: Xeon E3-1245V3 (Turbo Boost – off, EIST – off, HT – on);
  • Оперативная память:
    • 2x Kingston DDR3-1600 ECC 8 Гбайт (KVR16LE11/8 CL11, 1.35 В);
    • 2x Kingston DDR3-1600 8 Гбайт (KVR16LN11/8 CL11, 1.35 В);
  • ОС: Windows 8.1 Pro 64-bit.

Методика тестирования

В рамках тестирования были произведены замеры производительности как при одноканальном режиме работы ИКП, так и при двухканальном. Суммарный объем ОЗУ составил 8 (один модуль) и 16 Гбайт (два модуля) соответственно.

Программное обеспечение:

  • 3DMark 2006 1.2;
  • 7Zip 9.20;
  • AIDA64 Extreme 5.20.3400;
  • Cinebench R15;
  • CrystalMark 2004R3;
  • Fritz 4.20;
  • LinX 0.6.5;
  • wPrime 2.10.

Тест памяти

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

При изучении результатов можно заключить, что производительность ECC- и non-ECC- памяти находится на одном и том же уровне в рамках погрешности.

Если в предыдущем тесте от замера к замеру выигрывал то один, то другой тип памяти, то при замере латентности ECC-память постоянно показывает большие задержки. Но разница несущественна – всего лишь 1 нс.

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

3DMark

Тестовый пакет 3DMark содержит подтесты как для процессора, так и для графической карты. Здесь и кроется самое интересное – давно известно, что встроенному видеоядру не хватает существующей ПСП в 25.6 Гбайт/с, поэтому именно в графических подтестах можно выявить негативное влияние коррекции ошибок, если оно вообще есть,…

... но разницы нет – что ECC, что non-ECC. Ни процессор, ни интегрированное ядро никак не реагируют на замену обычной памяти на DDR с коррекцией ошибок – результаты одинаковы в рамках погрешности. Среднеарифметическая разница составила 0.02% в пользу ECC-памяти для одноканального режима и 1.6% для двухканального режима.

При этом нельзя сказать, что встроенная видеокарта P4600 не зависит от скорости ОЗУ – при одноканальном доступе общий результат почти на 30% ниже, чем при двухканальном. Другими словами, скорость ОЗУ критична для графического ядра, но сами по себе «ECC-версии» не влияют ни на скорость ОЗУ, ни на видеокарту.

7Zip

Архиваторы, как известно, чувствительны к памяти, поэтому, возможно, здесь получится зафиксировать влияние типа памяти на производительность.

Ситуация с архивацией неоднозначная: с одной стороны – в одноканальном режиме (как при распаковке, так и при сжатии) ECC-память уверенно оказывается медленнее на 2%; с другой – в двухканальном режиме при сжатии ECC-память уверенно быстрее, а при распаковке – медленнее, а среднее арифметическое – быстрее на 0.65%.

Скорее всего, причина в следующем – пропускной способности памяти при одноканальном доступе процессору явно недостаточно, и поэтому чуть большая латентность ECC-памяти сказывается на производительности; а при двухканальном доступе ПСП полностью покрывает нужды CPU и поэтому чуть большая латентность памяти с коррекцией ошибок не сказывается на производительности. В любом случае зафиксировать существенного влияния на скорость архивации не получилось.

Cinebench

Тестовый пакет Cinebench содержит подтест как процессора, так и видеокарты.

Но ни первый, ни вторая никак не отреагировали на ECC-память.

Зато налицо явная зависимость видеокарты от ПСП – при одноканальном доступе результат в OpenGL оказался на 25% ниже, чем при двухканальном. Вспоминая результаты 3DMark и смотря на нынешние, можно заключить, что производительность интегрированной видеокарты хоть и зависит от ПСП, но ECC-память не оказывает на нее негативного влияния.

overclockers.ru

Что такое ecc в оперативной памяти?

Основные вопросы, на которые нужно ответить при выборе конфигурации памяти DDR3:

1. Нужно получить максимальный объём или максимальную производительность памяти?

2. Какие процессоры будут использоваться?

3. Какое соотношение цена/производительность для нас оптимальна?

DDR2 и процессоры Intel Xeon 5400— До 4 каналов- До 4 DIMM на канал- Память Fully-buffered DDR2 533/667/800- Максимальный объем 128Гб DDR3 и процессоры Intel Xeon 5500— До 6 каналов- До 3 DIMM на канал- Память DDR3 800/1066/1333- Максимальный объем 144Гб

Варианты конфигурирования

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

Максимальная производительность

Для обеспечения максимальной производительности необходимо использовать память DDR3 с частотой 1333MHz и процессоры серии X5550, т.к. только они способны обеспечить необходимую пропускную способность шины QPI (10,6 GB/s). Такая конфигурация накладывает ограничение на максимальный объем памяти в 48GB, т.к. возможно установить только 1 модуль памяти на 1 канал процессора.

Максимальная производительность

Максимальный объем

В этом случае необходима память с частотой 800MHz и любые процессоры серии X5500. Пропускная способность шины QPI при этом будет 6,4GB/s. При этом можно будет установить до 18 модулей памяти, то есть по 3 модуля на канал, и получить объем в 144GB.

Максимальный объем

Сбалансированный

Оптимальный вариант, межу производительностью и объемом. Необходимо использовать память DDR3 с частотой 1066 MHz, процессоры серии E5520 или старше. В такой конфигурации возможна установка по 2 модуля памяти на канал (всего 12 модулей) и получить общий объем памяти 96GB.

Сбалансированный вариант

Типы памяти

Но это не все. Кроме ранжирования по скорости MHz, есть 3 вида памяти DDR3: Registered DIMMs (RDIMM), Unbuffered ECC DIMMs (UDIMM ECC) и Unbuffered DIMMs (UDIMM). Сразу отмечу что Unbuffered DIMMs (UDIMM) не рекомендуется использовать в серверах. Так же модули памяти бывают разных рангов.

Сравнение UDIMM и RDIMM:

UDIMM RDIMM
Регистр/Буфер Нет Есть
Частоты 800, 1066, 1333 МГц 800, 1066, 1333 МГц
Количество рангов 1 или 2 1, 2 или 4
Максимальное кол-во модулей на канал 2 3
Объем модулей 1 и 2 Гб 1,2,4 и 8 Гб
ECC Поддерживает Поддерживает
SDDC X8 X4 и X8
Четность адреса Нет Поддерживает
Энергопотребление ~5W ~5.75W

RDIMMs:: Хотя они на несколько процентов медленнее чем UDIMM, они позволяют получить больший общий объем памяти. Поддерживают до 3 DIMMs/канал.

Читайте также  Подкачка оперативной памяти Windows 7

UDIMM ECC: поддерживает все RAS функции RDIMM кроме x4 Single Device Data Correction (SDDC).

Для систем начального уровня с объемом ОЗУ 12Гб или меньше, целесообразно использовать UDIMM ECC, т.к. у них меньше стоимость. Регистровую память имеет смысл использовать в материнских платах, где по 3 слота на канал (на будущее расширение без выбрасывания старой памяти) или модули по 4ГБ.

Относительная стоимость модулей

Ранги(Single, Dual, Quad)

Не будем детально разбирать вопрос рангов. Остановимся на наиболее важных моментах. Итак, на рисунках наглядно показано основные отличия разноранговой памяти. Технологически, при производстве, дешевле размещать большее чипов на одном модуле, то есть изготавливать память типа quad rank.

Физическое устройство разноранговой памяти

Латентность QR модулей меньше, т.к. в них одновременно может быть открыто несколько страниц. Так же есть ограничение в 8 рангов на канал, т.е в один канал можно поставить только 2 QR модуля (у разных производителей, кол-во поддерживаемых рангов может отличаться в зависимости от модели материнской платы). На данный момент Quad Rank бывают только модули RDIMM.

Еще отмечу момент, что при установки памяти с разным количеством рангов, первыми устанавливаются QR модули, потом DR и SR.

Выбор модулей оптимального объема.

Сейчас рассмотрим, какого объема лучше использовать модули, для получения необходимого объема памяти на ядро. Т.к. это позволит сэкономить деньги, и получить оптимальную производительность.

При использовании RDIMM-ов, возможны следующие конфигурации (при использовании 2х 4х ядерных процессоров Nehalem-EP)

В таблице представлены основные конфигурации памяти. Сначала в первой строке выбираем желаемый объем памяти на 1 ядро. Во второй строчке указа общий объем памяти, который мы получим.

Далее ниже рассмотрены варианты с разным объемом каждого модуля. Красным выделены оптимальные конфигурации.

При использовании UDIMM-ов ECC (при использовании 2х 4х ядерных процессоров Nehalem-EP)

DDR3 UDIMMs ограничены 2 DIMMs на канал, или в общей сложности 12 DIMMs. Принцип выбора тот же что и при RDIMM.

Так же возможна конфигурация, когда вся память находиться у одного процессора. Она возможна при использовании Non-Uniform Memory Access (NUMA)

  Примеры несбалансированных конфигураций

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

· Пропускная способность одинакова при использовании 1 модуля памяти на канал и при использовании 2х модулей на канал (как на DDR3 1066)

Несбалансированная конфигурация: уменьшенная пропускная способность (до 17%)

· Не работает Interleave во всех 3х каналах

· Приводит к снижению пропускной способности на 2-1-1 против 1-1-1 конфигурации

Пропускная способность памяти. Сравнение сбалансированной и не сбалансированной конфигурации (DDR3 1066).

Разница в скорости на разных конфигурациях

Очень хорошо видна разница в пропускной способности памяти в разных режимах:

Memory Frequency (MHz) DIMM Population (CPU 0 / CPU 1) STREAM Triad Result 4.8GT/s QPI STREAM Triad Result 5.86GT/s QPI STREAM Triad Result 6.4GT/s QPI
Balanced Configs
1333 1-1-1 / 1-1-1 36,588
1066 1-1-1 / 1-1-1 31,218 33,723
1066 2-2-2 / 2-2-2 30,912 33,203
800 1-1-1 / 1-1-1 24,265 26,750 27,748
800 2-2-2 / 2-2-2 23,866 25,844 26,565
800 3-3-3 / 3-3-3 24,052 26,750 27,208
Unbalanced Configs
1066 2-2-0 / 2-2-0 25,343
1066 2-1-1 / 2-1-1 25,679
1066 2-2-2 / 2-2-2 30,912
800 2-2-0 / 2-2-0 19,510
800 2-1-1 / 2-1-1 19,961
800 2-2-2 / 2-2-2 25,884
Читайте также  Как почистить оперативную память компьютера Windows 10?

RAS Features

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

Memory mirroring (Зеркалированиепамяти):

• 2 канала памяти, в качестве зеркала (одна информация записывается на обоих каналах одновременно) • Модули памяти должны быть одинаковые • Полезный объем памяти равен 50%

• Повышение надежности (память избыточна)

Технология Lockstep

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

Lockstep mode

• 2 канала, работающих в lockstep (кэш линия разделяется между обоими каналами), 3 канал не используется. • Модули памяти должны быть одинаковые

• Увеличение надежности, но низкая производительность

Примеры работы RAS features

Технология Intel® x4 Single Device Data Correction (x4 SDDC) обеспечивает обнаружение и исправление ошибок размером 1, 2, 3 или 4 бит данных в одном устройстве и обнаружение ошибок размером до 8 бит данных на двух устройствах.

Материал был сделан, большой частью, Куликовым Дмитрием, за что ему выражается отдельная благодарность!

Для написания статьи использованы материалы Intel: Xeon 5500 Memory White Paper Intel® Xeon® processor 5500 Series Datasheet: (public)

http://www.intel.com/Assets/PDF/datasheet/321321.pdf (Volume 1) http://www.intel.com/Assets/PDF/datasheet/321322.pdf (Volume 2)

«,»author»:»ÐÐ²Ñ‚ор:Vasily»,»date_published»:»2019-08-07T12:26:00.000Z»,»lead_image_url»:»http://lh5.ggpht.com/_-G53W-ln_sk/SpJOc7Xr1sI/AAAAAAAAAwA/xD_3JZsoob0/w1200-h630-p-k-no-nu/image_thumb%5B2%5D.png?imgmax=800″,»dek»:null,»next_page_url»:null,»url»:»http://blog.trinitygroup.ru/2009/08/ddr3-intel-xeon-5500-nehalem.html»,»domain»:»blog.trinitygroup.ru»,»excerpt»:»ÐžÑÐ½Ð¾Ð²Ð½Ñ‹Ðµ вопросы, на которые нужно ответить при выборе конфигурации памяти DDR3: 1. Нужно получить максимальный объём или максимальную про…»,»word_count»:1140,»direction»:»ltr»,»total_pages»:1,»rendered_pages»:1}

Источник: http://blog.trinitygroup.ru/2009/08/ddr3-intel-xeon-5500-nehalem.html

Режим поддержки ECC оперативной памяти – что это такое и как работает?

Всем привет! Тема сегодняшней публикации – поддержка ECC оперативной памяти: что это такое, как работает данная функция, зависит ли от процессора ее использование на ПК.

Что такое ЕСС память

Аббревиатура происходит от английского названия error correcting code memory, то есть память с коррекцией ошибок кода. Такая ОЗУ распознает и устраняет спонтанно возникающие изменения в битах памяти, которых быть не должно.

Как правило, такая память может исправить изменения в одном бите одного машинного слова. При его чтении будет опознано то же значение, что и было записано, несмотря на возникающие «глюки».

Обычная память, то есть non‐ECC, этого делать не умеет.

Этот тип памяти используется в компьютерах, для которых важна бесперебойная работа, включая крупные серверные станции. Для использования такого режима необходима поддержка контроллером ОЗУ – как встраиваемого в чипсет, так и реализованном на кристалле вместе с ядрами.

Базовый алгоритм, который используется чаще всего, основан на коде Хемминга – самоконтролирующемся двоичном коде, названном в честь предложившего такую систему американского математика.

Существуют алгоритмы, способные исправлять более одной ошибки, но используются они реже. С технологической точки зрения такая система предполагает использование модулей ОЗУ, в которых на каждые 8 микросхем памяти приходится один компонент, хранящий ЕСС‐коды (то есть 8 бит на каждые 64 бита).

Читайте также  Как поднять частоту оперативной памяти на ноутбуке?

Причины появления ошибок в ОЗУ

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

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

Характерно, что чем выше от уровня моря, тем меньше плотность воздуха и соответственно, интенсивнее космическое излучение. Компьютерные системы, которые работают на большой высоте, требуют более эффективной защиты. Советую также почитать «Что такое ОЗУ в компьютере: из чего состоит и для чего служит?»(уже на сайте).

Стоит ли использовать ЕСС память

Объективных причин для использования такой ОЗУ на домашнем ПК нет.

Несмотря на то, что земной диск медленно дрейфует по Космическому океану, покоясь на спинах трех китов, вероятность искажения данных под воздействием вредоносных лучей, на самом‐то деле крайне мала. При этом самое страшное, что может случиться при таких неполадках – вылет операционной системы в синий экран.

Впрочем, это может быть действительно страшно – например, в случае, если вы в течение пары часов монтировали видеоролик, забывая сохраняться в процессе, или же у вас последний и решительный бой, от которого зависит судьба клана, в какой‐нибудь ММОРПГ.

Такая память работает медленнее обычной – в среднем, на 2–3%, так как для проверки контрольных сумм необходим один дополнительный такт контроллера. Такой режим работы требует больше логических ресурсов.

Как уже сказано выше, в основном такая память почти всегда регистровая (Registered), то есть имеет дополнительный регистр для считывания и хранения двоичных кодов. Существуют модули ECC памяти без регистров (UDIMM), которые можно использовать в домашних ПК.

Однако учтите, что такое удовольствие обойдется дороже, так как цена на такие модули ОЗУ обычно выше. Кроме того, требуется наличие материнской платы, чипсета и процессора (к слову, такие модели есть и у Intel, и у AMD), поддерживающих ЕСС память. Стоят они внезапно тоже, как правило, дороже.

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

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

Также советую на эту тему ознакомиться с публикациями «Влияние тактовой частоты оперативной памяти в компьютере»(уже на блоге) и «Тайминги и частота оперативной памяти: кто важнее и влиятельней?». Буду признателен всем, кто расшарит эту статью в социальных сетях. До завтра!

С уважением, автор блога Андрей Андреев.

Источник: https://infotechnica.ru/pro-kompyuteryi/ob-operativnoy-pamyati/rezhim-podderzhki-ecc/

gepard-kovrov.ru


Смотрите также