Ecc memory что это
Что такое серверная оперативная память и чем она отличается от обычной
В этой статье мы разберемся, что такое серверная оперативная память. Узнаем, чем память для сервера отличается от обычной и что такое поддержка ECC. Поймем, можно ли вставить планку серверной памяти в обычный компьютер и запустить его.
В серверах и рабочих станциях используется не совсем обычная оперативная память.
Основные ее отличия — это поддержка специфических технологий, таких как контроль четности и ECC (коррекция ошибок).
Серверная оперативная память не обладает выдающимися скоростными характеристиками. Для нее намного важнее стабильность и безотказность в работе. Применяется в тех областях, где критически важна бесперебойная работа. Например, финансы и облачные вычисления.
Рассмотрим подробнее технологии, которые применяют в серверной памяти ⇓
Память с коррекцией ошибок
ECC (Error-Correcting Code) позволяет исправлять некоторые ошибки в процессе работы оперативной памяти. В том числе, случайные неточности, то есть те, которые могут возникать под воздействием электромагнитных помех или высокоэнергетических элементарных частиц.
Подобная погрешность появляется из-за изменения значения одного бита в машинном слове. Результат такой ошибки может быть самым непредсказуемым. От изменения одного символа в набранном тексте до зависания всей системы.
Применение технологии ECC необходимо для обнаружения и если это возможно, то исправления подобных проблем. Память, не имеющая поддержки коррекции ошибок, обозначается non-ECC.
Принцип работы
ECC модуль имеет дополнительные микросхемы, по одной на каждые 8 чипов. То есть, при одностороннем дизайне модуля, будет задействовано 9 чипов вместо привычных 8. А при двухстороннем — 18 вместо 16. В дополнительных чипах лежат контрольные суммы машинных слов, хранящихся в памяти.
Если при проверке контрольная сумма машинного слова не совпадает с контрольной сумой, находящейся в чипе-буфере, значит, найдена неточность. При возможности устранить проблему, система продолжает работу, но если коррекция невозможна, то операционной системе отправляется сообщение.
Если ОЗУ использует только технологию 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, вам придется заменить всю оперативку на новые модули.
Чем еще отличается ОЗУ для сервера
Нужна ли серверная память в обычном компьютере
Конечно неприятно, когда ваш домашний компьютер или ноутбук падает из-за ошибки, но это вряд ли будет иметь серьезные долгосрочные последствия.
Собирать домашний компьютер на серверном железе — достаточно спорное решение. Кроме самих модулей серверной памяти, придется установить серверную системную плату. А для нормальной работы системной платы может потребоваться соответствующий корпус и блок питания, что в итоге приведет к неоправданным расходам и даст только избыточную для большинства домашних систем надежность.
Почему серверная память не работает на обычных компьютерах
Где необходима ОЗУ c ECC?
Для бизнес-критических серверных приложений короткий ответ — да. На сервере, обрабатывающем конфиденциальную информацию о клиенте или финансовых транзакциях, даже одна ошибка имеет потенциал для катастрофы.
ECC reg RAM настоятельно рекомендуется организациям, которые обрабатывают большие объемы данных клиентов в Интернете, для защиты от финансовых потерь, вызванных поврежденными данными, или репутационного ущерба, вызванного простоями после сбоя системы.
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%.
Тестовый стенд
Для данного обзора использовалась следующая конфигурация:
Методика тестирования
В рамках тестирования были произведены замеры производительности как при одноканальном режиме работы ИКП, так и при двухканальном. Суммарный объем ОЗУ составил 8 (один модуль) и 16 Гбайт (два модуля) соответственно.
Результаты тестирования
Тест памяти
Перед тем, как приступить к тестированию, проведем замер пропускной способности памяти и латентности.
реклама
При изучении результатов можно заключить, что производительность ECC- и non-ECC- памяти находится на одном и том же уровне в рамках погрешности.
Если в предыдущем тесте от замера к замеру выигрывал то один, то другой тип памяти, то при замере латентности ECC-память постоянно показывает большие задержки. Но разница несущественна – всего лишь 1 нс.
Таким образом, замер ПС и латентности памяти не показал особых различий между ECC- и non-ECC-памятью. Посмотрим, повторится ли это в последующих тестах.
3DMark
реклама
Тестовый пакет 3DMark содержит подтесты как для процессора, так и для графической карты. Здесь и кроется самое интересное – давно известно, что встроенному видеоядру не хватает существующей ПСП в 25.6 Гбайт/с, поэтому именно в графических подтестах можно выявить негативное влияние коррекции ошибок, если оно вообще есть,…
. но разницы нет – что ECC, что non-ECC. Ни процессор, ни интегрированное ядро никак не реагируют на замену обычной памяти на DDR с коррекцией ошибок – результаты одинаковы в рамках погрешности. Среднеарифметическая разница составила 0.02% в пользу ECC-памяти для одноканального режима и 1.6% для двухканального режима.
При этом нельзя сказать, что встроенная видеокарта P4600 не зависит от скорости ОЗУ – при одноканальном доступе общий результат почти на 30% ниже, чем при двухканальном. Другими словами, скорость ОЗУ критична для графического ядра, но сами по себе «ECC-версии» не влияют ни на скорость ОЗУ, ни на видеокарту.
реклама
Архиваторы, как известно, чувствительны к памяти, поэтому, возможно, здесь получится зафиксировать влияние типа памяти на производительность.
Ситуация с архивацией неоднозначная: с одной стороны – в одноканальном режиме (как при распаковке, так и при сжатии) ECC-память уверенно оказывается медленнее на 2%; с другой – в двухканальном режиме при сжатии ECC-память уверенно быстрее, а при распаковке – медленнее, а среднее арифметическое – быстрее на 0.65%.
Скорее всего, причина в следующем – пропускной способности памяти при одноканальном доступе процессору явно недостаточно, и поэтому чуть большая латентность ECC-памяти сказывается на производительности; а при двухканальном доступе ПСП полностью покрывает нужды CPU и поэтому чуть большая латентность памяти с коррекцией ошибок не сказывается на производительности. В любом случае зафиксировать существенного влияния на скорость архивации не получилось.
Cinebench
реклама
Тестовый пакет Cinebench содержит подтест как процессора, так и видеокарты.
Но ни первый, ни вторая никак не отреагировали на ECC-память.
Зато налицо явная зависимость видеокарты от ПСП – при одноканальном доступе результат в OpenGL оказался на 25% ниже, чем при двухканальном. Вспоминая результаты 3DMark и смотря на нынешние, можно заключить, что производительность интегрированной видеокарты хоть и зависит от ПСП, но ECC-память не оказывает на нее негативного влияния.
ECC-память
отличия ecc памяти от обычной
Что за 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 памятью.
Регистровая память содержит регистр, который располагается между чипами памяти и системным контроллером памяти. Это позволяет уменьшить электрическую нагрузку на контроллер, а также установить большее количество модулей на один канал.
Не забудьте подписаться и поставить лайк. Впереди будет еще много крутых статей.
ECC-память
Текущая версия страницы пока не проверялась опытными участниками и может значительно отличаться от версии, проверенной 22 июля 2021; проверки требует 1 правка.
DIMM для ECC памяти обычно содержит девять чипов памяти на каждой стороне, на один больше, чем для обычной памяти[1]
ECC-память (англ. error-correcting code memory, память с коррекцией ошибок) — тип компьютерной памяти, которая автоматически распознаёт и исправляет спонтанно возникшие изменения (ошибки) битов памяти. Память, не поддерживающая коррекции ошибок, обозначается non-ECC.
Как правило, память с коррекцией ошибок может исправлять изменения одного бита в одном машинном слове. Это значит, что при чтении одного машинного слова из памяти будет прочтено то же значение, что было до этого записано, даже если в промежутке между записью и чтением один бит был случайно изменён (например, под действием космических лучей). Обычная память, как правило, не способна определить, была ли ошибка, хотя некоторые виды памяти с контролем чётности способны определить, что произошла ошибка, но не способны её исправить.
Память с коррекцией ошибок используется в большинстве компьютеров, для которых важна бесперебойная работа, в том числе в большинстве серверов. Для работы памяти в режиме коррекции ошибок требуется поддержка со стороны контроллера оперативной памяти, который может быть составной частью чипсета или встраиваться в систему на кристалле, единую с вычислительными ядрами.
Наиболее базовый алгоритм коррекции ошибок основан на коде Хэмминга. Однако существуют и другие алгоритмы, способные исправлять более одной ошибки.
На практике широко применяется DDR* SDRAM ECC-память для серверов с кодом класса SECDED (исправление одиночных и детектирование двойных ошибок). На модулях памяти на каждые 8 микросхем добавляется ещё по одной микросхеме, которая хранит ECC-коды размером 8 бит на каждые 64 бита основной памяти[2].
Также схемы ECC-защиты данных могут применяться для встроенной в микропроцессоры памяти: кэш-памяти, регистрового файла. Иногда контроль также добавляют в вычислительные схемы.
Описание проблемы[править | править код]
Электромагнитные помехи внутри компьютерной системы способны спонтанно поменять состояние ячейки компьютерной памяти. Самой частой причиной такого изменения являются нейтроны из космических лучей[3]. Поэтому частота ошибок в компьютерных системах возрастает при увеличении высоты. Так, поток нейтронов в 3,5 раза больше на высоте 1,5 км и в 300 раз больше на высоте 10-12 км (типичной высоте полёта пассажирских самолётов), чем на уровне моря[4]. Поэтому системы, работающие на большой высоте, требуют большей защиты.
Например, на космическом аппарате Кассини-Гюйгенс установлены два идентичных устройства записи, каждое из которых содержит 2,5 гигабита памяти. На протяжении первых 2,5 лет полёта регистрировалось примерно постоянное количество ошибок каждый день: примерно 280 ошибок в день. Однако в течение одного дня (6 ноября 1997 года) число ошибок возросло в четыре раза. Считается, что это произошло из-за геомагнитной бури[5] (также протонная буря[en]), которая была зафиксирована спутником GOES 9[6].
Существуют опасения, что тенденция к уменьшению физических размеров модулей памяти приведёт к увеличению частоты возникновения ошибок из-за того, что частицы меньших энергий будут способны изменить бит[4]. С другой стороны, компактные размеры памяти уменьшают вероятность попадания частиц в неё. Кроме того, переход на такие технологии, как кремний на изоляторе, может сделать память более устойчивой[7].
Исследование, проведённое на большом количестве серверов Google, показало, что количество ошибок может составлять от 25 000 до 70 000 за миллиард рабочих часов (англ. device hours) на мегабит (то есть 2,5-7,0 × 10−11 ошибок / бит·час)[8].
Технология[править | править код]
Одним из решений проблемы является контроль чётности — использование дополнительного бита, который записывает чётность остальных битов. Такой подход позволяет обнаруживать ошибки, но не позволяет исправлять их, поэтому при обнаружении ошибки можно лишь прервать выполнение программы.
Более надёжным является подход, при котором используются коды с коррекцией ошибок. Самым часто используемым кодом с коррекцией ошибок является код Хэмминга. Большинство видов памяти с коррекцией ошибок, используемых в современных компьютерах, может исправлять ошибку одного бита в одном 64-битном машинном слове и определить, но не исправить, ошибку в двух битах в одном 64-битном слове[9].
Наиболее эффективный подход к исправлению ошибок зависит от вида ожидаемых ошибок. Часто предполагается, что изменения различных битов происходят независимо — в таком случае вероятность двух ошибок в одном слове пренебрежимо мала. Однако это предположение не выполняется для современных компьютеров. Технология коррекции ошибок Chipkill[en] (IBM) позволяет исправлять несколько ошибок, в том числе и при порче целого чипа памяти. Другие технологии коррекции памяти, которые не предполагают независимости ошибок в разных битах, включают Extended ECC[en] (Sun Microsystems), Chipspare[en] (Hewlett-Packard) и SDDC[en] (Intel).
Многие старые системы сообщали лишь о тех из обнаруженных ошибок, которые невозможно было исправить, и не сообщали об исправленных. Современные системы записывают как исправимые ошибки (CE, англ. correctable errors), так и неисправимые (UE, англ. uncorrectable errors). Это позволяет вовремя заменить испорченную память: несмотря на то, что большое количество исправленных ошибок при отсутствии неисправимых ошибок не влияет на корректность работы памяти, это может свидетельствовать о том, что для данного модуля памяти вероятность появления неисправимых ошибок в будущем возрастёт[10].
Преимущество и недостатки[править | править код]
Память с коррекцией ошибок защищает от некорректной работы компьютерной системы в связи с порчей памяти и уменьшает вероятность фатального отказа системы. Однако такая память стоит дороже; материнская плата, чипсет и процессор, которые поддерживают память с коррекцией ошибок, также могут быть дороже, поэтому такая память, как правило, используется лишь в системах, для которых критически важна бесперебойная и корректная работа, таких, например, как файловый сервер, научные и финансовые приложения.
Для проверки сумм часто требуется один дополнительный такт контроллера памяти. Дополнительная логика, реализующая подсчет, проверку ECC и исправление ошибок, требует логических ресурсов и времени на свою работу либо в самом контроллере памяти, либо в интерфейсе между CPU и контроллером памяти[11]. Поэтому память с коррекцией ошибок работает на 2-3 % медленнее, чем обычная память, в зависимости от приложений[12].
См. также[править | править код]
Примечания[править | править код]
Ссылки[править | править код]
Режим поддержки ECC оперативной памяти – что это такое и как работает?
Всем привет! Тема сегодняшней публикации — поддержка ECC оперативной памяти: что это такое, как работает данная функция, зависит ли от процессора ее использование на ПК.
Что такое ЕСС память
Аббревиатура происходит от английского названия error correcting code memory, то есть память с коррекцией ошибок кода. Такая ОЗУ распознает и устраняет спонтанно возникающие изменения в битах памяти, которых быть не должно.
Как правило, такая память может исправить изменения в одном бите одного машинного слова. При его чтении будет опознано то же значение, что и было записано, несмотря на возникающие «глюки».
Обычная память, то есть non-ECC, этого делать не умеет.
Этот тип памяти используется в компьютерах, для которых важна бесперебойная работа, включая крупные серверные станции. Для использования такого режима необходима поддержка контроллером ОЗУ — как встраиваемого в чипсет, так и реализованном на кристалле вместе с ядрами.
Базовый алгоритм, который используется чаще всего, основан на коде Хемминга — самоконтролирующемся двоичном коде, названном в честь предложившего такую систему американского математика.
Существуют алгоритмы, способные исправлять более одной ошибки, но используются они реже. С технологической точки зрения такая система предполагает использование модулей ОЗУ, в которых на каждые 8 микросхем памяти приходится один компонент, хранящий ЕСС-коды (то есть 8 бит на каждые 64 бита).
Причины появления ошибок в ОЗУ
Главная проблема для любого электронного устройства — невидимые космические лучи, от которых земная атмосфера не защищает должным образом. Элементарные частицы, которые пребывают в этом потоке, способны влиять на работу электроники.Под их воздействием физические свойства оперативки могут меняться, что уже ведет к размагничиванию. При смене данных, из единицы (заряженное состояние) на ноль (разряженное) уже появляется искажение.
А так как любой компьютер на самом «глубинном» уровне проводит все вычисления с помощью двоичных кодов, нарушения свойств электронных компонентов и провоцируют ошибки в работе.
Характерно, что чем выше от уровня моря, тем меньше плотность воздуха и соответственно, интенсивнее космическое излучение. Компьютерные системы, которые работают на большой высоте, требуют более эффективной защиты. Советую также почитать «Что такое ОЗУ в компьютере: из чего состоит и для чего служит?»(уже на сайте).
Стоит ли использовать ЕСС память
Объективных причин для использования такой ОЗУ на домашнем ПК нет.
Несмотря на то, что земной диск медленно дрейфует по Космическому океану, покоясь на спинах трех китов, вероятность искажения данных под воздействием вредоносных лучей, на самом-то деле крайне мала. При этом самое страшное, что может случиться при таких неполадках — вылет операционной системы в синий экран.
Впрочем, это может быть действительно страшно — например, в случае, если вы в течение пары часов монтировали видеоролик, забывая сохраняться в процессе, или же у вас последний и решительный бой, от которого зависит судьба клана, в какой-нибудь ММОРПГ.
Такая память работает медленнее обычной — в среднем, на 2-3%, так как для проверки контрольных сумм необходим один дополнительный такт контроллера. Такой режим работы требует больше логических ресурсов.
Как уже сказано выше, в основном такая память почти всегда регистровая (Registered), то есть имеет дополнительный регистр для считывания и хранения двоичных кодов. Существуют модули ECC памяти без регистров (UDIMM), которые можно использовать в домашних ПК.
Однако учтите, что такое удовольствие обойдется дороже, так как цена на такие модули ОЗУ обычно выше. Кроме того, требуется наличие материнской платы, чипсета и процессора (к слову, такие модели есть и у Intel, и у AMD), поддерживающих ЕСС память. Стоят они внезапно тоже, как правило, дороже.
И если вы решили проапгрейдить комп для использования ЕСС памяти, проверьте спецификации упомянутых выше компонентов. Если в описании написано что нет поддержки такого режима, деталь придется менять на более подходящую, что значит дополнительные расходы.
Не исключено, что придется менять и мать, и «камень», и планки оперативки. При сборке нового компьютера несколько проще: можно сразу купить соответствующие компоненты. Однако, на мой взгляд, это уже лишнее — страховка от мнимых сбоев не стоит потери быстродействия.
Также советую на эту тему ознакомиться с публикациями «Влияние тактовой частоты оперативной памяти в компьютере»(уже на блоге) и «Тайминги и частота оперативной памяти: кто важнее и влиятельней?». Буду признателен всем, кто расшарит эту статью в социальных сетях. До завтра!
С уважением, автор блога Андрей Андреев.
SERVERSTECH
ECC vs non-ECC: влияние типа памяти на производительность процессора
Подробности Категория: Память Опубликовано: 09.08.2016 08:24 Автор: ServersTech.ru
В Сети часто можно увидеть на тематических форумах вопросы, касающиеся памяти с коррекцией ошибок, а именно — ее влияние на производительность системы. Сегодняшнее тестирование ответит на этот вопрос.
Перед прочтением данного материала рекомендуем ознакомится с материалами по микроархитектуре Core и платформе LGA1151.
Перед тестированием расскажем об ошибках памяти.
Ошибки, возникающие в памяти, можно разделить на два типа — аппаратные и случайные. Причиной появления первых являются дефектные микросхемы DRAM. Вторые же возникают по причине воздействия электромагнитных помех, излучения, альфа- и элементарных частиц и т.д. Соответственно, исправить аппаратные ошибки можно только путем замены микросхем DRAM, а случайные — с помощью специальных технологий, например, ECC (Error-Correcting Code). Коррекция ошибок ECC в своем арсенале имеет два метода: SEC ( Error Correction) и DED (Double Error Detection). Первый исправляет однобитовые ошибки в 64-битном слове, а второй детектирует двухбитовые ошибки.
Аппаратная реализация ECC заключается в размещении дополнительных чипов памяти, которые необходимы для записи 8-битных контрольных сумм. Таким образом, модуль памяти с коррекцией ошибок при одностороннем дизайне будет иметь 9 чипов памяти вместо 8 (как у стандартного модуля), а при двустороннем — 18 вместо 16. Вместе с этим увеличивается и ширина модуля с 64 до 72 бит.
При считывании данных из памяти происходит повторный подсчет контрольной суммы, которая сравнивается с исходной. Если ошибка в одном бите — она исправляется, если в двух — детектируется.
В теории всё хорошо — память с коррекцией ошибок повышает надежность системы, что очень важно при построении сервера или рабочей станции. А на практике существует еще и финансовая сторона данного вопроса. Если серверу память с коррекцией ошибок обязательна, то рабочая станция вполне может обойтись без ECC (многие готовые рабочие станции разных производителей оснащаются обычной ОЗУ). Насколько же дороже память с коррекцией ошибок?
Типичный модуль DDR4-2133 с объемом 8 ГБ стоит порядка 39 долларов, а модуль с ECC — 48 долларов (на момент написания материала). Разница в стоимости составляет около 23%, что весьма значительно на первый взгляд. Но если посмотреть на общую стоимость рабочей станции, то эта разница не превысит и 5% от нее. Таким образом, приобретение памяти с ECC лишь незначительно увеличивает стоимость рабочей станции. Остается лишь вопрос — а как влияет память с ECC на производительность процессора.
Для того, чтобы ответить на этот вопрос редакция ServersTech.ru взяла для тестирования модули памяти Samsung DDR4-2133 ECC и Kingston DDR4-2133 с одинаковыми таймингами 15-15-15-36 и объемом 8 ГБ.
На модулях памяти Samsung M391A1G43DB0-CPB с коррекцией ошибок распаяно по 9 чипов с каждой стороны.
В то время как на обычных модулях памяти Kingston KVR21N15D8/8 распаяно по 8 чипов с каждой стороны.
Тестовый стенд: Intel Xeon E3-1275v5, Supermicro X11SAE-F, Samsung DDR4-2133 ECC 8GB, Kingston DDR4-2133 non-ECC 8GB
— Процессор: Xeon E3-1275v5 (HT on; TB off);
— Материнская плата: Supermicro X11SAE-F;
— Оперативная память: 2x Samsung DDR4-2133 ECC 8GB (M391A1G43DB0-CPB), 2x Kingston DDR4-2133 non-ECC 8GB (KVR21N15D8/8);