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

13.07.2019

Н.П. Брусенцов, Рамиль Альварес Хосе

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

Обстоятельное изучение в течение года имевшихся в то время вычислительных машин и технических возможностей их реализации привело к нестандартному решению употребить в создаваемой машине не двоичный, а троичный симметричный код, реализовав ту самую уравновешенную систему счисления, которую Д. Кнут двадцать лет спустя назовет быть может, самой изящной и как затем стало известно, достоинства которой были выявлены К. Шенноном в 1950 г. 121.

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

Троичная ЭВМ “Сетунь” , опытный образец которой разработали, смонтировали и к концу 1958 г. ввели в эксплуатацию сотрудники отдела электроники, как показал опыт ее освоения, программного оснащения и многообразных практических применений, с исчерпывающей полнотой удовлетворяла всем предусмотренным заданием на ее разработку требованиям. Этот успех, с учетом того, что разработка троичной ЭВМ предпринималась впервые, проводилась немногочисленным коллективом начинающих сотрудников (8 выпускников МЭИ и МГУ, 12 техников и лаборантов) и была выполнена в короткий срок, явно свидетельствует о благодатности троичной цифровой техники. Ценой усложнения по сравнению с двоичными элементов памяти и элементарных операций достигается существенное упрощение и, главное, естественность архитектуры троичных устройств.

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

По результатам этих испытаний “Сетунь” была признана первым действующим образцом универсальной вычислительной машины на безламповых элементах, которому свойственны “высокая производительность, достаточная надежность, малые габариты и простота технического обслуживания”. По рекомендации Междуведомственной комиссии Совет Министров СССР принял постановление о серийном производстве “Сетуни” на Казанском заводе математических машин. Но почему-то троичный компьютер пришелся не по нраву чиновникам радиоэлектронного ведомства: они не обеспечили разработку серийного образца машины, а после того как он все-таки был осуществлен с использованием конструктивов выпускавшейся заводом машины М-20, не содействовали наращиванию выпуска в соответствии с растущим числом заказов, в частности из-за рубежа, а наоборот, жестко ограничивали выпуск, отклоняя заказы, и в 1965 г. полностью прекратили, причем воспрепятствовали освоению машины в ЧССР, планировавшей ее крупносерийное производство. Поводом для этой странной политики могла быть рекордно низкая цена “Сетуни” - 27,5 тыс., рублей, обусловленная бездефектным производством ее магнитных цифровых элементов на Астраханском заводе ЭА и ЭП, по 3 руб. 50 коп. за элемент (в машине было около 2 тыс., элементов). Существенно то, что электромагнитные элементы “Сетуни” позволили осуществить пороговую реализацию трехзначной логики на редкость экономно, естественно и надежно. Опытный образец машины за 17 лет эксплуатации в ВЦ МГУ, после замены на первом году трех элементов с дефектными деталями, не потребовал никакого ремонта внутренних устройств и был уничтожен в состоянии полной работоспособности. Серийные машины устойчиво функционировали в различных климатических зонах от Одессы и Ашхабада до Якутска и Красноярска при отсутствии какого-либо сервиса и запчастей.

Благодаря простоте и естественности архитектуры, а также рационально построенной системе программирования, включающей интерпретирующие системы: ИП-2 (плавающая запятая, 8 десятичных знаков), ИП-3 (плавающая запятая, 6 десятичных знаков), ИП-4 (комплексные числа, 8 десятичных знаков), ИП-5 (плавающая запятая, 12 десятичных знаков), автокод ПОЛИЗ с операционной системой и библиотекой стандартных подпрограмм (плавающая запятая, 6 десятичных знаков), машины “Сетунь” успешно осваивались пользователями в вузах, на промышленных предприятиях и в НИИ, оказываясь эффективным средством решения практически значимых задач в самых различных областях, от научно-исследовательского моделирования и конструкторских расчетов до прогноза погоды и оптимизации управления предприятием . На семинарах пользователей вычислительных машин “Сетунь”, проведенных в МГУ (1965), на Людиновском тепловозостроительном заводе (1968), в Иркутском политехническом институте (1969) были представлены десятки сообщений о результативных народнохозяйственных применениях этих машин. “Сетунь”, благодаря естественности троичного симметричного кода, оказалась поистине универсальным, несложно программируемым и весьма эффективным вычислительным инструментом, положительно зарекомендовавшим себя, в частности, как техническое средство обучения вычислительной математике более чем в тридцати вузах. А в Военно-воздушной инженерной академии им. Жуковского именно на “Сетуни” была впервые реализована автоматизированная система компьютерного обучения .

Троичная система счисления основана на том же позиционном принципе кодирования чисел, что и принятая в современных компьютерах двоичная система, однако вес i -й позиции (разряда) в ней равен не 2 i , а 3 i . При этом сами разряды не двухзначны (не биты), а трехзначны (триты) - помимо 0 и 1 допускают третье значение, которым в симметричной системе служит -1, благодаря чему единообразно представимы как положительные, так и отрицательные числа. Значение n -тритного целого числа N определяется аналогично значению n -битного:

где а i ∈ {1, 0, -1} - значение цифры i -го разряда.

Цифры в троичной симметричной системе целесообразно обозначать их знаками, т.е. вместо 1, 0, -1 писать +, 0, -. Например, десятичные числа 13, 7, 6, -6 в такой троичной записи будут: 13 = +++, 7 = +-+, б = +-0, -6 = -+0. Изменение знака числа в симметричном коде равносильно потритной инверсии, т.е. взаимозамене всех “+” на “-” и всех “-” на “+”. Операции сложения и умножения в троичном симметричном коде определены таблицами:

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

