Табличные N-ричные сумматоры на Бэйсике

Использование и разработка софта (преимущественно на ПЦ)

Moderator: Shaos

AndrejKulikov
Banned
Posts: 315
Joined: 07 Mar 2018 23:17
Location: Россия, Москва

Табличные N-ричные сумматоры на Бэйсике

Post by AndrejKulikov »

Так как при полном троичном несимметричном суммировании в разряде переноса (Сout) не бывает значения больше 1, то в таблице полного троичного несимметричного сумматора всего только 18-ть колонок, а функция полного троичного несимметричного сумматора представляет собой тринарную комбинированную троичную функцию, в которой два операнда (A и B) - троичные несимметричные (2TN, 2 Ternary Nonsymmetric), а третий операнд (Cin) - двоичный (1B, 1 Binary):
A 2 1 0 2 1 0 2 1 0 2 1 0 2 1 0 2 1 0 трит A (первое слагаемое)
B 2 2 2 1 1 1 0 0 0 2 2 2 1 1 1 0 0 0 трит B (второе слагаемое)
C 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 бит Cin (перенос из предыдущего разряда)
---------------------------------------------
S 2 1 0 1 0 2 0 2 1 1 0 2 0 2 1 2 1 0 = F2TN1B2101020211020212103 = F2TN1B30731891210, трит суммы по модулю 3
C 1 1 1 1 1 0 1 0 0 1 1 0 1 0 0 0 0 0 = F2TN1B1111101001101000003 = F2TN1B19309921610, бит переноса в следующий разряд Cout.
По вышеприведённой таблице была написана программа инициализации и проверки табличного полного троичного несимметричного одноразрядного (однотритного) сумматора на Turbo Basic'е, скриншот выполнения которой приведён ниже:
TERNAADD.JPG
Первая строка на скриншоте - проверочный вывод введённых символов значений суммы по модулю 3 (S).

Вторая строка на скриншоте - проверочный вывод введённых символов значений бита переноса (Cout).

В третьей строке на скриншоте - двухзначные (двухтритные) строки результатов последовательного сложения всех 18-ти входных комтринаций. В двухзначной (двухтритной) строке результата старший значащий разряд - знак (символ) бита переноса в следующий разряд Cout, а младший значащий разряд - знак (символ) трита суммы по модулю 3 (S).
В троичном контроллере или в троичной эвм результат суммирования вместо символьных переменных можно было бы записать прямо в троичном виде в троичные регистры процессора и в троичные ячейки памяти, а в двоичных контроллерах и в двоичных эвм пока только в символьные переменные, так как в битах третьего значения нет.
При инициализации сумматора символы тритов суммы по модулю 3 (S) и символы битов переноса (Cout) из двух строк длиной по 18-ть тритов переписываются в два трёхмерных 18-ти элементных массива символов F2TN1B307318912$(2,2,1) и F2TN1B193099216$(2,2,1), которые и являются табличным сумматором.
В табличном сумматоре для определения результатов суммирования никаких логических вычислений не производится. Значения результатов вычисляются только один раз заранее и знаки (символы) заранее вычисленных числовых значений записываются в 3-х мерные 18-ти элементные массивы F2TN1B307318912$(2,2,1) и F2TN1B193099216$(2,2,1). Для определения суммы в ходе выполнения программы числовые значения двух входных тритов и бита переноса записываются в указатели элементов массивов и результат суммирования просто считывается из трёхмерных массивов F2TN1B307318912$(2,2,1) и F2TN1B193099216$(2,2,1).
Например, если нужно определить сумму двух тритов A%=2, B%=1 и бита переноса Cin%=0, то сумма по модулю 3 просто считывается из массива строкой S$=F2TN1B307318912$(2,1,0), а бит переноса просто считывается из массива строкой С$=F2TN1B193099216$(2,1,0).
Так как в табличных сумматорах никаких логических вычислений не производится, то они работают быстрее, чем сумматоры с логическими вычислениями результатов.

В четвёртой строке на скриншоте выводится суммарное время выполнения всех 18-ти проверочных суммирований посчитанных микротаймером MTIMER в микросекундах.

Code: Select all

'ternary asymmetric adder in symbol system (0,1,2), integer unsined (positiv) 1 trit 
CLS
COLOR 10,0

'adder initialisation
dim F2TN1B307318912$(2,2,1),F2TN1B193099216$(2,2,1)
F2TN1B307318912$="210102021102021210"
F2TN1B193099216$="111110100110100000"

for k%=0 to 1
  for j%=0 to 2
    for i%=0 to 2
      n%=i%+j%*3+k%*9
      F2TN1B307318912$(i%,j%,k%)=MID$(F2TN1B307318912$,18-n%,1)
      F2TN1B193099216$(i%,j%,k%)=MID$(F2TN1B193099216$,18-n%,1)
    next i%
  next j%
