"Сетунь" - единственный серийный троичный компьютер. Троичный компьютер Кем и когда была разработана эвм сетунь

Tertium datur: другие компьютеры Полвека назад на эволюционном древе вычислительной техники появилась особая ветвь - ЭВМ, в основе которых лежала логика, отличающаяся от двоичной. Их разработали в МГУ. Автор: Евгений Лебеденко, Mobi.ru | Раздел: Статьи | Дата: 29 декабря 2011 года "Наука умеет много гитик". Это карточное высказывание как нельзя лучше подходит к истории разработки троичных компьютеров "Сетунь". Хотя бы потому, что, создавая их, разработчики смело шагнули с истоптанной веками дороги традиционной математической логики на малоизученные тропинки логики многозначной. Или потому, что советскому троичному компьютеру пришлось столкнуться со множеством препон и преодолеть их, постоянно доказывая свою жизнеспособность.
Один факт остаётся по-настоящему непреложным: в начале шестидесятых годов прошлого столетия на эволюционном древе вычислительной техники появилась особая ветвь - ЭВМ, в основе которой лежала логика, отличающаяся от бинарной. Даже сегодня, спустя полвека с момента рождения троичного компьютера, ветвь эта выглядит эдаким вавиловским гибридом, несколько неуместным на фоне достижений двоичной электроники. Но это обманчивое впечатление. "Сетунь" - не тупиковое направление, а первый пробный шаг учёных и инженеров на пути преодоления несовершенств компьютеров, сделанных по "принципу исключённого третьего". И уже одно это - великий вклад в развитие вычислительной техники. Появление ЭВМ "Сетунь" Рассказывать историю разработки компьютера "Сетунь" легко и сложно одновременно. Легко, потому что у неё, как у большинства историй появления новых технологий, есть главный герой. Человек, который своим упорством и трудолюбием делает эти технологии возможными. Генератор идей, погрузившийся в проблему с головой. В истории ЭВМ "Сетунь" главный герой - это Николай Петрович Брусенцов, главный конструктор троичного компьютера.
Николай Петрович Брусенцов И именно это делает рассказ о появлении "Сетуни" сложным, поскольку промежуток от первоначального замысла до его воплощения в "железе" наполнен множеством разных людей и событий. Началась история "Сетуни" в 1952 году, в специальном конструкторском бюро Московского государственного университета, куда по распределению попал выпускник МЭИ Николай Брусенцов. В теории бюро должно было совершенствовать техническое оснащение учебного процесса, на практике же оно зачастую решало совершенно другие задачи, выполняя заказы для сторонних НИИ и производств. Молодого инженера Брусенцова такое положение дел совершенно не радовало, поэтому он с энтузиазмом принял предложение заведующего кафедрой вычислительной математики механико-математического факультета МГУ академика Соболева участвовать в получении, установке и настройке вычислительной машины "М-2", разрабатываемой лабораторией электросистем его альма-матер под руководством Исаака Семёновича Брука. Сергей Львович Соболев прекрасно понимал перспективы применения цифровых ЭВМ в учебной и научной деятельности МГУ и изо всех сил способствовал появлению в университете собственного вычислительного центра. Однокурсники Брусенцова, работавшие в лаборатории Брука, на всю жизнь "заразили" Николая Петровича цифровыми ЭВМ. История, однако, по-своему распорядилась судьбой "М-2". Машина так и не попала в стены МГУ, несмотря на то что довольно активно использовалась его учёными. Всё потому, что в баталиях научных школ, зарождающейся тогда области вычислительной техники, академик Соболев поддержал направление высокопроизводительных компьютеров Сергея Алексеевича Лебедева, а не малых ЭВМ Брука. Именно благодаря этому конфликту интересов Соболев принял решение о разработке в МГУ собственной малой ЭВМ, способной решать насущные вузовские проблемы. Увлечённость Николая Брусенцова компьютерами помогла ему попасть в отдел электроники вычислительного центра МГУ, перед которым и была поставлена задача разработать новую ЭВМ. В поисках элементной базы, наиболее приемлемой по соотношению надёжности, производительности и цены, инженера Брусенцова откомандировали в лабораторию электромоделирования Льва Израильевича Гутенмахера при Институте точной механики и вычислительной техники Академии наук СССР, где в 1954 году была разработана безламповая ЭВМ "ЛЭМ-1". В качестве схемотехнической единицы "ЛЭМ-1" инженеры лаборатории Гутенмахера использовали трёхфазные феррит-диодные логические элементы - уникальную комбинацию запоминающих ячеек на базе ферритовых колец и полупроводниковых диодов. В этих логических элементах ферритовые кольца играли роль сердечников трансформатора и служили для хранения единиц и нолей - базовых компонентов двоичной логики, а диоды использовались в качестве вентилей в цепях связи между ними. Типовым элементом "ЛЭМ-1" был феррит-диодный регистр сдвига, состоящий из трёх ферритовых колец: входного (записывающего), канального (считывающего, тактового) и выходного (связывающего регистр с последующими элементами).

