Коды коррекции одиночных и обнаружения 2-х ошибок, еще называются ECC- Error Checking and Correcting. ECC- используется для памяти и при передаче данных.
50% ошибок в электронной части ЭВМ приходится на память. Современные ЭВМ очень чувствительные к внешним помехам , это вызвано очень малыми размерами транзисторов и тем, что динамическая память построена на конденсаторах.
Помехи:
1. Всплески по питанию
2. Электромагнитные излучения
3. Радиационное излучение
Поэтому для памяти, шины данных и накопителей на жестких магнитных дисках используются ECC коды. Это аппаратно - программная реализация . Это быстрое средство, не замедляющее обмен данными.
Структурная схема памяти с ECC кодами.
- ФС — формирователь контрольных разрядов.
- ФS —формирователь синдрома.
- DCS — дешифратор синдрома.
- Количество информационных разрядов-n
- Количество контрольных разрядов-k
- БКК- блок контроля и коррекции (на выходах формируется n+k разрядное
- откорректированное слово и сигналы об ошибках (1-ая или 2-ая ошибка).
Из « теории информации» известно , что вектор синдрома ошибки = произведению Н-матрицы на транспонированное считанное слово из памяти
Реализация этой теории :
Построение Н-матрицы
Правила формирования столбцов матрицы :
- 1. Нет нулевого столбца;
- 2. Все столбцы попарно различны;
- 3. В столбце нечётное число единиц.
Пожелания:
- 1. Минимум единиц в столбце (и одинаковое их количество);
- 2. Одинаковое число единиц во всех строках.
Определение min контрольных разрядов:
-Для столбцов контрольной части Н-матрицы используем коды с одной единицей.
-Информационные столбцы должны использовать от 3-х и более 1.
-Количество контрольных разрядов (строк Н-матрицы ) определяется как количество комбинаций с нечетным числом 1 (начиная с 3-х), которые позволяют выполнить правило формирования матрицы.
-Min количество контрольных разрядов к=6 для 12-разрядного информационного слова .
Заполнение Н-матрицы
Последовательно кодируются столбцы с соблюдением правил и пожеланий на формирование .
Пример :
Реализация формирователя контрольных разрядов (ФС)
Значения контрольных бит определяется.
Для С с номером строки l:
= сумме по модулю 2 значений, информационных бит имеющих 1-ы в этой строке . И это делается для всех строк.
Реализация формирователя контрольных разрядов
ФС - это линейка сумматоров по модулю 2 , реализующих выражение 1 ,
количество сумматоров = количеству контрольных разрядов.
Реализация формирователя синдрома (ФS)
= сумме по модулю 2 информационных и контрольных разрядов имеющих 1-ы в первой строке . И это делается для всех строк .
ФS -это линейка сумматоров по модулю 2 , реализующих выражение 2.
-Если вектор синдрома ошибки равен нулю, то ошибки нет.
-Если вектор синдрома ошибки содержит код с нечетным числом 1, то одиночная ошибка. Необходимо установить соответствующий синдрому столбец матрицы. Это будет код ошибочного бита.
-Если вектор синдрома ошибки четный, то это 2-ая ошибка –неисправимая.
Реализация DCS
Это линейка дешифраторов на одно состояние (столбец матрицы) в количестве n+k. Каждый дешифратор k –входовой.
Блок контроля и коррекции (БКК)
Выполняет побитное сложение по модулю 2 слова из памяти со словом с выхода дешифратора синдрома .Дешифратор синдрома своей одной “1” проинвертирует ошибку (ошибочный бит в слове)
Формирование сигналов вида ошибок(1-ая или 2-ая)
Признаком ошибки является не 0-ой синдром.
Реализуется на К555ВЖ1-65нс.