next k%
'PRINT

'input numbers
A%=2
B%=2
PRINT A%
PRINT B%
PRINT"--"

C%=0

MTIMER
'adding
S$=F2TN1B307318912$(A%,B%,C%)
C$=F2TN1B193099216$(A%,B%,C%)
ElapsedTime% = MTIMER

PRINT C$;S$
PRINT

PRINT "MTIMER =";ElapsedTime%;"microseconds,";
FPOPS=1000000/ElapsedTime%
PRINT USING "####### FPOPS";FPOPS
END
Следует отметить, что так как при программных сумматорах, логических и табличных, не требуются дорогие аппаратные сумматоры, логические и табличные, то программные сумматоры дешевле аппаратных и могут их полностью заменить в бюджетных контроллерах и в бюджетных эвм. В более дорогих контроллерах и эвм с аппаратными сумматорами программные сумматоры могут быть полезным дополнением и при выходе из строя аппаратного сумматора можно переключиться на дополнительные программные сумматоры, что повышает надёжность контроллеров и эвм.

Следует так же отметить, что подобным образом могут быть выполнены все нульарные, унарные, бинарные, тринарные и более арные двоичные, троичные, четверичные и более ичные логические функции.
You do not have the required permissions to view the files attached to this post.
Last edited by AndrejKulikov on 30 Sep 2018 07:12, edited 42 times in total.
User avatar
Shaos
Admin
Posts: 24080
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Табличный однотритный троичный асимметричный полный сумм

Post by Shaos »

AndrejKulikov wrote:а третий операнд (Cin) - двоичный (1B)
вот всё в вашей неправильной троичности через задницу

в сбалансированной третий операнд полноценный троичный - может быть как переносом, так и "заёмом" (в случае вычитания, которое сбалансированный троичный сумматор тоже могет)
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
TernarySystem
Doomed
Posts: 633
Joined: 27 Jul 2018 12:07

Re: Табличный однотритный троичный асимметричный полный сумм

Post by TernarySystem »

Shaos wrote:
AndrejKulikov wrote:а третий операнд (Cin) - двоичный (1B)
вот всё в вашей неправильной троичности через задницу

в сбалансированной третий операнд полноценный троичный - может быть как переносом, так и "заёмом" (в случае вычитания, которое сбалансированный троичный сумматор тоже могет)

Здесь как раз всё логично и правильно в троичной арифметике 1(3) + 1(3) = 2(3) а не 1 + 1 = -1 в двоичной избыточной...
You do not have the required permissions to view the files attached to this post.
AndrejKulikov
Banned
Posts: 315
Joined: 07 Mar 2018 23:17
Location: Россия, Москва

Re: Табличный однотритный троичный асимметричный полный сумм

Post by AndrejKulikov »

TernarySystem wrote: Здесь как раз всё логично и правильно в троичной арифметике 1(3) + 1(3) = 2(3), а не 1 + 1 = -1 в двоичной избыточной...
В троичной симметричной арифметике 1 + 1 = 17(3s) = 2(3) = 2(10), где "7"="-1".
User avatar
TernarySystem
Doomed
Posts: 633
Joined: 27 Jul 2018 12:07

Re: Табличный однотритный троичный асимметричный полный сумм

Post by TernarySystem »

AndrejKulikov wrote:
TernarySystem wrote: Здесь как раз всё логично и правильно в троичной арифметике 1(3) + 1(3) = 2(3), а не 1 + 1 = -1 в двоичной избыточной...
В троичной симметричной арифметике 1 + 1 = 17(3s) = 2(3) = 2(10), где "7"="-1".
Ух ты ещё лучше - это в какой логической системе?
AndrejKulikov
Banned
Posts: 315
Joined: 07 Mar 2018 23:17
Location: Россия, Москва

Re: Табличный однотритный троичный асимметричный полный сумм

Post by AndrejKulikov »

TernarySystem wrote: Ух ты ещё лучше - это в какой логической системе?
Троичный симметричный полусумматор:
A 1 0 7 1 0 7 1 0 7 трит A (первое слагаемое)
B 1 1 1 0 0 0 7 7 7 трит B (второе слагаемое)
-----------------------
S 7 1 0 1 0 7 0 7 1 младший разряд (трит) суммы
C 1 0 0 0 0 0 0 0 7 старший разряд (трит) суммы,
где "7"="-1".
AndrejKulikov
Banned
Posts: 315
Joined: 07 Mar 2018 23:17
Location: Россия, Москва

Re: Табличный однотритный троичный асимметричный полный сумм

Post by AndrejKulikov »

Shaos wrote:
AndrejKulikov wrote:а третий операнд (Cin) - двоичный (1B)
вот всё в вашей неправильной троичности через задницу

