nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 28 Mar 2024 14:56



Reply to topic  [ 62 posts ]  Go to page 1, 2, 3, 4, 5  Next
Троичные функции 
Author Message
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
AlexanderZh wrote:
А сколько их всего есть полезных?

Всего их 27. Часть тривиальна. А вот полезных сколько - затрудняюсь сказать... :wink:

Это как у 4-битного АЛУ К155ИП3 (aka 74181) - всего "их" 32, а вот сколько
из них полезных, мы так и не решили... :lol:

_________________
iLavr


29 Oct 2017 18:54
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22412
Location: Silicon Valley
Reply with quote
Я в своё время вот такую объяснялку нагородил для одно-аргументных функций в DDT:
Code:
 all ternary functions of one argument:
 NNN = N
 NNO = SHD(x) = E21(x,N,O)
 NNP = E21(x,N,P)
 NON = MUX(x,N,O,N) = E12(x,N,E21(x,O,N))
 NOO = BLP(x) = E12(x,N,O) // analog of reverse diode
 NOP = x // BUF(x) or buffer MUX(x,N,O,P) = E12(x,N,E21(x,O,P))
 NPN = MUX(x,N,P,N) = E12(x,N,E21(x,P,N))
 NPO = MUX(x,N,P,O) = E12(x,N,E21(x,P,O))
 NPP = E12(x,N,P)
 ONN = NHI(x) = E12(x,O,N)
 ONO = MUX(x,O,N,O) = E12(x,O,E21(x,N,O))
 ONP = MUX(x,O,N,P) = E12(x,O,E21(x,N,P))
 OON = E21(x,O,N)
 OOO = O
 OOP = BLN(x) = E21(x,O,P) // analog of forward diode
 OPN = ROU(x) = MUX(x,O,P,N) = E12(x,O,E21(x,P,N))
 OPO = MUX(x,O,P,O) = E12(x,O,E21(x,P,O))
 OPP = SHU(x) = E12(x,O,P)
 PNN = NTI(x) = E12(x,P,N)
 PNO = ROD(x) = MUX(x,P,N,O) = E12(x,P,E21(x,N,O))
 PNP = MUX(x,P,N,P) = E12(x,P,E21(x,N,P))
 PON = INV(x) = MUX(x,P,O,N) = E12(x,P,E21(x,O,N))
 POO = E12(x,P,O)
 POP = MUX(x,P,O,P) = E12(x,P,E21(x,O,P))
 PPN = PTI(x) = E21(x,P,N)
 PPO = PHI(x) = E21(x,P,O)
 PPP = P


А двухаргументных будет аж 19683 :)

А если рассматривать только симметричные, то останется всего 729

_________________
:dj: https://mastodon.social/@Shaos


10 Nov 2017 18:57
Profile WWW
Doomed

Joined: 10 Mar 2012 16:21
Posts: 598
Location: РФ
Reply with quote
AlexanderZh wrote:
.. не выдумывается её объяснения ..

Объяснение такой функции как раз несложно : Это "нуль подтверждает знак, в остальных комбинациях ==0 "
Вот сформулировать словесно некоторые другие гораздо сложнее ..


11 Nov 2017 10:18
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
А вобще вопрос, поднятый топикстартером, оказался довольно непраздным вот в каком аспекте:
А какой минимальный набор функций надо бы обеспечить в троичном АЛУ?
И подумать об этом с точки зрения минимальных аппаратных затрат - тримуксы довольно недешевое удовольствие! :wink:

С точки зрения теории базис троичной логики составляют одна из двухвходовых функций (MIN или MAX)
и правая циклическая инверсия (Rotate Up).

Как в двоичной логике AND (или OR) и NOT.
Кстати, в PDP-8 и был минимальный набор: сумма, AND и NOT.

И в троичном АЛУ с точки зрения схемотехники удобно бы выбрать 9 функции, ну либо 27 - хотя
это уже многовато с аппаратной точки зрения. :wink:

_________________
iLavr


15 Nov 2017 04:41
Profile
Doomed

