О троичной логике

О ТРОИЧНОЙ ЛОГИКЕ


   Троичная система счисления — позиционная система счисления с основанием 3. Троичная система счисления существует в двух вариантах: несимметричная (цифры 0, 1, 2) и симметричная (уравновешенная) (цифры –1, 0, +1).

   Исторически позиционная симметричная (уравновешенная) троичная система счисления была предложена математиком Леонардо Пизано Фибоначчи (1170 – 1228) для решения «задачи о гирях».

   Из истории также известно, что первые попытки создать троичную вычислительную машину начались немного раньше двоичных машин. Английский изобретатель Томас Фоулер (ThomasFowler), еще 1840 году, построил такую механическую вычислительную машину.

   Троичная или трёхзначная логика (англ. ternary logic) — один из видов многозначной логики, использующий три истинностных значения.

   Тот факт, что троичная логика обладает рядом преимуществ по сравнению с двоичной, также известен довольно давно. Как один из видов многозначной логики, она была предложена Яном Лукасевичем ещё в 1920 году.

   Напомним вкратце, что, собственно, представляет собой эта логика, преимущества которой неоднократно упоминаются во множестве источников Интернета, стоит лишь набрать в поисковой системе фразу «троичная логика». В обычной двоичной логике мы оперируем двумя логическими понятиями: «ИСТИНА» и «ЛОЖЬ», «ДА» и «НЕТ», «1» и «0» . Такая двузначная логика весьма несложно реализуется аппаратно современными активными твердотельными приборами — транзисторами, но некоторую неполноту этой логики понимал ещё сам отец стройного математического аппарата алгебры логики — Джордж Буль.

   Основоположником логики справедливо считается Аристотель, создавший систему доказательного умозаключения — силлогистику, которая все еще остается непревзойденным интеллектуальным инструментом. Но принципиальное отличие логики Аристотеля от современной “классической” логики в том, что она не двухзначна, а трёхзначна.

   Не вдаваясь в пространные философские рассуждения, отметим, что в троичной логике смысл понятий «ИСТИНА» и «ЛОЖЬ» не изменяется по отношению к их значению в двоичной логике, но вводится третье логическое понятие: «НЕИЗВЕСТНО» или «НЕ ОПРЕДЕЛЕНО». Можно сказать, что два базисных логических понятия «ДА» и «НЕТ», вполне логично и естественно дополняет состояние «НЕ ЗНАЮ», что в совокупности определило алфавит троичной логики как {+1, 0,–1}.

   Логическое понятие: «НЕИЗВЕСТНО» и «НЕ ОПРЕДЕЛЕНО» трудно воспринимается как людьми, знакомыми с основами “классической” логики, так и многими профессиональными разработчиками цифровой аппаратуры. Как можно оперировать с логическим состоянием, которое «НЕИЗВЕСТНО» и «НЕ ОПРЕДЕЛЕНО»? Такой вопрос обычно задаётся ими. В этой связи следует отчётливо понимать, что «НЕИЗВЕСТНО», « НЕ ОПРЕДЕЛЕНО», «НЕ ЗНАЮ» — это лишь названия конкретного логического состояния, уровни которого весьма четко определены как половина напряжения питания при однополярном питании устройства, либо уровень «земли» или общего провода (0 Вольт) при двухполярном источнике.

   Троичная логика активно используется людьми в повседневной жизни, причём успешно пользуемся мы ей, практически этого не замечая. В быту кроме «белого» и «черного», «да» или «нет», нам обычно необходимы дополнительные промежуточные варианты. Как правило, это дополнительное состояние неопределенности. Голосуя на выборах, к примеру, мы обычно делимся на тех, кто "За", тех кто "Против" и кто "Воздержался". Это более функциональная, близкая к мыслительному процессу логика.

   Интересно также и то, что троичная логика присутствует уже и в некоторых современных системах управления базами данных. Используется специальное значение UNKNOWN, которое может быть результатом логической операции, наряду со значениями TRUE и FALSE . Смысл значения UNKNOWN — «НЕИЗВЕСТНО», то есть неопределённый результат.

   Рассмотрим специфику проведения логических операций со значением UNKNOWN — «НЕИЗВЕСТНО» на примере простой и понятной логической операции «И».

   Результатом логической операции «И» над двумя логическими высказываниями будет «ИСТИНА», если «ИСТИННО» как первое, так И второе высказывание. Это справедливо как в двоичной, так и в троичной логике: логическая операция «И» эксклюзивно (избирательно) реагирует на совпадение «ИСТИННЫХ» логических сигналов — «1».

   Соответственно, если хотя бы одно из высказываний «ЛОЖНО», то ЛОЖНЫМ будет и результат логической операции «И».

   Безусловно, результат логической операции «И» будет ЛОЖНЫМ, если «ЛОЖНО» каждое из логических высказываний. Собственно, здесь в словесной форме изложены аксиомы алгебры логики, из которых очевидно и другое практически важное свойство логического элемента «И»: вентиль «И» “прозрачен” по логической «1» на одном из его входов, то есть он пропускает на выход логический сигнал на втором входе без изменения, но “не прозрачен” по логическому «0».

   В том случае, если одно из высказываний «ЛОЖНО», а второе — «НЕИЗВЕСТНО», результатом логической операции «И» будет «ЛОЖНО», потому как «НЕИЗВЕСТНО» в троичной логике может принимать лишь два значения: «ИСТИННО» и «ЛОЖНО», откуда:

   «ЛОЖНО» «И» «ИСТИННО» → «ЛОЖНО», но также

   «ЛОЖНО» «И» «ЛОЖНО» → «ЛОЖНО», следовательно:

   «ЛОЖНО» «И» «НЕИЗВЕСТНО» → «ЛОЖНО».

   Если же одно из высказываний «ИСТИННО», а второе — «НЕИЗВЕСТНО», результатом логической операции «И» будет «НЕИЗВЕСТНО», потому как

   «ИСТИННО» «И» «ИСТИННО» → «ИСТИННО», но

   «ИСТИННО» «И» «ЛОЖНО» → «ЛОЖНО», следовательно, в этом случае результатом логической операции «И» будет «НЕИЗВЕСТНО», «НЕ ОПРЕДЕЛЕНО».

   «ИСТИННО» «И» «НЕИЗВЕСТНО» → «НЕИЗВЕСТНО»

   Мы «НЕ ЗНАЕМ» конкретный результат, но ситуация, заключающаяся в том, что нам это «НЕИЗВЕСТНО», логически непротиворечива.

   Из рассмотренных примеров видно, что троичный логический элемент «И» “прозрачен” по логическому значению «НЕИЗВЕСТНО» на одном из его входов для логического сигнала «ЛОЖЬ». Поэтому в троичной логике результатом операции «И» над логическими аргументами «A» и «B» будет меньший из аргументов, и, следовательно, операция «И» в троичной логике является функцией “минимума” — MIN(A,B).