Машина “Сетунь” может быть охарактеризована как одноадресная, последовательного действия, с 9-тритным кодом команды, 18-тритными регистрами сумматора S и множителя R , 5-тритными индекс-регистром модификации адреса F и счетчиком-указателем выполняемых команд C , а также однобитным указателем знака результата ? , управляющим условными переходами.

Оперативная память - 162 9-тритных ячейки - разделена на 3 страницы по 54 ячейки для постраничного обмена с основной памятью - магнитным барабаном емкостью 36 либо 72 страницы. Считывание и запись в оперативную память возможны 18-тритными и 9-тритными словами, причем 9-тритное слово соответствует старшей половине 18-тритного в регистрах S и R . Содержимое этих регистров интерпретируется как число с фиксированной после второго из старших разрядов запятой, т.е. по модулю оно меньше 4,5. При вычислениях с плавающей запятой мантисса М нормализованного числа удовлетворяет условию 0,5 < |М| <1,5, а порядок представлен отдельным 5-тритным словом, интерпретируемым как целое со знаком.

Страничная двухступенная структура памяти с пословной адресацией в пределах трех страниц ОЗУ, обходящейся 5-тритными адресами и соответственно 9-тритными командами, обусловила необыкновенную компактность программ и вместе с тем высокое быстродействие машины, несмотря на то, что в интерпретирующих системах магнитный барабан функционирует как оперативная память.

В 1967-1969 гг. на основе опыта создания и практических применений машины “Сетунь” разработана усовершенствованная троичная цифровая машина “Сетунь 70”, опытный образец которой вступил в строй в апреле 1970 г. Это была машина нетрадиционной двухстековой архитектуры, ориентированной на обеспечение благоприятных условий дальнейшего развития ее возможностей методом интерпретирующих систем .

Принятие арифметического стека (стека 18-тритных операндов) обусловлено использованием в качестве машинного языка так называемой польской инверсной записи программ (ПОЛИЗ), положительно зарекомендовавшей себя в одноименном интерпретаторе на “Сетуни”. ПОЛИЗ-программа состоит не из команд той или иной адресности, а является последовательностью коротких слов - 6-тритных трайтов (троичных байтов). Как элемент программы трайт может быть либо адресным, либо операционным. Адресный трайт либо используется в качестве операнда предшествующим операционным, либо воспринимается как предписание заслать в стек операндов из оперативной памяти адресуемое слово от одного до трех трайтов. В оперативной памяти всего 9 страниц по 81 трайту, причем открыты для доступа в данный момент три страницы, номера которых указаны в так называемых “регистрах приписки”.

Операционный трайт указывает операции, а вернее процедуры, выполняемые над стеком операндов, а также над регистрами процессора. Всего предусмотрена 81 операция - 27 основных, 27 служебных и 27 программируемых пользователем.

Второй (системный) стек, содержащий адреса возврата при обработке прерываний и при выполнении вложенных подпрограмм, позволил успешно реализовать на “Сетуни 70” идею структурированного программирования Э. Дейкстры, введя операции вызова подпрограммы, вызова по условию и циклического выполнения подпрограмм. Осуществленное таким образом процедурное структурированное программирование на практике подтвердило заявленные Дейкстрой преимущества его метода: трудоемкость создания программ сократилась в 5-7 раз, благодаря исключению традиционной отладки тестированием на конкретных примерах, причем программы обрели надлежащую надежность, упорядоченность, понятность и модифицируемость. В дальнейшем эти особенности архитектуры “Сетуни 70” послужили основой диалоговой системы структурированного программирования ДССП, реализованной на машинах серии ДВК и на последующих персональных компьютерах .

К сожалению, дальнейшее развитие заложенных в “Сетуни 70” возможностей путем разработки ее программного оснащения было административным порядком прекращено. Пришлось переориентироваться на компьютеризацию обучения. “Сетунь 70” стала основой для разработки и реализации автоматизированной системы обучения “Наставник” , воплотившей принципы “Великой дидактики” Яна Амоса Коменского. Назначение компьютера в этой системе не “электронное перелистывание страниц” и не мультимедийные эффекты, а отслеживание верности понимания учащимся того, чему он учится, своевременное преодоление заблуждений и обеспечение путем обоснованно назначаемых упражнений реального овладения предметом обучения. Вместе с тем компьютер протоколирует ход занятия, предоставляя разработчику учебного материала возможность оценивать эффективность используемых дидактических приемов и совершенствовать их.

Учебный материал в “Наставнике” предоставляется учащимся в печатном виде с пронумерованными секциями, абзацами, упражнениями и справками к ошибочным ответам, благодаря чему при помощи простейшего терминала с цифровой клавиатурой и калькуляторным индикатором компьютер без гипертекстового дисплея легко и безвредно взаимодействует с обучаемым, придавая книге недостающую ей способность диалога с читателем. Создание учебных материалов для “Наставника” не связано с программированием компьютера, и, как показала практика, разработка вполне удовлетворительных пособий по математике, физике, английскому языку и другим предметам посильна школьным учителям. Дидактическая эффективность этой немудреной системы оказалась на редкость высокой. Так, курс “Базисный Фортран” студенты факультета ВМК МГУ проходили в “Наставнике” за 10-15 часов, студенты экономического факультета - за 15-20 часов, показывая затем в практикуме более совершенное умение программировать на Фортране, чем после обычного семестрового курса.

