Партнерка на США и Канаду по недвижимости, выплаты в крипто
- 30% recurring commission
- Выплаты в USDT
- Вывод каждую неделю
- Комиссия до 5 лет за каждого referral
Сначала определим требуемую длину корректирующего кода. В соответствии с рис., на вход схемы сравнения поступают два К-разрядных значения. Сравнение производится путем поразрядной операции «исключающее ИЛИ» (сложение по модулю 2) над входными кодами. Результатом является так называемое слово синдрома. В зависимости от того, было ли совпадение входных кодов или нет, соответствующий бит синдрома будет равен 0 или 1.
Слово синдрома состоит из К разрядов, то есть его возможные значения лежат в диапазоне от 0 до 2К - 1. Значение 0 соответствует случаю, когда ошибки не обнаружено, остальные 2К — 1 случая свидетельствуют о наличии ошибки и указывают на ее местоположение.
Поскольку ошибка может возникнуть в любом из М битов данных или К контрольных битов, мы должны иметь 2к - 1 > М + К. Это выражение позволяет определить число битов, необходимое для исправления одиночной ошибки в М-разрядных данных. В нашем примере, для 8-разрядных слов требуется четыре корректирующих разряда.
Для удобства будем формировать четырехразрядный синдром со следующими характеристиками:
- Если синдром содержит все нули, значит, не обнаружено ни одной ошибки.
- Если синдром содержит единственную единицу в одном из разрядов, это означает, что выявлена ошибка в одном из четырех корректирующих разрядов и никакой коррекции не требуется.
- Если в синдроме в единичное состояние установлены несколько битов, то численное значение синдрома соответствует позиции ошибки в данных, для исправления которой необходимо инвертировать бит в этой позиции (нумерация с единицы!).
Для поддержания этих свойств под контрольные разряды отводятся те биты, чьи позиционные номера представляют собой степень числа 2 (табл. 2). Отдельный контрольный разряд отвечает за определенные биты данных. Так, разрядная позиция п контролируется теми битами Рi, которые делают справедливым соотношение
= п. Например, разряд данных с позиционным номером контролируется битами 4, 2 и 1 (7 = 4 + 2 + 1), а разряд с номером 1битами 8 и 2 (10 = 8 + 2).
Таблица 2. Распределение разрядов 12-разрядного слова между данными и контрольным кодом
Десятичный номер позиции | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 |
Двоичный код номера позиции | 1100 | 1011 | 1010 | 1001 | 1000 | 0111 | 0110 | 0101 | 0100 | 0011 | 0010 | 0001 |
Биты данных | D8 | D7 | D6 | D5 | D4 | D3 | D2 | D1 | ||||
Контрольные биты | Р8 | Р4 | Р2 | Р1 | ||||||||
Таким образом, для рассматриваемого случая значения контрольных разрядов вычисляются по следующим правилам:

![]()
![]()
![]()
Проверим корректность такой схемы на примере. Пусть входной код равен . Контрольные разряды вычисляются следующим образом:

![]()
![]()
![]()
Предположим, что данные в бите 3 содержат ошибку и там вместо 0 находится 1. После пересчета контрольных разрядов имеем

![]()
![]()
![]()
Путем сложения по модулю двух результатов старой и новой проверок получим слово синдрома (S8S4S2S1) =0110.
Результат 01означает, что в разряде 6, содержащем третий бит данных, присутствует ошибка.
Описанный код называется кодом с исправлением одиночной ошибки (SEC — Single Error Correcting). В большинстве микросхем памяти используется код с исправлением одиночной и обнаружением двойной ошибки (SECDED — Single Error Correcting, Double Error Detecting). Такой код требует одного дополнительного контрольного разряда, который вычисляется путём суммирования по модулю 2 всех остальных контролирующих разрядов (формируемых по принципам, изложенным выше) и разрядов данных. Анализ ошибки ведётся по табл. 3:
Таблица 3. Обнаружение ошибок с использованием кода SECDED
Синдром | Доп. контр. разряд | Тип ошибки | Примечания |
0 | 0 | Ошибки нет | |
≠0 | 1 | Одиночная ошибка | Корректируемая: синдром указывает на позицию искаженного разряда |
≠0 | 0 | Двойная ошибка | Неисправимая |
0 | 1 | Ошибка в доп. контрольном разряде | Искажен доп. контрольный разряд, и он может быть откорректирован |
33)Аппаратные методы контроля арифметических и логических операций.
При аппаратном контроле вводится избыточность – дополнительные разряды, используемые для контроля. Аппаратный контроль может осуществляться следующим образом (ОР – основные разряды, КР – контрольные разряды):

