nedoPC.org

Community of electronics hobbyists established in 2002

...
Atom Feed | View unanswered posts | View active topics It is currently 18 Jan 2019 17:43



Reply to topic  [ 19 posts ]  Go to page 1, 2  Next
Преимущества (и недостатки) троичной системы перед двоичной 
Author Message
Maniac

Joined: 10 Mar 2017 06:30
Posts: 277
Reply with quote
Товарищи, а можете мне аргументированно рассказать, зачем можно хотеть делать железки на троичной системе счисления? Заранее спасибо!

Поясню: я слышал некоторое количество аргументов, но ни один из них мне не кажется железобетонным. Давайте обсудим все аргументы, которые сможем вспомнить?


05 Jul 2018 13:13
Profile
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 17308
Location: Colorado
Reply with quote
У нас уже была похожая тема: Тринарное исчисление против бинарного
Только она ушла далеко в сторону и я её прикрыл ;)

Из того, что сразу же приходит в голову на тему преимуществ сбалансированной троичности:
1) 3 ближе к самому оптимальному основанию для систем счисления e нежели 2
2) для представления отрицательных чисел не надо городить никаких "дополнительных кодов"
3) округление делается через простое отбрасывание ненужных разрядов (без всяких проверок на >=0.5 и т.д.)
4) для передачи паралелльных данных надо в log 3 / log 2 = 1.5849625007211561814537389439478 раз меньше проводов ;)

Из недостатков (на мой взгляд):
1) для проверки знака числа надо сделать больше телодвижений (найти самый старший ненулевой разряд)
2) нет простых способов деления на 2 и умножения на 2 (зато есть деление и умножение на 3 через сдвиг разрядов : )
3) число 0.5 невозможно представить конечным числом троичных разрядов (зато можно 0.33333... : )

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


05 Jul 2018 21:47
Profile WWW
Maniac

Joined: 10 Mar 2017 06:30
Posts: 277
Reply with quote
Shaos wrote:
1) 3 ближе к самому оптимальному основанию для систем счисления e нежели 2

Оптимальность считается по взятой с потолка функции качества. Что будет, если считать площадь кремния?

Shaos wrote:
2) для представления отрицательных чисел не надо городить никаких "дополнительных кодов"

Не вижу никаких неудобств в работе с доп. кодами.

Shaos wrote:
3) округление делается через простое отбрасывание ненужных разрядов (без всяких проверок на >=0.5 и т.д.)

Я правильно понимаю, что речь идёт о числах с фиксированной запятой? А как реализовывать плавающую точку? Там же не получится такого финта ушами.

Shaos wrote:
4) для передачи паралелльных данных надо в log 3 / log 2 = 1.5849625007211561814537389439478 раз меньше проводов ;)

Это не то же самое, что и пункт 1?


Shaos wrote:
Из недостатков (на мой взгляд):
1) для проверки знака числа надо сделать больше телодвижений (найти самый старший ненулевой разряд)

Ну, это руками сложно, а в кремнии может быть примерно всё равно.

Shaos wrote:
2) нет простых способов деления на 2 и умножения на 2 (зато есть деление и умножение на 3 через сдвиг разрядов : )
3) число 0.5 невозможно представить конечным числом троичных разрядов (зато можно 0.33333... : )

Сомнительные недостатки, хотя да, человек чаще делит на два, нежели на 3.

А что с помехоустойчивостью у троичных схем? А с быстродействием? С энергопотреблением?


05 Jul 2018 23:46
Profile
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 17308
Location: Colorado
Reply with quote
haqreu wrote:
Shaos wrote:
1) 3 ближе к самому оптимальному основанию для систем счисления e нежели 2

Оптимальность считается по взятой с потолка функции качества. Что будет, если считать площадь кремния?


Ну вроде у народа какие-то обоснования на этот счёт были

haqreu wrote:
Shaos wrote:
2) для представления отрицательных чисел не надо городить никаких "дополнительных кодов"

Не вижу никаких неудобств в работе с доп. кодами.


Ну а я вижу - например чтобы поменять знак + на - в доп.коде надо сделать 2 действия: инвертировать и затем инкрементировать, а в сбалансированной троичности - просто инвертировать

haqreu wrote:
Shaos wrote:
3) округление делается через простое отбрасывание ненужных разрядов (без всяких проверок на >=0.5 и т.д.)

Я правильно понимаю, что речь идёт о числах с фиксированной запятой? А как реализовывать плавающую точку? Там же не получится такого финта ушами.