Реализованный в “Наставнике” принцип “книга-компьютер” обусловил оптимальное использование компьютера как средства обучения практически во всех отношениях: необходимая аппаратура (микрокомпьютер и подключенные к нему 3-4 десятка терминалов, подобных простейшему калькулятору) предельно дешева, надежна и легко осваивается как учащимися, так и преподавателями, работа в режиме диалога с книгой неутомительна, увлекательна и при надлежащей организации изложения гарантирует быстрое и полноценное усвоение изучаемого предмета. Применение системы в МГУ, МАИ, ВИА им. Куйбышева, в средней школе и для профессионального обучения на ЗИЛе подтвердили ее высокую эффективность в широком спектре предметов и уровней обучения. Вместе с тем “Наставник” уже более 30 лет постоянно используется на факультете ВМиК для автоматизированного проведения контрольных работ, а также тестирования поступивших на факультет, определяющего уровень владения английским языком для комплектования однородных учебных групп.

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

Система команд машины “Сетунь”

Литература

  1. Shаnnonc. Е.А Symmetrical notation for numbers. - “The American Mathematical Monthly”, 1950, 57, N 2, р, 90 - 93,
  2. Reid J.B. Letter to the editor. - “Comm. ACM”, 1960, 3, N 3, р. А12 - A13.
  3. Howden Р.F. Weigh-counting technique is faster then binary. - “Electronics”, 1974, 48, N 24, р. 121 - 122.
  4. Байцер Б. Архитектура вычислительных комплексов , т. 1. М., “Мир”, 1974.
  5. Proceedings of the Sixth International Symposium on Multiple-Valued Logic , Мау 25 - 28 1976. IEEE Press, 1976.
  6. Croisier А. Introduction to pseudoternary transmission codes. - “IBM Journal of Research and Development”, 1970, 14, N 4, р. 354 - 367.
  7. Брусенцов Н.П. Электромагнитные цифровые устройства с однопроводной передачей трехзначных сигналов. - В кн.: Магнитные элементы автоматики и вычислительной техники. XIV Всесоюзное совещание (Москва, сентябрь 1972 г.). М., “Наука”, 1972, с. 242 - 244.
  8. Аристотель. 06 истолковании. СПб., 1891.
  9. Брусенцов Н.П. Диаграммы Льюиса Кэррола и аристотелева силлогистика. - В кн.: Вычислительная техника и вопросы кибернетики, вып. 13. Изд-во МГУ, 1976, с. 164-182.
  10. Introduction to programming. PDP-8 handbook series. Digital Equipment Corporation, 1972.

Материалы международной конференции SORUCOM 2006 (3-7 июля 2006 года)
Развитие вычислительной техники в России и странах бывшего СССС: история и перспективы
Статья помещена в музей 31.10.2007 с разрешения автора

Троичная система счисления - позиционная система счисления с целочисленным основанием, равным 3.

Существует в двух вариантах: несимметричная и симметричная.

В несимметричной троичной системе счисления чаще применяются цифры {0,1,2}, а в троичной симметричной системе счисления знаки {-,0,+}, {-1,0,+1}, {1,0,1}, {1,0,1}, {i,0,1}, {N,O,P}, {N,Z,P} и цифры {2,0,1}, {7,0,1}. Троичные цифры можно обозначать любыми тремя знаками {A,B,C}, но при этом дополнительно нужно указать старшинство знаков, например, C>B, B>A.

Цифры в троичной симметричной системе целесообразно обозначать их знаками, т.е. вместо 1, 0, -1 писать +, 0, -. Например, десятичные числа 13, 7, 6, -6 в такой троичной записи будут:

13 = +++
7 = +-+
б = +-0
-6 = -+0

Изменение знака числа в симметричном коде равносильно потритной инверсии, т.е. взаимозамене всех “+” на “-” и всех “-” на “+”.

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

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

Если общее количество состояний равно m, то количество триггеров равно m/b, а количество представимых ими чисел соответственно - b^(m/b). Как функция от b, это выражение достигает максимума при b равном числу e = 2,718281828…. При целых значениях b максимум достигается для b = 3. Таким образом, наиболее экономичной является троичная система счисления (используемая в троичных ЭВМ), следом за которой идут двоичная система счисления (традиционно используемая в большинстве распространённых ЭВМ) и четверичная система счисления.

Немного философии

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

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

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

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

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

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


Льюис Кэролл (Чарльз Лютвидж Доджсон)
В двоичной системе естественно представимы неотрицательные либо неположительные числа, а поскольку необходимы и те, и другие, то приходится прибегать к дополнительному или обратному коду или вводить особый бит знака числа (“прямой код”). По сравнению с троичным кодом, позволяющим ввести знак (+, 0, -) на уровне элемента-трита, благодаря чему радикально упрощаются все дальнейшие построения, двоичные конструкции в принципе неполноценны, за исключением, разве только двоично-троичной, представляющей триты парами битов. Дело в том, что числа (похоже, как и все в мире) тройственны по природе. Ведь положительное не есть неотрицательное (вопреки тому, как это встречается в англоязычной литературе) и отрицательное не есть неположительное, потому что имеется три фундаментальных класса чисел - положительные, отрицательные и нуль. Это трехзначная (не хрисиппо-булева) логика: положительное есть антиотрицательное, а отрицательное - антиположительное, комплементарно же положительному отрицательное или нуль и т.д. Это логика знаков числа, и хотя их два (плюс, минус), значений все-таки три: +, 0, -.

В русской историко-математической литературе «задача о гирях» известна под названием «задачи Баше-Менделеева», названной так в честь французского математика 17 в. Баше де Мезириака, который разместил эту задачу в своем «Сборнике приятных и занимательных задач» (1612 г.) и блестящего русского химика Дмитрия Ивановича Менделеева, который интересовался этой задачей будучи директором Главной Палаты мер и весов России.