Рис. 1. Корреляция функций двоичной и троичной конъюнкции

   Таким образом, очевидно, что двоичная операция «И» является подмножеством троичной функции “минимума”MIN(A,B). Они логически совместимы как по сигналам «ИСТИНА» и «ЛОЖЬ», так и по результату операции.

   Следовательно, при надлежащем совпадении потенциалов напряжения, соответствующих логическим уровням, элементы как двоичной, так и троичной логики могут применяться в едином электронном устройстве.

   Аналогично можно рассмотреть и результаты логической операции «ИЛИ» над троичными аргументами. В троичной логике результатом операции «ИЛИ» над логическими аргументами «A» и «B» будет больший из аргументов, и, следовательно, операция «ИЛИ» в троичной логике является функцией “максимума” — MAX(A,B).


Рис. 2. Корреляция функций двоичной и троичной дизъюнкции

   Не вызывает затруднения и операция отрицания в троичной логике. Инверсией логического значения «ИСТИННО» будет «ЛОЖНО», а инверсией логического значения «ЛОЖНО» будет «ИСТИННО» — результат полностью идентичный тому, что мог бы быть получен в двоичной логике при инверсии этих же логических значений.

   Инверсией логического значения «НЕИЗВЕСТНО» будет «НЕИЗВЕСТНО». Что бы ни скрывалось под логическим состоянием, которое мы «НЕ ЗНАЕМ», «ИСТИНА» или «ЛОЖЬ», это состояние будет корректно инвертировано согласно правилам, изложенным выше. Но конкретный результат этой операции мы всё равно «НЕ ЗНАЕМ», следовательно, нам это по-прежнему логически «НЕИЗВЕСТНО».