Да обычно реализовать - был у нас топика на эту тему

haqreu wrote:
Shaos wrote:
4) для передачи паралелльных данных надо в log 3 / log 2 = 1.5849625007211561814537389439478 раз меньше проводов ;)

Это не то же самое, что и пункт 1?


Нет - первый пункт сугубо про систему счисления, а тут проводки считаем (у 10-ричной системы например будет ещё меньше проводков, но она непрактична)

haqreu wrote:
Shaos wrote:
Из недостатков (на мой взгляд):
1) для проверки знака числа надо сделать больше телодвижений (найти самый старший ненулевой разряд)

Ну, это руками сложно, а в кремнии может быть примерно всё равно.


возможно

haqreu wrote:
Shaos wrote:
2) нет простых способов деления на 2 и умножения на 2 (зато есть деление и умножение на 3 через сдвиг разрядов : )
3) число 0.5 невозможно представить конечным числом троичных разрядов (зато можно 0.33333... : )

Сомнительные недостатки, хотя да, человек чаще делит на два, нежели на 3.

А что с помехоустойчивостью у троичных схем? А с быстродействием? С энергопотреблением?

Пока плохо :)

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


06 Jul 2018 01:23
Profile WWW
Maniac

Joined: 10 Mar 2017 06:30
Posts: 277
Reply with quote
Shaos wrote:
Ну вроде у народа какие-то обоснования на этот счёт были

В студию!

Shaos wrote:
Ну а я вижу - например чтобы поменять знак + на - в доп.коде надо сделать 2 действия: инвертировать и затем инкрементировать, а в сбалансированной троичности - просто инвертировать


Ровно такое же неудобство, как и у поиска знака у троичного числа.

Shaos wrote:
Да обычно реализовать - был у нас топика на эту тему


Мы согласны с тем, что плавающую точку простым отбрасыванием разрядов будет не огрубить? Ровно как и с фиксированной точкой в двоичной системе - огрубление через отбрасывание лишних разрядов. Не вижу, где тут преимущество...



Shaos wrote:
Нет - первый пункт сугубо про систему счисления, а тут проводки считаем (у 10-ричной системы например будет ещё меньше проводков, но она непрактична)


Можешь показать обоснование, что проводов будет меньше? (Каких проводов? Для чего проводов?)


06 Jul 2018 07:30
Profile
Maniac

Joined: 10 Mar 2017 06:30
Posts: 277
Reply with quote
Shaos wrote:
haqreu wrote:
Shaos wrote:
1) 3 ближе к самому оптимальному основанию для систем счисления e нежели 2

Оптимальность считается по взятой с потолка функции качества. Что будет, если считать площадь кремния?


Ну вроде у народа какие-то обоснования на этот счёт были


А теперь в студию следующий документ (смотреть секцию 6-7, страница 84):
http://bitsavers.trailing-edge.com/pdf/ ... s_1950.pdf


Quote:
Let N = rn represent a fair estimate of the number of tubes required in the system

Итак, эта функция была введена для подсчёта ламп в кольцевом счётчике, который использовался для представления чисел в любой [целочисленной] базе.

Ну и читаем до конца:

Quote:
Under these assumptions, the radix 3, on the average, is the most economical choice, closely followed by radices 2 and 4. These assumptions are, of course, only approximately valid, and the choice of 2 as a radix is frequently justified on more complete analysis. It should be noted that, even with the optimistic assumption that 10 triodes will yield a reliable decimal ring, radix 10 leads to about one and one-half times the complexity of radix 2, 3, or 4. This is probably significant despite the shallow nature of the argument used here.


Кто приведёт какие-нибудь дополнительные аргументы в пользу использования именно этой функции качества для оценки экономичности системы счисления?


06 Jul 2018 08:06
Profile
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 17308
Location: Colorado
Reply with quote
haqreu wrote:
Shaos wrote:
Нет - первый пункт сугубо про систему счисления, а тут проводки считаем (у 10-ричной системы например будет ещё меньше проводков, но она непрактична)


Можешь показать обоснование, что проводов будет меньше? (Каких проводов? Для чего проводов?)

Проводов для параллельной передачи того же самого объёма данных

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


06 Jul 2018 11:23
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 17308
Location: Colorado
Reply with quote
haqreu wrote:
Мы согласны с тем, что плавающую точку простым отбрасыванием разрядов будет не огрубить?