Joined: 10 Mar 2012 16:21
Posts: 598
Location: РФ
Reply with quote
Предположим, что нам зачем то надо вычислять так называемую "fuzzy_logik"~"нечёткую_ логику" с какой-нибудь точностью.
Самое простое представление будет "нет"==(-1) , "вероятность50%"==0 , "да(100%)"==(+1) и это займёт ровно один трит.
Больше градаций будет при изпользовании трёх тритов , ещё больше - девяти ну и т.д. ,в зависимости от доступности ресурсов.
Поелику ресурсов мало, можно для начала ограничиться тремя тритами ( диапазон целых чисел от (-13)10 до (+13)10 или можно подразумевать, что там дробные, это уже трактовка ).
Для нечётких вычислений нужны операции
: сложения(2оп.)
, перемножения(верояностей)(2оп.)
, инверсии(1оп.)
, установки в |(-1)(-1)(-1)| ,в |0 0 0 | ,в |(+1)(+1)(+1)| (1оп.)
,сравнения( а вот возможно ли сделать результат "100%совпадают"/"схожи_на_xxx%"/"несхожи(0%)" ??? ) (2оп.) .
Для всякой другой математики пригодится также :
вычитание(2оп.) с заёмом(однотритовй флажок"C")
, перемножение(чисел) ( с уст. флажка "C" и "OVR" ) (2оп.)
, деление(чисел) ( с уст. флажка "C" и "OVR" ) (2оп.)
, может быть сдвиги( они дадут x*3 и x/3 )через однотритовй флажок"Zero/Neg" (1оп.)
, может быть операции с "троично-кодированными_десятичными" ( TCD по аналогии с BCD )
, неплохо инекремент и декремент ,что впрочем заменимо на нечто вроде ADI(+1) ADI(-1)

... Мож что нужное упустил .. можно добавить потом .

.|..|
\/ \/ _
AlexanderZh wrote:
..
___ ___ ___ ___ ___ ___ ___ ___ ___
petrenko wrote:
Для нечётких вычислений нужны операции
: сложения(2оп.)

___ ___ ___ ___ ___ ___ ___ ___ ___
Можно поподробней, почему именно две* ? И далее по тексту тоже встречается...

___ ___ ___ ___ ___ ___ ___ ___ ___


*_Не "две" ,а "два" .. Видимо надо было пояснить, что в скобочках отмечено количество операндов функции/операции .
То есть рассматриваем некоторые одно-операндные и двух-операндные функции.


Last edited by petrenko on 15 Nov 2017 22:13, edited 1 time in total.



15 Nov 2017 11:15
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
AlexanderZh wrote:
Lavr wrote:
удобно бы выбрать 9 функции...

Мне кажется, даже 9 немного избыточно. Двухоперандные MIN, MAX, сложение (с переносом/заёмом), и однооперандная функция инверсии (также, возможны, инкремент и декремент). Итого выходит 6 штук.
Дешифратор есть уже 2-в-9 позиций - при дороговизне троичной схемотехники стыдно будет его недогрузить. :lol:

Но я соглашаюсь, что пока хорошо иметь сумму (с переносом/заёмом), MIN, MAX,
вместо инверсии я предпочитаю XOR - он и XOR и управляемый инвертор.
Rotate Up и Rotate Down - специфичные троичные инверсии нужны.
Инкремент и декремент можно сделать функцией регистра-аккумулятора, а не АЛУ, как, впрочем, и сдвиги.

_________________
iLavr


15 Nov 2017 13:17
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
AlexanderZh wrote:
Lavr wrote:
вместо инверсии я предпочитаю XOR - он и XOR и управляемый инвертор.
Это не та, что эквивалент инвертированной функции EQU в моих табличках?

Не знаю, как её зовут в Ваших табличках - но я её смоделировал именно с заданной целью:
Троичный XOR -/- управляемый инвертор.

_________________
iLavr


15 Nov 2017 14:06
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
AlexanderZh wrote:
А осциллограммы я очень плохо читаю, практики нет.
Никогда не поздно восполнить этот пробел, тем более, что осциллограф - "глаза" электронщика... :wink:

И на мой взгляд, всё просто очевидно, поскольку и схема приведена рядом.
Attachment:
3XOR_OSC1.gif
3XOR_OSC1.gif [ 9.34 KiB | Viewed 8413 times ]

На вход А вентиля XOR подаются импульсы размахом от -1 до +1 - красная осциллограмма.
На вход В вентиля XOR я кнопками подаю -1 ... 0 ... +1 .
Синяя оциллограмма - выход вентиля XOR .

Видно, что пока В = -1, синяя и красная синфазны.
При В = 0 и синий луч едет посредине - по уровню "0".
Как только В = 1 синяя и красная становятся противофазны, значит вентиль XOR сынвертировал сигнал.

_________________
iLavr


15 Nov 2017 14:53
Profile
Doomed

Joined: 10 Mar 2012 16:21
Posts: 598
Location: РФ
Reply with quote
Да, XOR это универсальнее, в варианте XRI получится инверсия, правильный подход. :kruto:

Регистров надо стараться избежать, сделать по минимуму, без которых никак : PC , IDX , SP
, а несколько наборов р.о.н. - в локальном быстром о.з.у. в режиме считывание->модификация->запись .

