Перейти к содержимому

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

  • автор:

Следует ли покупать память 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, а аргументом за 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. Поймем, можно ли вставить планку серверной памяти в обычный компьютер и запустить его.

В серверах и рабочих станциях используется не совсем обычная оперативная память.

Основные ее отличия — это поддержка специфических технологий, таких как контроль четности и ECC (коррекция ошибок).

Серверная оперативная память не обладает выдающимися скоростными характеристиками. Для нее намного важнее стабильность и безотказность в работе. Применяется в тех областях, где критически важна бесперебойная работа. Например, финансы и облачные вычисления.

Рассмотрим подробнее технологии, которые применяют в серверной памяти ⇓

  • Error-Correcting Code (ECC) или память с коррекцией ошибок;
  • Регистр между микросхемами модуля и контроллером памяти. Так называемая регистровая оперативка.

Память с коррекцией ошибок

ECC (Error-Correcting Code) позволяет исправлять некоторые ошибки в процессе работы оперативной памяти. В том числе, случайные неточности, то есть те, которые могут возникать под воздействием электромагнитных помех или высокоэнергетических элементарных частиц.

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

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

Принцип работы

ECC модуль имеет дополнительные микросхемы, по одной на каждые 8 чипов. То есть, при одностороннем дизайне модуля, будет задействовано 9 чипов вместо привычных 8. А при двухстороннем — 18 вместо 16. В дополнительных чипах лежат контрольные суммы машинных слов, хранящихся в памяти.

Обычная DDR3 и серверная DDR3 ECC reg

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

Если ОЗУ использует только технологию ECC, то это не совсем серверная оперативная память. Она рассчитана, в первую очередь, на профессиональные рабочие станции.

Для использования ECC RAM ОЗУ требуется поддержка как со стороны процессора, в котором размещен контроллер памяти, так и со стороны материнской платы. Впрочем, у не самых дешевых CPU и системных плат подобная поддержка нередко есть. Следовательно, память с коррекцией ошибок на них успешно заработает.

Какие преимущества получит обычный домашний или офисный компьютер в этом случае? Теоретически, он будет стабильнее работать. Но стоит учитывать, что применение Error-Correcting Code требует определенных вычислительных мощностей, как следствие, быстродействие снижается, пусть и не намного.

Однобитовые ошибки

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

Причины однобитовых ошибок возникают в двух основных вариантах — жестких и мягких ⇓

  • жесткие вызваны такими физическими факторами, как изменение температуры или мощности, а также напряжение на оборудовании;
  • мягкие возникают из-за более сложных факторов, таких как магнитные помехи и даже космические лучи.

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

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

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

ОЗУ с ECC предотвращает однобитовые ошибки, обнаруживая и исправляя их, гарантируя, что данные будут должным образом сохранены.

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

По-настоящему серверной можно считать только регистровую (registered) или буферизованную (buffered) память. Основная ее особенность — это наличие на модуле еще одной микросхемы — регистра.

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

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

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

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

Первое поколение ОЗУ DDR PC2700 ECC REG

Чем отличается серверная оперативная память от обычной

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

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

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

Еще одна очевидная разница между памятью с ECC и без нее — это цена. Благодаря своим расширенным функциям память с коррекцией ошибок стоит дороже, чем обычная и поддерживается только на специализированных (дорогостоящих) материнских платах и ​​высокопроизводительных серверных процессорах, таких как Intel Xeon и т.п. В обычную метеринку вставить ее можно, но она там не заработает.

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

ECC RAM нельзя комбинировать с памятью без коррекции ошибок. Поэтому, если вы хотите возможности Error-Correcting Code, вам придется заменить всю оперативку на новые модули.

