В истории вычислительной техники есть уникальная машина, производство которой было серийным. Данная разработка является примером нетрадиционного направления развития компьютерной техники. Важно отметить, что это полностью российская разработка была реализована в 1959 году в вычислительном центре Московского государственного университета. В последние годы интерес к таким проектам возрастает, в связи с поиском технической реализации компьютера будущего.
В 1956 году появилась потребность в создании практичного образца цифровой вычислительной машины, которая бы смогла использоваться в вузах, лабораториях. Для таких целей требовалась простая в освоении, надежная, недорогая, но в то же время эффективная малая ЭВМ, рассчитанная на массовое использование.
Требования, предъявленные к такой машине: скорость работы должна была быть равной нескольким сотням операций в секунду, «приветствовалась» простота и удобство программирования, точность вычислений — 6-8 верных десятичных знаков, высоконадежность в эксплуатации и в техническом обслуживании, умеренные габариты, экономное потребление энергии, использование недорогих и «недефицитных» материалов и деталей. Такие требования для того времени являлись «противоречивыми», ведь создание машины более удобной для работы программистов повлекло бы за собой увеличение количества оборудования, что, в свою очередь, повлекло бы снижение надежности и повышение стоимости не только самой машины, но и ее эксплуатации.
Обеспечение удобства для программистов помимо инженерного пути, связанного с усложнением машины, было реализовано программным путем (разработкой систем стандартных подпрограмм, введением компилирующих и интерпретирующих систем, программирующих программ), применением двухступенчатой системы памяти, построением схем на магнитных элементах.
“Сетунь” — одноадресная машина последовательного действия, оперирующая с числами с фиксированной запятой.
Числа и команды в машине представлены троичным кодом с цифрами 1, 0, -1. Машина оперирует с 18-разрядными (длинными) и 9-разрядными (короткими) троичными кодами, причем запятая стоит всегда после второго разряда.
Команды представляются девятью троичными разрядами, из которых пять старших составляют адресную часть, три — код операции и один (младший) используется в качестве признака модификации адреса. При выполнении команд, содержащих в этом разряде 1 или -1, их адресная часть автоматически изменяется соответственно прибавлением или вычитанием числа, хранящегося в специальном 5-разрядном регистре (индекс-регистре).
Память машины состоит из двух ступеней: а) оперативного запоминающего устройства на ферритовых сердечниках емкостью в 162 ячейки по 9 троичных разрядов; б) запоминающего устройства на магнитном барабане емкостью в 1944 ячейки по 9 троичных разрядов.
Передача информации между запоминающими устройствами производится зонами, содержащими по 54 девятиразрядных кода.
Ввод данных в машину осуществляется с пятипозиционной бумажной перфоленты посредством фотоэлектрического вводного устройства, работающего со скоростью 800 знаков в секунду.
Вывод данных производится путем печати и перфорации на бумажной ленте со скоростью 7 знаков в секунду. Возможен вывод как троичных кодов (команд), так и буквенно-цифрового текста с заданием произвольной формы бланка.
Машина состоит из шести функциональных устройств:
1) арифметического устройства;
2) устройства управления;
3) оперативного запоминающего устройства;
4) устройства ввода;
5) устройства вывода;
6) запоминающего устройства на магнитном барабане.
Особенность троичной системы счисления — цельночисленное основание в ней равно трём. То есть все множество целых чисел можно записать с помощью всего трех цифр.
По сравнению с двоичным кодом с цифрами 0, 1, троичный код с цифрами -1, 0, 1 обеспечивает оптимальное построение арифметики чисел со знаком. При таком применение арифметика имеет ряд преимуществ:
единообразие кода чисел;
варьируемая длина операндов;
единственность операции сдвига;
трехзначность функции знака числа;
оптимальное округление чисел простым отсечением младших разрядов;
взаимокомпенсируемость погрешностей округления в процессе вычисления.
Благодаря наличию в троичной системе счисления “положительной” и “отрицательной” цифр, в коде числа нет особого разряда знака, а это очень упрощает логику арифметических операций. Троичное слово в 1,6 раза короче двоичного, следовательно, и операции, например операция сложения в троичном последовательном арифметическом устройстве выполняются также в 1,6 раза быстрее, чем в двоичном.
В троичной симметричной системе цифры обозначают знаками, вместо 1, 0, -1 пишут +, 0, -.
Вот как будут выглядеть десятичные числа 13, 7, 6, -6 в троичной записи 13= +++, 7 = +-+, 6 = +-0, -6 = -+0. Изменение знака числа в симметричном коде равно потритной инверсии, происходит взаимозамена "+" на "-", и наоборот.
«Сетунь» представляет собой малую ЭВМ, построенную на принципах троичной логики, другими словами это троичный компьютер. Руководитель проекта — Н. П. Брусенцов, основные разработчики: Е. А. Жоголев, В. В. Веригин, С. П. Маслов, А. М. Тишулина. Разработка машины была предпринята по инициативе и осуществлялась при активном участии виднейшего советского математика С. Л. Соболева. Этот уникальный троичный компьютер, практически не имеет аналогов не только в данный момент времени, но и вообще в истории вычислительной техники.
Для начала разберёмся, что же такое троичный компьютер, коим, как уже было сказано, является рассматриваемая модель «Сетунь». Такое название получил специализированный компьютер, который построен на логических элементах и узлах двух типов – как на классических двоичных, так и уникальных в своём роде троичных. Понятно, что он использует в своей работе соответственные системы счисления, логики и алгоритмы работы – двоичные и троичные.
Можно выделить следующие основные этапы развития троичного компьютера:
- в период с середины 12-13 веков Фибоначчи смог доказать, что троичная система счисления может быть более экономичной по сравнению с двоичной – в случае, когда при условном взвешивании можно класть гири не на одну чашу весов, а на обе;
- в 1840 году появилась первая троичная вычислительная машина, ставшая вообще одной из первых механических вычислительных машин;
- в период с 1956 по 1958 годы Н.П. Брусенцов создал первый троичный компьютер серийного производства – ту самую «Сетунь»;
- позднее, в 1970 году, Брусенцов выпустил вторую версию своего детища, получившего имя «Сетунь-70»;
- долгое время, данное направление не имело практически никакого развития, однако, в 2008 году была построена трёхтритная цифровая компьютерная система TCA2, которая, в отличие от «Сетуни», работала не на ферритдиодных магнитных усилителях переменного тока, а на интегральных транзисторах. Но это уже, как говорится, совсем другая история.
Автор «Сетуни» на основе обычной двоичной ферритодиодной ячейки Гутенмахера разработал её уникальный троичный аналог, работа которого была построена на двухбитном троичном коде. Всё это выглядело следующим образом – один трит (так называется единица измерения в данном случае) записывается в два двоичных разряда.
Помимо трита, в троичной логике, используемой «Сетуньей», аналогично двоичной системе, в которой есть бит и байт, применяется термин «трайт», являющийся минимальной непосредственно адресуемой единицей главной памяти «Сетуни», равный шести тритам, что примерно равен девяти с половиной битов. Таким образом, получается, что трайт чуть больше привычной единицы измерения двоичной системы байта. Два трайта равны 19 битам, три трайта – почти 29 битам и т.д. Он может принимать значения в довольно широком диапазоне – от -364 до 364.
Число разрядов процессора — 9 тритов. Тактовая частота процессора — 200 кГц.
На основе двоичной ферритодиодной ячейки Гутенмахера, которая представляет собой электромагнитное бесконтактное реле на магнитных усилителях трансформаторного типа, Н. П. Брусенцов разработал троичную ферритодиодную ячейку, которая работала в двухбитном троичном коде, т.е. один трит записывался в два двоичных разряда, четвёртое состояние двух двоичных разрядов не использовалось.
Стоит отметить забавный факт – отрицательные троичные и девятеричные цифры, выводимые на «Сетуни» на печать, отображались перевёрнутыми «вверх ногами», то есть повёрнутыми на 180 градусов.
Основные преимущества, которые имеют троичные компьютеры по отношению к двоичным:
1) во-первых, троичная система обладает наибольшей плотностью записи информации среди всех существующих целочисленных систем счисления. Из данного факта следует, что при прочих равных условиях троичные компьютеры будут иметь превосходящую удельную ёмкость памяти и удельную производительность процессора по сравнению с двоичными аналогами;
2) троичные компьютеры лучше приспособлены к троичным алгоритмам, которые работают быстрее двоичных алгоритмов;
3) при этом троичные компьютеры способны делать практически всё, что делают их двоичные коллеги, поскольку двоичная логика является центральным подмножеством троичной;
4) процесс накопления ошибки округления на троичных компьютерах также идёт гораздо медленнее, поскольку округление в троичной системе происходит путём отбрасывания лишних разрядов.
Говоря о будущем таких машин, как «Сетунь» (то есть троичных компьютеров), известный американский учёный Дональд Кнут, отмечал, что они занимают очень мало место в отрасли вычислительной техники, что объясняется массовым засильем двоичных компонентов, производимых в огромных количествах. Но, поскольку троичная логика гораздо эффектнее, а главное, эффективнее двоичной, не исключено, что в недалёком будущем к ней вернутся.