Vendein_RaZoR

Троичная логика vs двоичной в кремнии

47 сообщений в этой теме

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

https://ru.wikipedia.org/wiki/Троичная_логика

Интересны стали следующие преимущества перед двоичной:

1)Высказывания более приближены к реальным (то есть "да, нет, не знаю" вместо просто "да, нет")
2)Самая экономичная логика из всех в плане представления чисел с помощью определенного количества знаков
3)Ясное дело что больший числовой диапазон можно охватить с малым количеством тритов
4)При использовании симметричных тритов (-,0,+) можно перевести число в отрицательное простым инвертированием тритов
5) и т.д.

Понятное дело, что ещё и недостатков полно,  но ведь они все разрешаемы в той или иной степени наверное?:

1)Говорят что помехоустойчивость маленькая и надо поднимать питание, но, так или иначе, не думаю, что кто-то на первых порах будет работать с помехами, скажем, в 1-2 В.
2)Случайное распознавание нуля при переходе из - в +. Возможно и так, но, скорее всего, так и должно быть.
3)Схема не такая высокочастотная как в двоичном случае. Да, это так, но ведь и информации передается куда больше в единицу времени.

Так что недостатки вилами по воде писаны.

А вот что касается реализации в кремнии, то тут беда. Как бы не было грустно, но единственные более-менее адекватные логические элементы это диоды - самые первые, возможно, логические элементы которые реализуют И, ИЛИ. Только в этом случае логику надо делать несимметричной (0,1,2).
С остальными БЛЭ на других полупроводниках все как то не очень. Таким образом на что годен кремний:
1) КМОП: потребление электроэнергии инвертором в состоянии 0 (или пол питания на выходе) увеличивается в сотни и тысячи раз.
2)ТТЛ: большой коэффициент усиления, малое входное сопротивление, потребление электроэнергии также высоко, а про третье состояние = 0 и говорить не приходится, надо строить обратные связи всякие чтоб 0 получить на выходе не плавающий.
3)ЭСЛ: опять же проигрыш
4)ДТЛ: только диоды
На радостях от преимуществ тритов отыскал патент на инвертор КМОП с низким энергопотреблением, который более-менее походил на правду и промучался целый день.
281_420629.jpg

Схема сама по себе неправильная, но доля смысла в ней присутствовала. Для троичной симметричной логики надо иметь ещё 0 или среднюю точку, но тут есть свои подводные камни: если подавать 0 на инвертор КМОП 2х транзисторный - это неминуемо ведет к увеличению энергопотребления. Поэтому в этой схеме верно реализовали каскады, но этот троичный инвертор ничего не инвертирует, как это не печально.:(

По-идее средняя точка разделяет схему и делает её симметричной относительно 0, то есть +,0 на верхнюю часть, 0,- на нижнюю, но вот чтоб это все "склеить" так, чтобы происходило инвертирование без особых затрат электроэнергии, невозможно. Целый день голову ломал так и не пришел ни к чему хорошему :unknw:.

Расхваливают троичную логику много, но толком никто в кремнии эффективно не реализовал. По крайней мере в интернете даже схемы простого инвертора не нашел рабочего. Одни патенты от которых толку 0, либо совсем уж зверские непонятные схемы на 20-30 транзисторов на инвертор, которые неизвестно ещё работают или нет.
Знаю что есть 2-х проводная троичная логика, но она все равно на двоичных элементах, так не интересно.

Кто нибудь видел какой нибудь троичный инвертор эффективно реализованный с малым количеством транзисторов ? Или троичной симметричной логике не место в кремнии ? :huh:
 

  • Одобряю 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Быстрый заказ печатных плат

Полный цикл производства PCB по низким ценам!

  • x
    мм
Заказать Получить купон на $5.00
oldmao    1 208

Ищи схемы ЭВМ Сетунь. И сразу же залежи ферритовых колечек, ибо на них была реализована логика. Работала она в импульсном режиме, а не в статическом.
Кстати, а язык программирования для троичной логики уже придумал? :)

Изменено пользователем oldmao
  • Одобряю 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Но опять-таки
 