Сущность «задачи Баше-Менделеева» состоит в следующем: при какой системе гирь, имея их по одной, можно взвесить всевозможные грузы Q от 0 до максимального груза Qmax, чтобы значение максимального груза Qmax было бы наибольшим среди всех возможных вариаций? Известно два варианта решения этой задачи: (1) когда гири позволено класть на свободную чашу весов; (2) когда гири позволяется класть на обе чаши весов. В первом случае «оптимальная система гирь» сводится к двоичной системе гирь: 1, 2, 4, 8, 16, ..., а появляющийся при этом «оптимальный» алгоритм или способ измерения рождает двоичную систему счисления, лежащую в основе современных компьютеров. Во втором случае наилучшей является троичная система гирь: 1, 3, 9, 27, 81,…

Хронология


Преимущества троичных ЭВМ

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

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

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

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

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

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

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

Обстоятельное изучение в течение года имевшихся в то время вычислительных машин и технических возможностей их реализации привело к нестандартному решению употребить в создаваемой машине не двоичный, а троичный симметричный код, реализовав ту самую уравновешенную систему счисления, которую Д. Кнут двадцать лет спустя назовет быть может, самой изящной и как затем стало известно, достоинства которой были выявлены К. Шенноном в 1950 г. 121.

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

Троичная ЭВМ “Сетунь” , опытный образец которой разработали, смонтировали и к концу 1958 г. ввели в эксплуатацию сотрудники отдела электроники, как показал опыт ее освоения, программного оснащения и многообразных практических применений, с исчерпывающей полнотой удовлетворяла всем предусмотренным заданием на ее разработку требованиям. Этот успех, с учетом того, что разработка троичной ЭВМ предпринималась впервые, проводилась немногочисленным коллективом начинающих сотрудников (8 выпускников МЭИ и МГУ, 12 техников и лаборантов) и была выполнена в короткий срок, явно свидетельствует о благодатности троичной цифровой техники. Ценой усложнения по сравнению с двоичными элементов памяти и элементарных операций достигается существенное упрощение и, главное, естественность архитектуры троичных устройств.

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

По результатам этих испытаний “Сетунь” была признана первым действующим образцом универсальной вычислительной машины на безламповых элементах, которому свойственны “высокая производительность, достаточная надежность, малые габариты и простота технического обслуживания”. По рекомендации Междуведомственной комиссии Совет Министров СССР принял постановление о серийном производстве “Сетуни” на Казанском заводе математических машин. Но почему-то троичный компьютер пришелся не по нраву чиновникам радиоэлектронного ведомства: они не обеспечили разработку серийного образца машины, а после того как он все-таки был осуществлен с использованием конструктивов выпускавшейся заводом машины М-20, не содействовали наращиванию выпуска в соответствии с растущим числом заказов, в частности из-за рубежа, а наоборот, жестко ограничивали выпуск, отклоняя заказы, и в 1965 г. полностью прекратили, причем воспрепятствовали освоению машины в ЧССР, планировавшей ее крупносерийное производство. Поводом для этой странной политики могла быть рекордно низкая цена “Сетуни” - 27,5 тыс., рублей, обусловленная бездефектным производством ее магнитных цифровых элементов на Астраханском заводе ЭА и ЭП, по 3 руб. 50 коп. за элемент (в машине было около 2 тыс., элементов). Существенно то, что электромагнитные элементы “Сетуни” позволили осуществить пороговую реализацию трехзначной логики на редкость экономно, естественно и надежно. Опытный образец машины за 17 лет эксплуатации в ВЦ МГУ, после замены на первом году трех элементов с дефектными деталями, не потребовал никакого ремонта внутренних устройств и был уничтожен в состоянии полной работоспособности. Серийные машины устойчиво функционировали в различных климатических зонах от Одессы и Ашхабада до Якутска и Красноярска при отсутствии какого-либо сервиса и запчастей.

Благодаря простоте и естественности архитектуры, а также рационально построенной системе программирования, включающей интерпретирующие системы: ИП-2 (плавающая запятая, 8 десятичных знаков), ИП-3 (плавающая запятая, 6 десятичных знаков), ИП-4 (комплексные числа, 8 десятичных знаков), ИП-5 (плавающая запятая, 12 десятичных знаков), автокод ПОЛИЗ с операционной системой и библиотекой стандартных подпрограмм (плавающая запятая, 6 десятичных знаков), машины “Сетунь” успешно осваивались пользователями в вузах, на промышленных предприятиях и в НИИ, оказываясь эффективным средством решения практически значимых задач в самых различных областях, от научно-исследовательского моделирования и конструкторских расчетов до прогноза погоды и оптимизации управления предприятием . На семинарах пользователей вычислительных машин “Сетунь”, проведенных в МГУ (1965), на Людиновском тепловозостроительном заводе (1968), в Иркутском политехническом институте (1969) были представлены десятки сообщений о результативных народнохозяйственных применениях этих машин. “Сетунь”, благодаря естественности троичного симметричного кода, оказалась поистине универсальным, несложно программируемым и весьма эффективным вычислительным инструментом, положительно зарекомендовавшим себя, в частности, как техническое средство обучения вычислительной математике более чем в тридцати вузах. А в Военно-воздушной инженерной академии им. Жуковского именно на “Сетуни” была впервые реализована автоматизированная система компьютерного обучения .

Троичная система счисления основана на том же позиционном принципе кодирования чисел, что и принятая в современных компьютерах двоичная система, однако вес i -й позиции (разряда) в ней равен не 2 i , а 3 i . При этом сами разряды не двухзначны (не биты), а трехзначны (триты) - помимо 0 и 1 допускают третье значение, которым в симметричной системе служит -1, благодаря чему единообразно представимы как положительные, так и отрицательные числа. Значение n -тритного целого числа N определяется аналогично значению n -битного:

