Не знаю, насколько интересно читать мои статьи, посвященные истории становления компьютерной отрасли, одно я знаю точно: писать их во сто крат интереснее. В процессе длительных поисков исходной информации для очередной статьи и исследований всегда находится что-то такое, что заставляет воскликнуть: «Ух ты!», но, к сожалению, далеко не все может уместиться в журнале. После статьи о Льюисе Кэрролле и трехзначной логике я стал собирать материалы о реально созданной в СССР троичной ЭВМ «Сетунь», главным конструктором которой был Николай Петрович Брусенцов. Случайно мне попался его номер телефона. Без особой надежды -шутка сказать, человек 1925 года рождения, прошел войну — набрал номер. К моему удивлению, трубку взял сам Брусенцов. Узнав, что я звоню по поручению журнала Upgrade, он сказал: «А, как же, Upgrade, знаю. Там еще статья была про троичную логику какого-то Румянцева». Короче, познакомились, договорились о встрече. И вот я иду по коридору здания факультета вычислительной математики и кибернетики МГУ. Надо сказать, что мне нередко приходится бывать в разных ВУЗах, и самое мрачное впечатление на меня производит факультет ракетостроения МАИ -такого ужасающего разгрома я нигде не видел. В МГУ у меня тоже вечно как-то сжимается сердце. Повсюду следы того, что когда-то это был один из главных храмов мощного государства... Здесь что-то ремонтируют, укладывают полы — и то слава Богу. Подхожу к двери с надписью «Лаборатория ЭВМ» и лихорадочно вспоминаю, что мне, собственно, известно о человеке, к которому иду, и о его детище.
Год рождения — 1925, на войне с 1943 года, служил радистом в отделении разведки. В 1948 году поступил в Московский энергетический институт. Во второй половине 50-х годов в МГУ создал троичную ЭВМ «Сетунь», аналогов которой не существует и поныне. Всего было выпущено 50 таких машин. Элементарная единица информации — трит, страничная двухуровневая организация памяти, пороговая реализация трехзначной логики на электромагнитных элементах и все в таком духе. Открываю дверь, вхожу и... удивляюсь: никаких компьютеров. За столом годов, наверное, 60-х сидит скоромно одетый человек — простая рубашка и джинсы (компьютерная традиция, однако). Честно говоря, у меня были подготовлены разные дурацкие вопросы, типа того, какую ОС он использует и какой процессор в его компьютере. Брусенцов сразу задал другую тональность разговора, отчего мне с моими пигмейскими домашними заготовками стало немного неловко. И все же больше всего меня интересовало, почему он решил строить троичную машину, когда все вокруг делали двоичные?
Upgrade: Так, собственно, почему троичная машина?
Николай Брусенцов: Тогда задача была очень простая: мы должны были для МГУ получить машину М-2, которую сделали в лаборатории Брука. Но получилась неувязочка. На выборах академиков Сергей Львович Соболев -наш руководитель — проголосовал не за Брука, а за Лебедева. Брук обиделся и машину не дал. Я пришел к Соболеву и спросил: чем же я теперь буду заниматься? Он мне отвечает: «А давайте свою машину сделаем». Это было в конце 1955 года.
В то время транзисторы были еще недоступны, но было ясно, что машина не должна быть ламповой. Лампы имеют короткий срок службы, и машины на ламповой базе большую часть времени простаивали, потому что их вечно чинили. Ламповая машина работала в лучшем случае в течение нескольких часов, потом нужно было искать очередную неисправность. Юлий Израилевич Гутенмахер строил машину ЛЭМ-1 на феррит-диодных элементах. Мне пришла в голову мысль, что раз транзисторов нет, то можно попытаться делать ЭВМ на этих элементах. Соболев, которого все очень уважали, договорился, чтобы я побывал на стажировке у Гутенмахера. Я все детально изучил. Поскольку по образованию я радиоинженер, то сразу увидел: не все нужно делать так, как делают они. Главное, что я увидел: они используют пару сердечников под каждый бит — рабочий и компенсационный. И мне пришла в голову идея: а что, если заставить компенсационный сердечник работать. Тогда каждая ячейка становится трехзначной. В результате получилось, что в «Сетуни» количество сердечников было в семь раз меньше, чем в ЛЭМ-1. При этом «Сетунь» имела почти вдвое большую разрядность.
Тогда в МГУ как раз собирались получать большую машину «Стрела», создали вычислительный центр. Сергей Львович предусмотрел в нем отдел электроники — мой отдел. И мы должны были создать машину с нуля. Условия такие: машина должна быть небольшой, надежной, простой в освоении и использовании — короче, машина широкого назначения, для учебных заведений, лабораторий и т. п. Когда я выяснил, что можно воспользоваться троичной системой счисления, я сказал об этом Сергею Львовичу. Он полностью все одобрил. Уверен, что другой на его месте сказал бы: «Да ты что, все делают двоичные, а ты куда?»
UP: Он фактически дал полный карт-бланш?
Н. Б.: Да. В нашей лаборатории никогда не работало более двух десятков человек, считая девочек, которые мотали сердечники. А в начале у меня вообще было три-четыре сотрудника. Я должен сказать: для того, чтобы разрабатывать компьютеры, совершенно не нужны тысячные институты. Мы работали в компании с нашим программистским отделом, который возглавлял Е. А. Жоголев. То, что затем получило название «архитектура машины», создавалось нами вместе. Он предлагал программистские идеи, а я думал, насколько их можно реализовать на аппаратном уровне. В конечном итоге мы создали всего 24 машинных команды. Многие до сих пор в это не верят. И в дальнейшем архитектура «Сетуни» не подверглась никаким изменениям. Все серийные машины были архитектурно точно такими же, ну, может, слегка адаптированы под производство. Начав в 1956 году, мы уже через два с половиной года, в 1958 году, сделали образец, который работал. И вот тут-то началось нечто несуразное.
Осенью 1959 года нас пригласили на Коллегию Государственного Комитета Радиоэлектроники — ГКРЭ. И там мы узнали, что наша машина не нужна. И Госплан, и ВСНХ заняли отрицательную позицию. На Коллегии нас записали в черный список закрываемых разработок. Мы никогда никаких дополнительных денег на создание машины ни копейки не получали. Мы работали только за зарплату здесь, в МГУ. Использовали оборудование, списываемое заводами при снятии изделий с производства. Тем не менее, ради экономии средств нас решили закрыть.
UP: Но какое-то объяснение этому должно быть?
Н. Б.: Соболев спросил: «А вы хотя бы видели эту машину, ведь она уже существует?» Директор СКБ-245 В. В. Александров ответил: «Нам не надо ни видеть, ни знать — должна быть авторитетная бумага с печатями и подписями». После Коллегии Сергей Львович пошел в ЦК КПСС. Уже вечером к нам приехал сотрудник отдела ЦК Ф. К. Кочетов и привез с собой М. К. Сулима — начальника восьмого управления ГКРЭ. «Сетунь» нормально работала и производила необыкновенно хорошее впечатление. Обычно ведь как было: на выставке стоят машины, а сзади люди в белых халатах что-то там налаживают. У нас все работало как часы. Ну, понятно, после этого закрывать нас не стали, ведь машина уже сделана. Было принято решение провести ее межведомственные испытания. Испытания были проведены в апреле 1960 г. На них «Сетунь» показала 95% полезного времени. А в то время, если машина показывала 60%, это считалось очень хорошим результатом.
UP: А что значит термин «полезное время»?
Н. Б.: Вы включаете машину, прогоняете тесты, начинаете решать задачу, происходит сбой, все повторяете. И так до тех пор, пока задача не будет решена. Полезное время — это все то время, которое машина занята решением задач, а не тестово-наладочными работами.
После этих испытаний было принято постановление Совмина об организации серийного производства. Мы не очень удачно выбрали Казанский завод, лучше бы Астраханский. Астраханцы потом взялись делать элементы к этой машине и делали их превосходно. Элемент стоил 3,5 руб. Конечно, никаких высоких технологий там не было. ЭВМ «Сетунь» выпускали по 10-12 штук в год, то есть вроде бы выполняется постановление Совмина СССР, а на самом деле -нет. Притом, что было очень много заявок не только внутри страны, но и из-за рубежа. Во-первых, разумеется, из соцстран, но также и из таких стран, как США и Англия, где разработчикам было очень интересно посмотреть, что это за троичная штука.
UP: Американский аналог «Сетуни» — это PDP-8, на которой тинэйджер Билл Гейтс составлял свои первые программы?
Н. Б.: Да. Кстати, интересно сравнить «Сетунь» и PDP-8. Процессор PDP-8 — восьмибитный. У «Сетуни» процессор в пересчете на биты был 30-битным. PDP-8 стоила 20 тысяч долларов без всякой периферии, только один процессорный блок. Считалось, что это рекордно низкая цена.
Первый опытный экземпляр машины "Сетунь". При испытаних она показала 95% полезного времени, в то время как 60% уже считались хорошим результатом.
«Сетунь» стоила 27,5 тысяч рублей со всей периферией. Чехи считали, что могли хорошо продавать «Сетунь» в соответствии с рыночными ценами и получать порядка полумиллиона долларов прибыли с каждой машины. По их приглашению я ездил в Чехословакию, мне показали завод, который планировалось использовать для производства машины «Сетунь», — «Зброевка Яна Швермы». Этот завод, кстати, во время войны делал самые лучшие пушки для немецкой армии, вроде нашей ЗИС-3. Завод меня просто восхитил. Они уже приготовили для «Сетуни» магнитные барабаны, печатающее устройство, устройство ввода. В общем, все было готово для производства «Сетуни». И они мне задают вопрос: «Ну, когда же, наконец, мы получим документацию? Нам обещали еще в декабре, а ее до сих пор нет». А я молиться готов был на такой завод — настоящая высокая культура производства.
ЭВМ "Сетунь-70" была стековой машиной, вроде отечественных "Эльбрусов", но имела два стека - команд и данных..
Когда я вернулся в СССР, меня вызвал референт Косыгина и попросил передать чешским товарищам, как тогда говорилось, что документацию на «Сетунь» они получат сразу после освоения крупносерийного производства этой машины в Советском Союзе. Но какое к черту крупносерийное производство, когда принимались все возможные меры, чтобы заморозить «Сетунь». Понятно, что тут не обошлось без ГКРЭ. Тот же самый Сулим был заместителем главного конструктора М-20. А с М-20 в КБ провозились 2,5 года, прежде чем передать ее на завод. Для «Сетуни» никакого КБ не дали — завод указан, езжайте и выпускайте. Хорошо В. М. Глушков предложил свое КБ за символическую плату в сто тысяч рублей, чтобы выпустить конструкторскую документацию.
UP: Сто тысяч рублей — это символическая плата?
Н. Б.: Ну конечно! Те 2,5 года, которые в КБ разрабатывали М-20, обошлись в десятки миллионов рублей, Что такое КБ того времени? Это несколько сот человек с высокой оплатой по первой категории и т. д.
Позднее я узнал, что чехам говорили: все равно мы эту машину снимем с производства, так что вы ее не заказывайте. Вот так все и закончилось с «Сетунью». В начале 70-х нас из главного корпуса ВЦ переселили на чердак. «Сетунь», несмотря на то, что она была полностью исправной и загруженной задачами, через пару лет была уничтожена — ее разрезали и выкинули на свалку.
UP: А «Сетунь-70»?
Н. Б.: К 100-летию со дня рождения Ленина все должны были делать всякие производственные подарки. Разумеется, и мы взяли обязательство к этой дате сделать «Сетунь-70». Но это уже совсем другая машина. Это была стековая машина, вроде наших «Эльбрусов». Но у «Эльбруса» был всего один стек — стек операндов. У PDP-11 также был всего один стек — процедурный. А «Сетунь-70» имела два стека — команд и операндов. Надо сказать, что эти стеки мы сделали независимо от PDP-11, которая появилась позднее. Когда Дейкстра выступил с идеей структурного программирования, мы увидели, что сделали машину как раз для реализации его идеи. Программирование на «Сетунь-70» было даже не структурированное, а структурирующее. Программы получались легко читаемыми и осваиваемыми, легко модифицированными. Главное, что программы не подвергались отладке, а делалась так называемая контрольная сборка. После того как программу сверху вниз написали, ее проходили снизу вверх. В хороших КБ всегда так делается — типичный конструкторский прием. После этого программа оказывается, как правило, безошибочной. Позднее «Сетунь-70» была эмулирована на двоичных машинах в форме диалоговой системы структурного программирования ДССП.
UP: И все-таки, Николай Петрович, кому мешала «Сетунь»?
Н. Б.: Людям с косным мышлением, которые, тем не менее, занимали высокие руководящие посты. Как показала практика, «Сетунь» была работоспособна без всякого сервиса. Те, кто душил ЭВМ «Сетунь», раскидали ее по всей стране.
UP: А смысл?
Н. Б.: Видимо, для того, чтобы удаленность от сервисного центра и разброс климатических зон максимально выявили конструктивные недочеты. Но вся штука в том, что их практически не было. «Сетунь» была очень простой машиной. Я, как инженер, считаю, что простота вещи — это главное ее качество. В природе все то, что удалось ей выработать в простой форме, оказывается самым надежным, самым устойчивым. География обитания «Сетуни»: Якутск, Иркутск, Красноярск, Душанбе, Ашхабад, Махачкала, Калининград и т. д. Причем часто она попадала к людям, которые впервые видели цифровую технику. И несмотря на это, практически всюду машина нашла существенное применение. В Якутске «Сетунь» была в астрофизическом институте. У них была какая-то сложная задача, которую они в течение двух лет не могли поставить на большой машине ^Урал-2». Потом кто-то сказал:
«Давайте попробуем на «Сетуни». Все решили, что это шутка. Однако через полтора месяца задача была решена. Дело в том, что «Сетунь» была естественной машиной. Там нет этого идиотского дополнительного кода для отрицательных чисел. И положительные, и отрицательные числа задаются естественно. Потом всего 24 команды. Освоить такую машину и программировать в машинном коде было ничуть не сложнее, чем, скажем, осваивать «Алгол» или «Фортран».
UP: Но программист фактически должен был работать в пространстве трехзначной логики?
Н. Б.: А что значит трехзначная логика? Знак числа — это какая функция? Трехзначная! Число может быть положительным, отрицательным, а может быть равным нулю. Это совершенно естественно, и это понятней, чем то, что мы имеем в двоичных машинах, когда, чтобы разобраться, какого знака результат, нужно сделать два шага. Но, строго говоря, в самой «Сетуни» логическая часть была не особенно развита. Правда, та трехзначная логика, которая была в «Сетуни», с избытком покрывала то, что было в двоичных машинах. Но аристотелевских суждений там, конечно, не было. Мы в то время собственно логикой не занимались. Я уже после создания «Сетуни» стал понимать, что логику как таковую не знаю, стал читать книги. Оказалось, что у меня были предшественники. И у них, кстати, путь тоже не был устлан розами. Еще в XIII веке был такой Раймунд Луллий (1235-1315 гг.). Он создал логическую машину, правда, на бумаге, в виде круговых диаграмм с секторами. Эта машина была троичной. Этого Луллия забили камнями. Был Вильям Оккам, он тоже предложил трехзначную логику, значительно более реальную, чем та, которую изобрел Ян Лукасевич в 1920 году. Далее всех продвинулся Льюис Кэрролл. Он нигде не говорит, что у него трехзначная логика. Но диаграммы Кэрролла из его «Символической логики», кроме красных и белых фишек, допускают еще пустые клетки. Это и есть трехзначная логика. Кэрролл на Аристотеля не ссылается и свою силлогистику создал как реализацию логики естественного языка. Поразительно, что Гарднер — популяризатор информатики — охарактеризовал Кэрролла посредственным логиком и посредственным математиком. И это притом, что Кэрролл в сущности создал систему — у него были очень незначительные неувязки, — решающую задачу, над которой бились логики последних полутора столетий.
UP: Николай Петрович, после статьи в журнале Upgrade я получал письма, в которых читатели интересовались, как именно удалось реализовать троичный компьютер? Было даже письмо, где автор выразил сомнение в том, что такой компьютер когда-нибудь существовал.
Н. Б.: Буквально на днях я получил письмо из США, где также спрашивают, как удалось реализовать троичную логику? К нам постоянно приходят по e-mail письма с запросами. Надо сказать, что наибольший интерес проявляют такие страны, как Бангладеш, Пакистан, Индия. У меня такое ощущение, что там сейчас главный центр компьютерного развития. Но на сегодня все попытки повторить троичную машину не удаются. Причина не технологическая — все-таки по сравнению с тем периодом технологии ушли далеко вперед. Дело в другом: людям, оболваненным двузначной логикой, войти в трехзначную логику не дано. По традиции считается, что та логика, которую мы сегодня исповедуем, — аристотелевская логика. Это совершенно неверно. Дело в том, что аристотелевская логика трехзначная. Естественно, что трехзначная логика в двузначную вписаться не может. Конечно, можно симулировать: парами битов задать триты, но не в этом дело.
Та логика, которую сегодня называют математической, основана на нелепости. Допустил ее Гильберт. В его совместной с Аккерманом книге «Основы теоретической логики» сказано так: «Мы отклоняемся от Аристотеля в истолковании суждения «Все А суть В». По Аристотелю, это суждение может быть истинным, то есть выполняется только лишь в случае, когда существуют какие-то А. Мы считаем это нецелесообразным». Что в результате получилось? В результате получилось то, что выполняется «Все А суть В» и в то же время не выполняется «Некоторые А суть В». Это нелепость! Вместо аристотелевского следования, которое во всех естественных языках выражается словами «Все А суть В», — и Аристотель очень точно это в своей системе воспроизвел, — они подсунули так называемую материальную импликацию. Дело в том, что суждение «Все А суть В» у Аристотеля трехзначно, в двузначной логике оно не выразимо. В результате возникли так называемые парадоксы материальной импликации, с которыми вот уже сто лет как логики пытаются справиться.
В 1918 году Кэрролл предложил строгую импликацию, потом Аккерман разработал исчисление сильной импликации, была предложена релевантная импликация, и, тем не менее, логика остается без естественного содержательного следования. То есть то, что называется следованием логике, не соответствует тому, как мы это понимаем. Обычно говорят: не соответствует нашей интуиции. Но это очень мягко сказано. На самом деле оно не соответствует не интуиции, а тому, как вещи связаны между собой в том мире, в котором мы живем.
Аристотель не признавал закона исключенного третьего. Даже речи о нем не было. Гильберт считал, что аристотелевское понимание суждения «Все А суть В» не нужно принимать, потому что это неприемлемо с точки зрения математических применений. А абсурд приемлем? Вся история говорит о том, что этот абсурд существует.
Вот почему столько раз тщетно логику пытались ввести в школы? Казалось бы, ведь числовую алгебру уже даже в начальной школе осваивают, а булеву алгебру освоить не могут. Дело в том, что двузначная логика противоестественна. Вместо того чтобы изучение логики развивало интеллект человека, оно его подавляет. У нас в МГУ на философском факультете, да и на нашем факультете, изучают математическую логику, и что вы думаете — люди от этого становятся умнее? Они вызубривают доказательства теорем, сдают экзамены и все.
Единственное адекватное применение двузначной логики -двоичные цифровые схемы. Но это особый мир двоичных компьютеров, и только в нем эти правила работают, не требуя понимания. Я поинтересовался у студентов: что такое конъюнкция? А мне в ответ: да это такая табличка, в которой единичка и три нуля... Ну, а по смыслу что это такое? Переведите на русский язык латинское слово «конъюнкция». Никто не может. То есть эту логику усваивают чисто формально, в точном соответствии с ее названием — формальная логика. При синтезе схем возможности ограничены. Минимизировать произвольную схему наука не в состоянии. В трехзначной логике минимизация осуществляется, а в двузначной универсального алгоритма нет.
Я бы эту проблему сформулировал так: если мы хотим обрести нормальное мышление, мы должны уйти из двузначного мира и освоить трехзначную логику в том виде, как ее создал Аристотель. Не совсем, конечно, так. Не нужны его фигуры. Все это сегодня с помощью алгебры можно будет изящно изложить и легко воспринимать. Но важно понимать, что, кроме ДА и НЕТ, есть еще и НЕ-ДА и НЕ-НЕТ.
Сейчас двузначную логику в школу ввести удалось под названием «информатика». Я должен сказать, что после этого школа уже не будет воспитывать таких людей, как наши ученые прошлого века. Почему в то время было так много творческих ученых? Где-то в 1936 году в образовании был примерно такой же бедлам, как наступил сейчас в России. Потом, по-видимому, сам Сталин обратил на это внимание. Кстати, Сталин был поразительно трудолюбивым в плане обучения человеком. Сохранилось его письмо к жене, в котором он, находясь на отдыхе, просит ее прислать ему учебник по электротехнике. Он понимал, что все нужно знать «в натуре», а не в виде каких-то теоретических схем. Тогда в школу были возвращены учебники Киселева по алгебре и геометрии. Киселевские учебники — это евклидова математика. А Евклид — это математик с философией Аристотеля, и, судя по всему, он Аристотеля понимал верно.
Если мы не хотим в школах воспитывать людей с рефлексами бюрократов и формалистов, то должны заменить двузначную логику трехзначной диалектической логикой Аристотеля.
UP: Николай Петрович, вы создали уникальный компьютер, который, возможно, опередил время. Но всю свою жизнь вынуждены были преодолевать невероятное сопротивление, косность бюрократической машины и видеть, как ваше детище уничтожается. С другой стороны, скажем, в США, тот же Стив Джобе, который в гараже сделал свою первую и довольно убогую персоналку, сегодня мультимиллионер. По-человечески вам не обидно?
Н. Б.: Да нет. Я понимаю, что, увы, так устроено человечество. И, в общем, оно обречено, если ничего не изменится. К сожалению, все попытки как-то исправить ситуацию, сделать ее более соответствующей естественному порядку вещей проваливаются. Давайте посмотрим: действительно ли мы так много имеем от того, что компьютеризировали этот мир. Теперь компьютеры везде. Причем система устроена таким образом, что каждые три-четыре года нужно покупать новый компьютер и новый софт.
UP:...делать upgrade.
Н. Б.: Да, делать upgrade. Но почему? Да потому, что в самом начале заложены неверные принципы. Если вы в основу заложите простые, естественные принципы, то и все развитие происходит просто, логично, естественно.
Я не обижен судьбой. Не в деньгах счастье, тем более не в миллиардах. Когда все сведено к деньгам, жизнь людей утрачивает смысл, становится абсурдом. На войне не могло быть радости от того, что грохнувший вблизи разрыв сразил не тебя, а находящегося рядом твоего товарища. Радостью, счастьем было наше духовное единство. То труднейшее, отмеченное беспросветностью утрат и страданий время озарено вместе с тем не ярким, но вечным светом бескорыстного согласия людей. «Но только крепче мы дружили под перекрестным артогнем». Похоже, что такое согласие возникает у людей, объединенных общностью цели, увлеченных реализацией рациональной идеи.
Мы еще долго разговаривали, даже после того, как пленка в моем диктофоне закончилась. Это, знаете ли, как машина времени — окно в неведомую эпоху начальной компьютеризации. Сегодня Брусенцов по-прежнему продолжает выполнять свою миссию. На базе ЭВМ «Сетунь-70» еще четверть века назад была создана обучающая система «Наставник», которая задумывалась как система, контролирующая реальное усвоение студентом тех знаний, которые даются ему в течение семестра. Результаты были показаны весьма впечатляющие. Сегодня у Брусенцова есть идеи дальнейшего совершенствования этой системы с использованием мобильных телефонов, которые имеются практически у каждого студента. Есть мысли о создании троичного процессора, но проблема заключается в том, что сейчас в России нет предприятий, которые могли бы выполнить его заказ. Они этого уже не умеют делать — разучились.
История — маятник. Сегодня мы находимся, возможно, в самой нижней точке его траектории. Но очень хочется верить, что время брусенцовых в России еще наступит. Как было сказано в одной старой книге: «Достаточно Энергетического центра, чтобы началась Эра Чудес».
Промыщленный образец ЭВМ «Сетунь», ВДНХ, 1961 г. В начвле 70-х годов исправную и загруженную задачами машину выкинули на свалку.
UPGRADE #33 (175) август 2004