Чем еще отличается ОЗУ для сервера

  • вполне закономерно, что оперативная память для круглосуточно работающего сервера должна иметь максимальную надежность. Поэтому серверные модули проходят тщательное тестирование, в том числе, и в условиях высокого нагрева;
  • использование серверной регистровой оперативной памяти возможно только если процессор и материнская плата поддерживают ее;
  • серверная оперативная память, также как и обычная, выпускается в разных стандартах: ddr, ddr2, ddr3, ddr4. Физически, серверные модули сохраняют совместимость с десктопными, но работоспособность в обычных материнских платах невозможна;
  • скорость работы буферизованной RAM ниже, чем у стандартного модуля ОЗУ, а вот цена может оказаться заметно выше.

Нужна ли серверная память в обычном компьютере

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

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

Почему серверная память не работает на обычных компьютерах

Где необходима ОЗУ c ECC?

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

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

Разница между ecc и не оперативной памятью

Разница между ecc и не оперативной памятью

Возможно, вы не заметили, что память RAM обычно называется по их формату: DDR, DDR2, DDR3 или текущая DDR4. Но среди них есть два типа: оперативная память ECC и NON-ECC. Для домашних пользователей используются ОЗУ и оборудование рабочей станции NON-ECC, а также серверы ECC. Хотите узнать их различия? Мы объясним это вам в этом уроке!

  • Лучшая оперативная память на рынке. Как активировать профиль XMP из BIOS вашей материнской платы. Что такое двухканальный и четырехканальный? Лучший SSD на данный момент.

Что такое ECC и NON-ECC RAM?

Система хранения компьютера иерархизирована подсистемами, которые являются частью целого, это система памяти. Среди этих систем, которые составляют большую, — жесткий диск, оперативная память и внутренний кэш процессора. Конечно, каждый из них имеет определенную цель и функцию, и ОЗУ, которое обозначает оперативное запоминающее устройство (переводится как оперативное запоминающее устройство ), не является исключением из этого правила. Существует множество видов оперативной памяти, и они, как и в случае с ECC и NON-ECC RAM, путают их сходство .

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

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

Базовый компьютер может неплохо работать с 2 ГБ ОЗУ, в то время как те, кто хочет использовать такие приложения, как игры или профессиональные программы, должны иметь ОЗУ емкостью 16 или 32 ГБ. Конечно, чем выше емкость, тем дороже будет память, а в последние месяцы ее цена относительно завышена из-за спроса на память для смартфонов.

Различия между RAM ECC и NON-ECC

Слово ECC обозначает «Код исправления ошибок», что означает, что в ОЗУ имеется дополнительный бит, представляющий код, запрограммированный для обнаружения ошибок в процессоре и предупреждающий нас о необходимости замены ОЗУ. Поскольку они работают с двоичной системой, если бит достигает 1, значит, он обнаружил ошибку; если это 0, это означает, что все правильно. Когда имеется бит исправления ошибок, это означает, что ОЗУ способно хранить информацию из регистров, которых нет в памяти CACHE процессора; это оперативная память процессора.

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

ОЗУ ECC и NON-ECC легко идентифицировать и дифференцировать, поскольку разница в основном составляет один бит. NON-ECC просто не имеет этого бита исправления ошибок, и он известен как обычное ОЗУ, которое присутствует в большинстве компьютеров.

РЕКОМЕНДУЕМ ВАМ Как сжимать оперативную память в Windows 10

Как определить, используете ли вы модуль, если у вас ОЗУ ECC или NON-ECC

Это так же просто, как перейти к вашей наклейке ОЗУ и определить точную модель. Много раз вы получаете надпись «Non-ECC», а иногда модель. Если вы не хотите открывать компьютер, вы можете узнать модель с помощью программы CPU-Z на вкладке SPD.

Обратите внимание на модель и поищите все характеристики на веб-сайте производителя Corsair, G.Skill, Kingston…). В одном из разделов будет ясно, если это не ECC или ECC. Но если вы используете обычный компьютер, мы уже ожидаем, что это будет не-ECC.

Наш вывод о памяти ECC

