В принципе, у троичной системы счисления было не меньше шансов, чем у двоичной. Кто знает, по какому пути развития пошел бы технический прогресс, если бы «трайты» одержали победу над «байтами»?
Информация, которой оперирует компьютер, так или иначе раскладывается на единицы и нули - графика, музыка, тексты, алгоритмы программ. Все просто и понятно: «включено» - «выключено», «есть сигнал» - «нет сигнала». Либо «истина», либо «ложь» - двоичная логика. А между тем еще в 1961-м, в год первого полета человека в космос, в Советском Союзе наладили производство необычных вычислительных машин, оперировавших не двоичной, а троичной логикой.
История создания Строго говоря изобретателем первой вычислительной машины с троичной логикой в далеком 1840 году был английский изобретатель-самоучка Томас Фоулер. Его машина была механической и полностью деревянной. Ну а первыми, кто вернулся к этой идее (более чем через сто лет), были инженеры с кафедры вычислительной математики механико-математического факультета МГУ.
Все началось в 1954 году: кафедре должны были передать электронно-вычислительную машину М-2, но не сложилось. А машину-то ждали, готовились ее устанавливать и налаживать, с нею связывались определенные ожидания и планы. И кто-то предложил: давайте построим свою.
Взяли - и построили, благо в то время в МГУ существовали некоторые теоретические наработки. Руководителем группы, осуществлявшей проектирование и изготовление машины, был назначен Николай Петрович Брусенцов. Задача была такая: сделать машину предельно простой и недорогой (потому что никакого специального финансирования у проекта не было). Поначалу собирались делать двоичную ЭВМ, но позже - как раз из соображений экономичности и простоты архитектуры - пришли к решению, что она будет троичной, использующей «естественный» троичный симметричный код, простейший из симметричных кодов.
К концу 1958 года был закончен первый экземпляр машины, которой дали имя «Сетунь» - по названию московской речки. «Сетунь» была относительно невелика для вычислительных машин того поколения и занимала площадь 25−30 квадратных метров. Благодаря своей изящной архитектуре она была способна выполнять 2000−4500 операций в секунду, обладала оперативной памятью в 162 девятитритных ячейки и запоминающим устройством на магнитном барабане емкостью 36−72 страницы по 54 ячейки каждая. Машинных команд было всего 27 (причем три так и остались невостребованными), благодаря чему программный код получался весьма экономным; программирование непосредственно в машинных кодах было настолько простым, что для «Сетуни» даже не разрабатывали свой ассемблер. Данные вводили в машину с перфоленты, результаты выводились на телетайп (причем, что любопытно, отрицательные цифры печатались как обычные, но перевернутые кверху ногами). При эксплуатации машина показывала 95−98% полезного времени (расходуемого на решение задач, а не на поиск неисправностей и устранение неполадок), а в те времена очень хорошим результатом считалось, если машина могла дать хотя бы 60%.
На межведомственных испытаниях 1960 года машину признали пригодной для массового использования в КБ, лабораториях и вузах, последовало распоряжение о серийном выпуске «Сетуни» на Казанском заводе математических машин. С 1961 по 1965 год было построено 50 экземпляров, которые работали по всей стране. Затем производство свернули. Почему перестали выпускать «Сетунь», если она успешно использовалась всюду от Калининграда до Якутска? Одна из возможных причин в том, что компьютер оказался слишком дешевым в производстве и потому невыгодным для завода. Другая причина- косность бюрократических структур, противодействие ощущалось на каждом из этапов.
Впоследствии Николай Брусенцов и Евгений Жоголев разработали более современную версию машины, использовавшую те же принципы троичности, - «Сетунь-70″, но она так и не пошла в серийное производство, единственный опытный образец работал в МГУ до 1987 года.
"Сетунь" - единственный в мире серийный компьютер с троичной логикой.
Трехзначная логика Если погрузиться в теорию, то у придуманной схоластами двоичной логики, т. е. логики, построенной на двух элементах (например, «истина» и «ложь»), есть глубокий недостаток: набор некоторых утверждений в ней приводит к парадоксам, то есть имеет противоречивое решение. От этого порока свободна троичная логика, которую исходно развивал великий гений древнего мира Аристотель. С древним ученым философом согласен и создатель троичного компьютера Николай Брусенцов, по мнению которого двухзначная математическая логика не соответствует здравому смыслу: «закон исключенного третьего» отрезает иные заключения, кроме «истины» и «не-истины», а между тем процесс познания реальности человеком отнюдь не сводится к дихотомии «да/нет». Поэтому, утверждает Брусенцов, чтобы стать интеллектуальным, компьютеру следует быть троичным.
Трехзначная логика отличается от двухзначной тем, что кроме значений «истина» и «ложь» существует третье, которое понимается как «не определено», «нейтрально» или «может быть». При этом сохраняется совместимость с двухзначной логикой - логические операции с «известными» значениями дают те же результаты.
Логике, оперирующей тремя значениями, естественным образом соответствует троичная система счисления - троичная симметричная, если говорить точнее, простейшая из симметричных систем. К этой системе впервые обратился Фибоначчи для решения своей «задачи о гирях».
В троичной симметричной системе используются цифры: -1, 0 и 1 (или, как их еще обозначают, -, 0 и +). Преимущества ее как симметричной системы состоят в том, что, во-первых, не нужно как-то особо отмечать знак числа - число отрицательно, если его ведущий разряд отрицателен, и наоборот, а инвертирование (смена знака) числа производится путем инвертирования всех его разрядов; во-вторых, округление здесь не требует каких-то специальных правил и производится простым обнулением младших разрядов.
Кроме того, из всех позиционных систем счисления троичная наиболее экономична - в ней можно записать большее количество чисел, нежели в любой другой системе, при равном количестве используемых знаков: так, например, в десятичной системе, чтобы представить числа от 0 до 999, потребуется 30 знаков (три разряда, десять возможных значений для каждого), в двоичной системе теми же тридцатью знаками можно закодировать числа в диапазоне от 0 до 32767, а в троичной - от 0 до 59048. Самой экономичной была бы система счисления с основанием, равным числу Эйлера (e = 2,718…), и 3 - наиболее близкое к нему целое.
Если в привычных нам двоичных компьютерах информация измеряется в битах и байтах, то компьютеры на троичной системе счисления оперируют новыми единицами: тритами и трайтами. Трит - это один троичный разряд; подобно тому, как бит может принимать значения 0 и 1 («ложь» и"истина»), трит может быть (+), (0) или (-) (то есть «истина», «неизвестно» или «ложь»).
Один трайт традиционно (так было на «Сетуни») равен шести тритам и может принимать 729 различных значений (байт - только 256). Впрочем, возможно, в будущем трайты станут 9- или 27-разрядными, что естественнее, так как это степени тройки.
Троичная система счисления В чем же плюсы троичной системы счисления (далее - СС) над двоичной?
1) Меньше разрядов (Написано разжевано, чтобы каждый смог понять суть этого пункта) Возьмем число 10 в десятичной СС и переведем его в двоичную СС, получим 1010, переведем в троичную симметричную СС, получим +0+, ну а если в троичную несимметричную СС, то получим 101. Из этого мы видим, что в некоторых числах в троичной симметричной и несимметричной СС-ах меньше разрядов, чем в двоичной СС. Возьмем число 5 в десятичной СС и переведем его в двоичную СС, получим 101, переведем в троичную симметричную СС, то получим +--, ну а если в троичную несимметричную СС, то получим 12. Из этого мы видим, что в некоторых числах в троичной несимметричной СС меньше разрядов, чем в двоичной и троичной симметричной СС-ах.
2) Емкость Троичная СС вмещает больший диапазон чисел, т.к. 3^n>2^n (где n-натуральное число). Например, если n=9, то 3^9=19683>2^9=512.
3) Экономичность системы счисления Экономичность системы счисления - запас чисел, который можно записать в данной системе с помощью определенного количества знаков. Чем больше запас тем экономичнее система. По затратам числа знаков (в трёхразрядном десятичном числе 3*10=30 знаков) наиболее экономична из позиционных показательных несимметричных систем счисления. Обозначим p основание системы счисления, n количество требуемых знаков. Тогда получим n/p разрядов требуемых для записи этого набора знаков в заданной системе счисления, а количество чисел которое при этом можно записать будет равно pn/p.
Настоящее и будущее троичных компьютеров После «Сетуни» было несколько экспериментальных проектов, осуществлявшихся энтузиастами (таких, например, как американские Ternac и TCA2), однако это были либо весьма несовершенные машины, далекие от двоичных аналогов, либо и вовсе программные эмуляции на двоичном «железе».
Основная причина состоит в том, что использование в компьютерах троичных элементов пока не дает никаких существенных преимуществ перед двоичными: выпуск последних налажен массово, они проще и дешевле по себестоимости. Даже будь сейчас построен троичный компьютер, недорогой и по своим характеристикам сравнимый с двоичными, он должен быть полностью совместим с ними. Уже разработчики «Сетуни-70» столкнулись с необходимостью обеспечить совместимость: чтобы обмениваться информацией с другими университетскими машинами, пришлось добавить возможность читать с перфолент двоичные данные и при выводе также конвертировать данные в двоичный формат.
Однако нельзя сказать, что троичный принцип в компьютеростроении - это безнадежный анахронизм. В последнее десятилетие возникла необходимость в поиске новых компьютерных технологий, и некоторые из этих технологий лежат в области троичности.
Одно из таких исследовательских направлений - поиск альтернативных способов увеличения производительности процессоров. Каждые 24 месяца число транзисторов в кристалле процессора увеличивается примерно вдвое - эта тенденция известна как «закон Мура», и вечно продолжаться она не может: масштабы элементов и связей можно измерить в нанометрах, и очень скоро разработчики столкнутся с целым рядом технических сложностей. Кроме того, есть и экономические соображения - чем меньше, тем дороже разработки и производство. И с какого-то момента окажется дешевле поискать альтернативные способы делать процессоры мощнее, нежели продолжать гонку за нанометрами, - обратиться к технологиям, от которых раньше отказывались как от нерентабельных. Переход от однородных кремниевых структур к гетеропереходным проводникам, состоящим из слоев различных сред и способным генерировать несколько уровней сигнала вместо привычных «есть» и «нет», - это возможность повысить интенсивность обработки информации без увеличения количества элементов (и дальнейшего уменьшения их размеров). При этом от двухзначной логики придется перейти к многозначным - трехзначной, четырехзначной и т. д.
Другое направление, также нацеленное на увеличение производительности, - разработки в области асинхронных процессоров. Известно, что обеспечение синхронности процессов в современных компьютерах изрядно усложняет архитектуру и расходует процессорные ресурсы - до половины всех транзисторов в чипе работает на обеспечение этой самой синхронности. Компания Theseus Logic предлагает использовать «расширенную двоичную» (фактически - троичную) логику, где помимо обычных значений «истина» и «ложь» есть отдельный сигнал «NULL», который используется для самосинхронизации процессов. В этом же направлении работают еще несколько исследовательских групп. Есть и более фантастические направления, где оправдано использование трехзначной логики: оптические и квантовые компьютеры.
Наиболее перспективным мне представляется последнее.[Квантовый компьютер] Квантовый компьютер - вычислительное устройство, работающее на основе квантовой механики. Квантовый компьютер принципиально отличается от классических компьютеров, работающих на основе классической механики.
Благодаря огромной скорости разложения на простые множители, квантовый компьютер позволит расшифровывать сообщения, зашифрованные при помощи популярного асимметричного криптографического алгоритма RSA. До сих пор этот алгоритм считается сравнительно надёжным, так как эффективный способ разложения чисел на простые множители для классического компьютера в настоящее время неизвестен. Для того, например, чтобы получить доступ к кредитной карте, нужно разложить на два простых множителя число длиной в сотни цифр. Даже для самых быстрых современных компьютеров выполнение этой задачи заняло бы больше времени, чем возраст Вселенной, в сотни раз. Если компьютер будет построен - эта задача становится осуществимой благодаря алгоритму Шора. Канадская компания D-Wave заявила в феврале 2007 года о создании образца квантового компьютера, состоящего из 16 кубит. Это устройство работает на кубитах - квантовых аналогах битов. Но можно построить компьютеры не на битах, а на кутритах - аналогах трита в квантовом компьютере. Кутрит (квантовый трит) - квантовая ячейка, имеющая три возможных состояния. При использовании в универсальных квантовых вентилях кутриты вместо кубитов, исследователи могут существенно снизить количество необходимых вентилей. Утверждают, что компьютер, который в обычном случае использовал бы 50 традиционных квантовых вентилей, сможет обойтись всего девятью, если будет основан на троичном представлении. Также, согласно некоторым исследованиям, использование кутритов вместо кубитов позволит упростить реализацию квантовых алгоритмов и компьютеров.