Компьютер Фибоначчи
Краткая история работ по компьютеру Фибоначчи в СССР
Изложенные в первой части статьи математические результаты стали основой для проектов создания компьютерных и измерительных систем на основе "фибоначчиевого" и "золотого" представлений. Эти проекты выполнялись в Советском Союзе в 1970-е и 1980-е годы. По решению Госкомизобретений изобретения в области компьютеров Фибоначчи были запатентованы за рубежом. Таким образом, 65 зарубежных патентов США, Японии, Англии, ФРГ, Франции, Канады и других стран и свыше 100 авторских свидетельств СССР являются официальными юридическими документами, подтверждающими приоритет советской науки в разработке данной темы. И хотя создать компьютер Фибоначчи так и не удалось (основной причиной тому стал развал Советского Союза и связанное с этим прекращение финансирования исследовательских работ), теоретические основы данного направления представляют несомненный интерес и могут стать источником новых идей не только в компьютерной области, но и в области математики. Особенно эффективным автор считает использование "фибоначчиевых" представлений в измерительной технике и цифровой обработке сигналов, где с их помощью в последние годы были разработаны сверхбыстрые сигнальные преобразования.
А начиналось это так. Вечером 3 марта 1976 г. в семинарской комнате Австрийского кибернетического общества (Вена, Шотенгассе, 3) было весьма многолюдно. Известные австрийские ученые, члены кибернетического и компьютерного обществ Австрии, научные сотрудники компьютерной лаборатории американской фирмы IBM в Вене и представители посольства СССР собрались в семинарской комнате. Главной причиной этого необычного собрания была лекция "Алгоритмическая теория измерения и основания компьютерной арифметики". Читал ее автор настоящей статьи Алексей Стахов, в ту пору заведующий кафедрой информационно-измерительной техники Таганрогского радиотехнического института. Однако были различные причины, которые собрали вместе известных ученых в области кибернетики и информатики и сотрудников советского посольства. Объявление о лекции провозглашало следующее:
"Методы представления чисел могут быть рассмотрены как специальные алгоритмы измерения. Такая интерпретация является главной идеей лекции.
Основные научные результаты:
новый научный принцип, "Принцип асимметрии измерений";
алгоритмическая теория измерения;
расширение теории чисел Фибоначчи;
фибоначчиева арифметика как способ повышения информационной надежности компьютерных систем".
Таким образом, главная цель лекции состояла в том, чтобы изложить новую теорию - "алгоритмическую теорию измерения", вытекающие из нее новые способы позиционного представления чисел и новую компьютерную "арифметику Фибоначчи", которая может быть положена в основу компьютеров Фибоначчи, нового направления в развитии компьютеров.
Интерес советского посольства к этой лекции носил политический характер. Дело в том, что 5 марта 1976 г., то есть спустя два дня после нее, в Москве должно было состояться открытие 25-го съезда КПСС. А несколькими месяцами ранее известный западногерманский журнал Spiegel опубликовал очень острую статью "Если б Ленин это знал!". Статья была посвящена фактам коррупции в высших эшелонах КПСС. И тогда ЦК КПСС направил во все советские посольства в западных странах секретный меморандум, рекомендовавший способствовать выступлениям в этих странах советских артистов, спортсменов и ученых, чтобы хоть как-то сгладить негативное впечатление мировой общественности от публикации в журнале Spiegel.
Весьма положительные отзывы, которые дали о лекции известные австрийские ученые (президент Австрийского кибернетического общества проф. Трапель, директор Института обработки данных Венского технического университета проф. Эйер, а также представитель кафедры статистики и информатики Линцского университета имени Иоганна Кеплера проф. Адам), вызвали в посольстве СССР в Австрии естественное желание посодействовать развитию этого направления и в Советском Союзе. Посол И. Ефремов направил в Государственный комитет Совета Министров СССР по науке и технике и в Министерство высшего и среднего специального образования СССР соответствующее письмо.
Следствием письма посла было решение Госкомизобретений о патентовании изобретения проф. Стахова во всех ведущих странах - продуцентах средств вычислительной техники.
Анализ фибоначчиевой арифметики (см. http://www.goldenmuseum.zibys.com/ ) показал, что основными ее операциями являются так называемые "свертка", "развертка" и основанная на них операция приведения кода Фибоначчи к минимальной форме. Именно поэтому главным объектом патентной защиты стал новый операционный элемент компьютерной техники, названный устройством приведения кода Фибоначчи к минимальной форме (см. ниже).
Несмотря на предельную простоту устройства (см. рисунок), оно не имело прототипов по своему функциональному назначению и было признано в СССР и в других странах изобретением пионерного характера. Затем были разработаны другие операционные элементы компьютера Фибоначчи (в частности, счетчики и сумматоры). Это также были новые элементы компьютерной техники, но они не были пионерными изобретениями, поскольку основывались на устройстве приведения кода Фибоначчи к минимальной форме.
Как известно, для получения зарубежного патента оформляется соответствующая заявка на изобретение с учетом требований патентного ведомства той или иной страны, и эта заявка подается в данное ведомство с ходатайством выдать патент на изобретение. Надо отметить, что ни в одной стране патентное ведомство не заинтересовано в выдаче такого патента, потому что это ущемит права собственных производителей; поэтому проводится весьма тщательная патентная экспертиза, которая во многих случаях заканчивается отказом в выдаче патента. При этом все услуги по патентованию (даже в случае отрицательного решения) оплачивает страна, ходатайствующая о выдаче патента. Вот почему решения о патентовании советских изобретений за рубежом (особенно в области электроники и вычислительной техники) принимались только в исключительных случаях и осуществлялись на государственном уровне. Однако в соответствии с патентными законами большинства стран невозможно получить патент на математическое изобретение, каким, в сущности, и была фибоначчиева арифметика. И тогда возникла мысль о косвенной защите этой арифметики через компьютерные устройства, ее реализующие. Такими устройствами являются регистры, счетчики, сумматоры, множительные и делительные устройства и т. д., то есть основные операционные устройства компьютера Фибоначчи. При этом желательно было придумать такой оригинальный операционный элемент, который мог бы потянуть на пионерное изобретение, на основе которого можно было бы создать все остальные операционные элементы.
С экономической точки зрения (стоимость патентования) выгоднее патентовать заявку на изобретение с так называемой многозвенной формулой. По существу, речь шла о такой крупномасштабной заявке, которая включала бы в себя несколько десятков технических решений, объединенных общей идеей и общей формулой изобретения. Такой и была первая заявка на изобретение компьютера Фибоначчи: она содержала свыше 200 страниц текстового материала, около 100 рисунков (операционные устройства и их элементы), а многозвенная формула изобретения состояла из 85 пунктов, описывала 85 технических решений, то есть 85 изобретений. Всего же к патентованию было принято 12 заявок.
Патентование осуществлялось в восьми странах (США, Япония, Англия, Франция, ФРГ, Канада, Польша и ГДР). Для этого каждая из 12 заявок составлялась с учетом патентного закона каждой страны и затем переводилась на соответствующий язык.
Итоги патентования "фибоначчиевых" изобретений превзошли все ожидания: 65 зарубежных патентов, выданных патентными ведомствами США, Японии, Англии, Франции, ФРГ, Канады, Польши и ГДР, свидетельствуют о том, что идея компьютера Фибоначчи имеет мировую новизну, так как западная патентная экспертиза не сумела ничего противопоставить советским "фибоначчиевым" изобретениям.
Специальное конструкторско-технологическое бюро "Модуль"
К сожалению, сами по себе патенты еще ничего не означали. Для того чтобы получить экономические выгоды от патентования, в частности от продажи лицензий на эти патенты, срочно требовалась реализация изобретений в виде некоторых систем и устройств, которые по своим параметрам должны были превосходить мировой уровень. Такая задача была поставлена перед автором со стороны Госкомизобретений СССР, который нес государственную ответственность за патентование и прикладывал максимум усилий, чтобы сдвинуть с мертвой точки "проблему внедрения".
В 1977 г. автор был избран на должность заведующего кафедрой вычислительной техники Винницкого политехнического института, и именно этот вуз стал основным научным центром, где были развернуты работы по реализации изобретений. Сложность состояла еще и в том, что направление начало развиваться не в одном из признанных советских компьютерных центров (Москва, Киев, Минск), а в украинской Виннице, "сахарной" столице Украины, где хотя и были электронные заводы, но их целевая направленность и уровень технологии явно не соответствовали задаче создания компьютера Фибоначчи. Да и сам институт находился в стадии роста, шли бесконечные дрязги в профессорском коллективе - и все это не способствовало развитию этого научного направления.
В 1986 г. Минвуз Украины по настоянию Госкомизобретений назначил автора директором специального конструкторско-технологического бюро "Модуль", входившего в состав Винницкого политехнического института. Оно имело несколько отделов конструкторского направления и некоторую технологическую базу, но находилось на грани финансового краха. Поэтому первоочередной задачей было найти устойчивый источник финансирования разработок. Решить ее удалось за короткий срок благодаря поддержке этого научного направления прежде всего со стороны Госкомизобретений, а также некоторых высокопоставленных чиновников бывшего СССР. В Киеве таким чиновником оказался Владимир Павлович Горбулин, занимавший пост заместителя начальника оборонного отдела ЦК Компартии Украины, в Москве - Олег Федорович Антуфьев, начальник одного из ведущих главков Министерства общего машиностроения (МОМ) СССР (советского ракетного министерства). Именно по инициативе этих двух прогрессивно мысливших советских функционеров работы по компьютеру Фибоначчи были включены в одно из секретных постановлений ЦК КПСС и СМ СССР по развитию оборонной тематики. В результате на разработки было выделено около 15 млн. рублей - значительная для того времени сумма, втрое превышавшая годовой объем финансирования научно-исследовательских работ всего Винницкого политехнического института.
Заказчиком, в качестве которого выступала головная компьютерная организация МОМ, было сформулировано три основных направления научных и опытно-конструкторских разработок:
проектирование самоконтролирующегося процессора Фибоначчи для специальных применений;
проектирование самокорректирующихся "фибоначчиевых" аналого-цифровых и цифро-аналоговых преобразователей высокой точности и метрологической стабильности;
проектирование самосинхронизирующихся систем цифровой магнитной записи и волоконно-оптических систем передачи информации.
К этим разработкам в СКТБ было подключено около 200 сотрудников.
Одним из важнейших направлений инженерных разработок СКТБ "Модуль" стало создание элементной базы компьютеров Фибоначчи, на чем особенно настаивал "заказчик". В перспективе планировалось, что такая элементная база станет основой для проектирования бортового высоконадежного компьютера Фибоначчи (Ф-компьютера) для специальных применений.
Первой была разработана микросхема небольшой разрядности, выполняющая функции процессора. Несколько таких микросхем в совокупности представляли процессор Ф-компьютера более высокой разрядности.
Один из возможных вариантов такого устройства показан на рисунке. Устройство состоит из пяти R-S-триггеров и логических элементов AND, OR (И, ИЛИ), которые предназначены для реализации "свертки". Операция "свертки" выполняется, начиная с младшего триггера T1 к старшему триггеру T5, с помощью логических элементов AND1 - AND5 и соответствующих логических элементов OR (ИЛИ), расположенных перед R- и С-входами соответствующих триггеров. Логический элемент AND1 реализует "свертку" 1-го разряда во 2-й разряд регистра. Два его входа связаны с прямым выходом триггера T1 и "инверсным" выходом триггера T2. Третий вход связан с сигналом синхронизации C. Логический элемент AND1 анализирует состояния Q1 и Q2 триггеров T1 и T2. Если Q1 = 1 и Q2 = 0, это означает, что условие "свертки" для 1-го и 2-го разрядов выполняется. Синхросигнал C = 1 является причиной появления логической 1 на выходе элемента AND1. Эта логическая 1 вызывает переключение триггеров T1 и T2 в противоположное состояние, что приводит к выполнению операции "свертки" над первыми двумя разрядами регистра. Логический элемент ANDk k-го разряда (k = 2, 3, 4, 5) реализует операцию "свертки" (k - 1)-го и k-го разрядов в (k + 1)-й разряд. Три его входа связаны с "прямыми" выходами триггеров Tk - 1 и Tk и "инверсным" выходом триггера Tk + 1. Четвертый вход связан с синхросигналом C. Логический элемент ANDk анализирует состояния Qk - 1, Qk и Qk + 1 триггеров Tk - 1, Tk и Tk + 1. Если Qk - 1 = 1, Qk = 1 и Qk + 1 = 0, это означает, что условие "свертки" выполняется. Синхросигнал C = 1 приводит к переключению триггеров Tk - 1, Tk, и Tk + 1. При этом выполняется операция "свертки" над соответствующими разрядами (011 → 100). Заметим, что все элементы AND1 - AND5 связаны через общий логический элемент ORC с контрольным выходом регистра "свертки". Устройство, изображенное на рисунке, работает следующим образом. Входная кодовая информация поступает на входы 1-5 устройства и далее - на S-входы триггеров через соответствующие логические элементы OR.
Пусть исходное состояние регистра, составляющего основу устройства, следующее:
5 4 3 2 1
0 1 0 1 1
Ясно, что условие "свертки" выполняется только для 1-го, 2-го и 3-го разрядов. Синхросигнал C = 1 приводит к переходу регистра в следующее состояние:
5 4 3 2 1
0 1 1 0 0
Здесь условие "свертки" выполняется только для 3-го, 4-го и 5-го разрядов. Очередной синхросигнал C = 1 приводит к переходу регистра в следующее состояние:
5 4 3 2 1
1 0 0 0 0
Приведение исходной кодовой комбинации 0 1 0 1 1 к "минимальной форме" закончилось.
Компьютер Фибоначчи и ВОЛС
Итак, в предыдущей Части мы остановились на том, что была выпущена микросхема, в основу которой положена арифметика Фибоначчи, построенная на так называемых "базовых микрооперациях". Как известно, компьютерная программа реализуется с помощью процессора (ЦП), состоящего из триггеров, связанных с комбинационной логикой. Таким образом, исполнение программы сводится к переключению триггеров. К сожалению, невозможно полностью исключить ошибки, возникающие в результате неисправной работы компьютерных элементов. Но при этом необходимо различать два типа неисправностей. Первый тип называется постоянным отказом элемента, когда однажды отказавший элемент "выбывает из игры", а второй - случайным отказом (или сбоем), когда элемент отказывает в случайные моменты времени, а остальное время работает корректно. Сбои в работе процессора возникают под влиянием различных факторов, вызываемых внешними и внутренними шумами в компьютерных элементах и их электронных цепях.
Какой вид неисправной работы наиболее характерен для электронных элементов? Установлено, что сбои в этих элементах, в частности в триггерах, возникают чаще, чем постоянные отказы. Существует два режима работы электронных элементов: 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
↑ Реклама
Мнение авторов может не совпадать с мнением редакции сайта
Перепечатка материалов без ссылки на наш сайт запрещена |