Когда я впервые столкнулась с историей «Сетуни», меня не покидало ощущение, что где-то в этом рассказе прячется нестыковка. Слишком уж гладко всё выглядело: гениальный советский инженер создал машину на троичной логике, она оказалась невероятно дешёвой и надёжной, но косные чиновники всё загубили. Красивая легенда, но мне захотелось проверить её на прочность. Тем более что в текстах, которые я читала, меня каждый раз смущала одна и та же деталь — переход от математической теории к практическим цифрам выглядел каким-то слишком резким.
Начну с главного числа, вокруг которого строится вся история. «Сетунь» стоила 27 500 рублей — и это была цена полного комплекта: сама машина, периферия, телетайп, барабан, устройство фотоввода. Для сравнения, американская PDP-8, которую на Западе считали эталоном дешевизны, обходилась в 20 000 долларов только за процессорный блок. Без каких-либо дополнительных устройств. Это сравнение приводил сам создатель «Сетуни» Николай Брусенцов, и оно действительно впечатляет.
Добавьте сюда тот факт, что «Сетунь» была троичной — единственной серийной троичной вычислительной машиной за всю историю человечества. И её закрыли. Казалось бы, вот он, идеальный сюжет для драмы о том, как система погубила гения, опередившего своё время на десятилетия. Я читала такие тексты раз пять в разных вариациях, и каждый раз спотыкалась об одно и то же место: когда речь заходит о преимуществах троичной системы, неизменно всплывает цифра «примерно в семь раз». А буквально через абзац — утверждение, что оптимум системы счисления достигается при основании e. Эти два тезиса существуют будто в параллельных вселенных, и никто никогда не показывает логический переход между ними.
В какой-то момент я решила, что хватит пересказывать чужие выводы — пора посчитать самой. Сразу оговорюсь: я не собирала троичных машин и не держала «Сетунь» в руках. Всё, что я могу предложить, — это арифметика на уровне школьной программы, внимательное чтение первоисточников и размышления об элементной базе. Там, где моих знаний не хватает, я честно об этом скажу.
Математика троичной системы: от красивой теории к скромной реальности
Итак, почему вообще зашла речь о тройке как основании системы счисления? Логика такая: чтобы представить число до N в системе с основанием b, потребуется log_b(N) разрядов. Но каждый разряд — это не абстракция: чтобы он мог хранить b состояний, в него нужно вложить количество железа, пропорциональное b. Двоичному разряду нужен один триггер, троичному — уже три.
Полная стоимость системы, таким образом, складывается из количества разрядов, умноженного на стоимость каждого разряда. Величина ln(N) от нас не зависит — она определяется размером задачи. А вот отношение b/ln(b) целиком зависит от выбранного основания. Если взять производную и приравнять её к нулю, получится ln(b) = 1, то есть b = e ≈ 2,718. Красиво, ничего не скажешь.
И вот тут многие статьи делают эффектный жест: «ближайшее целое — тройка», ставят точку и отправляются пить чай. Но давайте честно досчитаем до конца.
Проверяем: для двойки получаем 2/ln2 = 2/0,6931 = 2,885. Для тройки: 3/ln3 = 3/1,0986 = 2,731. Делим одно на другое: 2,731/2,885 = 0,946. Всё сходится. Вот она, легендарная экономичность троичной системы — пять с половиной процентов. Пять с половиной! Ради такой разницы не перестраивают промышленность, не меняют технологические процессы, вообще не делают ничего серьёзного. Это уровень статистического разброса между двумя цехами одного завода.
Кстати, обратите внимание на четвёрку. Она ровно равна двойке, до последнего знака после запятой. И это не совпадение: 4/ln4 = 4/(2·ln2) = 2/ln2. Четверичный разряд — это ровно два двоичных, ничего принципиально нового он не даёт. Красивая математическая деталь, которая лишний раз подчёркивает: выбор основания системы счисления — это не вопрос веры, а вопрос конкретных вычислений.
Откуда взялись «семь раз» и почему цифрам нельзя верить
Так откуда же взялась цифра «в семь раз»? Я честно пыталась найти первоисточник. Не нашла. Фраза «число элементов сокращается примерно в семь раз» кочует из статьи в статью без каких-либо ссылок, всегда в соседстве с историей про число e, из которой она не выводится никаким образом — мы только что это посчитали. Там пять с половиной процентов, а не семь крат.
Зато мне удалось найти другое утверждение, которое хотя бы похоже на инженерный факт: однопроводная передача трёхзначных сигналов сократила количество межэлементных и межблочных соединений почти вдвое. Это уже про провода, а не про элементы, и у этого есть понятный механизм — трит передаётся по одному проводу, тогда как биту нужно два. Как «вдвое по соединениям» превратилось в «всемеро по элементам» — я не знаю. Подозреваю, что мы имеем дело с классическим испорченным телефоном длиной в шестьдесят лет.
Если у кого-то есть скан отчёта Брусенцова или издания «Малой цифровой вычислительной машины Сетунь» 1965 года — там должна быть настоящая цифра. Я была бы благодарна за такую находку.
Пока я собирала характеристики машины, выяснилась ещё одна любопытная вещь: цифрам в открытых источниках тоже нельзя доверять.
Причём речь не о сомнительных сайтах, а об энциклопедиях и мемуарах. Часть расхождений объясняется просто — машину модернизировали, и барабан на 3888 слов, скорее всего, относится к поздней версии. Но часть я объяснить не могу. Двадцать ламп или тридцать семь — это не «зависит от комплектации», это кто-то у кого-то переписал с ошибкой. Дальше я буду опираться на данные из Большой российской энциклопедии и интервью самого Брусенцова — хотя бы это первичные источники. Если возьму цифры откуда-то ещё, обязательно скажу.
Осень 1959 года: когда машину объявили ненужной
Теперь поговорим о Госплане, раз уж все за этим пришли. Осенью 1959 года группу разработчиков пригласили на Коллегию Государственного комитета радиоэлектроники. Там им сообщили, что машина не нужна: Госплан и ВСНХ заняли отрицательную позицию, разработку записали в чёрный список закрываемых.
Меня в этой истории больше всего поражает другая деталь: дополнительного финансирования у проекта не было вообще. Ни копейки. Люди работали за зарплату вычислительного центра МГУ, на оборудовании, которое заводы списывали при снятии изделий с производства. Первую в мире серийную троичную ЭВМ собрали буквально на подножном корму — и именно это решили закрыть ради экономии средств. Для сравнения: разработка машины М-20 в нормальном конструкторском бюро обошлась, по словам Брусенцова, в десятки миллионов рублей за два с половиной года.
Испытания «Сетунь» тем не менее прошла — и прошла хорошо. Дальше было постановление Совмина о серийном производстве, Казанский завод математических машин, медаль ВДНХ. Казалось бы, вот он, счастливый конец. Но именно здесь начинается самое интересное.
Подозрительно дёшево: как низкая цена стала проблемой
27 500 рублей — это была проблема. Именно что проблема. Машина оказалась слишком дешёвой, чтобы заводу было интересно её производить: план измеряется в рублях валового продукта, и сорок шесть дешёвых машин в отчёте выглядят хуже, чем десять дорогих. Логика безупречная, если принять правила игры. Завод не вредительствовал — завод оптимизировал ту метрику, которую с него спрашивали. Это принцип Гудхарта в чистом виде, сформулированный за пятнадцать лет до того, как сам Гудхарт его описал.
На практике это выглядело так: постановление Совмина есть, отменить его завод не может. Значит, «Сетунь» выпускали по десять-двенадцать штук в год. Формально постановление выполняется. По сути — нет. Мне это до боли напоминает современные отписки от техподдержки: формально ответили, по существу послали.
Отдельная история — с чехами. Чехословацкие партнёры «Сетунь» хотели, считали, что смогут продавать её по рыночным ценам и получать порядка полумиллиона долларов прибыли с каждой машины. Им ответили: не заказывайте, всё равно снимем с производства. Заказ не состоялся. Производство сняли. Сам Брусенцов сформулировал это так: «Сетунь» мешала людям с косным мышлением, которые занимали высокие руководящие посты. Спорить с этим сложно.
К 1965 году всё закончилось. Дальше была ЕС ЭВМ, копирование архитектуры System/360, и места для оригинальных разработок в стране не осталось совсем. Но это уже отдельная большая история, не про троичность как таковую.
А был ли Госплан? Взгляд за пределы СССР
И всё же у меня остался один вопрос. Если всё дело в чиновниках — почему троичных машин не появилось в Америке? Там Госплана не было. Там был рынок, венчурные деньги и полная свобода строить что угодно. «Сетунь» произвела на американцев сильное впечатление во время визитов конца 1950-х годов, по небинарным вычислениям пошла целая волна публикаций.
И что в итоге построили? TERNAC. 1973 год, университет штата Нью-Йорк в Буффало, группа Гидеона Фридера. Двадцать четыре трита на слово с фиксированной запятой, сорок два трита мантиссы на плавающей. Звучит солидно. Но это был эмулятор, написанный на фортране и крутившийся на двоичном Burroughs B1700. Вывод авторов был бодрый: по скорости и цене сопоставимо с двоичными машинами, реализация небинарной структуры на двоичной технике осуществима. Простите, но это не доказательство преимущества троичности. Это доказательство того, что троичность можно не строить.
В железе за пределами СССР троичного компьютера так и не появилось. Нигде и никогда. Не может же быть, чтобы весь мир одновременно оказался закостенелым. Значит, дело не в Госплане. Точнее — не только в нём.
Почему трит не лезет в транзистор
Здесь придётся спуститься на уровень элементной базы, иначе дальше разговаривать не о чем. Вопрос, который я всё это время задавала неправильно, звучит так: «почему троичность не победила». Правильный вопрос: почему троичность была дешевле именно в «Сетуни».
Элементная база «Сетуни» — ферритодиодные ячейки на основе двоичной ячейки Гутенмахера. По сути это быстродействующие магнитные усилители импульсов тока на ферритовых сердечниках и диодах. Магнитных усилителей в машине около 3500, диодов 4500, ферритов 7000, а транзисторов — всего три сотни, и ламп несколько десятков.
Теперь следите за логикой. Магнитный усилитель — это пороговый элемент со взвешенными входами, и веса у него бывают положительные и отрицательные. Складывается ампер-виток. Сердечник перемагничивается туда или сюда в зависимости от знака суммы. Три устойчивых состояния получаются почти даром, потому что «минус», «ноль» и «плюс» — это естественные состояния железки, которая складывает знаковые величины.
А теперь возьмём транзистор. Транзистор — это ключ. Открыт или закрыт, два состояния. И здесь вся история переворачивается. Симметричная троичность была дешевле не сама по себе — она была дешевле на магнитных усилителях. Основание системы счисления и элементная база не независимы. Брусенцов нашёл блестящий локальный оптимум для той технологии, на которой работал. Но технология кончилась.
Что происходит, когда вы пытаетесь сделать трит в кремнии? Во-первых, уровни надо где-то взять: либо промежуточные напряжения, либо транзисторы с разными порогами. Первое требует опорных генераторов, второе — нестандартного техпроцесса. Во-вторых, запас помехоустойчивости падает: при питании 1 вольт на два уровня приходится по полвольта, на три — по трети. А питание десятилетиями снижали: было пять вольт, стало меньше вольта. Время работает против многоуровневой логики, а не за неё. В-третьих, статический ток: главное достоинство КМОП в том, что в устоявшемся состоянии он почти не потребляет энергию, а схема на промежуточном уровне, как правило, ест. Вы теряете ровно то, ради чего КМОП и брали. И наконец, транзисторов на разряд нужно больше: троичный инвертор сложнее двоичного. Вы экономите 5,5% на количестве разрядов и платите кратно на количестве транзисторов в каждом. Арифметика, мягко говоря, не в пользу троичности.
Многоуровневая логика всё-таки победила — но совсем не так
Тут бы и закончить — мол, троичность мертва, спите спокойно. Но пока я готовила этот материал, я решила посмотреть, где многозначная логика применяется в железе прямо сейчас. И слегка удивилась.
Она победила в памяти. MLC — четыре уровня заряда в ячейке. TLC — восемь. QLC — шестнадцать. Это стоит в каждом SSD и каждой флешке, это промышленный стандарт с многомиллиардным оборотом, это ровно то, о чём говорил Брусенцов: не два состояния, а больше. Но обратите внимание на числа: 4, 8, 16. Заметили? Тройки нет.
Там нет никакой возни с логарифмами и производными. Там вопрос о другом, и он предельно прост: сколько уровней заряда я могу надёжно различить в ячейке — столько и запихну. Ответ оказался «шестнадцать, если готов терпеть», и никакое число e в этих рассуждениях не участвует. Многозначность выиграла по причинам, не имеющим к теории Брусенцова ни малейшего отношения. Она пошла не туда, куда он показывал, и остановилась не там, где он предсказывал. Побеждает та система, которая лучше ложится на физику носителя. В ферритах это была тройка. В заряде на плавающем затворе — шестнадцать. В ключе — двойка, и с 1960-х годов ничего не изменилось.
Про кутриты в квантовых вычислениях скажу коротко: они существуют и они полезны, но полезны тем, что некоторые физические системы естественным образом имеют больше двух уровней, и на них короче собираются отдельные гейты. Это снова про физику носителя, не про арифметику. Если кто-то работал с этим руками — мне было бы интересно услышать детали, потому что здесь я пересказываю чужой опыт и могу ошибаться в нюансах.
Что на самом деле произошло с «Сетунью»
У меня нет готового рецепта, как всё исправить. Троичные компьютеры не вернутся — по крайней мере, не по тем причинам, по которым их обычно обещают вернуть. История «Сетуни» — не про то, что бюрократия задушила гения. Точнее, не только про это: бюрократия его действительно задушила, это факт. Десять машин в год и «не заказывайте, мы их снимем» — ну что это такое...
Но обидно тут другое. Даже если бы Коллегия ГКРЭ осенью 1959-го встала и зааплодировала, а завод в Казани выпускал по двести машин в год, к 1975 году троичность всё равно закончилась бы. Не по злобе, а потому что кончились магнитные усилители. Технология ушла, и вместе с ней ушло преимущество троичной логики.
При этом сорок шесть машин работали. Тридцать из них — в университетах, от Калининграда до Якутска. На первом экземпляре, собранном буквально на коленке в МГУ, за пятнадцать лет эксплуатации случилось три отказа элементов — три из четырёх с лишним тысяч, и все в первый год. Ни одна ЕС ЭВМ такого про себя сказать не могла.
Так что опережения на тридцать лет не было. Но была очень хорошо сделанная машина, оптимальная для своей технологии, убитая сначала отчётностью, а потом кремнием. Второе было неизбежно. Первое — нет.
История «Сетуни» — это не трагедия гения, опередившего время, а скорее поучительный пример того, как важно различать математическую красоту и инженерную целесообразность. Брусенцов сделал блестящую машину для своей эпохи, но эпоха закончилась — и вместе с ней закончилась троичная эра. В этом нет ничьей вины, кроме, пожалуй, тех, кто сознательно тормозил производство из-за неудобной дешевизны машины.