Оглавление
- Вступление
- Коррекция ошибок
- Финансовая сторона
- Тестовый стенд
- Методика тестирования
- Результаты тестирования
- Тест памяти
- 3DMark
- 7Zip
- Cinebench
- CrystalMark
- Fritz
- LinX
- wPrime
- AIDA64 Extreme
- Заключение
Вступление
На сегодняшний день на просторах Рунета можно встретить открытые темы на форумах с вопросами – стоит ли брать рабочую станцию с ECC-памятью или можно обойтись обычной? В данных ветках можно прочесть множество противоречивых утверждений, и часть из них говорит о том, что коррекция ошибок сильно замедляет память, а следовательно и ЦП. Но мало кто это проверял на деле на современных процессорах.
Сегодня мы разберемся в этом вопросе и сравним производительность серверного процессора с обоими типами памяти. Но для начала небольшой экскурс.
Коррекция ошибок
Для чего необходима коррекция? И почему в работе памяти возникают ошибки? Перед ответом на эти вопросы следует разделить ошибки на два типа:
- Аппаратные ошибки;
- Случайные ошибки.
Причиной появления аппаратных ошибок является дефектная микросхема DRAM, а случайные ошибки возникают под воздействием излучения, альфа-частиц, элементарных частиц и прочего. Соответственно, первые в принципе неисправимы – если чип дефектный, то поможет только его замена; а вот вторые могут быть исправлены.
Почему же так необходима коррекция ошибок в рабочих станциях и серверах? Однобитовая ошибка в 64-битном слове меняет содержимое ячейки памяти, а в конечном итоге на жесткий диск может быть записано другое число, другие данные, при этом компьютер не зафиксирует эту подмену. А изменение бита в оперативной памяти может вызвать сбой программы, что для рабочей станции и сервера недопустимо.
рекомендации
3060 дешевле 30тр в Ситилинке
3070 Gigabyte Gaming за 50 тр с началом
<b>13900K</b> в Регарде по СТАРОМУ курсу 62
3070 Gainward Phantom дешевле 50 тр
10 видов <b>4070 Ti</b> в Ситилинке — все до 100 тр
13700K дешевле 40 тр в Регарде
MSI 3050 за 25 тр в Ситилинке
13600K дешевле 30 тр в Регарде
4080 почти за 100тр — дешевле чем по курсу 60
12900K за 40тр с началом в Ситилинке
RTX 4090 за 140 тр в Регарде
Компьютеры от 10 тр в Ситилинке
3060 Ti Gigabyte дешевле 40 тр в Регарде
3070 дешевле 50 тр в Ситилинке
-7% на 4080 Gigabyte Gaming
Для обнаружения изменения битов памяти можно использовать метод подсчета контрольной суммы, но он позволяет лишь обнаруживать ошибки без их исправления.
В свое время было предложено много различных способов решения данной проблемы, но на сегодняшний день наибольшее распространение получил метод коррекции ошибок или 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-память не оказывает на нее негативного влияния.
Андрей Борзенко
Для обеспечения приемлемой производительности современным серверам требуются огромные объемы памяти. Одна из причин в том, что быстродействие используемых в серверах микропроцессоров Intel увеличилось по сравнению с началом 1990-х гг. в 20 раз, а быстродействие дисков за то же время возросло всего лишь в 5 раз. Известно также, что по мере дальнейшего увеличения быстродействия микропроцессоров элементы памяти становятся узким местом компьютерных систем. Если частоты микропроцессоров давно превысили частоты системной шины, то шина памяти до самого последнего времени работала синхронно с последней.
Однако использование быстродействующих и дорогих кристаллов памяти для серверов не всегда эффективно с точки зрения баланса стоимости и быстродействия. Для обеспечения удовлетворительной общей производительности систем обычно применяется недорогая память большого объема. Именно это позволяет сгладить разрыв между быстрыми микропроцессорами и медленными дисками. При такой высокой потребности в памяти на серверах заказчики нуждаются в оборудовании более дешевом, но обеспечивающем повышенную надежность.
Себестоимость памяти обычно снижают за счет максимального повышения разрядности микросхем. Плотная упаковка (т. е. повышение разрядности) микросхем памяти позволила резко снизить соотношение цена/емкость. Такие микросхемы передают и получают четыре или восемь разрядов данных в каждой операции доступа.
Напомним, что для микросхем памяти емкость традиционно измеряется в битах, а вот емкость модулей — в байтах (1 Мбайт = 8х1 Мбит). Обозначение 1 Мх4 означает, что данная микросхема может адресовать 1 Мбит ячеек, в каждой из которых может храниться 4 бита информации. Говорят также, что емкость такой микросхемы 4 Мбит. Как правило, емкость микросхем памяти растет с инкрементом четыре. Дело в том, что добавление одной адресной линии увеличивает количество строк (и столбцов) в матрице памяти вдвое, всего же ее размер возрастает вчетверо. Каждый кристалл памяти содержит ячейки, в которых может храниться от одного до шестнадцати разрядов данных. Например, 16-мегабитный кристалл можно сконфигурировать как 4 Mбит x 4, 2 Mбит x 8 или 1 Mбит x 16, но во всех случаях его общая емкость равна 16 Mбит. Число разрядов на ячейку показывает, сколько бит передается одновременно при обращении к ней.
От проверки четности до ECC
Ошибки памяти можно подразделить на аппаратные и случайные. Аппаратные ошибки обычно обусловлены дефектами кремниевого кристалла или монтажных соединений микросхем DRAM и со временем не исчезают. Случайные ошибки (или «мягкие») обычно вызываются заряженными частицами или излучением; они непостоянны и со временем пропадают. Ранее основной причиной случайных ошибок были альфа-частицы, но более строгий контроль качества материала, из которого делаются корпуса микросхем DRAM, позволил производителям практически ликвидировать эту причину сбоев. В настоящее время основной источник случайных ошибок в микросхемах DRAM — электрические возмущения, вызванные космическими лучами — потоками высокоэнергетических элементарных частиц, приходящими из космоса.
В начале 1990-х гг. в большинстве серверов, оборудованных микропроцессорами
Intel, применялся метод проверки четности памяти. Он позволяет обнаруживать
ошибки, но не исправлять их. Метод контроля по четности широко применялся еще
в первых моделях компьютеров для оценки достоверности хранимой в оперативной
памяти информации. Состоит он в следующем. При записи байта информации в запоминающее
устройство определяется дополнительный контрольный разряд, который вычисляется
обычно путем логического сложения всех информационных разрядов (как показано
в таблице). Обычно контрольный разряд равен единице, если число единиц в байте
было четным, и нулю, если число единиц в группе было нечетным.
Получение контрольного разряда
| Байт информации | Количество единичных разрядов | Значение бита четности | Количество единиц, включая бит четности |
| 00000000 | 0 | 1 | 1 |
| 10110011 | 5 | 0 | 5 |
| 00100100 | 2 | 1 | 3 |
| 11111111 | 8 | 1 | 9 |
Таким образом, при чтении ранее записанного байта, вновь получив контрольный
разряд и сравнив его с уже имеющимся, можно оценить достоверность получаемой
информации. Если значения хранимого и полученного разрядов совпадают, то данные
считаются истинными; в противном случае генерируется сообщение об ошибке четности,
которое приводит к остановке компьютера. При возникновении ошибки в самом разряде
четности работа системы нарушается и все данные в памяти безвозвратно теряются.
Представьте себе, что в памяти сервера находится 32 или даже 64 Mбайт данных,
еще не сохраненных на диске. В случае ошибки четности вся эта немалая информация
пропадает безвозвратно. А ведь все серверы размещают данные в памяти до того,
как сохранить их на диске.
Данный метод контроля имел определенный смысл, пока микросхемы памяти были недостаточно надежными. К тому же, если на каждые восемь информационных разрядов приходится один бит четности, то стоимость модуля тем самым увеличивается более чем на 10%. Значительные технологические успехи в производстве микросхем динамической памяти привели к существенному росту их надежности. Так, у современных микросхем памяти среднее время наработки на отказ определяется годами, а то и десятками лет. Примерно с середины 90-х гг. изготовители модулей памяти стали постепенно отказываться от схемы контроля по четности. Например, популярный набор микросхем Intel Triton (430FX) вообще не поддерживал проверку на четность. Некоторые системные платы для компьютеров хотя и допускали использование SIMM-модулей с контролем четности, но саму проверку могли и не поддерживать. Однако для построения серверов, работающих с критически важной информацией, такой подход был, разумеется, неприемлем.
В предыдущие годы высокая частота ошибок четности памяти вынудила отрасль перейти на новый стандарт и обеспечить поддержку ECC (Error Checking and Correcting — обнаружение и исправление ошибок). Обычно эту особенность называют SEC/DED (Single Error Correction/Double Error Detection — коррекция единичных и обнаружение двойных ошибок). Механизм SEC/DED не позволяет обнаруживать ошибки более чем в двух разрядах. В этом случае целостность информации нарушается. В архитектуре такого типа ошибки в нескольких разрядах неустранимы и приводят к отказу системы, а сбои единичных разрядов исправляются автоматически, незаметно («прозрачно») для операционной системы и прикладных программ.
Теперь для наиболее ответственных приложений, где цена ошибки очень высока, используются уже не обычные модули с проверкой на четность, а модули с коррекцией ошибок ECC. При обычной проверке на четность невозможно обнаружить, например, возникновение двух ошибок одновременно. Действительно, если в байте информации 00100100 со значением бита четности 1 изменятся значения двух разрядов — 01100000, то бит четности все равно будет равен 1.
Идея, лежащая в основе метода ECC, довольно проста — каждый разряд памяти входит более чем в одну контрольную сумму. Это увеличивает число контрольных разрядов, но дает возможность восстанавливать значение сбойного бита по несовпадающим контрольным суммам. Итак, ECC использует один разряд четности на байт информации для нахождения одиночных ошибок, а для исправления требуется 7 бит для 32- и 8 бит для 64-разрядной памяти. При этом легко обнаруживаются двойные ошибки, как та, что описана выше. Следовательно, для ECC можно использовать обычные модули с контролем четности, если это допускает контроллер памяти. Основной недостаток при такой схеме использования ECC — снижение общей производительности системы, на которую возлагаются дополнительные вычисления.
Другой способ реализации ECC — размещение логики контроля не в контроллере памяти на системной плате, а на самом модуле. Это позволяет избежать снижения производительности, но стоимость таких модулей выше, чем обычных. Поскольку ошибки в большем числе разрядов случались чрезвычайно редко, метод ECC позволил существенно повысить надежность систем. Сегодня технология ECC стала стандартом и применяется практически во всех серверах.
Разрядность данных различна для разных микросхем DRAM. Используемые в настоящее время DIMM-модули (Dual In-line Memory Module) со 168 и 184 контактными выводами (рис. 1) оснащаются микросхемами DRAM с разрядностью данных х4 (4 разряда данных), x8 или x16. Для поддержки 72 разрядов (64 разряда данных и 8 разрядов для кодов исправления ошибок) требуются микросхемы DRAM с более высокой разрядностью, так как на модуле DIMM просто недостаточно места, чтобы решить эту задачу, установив DRAM-микросхемы с меньшей плотностью.
![]() |
Рис. 1. Модуль памяти DIMM ECC.
|
Недостатки ECC
Безвозвратная потеря данных случается, когда на микросхеме в DIMM-модуле происходит ошибка в нескольких разрядах, — этот сбой механизм ECC устранить не в состоянии. Представьте себе, что за один цикл микросхема обменивается восемью разрядами данных. При возникновении ошибки, не подлежащей исправлению средствами механизма ECC, все восемь разрядов данных теряются, что, в свою очередь, вызывает аварийную остановку сервера. Потеря данных по причине ошибок памяти возможна как в 4-разрядных, так и в 8-разрядных микросхемах: ведь механизм ECC защищает от сбоев только единичных разрядов. По мере уплотнения DRAM-устройств доля многоразрядных ошибок увеличивается. Кроме того, объемы памяти на современных серверах все время растут (устанавливаются большие количества модулей или модули с большим объемом памяти), и вероятность неустранимых ошибок DRAM-памяти — как случайных, так и постоянных, — увеличивается. Таким образом, память стандарта SEC/DED, которая еще недавно обеспечивала вполне удовлетворительные характеристики, теперь не удовлетворяет требованиям высокой надежности, доступности и удобства в эксплуатации (RAS — Reliability, Availability and Serviceability), предъявляемым к современным серверам. Это, в частности, касается серверов масштаба предприятия, стандартные объемы памяти которых ныне превышают несколько гигабайт. Кроме того, следует отметить, что требования к объемам памяти существенно возросли после выпуска 64-разрядных компьютерных систем семейства Itanium.
На современных высокопроизводительных файловых серверах с микропроцессорами Intel такие ошибки в микросхемах памяти могут вызвать разрушение системы и безвозвратную потерю нескольких гигабайт критических данных. В большинстве файл-серверных приложений восстановление данных после такого аварийного отказа практически невозможно. Сбои в памяти также способны привести к существенным простоям приложений серверов баз данных, в которых информация защищается от потери путем записи всех транзакций на диск. Дело в том, что механизму восстановления обычно требуется масса времени на воссоздание базы данных на основании записей журнала транзакций, которые не успели попасть в базу данных. Иногда на это уходит несколько часов работы сервера, на протяжении которых он не способен обслуживать текущие бизнес-операции.
Новый механизм исправления ошибок
Одной из составных частей инициативы X-Architecture корпорации IBM (http://www.ibm.com/ru)
стала технология исправления ошибок Chipkill. Она обеспечивает защиту серверов
от отказов отдельных микросхем и многоразрядных ошибок в модулях памяти. Эта
технология, перенесенная IBM с больших систем, существенно сокращает среднее
время простоя серверов и обеспечивает более надежную платформу для клиент-серверных
вычислений на базе микропроцессоров Intel. Она призвана повысить надежность
систем, доступность и удобство в эксплуатации — ключевые характеристики серверов
масштаба предприятия, обслуживающих критически важные приложения. Архитектура
Chipkill позволяет системе безболезненно воспринимать ошибки, которые в обычных
условиях приводят к неустранимым сбоям, тем самым обеспечивая сохранность данных
и высокую доступность системы.
В системах высокой доступности, таких как серверы масштаба предприятия IBM S/390, проблема многоразрядных ошибок памяти DRAM отсутствует благодаря особой архитектуре оперативной памяти. Подсистема памяти сконструирована так, что отказ отдельной микросхемы, независимо от ее разрядности, не затронет более одного разряда в каком-либо из нескольких слов ECC. Например, в 4-разрядной микросхеме DRAM отдельные биты из всей четверки попадают в разные слова ECC, т. е. в разные адресные пространства памяти. Поэтому даже в случае полного отказа микросхемы количество ошибочных разрядов в словах ECC не превысит единицу, а такую ошибку механизм ECC устраняет автоматически. Данная архитектура обеспечивает отказоустойчивость всей подсистемы памяти.
Продуманная конструкция мэйнфреймов защищает их от сбоев микросхем памяти. В каждом модуле памяти разрядность микросхем равна числу разрядов, защищенных механизмом ECC. Нынешние серверы на базе микропроцессоров Intel такого механизма не поддерживают — ведь рынок требует дешевой памяти, вынуждая проектировщиков создавать очень плотные микросхемы памяти, поддерживающие отраслевой стандарт (иными словами, исключительно ECC).
Chipkill — это механизм, позволяющий памяти противостоять многоразрядным ошибкам на отдельных микросхемах DRAM, в том числе сбою всех разрядов данных. В механизме Chipkill есть два основных метода исправления ошибок, причем они могут применяться совместно. Эти методы базируются на определенном наборе микросхем и особой аппаратной архитектуре системы — их поддержку невозможно обеспечить простым обновлением ПО.
В первом методе каждый бит данных модуля памяти размещается в отдельном «слове ECC». (Слово ECC — это набор разрядов данных и контрольных разрядов, в котором обнаружение и исправление ошибок обеспечивается алгоритмом ECC.) Допустим, что разрядность системы памяти составляет 32 байт (или 256 разрядов). Биты ECC добавляются так, чтобы общая ширина блока (и контрольные, и биты данных) составляла 288 разрядов. Четыре слова ECC, каждое из которых состоит из 64 разрядов данных и 8 контрольных разрядов ECC, поддерживают механизм SEC/DED. Эти четыре слова ECC распределяются по DRAM-модулям. Например, если DIMM содержит модули х4 DRAM, четыре бита каждого устройства распределяются по разным словам ECC (рис. 2). Сбой всех четырех битов — это всего лишь четыре единичные ошибки в четырех словах ECC, и они устраняются автоматически. В этом примере механизм Chipkill поддерживается только на DIMM-модулях, состоящих из микросхем х4 DRAM.
![]() |
Рис. 2. Один из механизмов Chipkill.
|
Второй метод заключается в предоставлении механизму ECC большего числа разрядов для хранения контрольных кодов, чтобы обеспечить исправление не одного, а нескольких разрядов. При этом используются соответствующие математические алгоритмы устранения многоразрядных ошибок при определенном количестве контрольных битов ECC и битов данных. Например, 144-разрядное слово ECC, состоящее из 128 разрядов данных и 16 битов ECC, позволяет исправлять ошибки, охватывающие до 4 разрядов данных. (Для исправления сбоя четырех бит необходимо, чтобы они были смежными, а не располагались случайно.) Соотношение разрядов ECC и разрядов данных такое же, как и в предыдущем примере (16/128 и 8/64), однако более длинное слово ECC позволяет применить более эффективный алгоритм обнаружения и исправления ошибок.
Совместное использование этих двух методов обеспечивает коррекцию по механизму Chipkill на DIMM-модулях с микросхемами х8 DRAM. Два 144-разрядных слова ECC распределяются так, чтобы на каждом DRAM в первом и втором словах ECC исправлялись по 4 разряда. Этот метод обеспечивает поддержку механизма Chipkill при использовании DIMM-модулей, состоящих как из микросхем х4 DRAM, так и из х8 DRAM.
На серверах Netfinity (на смену которым пришли машины eServer xSeries) инженеры IBM решили эту проблему, разместив избыточный массив недорогих микросхем DRAM (Redundant Array of Inexpensive DRAM, RAID) непосредственно на DIMM-модулях. При каждом доступе к памяти RAID-микросхема вычисляет контрольный код ECC для всего набора микросхем и сохраняет результат в резервной памяти на защищаемом DIMM-модуле. В случае отказа одной микросхемы DIMM-модуля сохраненная на RAID-массиве информация применяется для восстановления потерянных данных, обеспечивая бесперебойную работу всего сервера Netfinity. Такая RAID-технология напоминает RAID-механизмы, применяемые для защиты данных в дисковых массивах, и называется Chipkill DRAM.
Специалисты компании IBM разработали заказную специализированную микросхему для Chipkill, которая называется ECC ASIC (Application-Specific Integrated Circuit) и выполняет исправление ошибок без замедления доступа к высокопроизводительной EDO-памяти со временем доступа 50 нс. Таким образом, при установке DIMM-модулей IBM Chipkill на серверы Netfinity, оборудованные процессором Intel Xeon, модификация плат памяти не нужна, а новые модули не вызывают снижения производительности
Результаты исследований показали, что на серверах, оборудованных 32 Мбайт памяти с проверкой четности, частота сбоев памяти за 3 года составила 7 отказов на 100 серверов. На серверах, оборудованных 1 Гбайт памяти с поддержкой ECC, частота сбоев за 3 года равна 9 отказам на 100 серверов. А вот на серверах, оборудованных 4 Гбайт памяти с поддержкой Chipkill, за 3 года число сбоев не превысило 6 отказов на 10 тыс. серверов. Кроме того, оказалось, что частота отказов по причине ошибок памяти на серверах с 1 Гбайт ECC-памяти выше, чем на серверах с 32 Мбайт памяти с проверкой четности. Причина здесь в том, что при том огромном числе DRAM-микросхем емкостью 64 Мбит, которое нужно, чтобы составить 1 Гбайт памяти, вероятность отказа отдельных микросхем существенно выше, чем вероятность возникновения единичных ошибок четности в 32 Мбайт памяти с проверкой четности. Технология IBM Chipkill Memory позволила снизить число отказов серверов Netfinity по причине сбоев подсистемы памяти до невероятно низкого уровня.
Обнаружение и оповещение
Поскольку основная задача механизма Chipkill — исправление ошибок памяти, в нем применяются такие же способы обнаружения и оповещения, что и в ECC. Обнаружение и оповещение Chipkill никак не сказывается на производительности оборудования или ПО — издержки те же, что и для стандартных механизмов ECC. Вкратце остановимся на том, как может выполняться обнаружение постоянных и случайных ошибок и оповещение о них в серверных архитектурах с применением обоих механизмов — ECC и Chipkill.
Обнаружение и исправление ошибок памяти выполняется в системном наборе микросхем. Код исправления ошибок (ECC) генерируется при записи и проверяется при чтении во всех системных операциях с памятью «прозрачно» для прикладных программ. Обнаруженная ошибка автоматически исправляется до передачи данных получателю. При этом событие ошибки регистрируется оборудованием, а системная BIOS уведомляется об исправлении ошибки и о месте, где она произошла. Набор микросхем также ведет учет исправленных ошибок, что позволяет BIOS выявлять DIMM-модули, в которых ошибки возникают и исправляются постоянно. Получив уведомление, система BIOS опрашивает регистры набора микросхем, чтобы определить, где произошла ошибка памяти (порядок такого опроса сильно зависит от конструкции конкретной системы, поэтому он и выполняется на уровне BIOS). Обнаружив модуль DIMM, вызвавший ошибку, BIOS регистрирует эту информацию в системном журнале, который является, например, частью встроенной системы управления сервером (Embedded Server Management). DIMM-модули легко заменить в процессе эксплуатации, для них требуется лишь предсказательное оповещение об ошибках и замене, поэтому нет необходимости локализовать ошибки с точностью до отдельной микросхемы на плате DIMM-модуля. Получая за сравнительно короткое время повторяющиеся сообщения об исправленных ошибках от одного и того же DIMM-модуля, BIOS отключает соответствующий механизм оповещения и регистрирует этот факт в журнале системы управления сервером. Это избавляет систему от дополнительной нагрузки, обусловленной обработкой всех ошибок памяти, поскольку постоянная ошибка DRAM иногда генерирует миллионы сообщений об исправлениях в минуту.
Программное обеспечение управления системой, поставляемое в составе многих серверов, анализирует системный журнал при каждом внесении записи системой BIOS. Ошибки единичных разрядов инициируют уведомления одного из трех возможных уровней: warning («предупреждение»), critical («критическая»), nonrecoverable («неустранимая»). По-настоящему случайная ошибка вряд ли инициирует уведомление в стеке программы управления системой. Однако в случае постоянных неполадок в работе DIMM-модуля инициируется уведомление программе управления системой, после чего та назначает службе технической поддержки задание на замену неисправного DIMM-модуля. Постоянная ошибка, вызвавшая отключение механизма регистрации исправлений, в любом случае инициирует уведомление. Постоянные ошибки в одном разряде или ошибки, устраняемые средствами Chipkill, не вызывают отказа системы; тем не менее они увеличивают вероятность того, что очередная случайная ошибка приведет к критическому, неустранимому сбою. Поэтому администраторы системы должны внимательно следить за уведомлениями о дефектных DIMM-модулях и своевременно назначать службе технической поддержки задания на их замену.
С Марса на Землю
Интересно, что, по некоторым данным, изначально технология Chipkill разрабатывалась IBM для марсианского вездехода Rover (рис. 3), где сбои памяти были, мягко говоря, нежелательны. Агентство NASA применило-таки эту технологию в исследовательском зонде Pathfinder. Надо отдать должное специалистам NASA, которые осознали важность такого параметра, как надежность памяти. Им, видимо, совсем не хотелось потратить миллиарды долларов на отправку Pathfinder на Марс и только потом обнаружить, что все мероприятие терпит крах по причине отказа одной микросхемы памяти.
![]() |
Рис. 3. Модуль памяти для марсианского вездехода.
|
Технология Chipkill поддерживается в новом универсальном наборе микросхем IBM Summit, который подходит как для 64-разрядных микропроцессоров семейства Itanium, так и для 32-разрядных Xeon. Каждый чипсет будет поддерживать до четырех процессоров, позволяя им разделять такие ресурсы, как шины ввода-вывода и шины памяти. Четыре набора могут связываться воедино, что даст серверам на базе Summit возможность поддерживать до 16 полностью автономных микропроцессоров. Например, в четырехпроцессорном сервере можно будет выделить три кристалла под Windows NT, а один — под Linux, а если все процессоры работают в одной среде, можно будет проводить их «горячую» замену.
В заключение следует отметить, что, по мнению ряда экспертов, те же рыночные силы, которые ранее вынудили перейти от проверки четности к технологии ECC на Intel-серверах с 32 Мбайт памяти, в ближайшее время заставят в обязательном порядке устанавливать память Chipkill на новых серверах Intel-архитектуры, оборудованных многими гигабайтами памяти и 64-разрядными микропроцессорами семейства Itanium. В исторической перспективе это и неудивительно, ведь именно такое магистральное направление намечалось технологиями IBM для больших систем. Если допустить, что мэйнфреймы были предшественниками распределенной, ориентированной на сеть модели клиент-серверных вычислений, то представляется очевидным, что присущая мэйнфреймам надежность и отказоустойчивость скоро потребуется и в серверах, оборудованных микропроцессорами Intel.
Новый адрес страницы: Технология Chipkill для оперативной памяти
Память
- Информация о материале
- Категория: Память
- Опубликовано: 09.08.2016, 08:24
- Автор: ServersTech.ru
В Сети часто можно увидеть на тематических форумах вопросы, касающиеся памяти с коррекцией ошибок, а именно – ее влияние на производительность системы. Сегодняшнее тестирование ответит на этот вопрос.
Перед прочтением данного материала рекомендуем ознакомится с материалами по микроархитектуре Core и платформе LGA1151.
Теория
Перед тестированием расскажем об ошибках памяти.
Ошибки, возникающие в памяти, можно разделить на два типа – аппаратные и случайные. Причиной появления первых являются дефектные микросхемы DRAM. Вторые же возникают по причине воздействия электромагнитных помех, излучения, альфа- и элементарных частиц и т.д. Соответственно, исправить аппаратные ошибки можно только путем замены микросхем DRAM, а случайные – с помощью специальных технологий, например, ECC (Error-Correcting Code). Коррекция ошибок ECC в своем арсенале имеет два метода: SEC (Single 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);
— ОС: Windows Server 2012R2.
Методика тестирования
— 3DMark06 1.21;
— 7zip 15.14;
— AIDA64 5.60;
— Cinebench R15;
— Fritz 4.2;
— Geekbench 3.4.1;
— LuxMark v3.1;
— MaxxMEMI 1.99;
— PassMark v8;
— RealBench v2.43;
— SiSoftware Sandra 2016;
— SVPmark v3.0.3b;
— TrueCrypt 7.1a;
— WinRAR 5.30;
— wPrime 2.10;
— x264 v5.0.1;
— x265 v0.1.4;
— Kraken;
— Octane;
— Octane 2.0;
— Peacekeeper;
— SunSpider;
— WebXPRT.
AIDA64

В тесте памяти результаты на удивление одинаковые (в пределах погрешности теста).

Для целочисленной арифметики не имеет значения используемый тип памяти – коррекция ошибок не оказывает существенного влияния на конечный результат.

Арифметика с плавающей точкой также оказалась невосприимчивой к типу памяти.

Даже наиболее требовательная к скорости памяти интегрированная графика не показала значительной разницы между ECC и non-ECC памятью.
SiSoftware Sandra

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

Абстрагированный от «железа» фрейморк также не заметил разницы между тестируемыми.

Требовательная к скорости памяти интегрированная графическая карта не видит разницу между ECC и non-ECC.

На скорость рендеринга тип памяти также не влияет.

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

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

Cinebench R15

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

Да и на производительности интегрированного графического ядра смена типа памяти не сказалась.
Fritz

Данный бенчмарк также не показал существенной разницы между разными типами памяти.
LuxMark

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

Пожалуй, лишь в подтесте Image Editing присутствует более-менее существенная разница – 2% в пользу обычной памяти.
SVPmark

Данный бенчмарк также не заметил смену типа памяти.
Geekbench

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

Многопоточный режим картину не меняет – разницы в производительности нет.
PassMark

Существенной разницы в производительности между различными типами памяти нет (следует отметить, что результат в 2D зависит целиком от работоспособности драйвера, который на момент тестирования не хотел стабильно работать).
3DMark06

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

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

Многопоточный режим кардинально не меняет картину – результаты максимально схожи.
Encoder

На скорость работы с видео смена типа памяти также не оказывает никакого влияния.
TrueCrypt

Скорость шифрования также не зависит от типа памяти.
7zip

В однопоточном режиме 7zip «заметил» разницу между разными типами памяти, отдав предпочтение обычной ОЗУ, показавшей на 16% большую скорость сжатия.

В многопоточном режиме 7zip не почувствовал особой разницы между ECC и non-ECC – разница в результатах в пределах +/- 1%.
WinRAR

В отличие от 7zip, WinRAR остается безразличным к типу памяти.
Browser benchmark
Все бенчмарки проводились в Firefox 45.

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

ECC, от английского error-correcting code, переводиться на русский язык, как код коррекции ошибок. Встроенная в контроллёры флешек технология, обнаружения и исправления ошибок при передаче данных. ECC способна справиться только с несущественными проблемами, в тяжелых случаях флешка заблокируется на запись данных.
ЗАЧЕМ ЭТО НАДО
Если в эпоху качественных SLC и MLC микросхем флэш-памяти, не было особого смысла обращать внимание на этот механизм исправления ошибок. То сейчас когда в подавляющем количестве флешек, установлена или банально TLC-память или какая-нибудь MLC DownGrade, не стоит пренебрегать настройками ECC-механизма.
Данная технология позволяет продлить жизнь флешки до следующих затыков с ней, ведь не хочется, каждый месяц заново перепрошивать свою флешку.
Еще одной положительной чертой, является вероятность достижения максимального возможного объёма флэш-диска. Он может быть даже выше, чем изначально имел носитель, особенно у флешек с отбракованными микросхемами.
НЕДОСТАТКИ
Чем выше вы установите значение ECC-параметра, тем большую нагрузку он создаст на контроллёр флешки. А это в свою очередь, может негативно сказаться на её производительность, т.е. скорость работы. Также из заметных недостатков, высокой нагрузки, это больший разогрев флешки.
РЕКОМЕНДУЕМЫЕ ЗНАЧЕНИЯ ПАРАМЕТРА ECC
В большинстве утилитах, используется не применяемые в флэш-листах значения (например: 7b/512B и 72b/1K), а суммы определенных параметров. Как правило, в диапазоне равеном от 0 до 15, в некоторых производственных программах, ввиду поддержки крайне некачественной памяти, от 0 до 20. Для посетителей проекта USBDev.ru, я составил следующую таблицу.
| ECC Value | |
|---|---|
| MEMORY TYPE: | ECC: |
| SLC | 1 |
| MLC 32nm, 35nm, 42nm, 50nm, … | 3-4 |
| MLC 24nm, 25nm, 26nm, 32nm | 4-8 |
| MLC 21nm, 20nm, 19nm, … | 8-12 |
| TLC 27nm, 32nm, 43nm, … | 8 |
| TLC 24nm, 21nm, 19nm, … | 12-15 |
В некоторых утилитах, используется другая система координат, к примеру производственный комплекс Dyna для контроллёров SMI. На этот случай, чуть ниже можно обнаружить ссылку на особености настроек у конкретных производителей.
Немного поясню, как следует использовать таблицу данную выше. Так вот, если ваша флешка добротная (хорошо зарекомендовавший себя бренд), то выбирайте минимальное значение из неё. Для подарочных и поддельных флешек, настоятельно советую использовать максимальное значение параметра ECC, для своего типа памяти.
РЕАЛИЗАЦИЯ В ПРОИЗВОДСТВЕННЫХ УТИЛИТАХ
Далеко не во всех утилит, имеется возможность ручной корректировки ECC-опции. Можно сказать что ECC, это такая фитча Sorting-составляющей производственных утилит. Попробую кратко выразить это в таблице, для основных производителей USB-контроллёров.
| ECC Compatible Software | |
|---|---|
| Company: | Tools: |
| ALCOR | AlcorMP_UFD FC MpTool AAMP |
| CHIPSBANK | Chipsbank UMPTool CBM2093 UMPTool CBM2098 UMPTool umptool209X V68 Building Tools |
| INNOSTOR | Innostor MPTool Innostor 917 LFA MP Tool |
| PHISON | UPTool UP19_CTool UP21_CTool UP23_CTool |
| SILICON GO | KingStore Manufacture Tool SiliconGo MPTools SiliconGo MPTool2 |
| SKYMEDI | SK6221 MPTool |
| SMI | Dyna Mass Storage Production Tool |
| СТАТЬИ НА ТЕМУ ECC-КОРРЕКЦИИ | ||
|---|---|---|
| ECC значения для контроллёров Alcor с DownGrade памятью | 2015 | |
| Настройка ECC у контроллёров Silicon Motion (SMI) | 2015 | |
Для ваших вопросов, на проекте USBDev существует форум – FORUM.
Память с кодом исправления ошибок (ECC) — это тип оперативной памяти, обнаруживаемой на рабочих станциях и серверах. Его ценят профессионалы и компании, обладающие критически важными данными, за способность автоматически обнаруживать и исправлять ошибки памяти, что позволяет бороться с повреждением данных.
Предполагается также, что это приведет к меньшему количеству сбоев сервера / рабочей станции в памяти, не относящейся к ECC, что сделает его действительно привлекательным для ИТ-специалистов и предприятий, в том числе финансовых учреждений и компаний , предоставляющих общедоступные облачные сервисы , где повреждение данных и простои являются катастрофическими последствиями.
ECC памяти против не-ECC память
Физически ECC-память отличается от не-ECC-памяти (например, используемой в ОЗУ потребительского компьютера / настольного компьютера) тем, что в ней 9 микросхем памяти вместо 8 (микросхемы памяти используются для хранения данных, которые отправляются в ЦПпри вызове). Бонусная микросхема памяти ECC RAM используется для обнаружения и исправления ошибок среди других восьми микросхем памяти.
Предоставлено: системы Puget Systems,работающие с ECC-памятью, должны давать сбой меньше. В 2014 годуPuget Systemsпровела тесты и обнаружила, что в памяти ECC частота отказов составила 0,09%, а в не-ECC — 0,6%.
Что поддерживает память ECC?
ECC предназначена для рабочих нагрузок корпоративного уровня, поэтому большинство системных плат для ПК не поддерживают ECC RAM или используют ее без функции ECC. Чтобы на самом деле воспользоваться преимуществами памяти ECC, вам понадобится материнская плата уровня рабочей станции / сервера. Память ECC также дороже, чем не-ECC RAM, из-за ее дополнительной микросхемы памяти.
Опять же, память ECC предназначена для рабочих станций и серверов корпоративного уровня. Таким образом, для поддержки памяти ECC необходим такой же мощный процессор. Для процессоров Intel только линейка Xeon поддерживает ECC, пытаясь отличить процессоры уровня энтузиастов от процессоров уровня предприятия. Между тем, ядро AMD — обильная линия Threadripper поддерживает память ECC.
Недостатки памяти ECC
Возможно, удивительно, что ECC RAM на ощупь медленнее, чем не-ECC RAM, так как для проверки ошибок требуется дополнительное время. В том же исследовании 2014 года, которое цитировалось выше, обнаружили, что ОЗУ ECC было на 0,25% медленнее, чем ОЗУ без ECC, а ОЗУ с зарегистрированным ECC было на 0,44% медленнее (однако они определили разницу в производительности в пользу не-ECC «крошечной»).
Как работает память ECC?
Код исправления ошибок — это математический процесс, который обеспечивает правильность данных, хранящихся в памяти. В случае ошибки ECC также позволяет системе воссоздавать правильные данные в режиме реального времени.
ECC использует более продвинутую форму контроля четности, которая представляет собой метод использования одного бита данных (бит четности) для обнаружения ошибок в больших группах данных, таких как типичные восемь бит данных, используемые для представления значений в памяти компьютера. система. К сожалению, хотя бит четности позволяет системе обнаружить ошибку, он не предоставляет достаточно информации для исправления ошибки данных.
Большинство вычислительных систем перемещают данные большими блоками по 64 бита (называемые «словом»). Вместо генерации одного дополнительного бита четности для каждых восьми битов данных, ECC генерирует семь дополнительных битов на 64 бита данных. Система выполняет сложный математический алгоритм на дополнительных семи битах данных, чтобы гарантировать, что остальные 64 бита являются правильными. В случае, если один бит неверен (однобитовая ошибка), алгоритм ECC может восстановить данные, но он может только уведомить систему о более крупных ошибках (два или более бит).
Зарегистрированная / буферизованная память
Память ECC не всегда регистрируется / буферизируется. Однако вся зарегистрированная память является ECC-памятью.
ECC RAM часто использует зарегистрированную, или буферизованную, память. Зарегистрированная память использует «регистр», который расположен между оперативнойпамятью системы и контроллером памяти. Это снижает нагрузку на контроллер памяти, а также позволяет использовать больше модулей ОЗУ, чем было бы в противном случае.
Что такое память ECC?
Для серверов в компаниях и центрах обработки данных крайне важно минимизировать
ошибки в данных, и это является целью памяти ECC (Error Correcting Code).
ECC — это метод обнаружения, а затем исправления однобитовых ошибок памяти.
Существует два типа однобитовых ошибок памяти: жесткие ошибки и программные ошибки.
Серьезные ошибки вызваны физическими факторами, такими как чрезмерное изменение
температуры, напряжение напряжения или физическое напряжение, воздействующее на биты
памяти.
Мягкие ошибки возникают, когда данные записываются или считываются не так, как
первоначально предполагалось, например, изменения напряжения на материнской плате,
космические лучи или радиоактивный распад, что может привести к переворачиванию битов в
памяти. Поскольку биты сохраняют свое запрограммированное значение в форме
электрического заряда, помехи этого типа могут изменять заряд бита памяти, вызывая ошибку.
На серверах существует множество мест, где могут возникать ошибки: на накопителе, в ядре
ЦП, через сетевое соединение и в различных типах памяти.
Для рабочих станций и серверов, где необходимо избежать ошибок, повреждения данных и /
или сбоя системы любой ценой, например, в финансовом секторе, память ECC часто является
предпочтительной памятью.
Вот как работает память ECC.
В вычислениях данные принимаются и передаются через биты —
наименьшую единицу данных в компьютере — которые выражаются в двоичном коде с
использованием единицы или нуля.
Когда биты группируются вместе, они создают двоичный код, или «слова», которые
представляют собой единицы данных, которые адресуются и перемещаются между памятью и
процессором. Например, 8-битный двоичный код — 10110001
В памяти ECC есть дополнительный бит ECC, который известен как бит четности. Этот
дополнительный бит четности заставляет двоичный код считывать 101100010, где последний
ноль является битом четности и используется для идентификации ошибок памяти. Если сумма
всех 1 в строке кода является четным числом (не включая бит четности), то строка кода
называется четной четностью. Безошибочный код всегда имеет четную четность. Однако
четность имеет два ограничения: она способна обнаруживать только нечетные числа ошибок
(1, 3, 5 и т. Д.) И позволяет передавать четные числа ошибок (2, 4, 6 и т. Д.). Четность также не
может исправлять ошибки — она только способна их обнаруживать. Вот где ECC память вступает
в игру.
Память ECC использует биты четности для хранения зашифрованного кода при записи данных
в память, и код ECC сохраняется одновременно. Когда данные считываются, сохраненный код
ECC сравнивается с кодом ECC, который был сгенерирован во время чтения данных. Если
прочитанный код не соответствует сохраненному коду, он дешифруется битами четности,
чтобы определить, какой бит был ошибочным, и этот бит немедленно исправляется. Таблицы
синдрома — это математический способ определения этих битовых ошибок и их исправления.
Когда данные обрабатываются, память ECC постоянно сканирует код по специальному
алгоритму для обнаружения и исправления ошибок в однобитовой памяти.
В критически важных отраслях, таких как финансовый сектор, память ECC может иметь
огромное значение. Представьте, что вы редактируете конфиденциальную информацию о
клиенте, а затем обмениваетесь этими данными с другими финансовыми учреждениями.
Когда вы отправляете данные, скажем, двоичная цифра переворачивается из-за электрических
помех.
Двоичный код, который получит другое финансовое учреждение, может быть 100100011,
который передает информацию, отличную от той, которую вы изначально предполагали, — это
ошибка. Третья цифра была переключена с 1 на 0 из-за электрических помех. Таким образом,
сумма первых восьми битов теперь составляет 3, что даже не является четностью, а это
означает, что отправленные вами конфиденциальные данные могут быть повреждены (или
ваша система подвержена риску сбоя системы). Однако, если установлена память ECC, она
сможет обнаружить ошибку и исправить ее, изменив третью двоичную цифру обратно на 1
(исходный код).
Обнаруживая и исправляя однобитовые ошибки, память сервера ECC помогает сохранить
целостность ваших данных, предотвратить повреждение данных и предотвратить сбои и сбои
системы.


