Троичный компьютер «Сетунь»

В СССР в 1959 году создали уникальный троичный компьютер «Сетунь». История его появления характерна для того времени. В конце 1950-х за немногочисленными ЭВМ выстраивалась очередь из представителей вузов, НИИ и конструкторских бюро. Нуждался в вычислительной машине и МГУ. В главном здании университета на Воробьёвых горах должна была появиться разработанная в лаборатории Исаака Брука М-2, но из-за ряда накладок этого не произошло.

Академик Сергей Соболев, руководивший кафедрой вычислительной математики механико-математического факультета МГУ, решил, что сотрудникам и студентам вуза по силам создать ЭВМ самостоятельно. Коллектив разработчиков из 20 человек возглавил молодой радиотехник и математик Николай Брусенцов.

https://avatars.dzeninfra.ru/get-zen_doc/271828/pub_6582c450910b2121214ed46c_6582c50d011960551850304e/scale_1200
Коллектив проблемной лаборатории ЭВМ НИВЦ МГУ. В первом ряду в центре — Николай Брусенцов

Именно Брусенцову принадлежит смелая идея сделать машину троичной. 1950-е годы ещё были временем активных поисков в области вычислительной техники. Бок о бок работали аналоговые и цифровые вычислительные машины, а цифровые не были похожи одна на другую. Так что выбор в пользу непривычной системы счисления был вполне в духе того времени.

Конечно, для этого имелись и объективные причины. Из целочисленных систем счисления троичная является самой экономной. Что это значит? Представьте, что у вас есть ограниченное количество карточек, на которых вы можете написать разные цифры. В случае троичной системы вы сможете с помощью одного и того же набора карточек представить больше всего чисел. Так что вместо бита — мельчайшей единицы информации в двоичном компьютере — рациональнее использовать трит.

Как же выглядит счёт в троичной системе? Сначала идёт 0, затем 1, а потом… 2? Можно было бы сделать и так, но создатели «Сетуни» поступили по-другому. Для своей машины они выбрали симметричную троичную систему счисления. В ней использовались не 0, 1 и 2, а –1, 0 и 1. Наличие 1 в тех или иных разрядах увеличивало общую величину числа, а наличие –1 — уменьшало. Представьте себе весы, где вы можете ставить гирьки на обе чаши — как добавляя к итоговым показаниям, так и отнимая от них.

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

Многие операции в троичном компьютере выполняются за меньшее количество шагов. Рассмотрим, например, ветвление в зависимости от результата предыдущей команды. Если он был положительным — программа пойдёт по одному пути, отрицательным — по другому, нулевым — по третьему. Двоичной машине нужно выполнить для этого две проверки, троичной — одну.
https://avatars.dzeninfra.ru/get-zen_doc/271828/pub_6582c450910b2121214ed46c_6582c50da2546f53019acc8b/scale_1200

Но не стоит думать, будто троичный компьютер может делать что-то такое, чего принципиально не мог бы двоичный.

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

С другой стороны, Брусенцов считал, что:

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

В те годы, когда узлы вычислительных машин были крайне дороги, а монтаж их выполнялся практически вручную, упрощение структуры было действительно важно. «Сетунь» и вправду получилась компактной, надёжной и недорогой машиной. При этом она относилась к классу малых ЭВМ: её быстродействие составляло порядка 4500 операций в секунду, а оперативная память была всего на 162 троичных слова — 18-разрядных числа. Для сравнения, современная «Сетуни» ламповая машина М-20 выполняла в секунду до 20 000 операций и имела память 4096 слов.

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

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

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

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

Несмотря на всю красоту троичной системы счисления, сегодня ею интересуются лишь немногочисленные энтузиасты.

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

И через пять лет в МГУ заработала «Сетунь-70» — более совершенный компьютер на основе тех же идей. Быстродействие её было ненамного выше, поскольку в основе машины лежали всё те же ячейки Гутенмахера, но она имела более развитую архитектуру и оснащалась современным для тех лет набором периферийного оборудования. Машина более 30 лет проработала на факультете ВМиК МГУ и уже в 2000-х была передана самим Николаем Брусенцовым в Политехнический музей. Сегодня её можно увидеть в нашем фондохранилище. Там же, кстати, хранится и пульт от оригинальной «Сетуни».

https://avatars.dzeninfra.ru/get-zen_doc/271828/pub_6582c450910b2121214ed46c_6582c50d06fa6b416bedffea/scale_1200

«Сетунь» в фондохранилище Политехнического музея
«Сетунь» оставила яркий след в истории вычислительной техники. Она показала, что привычные нам стандарты вроде двоичной системы счисления и восьмибитного байта вовсе не аксиомы и что компьютеры могут быть устроены и по-другому.