Подобная реализация архитектуры «Сетуни-70» была неслучайной. Применение стеков и разработка операций в нотации ПОЛИЗ предполагали внедрение в процесс разработки программ идей структурированного программирования, концепция которого была предложена Эдсгером Дейкстрой. Структурированный подход существенно экономил время на разработку и отладку сложных программ, разбивая их на ряд структурных единиц, с каждой из которых можно было работать как с независимым объектом.
Специально для реализации этой идеи разрабатывалась среда ДССП (Диалоговая система структурированного программирования) — прообраз нынешних интегрированных сред программирования.
К сожалению, как следует обкатать идеи, реализованные в «Сетуни-70», не получилось. Очередная волна бюрократических зачисток, направленная на искоренение в вузах проектов разработки собственных ЭВМ, привела к тому, что «Сетунь-70» переселилась на чердак студенческого общежития в главном корпусе МГУ.
Возможно, её судьба была бы аналогична судьбе первой «Сетуни», варварски уничтоженной после многолетнего труда, если бы не научно-исследовательская работа «Разработка автоматизированной обучающей системы на базе малой цифровой машины».
Так «Сетунь-70» превратилась в электронного учителя и экзаменатора, а её ведущий системный программист Хосе Рамиль Альварес стал разработчиком программно-аппаратного комплекса «Наставник» — уникальной в своем роде обучающей среды.
Хосе Рамиль Альварес рассказывает: "После того как нашей лаборатории запретили заниматься компьютерами, профессор МВТУ имени Баумана Анисимов предложил Николаю Петровичу Брусенцову заняться применением компьютеров в обучении, чтобы, как он выразился, «никто не сказал, что мы этого не можем». Вот тогда Николай Петрович предложил мне перейти к нему для развития идей программированного обучения. До этого я занимался эмуляцией команд «Сетуни-70» на «Сетуни» для отладки макропрограмм системы ДССП.
С самого начала нашей работы Николай Петрович сказал, что «Наставник» не пойдёт в серию, как из-за дешевизны производства, так и из-за того, что система не позволяла халтурить ни ученику, ни преподавателю...
...Однажды к Николаю Петровичу пришёл академик Бахвалов и сказал, что ему необходимо ехать в командировку, а у него в это время должен быть коллоквиум по численным методам. Нельзя ли для его проведения использовать «Наставник»? Мы рассказали ему идею системы, Бахвалов сделал шаблоны заданий, и коллоквиум успешно прошёл. Позже, во время пересдачи тестов, мы с Бахваловым наблюдали, как один студент сел за тот же терминал «Наставника», что и в прошлый раз, думая, что ему попадутся те же самые вопросы. Я пояснил, что вопросы выбираются случайным образом. Бахвалов спросил, какой алгоритм используется в качестве генератора случайных чисел. «Всё очень просто, — ответил я, — алгоритм подсчитывает число нажатий на клавиши терминалов во всём дисплейном классе. А это всякий раз случайное число...»
В 1974 году компьютерный класс на базе «Сетуни-70» с подключёнными к ней двадцатью семью терминалами принял первых учеников — сто пятьдесят студентов, изучающих курс численного анализа. В дальнейшем был реализован курс обучения языку Фортран.
Программные и аппаратные решения «Наставника», успешно проверенные на базе «Сетуни-70», позволили позже реализовать эту обучающую среду на базе ЭВМ ДВК-2М. В таком модифицированном виде «Наставник» функционирует в МГУ до сих пор.
Конечно, разработку троичных компьютеров «Сетунь» можно считать случайным выбросом среди гладкого графика развития двоичной цифровой логики. Однако это слишком упрощённое представление.
Троичная логика находит всё более широкое применение в области телекоммуникаций. Нынешнее поколение высокоскоростных модемов вместо применяемого ранее двухчастотного способа передачи данных применяет трёхчастотный, полосу частот в котором формируют два троичных трёхчастотных генератора, которые за один такт способны передать девять кодов.
Кроме того, разработчики микропроцессорной техники всё чаще заглядываются на многозначные логики, в частности на их троичную реализацию. Такие компании, как IBM, Motorola и Texas Instruments, ведут исследования с кремниево-германиевыми сплавами (SiGe), в рамках которых можно реализовать цифровые интегральные схемы, работающие с тремя и более уровнями сигнала.
С позиций реализации компьютер с шестнадцатиразрядной шиной обеспечивает поддержку 216 (65536) адресов памяти, в то время как троичный компьютер аналогичной разрядности поддерживает 316 — около сорока трёх миллионов адресов. Есть над чем задуматься, учитывая более простую работу троичной логики с отрицательными значениями, что также существенно упростит архитектуру микропроцессоров.
Остаётся надеяться, что души «Сетуни» и «Сетуни-70» обретут троичное бессмертие не только в программных эмуляторах, но и в будущих поколениях компьютеров, которые не будут знать, что «третьего не дано».
Читайте также: Александр Самсонов о троичной логике и сетевой археологии. Энтузиаст, пытающийся возродить «Сетунь-70» в виде программного эмулятора, рассказал «Компьютерре» о малоизвестной истории «Сетуни» и практических преимуществах троичной логики.
- Автор выражает признательность за помощь в подготовке материала фотографу Надиру Чанышеву, Юлии Сергеевне Владимировой — инженеру второй категории лоборатории электронных вычислительных машин факультета вычислительной математики Московского государственного университета, а также ресурсу "Троичная информатика".
Интервью
Павел Фролов («ГНУ/Линуксцентр») о НПП
В интервью с Дмитрием Комиссаровым мы вкратце затронули тему финансово-экономического обоснования внедрения разработанных в рамках национальной программной платформы продуктов. Рассказать о переданном в Минкомсвязи ФЭО подробнее согласился Павел Фролов, руководитель компании ГНУ/Линуксцентр, который координировал работу над документом.
- Скажите, кто из экспертов разрабатывал данное обоснование, и по какой методике проводились расчёты?
- Список экспертов, разрабатывающих ФЭО, включает специалистов ИПМ им. М.В. Келдыша РАН, ИПУ им. В.А. Трапезникова РАН, МГУ им. М.В. Ломоносова. Список привлечённых предметных экспертов по ИКТ, СПО, экономике и прочим направлениям приведён в приложениях к ФЭО и будет опубликован после приёмки работ в Минсвязи.
- Порядки сумм впечатляют. В приведённых ПингВином данных речь идёт об экономии до 80 процентов по статье «Приобретение программных средств» и до 50 процентов по статье «Оплата услуг сторонних организаций и специалистов по ИКТ» (с 2012 по 2020 год). Нельзя ли узнать, на чём основаны эти выкладки?
- По статье «Приобретение программных средств»: при внедрении НПП один из главных смыслов — государство и бизнес «обязуются» за эти девять лет легализовать весь имеющийся у них пиратский софт (то есть оплатить его или заменить на СПО-аналоги). Поскольку уровень пиратства в РФ (2010 год) оценивался почти в 70 процентов, то эта сумма засчитывается в баланс экономии по данной статье. Остальная экономия по статье (десять процентов) — это постепенный переход от проприетарного ПО к аналогичному СПО.
По статье «Оплата услуг сторонних организаций и специалистов по ИКТ»: здесь основной выигрыш (двойной) достигается за счёт удешевления услуг ИКТ-специалистов (и организаций), за счёт отсутствия необходимости получения дорогостоящих сертификатов вендоров проприетарного ПО и сокращения количества очень высокооплачиваемых зарубежных специалистов (и организаций), участвующих в проектах внедрения проприетарного ПО (особенно крупных корпоративных систем и масштабных ИКТ-инфраструктурных проектов). Кроме того, происходит увеличение унификации ПО в НПП, а следовательно, увеличение количества специалистов по ИКТ во всех рыночных нишах ИКТ (особенно в дорогостоящих) и, естественно, снижение стоимости данных специалистов (по аналогии: специалисты по SAP -> специалисты по 1С). Увеличивается количество недорогих курсов по типовым программам НПП для привлечения молодёжи в ИКТ (см. предыдущий тезис).
- В пресс-релизе также говорится о дополнительным экономическом эффекте.
- В соответствии с расчётами, приведёнными в ФЭО, внедрение НПП будет иметь глобальные последствия для всей ИКТ-отрасли России, а также и в целом для социально-экономической системы России. Поэтому импортозамещение является только одним из прямых последствий внедрения, которое было включено в общий прямой эффект от внедрения НПП.
- Последний вопрос с НПП не связан. Насколько велик эффект от внедрения GNU/Linux на рабочих станциях? Экономия от внедрения свободной ОС на серверах действительно велика из-за высокой стоимости лицензий на серверный софт. Но ведь клиентское проприетарное ПО стоит не так дорого. Есть ли здесь смысл экономить?
- Экономия достигается за счёт использования единого репозитория СПО, то есть за счёт ухода от повторных затрат на разработку аналогичных приложений. Цена лицензий на рабочие станции невысока, однако их много, поэтому общий поток лицензионных платежей в масштабах страны оказывается значительным. Перенаправление данного потока внутрь ИКТ-отрасли России окажет существенное влияние на информационную безопасность страны. Данный вопрос рассмотрен подробно в разделе ФЭО, связанном с косвенными последствиями внедрения НПП на экономику России в целом.
А. Самсонов о троичной логике и цифровой археологии
В шестидесятые годы прошлого столетия в СССР разрабатывали уникальные вычислительные машины «Сетунь». В отличие от обычных компьютеров, они оперировали данными по законам не двоичной, а троичной логики (подробности — в статье Евгения Лебеденко "Tertium Datur"). Хотя исправных троичных ЭВМ не осталось, идея, на которой они были основаны, настолько интересна и необычна, что о «Сетуни» помнят до сих пор.
Александр Самсонов не застал тех времён, но увлекается троичной логикой сегодня. В свободное время он собирает и систематизирует информацию о троичных компьютерах и троичной логике. Помимо этого, он координирует группу, работающую над программным эмулятором «Сетуни-70».
- Как вы наткнулись на эту тему?
- Совершенно случайно. Году в 1998 читал журнал American Scientist, и там была статья о троичной неуравновешенной системе исчисления. Потом, если не ошибаюсь, троичная логика была упомянута во втором томе Дональда Кнута, и каким-то образом мне попалась статья о том, что существовала даже троичная ЭВМ. Я начал интересоваться, ходить по библиотекам, пытаться найти публикации, меня это захватило.
Когда я начинал, у меня не было ни единого знакомого, который не то что знал, а хотя бы мог понять основные принципы троичного представления данных. Дипломированному программисту показываешь эту систему, но для него понять, что нужно не только складывать, но ещё и вычитать — это шок и взрыв мозга. Кто-то сразу начинает критиковать, кто-то через какое-то время понимает. Некоторые вообще не в состоянии понять после того, как долго работают с двоичной логикой, что всё может быть проще и быстрее.
- И теперь вы пытаетесь организовать тех, кто интересуется троичной логикой?
- Всего заинтересованных — несколько десятков, но постоянно контактируют и чем-то занимаются человек пять. В России только один человек, все остальные из других стран — Штатов, Швеции и так далее. В Украинском Институте кибернетики серьёзно занимались этой темой, были публикации, патенты, какие-то схемы на уровне того времени. И у нас в Институте прикладной математики Варшавский занимался этим. Но он сконцентрировался на математике, а потом, с его отъездом, исследования прервались.
- Что представляла собой «Сетунь», и откуда она взялась?
- «Сетунь» — это первая и единственная в мире серийно производившаяся троичная вычислительная машина, которая относилась к классу малых. Её создали в лаборатории вычислительных систем МГУ. Работа началась в 1955 году, когда Николаю Петровичу Брусенцову дали задание ознакомиться с разрабатывающимися на то время ЭВМ, чтобы впоследствии приобрести одну их них для нужд университета.
- А Николай Петрович вместо этого сказал, что ему не нравится двоичная логика?
- Не совсем так. Его направили в одно из КБ, которое занималось созданием ЭВМ. Он с большим интересом наблюдал, каким образом производится машина, и обратил внимание на то, что некоторые элементы недостаточно оптимально используются, в частности память. Поскольку было много брака, приходилось устанавливать в два раза больше элементов.
- То есть в машины тогда сразу ставили запасные элементы на случай неисправности?
- Да, поскольку часть элементов была бракованная, то один из них мог сработать, а второй — нет. Так вот, через какое-то время из-за ссоры в верхах университету отказались продавать машину. Сказали: «Разбирайтесь сами, покупайте в другом месте». В итоге в МГУ её решили разработать собственными силами.
У Николая Петровича уже было представление о том, как это делается и что должно получиться. Он обратил внимание на бесполезное удвоение элементов и попробовал реализовать троичные элементы. В результате количество элементов сократилось в семь раз по сравнению с тем, что он видел в КБ. При поддержке академика Соболева решили попробовать реализовать многозначную, полностью троичную машину — «Сетунь».
Конструкторские работы продолжались до 1957 года, и в 1958-59 годах «Сетунь» была запущена. Машина получилась, во-первых, на удивление небольшой, во-вторых, дешёвой, что потом сыграло с ней злую шутку. К тому же она заметно отличалась от всех остальных ЭВМ того времени, поскольку была троичной. Тем не менее, когда опытный образец показали на ВДНХ, он получил приз. Пошли разговоры о серийном производстве. В 1960-61 году на Казанском заводе вычислительных машин начали собирать «Сетунь».
- Тогда и появились те самые пятьдесят экземпляров?
- Да. Их строили очень долго, не больше десяти штук в год. В основном «Сетунь» расходилась по небольшим инженерным КБ, бюро и университетам. Насколько мне известно, одна из них стояла в академии Жуковского в Москве: с её помощью учили программированию и вели расчёты.
- И писали для этого собственный софт?
- Да. В то время это было нормально. Каждый получал машину практически безо всего и самостоятельно решал свои задачи.
- Как примерно выглядел этот агрегат?
- Он был относительно невелик — занимал площадь небольшой комнаты. Четыре небольших шкафа и две стойки: на одной пульт с индикаторами, а на другой — электрическая пишущая машинка, с помощью которой происходил набор данных. Фактически что-то вроде терминала: вводишь текст, и на бумаге остается всё, что набрал.
- Возможно ли описать производительность «Сетуни» в современных терминах?
- В современных получается совсем уж скромно — порядка двадцати тысяч операций в секунду. В своё время она попадала в класс малых машин, не особо требовательных к скорости вычислений.
После запуска «Сетуни» в производство проводились семинары по программированию, которые послужили, наверное, отправной точкой для большинства других семинаров по вычислительной технике — как московских, так и новосибирских. Результатом этих семинаров стал ежегодник, в котором публиковались программы — включая исходный код и подробное описание принципов работы, проблем и задач, которые эта программа решала.
- Какие же преимущества давала троичная логика?
- Двоичная логика по своей сути представляет собой сильно урезанную формальную логику. Из-за своих ограничений она не позволяет произвести некоторые действия. Либо позволяет, но неэкономно, и придётся прилагать значительно больше сил. Впрочем, в первой «Сетуни» самой по себе троичной логики практически не было, а применялось в основном троичное представление данных. Логических же операций как таковых в системе команд, по-моему, не имелось вовсе.
- То есть это была исключительно счётная машина?
- Да, она создавалась именно для выполнения расчётов. А вот в первом варианте «Сетуни-70» уже были некоторые средства для выполнения логических операций.
- «Сетунь-70» начала разрабатываться сразу, как только первая «Сетунь» была закончена?
- Нет. В 1965 году был расцвет первой «Сетуни», когда она производилась, продавалась, поставлялась в университеты и КБ. Ближе к семидесятому году, к столетнему юбилею Ленина, всем институтам предлагали показать свои достижения. Коллектив Николая Петровича решил сделать следующую модель «Сетуни», тоже троичную. ЭВМ назвали «Сетунь-70». Работу начали в 1968 году. Сначала был сделан один вариант и нормально запущен, но потом пришла мысль чуть-чуть поменять архитектуру и лучше приспособить её для стекового программирования, которое сейчас больше известно как структурное. Идею структурного программирования предложил Дейкстра, и «Сетунь-70» прекрасно подошла для такого подхода.
- И после этого появился единственный опытный экземпляр?
- Да. Его построили и испытали, но в серию эти компьютеры не пошли, потому что к тому времени сложилась нехорошая ситуация вокруг первой «Сетуни». Как уже было сказано, машина получилась очень дешёвой, поэтому её просто невыгодно было производить. Да и производительность к тому времени уже была не того уровня, который требовался. К тому же тогда началось распространение полностью полупроводниковых машин, на фоне которых ферритовые катушки «Сетуни» смотрелись совсем несерьёзно.
- Были ли другие исследования, связанные с троичной логикой?
- В семидесятых годах, если не ошибаюсь, в Штатах была сделана попытка построить на большой двоичной ЭВМ эмулируемую троичную ЭВМ для того, чтобы оценить эффективность. По результатам работы опубликовали три документа: два из них можно найти в Сети, а третий неуловим — название книги есть, но найти её нереально. Известно, что выводы были положительными, но всё уперлось в то, что как раз тогда происходил переход на полупроводниковую элементную базу. Реализовать на транзисторах троичную логику гораздо сложнее. В принципе, это и мешает появлению троичных систем. Сейчас они если и существуют, то не распространены.
- Выходит, виноваты транзисторы?
- Да. При реализации троичной логики на транзисторах требуется больше элементов, и на первый взгляд кажется, что это не так эффективно. Но здесь вот какая особенность: чем больше троичных элементов добавляешь, тем меньше соединений требуется. К тому же в определённый момент количество элементов начинает расти нелинейно. Когда число элементов переваливает некоторый порог, для увеличения сложности троичного компьютера требуется всё меньше и меньше элементов. Там, где двоичному компьютеру приходится удваивать количество элементов, троичному достаточно увеличить количество элементов только в полтора раза, потом в 1,3 раза и так далее.
- Существуют ли троичные машины, сопоставимые с «Сетунью-70»?
- Насколько мне известно, нет. Алгоритмов же написано много. Есть множество патентов как на электронику, так и на алгоритмы, которые упоминают и применяют в той или иной степени как классическое троичное представление данных (то есть смещённое от нуля — «один» и «два»), так и уравновешенное — «минус один», «ноль», «плюс один». Но я не слышал, чтобы кто-то пытался их серьёзно применять на практике. Известно, что студенческие коллективы предпринимали попытки построить подобный компьютер в Штатах, во Франции и в Новой Зеландии. В Испании построили троичный процессор с небольшим количеством памяти, но сейчас о нём уже ничего не узнать, кроме названия. Это сделали лет восемь назад, были публикации, но потом всё это пропало.
Троичных вычислительных машин, по-моему, никто не делает, полнофункциональных процессоров — тоже. При этом в области обработки цифровых сигналов широко применяются знакоразрядные системы исчисления, которые фактически эмулируют уравновешенное троичное представление на двоичных процессорах. То есть берутся два бита, один из них означает знак, а четвёртое состояние соответственно либо не используется, либо используется в отладочных целях.
- Зато у вас есть два эмулятора «Сетуни».
- Один есть и доступен уже года три. Он эмулирует первую «Сетунь», ту, которую разработали в 1959 году. Эмулятор интересно устроен — в виде веб-приложения: на страничку заходишь, там перед тобой фактически один в один модель панели той самой «Сетуни». Эмулятор называется «Сетунь ВС». Можно двигать переключатели и всякие ползунки, запускать машину на счёт, переключать режимы. Но для освоения придётся прочесть книжку (которая есть в интернете, кстати) «Малая цифровая вычислительная машина Сетунь».
Второй эмулятор — это уже попытка эмулировать «Сетунь-70». Пока он не подходит для посторонних: тот, кто знает, что делает, может собрать и запустить его, а все остальные, скорее всего, не разберутся. С помощью этого симулятора мы надеемся рано или поздно получить возможность запускать программы для «Сетуни-70», которые сохранились в распечатках, на перфолентах и в других источниках.
- Как я понимаю, сейчас вы восстанавливаете программу из ПЗУ?
- Недавно была получена пачка листочков, на которых были распечатаны данные ПЗУ. К сожалению, есть одна сложность: никто точно не знает, в каком порядке нужно располагать эти страницы. Так что сейчас будет длительная работа с попыткой подобрать, посмотреть, какие части кода к чему подходят.
- После этого можно будет получить готовую «Сетунь-70»?
- Можно будет запускать все доступные алгоритмы, но часть требует разных аппаратных устройств типа терминалов, информации о которых у нас нет. Поскольку «Сетунь-70» существовала в единственном экземпляре, для нее не так много программного обеспеченья, как для первой «Сетуни». Она использовалась по большей части для нужд МГУ.
- Как программировали «Сетунь-70»?
- У программистов «Сетуни-70» был достаточно развитый инструментарий. В нём имелся, по-моему, ассемблер даже и то ли транслятор Фортрана, то ли компилятор Алгола.
- В коде приходилось как-то учитывать троичность?