Контроль "базовых микроопераций"

Оценим теперь потенциальную возможность "базовых микроопераций" для обнаружения ошибок, которые могут возникнуть при их выполнении.

Известно, что потенциальный коэффициент обнаружения ошибок - это отношение числа всех обнаруживаемых ошибок к числу всех возможных ошибок. Попытаемся объяснить сущность процесса обнаружения ошибок на примере микрооперации "свертки":

011 ® 100.(1)

Микрооперация "свертка" (1) выполняется над трехразрядной кодовой комбинацией (1). В общем случае существует 2n = 8 возможных перехода при выполнении микрооперации (1). Один из них, а именно переход (1) является "корректным" переходом. Кодовые комбинации

{011, 100}(2)

участвующие в "корректном" переходе (1) называются "разрешенными" кодовыми комбинациями. Остальные кодовые комбинации

{000, 001, 010, 101, 110, 111}(3)

называются "запрещенными" кодовыми комбинациями.

Идея обнаружения ошибок состоит в следующем. Если в результате выполнения микрооперации (1) возникает одна из "запрещенных" кодовых комбинаций (3), этот факт сам по себе является индикатором ошибки при выполнении данной микрооперации. Заметим, что если возникает ошибочный переход в другую "разрешенную" кодовую комбинацию, то это является свидетельством "необнаруживаемой ошибки".

Рассмотрим теперь все возможные ситуации, которые могут возникнуть при выполнении микрооперации (1). Ясно, что переходы

(4)

являются "ошибочными".

Рассмотрим теперь "ошибочные" переходы (4). Мы видим, что "ошибочный" переход

011 => 011(5)

является "необнаруживаемым", поскольку кодовые комбинации (2) являются "разрешенными" для микрооперации "свертка". Рассмотрим теперь переход (5) с числовой точки зрения. Ясно, что этот "ошибочный" переход состоит в "сохранении" исходной кодовой комбинации. И если мы проанализируем этот переход с точки зрения арифметической операции, мы можем увидеть, что этот переход не разрушает числовую информацию и не влияет на конечный результат арифметической операции. Следовательно "ошибочный" переход (5) не приводит к числовой ошибке катастрофического характера. Это означает, что переход (5) является ошибочным, но эта ошибка не влияет на конечный результат вычислений. Эта ошибка только задерживает процесс обработки данных. Все остальные "ошибочные" переходы из (4) приводят к разрушению информации и, следовательно, для этого случае возникают ошибки "катастрофического характера".

Основной вывод, вытекающий из этих рассуждений, состоит в том, что множество "катастрофических" кодовых комбинаций из (4) совпадает со множеством "обнаруживаемых" кодовых комбинаций из (3). Это означает, что все "катастрофические" переходы для операции "свертка" являются обнаруживаемыми. Следовательно, из этих рассуждений вытекает, что контроль "фибоначчиевой" схемы, основанный на контроле операции "свертка" обладает "абсолютной" (то есть 100%-й) способностью обнаруживать все "катастрофические" ошибки, которые могут возникнуть при переключении триггеров, участвующих в микрооперации "свертка".

Подобный вывод можно сделать для всех "базовых микроопераций". Но реализация любого алгоритма обработки данных в Фибоначчи-процессоре сводится к выполнению определенной последовательности "базовых микроопераций". Так как контроль "фибоначчиевых" схем или блоков, основанный на "фибоначчиевых" микрооперациях", обладает "абсолютной" ошибкообнаруживающей способностью, из рассмотренной выше "фибоначчиевой" арифметики вытекает возможность разработки арифметических самоконтролирующихся Фибоначчи-процессоров, обладающих "абсолютной" ошибкообнаруживающей способностью по отношению к "катастрофическим" ошибкам, которые могут возникнуть в Фибоначчи-процессоре при переключении триггеров. Этот факт дает нам право назвать такой Фибоначчи-процессор помехоустойчивым.

Таким образом, мы, наконец, поняли основное преимущество "помехоустойчивой" фибоначчиевой арифметики в сравнении с классической "двоичной" арифметикой. Мы доказали, что существует возможность создать Фибоначчи-процессор для "помехоустойчивых" вычислений и что такой Фибоначчи-процессор гарантирует обнаружение всех возможных "сбоев" триггеров, возникающих при их переключениях!

И если даже вы не являетесь компьютерным специалистом, вы все же понимаете важность этой идеи для компьютерной науки. А на следующей странице нашего Музея мы расскажем о технической реализации этой заманчивой идеи. Следуйте за нами!