в сбалансированной третий операнд полноценный троичный - может быть как переносом, так и "заёмом" (в случае вычитания, которое сбалансированный троичный сумматор тоже могет)
Читателям:
Если система счисления работает при любых целых основаниях, чётных и нечётных, то она является основной, т.е. общим случаем.
Если система счисления работает только при нечётных целых основаниях, то она является дополнительной, т.е. частным случаем.
User avatar
TernarySystem
Doomed
Posts: 633
Joined: 27 Jul 2018 12:07

Re: Табличный однотритный троичный асимметричный полный сумм

Post by TernarySystem »

AndrejKulikov wrote:
TernarySystem wrote: Ух ты ещё лучше - это в какой логической системе?
Троичный симметричный полусумматор:
A 1 0 7 1 0 7 1 0 7 трит A (первое слагаемое)
B 1 1 1 0 0 0 7 7 7 трит B (второе слагаемое)
-----------------------
S 7 1 0 1 0 7 0 7 1 младший разряд (трит) суммы
C 1 0 0 0 0 0 0 0 7 старший разряд (трит) суммы,
где "7"="-1".
...нет такой системы (в троичной системе символа 7 не существует), это фантазия или инференция?
AndrejKulikov
Banned
Posts: 315
Joined: 07 Mar 2018 23:17
Location: Россия, Москва

Re: Табличный однотритный троичный асимметричный полный сумм

Post by AndrejKulikov »

TernarySystem wrote:
AndrejKulikov wrote:
TernarySystem wrote: Ух ты ещё лучше - это в какой логической системе?
Троичный симметричный полусумматор:
A 1 0 7 1 0 7 1 0 7 трит A (первое слагаемое)
B 1 1 1 0 0 0 7 7 7 трит B (второе слагаемое)
-----------------------
S 7 1 0 1 0 7 0 7 1 младший разряд (трит) суммы
C 1 0 0 0 0 0 0 0 7 старший разряд (трит) суммы,
где "7"="-1".
...нет такой системы (в троичной системе символа 7 не существует), это фантазия или инференция?
Читателям:
Не на всех пишущих машинках и не во всех редакторах текста есть символ "1 с чёртой сверху", поэтому некоторые авторы используют символ "7" вместо символа "1 с чёртой сверху", так как символ "7" похож на символ "1 с чёртой сверху". Другие авторы вместо символа "7" используют символ "2", так как он похож на символ "7" только без черты снизу. Третьи авторы вместо символа "1 с чёртой сверху" используют символ "1 с чертой снизу", что можно сделать и в этом редакторе: "1".
User avatar
Shaos
Admin
Posts: 24080
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Табличный однотритный троичный асимметричный полный сумм

Post by Shaos »

А на этом форуме пишут P вместо +1, O вместо 0 и N вместо -1 - соответственно P+P=PN
Если это противоречит вашим убеждениям, то создавайте свой форум и пишите там что хотите :idea:
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
TernarySystem
Doomed
Posts: 633
Joined: 27 Jul 2018 12:07

Re: Табличный однотритный троичный асимметричный полный сумм

Post by TernarySystem »

Писать P вместо +1 можно... только зачем, если существует классическая теория логик - например логика Лукасевича, логика Приста кстати Shaos эта логика описывает Ваши идеи реализации трёхзначной системы (logic of paradox) но только -1, 0, +1 или вот ещё вариант логика Клини (Клейни) strong logic of indeterminacy, здесь великий логик использует обозначения F, U, T (false, unknown, true).
Из трехзначной логики Лукасевича Ł3 выведена троичная “тау-логика” путем замены
истинностных значений первой {0,½,1} на значения второй {-1,0,1} соответственно.
так какая логика выбрана Вами для форума при обозначении P, O, N и что это обозначает?

И вот незадача Вы что уже на форуме преследуете за убеждения или как там на костер инакомыслящих... тогда Вы противоречите себе вот Вы писали: Неординарно мыслящих людей мы наоборот приветствуем и приглашаем к обсуждению и сотрудничеству. Даешь народный троичный компьютер к концу первой пятилетки двацать первого века! ;)
или как?
User avatar
Shaos
Admin
Posts: 24080
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Табличный однотритный троичный асимметричный полный сумм

Post by Shaos »

Если каждый будет тянуть в свою сторону, то ничего не получится

А NOP были выбраны ещё в 2004 году т.к. на компьютере отобразить -1 одним знакоместом невозможно

P.S. и это не "логика", а способ отображения значений одного трита в текстовом виде...
Я тут за главного - если что шлите мыло на me собака shaos точка net
AndrejKulikov
Banned
Posts: 315
Joined: 07 Mar 2018 23:17
Location: Россия, Москва

Re: Табличный однотритный троичный асимметричный полный сумм

Post by AndrejKulikov »