Несмотря на такое минимальное различие, они редко используются на одних и тех же устройствах; другими словами, ОЗУ ECC и NON-ECC выполняют те же функции, только ECC имеет дополнительную ценность. Однако, для дополнительного бита, он также имеет тенденцию работать медленнее и может быть на 20-30% дороже и не очень распространен в магазинах. Память ECC обычно используется на центральных серверах из-за необходимости создания резервной системы на случай сбоя обработки. У ноутбука или обычного офисного компьютера не должно возникнуть проблем при работе с обычной памятью, поскольку его использование достаточно просто, чтобы в нем не было сбоев, подразумевающих автоматическое исправление.

Вы нашли статью хорошей? Не забудьте понравиться и поделиться им! Мы с нетерпением ждем ваших комментариев. Спасибо

Анси против iso: разница между испанской клавиатурой

Анси против iso: разница между испанской клавиатурой

Мы указываем различия между клавиатурой ANSI и ISO. Что используется в Испании и каковы особенности каждого из них.

В чем разница между аппаратным и программным обеспечением?

В чем разница между аппаратным и программным обеспечением?

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

Разница между используемой и установленной оперативной памятью

Разница между используемой и установленной оперативной памятью

У вас есть компьютер с менее доступной оперативной памятью, чем указано? Мы покажем вам разницу между полезной и установленной оперативной памятью

Типы оперативной памяти. Небуферизированная память, с ECC, регистровая с ECC.

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

Вы не знаете что значит U в маркировке оперативной памяти, что значит E, что значит R или F? Этими буквами обозначается тип памяти — U (Unbuffered, небуферизированная), E (память c коррекцией ошибок, ECC), R (регистровая память, Registered), F (FB-DIMM, Fully Buffered DIMM — полностью буферизованная DIMM). Теперь рассмотрим все эти типы подробнее.

Типы памяти используемые в компьютерах:

1. Небуферизированная память . Обычная память для обычных настольных компьютеров, её ещё называют UDIMM. На планке памяти как правило имеется 2, 4, 8 или 16 микросхем памяти с одной или двух сторон. У такой памяти маркировка обычно заканчивается буквой U (Unbuffered) или вообще без буквы, например DDR2 PC-6400, DDR2 PC-6400U, DDR3 PC-8500U или DDR3 PC-10600. А у памяти для ноутбуков маркировка заканчивается буквой S, видимо это сокращение от SO-DIMM, например DDR2 PC-6400S. Фото небуферизированной памяти можно видеть ниже.

2. Память c коррекцией ошибок (Память с ECC). Обычная Небуферизованная память с коррекцией ошибок. Такая память ставится обычно в фирменные (брендовые) компьютеры продаваемые в Европе (НЕ СЕРВЕРА), плюсом этой памяти является её большая надёжность при работе. Большинство ошибок при работе памяти удаётся исправить во время работы, даже если они появляются, не теряя данные. Обычно на каждой планке такой памяти 9 или 18 микросхем памяти, добавляется одна или 2 микросхемы. Большинство обычных компьютеров (не серверов) и материнских плат могут работать с ECC памятью. У такой памяти маркировка как правило заканчивается буквой E (ECC), например DDR2 PC-4200E, DDR2 PC-6400E, DDR3 PC-8500E или DDR3 PC-10600E. Фото небуферизированной памяти c ECC можно видеть ниже.

Различие памяти с ECC и памяти без ECC можно видеть на фото:

Хоть большинство продаваемых плат и поддерживают эту память, но совместимость с конкретной платой и процессором лучше узнать заранее до покупки. Из личного опыта 90-95% материнских плат и процессоров могут работать с памятью ECC. Из тех, что НЕ могут работать: платы на чипсетах Intel G31, Intel G33, Intel G41, Intel G43, Intel 865PE. Все материнские платы и процессоры начиная с первого поколения Intel Core все могут работать с ECC памятью и от материнских плат это не зависит. Под AMD процессоры вообще практически все материнские платы могут работать с ECC памятью, за исключением случаев индивидуальной несовместимости (такое бывает в редчайших случаях).

