Самоконтролируюшийся "фибоначчиевый" модуль

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

Например, при выполнении микрооперации "свертки" над кодовой комбинации 011 ("причина") мы получаем новую кодовую комбинацию 100 ("результат"), который является необходимым условием для выполнения микрооперации "развертки". Это означает это, правильное выполнение "свертки" приводит к условию для выполнения "развертки". Аналогично правильное выполнение "развертки" приводит к условию "свертки". Из этого рассуждения вытекает, что микрооперации "свертка" и "развертка" являются взаимно контролируемыми!

Рассмотрим другие микрооперации с этой точки зрения. Результатом правильного выполнения микрооперации "перемещение" является комбинация . Кодовые комбинации и являются "ошибочными" для "перемещения". Микрооперация "поглощение" является правильной, если мы получаем в качестве результата кодовую комбинацию . Кодовые комбинации и являются "ошибочными" для "поглощения".

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

Проверка "записи" информации в регистр выполнятся посредством сравнения выходной информации регистра после "записи" с входной информацией регистра.

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

Блок-схема "фибоначчивого" модуля для реализации правила "причина-следствие" показана на Рис.1. Модуль на Рис. 1 состоит из "информационного" и "контрольного" регистров, которые связаны с помощью логических схем "cause" ("причина") и "effect" ("следствие"). Кодовая информация, поступающая в информационный регистр, анализируется логической схемой "cause" ("причина").

Блок-схема 'фибоначчиевого' модуля для реализации принципа 'причина-следствие'
Рисунок 1. Блок-схема "фибоначчиевого" модуля для реализации принципа "причина-следствие".

Предположим, что мы должны выполнять микро операцию "свертки" над кодовой комбинацией в информационном регистре. Пусть триггеры Tk-1, Tk, Tk+1 информационного регистра находиться в состоянии 011, то есть условие "свертки" для этой группы триггеров выполняется. Тогда, логическая схема "cause" ("причина") (логическая схема "свертки" для рассматриваемого примера) приводит к записи двоичной 1 в соответствующий триггер Tk контрольного регистра. Записанная двоичная 1 приводит к инвертированию триггеров Tk-1, Tk, Tk+1 информационного регистра через цепь обратной связи, то есть их новое состояние есть: 100. Это означает, для этой группы триггеров выполняется условие "развертки". После этого логическая схема "effect" ("следствие") (логическая схема "развертки" для рассматриваемого примера) анализирует состояние триггеров Tk-1, Tk, Tk+1 информационного регистра и переключает тот же самый триггер Tk контрольного регистра в исходное состояние 0. Переключение триггера Tk контрольного регистра в исходное состояние 0 подтверждает, что "причина" (011) соответствует "результату" (100), то есть микрооперация "свертка" выполнена корректно.

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

Наиболее важное преимущество контрольного принципа "причина - следствие", который реализован в "фибоначчиевом" модуле на Рис. 1, состоит в том, что обнаружение ошибки осуществляется в момент ее появления. Исправление ошибки в микрооперации осуществляется повторением этой микрооперации.

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

Рассмотренный выше принцип "причина-следствие" был положен в основу самоконтролирующегося "фибоначчиевого" модуля, который был реализован в виде "большой интегральной схемы" (БИС). Модуль выполнял следующие микрооперации: запись, чтение, свертка, развертка, перемещение, поглощение, "фибоначчевое" сложение, вычитание, приведение к минимальной форме, циклический сдвиг, конъюнкция, дизъюнкция, сложение по модулю 2. Наличие контрольного выхода "Ошибка" является важным преимуществом "фибоначчиевого" модуля. Если на контрольном выходе модуля формируется двоичный сигнал 1 (наличие "ошибки"), то все информационные выходы модуля блокируются. Чтобы исправить "ошибку", необходимо повторить предшествующую микрооперацию. Если при повторении на контрольном выходе возникает двоичный сигнал 0 (отсутствие "ошибки"), то это означает, что "ошибка" возникла в результате "случайного сбоя", и блокирование информационных выходов снимается. Если при повторении микрооперации двоичный сигнал 1 снова появляется на выходе "ошибка", это означает, что "ошибка" является следствием отказа в модуле и блокирование информационных выходов остается.

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

В настоящее время информатика вступила в период активного использования современных криптографических систем. Много криптографических систем основаны на вычислениях в очень больших конечных полях. Аппаратная реализация таких вычислительных модулей или процессоров требует тысяч логических вентилей. Очень сложно и дорогостояще разработать такие типы процессоров, которые всегда выдает результаты, свободные от ошибок. Это означает это, проблема разработки процессоров для достоверных вычислений - это очень важная проблема проектирования достоверных криптографических систем.

Что Вы должны делать, если этот проект Вас заинтересует? Первый шаг - вступить в контакт с нами! И мы готовы сотрудничать с Вами в практической реализации помехоустойчивого Фибоначчи-процессора! Эта идея имеет будущее! И мы надеемся на сотрудничестве с Вами!

Но существует ряд других интересных приложений "фибоначчиевых" и "золотых" кодов. Если Вы - специалист в измерительной области, Вы можете заинтересоваться "золотыми" аналого-цифровыми и цифро-ананлоговыми преобразователям и другими "фибоначчиевыми" устройствам. И мы расскажем вам относительно новых "фибоначчиевых" разработок на следующих страницах нашего Музея. Вы можете получить более подробную информацию относительно помехоустойчивых Фибоначчи-процессоров и различных "фибоначчиевых" устройств, если Вы сможете прочитать статьи, опубликованные в брошюре "Помехоустойчивые коды: Фибоначчи-компьютер" (1989).

Брошюра 'Помехоустойчивые коды: Фибоначчи-компьютер' (1989)

А дальше мы расскажем о драматической истории внедрения "фибоначчиевых" устройств в бывшем СССР. Следуйте за нами!