где а i ∈ {1, 0, -1} - значение цифры i -го разряда.

Цифры в троичной симметричной системе целесообразно обозначать их знаками, т.е. вместо 1, 0, -1 писать +, 0, -. Например, десятичные числа 13, 7, 6, -6 в такой троичной записи будут: 13 = +++, 7 = +-+, б = +-0, -6 = -+0. Изменение знака числа в симметричном коде равносильно потритной инверсии, т.е. взаимозамене всех “+” на “-” и всех “-” на “+”. Операции сложения и умножения в троичном симметричном коде определены таблицами:

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

Машина “Сетунь” может быть охарактеризована как одноадресная, последовательного действия, с 9-тритным кодом команды, 18-тритными регистрами сумматора S и множителя R , 5-тритными индекс-регистром модификации адреса F и счетчиком-указателем выполняемых команд C , а также однобитным указателем знака результата? , управляющим условными переходами.

Оперативная память - 162 9-тритных ячейки - разделена на 3 страницы по 54 ячейки для постраничного обмена с основной памятью - магнитным барабаном емкостью 36 либо 72 страницы. Считывание и запись в оперативную память возможны 18-тритными и 9-тритными словами, причем 9-тритное слово соответствует старшей половине 18-тритного в регистрах S и R . Содержимое этих регистров интерпретируется как число с фиксированной после второго из старших разрядов запятой, т.е. по модулю оно меньше 4,5. При вычислениях с плавающей запятой мантисса М нормализованного числа удовлетворяет условию 0,5 < |М| <1,5, а порядок представлен отдельным 5-тритным словом, интерпретируемым как целое со знаком.

Страничная двухступенная структура памяти с пословной адресацией в пределах трех страниц ОЗУ, обходящейся 5-тритными адресами и соответственно 9-тритными командами, обусловила необыкновенную компактность программ и вместе с тем высокое быстродействие машины, несмотря на то, что в интерпретирующих системах магнитный барабан функционирует как оперативная память.

В 1967-1969 гг. на основе опыта создания и практических применений машины “Сетунь” разработана усовершенствованная троичная цифровая машина “Сетунь 70”, опытный образец которой вступил в строй в апреле 1970 г. Это была машина нетрадиционной двухстековой архитектуры, ориентированной на обеспечение благоприятных условий дальнейшего развития ее возможностей методом интерпретирующих систем .

Принятие арифметического стека (стека 18-тритных операндов) обусловлено использованием в качестве машинного языка так называемой польской инверсной записи программ (ПОЛИЗ), положительно зарекомендовавшей себя в одноименном интерпретаторе на “Сетуни”. ПОЛИЗ-программа состоит не из команд той или иной адресности, а является последовательностью коротких слов - 6-тритных трайтов (троичных байтов). Как элемент программы трайт может быть либо адресным, либо операционным. Адресный трайт либо используется в качестве операнда предшествующим операционным, либо воспринимается как предписание заслать в стек операндов из оперативной памяти адресуемое слово от одного до трех трайтов. В оперативной памяти всего 9 страниц по 81 трайту, причем открыты для доступа в данный момент три страницы, номера которых указаны в так называемых “регистрах приписки”.

Операционный трайт указывает операции, а вернее процедуры, выполняемые над стеком операндов, а также над регистрами процессора. Всего предусмотрена 81 операция - 27 основных, 27 служебных и 27 программируемых пользователем.

Второй (системный) стек, содержащий адреса возврата при обработке прерываний и при выполнении вложенных подпрограмм, позволил успешно реализовать на “Сетуни 70” идею структурированного программирования Э. Дейкстры, введя операции вызова подпрограммы, вызова по условию и циклического выполнения подпрограмм. Осуществленное таким образом процедурное структурированное программирование на практике подтвердило заявленные Дейкстрой преимущества его метода: трудоемкость создания программ сократилась в 5-7 раз, благодаря исключению традиционной отладки тестированием на конкретных примерах, причем программы обрели надлежащую надежность, упорядоченность, понятность и модифицируемость. В дальнейшем эти особенности архитектуры “Сетуни 70” послужили основой диалоговой системы структурированного программирования ДССП, реализованной на машинах серии ДВК и на последующих персональных компьютерах .

К сожалению, дальнейшее развитие заложенных в “Сетуни 70” возможностей путем разработки ее программного оснащения было административным порядком прекращено. Пришлось переориентироваться на компьютеризацию обучения. “Сетунь 70” стала основой для разработки и реализации автоматизированной системы обучения “Наставник” , воплотившей принципы “Великой дидактики” Яна Амоса Коменского. Назначение компьютера в этой системе не “электронное перелистывание страниц” и не мультимедийные эффекты, а отслеживание верности понимания учащимся того, чему он учится, своевременное преодоление заблуждений и обеспечение путем обоснованно назначаемых упражнений реального овладения предметом обучения. Вместе с тем компьютер протоколирует ход занятия, предоставляя разработчику учебного материала возможность оценивать эффективность используемых дидактических приемов и совершенствовать их.

Учебный материал в “Наставнике” предоставляется учащимся в печатном виде с пронумерованными секциями, абзацами, упражнениями и справками к ошибочным ответам, благодаря чему при помощи простейшего терминала с цифровой клавиатурой и калькуляторным индикатором компьютер без гипертекстового дисплея легко и безвредно взаимодействует с обучаемым, придавая книге недостающую ей способность диалога с читателем. Создание учебных материалов для “Наставника” не связано с программированием компьютера, и, как показала практика, разработка вполне удовлетворительных пособий по математике, физике, английскому языку и другим предметам посильна школьным учителям. Дидактическая эффективность этой немудреной системы оказалась на редкость высокой. Так, курс “Базисный Фортран” студенты факультета ВМК МГУ проходили в “Наставнике” за 10-15 часов, студенты экономического факультета - за 15-20 часов, показывая затем в практикуме более совершенное умение программировать на Фортране, чем после обычного семестрового курса.