Цитата

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

Мне-то вовсе не это надо было :)
Интересует именно логические элементы которые работают не в двупроводном троичном коде, а в чисто троичном, то есть -,0,+ поступает на вход, допустим, инвертора и выдает +,0,- на выходе и при этом затраты от источника такие же минимальные как при двоичном случае.
Ну так вот, вопрос состоит в том, можно ли реализовать это в полупроводниках или такое полупроводники не допускают ? :unknw:

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
oldmao    1 208

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

PS Приведите пример, где троичная логика выгоднее двоичной. Только реальный, с листингом программы!

Изменено пользователем oldmao
  • Одобряю 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
3 часа назад, oldmao сказал:

Ну почему же, ОУ вполне допускают.

ОУ то допускают, но медленные и без резисторной обратной связи не работают нормально. А вот на стандартной логике действительно не получается, даже не на логике, а на уровне полупроводников, то есть нет такого полупроводника который бы инвертировал двуполярное напряжение эффективно.
 

Цитата

PS Приведите пример, где троичная логика выгоднее двоичной. Только реальный, с листингом программы!

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
oldmao    1 208

Как раз совершенно неочевидны в реальных приложениях. Ну вот какую из программ, ежедневно используемых на компьютере, нужно перевести в троичную логику, чтобы работало быстрее/эффективнее? Браузер, текстовый редактор, медиаплэйер?
Хорошо, возьмём встраиваемое приложение. Терморегулятору, фотореле или таймеру это чем-то поможет?
PS Транзисторы хорошо вписываются именно в двоичную логику, состояния открыт/закрыт отлично терминируются. А вот со средним - уже большие проблемы. Что считать средним? Ноль или полпитания (при двуполярном питании это одно и тоже)? Тогда нужно будет два пороговых устройства на входе, чтобы чётко разделить состояния. То есть усложняем более чем в два раза, а выигрыш совсем не очевиден. Если бы это было реально выгодно - давно бы уже серийно выпускалось. А пока даже нечёткую логику реализуют через бинарную.

Изменено пользователем oldmao

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
20 часов назад, oldmao сказал:

Как раз совершенно неочевидны в реальных приложениях. Ну вот какую из программ, ежедневно используемых на компьютере, нужно перевести в троичную логику, чтобы работало быстрее/эффективнее? Браузер, текстовый редактор, медиаплэйер?
Хорошо, возьмём встраиваемое приложение. Терморегулятору, фотореле или таймеру это чем-то поможет?
PS Транзисторы хорошо вписываются именно в двоичную логику, состояния открыт/закрыт отлично терминируются. А вот со средним - уже большие проблемы. Что считать средним? Ноль или полпитания (при двуполярном питании это одно и тоже)? Тогда нужно будет два пороговых устройства на входе, чтобы чётко разделить состояния. То есть усложняем более чем в два раза, а выигрыш совсем не очевиден. Если бы это было реально выгодно - давно бы уже серийно выпускалось. А пока даже нечёткую логику реализуют через бинарную.

 

Действительно, ничего тут не очевидно совсем потому что это совсем другая логика и программы работать может по-другому будут.

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

Средним можно и 0 и пол питания считать, смотря от чего отталкиваться, но мне больше нравится 0, симметричная логика как то более выразительно смотрится +,0,- вместо 0,1,2.
Выигрыш только пока в теории, на практике действительно ничего не очевидно, когда даже простого инвертора нормального нет. Схема и вправду более чем в 2 раза усложняется, но, я думаю, это ещё не повод всё сворачивать, как знать, может в чем то и выиграем ?

Придумал тут такой инвертор

 4b9YrAYD5Q0.jpg

 

Суть в источниках тока (токовых зеркалах) у инвертора в нижнем и верхнем плечах, но вот быстродействие снижается при этом раз в 50, зато энергопотребление при 0 на входе снижается значительно по сравнению с состояниями + и - (в 0 где-то в 100 раз больше ток чем в + и -). Опять-таки дилемма между быстродействием и энергопотреблением как с биполярниками в своё время.

