Чтение онлайн

ЖАНРЫ

Компьютерра PDA N151 (24.12.2011-30.12.2011)

Компьютерра

Шрифт:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

то ли транслятор Фортрана, то ли компилятор Алгола.

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

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

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

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

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

Плюс у уравновешенного троичного кода (его по-разному называют - уравновешенный, сбалансированный) есть преимущество: каждый разряд содержит знак того значения, которое содержится в этом разряде. В данном случае у нас минус один, ноль и плюс один. Для того чтобы выяснить, какой знак у всего числа, содержащегося в ячейке, достаточно взять первый ненулевой разряд и посмотреть, какой у него знак.

В двоичной системе берёшь ячейку и смотришь: если там единица, то соответствующую степень двойки надо добавить к общей сумме. В случае с троичной системой если в ячейке плюс, то степень тройки необходимо добавить, а если минус, то вычесть. И соответственно там может лежать и отрицательное число, и положительное, и нулевое. Здесь очень интересно проявляется особенность, которая есть во всех уравновешенных системах счисления - у них наилучшее округление. Не нужно никаких специальных алгоритмов для того, чтобы округлить число, достаточно просто отбросить ненужные знаки, и в оставшихся разрядах автоматически получится лучшее приближение числа.

Уравновешенное троичное представление имеет интересную особенность: поскольку оно уравновешенное, то содержит как положительные, так и отрицательные значения. То есть можно в некоторых алгоритмах добиться существенного прироста, например при сжатии. Здесь не нужно всегда только увеличивать словарь - в какой-то момент его можно и уменьшать. Это тоже даст небольшой выигрыш. Результат сжатия файла будет поменьше, чем у двоичного с тем же самым алгоритмом.

– Говорят ещё про удачное применение в механике, где троичный разряд описывает не только наличие тока, но и направление вращения ротора.

– Да, по своей природе уравновешенная троичная система исчисления позволяет обозначить одним разрядом не только включение и выключение мотора, но и включение со вращением в одну сторону и включение со вращением в другую сторону. Например, минус один - налево, плюс один - направо, ноль - не крутить вообще. Это удобнее, чем в двоичной системе, где сначала надо задать направление, а потом включить двигатель. На одно действие меньше.

– Если бы сегодня было возможно создать троичные процессоры, в какой области они пригодились бы?

Поделиться с друзьями: