Использование троичного кода и трехзначной логики в компьютерах
Выдержки из научного отчета № 24-ВТ (378) Брусенцова Н.П. «Использование троичного кода и трехзначной логики в цифровых машинах», Москва – 1969 г.
Подготовлено Тринари по материалам ВНТБ
Вопрос о целесообразности применения троичного кода в цифровой технике возник вместе с появлением быстродействующих автоматических цифровых машин и на протяжении всего последующего периода неоднократно рассматривался в ряде монографий по цифровым устройствам и специально написанных на эту тему работ [1-8]. Заключения, высказанные по этому вопросу весьма различны и во многих случаях являются выражением скорее субъективного мнения того или иного автора, чем результатов объективного исследования.
В качестве одного из преимуществ троичного кода нередко указывают на то, что этот код является самым экономным в том смысле, что количество оборудования, необходимое для реализации р-ичного массива, обладающего заданным числом различных значений, оказывается минимальным при р = 3. Оценка затрат оборудования производится при этом в предположении, что количество оборудования в р -значном элементе пропорционально р. При таком предположении отношение количества оборудования, необходимого для реализации р -ичного массива, к количеству аналогического оборудования, необходимому для реализации двоичного массива той же значности, выражается функцией [3]:
f(p)=р/(2log2р)
которая имеет минимум при р = 2,718…, а для целых р при р = 3:
f(3)=0,946
Таким образом, если элементы удовлетворяют указанному предположению, то троичный код оказывается на 5,4% экономнее двоичного.
Реальная экономичность кода, вообще, может быть оценена лишь применительно к конкретной физической реализации элементов, можно указать реализация (например, биакс, индуктивный параметрон, взаимно скомпенсированная пара магнитных сердечников, поляризованное реле, электромагнитная линия задержки), в случае которых стоимость двузначного и трехзначного элементов одинакова. Это обусловлено тем, что в двузначном варианте возможности данных реализаций просто недоиспользуются. При таких реализациях применение троичного кода вместо двоичного даёт экономию оборудования на 37% или в 1,59 раза. К этой категории относятся постоянные магнитные запоминающие устройства, оперативные запоминающее устройства, в которых используется по два сердечника на элемент, и такой перспективный тип запоминающих устройств, как устройства на многослойных ферритовых пластинках [9, 10].
Имеется возможность передачи трехзначного алфавита по одному проводу без увеличения времени и без ужесточения допусков. Речь идет о передаче сигналами положительной и отрицательной полярности. Реализация этой возможности при использовании троичного кода вместо двоичного повышает пропускную способность каналов в 1,59 раза: при последовательной передаче по одному проводу в 1,59 раза сокращается затрачиваемое время, при параллельной передаче в 1,59 раза уменьшается число необходимых проводов.
Предметная интерпретация алфавита не связана с понятием веса значений и поэтому представляется более свободной, чем числовая. В логике это подчеркивают тем, что употребляют нечисловые обозначения значений, например: Л и И или F и T, хотя, по-видимому, удобнее было бы употреблять числа, рассматривая их как порядковые номера предметных значений.
При p ≥ 3 в одном и том же алфавите могут содержаться положительные и отрицательные значения. Особый интерес представляют алфавиты, в которых число положительных значений равно числу отрицательных значений. Такие алфавиты мы будем называть симметричными. Простейшим таким алфавитом является трехзначный симметричный алфавит.
В основу числовой интерпретации слов положено различие элементов по масштабу весов, проявляющееся в том, что каждому элементу слова приписывают определенный разряд. Разряд характеризуется целым числом β: численное значение элемента k-го разряда равно αk×pβ, где αk– численное алфавитное значение, присвоенное данному элементу.
В симметричном коде сложение чисел со знаками технически равноценно сложению положительных чисел в натуральном коде с неотрицательным алфавитом, а изменение знака числа выполняется просто поэлементной инверсией соответствующего слова. При этом не только возможно непосредственное сложение чисел разной длины, но также можно любую часть слова интерпретировать как отдельное число со знаком и выполнять арифметические операции над словами как над совокупностями таких чисел. Это открывает новые перспективы развития и вместе с тем упрощения структуры операционных устройств цифровых машин и создает полезные возможности для программирования [16].
Заметим, что преимущества симметричного алфавита могут быть реализованы также при непозиционном представлении чисел, например, в системе остаточных классов [17].
Основная трудность реализации арифметических преимуществ симметричного кода заключается в том, что они находятся за пределами привычного и технически обжитого двузначного алфавита. Однако трудность эта не так уж велика: для того, чтобы реализовать все указанные преимущества, достаточно перейти от двузначного алфавита к трехзначному.
Наиболее просто проблема округления решается в симметричном коде. Значение отсекаемой справа части числа в симметричном коде никогда не превышает по абсолютной величине половину единицы младшего сохраняемого разряда, поэтому всякое отсечение автоматически является правильным округлением числа. При этом не только получается экономия оборудования и времени, затрачиваемых для выполнения округления, но и сокращается количество необходимых арифметических операций, т.к. операции умножения, сдвига, сложения и вычитания с плавающей запятой, выполняемые обычно в двух вариантах с округлением и без округления результата, становятся однозначными. Симметричный троичный код - простейший код, обладающий этим ценным свойством.
Понятие оптимального в смысле экономной реализации преобразований значения р, по-видимому, имеет смысл лишь для конкретного класса преобразований и используемых технических средств. В частности, господство двузначной логики в современных цифровых машинах объясняют обычно тем, что практически всем используемым в настоящее время физическим элементам свойственны лишь два устойчивых состояния.
Применительно к машинам это объяснение в общем правдоподобно, хотя физические элементы с числом состояний большими, чем два, вполне осуществимы и не получили распространения, может быть, потому, что до сих пор все усилия были сосредоточены на развитии двузначных элементов. Однако логика не исчерпывается цифровыми машинами, и её двузначная основа определилась независимо от физических элементов машин.
Никто не доказал абсолютных преимуществ рассуждения по принципу «да» – «нет», наоборот, имеются примеры, показывающие преимущества многозначных логик [19, 30]. По-видимому, основная причина преобладания двузначной логики заключается в том, что эта логика простейшая.
Преимущество трехзначной логики перед двузначной можно наглядно показать на примере рассуждения путем ответов на общие (т.е. не содержащие вопросительных слов) вопросы. В двузначной логике на каждый такой вопрос допустим один ив двух ответов: «да», «нет». На практике нереже, и даже чаще, случается ответ, не являющийся ни утверждением, ни отрицанием, например: «неизвестно», «неопределенно», «безразлично», «бессмысленно» и т.п. – вообщем, «нет ответа». Эта ситуация в двузначной логике равносильна тупику. Чтобы обойти тупик, надо перед тем, как поставить данный вопрос x, убедиться в том, что на него есть ответ, т.е. задать предварительный вопрос: «Есть ли ответ на вопрос х?».
В трехзначной логике предварительный вопрос не нужен, так как имеется возможность трех ответов на основной вопрос. Ясно, что рассуждение в трехзначной логике происходит быстрее и проще. По-видимому, на практике мы чаще всего пользуемся именно трехзначной логикой.
Пути реализации указанного преимущества трехзначной логики в цифровых машинах, которые на современном этапе представляет собой полностью детерминированные системы, не очевидны. Однако, и в детерминированных системах с использованием трехзначной логики может быть связана существенная экономия средств благодаря тому, что во-первых, трехзначная ситуация в этих системах случается весьма часто, и во-вторых, подавляющее большинство двузначных управлявших сигналов можно попарно объединять в трехзначные сигналы.
Многозначным логикам свойственно значительно большее по сравнению с двузначной логикой разнообразие операций. В частности, в трехзначной логике имеется 27 одноместных и 19683 двухместных операций. Вопрос о том, какие из операций следует включить в алгебру, предназначенную для проектирования р-ичных цифровых устройств, должен решаться с учетом следующих требований:
- Система операций должна быть функционально полной [29, 80] в р-значной логике.
- Система операций должна быть гибкой, т.е. должна обеспечивать возможность представления достаточно простыми суперпозициями [30] большинства важных в цифровых устройствах функций.
- Операции, включенные в систему, должны допускать экономную физическую реализацию их наличными техническими средствами.
Троичный код является самым простым (в отношении структуры и физической реализации) кодом, который допускает использование симметричного алфавита, т.е. может быть симметричным кодом. Этим обусловлены его главные преимущества перед другими кодами применительно к цифровым машинам. Симметричному коду присущи такие ценные свойства, как естественное представление чисел со знаком на уровне элементов и правильное самоокругление чисел при отсечении младших разрядов.
Вследствие указанных свойств в симметричном троичном коде коренным образом упрощается логика и сокращается число необходимых вариантов арифметических операций, открывается возможность оперирования со словами разной длины, существенно упрощается структура операционных устройств, получается значительная экономия времени, затрачиваемого на выполнение операций, а в ряде случаев также оборудования.
Троичный код является единственным недвоичным кодом, использование которого может быть не связано с ужесточением требований к стабильности сигналов и к различительной способности воспринимающих сигналы устройств. При этом пропускная способность каналов в троичном коде в 1,59 раза больше, чем в двоичном. В частности, в операционных устройствах последовательного действия сложение в троичном коде выполняется в 1,59 раза, а умножение в 2,5 раза быстрее, чем в двоичном.
Трехзначная логика в цифровых устройствах весьма эффективна, т.к. трехзначные ситуации достаточно часты и, кроме того, имеется возможность попарного объединения двузначных управляющих сигналов в трехзначные. Наиболее экономная реализация трехзначной логики связана с применением электромагнитных пороговых элементов. Средствами полупроводниковой техники троичные устройства реализуются, как правило, с большими затратами оборудования, чем функционально равноценные двоичные устройства. Однако, в условиях интегральной технологии связанная с троичным кодом возможность упрощения структуры устройств за счёт усложнения элементов и экономия количества соединений между элементами могут оказаться важнее обычной экономии деталей.