XII Международная студенческая научная конференция Студенческий научный форум — 2020

Троичный компьютер – утраченное чудо

Прежде чем рассказывать о троичном компьютере, давайте немного разберемся в определениях. До конца 1930-х годов, до появления первого в мире релейного компьютера Конрада Цузе (Konrad Zuse) в Германии, был всплеск разработок аналоговых машин, продолжавшийся, по крайней мере в СССР, почти до начала 1970-х годов. Аналоговая вычислительная машина (АВМ) – это устройство, решающее некоторый класс задач методом физического моделирования. АВМ могут быть механические, пневматические, гидравлические, электромеханические и электронные. Решение – это результаты измерения параметров процесса в виде отсчетов со шкал, графиков, выводимых на самописцы, электрических сигналов и т. д.

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

Дискретные ЭВМ – электронные вычислительные машины или, как теперь говорят, цифровые – это компьютеры, в которых программы и данные представлены в цифровом виде (обычно в виде двоично-кодированных электрических сигналов). Они работали медленнее (особенно первые релейные и ламповые машины), но у них нет проблем с точностью – достаточно увеличить разрядность для представления чисел. Почему для функционирования цифровых компьютеров была выбрана двоичная система счисления? Прежде всего потому, что реализовать схему некоего переключателя, имеющего всего два состояния («включено» – «выключено», или «0» и «1»), гораздо проще, чем схему, в которой, скажем, три состояния. Кроме того, в XVIII веке была разработана булева алгебра, которая хорошо описывала работу схем, составленных из двоичных элементов. Короче говоря, все сложилось.

«Да» и «нет» не хватает

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

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

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

В середине 1950-х годов троичный компьютер начали разрабатывать в Вычислительном центре МГУ коллективом разработчиков, возглавляемым Николаем Петровичем Брусенцовым. Мне известно о неудачной попытке в это же время сделать троичный компьютер в США.

Когда мобильников еще не было

Интересные тогда было годы, ни у кого компьютеров не было, несколько штук на всю страну, как не было и мобильных телефонов. Машинное время на первых ЭВМ распределяли руководители очень высокого уровня, даже замминистры. Первый троичный компьютер, назывался он «Малая автоматическая цифровая машина “Сетунь”», был успешно построен. Подробно прочитать о ней можно на страницах «Виртуального компьютерного музея» (www.computer-museum.ru/histussr/setun2.htm).

Вторая модель троичного компьютера, разработанная 10 годами позже («Сетунь 70»), была еще более успешной и серийно выпускалась в Казани. Однако межведомственные игры привели к закрытию выпуска машины и прекращению работ по дальнейшему развитию этой линии. На самом деле очень жаль, поскольку развитие данного направления позволило бы очень сильно изменить лицо современной вычислительной техники.

До нас периодически доходят слухи о разработках троичных компьютеров за рубежом, однако они, скорее всего, предназначены для бортовых систем и систем с искусственным интеллектом, поскольку троичные компьютеры прекрасно подходят для экспертных систем.

XII Международная студенческая научная конференция Студенческий научный форум — 2020

В истории вычислительной техники есть уникальная машина, производство которой было серийным. Данная разработка является примером нетрадиционного направления развития компьютерной техники. Важно отметить, что это полностью российская разработка была реализована в 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 году была построена трёхтритная цифровая компьютерная система TCA 2, которая, в отличие от «Сетуни», работала не на ферритдиодных магнитных усилителях переменного тока, а на интегральных транзисторах. Но это уже, как говорится, совсем другая история.

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

Помимо трита, в троичной логике, используемой «Сетуньей», аналогично двоичной системе, в которой есть бит и байт, применяется термин «трайт», являющийся минимальной непосредственно адресуемой единицей главной памяти «Сетуни», равный шести тритам, что примерно равен девяти с половиной битов. Таким образом, получается, что трайт чуть больше привычной единицы измерения двоичной системы байта. Два трайта равны 19 битам, три трайта – почти 29 битам и т.д. Он может принимать значения в довольно широком диапазоне – от -364 до 364.