Феррит-диодные логические элементы Эта достаточно элегантная схема феррит-диодного регистра усложнялась за счёт включения в её состав дополнительных компенсирующих сердечников, устраняющих импульсы помехи в выходном ферритовом кольце. Вызванная неидеальностью петли гистерезиса ферритовых колец, эта помеха могла, при повышении рабочей температуры, достигнуть уровня сигнала. Николаю Брусенцову было очевидно, что подобная схема далека от идеала. Поэтому он предложил её усовершенствовать, введя в цепь рабочих сердечников постоянное напряжение, которое запирало диод. Это решение исключало появление помехи, а значит, не требовало использования компенсирующих магнитных колец. Их теперь можно было применить в качестве второй пары рабочих сердечников, функционирующих встречно основной рабочей паре. Вот так модернизация несовершенной элементной базы "ЛЭМ-1" способствовала появлению феррит-диодного логического элемента, который мог параллельно передавать две не совпадающие по времени последовательности сигналов - основу троичного кода. Троичная логика против двоичной Бинарная логика, являющаяся основой современной вычислительной техники, воспринимается сегодня как некая аксиома, истинность которой не подвергается сомнению. И действительно, кодирование информации с помощью наличия или отсутствия сигнала кажется самым подходящим способом реализации цифровых систем. Но так ли это? Правила работы компьютеров определяют люди. Использование двоичной логики в вычислительном процессе - не закон природы, а сознательное решение, которое кто-то когда-то принял, потому что оно удовлетворяло разработчиков компьютеров, программистов и пользователей, решающих свои задачи. Почему именно двоичная логика стала базой современных ЭВМ? Ответ представляется очевидным. Исторически математическая логика опиралась на идею "третьего не дано", сводя процесс логических умозаключений к бинарным решениям. Эта догма классической логики обязана рождением принципу бивалентности логических суждений, введённому яростным стоиком Хризиппом и поддерживаемому авторитетом Аристотеля. "Фундаментом диалектики служит тезис, что всякое высказывание (то, что называют "аксиомой") или истинно, или ложно", - говорил Цицерон. Простота бивалентности действительно неплохо описывает логические реалии жизни. Стоит вспомнить семафоры, пешеходные переходы и тумблеры "вкл-выкл". Бинарность неплохо управляет повседневностью. Давайте взвесим на обычных рычажных весах два предмета А и В. Весы с лёгкостью позволят определить нам две противоположности: вес А > В и вес А < В. Но разве это всё? А как же А = В? Выходит, задача о весе А и В имеет три решения. Именно так.
Обычные рычажные весы могут отлично работать в качестве троичного логического элемента Так же как третье решение имеет исход футбольного матча (ничья), нейтралитет Швейцарии (третья сторона) и неопределённое "может быть", полученное в ответ на конкретный вопрос. Превратив рычажные весы в двоичный прибор, мы столкнёмся с неопределённостью A © В, разрешить которую можно, только поменяв взвешиваемые А и В местами, то есть выполнив лишнюю операцию.
Установив фиксатор под одним из рычагов, весы можно превратить в бинарный логический элемент со всеми присущими ему недостатками. Логику повседневной жизни сложно впихнуть в чёрно-белую картину бивалентности - это осознавали многие мыслители. В результате на свет появились неклассические логики, отказавшиеся от закона исключённого третьего. Один из первых вариантов многозначной логики в двадцатых годах прошлого столетия разработал польский учёный Ян Лукасевич. В его трёхзначной логике кроме полярных "да" и "нет" появилось значение "возможно". Трёхзначные логические высказывания Лукасевича допускали отсутствие непротиворечивости и назывались модальными. Помните консилиум в сказке о Буратино? "Пациент скорее жив, чем мёртв". "Скорее жив" и есть модальное логическое высказывание. Автор приключений Алисы Льюис Кэрролл разработал трёхзначную алгебру, применив третью характеристику объекта - "несущественность" наряду с "существованием" и "несуществованием". В вычислительной технике безупречность булевой алгебры начинает давать сбои при работе с отрицательными значениями. Ведь для представления отрицательного числа в бинарном виде нужно ввести дополнительный бит. То самое "третье", с помощью которого можно определить знак числа в двоичном коде. О том, что такое кодирование является нетрадиционным, говорит его даже название - дополнительный код. Получается, что для простоты реализации в ЭВМ операций для положительных и отрицательных чисел их разработчики сознательно отошли от двоичной логики в пользу того самого "исключенного третьего".
Двоичный алгоритм проверки знака переменной Х не оптимален, в то время как в троичном алгоритме проверка выполняется с помощью всего одной операции. Ещё один недостаток двоичной логики - тот факт, что без дополнительных "костылей" в ней не реализовать основное логическое выражение - следование. Попытка реализовать трёхзначность следования силами двузначной логики привела к тому, что это логическое выражение фактически подменили материальной импликацией. В вычислительных алгоритмах этот фокус сработал, а вот попытка реализации на компьютере вывода умозаключений провалилась. Подмена следования двузначной материальной импликацией ограничивает "интеллектуальность" ЭВМ. Человек с его способностью быстро перейти от двоичной логики к троичной, соглашаясь в нужный момент на "ничью", оказался намного гибче компьютера. А что если логику компьютера изначально сделать троичной? Так рассуждал Николай Петрович Брусенцов, представляя осенью 1956 года на семинаре, посвящённом разработке МГУшной ЭВМ, магнитный усилитель с питанием импульсами тока - тот самый, модифицированный им феррит-диодный регистр. Его ключевой особенностью было формирование тройки значений: 1, 0 и -1 - идеальный вариант цифрового элемента, работающего с троичной логикой. Николай Петрович Брусенцов рассказал в интервью "Компьютерре" о преимуществах троичной логики: "Люди настолько "околпачены" законом исключённого третьего, что не в состоянии понять, как всё обстоит на самом деле. На самом же деле двоичная логика совершенно не подходит даже для описания основного логического выражения - следования. При попытке описания в двоичной логике нормальной дизъюнктивной формы следования оно превращается либо в тождество, либо в пресловутую материальную импликацию. Математик С.К. Клини и его книга "Математическая логика" в своё время оказали такое влияние на этот раздел математики, что сегодня практически ни в одном учебнике математической логики не найти отношения следования. Ссылаясь на Аристотеля, Клини заменил следование на материальную импликацию ("Два проще, а потому и полезней"). Логики, конечно, признают, что материальная импликация в постановке Клини - отношение, не имеющее смысла. Дело в том, что все логики пытаются выразить отношение следования, используя закон исключённого третьего, а такого закона в природе нет, потому что отношение следования трёхзначное..." "...Недостаток двоичной логики мы обнаружили, когда попытались научить компьютер делать умозаключения. Оказалось, что с использованием двузначной логики это невозможно. Люди, делая умозаключения, выходят из положения, убирая в нужный момент двоичную логику и используя отношение следования, а значит - трёхзначную логику". Триты и трайты Три вида сигналов, формируемые базовым элементом будущего троичного компьютера, его создатели назвали тритом. Если принять бит за меру количества информации, то информационная ёмкость трита будет равна примерно 1,5. А это значит, что при прочих равных условиях троичный компьютер обрабатывает в единицу времени больше информации, чем двоичный. Минимальной адресуемой единицей памяти проектируемого троичного компьютера стал трайт, равный шести тритам и принимающий значения от -364 до 364. Работа с диапазоном отрицательных значений - особенность, отличающая трайт от двоичного байта, значения которого распространяются от 0 до 255.
Информационная ёмкость трайта такова, что с его помощью легко можно закодировать все заглавные и строчные символы русского и латинского алфавитов, математические и служебные символы. Уникальная особенность троичного кода, применяемого в "Сетуни", связана с его симметричностью - распространением значений как в положительную, так и в отрицательную область. Благодаря симметричности в троичном компьютере отрицательные числа представлялись естественным путём - без хитроумных манипуляций с дополнительным кодом. Уже одна эта особенность существенно упростила как систему команд "Сетуни", так и её архитектуру.

Блок-схема компьютера "Сетунь" Набор команд "Сетуни" состоял всего из двадцати четырёх операций, три из которых были зарезервированы и никогда не использовались. Под код операции отводилось три трита. Шеститритовая адресная часть операции содержала: адрес, указание длины операнда и трит индексации (сложить, вычесть или не индексировать). Шесть тритов адреса позволяли адресовать сто шестьдесят два девятитритных слова, разбитых на три страницы памяти. Реализация "Сетуни" в "железе" была весьма простой. Структурной единицей компьютера стала ячейка, представляющая собой феррит-диодный магнитный усилитель, собранный на гетинаксовой основе. Генератор тактовой частоты задавал такт работы ячеек в двести герц.

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

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

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

Реализации первого варианта "Сетуни" (1958 год) и экземпляр, демонстрировавшийся на ВДНХ в 1961 году Более того, проект "Сетунь" попал под закрытие в рамках наведения порядка в разнообразном парке советских ЭВМ того времени. Один из членов государственного радиотехнического комитета (ГКРЭ), всеми уважаемый директор конструкторского бюро, отмахнулся от "Сетуни" фразой: "Нам видеть её и знать не надо. Покажите бумагу с авторитетными подписями и печатями". Только благодаря вмешательству академика Соболева межведомственная комиссия ГКРЭ летом 1960 года провела тщательные недельные испытания троичного компьютера, в результате которых признала "Сетунь" "первым действующим образцом универсальной вычислительной машины на безламповых элементах, создание которой является определённым достижением в вычислительной технике". Ни больше ни меньше. Серийное производство троичного компьютера навязали Казанскому заводу математических машин, хотя Брусенцов с командой разработчиков получал предложения от других производителей, в том числе и из-за рубежа. Казанские инженеры, не вдохновлённые низкой стоимостью "Сетуни" (27 500 рублей), не горели желанием выпускать её серийные образцы в запланированные сроки. При том, что феррит-диодные усилители, базовые элементы троичного компьютера, поставляли в Казань с Астраханского завода электронной аппаратуры, они стоили всего три рубля пятьдесят копеек. Более того, своими "инженерными" изысканиями казанские производители так и норовили внести в отлаженную конструкцию троичного компьютера модификации, приводившие к его неработоспособности. Бригада разработчиков "Сетуни" фактически поселилась на заводе, занимаясь постоянной отладкой серийных машин.