Реализованный в “Наставнике” принцип “книга-компьютер” обусловил оптимальное использование компьютера как средства обучения практически во всех отношениях: необходимая аппаратура (микрокомпьютер и подключенные к нему 3-4 десятка терминалов, подобных простейшему калькулятору) предельно дешева, надежна и легко осваивается как учащимися, так и преподавателями, работа в режиме диалога с книгой неутомительна, увлекательна и при надлежащей организации изложения гарантирует быстрое и полноценное усвоение изучаемого предмета. Применение системы в МГУ, МАИ, ВИА им. Куйбышева, в средней школе и для профессионального обучения на ЗИЛе подтвердили ее высокую эффективность в широком спектре предметов и уровней обучения. Вместе с тем “Наставник” уже более 30 лет постоянно используется на факультете ВМиК для автоматизированного проведения контрольных работ, а также тестирования поступивших на факультет, определяющего уровень владения английским языком для комплектования однородных учебных групп.

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

Система команд машины “Сетунь”

Литература

Shаnnonc. Е.А Symmetrical notation for numbers. - “The American Mathematical Monthly”, 1950, 57, N 2, р, 90 - 93,
Reid J.B. Letter to the editor. - “Comm. ACM”, 1960, 3, N 3, р. А12 - A13.
Howden Р.F. Weigh-counting technique is faster then binary.- “Electronics”, 1974, 48, N 24, р. 121 - 122.
Байцер Б. Архитектура вычислительных комплексов, т. 1. М., “Мир”, 1974.
Proceedings of the Sixth International Symposium on Multiple-Valued Logic, Мау 25 - 28 1976. IEEE Press, 1976.
Croisier А. Introduction to pseudoternary transmission codes.- “IBM Journal of Research and Development”, 1970, 14, N 4, р. 354 - 367.
Брусенцов Н.П. Электромагнитные цифровые устройства с однопроводной передачей трехзначных сигналов. - В кн.: Магнитные элементы автоматики и вычислительной техники. XIV Всесоюзное совещание (Москва, сентябрь 1972 г.). М., “Наука”, 1972, с. 242 - 244.
Аристотель. 06 истолковании. СПб., 1891.
Брусенцов Н.П. Диаграммы Льюиса Кэррола и аристотелева силлогистика. - В кн.: Вычислительная техника и вопросы кибернетики, вып. 13. Изд-во МГУ, 1976, с. 164-182.
Introduction to programming. PDP-8 handbook series. Digital Equipment Corporation, 1972.
Материалы международной конференции SORUCOM 2006 (3-7 июля 2006 года)

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

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

+-0. Первые шаги

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

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

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

Отдельным модулем идет bootstrap, это несколько команд, которые установят в памяти константы машины (размер памяти, адрес таблицы модулей и др.) и переведет процессор на адрес первой исполняемой команды. Bootstrap был подготовлен вручную.

Модуль Core создан по образу и подобию ядра системы Оберон, модулю Kernel, так как это ядро, в нем много прямых операций с памятью, реализация аллокатора динамических структур (глючит иногда) реализация перехватчика исключений и т.д,
Как раз в модуле Core реализуем самую примитивную консоль. Для вывода строк и чисел будем записывать значения символов в ячейку памяти, как было описано выше. Платформозависимый модуль SYSTEM является виртуальным, его вызовы компилятор переводит непосредственно в машкод.

Невыразительный скриншот.
Проверить работоспособность получившейся виртуальной машины можно вот . Конечно, комплексная отладка и процессора и компилятора одновременно привела к некоторым багам (которые я еще не нашел), но как proof of concept результат работы мне показался достаточным.

+-+. Итоги

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

В оригинальном интерпретаторе я предпринял попытку развить успех и реализовать общение с внешним миром по аналогу порта rs232, с файловой системой на основе протокола 9p. И вот с чем я столкнулся. И та и другая технология, хоть и декларируются кроссплатформенными, при вводе в понятие платформы тритов и трайтов стремительно теряют свою кроссплатформенность. Основа в виде байтов и битов делает портирование таких технологий нетривиальной задачей.

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

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

+0-. Ссылки

Ну и пожалуй, несколько ссылок для тех, кто заинтересуется.
  • trinary.ru красивый сайт с калькуляторами, календарями, симулятором ОС оригинальной Сетуни.
  • ternarycomp.cs.msu.ru более серьезный сайт, с описанием патентов, алгоритмов
  • www.inf.ethz.ch/personal/wirth/ProjectOberon/index.html авторская страница проекта Оберон 2013.
  • github.com/kpmy/tri репозиторий проекта
  • bitbucket.org/petryxa/trisc репозиторий оригинального эмулятора

+00. P.S

Н.П. Брусенцов скончался 4 декабря 2014 года. Надеюсь, дело его жизни не будет забыто.

Теги: Добавить метки

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

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

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

Использования троичной системы счисления