Число разрядов процессора — 9 тритов. Тактовая частота процессора — 200 кГц.

На основе двоичной ферритодиодной ячейки Гутенмахера, которая представляет собой электромагнитное бесконтактное реле на магнитных усилителях трансформаторного типа, Н. П. Брусенцов разработал троичную ферритодиодную ячейку, которая работала в двухбитном троичном коде, т.е. один трит записывался в два двоичных разряда, четвёртое состояние двух двоичных разрядов не использовалось.

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

Основные преимущества, которые имеют троичные компьютеры по отношению к двоичным:

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

2) троичные компьютеры лучше приспособлены к троичным алгоритмам, которые работают быстрее двоичных алгоритмов;

3) при этом троичные компьютеры способны делать практически всё, что делают их двоичные коллеги, поскольку двоичная логика является центральным подмножеством троичной;

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

Говоря о будущем таких машин, как «Сетунь» (то есть троичных компьютеров), известный американский учёный Дональд Кнут, отмечал, что они занимают очень мало место в отрасли вычислительной техники, что объясняется массовым засильем двоичных компонентов, производимых в огромных количествах. Но, поскольку троичная логика гораздо эффектнее, а главное, эффективнее двоичной, не исключено, что в недалёком будущем к ней вернутся.

Компьютеры на троичной логике

+7 (499) 444-90-36 Отдел заботы о пользователях

Москва, Ленинский проспект, дом 6, строение 20

  • Участник Skolkovo
  • Премии Рунета 2018, 2019, 2020

Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies ?

Преимущества троичной логики

У некоторых людей эта логика вызывает затруднения. Они говорят, например: приведите пример подобной логики в жизни. Человек, немного подумавший над этой логикой поймет, что она более жизненна чем двоичная. Обычный пример троичной логики в жизни связан с постоянным током: ток движется в одну сторону, в другую сторону, его нет. 1. Меньше разрядов. Возьмем число 10 в десятичной СС и переведем его в двоичную СС, получим 1010, переведем в троичную симметричную СС, получим +0+, ну а если в троичную несимметричную СС, то получим 101. Из этого мы видим, что в некоторых числах в троичной симметричной и несимметричной СС-ах меньше разрядов, чем в двоичной СС. 2. Емкость. Троичная СС вмещает больший диапазон чисел, т.к. 3^n>2^n (где n-натуральное число) 3. Экономичность системы счисления

Экономичность системы счисления — запас чисел, который можно записать в данной системе с помощью определенного количества знаков. Чем больше запас тем экономичнее система. По затратам числа знаков (в трёх разрядном десятичном числе 3*10=30 знаков) наиболее экономична из позиционных показательных несимметричных систем счисления. Обозначим p основание системы счисления, n количество требуемых знаков. Тогда получим n/p разрядов требуемых для записи этого набора знаков в заданной системе счисления, а количество чисел которое при этом можно записать будет равно pn/p.

Советская «Сетунь» — единственная в мире ЭВМ на основе троичного кода

В году учёные из Московского государственного университета под руководством Николая Брусенцева разработали первую и единственную ЭВМ на основе троичной логики. Называлась она «Сетунь». Других компьютеров на основе троичного кода нет и не было.

«Сетунь»

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

Особенность троичной системы счисления в том, что цельночисленное основание в ней равно трём. Это значит, что всё множество целых чисел можно записать с помощью всего трёх цифр, например 0, 1, 2, 10, 11, 12 и так далее. 10 в данном случае соответствует цифре 3 из привычной нам десятичной системы.

Большинство современных компьютеров используют двоичную систему, где разряд равен степени двойки. Брусенцев и его группа пошли по иному пути — в их машине разряд был равен степени тройки. При работе машина использовала двухбитный троичный код. Единицами измерения были не биты, а триты (то есть не 0 и 1, а 0, 1 и 2). Минимальной единицей, с которой работала непосредственно память «Сетуни», был трайт, равный шести тритам (соответствует примерно 9,5 битам в современном двоичном представлении). Для «Сетуни» даже разработали собственный язык программирования — DSSP.