Дружный коллектив разработчиков "Сетуни" Несмотря на все препоны, к 1965 году завод произвёл и реализовал пятьдесят экземпляров "Сетуни". Промышленные образцы компьютера заработали по всей стране - в военно-воздушной академии имени Жуковского и в одесском НИИ "Пищепромавтоматика", в якутском институте космофизических исследований и ведущих московских вузах. И везде "Сетуни" зарекомендовали себя исключительно надёжными и простыми в освоении и эксплуатации машинами. Так, первый вариант "Сетуни", собранный для вычислительного центра МГУ, безотказно трудился более пятнадцати лет. "Сетунь-70" Идеи, заложенные в архитектуру первого троичного компьютера и реализованные в "Сетуни", оказались настолько удачными, что в 1967 году было принято решение выпустить её модифицированную версию. Наряду с аппаратными улучшениями (увеличение объёма оперативной памяти, реализация системы прерываний, уменьшение потребляемой мощности и размеров ЭВМ), важнейшим нововведением стала реализация двухстековой архитектуры. Выпущенный в 1970 году вариант обновлённого троичного компьютера получил название "Сетунь-70".



Стремление к реализации более продуманного и компактного представления программ привело разработчиков "Сетуни-70" к идее отказа от традиционного машинного кода и использования в качестве машинного языка обратной польской записи (ПОЛИЗ). Стандартные машинные команды, состоящие из кода операции и адреса операнда были заменены на трайты операций и операндов. Применение обратной польской записи и обусловило стековую архитектуру "Сетуни-70". В первом стеке адресные трайты управляют передачей данных из оперативной памяти в стек, а операционные трайты - преобразованием данных и возвращением результата из стека в оперативную память. При этом, как и положено при стековой обработке, эти операции выполняются над данными в вершине стека и нижележащими данными. Пятьдесят четыре операции были реализованы аппаратно. Из них половина была операциями общего пользования, а оставшиеся двадцать семь были служебными и не могли выполняться в пользовательском режиме. Кроме аппаратных операций "Сетунь-70" поддерживала работу с двадцатью семью макрооперациями - подпрограммами, создаваемыми пользователем и по мере надобности вызываемыми из оперативной памяти. Для работы с макрооперациями использовался второй (системный) стек ЭВМ.
Академик Соболев постоянно курировал проект троичного компьютера, используя свой авторитет в случае бюрократических препон и проволочек Подобная реализация архитектуры "Сетуни-70" была неслучайной. Применение стеков и разработка операций в нотации ПОЛИЗ предполагали внедрение в процесс разработки программ идей структурированного программирования, концепция которого была предложена Эдсгером Дейкстрой. Структурированный подход существенно экономил время на разработку и отладку сложных программ, разбивая их на ряд структурных единиц, с каждой из которых можно было работать как с независимым объектом. Специально для реализации этой идеи разрабатывалась среда ДССП (Диалоговая система структурированного программирования) - прообраз нынешних интегрированных сред программирования. К сожалению, как следует обкатать идеи, реализованные в "Сетуни-70", не получилось. Очередная волна бюрократических зачисток, направленная на искоренение в вузах проектов разработки собственных ЭВМ, привела к тому, что "Сетунь-70" переселилась на чердак студенческого общежития в главном корпусе МГУ. Возможно, её судьба была бы аналогична судьбе первой "Сетуни", варварски уничтоженной после многолетнего труда, если бы не научно-исследовательская работа "Разработка автоматизированной обучающей системы на базе малой цифровой машины". Так "Сетунь-70" превратилась в электронного учителя и экзаменатора, а её ведущий системный программист Хосе Рамиль Альварес стал разработчиком программно-аппаратного комплекса "Наставник" - уникальной в своем роде обучающей среды. Хосе Рамиль Альварес рассказывает: "После того как нашей лаборатории запретили заниматься компьютерами, профессор МВТУ имени Баумана Анисимов предложил Николаю Петровичу Брусенцову заняться применением компьютеров в обучении, чтобы, как он выразился, "никто не сказал, что мы этого не можем". Вот тогда Николай Петрович предложил мне перейти к нему для развития идей программированного обучения. До этого я занимался эмуляцией команд "Сетуни-70" на "Сетуни" для отладки макропрограмм системы ДССП. С самого начала нашей работы Николай Петрович сказал, что "Наставник" не пойдёт в серию, как из-за дешевизны производства, так и из-за того, что система не позволяла халтурить ни ученику, ни преподавателю... ...Однажды к Николаю Петровичу пришёл академик Бахвалов и сказал, что ему необходимо ехать в командировку, а у него в это время должен быть коллоквиум по численным методам. Нельзя ли для его проведения использовать "Наставник"? Мы рассказали ему идею системы, Бахвалов сделал шаблоны заданий, и коллоквиум успешно прошёл. Позже, во время пересдачи тестов, мы с Бахваловым наблюдали, как один студент сел за тот же терминал "Наставника", что и в прошлый раз, думая, что ему попадутся те же самые вопросы. Я пояснил, что вопросы выбираются случайным образом. Бахвалов спросил, какой алгоритм используется в качестве генератора случайных чисел. "Всё очень просто, - ответил я, - алгоритм подсчитывает число нажатий на клавиши терминалов во всём дисплейном классе. А это всякий раз случайное число..." В 1974 году компьютерный класс на базе "Сетуни-70" с подключёнными к ней двадцатью семью терминалами принял первых учеников - сто пятьдесят студентов, изучающих курс численного анализа. В дальнейшем был реализован курс обучения языку Фортран.

Терминал системы "Наставник"

Руководство по эксплуатации "Наставника"