3. Регистровая память (Registered). СЕРВЕРНЫЙ тип памяти. Обычно он всегда выпускается с ECC (коррекцией ошибок) и c микросхемой «Буфером». Микросхема «буфер» позволяет увеличить максимальное количество планок памяти, которые можно подключить к шине не перегружая её, но это уже лишние данные, не будем углубляться в теорию. В последнее время понятия буферизованный и регистровый почти не различают. Если утрировать: регистровая память = буферизованная. Эта память работает ТОЛЬКО на серверных материнских платах способных работать с памятью черем микросхему «буфер».

Обычно на планках регистровой памяти с ECC установлено 9, 18 или 36 микросхем памяти и ещё 1, 2 или 4 микросхемы «буфера» (они обычно в центре, отличаются по габаритам от микросхем памяти). У такой памяти маркировка как правило заканчивается буквой R (Registered), например DDR2 PC-4200R, DDR2 PC-6400R, DDR3 PC-8500R или DDR3 PC-10600R. Ещё в маркировке регистровой (серверной) (буферизированной) памяти обычно присутствует сокращение слова Registered — REG. Фото буферизированной (регистровой) памяти c ECC можно видеть ниже.

Помните! Регистровая память с ECC со 100% вероятностью НЕ РАБОТАЕТ на обычных материнских платах. Она работает только на серверах!

4. FB-DIMM Fully Buffered DIMM (Полностью буферизованная DIMM), — стандарт компьютерной памяти, который используется для повышения надёжности, скорости, и плотности подсистемы памяти. В традиционных стандартах памяти линии данных подключаются от контроллера памяти непосредственно к линиям данных каждого модуля DRAM (иногда через буферные регистры, по одной микросхеме регистра на 1-2 чипа памяти). С увеличением ширины канала или скорости передачи данных, качество сигнала на шине ухудшается, усложняется разводка шины. Это ограничивает скорость и плотность памяти. FB-DIMM использует другой подход для решения этих проблем. Это дальнейшее развитие идеи registered модулей — Advanced Memory Buffer осуществляет буферизацию не только сигналов адреса, но и данных, и использует последовательную шину к контроллеру памяти вместо параллельной.

Модуль FB-DIMM имеет 240 контактов и одинаковую длину с другими модулями DDR DIMM, но отличается по форме выступов. Подходит только для серверных платформ.

Спецификации FB-DIMM, как и другие стандарты памяти, опубликованы JEDEC.

Компания Intel использовала память FB-DIMM в системах с процессорами Xeon серий 5000 и 5100 и новее (2006—2008 годы). Память FB-DIMM поддерживается серверными чипсетами 5000, 5100, 5400, 7300; только с процессорами Xeon, основанными на микроархитектуре Core (сокет LGA771).

В сентябре 2006 года компания AMD также отказалась от планов по использованию памяти FB-DIMM.

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

Память с пониженным питанием, «L» память

Многие пользователи компьютеров и ноутбуков на основе процессоров Intel 3-го, 4-го и последующих поколений процессоров сталкиваются с ещё одним видом памяти, так называемой, «L» памятью. Это память DDR3L, DDR4L. Маркируется эта память с дополнительной буквой «L», вот примеры её маркировки: DDR3L-1600, DDR4L-2133 и подобные. Что же обозначает дополнительная буква «L» в маркировке памяти? Всё очень просто. Эта маркировка говорит нам о том, что микросхемы памяти на этом модуле, как и сам модуль, могут работать на пониженном питании, обычно на 20% ниже чем у стандарта. Тем самым экономится расход электроэнергии и уменьшается нагрев во время работы. Особенно актуально это для переносных устройств, например, ноутбуков и ультрабуков. Пониженное напряжение питания составляет 1.35 вольта для DDR3L и 1.05 вольта для DDR4L, в то время как стандартное напряжение питания памяти DDR3 составляет 1.5 вольта, и для DDR4 — 1.2 вольта.

