ECC (Error correcting code, код исправление ошибок)Раздел: ПамятьКраткое описание: Более совершенный алгоритм, чем по контролю четности, поиска ошибок при передаче данных. Каждый бит входит более чем в одну контрольную сумму (checksum), что позволяет в случае возникновения ошибки в одном бите восстановить адрес ошибки и исправить ее. Как правило, ошибки в двух битах также детектируются, хотя и не исправляются. Метод ECC применяется при возникновении случайных ошибок, но не помогает при дефектах памяти. Подробнее:
Система памяти, в которой на каждое слово выделяются дополнительные разряды, обычно называемые "избыточными" или "контрольными", предназначенные для обнаружения и исправления большинства ошибок. Это имеет особое значение для компьютеров с объемом ОЗУ сотни мегабайт, что обычно присуще современным серверам. Например, процессор Pentium Pro обладает встроенной поддержкой памяти ЕСС, а фактическая разрядность его шины данных составляет 72 разряда, из которых 64 разряда предназначены для данных, а 8
разрядов - для кода ЕСС.
Для расчета наименьшего числа избыточных разрядов (r), которое требуется для обнаружения и исправления одноразрядных ошибок в сообщении длиной r, необходимо воспользоваться следующим уравнением:
(m + r + 1) ≤ 2’
Следовательно, к 32-разрядному слову следует добавить 6 разрядов кода ЕСС, поскольку (32 + 6 + 1) < 26. Таким образом, в каждой ячейке памяти потребуется хранить 38 разрядов. Ошибки в контрольных разрядах обрабатываются так же, как и в информационных разрядах.
Младшая цифра |
Старшая шестнадцатеричная цифра |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
0 |
Пустой символ |
|
Символ переключения |
Символ выбора цифры |
|
Символ пробела |
& |
- |
1 |
Символ начала заголовка |
Символ управления устройством 1 |
Символ начала значимости |
|
|
|
/ |
|
2 |
Символ начала текста |
Символ управления устройством 2 |
Символ разделения полей |
Символ синхронизации |
|
|
|
|
3 |
Символ конца текста |
Символ маркера ленты |
|
|
|
|
|
|
4 |
Символ перфорации |
Символ восстановления |
Символ обхода |
PN |
|
|
|
|
5 |
Символ горизонтальной табуляции |
Символ новой строки |
Символ перевода строки |
Символ разделения записей |
|
|
|
|
6 |
Символ нижнего регистра |
Символ возврата на позицию |
Символ конца передачи блока |
Символ верхнего регистра |
|
|
|
|
7 |
Символ удаления |
Холостой символ |
Символ переключения кода |
Символ конца передачи |
|
|
|
|
8 |
|
Символ отмены |
|
|
|
|
|
|
9 |
RLF |
Символ конца носителя |
|
|
|
|
|
|
A |
Символ начала передаваемого вручную сообщения |
Символ управления курсором |
Символ установки режима |
|
¢ |
! |
| |
: |
B |
Символ вертикальной табуляции |
Символ специального назначения 1 |
Символ специального назначения 2 |
Символ специального назначения 3 |
• |
$ |
, |
# |
C |
Символ перевода страницы |
Символ разделения файлов обмена |
|
Символ управления устройством 4 |
> |
* |
% |
@ |
D |
Символ возврата каретки |
Символ групп обмена |
Символ запроса |
Подтверждение отрицания |
( |
) |
- |
‘ |
E |
Символ восстановления кода записей |
Символ разделения обмена |
Символ подтверждения |
|
+ |
; |
< |
= |
F |
Символ расширения кода |
Разделитель блоков обмена |
Символ звонковой сигнализации последователь- ности |
Символ начала специальной |
| или [ |
ì или ] |
? |
" |
|
Младшая цифра |
Старшая шестнадцатеричная цифра |
8 |
9 |
A |
B |
C |
D |
E |
F |
0 |
|
|
|
|
{ |
} |
‘ |
0 |
1 |
a |
j |
|
|
A |
J |
|
1 |
2 |
b |
k |
s |
|
B |
K |
S |
2 |
3 |
c |
l |
t |
|
C |
L |
T |
3 |
4 |
d |
m |
u |
|
D |
M |
U |
4 |
5 |
e |
n |
v |
|
E |
N |
V |
5 |
6 |
f |
o |
w |
|
F |
O |
W |
6 |
7 |
g |
p |
x |
|
G |
P |
X |
7 |
8 |
h |
q |
y |
|
H |
Q |
Y |
8 |
9 |
i |
r |
z |
|
I |
R |
Z |
9 |
A |
|
|
|
|
|
|
|
|
B |
|
|
|
|
|
|
|
|
C |
|
|
|
|
|
|
|
|
D |
|
|
|
|
|
|
|
|
E |
|
|
|
|
|
|
|
|
F |
|
|
|
|
|
|
|
|
|
Для конкретной реализации, как правило, требуется семь контрольных разрядов на каждые 32 сохраняемых разряда. Этим гарантируется обнаружение и исправление всех одноразрядных ошибок, обнаружение наличия всех двухразрядных ошибок в каждом 32-разрядном слове и наличия некоторых трехразрядных и более ошибок.
В 1950 году умный малый по имени Ричард У. Хэмминг (Richard W. Hamming) придумал способ реализации памяти ЕСС с помощью теоретически минимального числа избыточных разрядов. Теперь этот алгоритм называется кодом Хэмминга (Hamming Code).
Иногда этот метод называется обнаружением и исправлением ошибок (Error Detection and Correction — ED AC).
Схема контроля четности (parity) памяти, применяемая во многих ПК, позволяет вводить лишь один разряд памяти на каждый байт и поэтому способна надежно обнаруживать лишь одноразрядные ошибки, приходящиеся на каждый байт памяти. |