Рис. 3. Таблица истинности троичного отрицания («INV»)

   Следует отметить, что в силу того что инверсией логического значения «НЕИЗВЕСТНО» будет само же это логическое состояние «НЕИЗВЕСТНО», правила де Моргана, связывающие в двоичной логике пары логических операций при помощи логического отрицания, в троичной логике также справедливы. Отрицание операции MIN(A,B) есть операция MAX(A,B) от инвертированных аргументов. И отрицание операции MAX(A,B) есть операция MIN(A,B) от инвертированных аргументов.

   Необходимо подчеркнуть, что в троичной логике наряду с обычной операцией логического отрицания существуют две специфических операции циклического отрицания.

   Правая циклическая инверсия (cycle, rotate up) осуществляет преобразование значения аргумента на входе по следующим правилам:

   «ЛОЖНО» → «НЕИЗВЕСТНО»;

   «НЕИЗВЕСТНО» → «ИСТИННО»;

   «ИСТИННО» → «ЛОЖНО».

   Левая циклическая инверсия (inverse cycle, rotate down) осуществляет преобразование значения аргумента на входе по следующим правилам:

   «ИСТИННО» → «НЕИЗВЕСТНО»;

   «НЕИЗВЕСТНО» → «ЛОЖНО»;

   «ЛОЖНО» → «ИСТИННО».

   Если расположить аргументы «ЛОЖНО», «НЕИЗВЕСТНО», «ИСТИННО» в столбец по возрастанию, то можно обратить внимание, что функция левой циклической инверсии словно вращает входной столбец вниз, поэтому её называют также rotate down, а функция правой циклической инверсии — вверх, соответственно эту функцию называют rotate up. Отметим также, что левая циклическая инверсия соответствует операции декремента по модулю три, а правая циклическая инверсия — инкремента по модулю три.


Рис. 4. Таблица истинности правой и левой троичных циклических инверсий

   Кроме того, в совокупности с любой из функций MAX(A,B)или MIN(A,B) любая из функций циклического отрицания образует полный логический базис. То есть, с помощью суперпозиции этих функций можно получить любую другую функцию троичной логики.

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

   Декодер троичного логического уровня «–1» действует по следующим логическим правилам, оценивая значение аргумента на своём входе:

   «ЛОЖНО» → «ИСТИННО»;

   «НЕИЗВЕСТНО» → «ЛОЖНО»;

   «ИСТИННО» → «ЛОЖНО».

   То есть сигнал на выходе декодера приобретает значение «ИСТИННО» лишь при логической «–1» на входе.

   Декодер троичного логического уровня «0» действует по следующим логическим правилам, оценивая значение аргумента на своём входе:

   «ЛОЖНО» → «ЛОЖНО»;

   «НЕИЗВЕСТНО» → «ИСТИННО»;

   «ИСТИННО» → «ЛОЖНО».

   То есть сигнал на выходе декодера приобретает значение «ИСТИННО» лишь при логическом «0» на входе.

   И, наконец, декодер троичного логического уровня «+1» действует по следующим логическим правилам, оценивая значение аргумента на своём входе:

   «ЛОЖНО» → «ЛОЖНО»;

   «НЕИЗВЕСТНО» → «ЛОЖНО»;

   «ИСТИННО» → «ИСТИННО».

   То есть сигнал на выходе декодера приобретает значение «ИСТИННО» лишь при логической «+1» на входе.


