nedoPC.org

Community of electronics hobbyists established in 2002

...
Atom Feed | View unanswered posts | View active topics It is currently 19 Sep 2018 01:19



Reply to topic  [ 87 posts ]  Go to page Previous  1, 2, 3, 4, 5, 6
Троичные функции 
Author Message
Doomed

Joined: 10 Mar 2012 17:21
Posts: 557
Location: РФ
Reply with quote
^^_ :mrgreen:

^_ Отнюдь . Это не "выяснено", это частное мнение очень небольшого количества людей.
И при таком "выясненном" раскладе как прикажете называть 9тритов ? :question:
( да и группирование по 2 и по 6 это как то "не троично" ,а кроме того 2 трита правильнее и понятнее называть "пара" )
Ладно, это всё лирика ...

Кроме логических и арифметических, могут быть функции, работающие со структурами данных.

Поэтому желательно продумать заранее, как например кодировать возвращаемое функцией значение NIL
,коды ошибок и разных видов переполнений ( *(+∞) *(-∞) , /0 и др. ) ..
Необязательно "прямщаз" делать, но продумать и зарезервировать (, чтоб потом не пришлось головоломно впихивать с перехрюкиванием всего ранее сделанного под пляски с бубном ) .


28 Nov 2017 04:52
Profile
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 16951
Location: Colorado
Reply with quote
petrenko wrote:
Это не "выяснено", это частное мнение очень небольшого количества людей.
И при таком "выясненном" раскладе как прикажете называть 9тритов ? :question

tradr :)

http://www.nedopc.org/forum/viewtopic.php?p=1133#p1133

_________________
:eugeek: https://twitter.com/Shaos1973


28 Nov 2017 10:23
Profile WWW
Doomed

Joined: 10 Mar 2012 17:21
Posts: 557
Location: РФ
Reply with quote
:mrgreen: Ok . Посмеялись, отдохнули, лирический перекур завершили, поехали дальше.

Всё таки дилемма : ИЛИ надо повторять "Сетунь", не мучаясь изобретениями "велосипедов" ИЛИ надо предусматривать поддержку работы со структурами данных уже сразу "в железе" .

Итак : поелику при работе с троичной логикой однотритовой_точности
( самая неточная точность нечёткой логики - частный случай )
в триаде
( какая разница как называть, в общем то , всё равно 99.999999% людей это непонятно в принципе, а приноровиться к сленгу той или иной техно-секты даже проще, чем выучить клингонский язык )
изпользуется один трит ( пусть младший )
, то : два старших трита пущай указывают , что это именно структура_данных==логика_однотритовой_точности

В общем повторю ( ^_ссылка как раз указывает на тему, где я сие уже говорил ) :
petrenko wrote:
.. Первый (старший) трит будет указывать :
если 0 , то следующие 8 трит
при их положительном значении кодируют ..... , при их отрицательных значениях кодируют другие типы данных,
если -1 , то следующие триты содержат код команды или ещё что-нибудь системное или .....
, ну а если +1 , то следующие триты кодируют числовые данные, причём второй .. трит ещё не кодирует, а указывает ( иногда вместе с третьим тритом и сл. ) на тип числа и его длину
..


Таким образом значения триады :
Nxx -> следующие триты содержат код команды или ещё что-нибудь системное или .....
0xx -> следующие M(==8 ? ) трит ..... кодируют другие типы данных ..
PNN -> в следующей триаде указание на тип числа и его длину
PN0 -> в следующих 8 тритах целое число от -3280 до +3280
PNP -> в следующих 8 тритах число означает вероятности нечёткой логики от (1/6561) до 1
P0N -> Logik[-1]
P00 -> Logik[0]
P0P -> Logik[+1]
PPN -> "не найдено"( для пролог ,для запрос_клавиатуры и как результат_неприменимых_операций )
PP0 -> NIL ( для структур )
PPP -> MASK( при некоторых операциях как "игнорировать" или "любое_значение"==xxx )


( где N==[-1] 0==[0] P==[+1] )