По современным меркам «Сетунь» не был мощным компьютером: тактовая частота процессора у него была всего 200 кГц. Но в году, когда создавались только первые прототипы ЭВМ и учёные ещё даже не договорились, сколько разрядов будет в байте, такая машина была выдающимся достижением. Ей было нужно обработать примерно в 1,5 раза меньше суммарных сложений, чем компьютеру с двоичной системой для той же задачи и за то же время. Так что и работать она могла в 1,5 раза быстрее. Закодировать тоже можно было больше.

Но в Советском Союзе было сделано всего 46 таких машин, 30 из которых отдали институтам по всей стране для решения задач средней сложности. Затем выпуск машин прекратился, несмотря на то, что у рабочего прототипа недостатков почти не было. Сам создатель машины Брусенцев говорил потом:

«„Сетунь“ мешала людям с косным мышлением, которые занимали высокие руководящие посты».

Николай Петрович Брусенцов

По всей видимости, чиновники посчитали, что на обслуживание машины уйдут огромные деньги. Но машина была до того простой, что обслуживать её не требовалось. Тем не менее, «те, кто душил „Сетунь“, раскидали её по всей стране». Итак, уникальный компьютер задавили бюрократы.

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

Александр Самсонов о троичной логике и цифровой археологии

В шестидесятые годы прошлого столетия в СССР разрабатывали уникальные вычислительные машины «Сетунь». В отличие от обычных компьютеров, они оперировали данными по законам не двоичной, а троичной логики (подробности — в статье Евгения Лебеденко «Tertium Datur»). Хотя исправных троичных ЭВМ не осталось, идея, на которой они были основаны, настолько интересна и необычна, что о «Сетуни» помнят до сих пор.

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

— Как вы наткнулись на эту тему?

— Совершенно случайно. Году в 1998 читал журнал American Scientist, и там была статья о троичной неуравновешенной системе исчисления. Потом, если не ошибаюсь, троичная логика была упомянута во втором томе Дональда Кнута, и каким-то образом мне попалась статья о том, что существовала даже троичная ЭВМ. Я начал интересоваться, ходить по библиотекам, пытаться найти публикации, меня это захватило.

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

— И теперь вы пытаетесь организовать тех, кто интересуется троичной логикой?

— Всего заинтересованных — несколько десятков, но постоянно контактируют и чем-то занимаются человек пять. В России только один человек, все остальные из других стран — Штатов, Швеции и так далее. В Украинском Институте кибернетики серьёзно занимались этой темой, были публикации, патенты, какие-то схемы на уровне того времени. И у нас в Институте прикладной математики Варшавский занимался этим. Но он сконцентрировался на математике, а потом, с его отъездом, исследования прервались.

— Что представляла собой «Сетунь», и откуда она взялась?

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

— А Николай Петрович вместо этого сказал, что ему не нравится двоичная логика?

— Не совсем так. Его направили в одно из КБ, которое занималось созданием ЭВМ. Он с большим интересом наблюдал, каким образом производится машина, и обратил внимание на то, что некоторые элементы недостаточно оптимально используются, в частности память. Поскольку было много брака, приходилось устанавливать в два раза больше элементов.

— То есть в машины тогда сразу ставили запасные элементы на случай неисправности?

— Да, поскольку часть элементов была бракованная, то один из них мог сработать, а второй — нет. Так вот, через какое-то время из-за ссоры в верхах университету отказались продавать машину. Сказали: «Разбирайтесь сами, покупайте в другом месте». В итоге в МГУ её решили разработать собственными силами.

