Окончание. Начало см. PC Week/RE, № 32/2002, с. 23, и № /2002, с. 40.
Итак, в предыдущей части мы остановились на том, что была выпущена микросхема, в основу которой положена арифметика Фибоначчи, построенная на так называемых “базовых микрооперациях”. Как известно, компьютерная программа реализуется с помощью процессора (ЦП), состоящего из триггеров, связанных с комбинационной логикой. Таким образом, исполнение программы сводится к переключению триггеров. К сожалению, невозможно полностью исключить ошибки, возникающие в результате неисправной работы компьютерных элементов. Но при этом необходимо различать два типа неисправностей. Первый тип называется постоянным отказом элемента, когда однажды отказавший элемент “выбывает из игры”, а второй - случайным отказом (или сбоем), когда элемент отказывает в случайные моменты времени, а остальное время работает корректно. Сбои в работе процессора возникают под влиянием различных факторов, вызываемых внешними и внутренними шумами в компьютерных элементах и их электронных цепях.
Какой вид неисправной работы наиболее характерен для электронных элементов? Установлено, что сбои в этих элементах, в частности в триггерах, возникают чаще, чем постоянные отказы. Существует два режима работы электронных элементов: 1) режим, когда элемент находится в стабильном (устойчивом) состоянии, и 2) режим переключения, когда элемент переключается из одного устойчивого состояния в другое. Экспериментально доказано, что интенсивность сбоев триггеров во втором режиме на 2-3 порядка больше, чем в первом. Отсюда вытекает, что сбои триггеров в режиме переключения являются наиболее вероятной причиной ненадежного функционирования процессоров. Вот почему проектирование самоконтролирующихся цифровых автоматов, гарантирующих эффективный контроль сбоев триггеров, - одна из важнейших проблем проектирования высоконадежных процессоров.
Таким образом, мы пришли к идее создания процессора, позволяющего обнаруживать сбои триггеров, возникающие в момент их переключения. Мы будем называть его помехоустойчивым процессором.
Суть подхода к созданию такого процессора состоит в следующем. Необходимо выбрать набор микроопераций, называемых базовыми, на основе которых может быть реализован любой алгоритм обработки информации, и затем ввести эффективную систему их схемного контроля. Покажем возможность реализации этой идеи на основе “фибоначчиевой” и “золотой” систем счисления. С этой целью рассмотрим четыре базовые микрооперации: a) свертка; б) развертка; в) перемещение; г) поглощение.
Напомним, что свертка и развертка представляют собой следующие кодовые преобразования, выполняемые в рамках одного и того же “фибоначчиевого” или “золотого” представления:
свертка:
0 1 1 -> 1 0 0
развертка:
1 0 0 -> 0 1 1
Микрооперация перемещение является двуместной микрооперацией и реализуется над одним и тем же разрядом двух регистров: верхнего регистра A и нижнего регистра B. Если регистр A имеет двоичную цифру 1 в k-м разряде, а регистр B - двоичную цифру 0 в том же самом разряде, мы можем реализовать микрооперацию перемещения. Это означает, что мы передвигаем цифру 1 из верхнего регистра A в нижний регистр B:
1 0
=
1 0
Микрооперация поглощение также является двуместной операцией и состоит в том, что две двоичные цифры 1 одного и того же разряда регистров A и B взаимно уничтожаются, то есть заменяются двоичными цифрами 0:
1 0
=
1 0
(О том, как из перечисленных микроопераций строятся операции сложения и вычитания, а также доказывается их помехозащищенность, можно узнать из полной версии статьи на сайте компьютерного музея www.computer-museum.ru. - Прим. ред.)
Мы доказали, что базовые микрооперации обладают функциональной полнотой, т. е. к ним могут быть сведены все возможные логические и арифметические операции. Следовательно, мы можем проектировать полностью помехозащищенный Ф-процессор и компьютер на основе базовых микроопераций.
К сожалению, СКТБ “Модуль” не имело специальных САПР и поэтому проектирование велось сотрудниками СКТБ с использованием САПР НПО “Научный центр” (г. Зеленоград). Там же изготовили 100 опытных образцов такой микросхемы на основе БИС КР 1801 ВП1-124.
В микросхеме была заложена возможность выполнения следующих операций: запись и чтение данных, свертка, развертка, перемещение, поглощение, приведение к минимальной форме, суммирование, вычитание, реверсивный сдвиг, логическое умножение, логическое сложение и сложение по модулю 2. Все указанные операции контролировались в соответствии с вышеуказанным принципом.
Отличительной особенностью микросхемы являлось наличие контрольного выхода, на котором формировалась информация о неправильной работе микросхемы. Одновременно с выдачей сигнала “ошибка” блокировались все информационные выходы. Если ошибка была следствием сбоя и при повторении операции сигнал “ошибка” не появлялся, то блокировка выходов снималась. Если же внутри микросхемы происходил отказ, то блокировка информационных выходов оставалась.
Таким образом, основным результатом этой разработки было создание первой в истории компьютерной техники микросхемы для реализации самоконтролирующегося процессора Фибоначчи со 100%-ной гарантией обнаружения сбоев, возникающих при переключении триггеров.
“Фибоначчиевые” система регистрации и волоконно-оптическая линия связи
В 1965 г. американский инженер Кауц (Kautz) опубликовал статью “Fibonacci Codes for Synchronization Control” в весьма престижном международном журнале IEEE Trans. IT (1965, v.11, № 2). В ней обсуждалась еще одна область весьма эффективного применения кодов Фибоначчи - управление синхронизацией кодовых сигналов в каналах связи и в цифровой магнитной записи. Это направление исследований также получило отражение в разработках СКТБ “Модуль”. Первая из них - волоконно-оптическая линия связи повышенной пропускной способности. При этом в системе использовалось два способа кодирования информации, так называемый бифазный код типа “Манчестер” и код Фибоначчи.
Приведенные ниже технические характеристики волоконно-оптических систем связи, построенных на различных системах кодирования, свидетельствуют о неоспоримых преимуществах кода Фибоначчи.
Технические характеристики волоконно-оптической системы связи:
Скорость передачи информации, Мбит/с
бифазный код 10
код Фибоначчи 20
Вероятность ошибки в канале
бифазный код 10
код Фибоначчи 10
Максимальная длина линии связи 1000
Однако наиболее широкую известность получили инженерные разработки СКТБ “Модуль” по проектированию самокорректирующихся “фибоначчиевых” аналого-цифровых и цифро-аналоговых преобразователей. Этим разработкам предшествовала большая научная работа. По тематике “фибоначчиевых” АЦП и ЦАП в тот период было защищено наибольшее число кандидатских диссертаций (Азаров, Марценюк, Петросюк, Моисеев, Стейскал, Крупельницкий). Эти исследования убедительно показали, что применение кодов Фибоначчи и “золотой” позволяет одновременно улучшить все технические параметры АЦП и ЦАП, в частности точность, быстродействие и, самое главное, температурную и временну’ю метрологическую стабильность АЦП и ЦАП.
Как известно, в АЦП и ЦАП, построенных на основе классической двоичной системы счисления, возможно появление “разрывов” передаточной характеристики, которые могут возникнуть в результате отклонения от номинальных значений резисторов двоичного делителя, реализующего веса двоичных разрядов. В “фибоначчиевых” АЦП и ЦАП “разрыв” передаточной характеристики автоматически исключается за счет многозначности Ф-представления одной и той же величины. Все “фибоначчиевые” разряды разбиваются на группу старших разрядов, отклонения которых от номинальных значений приводит к существенному влиянию на погрешность преобразования, и группу младших разрядов, незначительно влияющих на погрешность преобразования. Если теперь под влиянием технологических, температурных или временны’х факторов (старение элементов) происходят отклонения значений резисторов старших разрядов от номинальных значений, то, кодируя одну и ту же величину дважды (с включенным и выключенным старшим разрядом), по разности результатов кодирования можно определить отклонение старшего разряда от номинального значения. Если эту же процедуру выполнить для следующего по старшинству разряда, то можно также вычислить отклонение очередного старшего разряда от собственного номинального значения. Такая корректирующая процедура производится в “фибоначчиевом” АЦП перед каждым его включением, что позволяет каждый раз как бы восстанавливать его точность. Теоретические и экспериментальные исследования показали, что отклонения резистивных элементов от своих номинальных значений могут быть весьма существенными (до 23%); при этом путем коррекции погрешность АЦП и ЦАП может быть снижена в 1000 раз и более. В реальных разработках допускалась погрешность резистивных элементов в 5%, а погрешность АЦП и ЦАП при этом соответствовала 0,005% и ниже. Таким образом, в Ф-АЦП и Ф-ЦАП резко снижались требования к технологической точности изготовления резистивного делителя. Кроме того, если под влиянием температуры или старения происходили отклонения элементов резистивного делителя от номинальных значений, то они также корректировались с помощью описанной выше процедуры. В результате достигалось весьма существенное преимущество - Ф-АЦП и Ф-ЦАП оказывались нечувствительными к технологии изготовления, температуре и старению.
Свойство многозначности Ф-представления давало еще один весьма существенный эффект при борьбе с так называемыми “динамическими” погрешностями, вызванными инерционностью включения резистивных элементов, моделирующих веса разрядов. Была разработана специальная процедура кодирования, которая приводила к исключению таких динамических погрешностей. Это позволило существенно повысить тактовую частоту кодирования, что дало повышение быстродействия Ф-АЦП примерно в 5-6 раз по сравнению с двоичным АЦП, построенным на такой же элементной базе.
Было создано несколько модификаций таких АЦП и ЦАП, выпускавшихся в мелкосерийном производстве. Однако в условиях межведомственной борьбы в бывшем СССР добиться промышленного выпуска данных изделий не удалось (см. электронную версию статьи).
К сожалению, горбачевская “перестройка” привела к существенному сокращению финансирования научных разработок, которые проводились в оборонных целях. В 1989 г. МОМ СССР сообщило о прекращении финансирования работ по созданию компьютера Фибоначчи. Это привело к развалу научного и инженерного коллектива, сформировавшегося в СКТБ “Модуль”.
Теоретические исследования, однако, в данном направлении не прекратились. В последнее десятилетие автором настоящей статьи получен ряд фундаментальных результатов в развитии “фибоначчиевой” информатики и математики: разработана троичная зеркально-симметричная арифметика; развита теория матриц Фибоначчи и на этой основе предложена новая теория кодирования и криптографии.
Что делается за рубежом по “фибоначчиевому” направлению?
Необходимо отметить большой интерес американских математиков к “фибоначчиевому” направлению. Для развития теории чисел Фибоначчи в 1963 г. группа американских математиков, возглавляемая Вернером Хоггаттом, организовала математическую Фибоначчи-Ассоциацию, которая выпускает журнал The Fibonacci Quarterly и ежегодно с 1984 г. проводит международную конференцию “Fibonacci Numbers and their applications”. Все это стимулировало развитие данного направления в современной математике. И в области теории чисел Фибоначчи американская математика в настоящее время несомненно лидирует. Пожалуй, наиболее важным теоретическим достижением в области нетрадиционных систем счисления является статья американского математика Джорджа Бергмана “A number system with an irrational base” (Mathematics Magazine, 1957, № 31). В 1965 г. была опубликована статья американского инженера Кауца (Kautz W.H.) “Fibonacci codes foe synchronization control” (IEEE Trans. Inform. Theory, v.11, № 8). Эта идея была развита в СКТБ “Модуль” и киевском НПО “Маяк”.
Что касается компьютеров Фибоначчи, то здесь также имеется несколько американских публикаций, свидетельствующих о том, что работы по этому направлению в США проводились. В статье “Minimal and maximal Fibonacci Representations: Boolean Generation”, опубликованной P. Monteiro и R. Newcomb (University of Maryland) в журнале The Fibonacci Quarterly (1976, v. 14, № 1), описывается устройство для приведения кода Фибоначчи к минимальной форме, которое стало предметом советского патентования примерно в то же время. В статье отмечается, что эта работа была поддержана отделом научных исследований ВВС США в соответствии с грантом AFOSR 70-1910, откуда следует, что эта разработка проводилась в военных целях. Характерна статья “Multilevel Fibonacci Conversion and Addition”, опубликованная P. Licomendes и R. Newcomb (University of Maryland) в журнале The Fibonacci Quarterly (1984, v. 22, № 3). В ней описывается способ преобразования двоичного представления Фибоначчи в троичное представление Фибоначчи. В статье имеется ряд ссылок на другие публикации.
Из этого далеко не полного перечня публикаций американских ученых можно сделать вывод, что понятие “компьютер Фибоначчи” прочно вошло в американскую компьютерную литературу и что работы по этим компьютерам проводились в США (Университет шт. Мэриленд) примерно в тот же период, что и работы по “фибоначчиевому” направлению, выполнявшиеся под руководством автора настоящей статьи сначала в Таганрогском радиотехническом институте (1971-1977 гг.), где началось зарубежное патентование компьютера Фибоначчи, а затем в Винницком политехническом институте (в период с 1977 по 1990 гг).
Из последних приложений кодов Фибоначчи следует упомянуть такую важную область информатики, как цифровая обработка сигналов. В российской науке идеи использования чисел Фибоначчи для создания сверхбыстрых алгоритмов цифровой обработки активно развивает доктор физико-математических наук профессор Владимир Михайлович Чернов (Самара, Институт обработки изображений РАН). Подобные же исследования проводятся в Финляндии (Tampere International Center for Signal Processing). Исследования в области “фибоначчиевых” сигнальных преобразований изложены в книге “Fibonacci Decision Diagram“ (2000 г.) авторов R. S. Stankovic, M. Stankovic, J. T. Astola, K. Egizarian. В ней широко используются так называемые обобщенные числа Фибоначчи (р-числа Фибоначчи), введенные автором настоящей статьи еще в 1975 г. Сверхбыстрые “фибоначчиевые” преобразования могут быть реализованы только над числовыми данными, представленными в р-кодах Фибоначчи. Это означает, что для реализации таких преобразований требуется создание специализированных процессоров Фибоначчи!
В аннотации к появившейся в конце года оценочной плате для сигнального процессора семейства ADSP-2189M фирмы Analog Devices, в частности, указывается: “Демонстрационные программы, поставляемые в составе этого комплекта, включают алгоритмы обработки сигналов, такие, как свертка и вычисления в кодах Фибоначчи”. Подробнее информацию о плате можно получить по адресам: www.analog.com/dsp/tools/design.html, www.analog.com/industry/dsp/tools/. История повторяется, и она нас, славян, к сожалению, ничему не научила. Как говорил первый президент Украины Леонид Кравчук, “маемо те, що маемо”.