Попытка выполнить логическую операцию над не-логическими данными ( не из множества {P0N;P00;P0P} ) должна выдавать ошибку в флагах ошибок и результат PPN в регистре.


28 Nov 2017 21:29
Profile
Maniac
User avatar

Joined: 21 Mar 2017 13:50
Posts: 296
Location: Spb
Reply with quote
petrenko wrote:
Таким образом значения триады :
Nxx -> следующие триты содержат код команды или ещё что-нибудь системное или .....
0xx -> следующие M(==8 ? ) трит ..... кодируют другие типы данных ..
PNN -> в следующей триаде указание на тип числа и его длину
PN0 -> в следующих 8 тритах целое число от -3280 до +3280
....

Наверное, если проектировать супер-защищенную систему, то так поступить можно, но только при постоянной длине "порции" данных. Но, на мой взгляд, выглядит очень избыточно. Зачем вводить на аппаратном уровне то, что гораздо проще и экономичней решается компилятором (т.е. на программном уровне)?
Если встраивать подобные типы данных в железе - то нужно сразу думать что будет делать процессор если в один регистр загрузят целое число от -3280 до +3280, в другой вероятности нечёткой логики от (1/6561) до 1 а следующей инструкцией пойдет сложение этих регистров? Выдавать ошибку? Сложить как числа/вероятности? Если ошибку - значит в программе должен быть её обработчик, который либо завершит программу либо должен проанализировать "а как туда попали разные типы данных?". Второе мне кажется невозможным даже на суперкомпьютерах (или очень ограниченно возможным). А первое может сделать ещё компилятор на стадии написания программы, указав на несоответствие типов данных. Так зачем тогда весь этот огород?


29 Nov 2017 03:27
Profile
Maniac
User avatar

Joined: 21 Mar 2017 13:50
Posts: 296
Location: Spb
Reply with quote
Shaos wrote:
Триада - 3 трита, а Трайт - 6 тритов

Вполне согласен.
Изначально склонялся в сторону 9-тритного трайта, но 6-тритный больше подходит для азбуки (кода символа) в которую влазит сразу цифры, математические и технические символы, русский, английский, греческий алфавиты, большинство национальных символов и еще на шикарную псевдографику хватает. Триада же очень удобна для работы с семисегментником. Для чего нужен триббл - да фиг знает, пока такую длину имеет опкод (5-тритная схема - триббл+триада).


29 Nov 2017 03:43
Profile
Doomed

Joined: 10 Mar 2012 17:21
Posts: 557
Location: РФ
Reply with quote
Вы знакомы с системой "эльбрус" или i432 ?
Там данные всегда были с тегами , некоторые абстракции были приближены к "железу" и многое в о.с было поддержано на аппаратном уровне.
Это разве плохо ?
И потом, если вот например в i51 семействе м.к. идут битовые вычисления, то в Acc безполезно лежат 7 битов из 8
, а тут в триаде "чтоб не пропадать добру" можно придать полезность двум тритам из трёх.

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

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


29 Nov 2017 03:49
Profile
Maniac
User avatar

Joined: 21 Mar 2017 13:50
Posts: 296
Location: Spb
Reply with quote
За Эльбрус читал, но особо не вникал..
petrenko wrote:
Там данные всегда были с тегами

Вроде у "Э" длинное машинное слово, которое содержит сразу несколько инструкций ассемблера и загружает максимальное количество вычислительных блоков, а в тегах указаны зависимости данных друг от друга, но не их тип. Или не так?

P.S. А про i423 на вики вон чо написано
Quote:
разработка была чрезвычайно сложной по сравнению с основным направлением процессоров, настолько сложной, что инженеры Intel были неспособны
:lol:


29 Nov 2017 04:52
Profile
Doomed

Joined: 10 Mar 2012 17:21
Posts: 557
Location: РФ
Reply with quote
Эльбрус работал с данными разной длины, это также было в тегах.
То есть попытка применить к данным неприменимую операцию или попытка смешать данные не давали результата, блокировались аппаратно ( ну если вдруг программист как то умудрялся всунуть не то в автокод или к.оп. исказился случайно )
В книге Пентковского это всё описано.

