Советская “троица”
Чем в СССР хотели заменить биты и байты?
Каких только компьютеров не напридумывали: квантовых, молекулярных, нейронных, оптических и фотонных, на основе ДНК и белков-ферментов… Оказывается в России, в Казанском физико-техническом институте, с 2001 года ведутся поиски в области квантовых компьютеров – без особой, судя по всему, специальной программы, по личной инициативе сотрудников.
Про проект троичного компьютера Николая Петровича Брусенцова, ныне заслуженного научного сотрудника МГУ, краем уха слышали, вероятно, все, имеющие отношение к компьютерам и программированию. Интерес к этой теме, в том числе и на Западе, не утихал никогда. Восьмидесятилетний Брусенцов уже в наши дни свидетельствует: «Буквально на днях я получил письмо из США, где также спрашивают, как удалось реализовать троичную логику? К нам постоянно приходят по e-mail письма с запросами. Надо сказать, что наибольший интерес проявляют такие страны, как Бангладеш, Пакистан, Индия».
Но ЭВМ «Сетунь» так и осталась единственной в мире моделью вычислительной машины, основанной на троичной системе счисления, причем серийной – было выпущено полсотни экземпляров. Но ни одного последователя у Брусенцова не было, если не считать любительских проектов. Почему?
Прямой ответ на этот вопрос вы найдете едва ли: в публикациях о «Сетуни» и Брусенцове перечисляются достоинства троичной системы, но прямо не указываются ни недостатки, ни причины, по которым проект так и остался уникальным. Сам Николай Петрович до сих пор полагает, что дело в косности советских чиновников, и еще, возможно, в колоссальных средствах, затраченных на создание полупроводниковой индустрии, основанной на двоичной булевой алгебре. Но суть дела заметно сложнее.
КОГДА ТРИ ЛУЧШЕ, ЧЕМ ДВА
Троичная система экономичнее любой другой в смысле количества знаков (а, следовательно, и элементов) для представления многоразрядного числа. Чтобы записать 1000 чисел (от 0 до 999) в десятичной системе нужно 30 знаков, а в двоичной системе с помощью тех же 30 знаков можно записать 32 768 чисел. Самой же экономичной считается система счисления с основанием е (2,718282…), а на практике – 3, ближайшим к числу е.
Но все зависит от выбора элементов. Брусенцову удалось найти аппаратное решение, которое было действительно – на том уровне техники – непревзойденным по экономичности. Если повторить то же самое на серийно выпускаемых полупроводниковых чипах, получится только усложнение схемы.
Так что преимущества троичной системы не в экономичности, а в том, что сама организация вычислительного процесса резко упрощается. Так, в системе с тремя цифрами (1,0,-1) числовая ось автоматически получается непрерывной, отсюда – естественное сравнение и вычитание чисел; автоматически выполняется правильное округление чисел простым отбрасыванием младших разрядов; арифметический и логический сдвиг совпадают и т. п. В общем, перечислять приятные особенности этой системы можно долго.
Основными единицами информации в «Сетуни» были триты (аналоги битов), принимавшие значения минус 1, 0 и плюс 1, и трайты (аналоги байтов), состоявшие каждый из шести тритов и принимавшие значения от -364 до +364. Для «Сетуни» не стали даже разрабатывать ассемблер: написание прямо в машинных кодах оказалось ничуть не сложнее, тем более, что самих команд было всего 24 ,– «Сетунь» была настоящей RISC-машиной, когда еще самого такого термина не существовало.
Но самая главная эксплуатационная особенность «Сетуни» – ее ошеломляющая даже по нынешним временам надежность, оцененная в технических условиях в 95% рабочего времени. Реально она была много выше: для 50 выпущенных серийно экземпляров, разбросанных по стране от Одессы и Ашхабада до Якутска и Магадана, не требовалось даже ЗИПа, как не требовались и специалисты по техническому обслуживанию машины. А первый экземпляр «Сетуни», собранный «на коленке» группой Брусенцова в МГУ, проработал 15 лет, за которые случилось всего 3 отказа элементов из четырех с лишним тысяч (и все – в первый год эксплуатации).
КАК НАЧАЛЬСТВО ОСТАНОВИЛО ТРОИЧНУЮ ЛОГИКУ
Но советские и чиновники и производственники были против машины: первые, видимо, «на всякий случай», ориентируясь на «мировой уровень», а вторые – из-за необычных требований к культуре производства. У Брусенцова первый экземпляр машины заработал в штатном режиме уже через десять дней после монтажа – за счет тщательного отбора и сортировки компонентов (в те времена не подвергавшихся никакому выходному контролю по параметрам), и многочисленных предварительных тестов каждой платы. А на Казанском заводе математических машин автору разработки приходилось пропадать месяцами, заново втолковывая заводчанам уже прописанные в методичках правила тестирования и исправляя вольности в компоновке.
Называлась в числе причин неприязни со стороны казанцев и стоимость машины в 27 500 рублей – смехотворно низкая по тем временам, из-за чего якобы ее было производить невыгодно. Н. П. Брусенцов вспоминает:
«В феврале 1962 г. мне с Е. А. Жоголевым и С. П. Масловым по приглашению правительства ЧССР довелось побывать на заводе Яна Швермы в Брно, где предполагалось запустить в серийное производство нашу «Сетунь». Инициаторами этого проекта были чешские инженеры И. Крыже и И. Бранд, ознакомившиеся с машиной при посещении Вычислительного центра МГУ в 1960 году и, по-видимому, реально оценившие её коммерческие достоинства. Планировался выпуск в первый же год трехсот машин, и завод был вполне готов реализовать это. В отчёте о командировке, направленном в ГКНТ, мы предложили рассмотреть возможность сотрудничества с заводом Яна Швермы Астраханского завода ЭА и ЭП, уже освоившего производство логических элементов «Сетуни».
Но вскоре стало известно, что передача документации для производства машины в ЧССР возможна лишь после освоения крупносерийного выпуска её в нашей стране, а затем выпуск был и вовсе прекращен». Чехи планировали на каждой машине заработать, продавая ее не только в страны СЭВ, но и на Запад за валюту, но советские чиновники встали в позицию «собака на сене», заявив, что «золото нам и самим нужно», и тем временем тормозя проект всеми силами.
С какой-то точки зрения эти чиновники были правы: у «Сетуни», даже в улучшенной модификации «Сетунь-70», не было будущего. Те самые трансфлюксоры, требовавшие ручной намотки (у Брусенцова каждый день начинался с того, что все, включая руководителя, сосредоточенно мотали тончайшие проволочки на трехмиллиметровые сердечники) – это технология первого поколения компьютеров. К 1970-м годам это все отстало на два поколения, а реальной замены в полупроводнике так и не появилось: на транзисторах схемы получаются более громоздкими. Еще одна деталь: двоичная логика хорошо стыкуется с теорией информации, где именно бит (а не трит) есть мельчайшая и неделимая мера всего. И передавать данные лучше по принципу «есть напряжение – нет напряжения», так получается и проще и надежней.
Так что, идеям Брусенцова, – а их, кстати, поддержал классик программирования Дональд Кнут, писавший, что не сомневается в постепенном переходе на троичные ячейки вместо двоичных, – так и суждено остаться в истории техническим курьезом вроде дирижаблей в авиации?
Не совсем так. Одно из направлений, где троичная логика находит свое применение, – создание асинхронных процессоров. Они необходимы, например, в особо точных аналогово-цифровых схемах, где наличие тактового генератора ведет к неприятным и трудно устранимым помехам, а в асинхронных схемах, где сигналы распределены во времени случайным образом, такая помеха намного меньше. Асинхронные процессоры проще проектировать автоматизированным методом, и в них меньше элементов, чем в обычных. Троичная логика прямо фигурирует в технологии NCL от Theseus Logic. Есть и другие применения троичной логики. Так что вполне возможно, что энтузиазм Брусенцова и чаяния Кнута еще оправдаются в веках.
На мой взгляд, отказ от двоичной системы в пользу троичной, открывает гораздо больше перспектив. Сейчас язык машины, ее логика резко отличается от русского языка, на котором мы все с вами мыслим. А троичная система позволяет сгладить это противоречие. А что вы думаете по этому поводу?
ЦитироватьСкажи пожалуйста,а чем же она так отличается?
ЦитироватьТак ты хочешь сказать,что русский язык основан на троичной логике?)))
а что означает троичная система?
да/нет/не знаю?
я не думаю, что нужно идти в сторону русского языка. язык - это гуманитарная категория. и как ты понимаешь не все комбинации букв используются, т.е. нету таких слов как “ааааа”, “бббб” или “абббааб” и прочее.
а циферная система использует все комбинации.
ЦитироватьДля меня сложно понять преимущества той или иной системы(как говорится каждому свое),но я думаю если троичная система имеет перспективы то она будет введена,и конечно не нашими учеными,как всегда.
ЦитироватьMaxi, двоичная система - это система исключенного третьего. Конечно , образная логика гораздо шире, но все-таки троичная система позволяет сделать большой шаг в эту сторону.
ЦитироватьArgo, ну почему же да\нет\не знаю? Возможны варианты, например - или\или\или\. Да\нет\или-или. Да\нет\возможно. И т.д.
Ольга, как можно понять “образная логика”?
ЦитироватьПомоему надо не путать троичную систему представления чисел, с логикой.
Цитироватьscorpion, ну допустим так :
ЦитироватьВыход Выхода нет Выход с другой стороны
Двоичная - выход \ выхода нет -
Когда в метро Англии заменили надпись “выхода нет” на “выход с другой стороны” , количество самоубийств резко сократилось. Человеческий мозг мыслит образно, за словом стоит целая ситуация. А у машины только да\нет, простая констатация факта
Gnum, конечно троичная система представления числа это не сама логика, но она описывает схему логического построения.
ЦитироватьМне все таки кажется, будущее за возможностью передачи смыслов, образов. язык мозга - это 0, 1. а образно мыслит душа. То есть даже если добавить 3-ее значение в числовой ряд, это вряд ли что-то даст в нашем ускоряющемся мире. Вот как совместить проявленное(логика, информация) с непроявленным (образ, энергия, смысл)? т.е. время как включить в сигнал? извините если сумбурно пишу.
Цитироватьscorpion, мышление бывает не только логическим, но и ассоциативным, идеосинкрезивным, интуитивным, и т.д, а чаще всего смешанным . И это все мышление мозга. Я к тому привела эту статью, что учась составлять программы для машины, мы невольно переходим на мышление исключенного третьего. То есть идем против своей природы. А на самом деле, этого могло и не произойти. То есть возможна работа машины на другой логике.
Цитироватьвспомнился анекдот про программиста. Когда он ложится спать, то берет с собой 2 стакана: один с водой - на тот случай если пить захочется и один пустой - на случай если пить не захочется.
Цитироватьу машины прямолинейная логика без всяких - “не знаю/возможно/попробую/может быть/я подумаю”. а только да или нет.
а ты предлагаешь вставить третий вариант? тогда получиться как тот же русский язык, когда из всевозможных комбинаций 33букв, есть только 1млн эффективных - слова. а всё остальное набор букв.
машина с двоичным кодом создаёт только эффективные комбинации.
что такое исключённое третье? то самое сомнение? интуиция не терпит сомнений.
ЦитироватьНе знаю, не знаю. 3а 15 лет работы программистом я вроде за собой такого не замечал.
А что изменится? Будет ли отличаться результат работы?
ЦитироватьЕсли данная система позволяет делать более компактными большие объемы информации, то ее имеет смысл использовать - или хотябы попытаться это сделать. Добавтье к этому повышенную скорость обработки…Но думаю, умные люди, те кто при власти и деньгах, уже давно используют нечто подобное, а нам - основной масе населения втюхивают остальное…То, что массово использует весь мир.
Цитировать