Voldemara
Понял, спасибо!
Вопрос снят.
Понял, спасибо!
Вопрос снят.
Что такое "ECC" и "модули ECC"?
ECC обычно расшифровывается как Error Checking and Correction, существуют и другие версии, но смысл заключается в том, что речь идет о схеме обнаружения И ИСПРАВЛЕНИЯ ошибок в памяти. За счет чего удается добиться таких потрясающих результатов? Идея, лежащая в основе метода, довольно проста - пусть каждый бит основной памяти входит БОЛЕЕ ЧЕМ В ОДНУ контрольную сумму. Это потребует увеличения числа контрольных бит (напомним - стандартный метод контроля четности реально не требует более 1 контрольного бита на всю шину), но даст возможность восстанавливать позицию (а, следовательно, и значение) сбойного бита по позициям несошедшихся контрольных сумм. Предполагается, что контроллер памяти самостоятельно восстанавливает это значение, не прерывая работу всей системы (хотя разумно при этом генерировать системное сообщение об исправленной ошибке, чтобы владелец системы, если такие сообщения повторяются, мог принять меры по замене памяти, не дожидаясь более значительных сбоев).
Попробуем пояснить на простейшем примере. Представим себе шину из 6 (почему бы и нет?) бит (1-6), имеющую дополнительно 4 контрольных бита S1-S4, причем в этих битах хранятся следующие контрольные суммы:
S1 - 1, 2, 3
S2 - 1, 4, 5
S3 - 2, 4, 6
S4 - 3, 5, 6
Предположим, что в одном из основных бит произошла ошибка, и посмотрим, ошибку в каких контрольных суммах это вызовет:
1 - S1, S2
2 - S1, S3
3 - S1, S4
4 - S2, S3
5 - S2, S4
6 - S3, S4
То есть по номерам сбойных контрольных сумм сбойный бит определяется однозначно! Для построения данной схемы использовалась картинка, на которой основные биты располагаются над главной диагональю квадратной матрицы со стороной, равной числу контрольных сумм, и каждый бит входит в контрольные суммы с номером соответствующей строки и столбца этой матрицы. Нетрудно видеть, что такая схема позволяет с помощью n контрольных сумм "проконтролировать" до n(n-1)/2 основных бит. 4 контрольные суммы на 6 бит, конечно, выглядят очень щедро, но при увеличении ширины основной шины требуемое количество контрольных бит растет всего лишь как (примерно) квадратный корень из нее, так что при достаточно широких шинах потребность в контрольных битах относительно низка.
Отметим сразу, что нарисованная схема нежизнеспособна по ряду причин. Предположим, что простой сбой в контрольном бите система может проигнорировать (так как в этом случае не сойдется лишь одна контрольная сумма). Но рассмотрим, например, двойную ошибку - скажем, одновременно в битах 1 и 2. Легко видеть, что результатом будет расхождение в контрольных суммах S2 и S3, что будет проинтерпретировано как ошибка в бите 4. Аналогично неверную интерпретацию вызовет ошибка в любых двух битах, неважно, основных или контрольных. В действительности большинство схем ECC обеспечивает как минимум обнаружение двойной ошибки (с последующей остановкой системы). Автор не может привести никакую реализованную в действительности схему ECC, но склонен полагать, что уже из приведенного примера видно, что никаких чудес здесь нет, причем реализовать "истинный" ECC можно примерно на том же количестве "лишних" бит (порядка квадратного корня из удвоенной ширины шины). Можно, например, подумать о схеме, в которой основные биты не записываются вообще - только набор сумм (слово "контрольных" тут не очень подходит), из которых при чтении и восстанавливаются основные биты (а за счет избыточности - детектируются ошибки). Реально ECC реализовывалось практически только на 64-битной шине памяти (даже на машинах с 32-битной основной шиной), причем ранние реализации требовали до 16 контрольных бит, современные же схемы обходятся восемью.
Модуль ECC - несколько менее однозначное, чем модуль с четностью, понятие, что произошло в силу ряда исторических причин, основной из которых было в свое время отсутствие стандарта на контроллеры ECC, а, стало быть, и на модули, в них применяющиеся. Ознакомьтесь с двумя отдельными вопросами, посвященными ECC SIMM и ECC DIMM.
ECC DDR
Sumsung - самая надежная!
Можно ли ставить дополнительную память с более высокой тактовой частотой?
Можно ли использовать более дешевую?
Предыдущая тема: Проблема при работе с Compex DS2216