Внимание! Эта статья была написана 1-го апреля и я вляется не больше чем шуткой...
Известно, что большинство современных вычислительных систем использует двоичную логику. Однако, так же известно, что основание двойки для представления чисел не является оптимальным при выполнении математических операций над этими числами. Существуют и другие, более эффективные способы представления информации использующие троичную систему счисления.
Плотность записи информации описывается уравнением
из которого следует, что оптимальным основанием все же является дробное число Эйлера e = 2,7182818284...
Понятно, что целое число 3 гораздо ближе к числу Эйлера, чем целое число 2. Значит и компьютеры, работающие на троичной логике, будут эффективнее хранить и обрабатывать информацию, чем двоичные компьютеры.
Вместо понятия бит в троичных компьютерах используется понятие трит. Триты передаются между вычислительными узлами, как и биты по одному проводу, только используется многоуровневый сигнал. Например, может использоваться положительный уровень сигнала, отрицательный уровень или ноль. Такой способ кодирования называется сбалансированным.
Вот так могут быть представлены некоторые числа в троичном виде:
0 - - -
1 - - 0
2 - - +
3 - 0 -
4 - 0 0
5 - 0 +
6 - + -
...
Существуют и другие способы кодирования сигналов в троичной системе счисления.
Один из первых промышленных троичных компьютеров Сетунь был разработан еще в Советском Союзе под руководством известного ученого Н. П. Брусенцова.
Сегодня, вместе с появлением ПЛИС, троичные вычисления получили второе дыхание. Многие современные микросхемы FPGA включая и серию Altera Cyclone III могут хранить и обрабатывать данные в троичном виде. Тут правда нужно сделать оговорку, что питание микросхемы должно вестись от нескольких источников с разным уровнем напряжения, чтобы стало возможным представлять сигнал разными уровнями по одной линии. Но это не является серьезным ограничением. Даже на плате Марсоход2 микросхема ПЛИС EP3C10E144 питается от напряжения VCC +3.3В и VCCINT +1.2В. Значит использовать троичные вычисления можно и на этой плате.
Использование троичной логики в ПЛИС Altera становится совершенно простым и прозрачным с точки зрения программиста. Вы можете в своем проекте использовать обычное двоичное представление и стандартные языки программирования VHDL или Verilog HDL, но достаточно просто включить в настройках проекта Altera Quartus II методы Ternary Options и компилятор сам преобразует проект в троичный и соберет новый образ.
Откройте любой ваш проект для ПЛИС Cyclone III. Зайдите в главное меню среды разработки Altera Quartus II и выбирайте пункты
Assignments => Device...
Далее в открывшемся диалоговом окне найдите кнопку Device and Pin Options. Открывается новое диалоговое окно в котором нужно выбрать самый нижний пункт слева, собственно Ternary Options.
Далее в чекбоксах я обычно выбираю только первые два: включаю внутренние троичные регистры и разрешаю троичную арифметику. Третья опция иногда требует модификации печатной платы и использование специальных внешних компонентов. Так, что я ее обычно не ставлю. То есть сигналы на внешние пины пойдут все же обычные двоичные. Специальные схемы внутри ПЛИС произведут конвертацию сигналов.
Нужно заметить, что использование этих опций позволяет существенно экономить место в микросхеме. В некоторых проектах удается разместить в одной и той же FPGA в полтора раза больше логики, что в общем-то и неудивительно. Так что я иногда советую использовать эти опции при компиляции проектов для ПЛИС Altera Cyclone III
Подробнее...