Теперь что касаемо темы.
Вот для сравнения команды "Сетунь" :
 
Программно доступны A , C , F , R , S , Ф1 , M
--x три оп.кода незадействованы
_________
-0- Считывание с МБ
_________
-00 Ввод в Ф1
_________
-0+ Запись на МБ
_________
-+- Нормализация
_________
-+0 Сдвиг | {Сдв (S) на (A)}=>(S)
_________
-++ Запись из S | (S)=>(A)
_________
0-- Сложение в F | (A)=>(F)
_________
0-0 Посылка в F | (A)=>(F)
_________
0-+ Сложение в C с посылкой | (A)+(C)=>(F)
_________
00- Запись из F | (F)=>(A)
_________
000 Безусловный переход | A=>(C)
_________
00+ Запись из C | (C)=>A
_________
0+- УсловныйПереход УП- | A=>(C)при
_________
0+0 УсловныйПереход УП0 | A=>(C)при
_________
0++ УсловныйПереход УП+ | A=>(C)при
_________
+-- "Останов"
_________
+-0 Поразрядное умножение | (A)«tmul»(S)=>(S)
_________
+-+ Посылка в R | (A)=>(R)
_________
+0- Вычитание в S | (S)-(A)=>(S)
_________
+00 Посылка в S | (A)=>(S)
_________
+0+ Сложение в S | (S)+(A)=>(S)
_________
++- Умножение1 | (A)+(S)*(R)=>(S)
_________
++0 Умножение2 | (S)>(R) ; (A)*(R)=>(S)
_________
+++ Умножение3 | (S)+(A)*(R)=>(S)



29 Nov 2017 05:08
Profile
Doomed

Joined: 08 Apr 2013 05:04
Posts: 443
Location: 213.247.249.139
Reply with quote
petrenko wrote:
И потом, если вот например в i51 семействе м.к. идут битовые вычисления, то в Acc безполезно лежат 7 битов из 8

8 из 8. Битовые операции -- с флагом переноса. А ещё бесполезно лежат все ячейки памяти, недоступные для битовых операций...
Ещё очень обидно, что когда происходит чтение 1 ячейки памяти (например ПЗУ), все остальные ячейки лежат бесполезным грузом, только место занимают и токи утечки увеличивают...
:lol:


29 Nov 2017 05:30
Profile
Doomed

Joined: 10 Mar 2012 17:21
Posts: 557
Location: РФ
Reply with quote
А вот СОГЛАСЕН !

( Да, там через C - это я что то как то художественно наврал, каюсь :econfused: )

Вы сейчас разнесли аргумент "давайте не будем, потому что избыточно" в щепки, просто замечательным образом. :kruto:

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


29 Nov 2017 05:38
Profile
Maniac
User avatar

Joined: 21 Mar 2017 13:50
Posts: 296
Location: Spb
Reply with quote
petrenko wrote:
Эльбрус работал с данными разной длины

У нас пока фиксированная длина оператора.
petrenko wrote:
попытка применить к данным неприменимую операцию или попытка смешать данные не давали результата,

Это можно отловить на стадии компиляции.
petrenko wrote:
уже и так есть избыточность, предлагаю превратить её

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

Если рассуждать над идеальным троичным процессором, то может создать такую тему отдельно? Я бы в ней с удовольствием высказал свои идеи, их есть у меня.


29 Nov 2017 13:18
Profile
Doomed

Joined: 10 Mar 2012 17:21
Posts: 557
Location: РФ
Reply with quote
AlexanderZh wrote:
... Если рассуждать над идеальным троичным процессором, то может создать такую тему отдельно? Я бы в ней с удовольствием высказал свои идеи, их есть у меня.

Да, сие вполне возможно : nedopc.org/forum/viewtopic.php?f=79&t=18526


02 Dec 2017 05:33
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 87 posts ]  Go to page Previous  1, 2, 3, 4, 5, 6

Who is online

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