"Сетунь"

История компьютера на основе троичной логики

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

В конце 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", имевшую ряд конструктивных новаций. В настоящее время - заведующий лаборатории ЭВМ на Факультете вычислительной математики и кибернетики МГУ.

Версия для печатиВерсия для печати

Номер: 

14 за 2009 год

Рубрика: 

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

Комментарии

Страницы

Аватар пользователя mike
Вообще-то по жизни мы юзаем 4-значную логику: да, нет, никогда, иногда.
Аватар пользователя mike
Кстати, автор в предисловии неправ. Женщины не так просты, как можно подумать. При внимательном рассмотрении бытовая 4-значная логика <никогда,0,иногда,1> распадается на 2 кольца: булево и ещё одно, которое и есть "женская" логика. Последняя чаще всего проявляется в сексе.
Аватар пользователя mike
2Беларус. Вообще-то 3-значная логика была известна задолго до работ Я.Лукасевича; он её "переоткрыл", анализируя силлогизмы Аристотеля. Заслуга Лукасевича в другом: он первым понял сущность многозначной логики и перешёл к анализу бесконечнозначной логики. Есть подозрение, что именно на ней зиждется мироздание. Чёртовы поляки -- один Землю ниспровергает, другой ниспровергает всё... :(
Аватар пользователя Логик
mike (old student) > Вообще-то 3-значная логика была известна задолго до работ Я.Лукасевича; он её "переоткрыл", анализируя силлогизмы Аристотеля...

Логику открыть нельзя. Ее можно только придумать (то есть изобрести).

Число логик, которые можно придумать, ничем не ограничено.

Аватар пользователя mike
>Логику открыть нельзя.

Кавычек не видишь? Задачку лучше реши.

А вот вам 5-значная логика: <да, нет, никогда, иногда, не_знаю>. :)

Аватар пользователя mike
Вообще-то примеры Брусенцова, процитированные Беларусом, логики считают неудачными, так как 3-ий аргумент там однозначен. Кроме того, в вычтехнике (и теории чисел) ноль справедливо считается положительным чётным числом. Вот пример из истинно 3-значной логики: "В БД по данной выборке число положительное или отрицательное?" Ответы: ДА, НЕТ, НЕТ_ЗАПИСИ. Разница в том, что у Брусенцова ненамагниченность была просто _конкретным_ третьим числом (двойкой) в троичной системе счисления, а не истинно логической переменной, так как триада <0,1,2> не подчиняется полной системе правил 3-значной логики (последние см. в посту от 12.04.2009 08:01).

А пойду-ка я отхлебну, пока жена спит... Логика!

Аватар пользователя mike
Система счисления по основанию 1 существует: я ею пользовался в детстве, ставя зарубки на рогатке. Внимание, вопрос: существует ли однозначная логика?
Аватар пользователя Икс
>существует ли однозначная логика?

некая система мониторинга, работающая только на одно состояние "некий факт зафиксирован" на выходе???

Аватар пользователя Логик
mike (old student) > Внимание, вопрос: существует ли однозначная логика?

нет.

Аватар пользователя mike
Нет, Логик, однозначная логика существует. Там нет ни ДА, ни НЕТ, там только ШОЛБ. :)

Страницы