У Николая Петровича уже было представление о том, как это делается и что должно получиться. Он обратил внимание на бесполезное удвоение элементов и попробовал реализовать троичные элементы. В результате количество элементов сократилось в семь раз по сравнению с тем, что он видел в КБ. При поддержке академика Соболева решили попробовать реализовать многозначную, полностью троичную машину — «Сетунь».

Конструкторские работы продолжались до 1957 года, и в 1958-59 годах «Сетунь» была запущена. Машина получилась, во-первых, на удивление небольшой, во-вторых, дешёвой, что потом сыграло с ней злую шутку. К тому же она заметно отличалась от всех остальных ЭВМ того времени, поскольку была троичной. Тем не менее, когда опытный образец показали на ВДНХ, он получил приз. Пошли разговоры о серийном производстве. В 1960-61 году на Казанском заводе вычислительных машин начали собирать «Сетунь».

— Тогда и появились те самые пятьдесят экземпляров?

— Да. Их строили очень долго, не больше десяти штук в год. В основном «Сетунь» расходилась по небольшим инженерным КБ, бюро и университетам. Насколько мне известно, одна из них стояла в академии Жуковского в Москве: с её помощью учили программированию и вели расчёты.

— И писали для этого собственный софт?

— Да. В то время это было нормально. Каждый получал машину практически безо всего и самостоятельно решал свои задачи.

— Как примерно выглядел этот агрегат?

— Он был относительно невелик — занимал площадь небольшой комнаты. Четыре небольших шкафа и две стойки: на одной пульт с индикаторами, а на другой — электрическая пишущая машинка, с помощью которой происходил набор данных. Фактически что-то вроде терминала: вводишь текст, и на бумаге остается всё, что набрал.

— Возможно ли описать производительность «Сетуни» в современных терминах?

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

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

— Какие же преимущества давала троичная логика?

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

— То есть это была исключительно счётная машина?

— Да, она создавалась именно для выполнения расчётов. А вот в первом варианте «Сетуни-70» уже были некоторые средства для выполнения логических операций.

— «Сетунь-70» начала разрабатываться сразу, как только первая «Сетунь» была закончена?

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

— И после этого появился единственный опытный экземпляр?

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

— Были ли другие исследования, связанные с троичной логикой?

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

— Выходит, виноваты транзисторы?

— Да. При реализации троичной логики на транзисторах требуется больше элементов, и на первый взгляд кажется, что это не так эффективно. Но здесь вот какая особенность: чем больше троичных элементов добавляешь, тем меньше соединений требуется. К тому же в определённый момент количество элементов начинает расти нелинейно. Когда число элементов переваливает некоторый порог, для увеличения сложности троичного компьютера требуется всё меньше и меньше элементов. Там, где двоичному компьютеру приходится удваивать количество элементов, троичному достаточно увеличить количество элементов только в полтора раза, потом в 1,3 раза и так далее.

— Существуют ли троичные машины, сопоставимые с «Сетунью-70»?

— Насколько мне известно, нет. Алгоритмов же написано много. Есть множество патентов как на электронику, так и на алгоритмы, которые упоминают и применяют в той или иной степени как классическое троичное представление данных (то есть смещённое от нуля — «один» и «два»), так и уравновешенное — «минус один», «ноль», «плюс один». Но я не слышал, чтобы кто-то пытался их серьёзно применять на практике. Известно, что студенческие коллективы предпринимали попытки построить подобный компьютер в Штатах, во Франции и в Новой Зеландии. В Испании построили троичный процессор с небольшим количеством памяти, но сейчас о нём уже ничего не узнать, кроме названия. Это сделали лет восемь назад, были публикации, но потом всё это пропало.

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

— Зато у вас есть два эмулятора «Сетуни».

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

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

— Как я понимаю, сейчас вы восстанавливаете программу из ПЗУ?

— Недавно была получена пачка листочков, на которых были распечатаны данные ПЗУ. К сожалению, есть одна сложность: никто точно не знает, в каком порядке нужно располагать эти страницы. Так что сейчас будет длительная работа с попыткой подобрать, посмотреть, какие части кода к чему подходят.

