Как советский компьютер «Сетунь» опередил время на 30 лет — и почему о нём забыли

в 9:02, , рубрики: Брусенцов, история вычислительной техники, Сетунь, система счисления, троичная логика, троичный компьютер, ферритовые ячейки, элементная база
Как советский компьютер «Сетунь» опередил время на 30 лет — и почему о нём забыли - 1

Ну как сказать опередил, честно говоря, нет, не опередил, скорее опоздал. Но об этом позже, начну с цифры, которая в этой истории главная. «Сетунь» стоила 27 500 рублей — со всей периферией, с телетайпом, с барабаном, с фотовводом. PDP-8, которую в Штатах считали рекордно дешёвой машиной, стоила 20 000 долларов за один процессорный блок. Без ничего. Это сравнение приводит сам Брусенцов в интервью.

Плюс к этому «Сетунь» была троичной. Единственной серийной троичной машиной в истории человечества, и её закрыли.

Обычно после этого идёт текст про Госплан, который задушил гения, опередившего время на тридцать лет. Я такой текст читала раз пять в разных изложениях, и каждый раз спотыкалась об одно и то же место: вот тут, где объясняют, почему тройка экономичнее двойки, всегда написано «примерно в семь раз». А через абзац — что оптимум системы счисления достигается при основании e. Это два утверждения из разных вселенных, и между ними никто никогда не показывал переход.

Ну я и полезла считать сама.

(Сразу скажу: я не строила троичных машин и «Сетунь» в руках не держала. Всё ниже — это арифметика на два действия, чтение первоисточников и рассуждение про элементную базу. Где я чего-то не знаю — так и написано)

Почему вообще тройка

Идея такая. Пусть нам надо представить число до N. В системе с основанием b на это уйдёт log_b(N) разрядов. Но разряд разряду рознь: чтобы разряд умел b состояний, железа в него надо вложить примерно пропорционально b. Один триггер на два состояния, три — на три.

Значит, полная стоимость — это

C = b · log_b(N) = ln(N) · b/ln(b)

ln(N) от нас не зависит, это про размер задачи. А вот b/ln(b) — зависит целиком. Берём производную, приравниваем нулю, получаем ln(b) = 1, то есть b = e ≈ 2,718.

Дальше некоторые статьи пишут: «ближайшее целое — тройка», ставят точку и идут пить чай.

А давайте досчитаем.

Основание

b/ln(b)

К двоичной

2

2,885

100%

e ≈ 2,718

2,718

94,2%

3

2,731

94,6%

4

2,885

100%

10

4,343

150%

Проверяем: 2/ln2 = 2/0,6931 = 2,885. 3/ln3 = 3/1,0986 = 2,731. Делим: 2,731/2,885 = 0,946. Сходится.

Вот она, легендарная экономичность троичной системы. Пять с половиной процентов.

Ради 5,5% не перестраивают промышленность. Ради 5,5% вообще ничего не делают — это в пределах разброса между двумя цехами одного завода.

И отдельно посмотрите на четвёрку. Она ровно равна двойке, до последнего знака — и это не совпадение: 4/ln4 = 4/(2·ln2) = 2/ln2. Четверичный разряд это ровно два двоичных, ничего нового он не приносит. Ну что сказать... красиво.

Тройка, семёрка, туз

Так откуда семь раз?

Я честно искала первоисточник. Не нашла. Фраза «число элементов сокращается примерно в семь раз» кочует из статьи в статью, и без ссылки, всегда в соседстве с историей про e, из которой она не выводится никак — мы только что посчитали, там 5,5%.

Зато нашлось другое утверждение, которое хотя бы похоже на инженерный факт: однопроводная передача трёхзначных сигналов сократила количество межэлементных и межблочных соединений почти вдвое. Это уже про провода, а не про элементы, и у этого есть механизм — трит едет по одному проводу, где биту нужно два. Как «вдвое по соединениям» превратилось в «всемеро по элементам» — не знаю. Подозреваю испорченный телефон длиной в шестьдесят лет.

Если у кого есть скан отчёта Брусенцова или «Малой цифровой вычислительной машины Сетунь» (1965) — там должна быть настоящая цифра. Скиньте в комменты.

Кстати, о цифрах. Пока я собирала характеристики машины, выяснилось, что им тоже нельзя верить.

Параметр

Один источник

Другой источник

Электронных ламп

37

20

Транзисторов

~300

320

Барабан, коротких слов

1944

3888

Быстродействие, оп/с

4500

5000–6000

Выпущено машин

46

около 50

Годы серии

1962–1964

1959–1965

Причём это не помойки, это энциклопедии и мемуары. Часть расхождений объясняется просто — машину модернизировали, барабан на 3888 слов это, скорее всего, поздняя версия — но часть я объяснить не могу. Двадцать ламп или тридцать семь это не «зависит от комплектации», это кто-то у кого-то переписал с ошибкой.