Сдвиг можно мультиплексорами после выхода а.л.у. ( по аналогии с двоичной и.м.с. 531ир21( которая хоть и "ир" ,но не регистр) ) ,так быстрее.
Инкремент и декремент лучше всё-таки в а.л.у. ,чутка усложнив, добавлением второго входного переноса/заёма

Кстати, счёт в PC можно делать не инкрементом, а ,по аналогии LFSR (,как в м.к. семейства TMS1000 ), но надо изобрести "троичный LFSR" :eugeek: ( или другой вариант ,столь же "простой" - изобрести по быстренькому троичный "код_типа_как_бы_грея" :mrgreen: )


15 Nov 2017 22:41
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
AlexanderZh wrote:
Я рассматриваю простейший троичный недопроцессор с точки зрения, можно ли на нем будет собрать калькулятор. Вроде МК-54/61. Даже без тригонометрии в первой итерации.

Собрать калькулятор будет можно, и даже очень неплохой калькулятор! :o
Вот для примера - CASIO PB-100 - в нём даже Basic есть!

Image

А внутри-то CASIO PB-100 довольно слабенький 4-битный процессор... :-?

Весь вопрос упрётся в программное обеспечение, которого у нас нет, пока мы мудруем над железками...

Вот я сделал 4-битный процессор, причем сразу предусмотрел и графический дисплей! :o
Уж калькулятор-то на нём сделать запросто можно, но ПО никакого НЕТ! :esad:

_________________
iLavr


16 Nov 2017 03:53
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22412
Location: Silicon Valley
Reply with quote
petrenko wrote:
( или другой вариант ,столь же "простой" - изобрести по быстренькому троичный "код_типа_как_бы_грея" :mrgreen: )

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

_________________
:dj: https://mastodon.social/@Shaos


16 Nov 2017 04:01
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
AlexanderZh wrote:
тему ту читал с большим интересом и все рядомлежащие.
По ним я наконец то понял как устроен процессор внутри и как он работает.

А Вы на чем-нибуть не пишете, ну типа С++ или VBasic хотя бы?
А то железку-то мы сделаем, а троичного софта к ней не будет... :-?
И опять получится мертворожденная железка... :osad:

Нам бы "писателя" в команду... :wink: А то всё сразу делать некогда...

_________________
iLavr


16 Nov 2017 10:00
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Shaos wrote:
я лет эдак десять назад изучал вопрос и пришёл к выводу, что коды грея в троичной системе счисления невозможны...
Этим постулатом ты меня несколько удивил... :o
Attachment:
KGrey.gif
KGrey.gif [ 4.2 KiB | Viewed 6081 times ]

Я про коды Грея смотрел совсем недавно, когда мучался с дешифратором троичного кода.
И мелькнула мысль - а помню ведь был дешифратор кода Грея... может посмотреть... :wink:

_________________
iLavr


16 Nov 2017 10:12
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
AlexanderZh wrote:
Lavr wrote:
VBasic хотя бы?
Вот только на нем балуюсь для себя.
Ну "набаловали" бы для нас компилятор троичного ассемблера? :wink:

А то Shaos из года в год "кормит" патчами своего древнего ассемблера,
а хотелось бы уже чего-то новенького... с виндавозными окнами... :lol:

_________________
iLavr


16 Nov 2017 10:17
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
AlexanderZh wrote:
Lavr wrote:
А какой минимальный набор функций надо бы обеспечить в троичном АЛУ?
Собственно, чтобы оценить это для себя, я тему и затеял.
Lavr wrote:
удобно бы выбрать 9 функций, ну либо 27

Предлагаю ускорить процесс следующим образом. Вот 16 команд АЛУ моего 4-битного ЦПУ:
Attachment:
Syscmd.gif
Syscmd.gif [ 10.48 KiB | Viewed 6070 times ]

Две команды вычитания я выкинул - они нам не нужны.
Я однозначно четко представляю, как аппаратно реализовать этот набор в троичном АЛУ.

Давайте предметно и споро обдумаем, обсудим, и либо сократим этот набор до 9-и,
либо расширим до 18-ти.


P.S. Регистра В в этой конструкции не будет. Но на его месте на втором входе АЛУ будет
регистр Т(Temp). Он не будет доступен програмно напрямую, но в командах типа ADI 39
число 39 будет находиться именно в Т.

_________________
iLavr


Last edited by Lavr on 17 Nov 2017 14:28, edited 1 time in total.



16 Nov 2017 17:49
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 62 posts ]  Go to page 1, 2, 3, 4, 5  Next

Who is online

Users browsing this forum: No registered users and 8 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.