Рис. 5. Таблица истинности троичных декодеров

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

   · Близость троичной логики к естественной. (Троичная логика не только вполне корректна и адекватна действительности, но является даже более удобной и привычной для людей формой мышления, нежели двузначная логика).

   · Более плотная запись информации (самой экономичной в этом плане была бы система счисления с основанием, равным числу Эйлера (e = 2,718...), а 3 — наиболее близкое к нему целое.).

   · Обработка большего количества информации при той же разрядности и частоте (повышение производительности).

   · Простое и естественное представление отрицательных чисел (знак числа – знак старшего значимого разряда, отдельный бит знака не нужен).

   · Быстрое и точное округление (отбрасываемая при округлении часть всегда меньше 0,5).

   · Повышение быстродействия при выполнении операций сложения и ветвления.

   · Сокращение количества межсоединений в схемах, и, как следствие, повышение их надёжности.

   Может возникнуть вполне естественный вопрос: "Почему же при стольких очевидных преимуществах троичной логики мы до сих пор не имеем даже хотя бы простого семейства троичных логических элементов, не говоря уже о микропроцессорах и микроконтроллерах?"

   Ситуация с троичной логикой в цифровой электронике выглядит примерно таким же образом, как и ситуация в автомобилестроения с двигателями внутреннего сгорания (ДВС).

   Как и двоичная логика в электронике, традиционные двигатели внутреннего сгорания с возвратно-поступательным движением поршней появились исторически первыми. Им присущ общий практически неустранимый недостаток — возвратно-поступательное движение поршней должно быть преобразовано во вращательное движение колёс. Отсюда наличие коленвала, обусловленный этим заведомо низкий КПД, и высокая изнашиваемость элементов механизма. Но такая конструкция двигателя появилась первой, она более удачна при низком уровне технологии производства. В развитие этой системы вложены огромные средства, и в наши дни все известные детские болезни этой системы, за исключением врождённых недостатков, практически устранены. Традиционные ДВС являются массовыми, как и мощности по их производству.

   Но наряду с ними существовал и другой тип двигателя внутреннего сгорания — роторно-поршневой двигатель Ванкеля, у которого не было основного «родимого пятна» ДВС традиционного типа. Отсюда вытекали основные преимуществ этого двигателя: при прочих равных КПД этого двигателя всегда выше, но изготовление его требует более высокого технологического уровня и культуры производства. Двигателю Ванкеля присущ ряд собственных недостатков, но в критических ситуациях, когда при заданном объёме необходимо получить максимальную мощность, двигатель Ванкеля, несмотря на присущие недостатки, всегда выигрывает у традиционного ДВС. В современном автомобилестроении он и занимает такую свою специфическую нишу.


Рис. 6. Двигатели внутреннего сгорания в сравнении

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

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

   Фактически же по настоящее время не было сделано ни одной реально троичной ЭВМ на полностью троичной элементной базе. Даже наиболее часто упоминаемая в различных источниках удачная троичная ЭВМ «Сетунь» имела в своей основе троичную двоично-упакованную систему, реализованную в виде ячейки из двух ферритовых колец, что, безусловно, ставило её в выигрышное положение в рамках существовавшей в то время феррит-диодной логики. Но развитие твердотельной электроники оставило удачную троичную ЭВМ «Сетунь» на обочине истории во многом по той причине, что разработать адекватные массовые и недорогие элементы троичной логики при существовавшем в то время уровне полупроводниковой технологии просто не удалось, а элементы феррит-диодной логики практически не поддаются процессу микроминиатюризации.

   Теоретические основы троичной логики хорошо проработаны по состоянию на сегодняшний день. С компактным их изложением можно ознакомиться в следующих источниках: «Исследование трехуровневых логических устройств» и «Standard Ternary Logic».

   Очевидно также, что широкое практическое применение троичной логики сдерживалось и сдерживается отсутствием технологически удачных схемотехнических решений для базовых троичных логических элементов. Но успехи в области современной планарной технологии могут позволить воплотить её преимущества в кремнии, что обусловливает современность и актуальность исследований в этой области.



[Назад]
[К содержанию]
[Вперёд]

Hosted by uCoz