Советская "троица"

На модерации Отложенный

в продолжение темы: Сталин и кибернетика - http://gidepark.ru/community/129/article/329976

Чем в СССР хотели заменить биты и байты?

Каких только компьютеров не напридумывали: квантовых, молекулярных, нейронных, оптических и фотонных, на основе ДНК и белков-ферментов... Оказывается в России, в Казанском физико-техническом институте, с 2001 года ведутся поиски в области квантовых компьютеров – без особой, судя по всему, специальной программы, по личной инициативе сотрудников.

Про проект троичного компьютера Николая Петровича Брусенцова, ныне заслуженного научного сотрудника МГУ, краем уха слышали, вероятно, все, имеющие отношение к компьютерам и программированию. Интерес к этой теме, в том числе и на Западе, не утихал никогда. Восьмидесятилетний Брусенцов уже в наши дни свидетельствует: «Буквально на днях я получил письмо из США, где также спрашивают, как удалось реализовать троичную логику? К нам постоянно приходят по e-mail письма с запросами. Надо сказать, что наибольший интерес проявляют такие страны, как Бангладеш, Пакистан, Индия».

Но ЭВМ «Сетунь» так и осталась единственной в мире моделью вычислительной машины, основанной на троичной системе счисления, причем серийной – было выпущено полсотни экземпляров. Но ни одного последователя у Брусенцова не было, если не считать любительских проектов. Почему?

Прямой ответ на этот вопрос вы найдете едва ли: в публикациях о «Сетуни» и Брусенцове перечисляются достоинства троичной системы, но прямо не указываются ни недостатки, ни причины, по которым проект так и остался уникальным. Сам Николай Петрович до сих пор полагает, что дело в косности советских чиновников, и еще, возможно, в колоссальных средствах, затраченных на создание полупроводниковой индустрии, основанной на двоичной булевой алгебре. Но суть дела заметно сложнее.

КОГДА ТРИ ЛУЧШЕ, ЧЕМ ДВА

Троичная система экономичнее любой другой в смысле количества знаков (а, следовательно, и элементов) для представления многоразрядного числа. Чтобы записать 1000 чисел (от 0 до 999) в десятичной системе нужно 30 знаков, а в двоичной системе с помощью тех же 30 знаков можно записать 32 768 чисел. Самой же экономичной считается система счисления с основанием е (2,718282...), а на практике – 3, ближайшим к числу е.

Но все зависит от выбора элементов. Брусенцову удалось найти аппаратное решение, которое было действительно – на том уровне техники – непревзойденным по экономичности. Если повторить то же самое на серийно выпускаемых полупроводниковых чипах, получится только усложнение схемы.

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

Основными единицами информации в «Сетуни» были триты (аналоги битов), принимавшие значения минус 1, 0 и плюс 1, и трайты (аналоги байтов), состоявшие каждый из шести тритов и принимавшие значения от -364 до +364. Для «Сетуни» не стали даже разрабатывать ассемблер: написание прямо в машинных кодах оказалось ничуть не сложнее, тем более, что самих команд было всего 24 ,– «Сетунь» была настоящей RISC-машиной, когда еще самого такого термина не существовало.

Но самая главная эксплуатационная особенность «Сетуни» – ее ошеломляющая даже по нынешним временам надежность, оцененная в технических условиях в 95% рабочего времени. Реально она была много выше: для 50 выпущенных серийно экземпляров, разбросанных по стране от Одессы и Ашхабада до Якутска и Магадана, не требовалось даже ЗИПа, как не требовались и специалисты по техническому обслуживанию машины. А первый экземпляр «Сетуни», собранный «на коленке» группой Брусенцова в МГУ, проработал 15 лет, за которые случилось всего 3 отказа элементов из четырех с лишним тысяч (и все – в первый год эксплуатации).

КАК НАЧАЛЬСТВО ОСТАНОВИЛО ТРОИЧНУЮ ЛОГИКУ

Но советские и чиновники и производственники были против машины: первые, видимо, «на всякий случай», ориентируясь на «мировой уровень», а вторые – из-за необычных требований к культуре производства. У Брусенцова первый экземпляр машины заработал в штатном режиме уже через десять дней после монтажа – за счет тщательного отбора и сортировки компонентов (в те времена не подвергавшихся никакому выходному контролю по параметрам), и многочисленных предварительных тестов каждой платы. А на Казанском заводе математических машин автору разработки приходилось пропадать месяцами, заново втолковывая заводчанам уже прописанные в методичках правила тестирования и исправляя вольности в компоновке.

Называлась в числе причин неприязни со стороны казанцев и стоимость машины в 27 500 рублей – смехотворно низкая по тем временам, из-за чего якобы ее было производить невыгодно. Н. П. Брусенцов вспоминает:

«В феврале 1962 г. мне с Е. А. Жоголевым и С. П. Масловым по приглашению правительства ЧССР довелось побывать на заводе Яна Швермы в Брно, где предполагалось запустить в серийное производство нашу «Сетунь». Инициаторами этого проекта были чешские инженеры И. Крыже и И. Бранд, ознакомившиеся с машиной при посещении Вычислительного центра МГУ в 1960 году и, по-видимому, реально оценившие её коммерческие достоинства. Планировался выпуск в первый же год трехсот машин, и завод был вполне готов реализовать это. В отчёте о командировке, направленном в ГКНТ, мы предложили рассмотреть возможность сотрудничества с заводом Яна Швермы Астраханского завода ЭА и ЭП, уже освоившего производство логических элементов «Сетуни».

Но вскоре стало известно, что передача документации для производства машины в ЧССР возможна лишь после освоения крупносерийного выпуска её в нашей стране, а затем выпуск был и вовсе прекращен». Чехи планировали на каждой машине заработать, продавая ее не только в страны СЭВ, но и на Запад за валюту, но советские чиновники встали в позицию «собака на сене», заявив, что «золото нам и самим нужно», и тем временем тормозя проект всеми силами.

С какой-то точки зрения эти чиновники были правы: у «Сетуни», даже в улучшенной модификации «Сетунь-70», не было будущего. Те самые трансфлюксоры, требовавшие ручной намотки (у Брусенцова каждый день начинался с того, что все, включая руководителя, сосредоточенно мотали тончайшие проволочки на трехмиллиметровые сердечники) – это технология первого поколения компьютеров. К 1970-м годам это все отстало на два поколения, а реальной замены в полупроводнике так и не появилось: на транзисторах схемы получаются более громоздкими. Еще одна деталь: двоичная логика хорошо стыкуется с теорией информации, где именно бит (а не трит) есть мельчайшая и неделимая мера всего. И передавать данные лучше по принципу «есть напряжение – нет напряжения», так получается и проще и надежней.

Так что, идеям Брусенцова, – а их, кстати, поддержал классик программирования Дональд Кнут, писавший, что не сомневается в постепенном переходе на троичные ячейки вместо двоичных, – так и суждено остаться в истории техническим курьезом вроде дирижаблей в авиации?

Не совсем так. Одно из направлений, где троичная логика находит свое применение, – создание асинхронных процессоров. Они необходимы, например, в особо точных аналогово-цифровых схемах, где наличие тактового генератора ведет к неприятным и трудно устранимым помехам, а в асинхронных схемах, где сигналы распределены во времени случайным образом, такая помеха намного меньше. Асинхронные процессоры проще проектировать автоматизированным методом, и в них меньше элементов, чем в обычных. Троичная логика прямо фигурирует в технологии NCL от Theseus Logic. Есть и другие применения троичной логики. Так что вполне возможно, что энтузиазм Брусенцова и чаяния Кнута еще оправдаются в веках.