Классическая схема свертки:
F = G. 2) сопоставление – на равенство.
Можно вместо КР использовать ОР – то есть, получаем дублирование (по крайней мере, это один из возможных режимов). Если идет речь об обнаружении и исправлении ошибок, то дублирование не спасет.
В основе корректирующих кодов лежит следующая идея. Для контроля двоичного информационного кода длиной М бит добавим к ней К дополнительных контрольных разрядов. В этом случае из возможных N = 2М"К комбинаций интерес представляют только L = 2м последовательностей, которые называют: разрешенными. Оставшиеся N - L последовательностей назовем запрещенными. Если при обработке (записи в память, считывании или передаче) разрешенной кодовой последовательности произойдут ошибки и возникнет одна из запрещенных последовательностей, то тем самым эти ошибки обнаруживаются. Если же ошибки превратят одну разрешенную последовательность в другую, то такие ошибки не могут быть обнаружены. Благодаря свойствам контрольных разрядов, характерным для конкретных методов контроля, в некоторых случаях возможно определить не только наличие, но и местоположение ошибки, а также произвести её коррекцию.
Простейший вид корректирующего кода основан на добавлении к каждому байту информации одного бита паритета. Бит паритета — это дополнительный бит, значение которого устанавливается таким, чтобы суммарное число единиц в данных, с учетом этого дополнительного разряда, было четным (или нечетным). При чтении из памяти вычисляется бит паритета для считанных информационных битов, результат сравнивается с битом паритета, вычисленным при записи и хранившимся в памяти. Метод позволяет обнаружить ошибку, если исказилось нечетное количество битов, при четном числе ошибок метод неработоспособен. Данный метод позволяет только обнаруживать ошибки, причём местоположение ошибки остаётся неизвестным.
Более эффективным представляется код, предложенный Ричардом Хэммингом и носящий его имя (код Хэмминга).
В качестве иллюстрации использования данной концепции, приведём код, обнаруживающий и исправляющий однобитовые ошибки в 8-разрядных словах.
Сначала определим требуемую длину корректирующего кода. В соответствии с рис., на вход схемы сравнения поступают два К-разрядных значения. Сравнение производится путем поразрядной операции «исключающее ИЛИ» (сложение по модулю 2) над входными кодами. Результатом является так называемое слово синдрома. В зависимости от того, было ли совпадение входных кодов или нет, соответствующий бит синдрома будет равен 0 или 1.
Слово синдрома состоит из К разрядов, то есть его возможные значения лежат в диапазоне от 0 до 2К - 1. Значение 0 соответствует случаю, когда ошибки не обнаружено, остальные 2К — 1 случая свидетельствуют о наличии ошибки и указывают на ее местоположение.
Поскольку ошибка может возникнуть в любом из М битов данных или К контрольных битов, мы должны иметь 2к - 1 > М + К. Это выражение позволяет определить число битов, необходимое для исправления одиночной ошибки в М-разрядных данных. В нашем примере, для 8-разрядных слов требуется четыре корректирующих разряда.
Для удобства будем формировать четырехразрядный синдром со следующими характеристиками:
- Если синдром содержит все нули, значит, не обнаружено ни одной ошибки.
- Если синдром содержит единственную единицу в одном из разрядов, это означает, что выявлена ошибка в одном из четырех корректирующих разрядов и никакой коррекции не требуется.
- Если в синдроме в единичное состояние установлены несколько битов, то численное значение синдрома соответствует позиции ошибки в данных, для исправления которой необходимо инвертировать бит в этой позиции (нумерация с единицы!).
Для поддержания этих свойств под контрольные разряды отводятся те биты, чьи позиционные номера представляют собой степень числа 2 (табл. 2). Отдельный контрольный разряд отвечает за определенные биты данных. Так, разрядная позиция п контролируется теми битами Рi, которые делают справедливым соотношение
= п. Например, разряд данных с позиционным номером контролируется битами 4, 2 и 1 (7 = 4 + 2 + 1), а разряд с номером 1битами 8 и 2 (10 = 8 + 2).
Таблица 2. Распределение разрядов 12-разрядного слова между данными и контрольным кодом
Десятичный номер позиции | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 |
Двоичный код номера позиции | 1100 | 1011 | 1010 | 1001 | 1000 | 0111 | 0110 | 0101 | 0100 | 0011 | 0010 | 0001 |
Биты данных | D8 | D7 | D6 | D5 | D4 | D3 | D2 | D1 | ||||
Таким образом, для рассматриваемого случая значения контрольных разрядов вычисляются по следующим правилам:
P_1=D_1⊕D_2⊕D_4⊕D_5⊕D_7
P_2=D_1⊕D_3⊕D_4⊕D_6⊕D_7
P_4=D_2⊕D_3⊕D_4⊕D_8
P_8=D_5⊕D_6⊕D_7⊕D_8
Проверим корректность такой схемы на примере. Пусть входной код равен . Контрольные разряды вычисляются следующим образом:
P_1=D_1⊕D_2⊕D_4⊕D_5⊕D_7=1⊕1⊕1⊕0⊕0=1
P_2=D_1⊕D_3⊕D_4⊕D_6⊕D_7=1⊕0⊕1⊕1⊕0=1
P_4=D_2⊕D_3⊕D_4⊕D_8=1⊕0⊕1⊕0=0
P_8=D_5⊕D_6⊕D_7⊕D_8=0⊕1⊕0⊕0=1
Предположим, что данные в бите 3 содержат ошибку и там вместо 0 находиnся 1. После пересчета контрольных разрядов имеем
P_1=D_1⊕D_2⊕D_4⊕D_5⊕D_7=1⊕1⊕1⊕0⊕0=1
P_2=D_1⊕D_3⊕D_4⊕D_6⊕D_7=1⊕1⊕1⊕1⊕0=0
P_4=D_2⊕D_3⊕D_4⊕D_8=1⊕1⊕1⊕0=1
P_8=D_5⊕D_6⊕D_7⊕D_8=0⊕1⊕0⊕0=1
Путем сложения по модулю двух результатов старой и новой проверок получим слово синдрома (S8S4S2S1) =0110.
Результат 01означает, что в разряде 6, содержащем третий бит данных, присутствует ошибка.
Описанный код называется кодом с исправлением одиночной ошибки (SEC — Single Error Correcting). В большинстве микросхем памяти используется код с исправлением одиночной и обнаружением двойной ошибки (SECDED — Single Error Correcting, Double Error Detecting). Такой код требует одного дополнительного контрольного разряда, который вычисляется путём суммирования по модулю 2 всех остальных контролирующих разрядов (формируемых по принципам, изложенным выше) и разрядов данных. Анализ ошибки ведётся по табл. 3:
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 |


