Выбрать главу

- Выходит, виноваты транзисторы?

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

- Существуют ли троичные машины, сопоставимые с "Сетунью-70"?

- Насколько мне известно, нет. Алгоритмов же написано много. Есть множество патентов как на электронику, так и на алгоритмы, которые упоминают и применяют в той или иной степени как классическое троичное представление данных (то есть смещённое от нуля - "один" и "два"), так и уравновешенное - "минус один", "ноль", "плюс один". Но я не слышал, чтобы кто-то пытался их серьёзно применять на практике. Известно, что студенческие коллективы предпринимали попытки построить подобный компьютер в Штатах, во Франции и в Новой Зеландии. В Испании построили троичный процессор с небольшим количеством памяти, но сейчас о нём уже ничего не узнать, кроме названия. Это сделали лет восемь назад, были публикации, но потом всё это пропало.

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

- Зато у вас есть два эмулятора "Сетуни".

- Один есть и доступен уже года три. Он эмулирует первую "Сетунь", ту, которую разработали в 1959 году. Эмулятор интересно устроен - в виде веб-приложения: на страничку заходишь, там перед тобой фактически один в один модель панели той самой "Сетуни". Эмулятор называется "Сетунь ВС". Можно двигать переключатели и всякие ползунки, запускать машину на счёт, переключать режимы. Но для освоения придётся прочесть книжку (которая есть в интернете, кстати) "Малая цифровая вычислительная машина Сетунь".

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

- Как я понимаю, сейчас вы восстанавливаете программу из ПЗУ?

- Недавно была получена пачка листочков, на которых были распечатаны данные ПЗУ. К сожалению, есть одна сложность: никто точно не знает, в каком порядке нужно располагать эти страницы. Так что сейчас будет длительная работа с попыткой подобрать, посмотреть, какие части кода к чему подходят.

- После этого можно будет получить готовую "Сетунь-70"?

- Можно будет запускать все доступные алгоритмы, но часть требует разных аппаратных устройств типа терминалов, информации о которых у нас нет. Поскольку "Сетунь-70" существовала в единственном экземпляре, для нее не так много программного обеспеченья, как для первой "Сетуни". Она использовалась по большей части для нужд МГУ.

- Как программировали "Сетунь-70"?

- У программистов "Сетуни-70" был достаточно развитый инструментарий. В нём имелся, по-моему, ассемблер даже и то ли транслятор Фортрана, то ли компилятор Алгола.

- В коде приходилось как-то учитывать троичность?

- Есть операции перехода, которые в зависимости от знака тебя переводят. Если минус, то по одному адресу за одну операцию, если ноль - то по другому, если плюс - то по третьему.

- Какие алгоритмы больше всего выигрывают от троичной логики? Обход бинарного дерева?

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

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