nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 16 Apr 2024 02:10



Reply to topic  [ 33 posts ]  Go to page 1, 2, 3  Next
Табличные N-ричные сумматоры на Бэйсике 
Author Message
Banned

Joined: 07 Mar 2018 23:17
Posts: 315
Location: Россия, Москва
Reply with quote
Так как при полном троичном несимметричном суммировании в разряде переноса (С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'е, скриншот выполнения которой приведён ниже:
Attachment:
TERNAADD.JPG
TERNAADD.JPG [ 23.55 KiB | Viewed 10416 times ]

Первая строка на скриншоте - проверочный вывод введённых символов значений суммы по модулю 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:
'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


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

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


Last edited by AndrejKulikov on 30 Sep 2018 07:12, edited 42 times in total.



28 Sep 2018 04:00
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22517
Location: Silicon Valley
Reply with quote
AndrejKulikov wrote:
а третий операнд (Cin) - двоичный (1B)

вот всё в вашей неправильной троичности через задницу

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

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


28 Sep 2018 04:25
Profile WWW
Doomed
User avatar

Joined: 27 Jul 2018 12:07
Posts: 608
Reply with quote
Shaos wrote:
AndrejKulikov wrote:
а третий операнд (Cin) - двоичный (1B)

вот всё в вашей неправильной троичности через задницу

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



Здесь как раз всё логично и правильно в троичной арифметике 1(3) + 1(3) = 2(3) а не 1 + 1 = -1 в двоичной избыточной...


Attachments:
ТРОИЧНАЯ АРИФМЕТИКА.jpg
ТРОИЧНАЯ АРИФМЕТИКА.jpg [ 28.01 KiB | Viewed 10425 times ]
28 Sep 2018 05:11
Profile
Banned

Joined: 07 Mar 2018 23:17
Posts: 315
Location: Россия, Москва
Reply with quote
TernarySystem wrote:
Здесь как раз всё логично и правильно в троичной арифметике 1(3) + 1(3) = 2(3), а не 1 + 1 = -1 в двоичной избыточной...

В троичной симметричной арифметике 1 + 1 = 17(3s) = 2(3) = 2(10), где "7"="-1".


28 Sep 2018 05:24
Profile
Doomed
User avatar

Joined: 27 Jul 2018 12:07
Posts: 608
Reply with quote
AndrejKulikov wrote:
TernarySystem wrote:
Здесь как раз всё логично и правильно в троичной арифметике 1(3) + 1(3) = 2(3), а не 1 + 1 = -1 в двоичной избыточной...

В троичной симметричной арифметике 1 + 1 = 17(3s) = 2(3) = 2(10), где "7"="-1".


Ух ты ещё лучше - это в какой логической системе?


28 Sep 2018 05:29
Profile
Banned

Joined: 07 Mar 2018 23:17
Posts: 315
Location: Россия, Москва
Reply with quote
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".


28 Sep 2018 06:11
Profile
Banned

Joined: 07 Mar 2018 23:17
Posts: 315
Location: Россия, Москва
Reply with quote
Shaos wrote:
AndrejKulikov wrote:
а третий операнд (Cin) - двоичный (1B)

вот всё в вашей неправильной троичности через задницу

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

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


28 Sep 2018 07:52
Profile
Doomed
User avatar

Joined: 27 Jul 2018 12:07
Posts: 608
Reply with quote
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 не существует), это фантазия или инференция?


28 Sep 2018 12:28
Profile
Banned

Joined: 07 Mar 2018 23:17
Posts: 315
Location: Россия, Москва
Reply with quote
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".


28 Sep 2018 14:12
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22517
Location: Silicon Valley
Reply with quote
А на этом форуме пишут P вместо +1, O вместо 0 и N вместо -1 - соответственно P+P=PN
Если это противоречит вашим убеждениям, то создавайте свой форум и пишите там что хотите :idea:

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


28 Sep 2018 18:38
Profile WWW
Doomed
User avatar

Joined: 27 Jul 2018 12:07
Posts: 608
Reply with quote
Писать 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 и что это обозначает?

И вот незадача Вы что уже на форуме преследуете за убеждения или как там на костер инакомыслящих... тогда Вы противоречите себе вот Вы писали: Неординарно мыслящих людей мы наоборот приветствуем и приглашаем к обсуждению и сотрудничеству. Даешь народный троичный компьютер к концу первой пятилетки двацать первого века! ;)
или как?


29 Sep 2018 10:26
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22517
Location: Silicon Valley
Reply with quote
Если каждый будет тянуть в свою сторону, то ничего не получится

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

P.S. и это не "логика", а способ отображения значений одного трита в текстовом виде...

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


29 Sep 2018 17:35
Profile WWW
Banned

Joined: 07 Mar 2018 23:17
Posts: 315
Location: Россия, Москва
Reply with quote
Последовательное сложение двух 16-ти тритных целых без знака на полном троичном ассиметричном последовательном одноразрядном табличном сумматоре:
Attachment:
TernaryAdder16-tritUnsigned.JPG
TernaryAdder16-tritUnsigned.JPG [ 19.24 KiB | Viewed 10270 times ]

В первой и второй строке - слагаемые (A$ и B$) в виде 16-ти тритных строк символов.
В третьей строке - 16-ти тритная сумма.
В четвёртой строке - время выполнения операции сложения и быстродействие в FPOPS (Fixed Point Operations per Second).
Наибольшее значение одного из операндов и суммы: 22222222222222223 = 43 046 72010.
Code:
'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



Last edited by AndrejKulikov on 01 Oct 2018 01:49, edited 4 times in total.



30 Sep 2018 08:28
Profile
Banned

Joined: 07 Mar 2018 23:17
Posts: 315
Location: Россия, Москва
Reply with quote
TernarySystem wrote:
...нет такой системы (в троичной системе символа 7 не существует), это фантазия или инференция?

Символ "7" вместо "-1" используют Гиниятуллин В.М. и Миргалиев В.Д. из уфимского государственного нефтяного технического университета, о чём они и пишут в работе "Эмуляция троичной арифметики".


30 Sep 2018 22:18
Profile
Doomed
User avatar

Joined: 27 Jul 2018 12:07
Posts: 608
Reply with quote
AndrejKulikov wrote:
TernarySystem wrote:
...нет такой системы (в троичной системе символа 7 не существует), это фантазия или инференция?

Символ "7" вместо "-1" используют Гиниятуллин В.М. и Миргалиев В.Д. из уфимского государственного нефтяного технического университета, о чём они и пишут в работе "Эмуляция троичной арифметики".


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

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


01 Oct 2018 01:30
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 33 posts ]  Go to page 1, 2, 3  Next

Who is online

Users browsing this forum: No registered users and 24 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.