Дальше я беру цифры из БРЭ и из интервью самого Брусенцова — хотя бы первичные. Где беру другие, говорю.

Осень 1959-го: машина не нужна

Теперь про Госплан, раз уж все за этим пришли.

Осенью 1959 года группу пригласили на Коллегию Государственного комитета радиоэлектроники. Там им сообщили, что машина не нужна: Госплан и ВСНХ заняли отрицательную позицию, разработку записали в чёрный список закрываемых.

Деталь, которая меня отдельно не отпускает: дополнительного финансирования у проекта не было вообще. Ни копейки. Люди работали за зарплату ВЦ МГУ, на оборудовании, которое заводы списывали при снятии изделий с производства. Первую в мире серийную троичную ЭВМ собрали буквально на подножном корму — и вот это решили закрыть ради экономии средств.

Для калибровки: разработка М-20 в нормальном КБ обошлась, по словам Брусенцова, в десятки миллионов рублей за два с половиной года.

Испытания «Сетунь» тем не менее прошла — и прошла хорошо. Дальше было постановление Совмина о серийном производстве, Казанский завод математических машин, медаль ВДНХ.

Подозрительно дёшево

А теперь самое вкусное.

27 500 рублей — это была проблема, именно что проблема. Машина оказалась слишком дешёвой, чтобы заводу было интересно её делать: план меряется в рублях вала, и сорок шесть дешёвых машин в отчёте выглядят хуже, чем десять дорогих.

Логика безупречная, если принять правила игры. Завод не вредительствовал. Завод оптимизировал ту метрику, которую с него спрашивали. Принцип Гудхарта в чистом виде, за пятнадцать лет до того, как Гудхарт его сформулировал.

На практике это выглядело так: постановление Совмина есть, отменить его завод не может. Значит — «Сетунь» выпускали по десять-двенадцать штук в год. Формально постановление выполняется. По сути — нет. Мне это до боли напоминает современные отписки от техподдержки: формально ответили, по существу послали.

Отдельная сцена — с чехами. Чехи «Сетунь» хотели, считали, что смогут продавать её по рыночным ценам и получать порядка полумиллиона долларов прибыли с машины. Им сказали: не заказывайте, всё равно снимем с производства.

Заказ не состоялся. Производство сняли.

Сам Брусенцов сформулировал это так: «Сетунь» мешала людям с косным мышлением, которые занимали высокие руководящие посты. Спорить не с чем.

К 1965 году всё кончилось. Дальше была ЕС ЭВМ, копирование System/360, и места для оригинальных архитектур в стране не осталось совсем — но это отдельная большая история, не про троичность конкретно.

Тут можно вешать занавес. Всем спасибо. Только вот есть один вопрос.

А был ли Госплан?

Если всё дело в чиновниках — почему троичных машин нет в Америке?

Там Госплана не было. Там был рынок, венчурные деньги и полная свобода строить что хочешь. «Сетунь» произвела на американцев сильное впечатление во время оттепельных визитов 1958–59 годов, про небинарные вычисления пошла волна публикаций.

И что построили?

TERNAC. 1973 год, университет штата Нью-Йорк в Буффало, группа Гидеона Фридера. Двадцать четыре трита на слово с фиксированной запятой, сорок два трита мантиссы на плавающей. Отличная машина.

Написанная на фортране. Эмулятор. Крутившийся на двоичном Burroughs B1700.

Вывод у авторов был бодрый: по скорости и цене сопоставимо с двоичными машинами, реализация небинарной структуры на двоичной технике осуществима. Это, простите, не доказательство преимущества троичности. Это доказательство того, что троичность можно не строить.

В железе за пределами СССР троичного компьютера не появилось. Нигде и никогда.

Ну не может быть, чтобы весь мир одновременно был закостенелым. Значит, дело не в Госплане. Точнее — не только в нём.

Почему трит не лезет в транзистор

Здесь придётся спуститься на уровень элементной базы, иначе дальше разговаривать не о чем.

Вопрос, который я всё это время задавала неправильно, звучит так: «почему троичность не победила». Правильный: почему троичность была дешевле именно в «Сетуни».

Элементная база «Сетуни» — ферритодиодные ячейки на основе двоичной ячейки Гутенмахера. По сути это быстродействующие магнитные усилители импульсов тока на ферритовых сердечниках и диодах. Магнитных усилителей в машине около 3500, диодов 4500, ферритов 7000, а транзисторов — три сотни, и ламп несколько десятков.