Архивы результатов тестирования студентов Программные и аппаратные решения "Наставника", успешно проверенные на базе "Сетуни-70", позволили позже реализовать эту обучающую среду на базе ЭВМ ДВК-2М. В таком модифицированном виде "Наставник" функционирует в МГУ до сих пор. Есть ли шанс у троичной логики? Конечно, разработку троичных компьютеров "Сетунь" можно считать случайным выбросом среди гладкого графика развития двоичной цифровой логики. Однако это слишком упрощённое представление. Троичная логика находит всё более широкое применение в области телекоммуникаций. Нынешнее поколение высокоскоростных модемов вместо применяемого ранее двухчастотного способа передачи данных применяет трёхчастотный, полосу частот в котором формируют два троичных трёхчастотных генератора, которые за один такт способны передать девять кодов. Кроме того, разработчики микропроцессорной техники всё чаще заглядываются на многозначные логики, в частности на их троичную реализацию. Такие компании, как IBM, Motorola и Texas Instruments, ведут исследования с кремниево-германиевыми сплавами (SiGe), в рамках которых можно реализовать цифровые интегральные схемы, работающие с тремя и более уровнями сигнала. С позиций реализации компьютер с шестнадцатиразрядной шиной обеспечивает поддержку 216 (65536) адресов памяти, в то время как троичный компьютер аналогичной разрядности поддерживает 316 - около сорока трёх миллионов адресов. Есть над чем задуматься, учитывая более простую работу троичной логики с отрицательными значениями, что также существенно упростит архитектуру микропроцессоров. Остаётся надеяться, что души "Сетуни" и "Сетуни-70" обретут троичное бессмертие не только в программных эмуляторах, но и в будущих поколениях компьютеров, которые не будут знать, что "третьего не дано". Читайте также: Александр Самсонов о троичной логике и сетевой археологии. Энтузиаст, пытающийся возродить "Сетунь-70" в виде программного эмулятора, рассказал "Компьютерре" о малоизвестной истории "Сетуни" и практических преимуществах троичной логики. ДОБАВКА из другого источника. В 1965 году "Сетунь" была снята с производства, а сам проект - практически свёрнут. Однако о машине вспомнили к 100-летию со дня рождения Ленина - тогда было принято делать "родине и партии" всякого рода "производственные подарки". Коллектив ВЦ МГУ взял обязательство к этой дате разработать "Сетунь-70". Это, впрочем, оказалась уже фактически другая машина. Новая ЭВМ основывалась на стековом принципе, по аналогии с уже разрабатывавшимся тогда "Эльбрусом". Однако "Эльбрус" имел лишь один стек - стек операндов. Его более поздний конкурент - американский компьютер PDP-11 - также имел один стек - процедурный. "Сетунь-70" заметно опередила своё время, так как изначально имела два стека - команд и операндов. В техническом отношении "Сетунь-70" была намного совершеннее "Сетуни". Так, реализация однопроводной передачи трёхзначных сигналов позволила почти вдвое уменьшить число электрических соединений; логические элементы стали проще, миниатюрней и при большей релейности потребляли в 2,5 раза меньше энергии. Также были значительно улучшены параметры троичной памяти и магнитной записи троичного кода. Дальнейшее развитие получила пороговая техника осуществления операций трёхзначной логики. Разработанная применительно к электромагнитным средствам, эта техника была переносима и на полупроводниковые элементы, например, типа И2Л. Примерно тогда же появились разработки в области структурного программирования и обнаружилось, что "Сетунь-70" лучше всех других ЭВМ подходит для реализации этой идеи. По словам разработчиков, "программирование на "Сетунь-70" было даже не структурированное, а структурирующее. Программы получались легко читаемыми и осваиваемыми, легко модифицированными. Эти программы не подвергались отладке, а делалась так называемая контрольная сборка. После того, как программу сверху вниз написали, её проходили снизу вверх. После этого программа оказывалась, как правило, безошибочной". Интересный момент: принято считать, что в некоторой степени американским аналогом "Сетуни" был компьютер PDP-8, известный многим по биографии Билла Гейтса. Но всё же сравнивать "Сетунь" и PDP-8 достаточно сложно. Процессор PDP-8 был восьмибитный, а в "Сетуни" процессор (в пересчёте на биты) был 30-битным. PDP-8 стоила $20 тыс. без периферии, и эта цена считалась рекордно низкой. "Сетунь" стоила 27,5 тысяч советских рублей со всей периферией.


Tertium datur: другие компьютеры

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

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

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

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


Появление ЭВМ "Сетунь"

Рассказывать историю разработки компьютера "Сетунь" легко и сложно одновременно. Легко, потому что у неё, как у большинства историй появления новых технологий, есть главный герой. Человек, который своим упорством и трудолюбием делает эти технологии возможными. Генератор идей, погрузившийся в проблему с головой.

В истории ЭВМ "Сетунь" главный герой - это Николай Петрович Брусенцов, главный конструктор троичного компьютера.

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

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

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

Однокурсники Брусенцова, работавшие в лаборатории Брука, на всю жизнь "заразили" Николая Петровича цифровыми ЭВМ.

История, однако, по-своему распорядилась судьбой "М-2". Машина так и не попала в стены МГУ, несмотря на то что довольно активно использовалась его учёными. Всё потому, что в баталиях научных школ, зарождающейся тогда области вычислительной техники, академик Соболев поддержал направление высокопроизводительных компьютеров Сергея Алексеевича Лебедева, а не малых ЭВМ Брука.

Именно благодаря этому конфликту интересов Соболев принял решение о разработке в МГУ собственной малой ЭВМ, способной решать насущные вузовские проблемы.

Увлечённость Николая Брусенцова компьютерами помогла ему попасть в отдел электроники вычислительного центра МГУ, перед которым и была поставлена задача разработать новую ЭВМ. В поисках элементной базы, наиболее приемлемой по соотношению надёжности, производительности и цены, инженера Брусенцова откомандировали в лабораторию электромоделирования Льва Израильевича Гутенмахера при Институте точной механики и вычислительной техники Академии наук СССР, где в 1954 году была разработана безламповая ЭВМ "ЛЭМ-1". В качестве схемотехнической единицы "ЛЭМ-1" инженеры лаборатории Гутенмахера использовали трёхфазные феррит-диодные логические элементы - уникальную комбинацию запоминающих ячеек на базе ферритовых колец и полупроводниковых диодов. В этих логических элементах ферритовые кольца играли роль сердечников трансформатора и служили для хранения единиц и нолей - базовых компонентов двоичной логики, а диоды использовались в качестве вентилей в цепях связи между ними.

Типовым элементом "ЛЭМ-1" был феррит-диодный регистр сдвига, состоящий из трёх ферритовых колец: входного (записывающего), канального (считывающего, тактового) и выходного (связывающего регистр с последующими элементами).

Феррит-диодные логические элементы

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

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

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

Троичная логика против двоичной

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

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

Почему именно двоичная логика стала базой современных ЭВМ? Ответ представляется очевидным. Исторически математическая логика опиралась на идею "третьего не дано", сводя процесс логических умозаключений к бинарным решениям.

Эта догма классической логики обязана рождением принципу бивалентности логических суждений, введённому яростным стоиком Хризиппом и поддерживаемому авторитетом Аристотеля. "Фундаментом диалектики служит тезис, что всякое высказывание (то, что называют "аксиомой") или истинно, или ложно", - говорил Цицерон.

Простота бивалентности действительно неплохо описывает логические реалии жизни. Стоит вспомнить семафоры, пешеходные переходы и тумблеры "вкл-выкл". Бинарность неплохо управляет повседневностью.

Давайте взвесим на обычных рычажных весах два предмета А и В. Весы с лёгкостью позволят определить нам две противоположности: вес А > В и вес А < В. Но разве это всё? А как же А = В? Выходит, задача о весе А и В имеет три решения. Именно так.

Обычные рычажные весы могут отлично работать в качестве троичного логического элемента

Так же как третье решение имеет исход футбольного матча (ничья), нейтралитет Швейцарии (третья сторона) и неопределённое "может быть", полученное в ответ на конкретный вопрос.

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

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

Логику повседневной жизни сложно впихнуть в чёрно-белую картину бивалентности - это осознавали многие мыслители. В результате на свет появились неклассические логики, отказавшиеся от закона исключённого третьего. Один из первых вариантов многозначной логики в двадцатых годах прошлого столетия разработал польский учёный Ян Лукасевич. В его трёхзначной логике кроме полярных "да" и "нет" появилось значение "возможно". Трёхзначные логические высказывания Лукасевича допускали отсутствие непротиворечивости и назывались модальными. Помните консилиум в сказке о Буратино? "Пациент скорее жив, чем мёртв". "Скорее жив" и есть модальное логическое высказывание.

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

Двоичный алгоритм проверки знака переменной Х не оптимален, в то время как в троичном алгоритме проверка выполняется с помощью всего одной операции.