Последовательное сложение двух 16-ти тритных целых без знака на полном троичном ассиметричном последовательном одноразрядном табличном сумматоре:
TernaryAdder16-tritUnsigned.JPG
В первой и второй строке - слагаемые (A$ и B$) в виде 16-ти тритных строк символов.
В третьей строке - 16-ти тритная сумма.
В четвёртой строке - время выполнения операции сложения и быстродействие в FPOPS (Fixed Point Operations per Second).
Наибольшее значение одного из операндов и суммы: 22222222222222223 = 43 046 72010.

Code: Select all

'16 trit ternary asymmetric adder in symbol system (0,1,2)
CLS
COLOR 10,0

'adder initialisation
dim F2TN1B307318912$(2,2,1),F2TN1B193099216%(2,2,1)
'                 876543210987654321
F2TN1B307318912$="210102021102021210"
F2TN1B193099216$="111110100110100000"

for k%=0 to 1
  for j%=0 to 2
    for i%=0 to 2
      n%=i%+j%*3+k%*9
      F2TN1B307318912$(i%,j%,k%)=MID$(F2TN1B307318912$,18-n%,1)
      F2TN1B193099216%(i%,j%,k%)=VAL(MID$(F2TN1B193099216$,18-n%,1))
    next i%
  next j%
next k%
'PRINT

'input numbers
'   6543210987654321
A$="1111110020022110"
B$="1111110020010100"
PRINT A$
PRINT B$
PRINT"----------------"

DIM A%(15),B%(15)
FOR I%=0 TO 15
  A%(I%)=VAL(MID$(A$,16-I%,1))
  B%(I%)=VAL(MID$(B$,16-I%,1))
NEXT I%

C%=0
S$=""

MTIMER
'adding
FOR I%=0 TO 15
  S$=F2TN1B307318912$(A%(I%),B%(I%),C%)+S$
  C%=F2TN1B193099216%(A%(I%),B%(I%),C%)
NEXT I%
ElapsedTime% = MTIMER

PRINT S$
PRINT

PRINT "MTIMER =";ElapsedTime%;"microseconds,";
FPOPS=1000000/ElapsedTime%
PRINT USING "####### FPOPS";FPOPS
END
You do not have the required permissions to view the files attached to this post.
Last edited by AndrejKulikov on 01 Oct 2018 01:49, edited 4 times in total.
AndrejKulikov
Banned
Posts: 315
Joined: 07 Mar 2018 23:17
Location: Россия, Москва

Re: Табличный однотритный троичный асимметричный полный сумм

Post by AndrejKulikov »

TernarySystem wrote: ...нет такой системы (в троичной системе символа 7 не существует), это фантазия или инференция?
Символ "7" вместо "-1" используют Гиниятуллин В.М. и Миргалиев В.Д. из уфимского государственного нефтяного технического университета, о чём они и пишут в работе "Эмуляция троичной арифметики".
User avatar
TernarySystem
Doomed
Posts: 633
Joined: 27 Jul 2018 12:07

Re: Табличный однотритный троичный асимметричный полный сумм

Post by TernarySystem »

AndrejKulikov wrote:
TernarySystem wrote: ...нет такой системы (в троичной системе символа 7 не существует), это фантазия или инференция?
Символ "7" вместо "-1" используют Гиниятуллин В.М. и Миргалиев В.Д. из уфимского государственного нефтяного технического университета, о чём они и пишут в работе "Эмуляция троичной арифметики".
...да есть там такое, возможно для эмуляторов этот прием и даст какой то эффект но для реализации в железе я не вижу никаких преимуществ.
В работе обсуждается библиотека программной эмуляции арифметических операций в
троично – сбалансированной системе счисления (ТСС).
Введение
Троично – сбалансированная система счисления – это позиционная система, алфавит которой
состоит из трех символов -1, 0, +1. Одна из первых, промышленно выпускавшихся, ЭВМ –
«Сетунь» [1] была основана именно на этой системе счисления.
В настоящее время отсутствие троичной элементной базы не позволяет аппаратно
реализовать преимущества ТСС
, поэтому была написана библиотека программной эмуляции
арифметических операций ТСС – чисел с плавающей запятой.

- и опять же в своей работе авторы делают посыл на троично-сбалансированную систему счисления, а такая система может рассматриваться только как специализированная компьютерная система (двоично избыточная) а в итоге она реализуется ими с помощью двоичной базы элементов. Такую систему можно рассматривать как трехзначную но не троичной. Покажите мне пример где система -1, 0, 1 называется троичной ну кроме Википедии естественно? И это не убеждения а здравый смысл. Вот Shaos открыл мне топик Украинская TernarySystem а теперь сетует что мои взгляды не совпадают с правилами форума - хотя по количеству просмотров тема была неплохая...
форум от этого топика не пострадал и Shaos только +1, вот так уважаемый AndrejKulikov.