Могут ли работать модули DDR3 вместе с DDR3L? И можно ли ставить модули DDR3L вместо DDR3? Да, в большинстве случаев эти модули имеют обратную совместимость и могут быть взаимозаменяемыми, но есть и исключение. Объясню этот момент более подробно. Если взять, например, спецификацию на модуль памяти SODIMM 4GB DDR3L Kingston KVR16LS11/4 1Rx8 512M x 64-Bit PC3L-12800CL11 204-Pin, то в ней указано, что питание на модуль возможно двух стандартов:

1.45V) and 1.5V (1.425V

1.575V) Power Supply;
VDDQ = 1.35V (1.28V

1.45V) and 1.5V (1.425V

Как видим, питание на модуль может составлять от 1.28 вольт и до 1.575 вольта. При этом напряжении питания гарантируется нормальная работа модуля памяти, работа модуля памяти при этом напряжении протестирована и гарантируется производителем. Если же вы более подробно найдёте спецификацию на сами микросхемы памяти, которые распаяны в конкретном модуле, то вполне вероятно, что диапазон допустимых напряжений ещё шире и память может выдержать и более высокие/низкие напряжения питания, но это уже будет экстремальный режим работы. Посмотрим, например, спецификацию микросхем у модуля Kingston KVR16S11S6/2. В данном модуле распаяны микросхемы D2516JC4BXGGBU, спецификация этих микросхем в PDF файле. Тут указано, что модуль работает при напряжении VDD от 1.283 вольта (стандартно 1.35 для DDR3L) и до 1.575 вольта (стандартно 1.5 для DDR3). А абсолютное максимально возможное напряжение для микросхемы вообще составляет 1.975 вольт, по превышению которого микросхема памяти просто обязана сгореть, если верить спецификации. 🙂 То же самое произойдёт если перепутать полярность и подать обратное напряжение в -0.4 вольта, но такое маловероятно осуществить.

  1. На ПК и ноутбуках, где материнская плата (или контроллер памяти в процессоре) может работать как со стандартным напряжением питания, так и пониженным, стандарта «L», на таких системах возможна работа модулей памяти как с пониженным питанием («L») так и со стандартным питанием (без «L»). Скорее всего, система формирования питания памяти подаст стандартное (высокое) напряжение на все модули, и все модули будут работать на этом уровне напряжения питания.
  2. Если же материнская плата (или же процессор) расчитана только на работу с памятью «L» стандарта, то память с стандартным питанием (без «L») скорее всего работать не будет, т.к. достаточного уровня напряжения не будет. В этом случае вам надо ставить только модули с пониженным питанием, «L»-ки.

Узнать о том, какой же стандарт напряжения памяти поддерживается в вашей системе можно из её спецификации. Обычно это спецификация или материнской платы, или же процессора. Например, у вас в ноутбуке установлен процессор Intel® Core™ i5-4300U. Открываем его спецификацию на сайте Intel и смотрим, что данный процессор поддерживает память DDR3L 1333/1600 и LPDDR3 1333/1600 — это всё память с пониженным питанием. Значит, Вы не сможете установить в систему с таким процессором память с обычным напряжением питанием (без буквы «L» в маркировке) — она не будет работать! А если и будет, то может сбоить и сыпать ошибками, т.к. на неё будет подаваться недостаточное напряжение питания.

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

Примечание: Я не рекомендую ставить «L» модули вместе с оверклокерскими модулями, т.к. оверклокерские модули рассчитаны наоборот на повышенное напряжение, а оно может быть выше верхнего предела напряжения для «L» модулей. В таком случае «L» память может не выдержать и перестать функционировать навсегда.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *