Topic ECC from HARDW FAQ base
Пожалуйста, обратите внимание на дату представленного здесь сообщения! Информация об адресах, телефонах, организациях и людях наверняка устарела и потеряла практическую ценность, обретя, однако, ценность историческую, заради которой до сих пор и хранится...
— SU.HARDW.PC.CPU (2:5020/299) —————————————————————————————— SU.HARDW.PC.CPU — From : Sergei Frolov 2:5030/219.9 Fri 02 Feb 96 11:19 Subj : P6: ECC 7 бит - объяснение ———————————————————————————————————————————————————————————————————————————————— ET> А как ты пpоводил pасчеты ??? ET> IMHO 8b малова то чтобы найти две и испpавить одну ошибку в 64b. Объясняю. Исходное число будем кодировать в линейный код с минимальным расстоянием 3. Минимальное расстояние - число, показывающее, насколько бит одно число отличается друг от друга (когда много чисел - берется минимальное в случае каждое с каждым). Hапример, минимальное расстояние между числом 1 и 2 (01 и 10) равно двум, между 5 и 8 (0101 и 1000) - трем. Если минимальное расстояние равно трем, то из второго примера видно, что если произошла ошибка в одном разряде, то специальными методами с помощью построения синдрома можно ее исправить. То есть если в канал передаются ТОЛЬКО пятерки и восьмерки, то при одиночной ошибке мы ее исправляем, а некоторые двойные - обнаруживаем. Hапример, мы можем передавать числа 4 (00100), A (01010), 17 (10111), 19 (11001). В этом случае минимальное расстояние равно 3 (можно проверить). Пусть мы передали четверку (00100). Вариант 1: приняли число (10100) - одиночная ошибка. Видно, что принятое число скорее подойдет к четверке (00100) - находим минимальное расстояние между этим числом и ими всеми. Исправляем. Вариант 2: приняли число (11100) - двойная ошибка. Подсчитав, получаем, что минимальное расстояние со всеми словами равно двум. Значит, фиксируем ошибку. Вариант 3: приняли число (10110) - двойная ошибка. Подсчитав, получаем, что минимальное расстояние с числом (10111) равно ЕДИHИЦЕ. В этом случае так как мы считаем, что одиночную ошибку можем исправить, то исправляем ошибочно. У нас же есть произвольные символы, с минимальным расстоянием равным единице. Чтобы расширить их до минимального расстояния 3, то необходимо расширить исходные числа. Hапример, если передаются любые два бита, то до минимального расстояния 3 их можно расширить, добавив три бита по формуле: бит a3 = a1, a4 = a1 + a2, a5 = a2. Тогда можно закодировать числа, состоящие из двух бит: 00 -> 00000, 01 -> 01011, 10 -> 10110, 11 -> 11101. Первые два символы называются информационными K, добавляемые три - проверочные R. Аналогично происходит раскодирование. А формула, по которой определяется количество информационных и проверочных символов выглядет так: R-1 R 2 - R <= K < 2 - 1 - R Для Pentiumа pro получаем, что при R = 7, K может быть до 120 бит. При R = 8 - то же не получается. Вот я и спрашиваю, зачем им еще одна линия? Sergei --- GoldED 2.50.Beta5+ * Origin: Lautenaus BBS (2:5030/219.9)
Return to the main HARDW FAQ page