Ну если мы отбрасываем не пересчитвая экспоненту, то тоже самое - простое отбрасывание

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


06 Jul 2018 11:24
Profile WWW
Maniac

Joined: 10 Mar 2017 06:30
Posts: 277
Reply with quote
Shaos wrote:
Ну если мы отбрасываем не пересчитвая экспоненту, то тоже самое - простое отбрасывание


В двоичной то же самое ведь?


06 Jul 2018 11:26
Profile
Maniac

Joined: 10 Mar 2017 06:30
Posts: 277
Reply with quote
Shaos wrote:
Проводов для параллельной передачи того же самого объёма данных


Ок. То есть, между АЛУ и памятью проводов нужно меньше. А сколько проводов нужно внутри самой памяти?


06 Jul 2018 11:26
Profile
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 17308
Location: Colorado
Reply with quote
haqreu wrote:
Shaos wrote:
Ну если мы отбрасываем не пересчитвая экспоненту, то тоже самое - простое отбрасывание


В двоичной то же самое ведь?


В двоичной округлять надо - если отброшенное больше или равно половине (старший отброшенный бит был единичкой), то надо прибавлять единичку к оставленному, чтобы погрешность меньше была

P.S. А если число отрицательное (в дополнительном коде), то надо не прибавлять единичку, а вычитать, причём если старший отброшенный бит был не единичкой, а нулём...

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


06 Jul 2018 11:32
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
У меня тут вот какой вопрос возник: а какие логические функции троичной логики дают какое-либо
преимущество в рассмотрении задач на логику
?

Я к тому что с арифметикой - всё понятно и бесспорно. Классическую "задачу весов" троичный процессор
должен уметь решать лучше двоичного.

Известно, что любую логическую функции троичной логики можно реализовать, имея в наборе
MIN или MAX и одно из циклических отрицаний.
К примеру, в PDP-8 из двоичных логических функций были только AND и NOT, поскольку
любая двоичная логическая функция через AND и NOT реализуется.
Но я считаю, что пожадничали они: OR и XOR можно было ввести аппаратно - очень "некавайна" их
программная реализация при наличии базовой памяти всего в 4096 слов.

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

_________________
iLavr


12 Jan 2019 02:54
Profile
Novelist
User avatar

Joined: 18 Nov 2014 10:17
Posts: 46
Location: Отсюда
Reply with quote
Сугубо троичные - это сдвиг вверх (NOP -> OPN), сдвиг вниз (NOP -> PNO), инверсия (NOP -> PON).
Ну еще всякие жесткие и мягкие сравнения, но они уже более похожи на MIN/MAX.
Типа сравнений (NOP -> NNP, NOP -> PNN, NOP -> NPN)


12 Jan 2019 05:57
Profile
Doomed
User avatar

Joined: 21 Mar 2017 13:50
Posts: 384
Location: Spb
Reply with quote
Для себя составил такую табличку функций.
MIN, MAX - понятно. Нужны обязательно.
ADD - сложение (вычитание). Перенос (заём) может отображаться флагом. Вроде нужна.
MUL - потритовое умножение, надобность под вопросом.
ANY - любое значение кроме неопределенности (0). Надобность под вопросом.
CON - перенос при сложении, если есть флаг то вроде не нужно.
EQU - если входные данные совпадают - true (+), не совпадают - false (-).
Еще две функции пока не обозвал никак. Надобность тоже не определил.

Унарные (в таблице нет):
INV - инвертирование.
SHU - сдвиг вверх (0>+, +>-, ->0)
SHD - сдвиг вниз (0>-, +>0, ->+)
эти нужны
ну и некоторые специфические унарные, столкнулся с ними при переводе из троичной системы в двоичную:
EQO - Проверка на "0". На выходе "+" если вход "0", "0" в противном случае (использую)
EQN, EQP - функции аналогичны, не понадобились, и вряд ли нужны. Но чем Куликов не шутит, может понадобятся ещё.


Attachments:
Функции.png
Функции.png [ 27.72 KiB | Viewed 67 times ]
12 Jan 2019 08:11
Profile
Novelist
User avatar

Joined: 18 Nov 2014 10:17
Posts: 46
Location: Отсюда
Reply with quote
Ну тут уже раздолье.
Троичных функций с одним аргументом 27 штук, с двумя аргументами уже 19683.
Так что тут можно подобрать практически любую.


12 Jan 2019 08:33
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 19 posts ]  Go to page 1, 2  Next

Who is online

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