Ещё один недостаток двоичной логики - тот факт, что без дополнительных "костылей" в ней не реализовать основное логическое выражение - следование.

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

А что если логику компьютера изначально сделать троичной? Так рассуждал Николай Петрович Брусенцов, представляя осенью 1956 года на семинаре, посвящённом разработке МГУшной ЭВМ, магнитный усилитель с питанием импульсами тока - тот самый, модифицированный им феррит-диодный регистр. Его ключевой особенностью было формирование тройки значений: 1, 0 и -1 - идеальный вариант цифрового элемента, работающего с троичной логикой.

Николай Петрович Брусенцов рассказал в интервью "Компьютерре" о преимуществах троичной логики: "Люди настолько "околпачены" законом исключённого третьего, что не в состоянии понять, как всё обстоит на самом деле. На самом же деле двоичная логика совершенно не подходит даже для описания основного логического выражения - следования. При попытке описания в двоичной логике нормальной дизъюнктивной формы следования оно превращается либо в тождество, либо в пресловутую материальную импликацию.

Математик С.К. Клини и его книга "Математическая логика" в своё время оказали такое влияние на этот раздел математики, что сегодня практически ни в одном учебнике математической логики не найти отношения следования. Ссылаясь на Аристотеля, Клини заменил следование на материальную импликацию ("Два проще, а потому и полезней"). Логики, конечно, признают, что материальная импликация в постановке Клини - отношение, не имеющее смысла.

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

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

Триты и трайты

Три вида сигналов, формируемые базовым элементом будущего троичного компьютера, его создатели назвали тритом. Если принять бит за меру количества информации, то информационная ёмкость трита будет равна примерно 1,5. А это значит, что при прочих равных условиях троичный компьютер обрабатывает в единицу времени больше информации, чем двоичный.

Минимальной адресуемой единицей памяти проектируемого троичного компьютера стал трайт, равный шести тритам и принимающий значения от -364 до 364. Работа с диапазоном отрицательных значений - особенность, отличающая трайт от двоичного байта, значения которого распространяются от 0 до 255.

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

Уникальная особенность троичного кода, применяемого в "Сетуни", связана с его симметричностью - распространением значений как в положительную, так и в отрицательную область. Благодаря симметричности в троичном компьютере отрицательные числа представлялись естественным путём - без хитроумных манипуляций с дополнительным кодом.

Уже одна эта особенность существенно упростила как систему команд "Сетуни", так и её архитектуру.

Блок-схема компьютера "Сетунь"

Набор команд "Сетуни" состоял всего из двадцати четырёх операций, три из которых были зарезервированы и никогда не использовались. Под код операции отводилось три трита. Шеститритовая адресная часть операции содержала: адрес, указание длины операнда и трит индексации (сложить, вычесть или не индексировать). Шесть тритов адреса позволяли адресовать сто шестьдесят два девятитритных слова, разбитых на три страницы памяти.

Реализация "Сетуни" в "железе" была весьма простой. Структурной единицей компьютера стала ячейка, представляющая собой феррит-диодный магнитный усилитель, собранный на гетинаксовой основе. Генератор тактовой частоты задавал такт работы ячеек в двести герц.

Сумматор

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

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

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

"Нам видеть её и знать не надо"

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

Однако простота и естественность работы с "Сетунью", обусловленная применением в ней троичной логики, снискала добрую славу. На варианте компьютера, установленном в вычислительном центре МГУ, решались экономические задачи, велись метеорологические расчёты, обрабатывались самые разнообразные статистические данные.

Попытка запустить массовое производство "Сетуни" не просто не увенчалась успехом, а чуть было не закончилась закрытием проекта. На тщательно сделанный и оттестированный образец "Сетуни", установленный на выставке научно-технических достижений вузов, высокое руководство не обратило никакого внимания.

Реализации первого варианта "Сетуни" (1958 год) и экземпляр, демонстрировавшийся на ВДНХ в 1961 году

Более того, проект "Сетунь" попал под закрытие в рамках наведения порядка в разнообразном парке советских ЭВМ того времени. Один из членов государственного радиотехнического комитета (ГКРЭ), всеми уважаемый директор конструкторского бюро, отмахнулся от "Сетуни" фразой: "Нам видеть её и знать не надо. Покажите бумагу с авторитетными подписями и печатями". Только благодаря вмешательству академика Соболева межведомственная комиссия ГКРЭ летом 1960 года провела тщательные недельные испытания троичного компьютера, в результате которых признала "Сетунь" "первым действующим образцом универсальной вычислительной машины на безламповых элементах, создание которой является определённым достижением в вычислительной технике". Ни больше ни меньше.

Серийное производство троичного компьютера навязали Казанскому заводу математических машин, хотя Брусенцов с командой разработчиков получал предложения от других производителей, в том числе и из-за рубежа.

Казанские инженеры, не вдохновлённые низкой стоимостью "Сетуни" (27 500 рублей), не горели желанием выпускать её серийные образцы в запланированные сроки. При том, что феррит-диодные усилители, базовые элементы троичного компьютера, поставляли в Казань с Астраханского завода электронной аппаратуры, они стоили всего три рубля пятьдесят копеек. Более того, своими "инженерными" изысканиями казанские производители так и норовили внести в отлаженную конструкцию троичного компьютера модификации, приводившие к его неработоспособности.

Бригада разработчиков "Сетуни" фактически поселилась на заводе, занимаясь постоянной отладкой серийных машин.

Дружный коллектив разработчиков "Сетуни"

Несмотря на все препоны, к 1965 году завод произвёл и реализовал пятьдесят экземпляров "Сетуни". Промышленные образцы компьютера заработали по всей стране - в военно-воздушной академии имени Жуковского и в одесском НИИ "Пищепромавтоматика", в якутском институте космофизических исследований и ведущих московских вузах.

"Сетунь-70"

Идеи, заложенные в архитектуру первого троичного компьютера и реализованные в "Сетуни", оказались настолько удачными, что в 1967 году было принято решение выпустить её модифицированную версию.

Наряду с аппаратными улучшениями (увеличение объёма оперативной памяти, реализация системы прерываний, уменьшение потребляемой мощности и размеров ЭВМ), важнейшим нововведением стала реализация двухстековой архитектуры.

Выпущенный в 1970 году вариант обновлённого троичного компьютера получил название "Сетунь-70".

Стремление к реализации более продуманного и компактного представления программ привело разработчиков "Сетуни-70" к идее отказа от традиционного машинного кода и использования в качестве машинного языка обратной польской записи (ПОЛИЗ). Стандартные машинные команды, состоящие из кода операции и адреса операнда были заменены на трайты операций и операндов. Применение обратной польской записи и обусловило стековую архитектуру "Сетуни-70". В первом стеке адресные трайты управляют передачей данных из оперативной памяти в стек, а операционные трайты - преобразованием данных и возвращением результата из стека в оперативную память. При этом, как и положено при стековой обработке, эти операции выполняются над данными в вершине стека и нижележащими данными.

Пятьдесят четыре операции были реализованы аппаратно. Из них половина была операциями общего пользования, а оставшиеся двадцать семь были служебными и не могли выполняться в пользовательском режиме. Кроме аппаратных операций "Сетунь-70" поддерживала работу с двадцатью семью макрооперациями - подпрограммами, создаваемыми пользователем и по мере надобности вызываемыми из оперативной памяти. Для работы с макрооперациями использовался второй (системный) стек ЭВМ.

