В нашей жизни мы пользуемся определенной логикой. В компьютерной технике применяется булева (бинарная) логика, подразумевающая лишь два возможных состояния - "0" или "1" (истина - ложно, да - нет). Однако, в быту нам этой логики уже не достаточно, - нам нужны дополнительные варианты, кроме белого и черного, да или нет. Как правило, - это дополнительное состояние неопределенности. Голосуя, мы говорим о тех, кто "За", тех кто "Против" и кто "Воздержался". Это более функциональная, близкая к мыслительному процессу логика. Но, проблема с навязыванием двоичной логики - это не порождение нашего компьютерного мира, история с запретом на применение троичной логики насчитывает не одну сотню лет и появилось за долго до того, как возникла задача разработки компьютерной техники. Этот запрет, означенный как "Закон исключения третьего" появился как упрощение интуитивной логики, и являющегося базисом классической бинарной логики.
Мы сегодня работаем на компьютерах, применяющих двоичную логику, но история имеет и иные решения. Были разработки и работающие компьютеры, на основе троичной логики. Одним из таких проектов был компьютер "Сетунь", выпускавшийся в нашей стране в 60-х годах.
Но жизнь этих технологий была ограничена, и, в конечном итого, эти компьютеры не смогли заявить о себе и получить признательность своих потребителей. В мире победили компьютеры с бинарной логикой.
Но в чем проблема, скажет читатель? Победил, - значит таков закон рынка, не смог показать свое преимущество и проиграл.
Не все так просто
Давайте разберем историю появления и забвения компьютеров "Сетунь", поскольку это ближе к нам, и, возможно, - это еще одно не признанное гениальное изобретение и заслуга наших советских конструкторов.
"Сетунь" создавался в 1954-1955 годах, когда уже были работающие компьютеры на бинарной логике. Руководитель разработки Николай Петрович Брусенцов получил задание разработать свой компьютер, когда для МГУ было отказано в поставке компьютера М-2. Это сегодня кажется нереальным с нуля создать свой компьютер, со своей архитектурой, машинными командами, системой хранения, ввода-вывода и программным обеспечением. Но, на тот момент, как говорится "Сказано - сделано". Работающий прототип появился в очень короткий срок - уже через 20 дней с момента старта команда из 12 человек смогла предоставить свой первый "Сетунь" на троичной архитектуре с 24 машинными командами. Конструкторские работы длились еще 3 года, прежде чем в в 1959 году было начато мелкосерийное производство компьютеров "Сетунь". Цена компьютера "Сетунь" была примерно в 20 раз меньше, чем существующие на тот момент компьютеры и предназначались для учебных заведений и конструкторских бюро.
Почему был выбрана троичная логика?
Объяснение столь гениального решения достаточно простое - нужно было получить простое, не дорогое и эффективное решение. Брусенцов предлагает использовать в качестве логических элементов для математических вычислений ферритовые кольца, обладающие возможностью хранения трех своих состояний.
В голове сразу всплывает картинка из учебника по полупроводниковой технике, где показана система хранения информации на магнитных кольцах, через которые проходят по 3 провода.
Эта возможность как раз и легла во основу применяемой троичной логики, кроме того, что троичная логика хорошо подходит под мыслительный процесс человека.
"Сетунь" применяла троичную симметричную логику "-1", "0", "+1". За одно действие можно задать, к примеру, включение двигателя и направление вращения. В случае бинарной логики - это потребовало бы два действия.
Какие еще преимущества давало применение троичной логики Сетунь?
В первую очередь, такая логика обеспечивает оптимальное построение арифметики чисел со знаком. При этом, не только нет нужды в искусственных и несовершенном дополнительном, прямом либо обратном кодах чисел, но арифметика обретает ряд значительных преимуществ: единообразие кода чисел, варьируемая длина операндов, единственность операции сдвига, трехзначность функции знак числа, оптимальное округление чисел простым отсечением младших разрядов, взаимокомпенсируемость погрешностей округления в процессе вычисления.
При минимальном наборе команд (всего 24 одноадресные команды) “Сетунь” обеспечивала возможность вычислений с фиксированной и с плавающей запятой, обладала индекс-регистром, значение которого можно как прибавлять, так и вычитать при модификации адреса, предоставляла операцию сложения с произведением, оптимизирующую вычисление полиномов, операцию поразрядного умножения и три команды условного перехода по знаку результата. По результатам межведомственных испытаний в 1960 г “Сетунь” была признана первым действующим образцом универсальной вычислительной машины на безламповых элементах, которому свойственны “высокая производительность, достаточная надежность, малые габариты и простота технического обслуживания”.
Взлет и падение
В интервью с Брусенцововым, его сравнивают с другимми успешными компьютерными руководителями, такими как Стив Джобс. Но это сравнение на мой взгляд совершенно не корректное. Почему так? Полагаю, что это сравнение в корне не верное, и так же являющееся одной из причин неудачного старта производства Сетунь.я, не желающих поддерживать это новое направление, всячески препятствуя какому-либо развитию. В конечном итоге был выпущено всего 50 компьютеров Сетунь и была создана в единичном экземпляре Сетунь-70 - версия более совершенная по сравнению со своим предшественником, но увы так и не принятого для производства.
В интервью с Брусенцововым, его сравнивают с другим успешными компьютерными руководителями, такими как Стив Джобс. Но это сравнение на мой взгляд совершенно не корректное. Почему так? Полагаю, что это сравнение в корне не верное, и так же являющееся одной из причин неудачного старта производства Сетунь.
В СССР Брусенцов делает разработку на заказ, полностью полагаясь на единственного потребителя и финансиста своих разработок - это государство, в лице министерства образования, никак не пытаясь уйти от этого, создать коммерческое предприятие. При такой себестоимости он мог прекрасно продавать свои компьютеры по цене рынка, зарабатывая в прибыли 400-700%. Но этого не произошло. Не было в стране конструкторских бюро компьютерных систем по аналогии с КБ самолетостроения или ракетной техники, которые в первую очередь финансировались для создания военной техники и уже потом как гражданского назначения. Судьба такого государственного сотрудничества на 99% зависит от политических интриг и никак от гениальности разработчика.
Возможно ли сегодня возрождение компьютеров на троичной логике?
Да, возможна. Но, есть неоспоримо несколько моментов в этом:
1. наличие комплектующих для производства таких компьютеров
2. наличие ощутимых задач, которые могли существенно повысить производительность существующих решений (расчетов)
3. наличие специалистов, готовых применять троичную логику в своих разработках
И если с п.1 - уже сегодня ряд производителей готовы наладить выпуск электронных компонентов с троичной и более логикой, то вот с п.2 и, тем более, п.3 не все так однозначно. Проблема в засевшей очень глубоко бинарной логике наших специалистов. В вузах нет преподавания иной логики и "Закон исключения третьего" по прежнему является основой основ. Задачи на сегодня уже есть, - это и обработка изображений и биотехнологии и генная инженерия, где существует как двоичная так и троичная логика. Удивительным свойством переплетаются в кодировании аминокислот двоичное противопоставление Цитозин (Ц) - Гуанин (Г), Аденин (А) - Тимин (Т) и триплетов, кодирующих 21 аминокислоту.
Итого
Полагаю, что вторая жизнь компьютеров с троичной логикой возможна в симбиозе с бинарной логикой. Как вариант - системы хранения и СУБД (Database) на двоичной логике и работающие приложения (Application) - на троичной логике.
Дополнения уже после опубликования статьи
Появлением этих дополнений послужили многие комментария к статье, мимо которых я не мог пройти, поскольку в каких-то случаях необходимо было уточнение по функционалу Сетуни, в каких-то моментах, я не полностью осветил отдельные моменты, на что получил веские замечания.
По ферритовым кольцам и системе записи - я лишь поделился своими воспоминаниями о ферритовых кольцах из учебника, но не рассказал, как была устроена троичная система на ферритовых сердечниках Брусенцовым в его Сетуни.
Брусенцов за основу взял схему феррит-диодного логического элемента Гутенмахера, применяемого для ЭВМ на бинарной логике. Изменив немного схему, он добился возможности записи трех логических состояний.
Вот рисунок сумматора от ЭВМ, где применялись феррит-диодные логические элементы Гутенмахера.
Вероятнее всего (точного описания я не нашел), для записи использовались две встречно намотанные обмотки и одна обмотка для чтения состояния намагниченности ферритового кольца после подачи сигналов на одну, другую или обе обмотки записи, что в целом должно приводить изменение вектора напряженности магнитного потока H в одном, другом направлении или его отсутствии. Кроме этого встречно-направленные обмотки уменьшают уровень помех, которые были определенной проблемой у Гутенмахера.
По вопросу оптимального выбора троичной логики. Приведу комментарий читателя (Александр Яковлев), который наиболее полно это поясняет: "..теоретическое обоснование преимущества троичной логики над двоичной. И это обоснование связано с системой счисления.
Существует теорема об экономичности системы счисления, суть которой сводится к поиску основания системы счисления, при которой объём информации на каждую позицию записанного в этой системе счисления числа был максимальным. Иными словами, возможность представления как можно большего количества чисел с использованием как можно меньшего общего количества знаков.
И теорема доказывает, что этим основанием является число e, равное пределу сходящегося ряда с общим членом вида (1 + 1/х) в степени x при х → ∞ (х стремится к бесконечности). Число e - трансцендентное. Его значение может быть записано как 2,718281828459... (и т.д.).
В настоящий момент не существует аппаратного решения, позволяющего реализовать систему счисления с дробной частью, т.к. реализация записи цифры в позиции такого числа основана на физических принципах нахождения системы (или её части) в дискретном состоянии ("да-нет" - двоичная логика, "да-0-нет" - троичная логика).
Однако число 3 (основание системы счисления с троичной логикой) расположено к числу e (2,7...) ближе, чем число 2 (основание системы счисления двоичной логики). Поэтому система счисления с троичной логикой ВСЕГДА ЭФФЕКТИВНЕЕ системы счисления с двоичной логикой".
По получению доходности 400-700% Речь не идет о коммерческом предприятии в СССР, которое мог организовать Брусенцов. В СССР такого варианта быть не могло. У Брусенцова и этого проекта были два варианта реализации - переезд в США или, хотя бы, в ту же Чехию (ЧССР), где практически был готов контракт на производство этих компьютеров, или же становиться ближе к министерству обороны и участвовать в политических интригах, для получения хорошего госзаказа. Кстати, производство в Чехии так и не запустили. Наши политики отказали в предоставлении документации на производство, испугавшись, что чехи будут продавать эти компьютеры по цене рынка, т.е. с доходностью 400-700%.