В XIII веке итальянский математик Фибоначчи выдвинул идею использования для вычислений троичной системы. Он сформулировал и решил «задачу о гирях» (известную под названием Баше-Менделеева). Суть задачи такова: при какой системе гирь, имея их по одной, можно бесплатно взвесить всевозможные грузы Q от 0 до максимального груза Qmax, чтобы абсолютное значение максимального груза Qmax было бы наибольшим среди всех вероятных разновидностей. Два условия для решения этой задачи: если гири класть на свободную чашу авторитетов; если гири позволяется класть на обе чаши авторитетов. В первом случае «оптимальная система гирь» сводится к двоичной системе гирь: 1, 2, 4, 8, 16 и т.д., а появляющийся при этом «оптимальный» алгоритм или способ измерения рождает двоичную систему счисления, лежащую в основе «модных» компьютеров. Во втором случае наилучшей является система гирь: 1, 3, 9, 27, 81 и т.д. Если можно класть гири только на одну чашу весов, то удобнее, быстрее и экономичнее делать подсчёты в двоичной системе, а если можно класть гири на обе чаши, то целесообразнее прибегнуть к троичной системе.

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

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

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

  • единообразие кода чисел
  • варьируемая длина операндов
  • единственность операции сдвига
  • трехзначность функции знак числа
  • оптимальное округление чисел простым отсечением младших разрядов
  • взаимокомпенсируемость погрешностей округления в процессе вычисления

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

Преимуществом троичной системы счисления с цифрами -1, 0, 1 является:

Округление числа x до k верных троичных знаков, которое получается отбрасыванием всех младших знаков, начиная с (k+1).

Следствие. Ближайшим целым числа x,

X=E 1 , E 2 ...E m+1 ...XE

является число:

[X] бл = E 1 , E 2 ...E m

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

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

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

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

Как и двоичная система, троичная система исчисления основана на позиционном принципе кодирования чисел, но вес i -й позиции/разряда в ней равен не 2 i, а 3 i. Разряды трехзначны, а не двухзначны: к 0 и 1 еще допускается третье значение -1, поэтому единообразно представимы как положительные, так и отрицательные числа.

Значение n - тритного целого числа N определяется аналогично значению n - битного:


где а i ∈ {1, 0, -1} - значение цифры i разряда.
(исходя из материалов, хранящихся в виртуальном компьютерном музее)

В троичной симметричной системе цифры обозначают знаками, вместо 1, 0, -1 пишут +, 0, -.

Вот как будут выглядеть десятичные числа 13, 7,6,-6 в троичной записе 13= +++, 7 = +-+, б = +-0, -6 = -+0. Изменение знака числа в симметричном коде равно потритной инверсии, происходит взаимозамена "+" на "-", и наоборот.

Ниже приведена таблица с операциями сложения и умножения в троичном симметричном коде.


В троичном симметричном коде отсутствует проблема чисел со знаком.

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

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

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

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

Н.П. Брусенцов говорил :

История вычислительной машины Сетунь, как и сама эта машина, необычна - все совершалось вопреки общепринятым подходам и методам. Можно подумать, что действовали по принципу «Делай не так, как все». Но принцип был иной - «Чем естественней и проще, тем лучше».

Сложна судьба Николая Петровича Брусенцова - творца первой и единственной в мире троичной машины Сетунь

Родился Николай Петрович Брусенцов 7 февраля 1925 года в городе Днепродзержинске (Украина). Его отец Петр Николаевич Брусенцов был сыном простого рабочего - железнодорожника, учавствовал в строительстве Днепродзержинского коксохимического завода, умер в очень молодом возрасте 37 лет, когда Николаю было всего 14 лет. Мать Мария Дмитриевна осталась сама с тремя детьми. Началась война. В 1943 году Николая призвали в армию и отправили на курсы радистов в Свердловске. Позже он стал радистом 154 стрелковой дивизии в отделении разведки 2 дивизиона 571 артиллерийского полка. Был награжден медалью «За отвагу» и орденом Красной Звезды.

В 1948 году, окончив школу на отлично, поступил на радиотехнический факультет Московского энергетического института. Но, заболев туберкулезом, первый год учебы провел в лечении. Позже наверстал упущенное и стал одним из преуспевающих студентов.

После окончания института Брусенцов был направлен на работу в СКБ при Московском университете, позже в проблемную лабораторию по разработке ЭВМ для использования в учебных заведениях. Вот тут он и познакомился с Сергеем Львовичем Соболевым. Соболев горел идеей создания малой ЭВМ, которая была бы недорога, малогабаритна, надежна для институтских лабораторий. Был организован семинар, в котором принимали участие еще М.Р.Шура-Бура, К.А.Семендяев, Е.А.Жоголев. На семинарах разбирали недостатки существующих машин, прикидывали систему команд и структуру, рассматривали варианты технической реализации, склоняясь к магнитным элементам, поскольку транзисторов еще не было, лампы сходу исключили, а сердечники и диоды можно было достать и все сделать самим.

Пару слов из воспоминаний Брусенцова о семинаре :

Доклады посвящались, с одной стороны, инженерным вопросам технической реализации машины, а с другой - разработке и оптимизации ее архитектуры, анализу и обобщению имеющегося в этом деле опыта. Так, М.Р. Шура-Бура на четырех семинарах в апреле-мае 1956 года анализировал преимущества и недостатки отечественных машин «Стрела», БЭСМ, «Урал», М-20, сотрудники Сергея Львовича по курчатовскому институту Г.А. Михайлов и Б.И. Шитиков рассказали о созданных ими машинах ЦМ-1 и ЦМ-2, аспирант Томского университета А.Д. Закревский выступил с докладом «Применение алгебры логики к синтезу схем вычислительной машины». Вопросы инженерной реализации цифровых устройств на полупроводниковых и магнитных элементах рассматривались в докладах сотрудников нашего отдела электроники. Разработкой же функциональной схемы и системы команд машины довелось заниматься мне с Е.А. Жоголевым, и результаты по мере продвижения неоднократно представлялись семинару в наших, иногда совместных, докладах: 17.9.56 - «Эскизная схема машины», 15.10.56 - «Операции в троичной системе счисления», 11.2.57 - «Система команд для одноадресной троичной машины», 8.4.57 - «Блок-схема троичной машины», 24.2.58 - «Блок-схема и система команд машины «Сетунь».