Академик Соболев постоянно курировал проект троичного компьютера, используя свой авторитет в случае бюрократических препон и проволочек

Подобная реализация архитектуры "Сетуни-70" была неслучайной. Применение стеков и разработка операций в нотации ПОЛИЗ предполагали внедрение в процесс разработки программ идей структурированного программирования, концепция которого была предложена Эдсгером Дейкстрой. Структурированный подход существенно экономил время на разработку и отладку сложных программ, разбивая их на ряд структурных единиц, с каждой из которых можно было работать как с независимым объектом.

Специально для реализации этой идеи разрабатывалась среда ДССП (Диалоговая система структурированного программирования) - прообраз нынешних интегрированных сред программирования.

К сожалению, как следует обкатать идеи, реализованные в "Сетуни-70", не получилось. Очередная волна бюрократических зачисток, направленная на искоренение в вузах проектов разработки собственных ЭВМ, привела к тому, что "Сетунь-70" переселилась на чердак студенческого общежития в главном корпусе МГУ.

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

Так "Сетунь-70" превратилась в электронного учителя и экзаменатора, а её ведущий системный программист Хосе Рамиль Альварес стал разработчиком программно-аппаратного комплекса "Наставник" - уникальной в своем роде обучающей среды.

Хосе Рамиль Альварес рассказывает: "После того как нашей лаборатории запретили заниматься компьютерами, профессор МВТУ имени Баумана Анисимов предложил Николаю Петровичу Брусенцову заняться применением компьютеров в обучении, чтобы, как он выразился, "никто не сказал, что мы этого не можем". Вот тогда Николай Петрович предложил мне перейти к нему для развития идей программированного обучения. До этого я занимался эмуляцией команд "Сетуни-70" на "Сетуни" для отладки макропрограмм системы ДССП.

С самого начала нашей работы Николай Петрович сказал, что "Наставник" не пойдёт в серию, как из-за дешевизны производства, так и из-за того, что система не позволяла халтурить ни ученику, ни преподавателю...

Однажды к Николаю Петровичу пришёл академик Бахвалов и сказал, что ему необходимо ехать в командировку, а у него в это время должен быть коллоквиум по численным методам. Нельзя ли для его проведения использовать "Наставник"? Мы рассказали ему идею системы, Бахвалов сделал шаблоны заданий, и коллоквиум успешно прошёл. Позже, во время пересдачи тестов, мы с Бахваловым наблюдали, как один студент сел за тот же терминал "Наставника", что и в прошлый раз, думая, что ему попадутся те же самые вопросы. Я пояснил, что вопросы выбираются случайным образом. Бахвалов спросил, какой алгоритм используется в качестве генератора случайных чисел. "Всё очень просто, - ответил я, - алгоритм подсчитывает число нажатий на клавиши терминалов во всём дисплейном классе. А это всякий раз случайное число..."

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

Терминал системы "Наставник"

Руководство по эксплуатации "Наставника"

Архивы результатов тестирования студентов

Программные и аппаратные решения "Наставника", успешно проверенные на базе "Сетуни-70", позволили позже реализовать эту обучающую среду на базе ЭВМ ДВК-2М. В таком модифицированном виде "Наставник" функционирует в МГУ до сих пор.

Есть ли шанс у троичной логики?

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

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

Кроме того, разработчики микропроцессорной техники всё чаще заглядываются на многозначные логики, в частности на их троичную реализацию. Такие компании, как IBM, Motorola и Texas Instruments, ведут исследования с кремниево-германиевыми сплавами (SiGe), в рамках которых можно реализовать цифровые интегральные схемы, работающие с тремя и более уровнями сигнала.

С позиций реализации компьютер с шестнадцатиразрядной шиной обеспечивает поддержку 216 (65536) адресов памяти, в то время как троичный компьютер аналогичной разрядности поддерживает 316 - около сорока трёх миллионов адресов. Есть над чем задуматься, учитывая более простую работу троичной логики с отрицательными значениями, что также существенно упростит архитектуру микропроцессоров.

Остаётся надеяться, что души "Сетуни" и "Сетуни-70" обретут троичное бессмертие не только в программных эмуляторах, но и в будущих поколениях компьютеров, которые не будут знать, что "третьего не дано".