Ещё идея была дифференциальный каскад поставить и подавать троичный дифференциальный сигнал на 2х линиях, но опять с энергопотреблением не срослось... Че то тупик какой то :D 

Вот дифференциальная схемка
ui9vgy1qKi0.jpg

На 1 пФ уже завал жесткий. Ну оно и очевидно, насильно ограничен ток в состоянии 0, входная емкость полевика большая. Вот и получаются ограничения:

1) С одной стороны если не ограничивать ток и оставить все как есть, то потребление в любом случае вырастет

2) Если потребление ограничивать, до быстродействие падает в 0 (без ограничения в 0 ток в тысячи раз больше чем в + или -), не зря так пытаются проскакивать активный режим.

Вывод только один, либо выбирать из двух зол и использовать КМОП, либо попробовать ещё на биполярниках что-нибудь <_<

Изменено пользователем Vendein_RaZoR
  • Одобряю 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
oldmao    1 208

Так вот из-за этих граблей и использовали в качестве трита два бита! А если есть два бита - то логичнее использовать четверичную логику. Это ещё выгоднее троичной получается :)

"Да" - "скорее да, чем нет" - "скорее нет, чем да" - "нет". А отсюда рукой подать до нечёткой логики.

Изменено пользователем oldmao

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
38 минут назад, oldmao сказал:

Так вот из-за этих граблей и использовали в качестве трита два бита! А если есть два бита - то логичнее использовать четверичную логику. Это ещё выгоднее троичной получается :)

"Да" - "скорее да, чем нет" - "скорее нет, чем да" - "нет". А отсюда рукой подать до нечёткой логики.

Что-то мне кажется мы пытаемся пока познать непознанное :D и истина ближе чем нам кажется...

Четверичная логика уже не в ту степь. Троичная самая экономичная поскольку число 3 приближено к e = 2.7 куда больше чем 2. Утверждать что бессмысленно ещё ничего не сказать, так как все таки слишком преимущества подкупают некоторые и не совсем обычные преобразования.

Главное найти элемент подходящий для троичной, КМОП уже точно отбрасывается, насчет ТТЛ ещё пока проверяю, ну и ДТЛ там если диоды только 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ну что ж, тема вроде как никому не интересна, но все же :)
Представляю на ваш суд первую схему троичного инвертора, которая работает более-менее пристойно.


S-Mgrvfgci4.jpg

Да-да 8-10 транзисторов на 1 инвертор...
8 если убрать резисторы R1 и R2 и не ставить источник тока для транзисторов Q5 и Q6.

Схема получилась сложная, но и потребляет электроэнергии она не больше, чем обычный инвертор двоичный, может даже и в 2 раза меньше.
Ключ стоит вместо транзистора со встроенным каналом p-типа не было модели :(

В плане динамики чуть по-хуже, чем двоичный, но разница крайне мала...
Троичный (100 кГц на входе, 100 пФ емкость на выходе):
zFStOU6Bkbo.jpg

Двоичный(100 кГц на входе, 100 пФ емкость на выходе):
bGTmP3M33xI.jpg

Сказывается на частоте "троичность".
Все делалось на одинаковых моделях транзисторов.
Третий уровень, а это 0, не удалось запустить в динамике, модели транзистора нет :(, но могу сказать, что ток потребления в 0 теперь почти ничего :)
gcOwIqosge8.jpg

Ну так вот, можно сказать, что нормальный троичный инвертор создан, схемы ИЛИ-НЕ или И-НЕ. думаю, будут занимать уже не 8-10, а 16-20 транзисторов, притом 2-4 из них со встроенным каналом...

Ну так что скажите ? :huh:

Изменено пользователем Vendein_RaZoR
  • Одобряю 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
next sound    62

сорри

не залезая в суть модели - все три состояния должны быть "активны"

т.е.

"1" - это подключение нагрузки к источнику питания +U

"-1" - это подключение нагрузки к источнику питания -U

"0" - это подключение к земле, а не отключение от питания

у Вас так?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
3 часа назад, next sound сказал:

сорри

не залезая в суть модели - все три состояния должны быть "активны"

т.е.

"1" - это подключение нагрузки к источнику питания +U

"-1" - это подключение нагрузки к источнику питания -U

"0" - это подключение к земле, а не отключение от питания

у Вас так?

Ну тк, так и есть ;)
Генератор импульсов выдает двуполярные импульсы от -2.5 до 2.5 В :)
Землю можно пока только ключом включить и проверять её в статике, потому что транзистора модели нет p канального

