Реклама:

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

Коды коррекции ошибок (Error Correcting Code — ЕСС) позволяют не только обнаружить ошибку, но и исправить ее в одном разряде. Поэтому компьютер, в котором используются подобные коды, в случае ошибки в одном разряде может работать без прерывания, причем данные не будут искажены. Коды коррекции ошибок в большинстве ПК позволяют только обнаруживать, но не исправлять ошибки в двух разрядах. В то же время приблизительно 98% сбоев памяти вызвано именно ошибкой в одном разряде, т.е. она успешно исправляется с

помощью данного типа кодов. Данный тип ЕСС получил название SEC-DED (эта аббревиатура расшифровывается как "одноразрядная коррекция, двухразрядное обнаружение ошибок"). В кодах коррекции ошибок этого типа для каждых 32 бит требуется дополнительно семь контрольных разрядов при 4-байтовой и восемь — при 8-байтовой организации (64-разрядные процессоры Athlon/Pentium). Реализация кода коррекции ошибок при 4-байтовой организации, естественно, дороже обычной проверки четности, но при 8-байтовой организации их стоимости равны, поскольку требуют одного и того же количества дополнительных разрядов.

По этой причине можно купить для 32-разрядных систем модули SIMM (36 бит), DIMM (72 бит) или RIMM (18 бит) и использовать их в режиме ЕСС, если коды коррекции ошибок поддерживаются набором микросхем системной логики. Если в системе используются модули SIMM, можно сформировать банк памяти (72 бит) из двух 36-разрядных модулей и ЕСС использовать на уровне банка. Если в системе используются модули DIMM, то в качестве банка может выступать один 72-разрядный модуль, обеспечивая необходимое количество дополнительных битов памяти. В случае использования модулей RIMM для организации проверки четности следует отдать предпочтение их 28-разрядным версиям.

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

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


⇐ Предыдущая страница| |Следующая страница ⇒