Следите за руками. Магнитный усилитель — это пороговый элемент со взвешенными входами, и веса у него бывают положительные и отрицательные. Складывается ампер-виток. Сердечник перемагничивается туда или сюда в зависимости от знака суммы. Три устойчивых состояния получаются почти даром, потому что «минус», «ноль» и «плюс» — это естественные состояния железки, которая складывает знаковые величины.

А теперь возьмём транзистор. Транзистор — это ключ. Открыт или закрыт, два состояния.

И здесь вся история переворачивается. Симметричная троичность была дешевле не сама по себе — она была дешевле на магнитных усилителях. Основание системы счисления и элементная база не независимы. Брусенцов нашёл блестящий локальный оптимум для той технологии, на которой работал. Но технология кончилась.

Что происходит, когда вы всё-таки пытаетесь сделать трит в кремнии:

Уровни надо где-то взять. Либо промежуточные напряжения, либо транзисторы с разными порогами. Первое требует опорных генераторов, второе — нестандартного техпроцесса.

Запас помехоустойчивости падает. При питании 1 В на два уровня приходится по полвольта, на три — по трети. И питание десятилетиями снижали: было пять вольт, стало меньше вольта. То есть время работает против многоуровневой логики, а не за неё.

Статический ток. Главное достоинство КМОП в том, что в устоявшемся состоянии он почти не ест. Схема, сидящая на промежуточном уровне, как правило, ест. Вы теряете ровно то, ради чего КМОП и брали.

Транзисторов на разряд больше. Троичный инвертор сложнее двоичного. Вы экономите 5,5% на количестве разрядов и платите кратно на количестве транзисторов в каждом. Арифметика, мягко говоря, не в вашу пользу.

Сложите четыре пункта — и получите ответ, почему на троичность не перешли ни в СССР, ни в Штатах, ни где-либо еще.

Многоуровневая логика всё-таки победила. Но не так

Тут бы и закончить — мол, троичность мертва, спите спокойно. Но пока я готовила этот раздел, полезла смотреть, где многозначная логика применяется в железе прямо сейчас, и слегка прифигела.

Она победила в памяти.

MLC — четыре уровня заряда в ячейке. TLC — восемь. QLC — шестнадцать. Это стоит в каждом SSD и каждой флешке, это промышленный стандарт с многомиллиардным оборотом, это ровно то, о чём говорил Брусенцов: не два состояния, а больше.

Но. Обратите внимание на числа: 4, 8, 16. Заметили? Тройки нету.

Там нет никакой возни с log_b и производными. Там вопрос о другом, и он простой: сколько уровней заряда я могу надежно различить в ячейке столько и запихну. Ответ оказался «шестнадцать, если готов терпеть», и никакое e в этих рассуждениях не участвует.

Многозначность выиграла по причинам, не имеющим к теории Брусенцова ни малейшего отношения. Она пошла не туда, куда он показывал, и остановилась не там, где он предсказывал. Еще раз: побеждает та система, которая лучше ложится на физику носителя. В ферритах это была тройка. В заряде на плавающем затворе шестнадцать.

В ключе двойка, и с 1960-х годов ничего не изменилось. Про кутриты в квантовых вычислениях скажу коротко: они существуют и они полезны, но полезны тем, что некоторые физические системы естественным образом имеют больше двух уровней, и на них короче собираются отдельные гейты. Это снова про физику носителя, не про арифметику. Если кто работал с этим руками — очень жду в комментариях, потому что тут я пересказываю чужое и могу ошибаться в нюансах.

То же самое про MLC/QLC: если работали с деградацией и разбросом порогов — напишите, как это выглядит изнутри.

Что тут вообще произошло

Нет никакого призыва и никакого плана, как это всё исправить. Троичные компьютеры не вернутся — по крайней мере, не по тем причинам, по которым их обычно обещают вернуть.

История «Сетуни» — не про то, что бюрократия задушила гения. Точнее, не только про это: бюрократия его задушила, это факт. Десять машин в год и «не заказывайте, мы их снимем», ну что это такое...

Но обидно тут другое. Даже если бы Коллегия ГКРЭ осенью 1959-го встала и зааплодировала, а завод в Казани выпускал по двести машин в год, к 1975 году троичность всё равно закончилась бы. Не по злобе, а потому что кончились магнитные усилители.

При этом сорок шесть машин работали. Тридцать из них в университетах, от Калининграда до Якутска. На первом экземпляре, собранном на коленке в МГУ, за пятнадцать лет эксплуатации случилось три отказа элементов — три, из четырёх с лишним тысяч, и все в первый год. Ни одна ЕС ЭВМ такого про себя сказать не могла.

Так что опережения на тридцать лет не было, но была очень хорошо сделанная машина, оптимальная для своей технологии, убитая сначала отчётностью, а потом кремнием. Второе было неизбежно. Первое — нет.

Автор: MainEl

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js