Вторую электронную троичную ЭВМ (компьютер) «Сетунь-70» , ведущим системным программистом которой был Рамиль Альварес Хосе .

  • г., G. Frieder, A. Fong и C. Y. Chao (SUNY , Буффало , США), создали Ternac - экспериментальный троичный эмулятор с арифметикой над 24-тритными целыми и 48-тритными действительными числами на двоичном компьютере Burroughs B1700 .
  • Преимущества троичных ЭВМ (компьютеров)

    Троичные ЭВМ (компьютеры) обладают рядом преимуществ по сравнению с двоичными ЭВМ (компьютерами).

    При сложении тритов в троичных полусумматорах и в троичных сумматорах количество сложений в log 2 ⁡ 3 = 1 , 58... {\displaystyle \log _{2}3=1,58...} раза меньше, чем при сложении битов в двоичных полусумматорах и в двоичных сумматорах, и, следовательно, быстродействие при сложении в 1,58.. раза (на 58%) больше.

    При применении симметричной троичной системы счисления и сложение и вычитание производится в одних и тех же двухаргументных (двухоперандных) полусумматорах-полувычитателях или полных трёхаргументных (трёхоперандных) сумматорах-вычитателях без преобразования отрицательных чисел в дополнительные коды , то есть ещё немного быстрее, чем в двоичных полусумматорах и в двоичных полных сумматорах, в которых для вычитания используется сложение с двумя преобразованиями отрицательных чисел, сначала в первое дополнение , а затем во второе дополнение , т.е. два дополнительных действия ("инверсия" и "+1") на каждое отрицательное слагаемое.

    Сложение сильно тормозят переносы, которые в двоичном сумматоре возникают в 4-х случаях из 8-ми (в 50% случаев), в троичном несимметричном сумматоре возникают в 9-ти случаях из 18-ти (в 50% случаев), а в троичном симметричном сумматоре в 8-ми случаях из 27-ми (в 29,6...% случаев), что ещё немного увеличивает быстродействие при применении троичных симметричных сумматоров.

    3-х битная троичная физическая система кодирования и передачи данных 3B BCT имеет на 15,3% большее быстродействие, чем обычная двоичная система кодирования и передачи данных , что ещё немного увеличивает быстродействие.

    3-х битная троичная физическая система кодирования троичных данных 3B BCT избыточна (используются только 3 кода из 8-ми), что позволяет обнаружить ошибки и повысить надёжность изделия.

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

    Кроме этого, вместо 4-х унарных, 16-ти бинарных и 256-ти тринарных двоичных логических функций в троичных эвм появляются 27-мь унарных, 19 683-и бинарных и 7 625 597 484 987-мь тринарных (трёхоперандных) троичных логических функций , которые намного мощнее бинарных. Увеличение "логической мощности" в неизвестное число раз, может в 19 683/16 = 1 230 раз, а может в 7 625 597 484 987/256 = 29 787 490 175 раз (нет методики сравнения "логических мощностей"), но намного, может увеличить "логическую мощность" даже медленнодействующих физических систем кодирования и передачи данных, в том числе и трёхуровневой (3-Level CodedTernary (3L CT), "однопроводной").

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

    В троичной системе знак числа может иметь все три значения: "-", "0" и "+", т.е. лучше используется троичная суть знака числа. Это можно сделать и в двоичной системе, но в двоичной системе потребуется два двоичных разряда (бита) на знак числа, а в троичной системе только один троичный разряд (трит).

    Может быть, что на первых порах пакеты прикладных программ с применением более мощной, чем двоичная логика, троичной логики, особенно в задачах имеющих троичность (обработка RGB-изображений, трёхкоординатные (объёмные) x,y,z-задачи и др.) позволит существенно сократить время решения многих троичных задач на обычных двоичных компьютерах (двоичная эмуляция троичных эвм и троичной логики на двоичных компьютерах).

    Удельное натуральнологарифмическое число кодов (чисел) (плотность записи информации) описывается уравнением y = ln ⁡ x x {\displaystyle y={\frac {\ln x}{x}}} , где x {\displaystyle x} - основание системы счисления . Из уравнения следует, что наибольшей плотностью записи информации обладает система счисления с основанием равным основанию натуральных логарифмов , то есть равным числу Эйлера (е=2,71…). Эту задачу решали ещё во времена Непера при выборе основания для логарифмических таблиц . Из целочисленных систем счисления наибольшей плотностью записи информации обладает троичная система счисления .

    Потенциальные

    Трёхуровневые

    Амплитуда наибольшего сигнала помехи равной помехоустойчивости с двухуровневыми элементами не более (+/-)Uп/6 (16,7% от Uп), при делении всего диапазона напряжений на три равные части и номинальных напряжениях сигналов в срединах поддиапазонов.

    Недостатки:
    1. необходимость, для равной помехоустойчивости с обычной двоичной системой, увеличения размаха сигнала в 2 раза,
    2. неодинаковость среднего состояния с верхним и нижним состояниями,
    3. неодинаковость амплитуд переходов из крайних состояний в среднее (одинарная амплитуда) и переходов из одного крайнего состояния в другое крайнее состояние (двойная амплитуда).

    Двухуровневые

    Амплитуда наибольшего сигнала помехи не более (+/-)Uп/4 (25% от Uп), при делении всего диапазона напряжений на две равные части и номинальных напряжениях сигналов в срединах поддиапазонов.

    Двухбитные

    Недостатки:

    1. два провода на один разряд.

    Трёхбитные

    Недостатки:

    1. три провода на один разряд.

    Смешанные

    Узлы троичных ЭВМ

    Будущее

    В работе возможным путём считают комбинацию оптического компьютера с троичной логической системой. По мнению авторов работы, троичный компьютер, использующий волоконную оптику, должен использовать три величины: 0 или ВЫКЛЮЧЕНО, 1 или НИЗКИЙ, 2 или ВЫСОКИЙ, т.е. трёхуровневую систему. В работе же автор пишет, что более быстродействующей и более перспективной является трёхчастотная система с тремя величинами: (f1,f2,f3) равными "001" = "0", "010" = "1" и "100" = "2", где 0 - частота выключена, а 1 - частота включена.

    Будущий потенциал троичной вычислительной техники был также отмечен такой компанией как Hypres, которая активно участвует в её изучении. IBM в своих публикациях также сообщает о троичной вычислительной технике, но активно в этом направлении не участвует.

    См. также

    • Троичный разряд
    • Троичный процессор
    • Троичные алгоритмы

    Примечания

    1. D. C. Rine (ed.), Computer Science and Multiple-Valued Logic. Theory and Applications. Elsevier, 1977, 548p. ISBN 9780720404067
    2. Славянская «золотая» группа . Mузей Гармонии и Золотого Сечения.
    3. «Liber аbaci» Леонардо Фибоначчи. Наталья Карпушина. Задача 4. Вариант 1
    4. «Троичный принцип» Николая Брусенцова . Mузей Гармонии и Золотого Сечения
    5. «Liber аbaci» Леонардо Фибоначчи. Наталья Карпушина. Задача 4. Вариант 2
    6. Троичная механическая счётная машина Томаса Фоулера .
    7. Сайт Томаса Фоулера
    8. Раздел 5.2 Choice of binary system
    9. Троичные ЭВМ «Сетунь» и «Сетунь 70». Н. П. Брусенцов, Рамиль Альварес Хосе
    10. Брусенцов Н. П. Троичные ЭВМ "Сетунь" и "Сетунь 70" // Международная конференция SORUCOM. - 2006.
    11. Брусенцов Н. П. Электромагнитные цифровые устройства с однопроводной передачей трёхзначных сигналов // Магнитные элементы автоматики и вычислительной техники. XIV Всесоюзное совещание (Москва, сентябрь 1972 г.). - Москва: Наука, 1972. - С. 242-244.
    12. Забытая история советских ЭВМ. Владимир Сосновский, Антон Орлов
    13. Trinary Computer
    14. Ternary Computing Testbed 3-Trit Computer Architecture. Jeff Connelly, Computer Engineering Department, August 29th, 2008, with contributions from Chirag Patel and Antonio Chavez. Advised by Professor Phillip Nico. California Polytechnic State University of San Luis Obispo

    Популярная тема околокомпьютерных (и не только) анекдотов - некая троичная женская логика, построенная по принципу "да - нет - может быть". И мало кто из рассказчиков таких анекдотов знает, что троичная логика реально существует и применяется в прикладной математике. Более того, существовал и весьма эффективный по тем временам компьютер, основанный на троичной логике. Создан он был в Советском Союзе в те годы, когда компьютеры именовались электронно-вычислительными машинами, а информатика - кибернетикой.

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

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

    Тогда Николаю Брусенцову пришла мысль сделать ЭВМ на феррит-диодных элементах. В то время в похожих машинах под каждый бит использовалась пара сердечников - рабочий и компенсационный. Брусенцов догадался задействовать компенсационный сердечник в вычислениях. Таким образом каждая ячейка становилась трёхзначной. В итоге получилось так, что в "Сетуни" количество сердечников было в семь раз меньшим, чем в компьютере ЛЭМ-1, но при этом "Сетунь" имела почти вдвое большую разрядность.

    Тогда же создавалась архитектура машины (хотя самого понятия "архитектура ЭВМ" ещё не существовало). В конечном итоге всё удалось свести к 24 машинным командам, и в дальнейшем архитектура "Сетуни" не подверглась никаким изменениям. Рабочий прототип "Сетуни" появился в 1958 году. В апреле 1960 года прошли межведомственные испытания, на которых "Сетунь" показала 95% полезного времени (то есть занятого решением задач, а не тестово-наладочными работами). Для сравнения: в то время если машина показывала 60%, это считалось очень хорошим результатом.

    После испытаний появилось постановление Совмина СССР об организации серийного производства, для которого был выбран Казанский завод. ЭВМ "Сетунь" выпускали по 10-12 штук в год, но эта цифра даже частично не покрывала поступающие на машину заявки.

    При всех своих преимуществах "Сетунь" была очень простой машиной. Правда, её программисты фактически должны были работать в пространстве трёхзначной логики. Позднее сам Брусенцов в одном из интервью рассказывал: "Дело в том, что "Сетунь" была естественной машиной. Там нет этого идиотского дополнительного кода для отрицательных чисел. И положительные, и отрицательные числа задаются естественно. Потом всего 24 команды. Освоить такую машину и программировать в машинном коде было ничуть не сложнее, чем, скажем, осваивать "Алгол" или "Фортран". Строго говоря, в самой "Сетуни" логическая часть была не особенно развита. Правда, та трёхзначная логика, которая была в "Сетуни", с избытком покрывала то, что было в двоичных машинах. Но аристотелевских суждений там, конечно, не было. Мы в то время собственно логикой не занимались. Я уже после создания "Сетуни" стал понимать, что логику как таковую не знаю, стал читать книги. Оказалось, что у меня были предшественники. И у них, кстати, путь тоже не был устлан розами".

    В 1965 году "Сетунь" была снята с производства, а сам проект - практически свёрнут. Однако о машине вспомнили к 100-летию со дня рождения Ленина - тогда было принято делать "родине и партии" всякого рода "производственные подарки". Коллектив ВЦ МГУ взял обязательство к этой дате разработать "Сетунь-70". Это, впрочем, оказалась уже фактически другая машина. Новая ЭВМ основывалась на стековом принципе, по аналогии с уже разрабатывавшимся тогда "Эльбрусом ". Однако "Эльбрус" имел лишь один стек - стек операндов. Его более поздний конкурент - американский компьютер PDP-11 - также имел один стек - процедурный. "Сетунь-70" заметно опередила своё время, так как изначально имела два стека - команд и операндов.

    В техническом отношении "Сетунь-70" была намного совершеннее "Сетуни". Так, реализация однопроводной передачи трёхзначных сигналов позволила почти вдвое уменьшить число электрических соединений; логические элементы стали проще, миниатюрней и при большей релейности потребляли в 2,5 раза меньше энергии. Также были значительно улучшены параметры троичной памяти и магнитной записи троичного кода. Дальнейшее развитие получила пороговая техника осуществления операций трёхзначной логики. Разработанная применительно к электромагнитным средствам, эта техника была переносима и на полупроводниковые элементы, например, типа И2Л.

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

    Интересный момент: принято считать, что в некоторой степени американским аналогом "Сетуни" был компьютер PDP-8, известный многим по биографии Билла Гейтса. Но всё же сравнивать "Сетунь" и PDP-8 достаточно сложно. Процессор PDP-8 был восьмибитный, а в "Сетуни" процессор (в пересчёте на биты) был 30-битным. PDP-8 стоила $20 тыс. без периферии, и эта цена считалась рекордно низкой. "Сетунь" стоила 27,5 тысяч советских рублей со всей периферией.

    Виктор ДЕМИДОВ


    Справка "КВ"

    "Сетунь" - малая ЭВМ на основе троичной логики, разработанная в вычислительном центре Московского государственного университета в 1959. Руководитель проекта - Николай Петрович Брусенцов, основные разработчики: Е.А. Жоголев, В.В. Веригин, С.П. Маслов, А.М. Тишулина. ЭВМ названа по имени протекавшей рядом с МГУ речки.

    Окончание разработки: 1959 год, начало выпуска: 1961 год, прекращение выпуска: 1965 год. Всего выпущено 50 машин (30 из них использовались в университетах СССР). Заводская цена: 27,5 тыс. рублей.

    Завод-изготовитель: Казанский завод математических машин Минрадиопрома СССР. Изготовитель логических элементов - Астраханский завод электронной аппаратуры и электронных приборов. Изготовитель магнитных барабанов - Пензенский завод ЭВМ. Изготовитель печатающего устройства - Московский завод пишущих машин.


    Характеристики:

    • 27 команд (3 зарезервированы)
    • Оперативная память - 162 9-тритных ячейки
    • Основная память - магнитный барабан ёмкостью 36 либо 72 страницы (страница - 54 ячейки).
    • Средняя оперативная скорость машины - 2000-4500 операций в секунду
    • Тактовая частота - 200 кГц
    • Потребляемая мощность - 2,5 кВА
    • Площадь для размещения - 25-30 кв.м.
    • Рабочий диапазон температур - 15-30°С

    Брусенцов Николай Петрович родился в 1925 году в Украине, в городе Днепродзержинск. В феврале 1943 года призван в армию, направлен на курсы радистов. Через полгода направлен радистом в артиллерийский полк, в отделение разведки. Награждён медалью "За Отвагу" и Орденом Красной звезды. После войны вернулся в Днепродзержинск, работал на заводе. В 1948 году поступил на радиотехнический факультет Московского энергетического института.

    На последнем курсе МЭИ составил таблицы дифракции на эллиптическом цилиндре, сегодня известные как таблицы Брусенцова. После окончания института в 1953 году направлен на работу в СКВ МГУ. В 1956-58 годах с группой единомышленников создал в МГУ единственную в мире троичную ЭВМ "Сетунь". В 1970-м создал новую машину "Сетунь-70", имевшую ряд конструктивных новаций. В настоящее время - заведующий лаборатории ЭВМ на Факультете вычислительной математики и кибернетики МГУ.

    Номер:

    Рубрика:

    Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!

    Комментарии

    Страницы

    Николай Петрович Брусенцов развил очень важное направление. Троичная логика фундаментально предусматривает компромиссные решения.

    А первую систему многозначной логики - трехзначную логику разработал Лукасевич. В качестве третьего логического значения было введено значение, выражаемое словами «вероятно», «нейтрально». О каждом высказывании в системе Лукасевича можно сказать: оно либо истинно, либо ложно, либо нейтрально.

    Хм,почему-то банально не сказана ключевая фраза, которая должна быть сказана при упоминании "троичная логика"...

    10 марта 2009 года нами получен патент на «многофункциональный модуль» (http://www.bio-net.by.ru/public/pat_doc_2348976.pdf)

    Элемент многопороговой (многозначной) логики. Прототипом был элемент, предложенный Ю.Л. Иваськив из НИИ кибернетики им. Глушкова (Украина). В отличие от прототипа, реализованного на цифровых элементах двоичной логики, наш логический элемент является аналоговым. Это распределенная система ИФАПЧ (импульсной фазовой автоподстройки частоты) нескольких (2 и более) импульсных автогенераторов. Такая система реализует многопороговую функцию «отображение окружности», центральная часть которого (исключая конечные пороги 0 и 1) представляет собой функцию - непрерывный аналог троичного Канторового множества – «распределение меры». Таким образом, можно утверждать, что наш элемент многозначной логики в основе своей является троичным.

    • «Се́тунь» - малая ЭВМ на основе троичной логики, разработанная в вычислительном центре Московского государственного университета в 1959 году.

      Руководитель проекта - Н. П. Брусенцов, основные разработчики: Е. А. Жоголев, В. В. Веригин, С. П. Маслов, А. М. Тишулина. Разработка машины была предпринята по инициативе и осуществлялась при активном участии советского математика С. Л. Соболева.

      Казанским заводом математических машин было произведено 46 компьютеров Сетунь, 30 из них использовались в университетах СССР.

    Связанные понятия

    Существуют и иные значения этого слова, см. Мир«МИР» (сокращение от «Машина для Инженерных Расчётов») - серия электронных вычислительных машин, созданных Институтом кибернетики Академии наук Украины, под руководством академика В. М. Глушкова.

    Подробнее: МИР

    Двои́чный код - это способ представления данных в виде кода, в котором каждый разряд принимает одно из двух возможных значений, обычно обозначаемых цифрами 0 и 1. Разряд в этом случае называется двоичным разрядом.

    Универсальный асинхронный приёмопередатчик (УАПП, англ. Universal Asynchronous Receiver-Transmitter, UART) - узел вычислительных устройств, предназначенный для организации связи с другими цифровыми устройствами. Преобразует передаваемые данные в последовательный вид так, чтобы было возможно передать их по одной физической цифровой линии другому аналогичному устройству. Метод преобразования хорошо стандартизован и широко применяется в компьютерной технике (особенно во встраиваемых устройствах и системах...

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