Изменено пользователем Vendein_RaZoR

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
IMXO    1 049
В 15.11.2016 в 00:36, Vendein_RaZoR сказал:

Интересны стали следующие преимущества перед двоичной:

1)Высказывания более приближены к реальным (то есть "да, нет, не знаю" вместо просто "да, нет")

 

В 15.11.2016 в 00:36, Vendein_RaZoR сказал:

281_420629.jpg

так вот как выглядит женский моск :)

  • Одобряю 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Шутнички :D да и не только женский наверное и не мозг, а, скорее, извилина, да ещё и  схема не та )))

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Теперь троичный инвертор выглядит так
dy-xvXihwko.jpg

Резисторы R1 и R2 можно заменить на транзисторы от источника тока, опять-таки не принципиально, на быстродействии, думаю, не скажется. Как видно теперь в центре схемы к общему проводу притянуты повелики с индуцированным, а не встроенным каналом.

Сравнил по быстродействию с обычным инвертором
CxMmh2nsLPE.jpg

И вот что получилось.
Троичный инвертор с нагрузкой 10 пФ и генератором импульсов 100 кГц (по 1 мкс на уровень, в остальном общий провод)
5Iguhv1sdNA.jpg

Двоичный инвертор с нагрузкой 10 пФ и генератором импульсов 100 кГц (скважность немного поправлена, 1 мкс на низкий уровень)
uVh2ISVLk4Y.jpg

Видно, что быстродействие троичного инвертора в 2-4 раза меньше, чем двоичного. То есть:
0 -> 1: меньше быстродействие в 4 раза
-1 -> 0: меньше быстродействие в 4 раза
-1 -> 1: меньше быстродействие в 2 раза
Но это только в модели, посмотрим что будет в железе, а будет наверное не скоро, придется идти закупаться кучей транзисторов...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
oldmao    1 208

А вот теперь изобрази 2И-НЕ - это считается базовым элементом почти для всего остального. Только укажи, какой вариант логики использовать собираешься...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
57 минут назад, oldmao сказал:

А вот теперь изобрази 2И-НЕ - это считается базовым элементом почти для всего остального. Только укажи, какой вариант логики использовать собираешься...

То есть какой вариант логики ? Тк такой же как и выше, симметричная троичная (-,0,+), сравню по позже двоичный и троичный 2И-НЕ :)

А вот кстати годный формирователь импульсов или фронта как там его или триггер шмитта, как угодно :)

qFR3wxw-eXo.jpg

Изменено пользователем Vendein_RaZoR

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
oldmao    1 208

Ну составь тогда таблицу истинности для 2И-НЕ в троичной логике :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ну так вот, сделал инвертор и тут понеслось...

Представляю вашему вниманию схему троичного 2И-НЕ

Y6gJD0WDgEw.jpg

И сравните его с двоичным 2И-НЕ :)

rwEuuQipeX0.jpg

Разница в 5 раз !
И так будет теперь почти во всех схемах. На 5 транзисторов больше, чем в двоичной логике :)
А вот временная диаграмма троичного 2И-НЕ без конденсатора на выходе

DV4nEUh3n9Y.jpg

А вот с конденсатором на 10 пФ, все меняется кардинально

VfHajSTQs5o.jpg

А так быстродействие уже где-то в 2-4 раз ниже, а то и в 4-8 по сравнению с обычным двоичным 2И-НЕ :), хотя вроде и такое же.

RurpAnvwBLk.jpg

Что интересно, земля замыкается как будто по схеме 2И-НЕ тоже :)

Кстати, как я и говорил, 16-20 транзисторов :)

ЗЫ будет теперь дальше формировать элементную базу )))