Именно тогда у Брусенцова возникла мысль использовать троичную систему счисления.

Николай Петрович Брусенцов заведовал лабораторией ЭВМ факультета вычислительной математики и кибернетики Московского государственного университета им. М.В.Ломоносова. Основными направлениями его научной деятельности являлись: архитектура цифровых машин, автоматизированные системы обучения, системы программирования для мини- и микрокомпьютеров. Им было опубликовано более 100 научных работ, в том числе монографии «Малая цифровая вычислительная машина Сетунь» (1965 год, «Миникомпьютеры» (1979 год), «Микрокомпьютеры» (1985 год), учебное пособие «Базисный фортран» (1982 год).

Брусенцову Николаю Петровичу, лауреату премии Совета Министров СССР, принадлежат 11 авторских свидетельств на изобретения. Он был награжден орденом «Знак Почета», Большой золотой медалью ВДНХ ССС.

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

В Вычислительном центре МГУ была создана Сетунь, которая стала первой машиной с алфавитно-цифровыми устройствами ввода и вывода в СССР.

В разработке ЭВМ активное участие принимал советский математик Сергей Львович Соболев, на то время он был заведующим кафедрой вычислительной математики на механико-математическом факультете Московского университета. Созданием и разработкой машины Сетунь занимался коллектив начинающих сотрудников, это были 8 выпускников МЭИ и МГУ, 12 техников и лаборантов. Работа была проделана довольно в короткий срок, что напрямую свидетельствовало о простоте троичной цифровой техники, достигалось существенное упрощение, естественность архитектуры троичных устройств. Такая архитектура - рационально построенная система программирования, которая включала интерпретирующие системы ИП-2 (плавающая запятая, 8 десятичных знаков), ИП-3 (плавающая запятая, 6 десятичных знаков), ИП-4 (комплексные числа, 8 десятичных знаков), ИП-5 (плавающая запятая, 12 десятичных знаков), автокод ПОЛИЗ(язык обратной польской записи) с операционной системой и библиотекой стандартных подпрограмм (плавающая запятая, 6 десятичных знаков) делали малую машину Сетунь простой в освоении.


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

В конце 1959 года для машины уже существовала система программирования и набор прикладных программ.

Параметры машины

Для установки малой машины Сетунь необходима была площадь размером 25-30 м 2 , оформлена она была в виде шкафа с такими параметрами 2,9 х 1,85 х 0,5 м, пульт управления 1,6 х 0.6 х 1 м, стол для внешних устройств 1,2 х 0,8 х 0,75 м.


Как и упоминалось раньше числа и команды предоставлены троичным кодом (с цифрами 1, 0, -1), Сетунь оперировала 18 разрядным и 9 разрядными троичными кодами, запятая всегда после второго разряда, что означало, что все числа по модулю меньше 4,5. Команды представлялись 9 троичными разрядами, 5 старших из них - адресная часть, три - это код операции и один, младший разряд, - в качестве признака модификации адреса. При выполнении команд, содержащих в этом разряде 1 или -1, их адресная часть автоматически изменялась соответственно прибавлением или вычитанием числа, хранящегося в специальном 5 разрядном индекс-регистре.

Оперативная память состояла из устройства на ферритовых сердечниках емкостью в 162 9-тритных ячейки, то есть разделена на 3 страницы по 54 ячейки для постраничного обмена с основной памятью. Основная память - это запоминающее устройство на магнитном барабане, емкостью 36 либо 72 страницы (1944 9-тритных ячейки). Передача информации между запоминающими устройствами производилась зонами, содержащими по 54 девятиразрядных кода. С помощью пятипозиционной бумажной перфоленты через фотоэлектрическое вводное устройство вводились данные в машину. Такое вводное устройство работало со скоростью 800 знаков в секунду. Вывод данных осуществлялся благодаря печати и перфорации на бумажной ленте со скоростью 7 знаков в секунду (вывод как троичных кодов, так и буквенно-цифрового текста с заданием произвольной формы бланка).



Перфолента

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



Сумматор



Ферритовый куб

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

Запитывалась машина от сети трехфазного тока 220/380В, потребляемая мощность составляла 2,5 кВА.

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



Блок-схема вычислительной машины Сетунь

Заводские испытания первого серийного образца Сетунь показали, что машина полностью соответствует поставленым техническим параметрам. Все работало без сбоев и полезное время составило 95% от зачетного. За первый год из 4000 деталей были заменены всего лишь три детали. Выпущено было 7 таких малых ЭВМ, в течение 1963 года было запланировано произвести еще 10 таких машин. Уже в 1964 году завод выпустил 21 машину Сетунь, так как спрос на них рос. Но в 1965 году Сетунь была снята с производства.

Начиная с 1959 года Сетунь за полтора месяца вывела больше расчетов, чем ЭВМ Урал-2 с двоичной системой счисления. Малая машина Сетунь работала безотказно, но чиновникам была не выгодна такая ЭВМ - себестоимость ее была всего 30 000 рублей. Первая модель Сетунь была в работе 15 лет. Серийное производство было решено отложить на 15 лет, но этого так и не произошло. Как говорил сам создатель машины Брусенцов потом:«Сетунь мешала людям с косным мышлением , которые занимали высокие руководящие посты». В конечном счете Сетунь разрезали автогеном и отправили на утилизацию.

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

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

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

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


История создании машины Сетунь

По словам самого создателя Сетунь Брусенцова:

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