— После этого можно будет получить готовую «Сетунь-70»?

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

— Как программировали «Сетунь-70»?

— У программистов «Сетуни-70» был достаточно развитый инструментарий. В нём имелся, по-моему, ассемблер даже и то ли транслятор Фортрана, то ли компилятор Алгола.

— В коде приходилось как-то учитывать троичность?

— Есть операции перехода, которые в зависимости от знака тебя переводят. Если минус, то по одному адресу за одну операцию, если ноль — то по другому, если плюс — то по третьему.

— Какие алгоритмы больше всего выигрывают от троичной логики? Обход бинарного дерева?

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

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

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

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

Уравновешенное троичное представление имеет интересную особенность: поскольку оно уравновешенное, то содержит как положительные, так и отрицательные значения. То есть можно в некоторых алгоритмах добиться существенного прироста, например при сжатии. Здесь не нужно всегда только увеличивать словарь — в какой-то момент его можно и уменьшать. Это тоже даст небольшой выигрыш. Результат сжатия файла будет поменьше, чем у двоичного с тем же самым алгоритмом.

— Говорят ещё про удачное применение в механике, где троичный разряд описывает не только наличие тока, но и направление вращения ротора.

— Да, по своей природе уравновешенная троичная система исчисления позволяет обозначить одним разрядом не только включение и выключение мотора, но и включение со вращением в одну сторону и включение со вращением в другую сторону. Например, минус один — налево, плюс один — направо, ноль — не крутить вообще. Это удобнее, чем в двоичной системе, где сначала надо задать направление, а потом включить двигатель. На одно действие меньше.

— Если бы сегодня было возможно создать троичные процессоры, в какой области они пригодились бы?

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

— Сейчас очень актуален поиск и распознавание образов — в них троичная логика пригодилась бы?

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

— Со стороны это выглядит странно: с одной стороны, делается что-то новое, но речь в основном о старинном, давно не используемом компьютере. Кроме разработки эмулятора есть ли какие-то попытки сделать работающий троичный компьютер?

— Да, элементная база, к сожалению, осталась старая. Это большая проблема, а поиск новых компонентов, пригодных для этого, затруднён: единственное, что можно делать, — рассматривать большое количество элементов и пытаться понять, подходят они или нет. За несколько лет удалось подобрать только два элемента — операционные усилители, КМОП-ключи 403. И ещё некоторые оптические компоненты. На заказ сделать, конечно, можно, но кто будет этим заниматься? Если делать микросхемы, то нужно обращаться в Зеленоград и пытаться оформить какой-нибудь минимальный заказ, чтобы посмотреть. Это можно сделать, но бесплатно никто работать не станет, а будет ли дальнейшее развитие — неясно. К тому же процесс выпуска серии микросхем нас задержит на некоторое время.

— Есть ли шанс, что новые троичные компьютеры окажутся выгоднее обычных?

— Поначалу, конечно, нет. Придётся ведь всё разрабатывать с нуля, начиная с элементной базы. Чтобы это оправдалось, нужен большой прирост эффективности при обработке данных.

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

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

— Но если вдруг появится какая-то элементная база, которая дает это естественным образом, сразу все старые наработки сразу пригодятся, так?

— Да, всё можно достаточно быстро адаптировать. Это один из вариантов будущего. Когда упрётся прирост производительности нынешней архитектуры, почему не пойти по пути расширения количества разрядов разрядности? Ну и ещё есть квантовые компьютеры, они тоже оперируют не всегда двоичными данными, здесь может оказаться больше возможностей.

Читайте также: Tertium datur: другие компьютеры. Полвека назад на эволюционном древе вычислительной техники появилась особая ветвь — ЭВМ, в основе которых лежала логика, отличающаяся от двоичной. Их разработали в МГУ.

Оцените статью
Fobosworld.ru
Добавить комментарий

Adblock
detector