Изменено пользователем Vendein_RaZoR

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А вот и логический троичный 2ИЛИ-НЕ
pzn8JW9mg3A.jpg

И его диаграмма работы, все тоже самое почти с быстродействием как и в случае 2И-НЕ

UbeGIbhdREc.jpg

10пФ
roHr3yIMpD4.jpg

Все также при нагрузке 10 пФ, также 16-20 транзисторов требуется.

Сравнивать не буду уже, лень

Приведу, пожалуй таблицы истинности

Троичное 2И-НЕ

Y = !MIN(X1,X2)
gXmcTX-WM4g.jpg

Двоичное 2И-НЕ

12d0eb6b153cbbabf30f29777fb_prev.jpg

Троичное 2ИЛИ-НЕ

Y = !MAX(X1,X2)

XtRHEekqc9M.jpg

Двоичное 2ИЛИ-НЕ

f3d36847fb9682f8e7832d109d6_prev.jpg

Так что вот так вот пока, дальше делать только если XOR какой-нибудь, но я фиг знаю какой он будет пока, какой-то особенный наверное ни на что не похожий :D и сумматор также
А так надо бы уже на Митино сгонять на рассыпухе делать начать инвертор хотя бы...

Изменено пользователем Vendein_RaZoR

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
oldmao    1 208

Это один вариант логики! А существует и другой 2И-НЕ, в котором -1 AND -1 = +1, +1 AND +1 = -1, а все остальные варианты = 0.
А от выбранной логики зависят и схемотехника и математика. Прикинь, как представить хотя бы целые числа со знаком и простейшие операции сложения/вычитания. С плавающей запятой вообще мрак...

Изменено пользователем oldmao

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
28 минут назад, oldmao сказал:

Это один вариант логики! А существует и другой 2И-НЕ, в котором -1 AND -1 = +1, +1 AND +1 = -1, а все остальные варианты = 0.
А от выбранной логики зависят и схемотехника и математика. Прикинь, как представить хотя бы целые числа со знаком и простейшие операции сложения/вычитания. С плавающей запятой вообще мрак...

Это че за варианты такие ? :) -1 & -1  = +1 это уже скорее умножение, чем AND, 1 AND 1 = -1 это уже NAND. Так что все продумано.

Целые числа со знаком ? В симметричной - легко ! Она для этого собсно и подходит как ни одна другая наверное. -0- = -10, +0+ = 10, переход от - к + происходит простым инвертированием тритов, для этим троичная логика и отличается.
Для сложения/вычитания нужно сперва что-то типа XOR синтезировать, а потом уже видно будет.

С плавающей запятой да, мрак, но это тоже все дело времени :)

 

Изменено пользователем Vendein_RaZoR

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Тогда не пойму в чем проблема вообще пока что ? :)

Вот как здесь наверное буду сумматор делать и фиг знает че выйдет посмотрим так нормалек наверное будет
https://neerc.ifmo.ru/wiki/index.php?title=Троичный_сумматор

Изменено пользователем Vendein_RaZoR

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Что касается суммы и разности
Что интересно, в троичной логике сумматор и субстрактор это один и тот же элемент

То есть это будет и неполным сумматором и неполным субстрактором

halfadder.gif

Только вот проблема, как таковой схемы XOR в троичной логике нет, как таковая была в двоичной

Вместо этой схемы будет какая-то такая схема с такой вот таблицей истинности, то есть сигнал суммы S

O4HZUNFUtdA.jpg

А вот такой вот будет сигнал переноса P

Le6xiZCrzI4.jpg

Так что опять то ли на стандартной логике как-то синтезировать, но пока я не знаю как, либо как новый логический элемент....

А может, чтоб было проще надо ввести ещё парочку элементов
Модификация

9a594dc28028025a9d80c1169f6554ed.jpg


Выбор

efeb22906d20d9ad1f68a046744a61f0.jpg

И ещё инвертор относительно + и -
86772a3e89f721caaa5999dcab8e523a.jpg

ЗЫ и ведь не могу остановиться :D

Изменено пользователем Vendein_RaZoR

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас