Троичный сумматор

Уравновешенная троичная система счисления - форум переехал с http://ternary.info

Moderator: haqreu

User avatar
BEPTEP
Doomed
Posts: 374
Joined: 09 Apr 2025 01:49

Re: Троичный сумматор

Post by BEPTEP »

Shaos wrote: 18 May 2025 21:28 Троичный цветок? :lol:
Все приветики и с Новым Годом! :ebiggrin:

Решил добивать свой калькулятор начал, чуть было не забросил его из-за других дел, но вот пришла пора вновь им заняться.
Так сказать со свежей головой начинал вспоминать всё :mrgreen:
Слава Богу не сильно подзабыл. Пришлось сутки копаться в архивах у себя, чтобы рабочие схемки, наброски отыскать.

Родилась кажется идея у меня как конечное поделие оформить!

1. Решил не заморачиваться однокнопочным решением и всякими генераторами "случайных чисел". Решил 2П3Т переключателями ограничиться от части.
2. Как тут в теме спрашивал меня Админ по поводу сумматора х4, зачем он нужен? Тоже склоняться к мысли начал, что это перебор.
Единственное что на нём можно делать элегантно в троичной логике, это сдвиг числа влево! Ну и так же при умножении или делении сомнительный выигрыш даёт, но сомнительный, потому что сильно не напрягался считать пока.
3. Внезапно выяснилось )) что уже почти полноценный АЛУ на нём собрать можно! Чем сейчас голова и занята.

В процессорах 8080 интеловских, в 6502 АЛУ, это фактически один единственный сумматор и несколько логических инструкций.
Старая статейка попалась в лайвжурнале от 12 года, оказывается проц 6505 сдвиг влево выполнял именно арифметической операцией сложения. Но сдвиг вправо уже фрифметикой не выполнить , даже логикой громоздко получается, проще на регистре или буфере с коммутатором это исполнить. Выигрыш как в экономии транзюков, так и в тактах получается.

Инкремент, Декремент, Сложение, Вычитание, сдвиг влево, а с ним и эффективное умножение, я продумал. С делением сложнее, операция сравнения пока до конца в голове не оформилась. Это вычитание с установкой флага.
Несколько вопросов по этому поводу:
1. Как реализовать проверку переполнения? Никак не могу понять что это за зверь. Возможно, так как логика троичная, надо как то фиксировать при вычитании равенство нулю, уход в отрицательную область числа, уход в положительную область числа.
2 Для чего нужны логические функции И, НЕ, ИсклИли, сдвиг вправо? Умножение и деление требуют только сдвиг влево и инверсию числа. В двоичной логике при операции "умножение" нужна логическая И, в троичной без надобности от слова вообще! Да и сама она выглядит весьма забавно для троичной:
логическое И.JPG
Логическое ИЛИ реализовано в сумматоре, но пока не пойму зачем , кроме него, оно ещё где-то нужно? Искл ИЛИ тоже реализовано в сумматоре, фактически это полусумматор только без трита переноса - тоже не пойму, накой она в троичной логике ещё нужна? 8)
Вопросы ещё не все, это те которые пока на поверхности.
You do not have the required permissions to view the files attached to this post.
User avatar
BEPTEP
Doomed
Posts: 374
Joined: 09 Apr 2025 01:49

Re: Троичный сумматор

Post by BEPTEP »

Сдвиг вправо для реализации округления на ум только приходит.
С троичным округлением пока непонятки, в популярной литературе утверждают что это фишка троичной логики, но по факту округление очень грубое - плюс-минус пол километра и не всегда в нужную сторону. Да и до запятой я ещё пока не добрался :mrgreen:
В общем интересно, в краткой форме, было бы понять для чего эти фундаментальные операции необходимы:
калькулятор.PNG
Хочу понять их суть в двоичной арифметике и переложить на троичную.

В процессоре 6502 RoL & RoR дополнены ещё обычным сдвигом впрво и влево - LSR & ASL .Тоже никак не пойму в чём отличие. RoL & RoR в калькуляторе это сдвиги до границы бита числа, затем число меняет знак и так по кругу. Т.е. вращение получается и то непонятно как. Число 2 байта и 1 байт - разные вращения, добавления единицы, получаются.

Это сдвиги или вращения? ASL вращением никак быть не может, потому что это арифметическая операция сложения двух одинаковых чисел(в троичной логике трёх чисел). LSR - зеркальна арифметической, только логическая.
Вращение мне боле мень понятно тоже, необходимо при работе с битами. Переносом , переворотом битов в числе.

3 непонятки остались: И, ИЛИ, ИсклИЛИ??
You do not have the required permissions to view the files attached to this post.
Last edited by BEPTEP on 09 Jan 2026 07:59, edited 1 time in total.
User avatar
Shaos
Admin
Posts: 24881
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Троичный сумматор

Post by Shaos »

Как раз сдвиг вправо в сбалансированной троичности и есть округление
User avatar
BEPTEP
Doomed
Posts: 374
Joined: 09 Apr 2025 01:49

Re: Троичный сумматор

Post by BEPTEP »

Shaos wrote: 09 Jan 2026 07:58 Как раз сдвиг вправо в сбалансированной троичности и есть округление
Вроде как понял. Спасибо!
А для чего И, ИЛИ, ИсклИЛИ в виндовском калькуляторе нужны и в АЛУ двоичных?
Типа для криптографики? :ebiggrin:
Логическую И в троичной логике выше представил - логическое умножение. По моему это абсурд для троичной логики, - не вижу как или где это применимо в ней. Или моё представление неверно?
Last edited by BEPTEP on 09 Jan 2026 08:09, edited 1 time in total.
User avatar
Shaos
Admin
Posts: 24881
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Троичный сумматор

Post by Shaos »

Чтобы программистам угодить? Простым гражданам оно ненадо
User avatar
BEPTEP
Doomed
Posts: 374
Joined: 09 Apr 2025 01:49

Re: Троичный сумматор

Post by BEPTEP »

Shaos wrote: 09 Jan 2026 08:05 Чтобы программистам угодить? Простым гражданам оно ненадо
А программистам троичной логики альтернативы есть? :mrgreen:
User avatar
BEPTEP
Doomed
Posts: 374
Joined: 09 Apr 2025 01:49

Re: Троичный сумматор

Post by BEPTEP »

Логическое И называют логическим умножением. Для троичной логики своё представление выше представил.
Логическое ИЛИ - сложение:
ИЛИ.PNG
Логическое ИскИЛИ, сложение по модулю:
ИсклИЛИ.PNG
Только трит переноса тут не нужен.
Верны ли мои представления?
You do not have the required permissions to view the files attached to this post.
User avatar
Shaos
Admin
Posts: 24881
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Троичный сумматор

Post by Shaos »

Мы где-то в недрах форума обсуждали это всё применительно к троичности - я лично не вижу смысла в XOR для троичности, а вот AND и OR напрямую превращаются в MIN и MAX соответствено, однако двоичный AND ещё и для маскирования используется (как раз в виде логического умножения) - в троичности это будет другая функция, которая в троичном мире вроде как известна как MUL:

Code: Select all

   | -1  0 +1
--------------
-1 | +1  0 -1
 0 |  0  0  0
+1 | -1  0 +1
User avatar
BEPTEP
Doomed
Posts: 374
Joined: 09 Apr 2025 01:49

Re: Троичный сумматор

Post by BEPTEP »

Shaos wrote: 09 Jan 2026 08:53 Мы где-то в недрах форума обсуждали это всё применительно к троичности - я лично не вижу смысла в XOR для троичности, а вот AND и OR напрямую превращаются в MIN и MAX соответствено, однако двоичный AND ещё и для маскирования используется (как раз в виде логического умножения) - в троичности это будет другая функция, которая в троичном мире вроде как известна как MUL:

Code: Select all

   | -1  0 +1
--------------
-1 | +1  0 -1
 0 |  0  0  0
+1 | -1  0 +1
Т.е. для троичного калькулятора важны две логические функции: MIN и MAX.
И моя ТИ для троичного MIN(И) выше неверна. Для полного фарша нужна функция MUL. Я правильно понял?

MUL, это сокращение от английского multiplication - умножение?
User avatar
BEPTEP
Doomed
Posts: 374
Joined: 09 Apr 2025 01:49

Re: Троичный сумматор

Post by BEPTEP »

Путаницы в терминах достали. С двоичной логикой вообще мало что стыкуется в троичной
ТИ логического умножения, MUL, что в двоичной логике это AND(И) верно представлена. Спасибо!
Но тогда получается что мои картинки выше вообще неправильны. Логическое ИЛИ(OR или MAX, как я понял) тогда в троичной логике будет то что я обозвал ИсклИЛИ, так как Таб Ист намекает аккурат на логическое сложение у него:

Code: Select all

 р  | -1 |  0 | +1
--------------------
 -1 | +1 | -1 |  0
--------------------
  0 | -1 |  0 | +1
--------------------
 +1 |  0 | +1 | -1
--------------------
Это ТИ результата, без переноса.
Так?
Третьего не дано или я не понял? MAX=OR, MUL=AND=MIN?
User avatar
BEPTEP
Doomed
Posts: 374
Joined: 09 Apr 2025 01:49

Re: Троичный сумматор

Post by BEPTEP »

Если только две эти функции "на конвейере" реализовывать, с доп линиями управления, коммутацией выхода и трита переноса, то схема полусумматора увеличивается на 10 транзюков! Весь полусумматор пока 22 транзюка. Прощай "экономика" :mrgreen:
Пол дня схему собственную курил, вспоминал, загружал голову. За полгода всё почти выветрилось :roll:
User avatar
BEPTEP
Doomed
Posts: 374
Joined: 09 Apr 2025 01:49

Re: Троичный сумматор

Post by BEPTEP »

Так же назрел вопрос по поводу машинного слова. 6 трит нормально будет , не многовато 729 значений? Атмосферу транзюки попусту обогревать не будут из-за ненадобности такого кол-ва значений? Адресов памяти с переизбытком, столько памяти я отродясь не наделаю :mrgreen: для машинных инструкций тоже перебор жуткий.
5 трит 243 значения, чуть меньше чем у байта, но несущественно. Но 5 как-то не эстетично, не вписывается в трёшечку никак. Да и в двушечку тоже. Вот сижу, тоже думаю.
User avatar
Shaos
Admin
Posts: 24881
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Троичный сумматор

Post by Shaos »

MUL и MIN это две разные троичные функции (это в бинарном мире оно всё один и тот же логический И)
User avatar
BEPTEP
Doomed
Posts: 374
Joined: 09 Apr 2025 01:49

Re: Троичный сумматор

Post by BEPTEP »

Хотя бы ТИ привели бы. Словами математику тяжелее понимать :mrgreen:
И одного И в двоичном мире недостаточно. Нужно ещё минимум отрицание. Тогда всю! математику на них построить можно. Это да 8)
Снимок.PNG
Как справедливо гласит закон двоичного мира: отрицание дизъюнкции есть конъюнкция отрицаний. И наоборот :mrgreen:
You do not have the required permissions to view the files attached to this post.
Last edited by BEPTEP on 09 Jan 2026 15:32, edited 1 time in total.
User avatar
Shaos
Admin
Posts: 24881
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Троичный сумматор

Post by Shaos »

Про MIN и MAX вот тут например было: viewtopic.php?p=1699#p1699