Преимущества (и недостатки) троичной системы перед двоичной

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

Moderator: haqreu

haqreu
Maniac
Posts: 318
Joined: 10 Mar 2017 05:30

Преимущества (и недостатки) троичной системы перед двоичной

Post by haqreu »

Товарищи, а можете мне аргументированно рассказать, зачем можно хотеть делать железки на троичной системе счисления? Заранее спасибо!

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

Re: Преимущества (и недостатки) троичной системы перед двоич

Post by Shaos »

У нас уже была похожая тема: Тринарное исчисление против бинарного
Только она ушла далеко в сторону и я её прикрыл ;)

Из того, что сразу же приходит в голову на тему преимуществ сбалансированной троичности:
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... : )
Я тут за главного - если что шлите мыло на me собака shaos точка net
haqreu
Maniac
Posts: 318
Joined: 10 Mar 2017 05:30

Re: Преимущества (и недостатки) троичной системы перед двоич

Post by haqreu »

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.

А что с помехоустойчивостью у троичных схем? А с быстродействием? С энергопотреблением?
User avatar
Shaos
Admin
Posts: 24080
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Преимущества (и недостатки) троичной системы перед двоич

Post by Shaos »

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.

А что с помехоустойчивостью у троичных схем? А с быстродействием? С энергопотреблением?
Пока плохо :)
Я тут за главного - если что шлите мыло на me собака shaos точка net
haqreu
Maniac
Posts: 318
Joined: 10 Mar 2017 05:30

Re: Преимущества (и недостатки) троичной системы перед двоич

Post by haqreu »

Shaos wrote:Ну вроде у народа какие-то обоснования на этот счёт были
В студию!
Shaos wrote: Ну а я вижу - например чтобы поменять знак + на - в доп.коде надо сделать 2 действия: инвертировать и затем инкрементировать, а в сбалансированной троичности - просто инвертировать
Ровно такое же неудобство, как и у поиска знака у троичного числа.
Shaos wrote: Да обычно реализовать - был у нас топика на эту тему
Мы согласны с тем, что плавающую точку простым отбрасыванием разрядов будет не огрубить? Ровно как и с фиксированной точкой в двоичной системе - огрубление через отбрасывание лишних разрядов. Не вижу, где тут преимущество...


Shaos wrote: Нет - первый пункт сугубо про систему счисления, а тут проводки считаем (у 10-ричной системы например будет ещё меньше проводков, но она непрактична)
Можешь показать обоснование, что проводов будет меньше? (Каких проводов? Для чего проводов?)
haqreu
Maniac
Posts: 318
Joined: 10 Mar 2017 05:30

Re: Преимущества (и недостатки) троичной системы перед двоич

Post by haqreu »

Shaos wrote:
haqreu wrote:
Shaos wrote: 1) 3 ближе к самому оптимальному основанию для систем счисления e нежели 2
Оптимальность считается по взятой с потолка функции качества. Что будет, если считать площадь кремния?
Ну вроде у народа какие-то обоснования на этот счёт были
А теперь в студию следующий документ (смотреть секцию 6-7, страница 84):
http://bitsavers.trailing-edge.com/pdf/ ... s_1950.pdf

Let N = rn represent a fair estimate of the number of tubes required in the system
Итак, эта функция была введена для подсчёта ламп в кольцевом счётчике, который использовался для представления чисел в любой [целочисленной] базе.

Ну и читаем до конца:
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.
Кто приведёт какие-нибудь дополнительные аргументы в пользу использования именно этой функции качества для оценки экономичности системы счисления?
User avatar
Shaos
Admin
Posts: 24080
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Преимущества (и недостатки) троичной системы перед двоич

Post by Shaos »

haqreu wrote:
Shaos wrote: Нет - первый пункт сугубо про систему счисления, а тут проводки считаем (у 10-ричной системы например будет ещё меньше проводков, но она непрактична)
Можешь показать обоснование, что проводов будет меньше? (Каких проводов? Для чего проводов?)
Проводов для параллельной передачи того же самого объёма данных
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24080
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Преимущества (и недостатки) троичной системы перед двоич

Post by Shaos »

haqreu wrote: Мы согласны с тем, что плавающую точку простым отбрасыванием разрядов будет не огрубить?
Ну если мы отбрасываем не пересчитвая экспоненту, то тоже самое - простое отбрасывание
Я тут за главного - если что шлите мыло на me собака shaos точка net
haqreu
Maniac
Posts: 318
Joined: 10 Mar 2017 05:30

Re: Преимущества (и недостатки) троичной системы перед двоич

Post by haqreu »

Shaos wrote:Ну если мы отбрасываем не пересчитвая экспоненту, то тоже самое - простое отбрасывание
В двоичной то же самое ведь?
haqreu
Maniac
Posts: 318
Joined: 10 Mar 2017 05:30

Re: Преимущества (и недостатки) троичной системы перед двоич

Post by haqreu »

Shaos wrote:Проводов для параллельной передачи того же самого объёма данных
Ок. То есть, между АЛУ и памятью проводов нужно меньше. А сколько проводов нужно внутри самой памяти?
User avatar
Shaos
Admin
Posts: 24080
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Преимущества (и недостатки) троичной системы перед двоич

Post by Shaos »

haqreu wrote:
Shaos wrote:Ну если мы отбрасываем не пересчитвая экспоненту, то тоже самое - простое отбрасывание
В двоичной то же самое ведь?
В двоичной округлять надо - если отброшенное больше или равно половине (старший отброшенный бит был единичкой), то надо прибавлять единичку к оставленному, чтобы погрешность меньше была

P.S. А если число отрицательное (в дополнительном коде), то надо не прибавлять единичку, а вычитать, причём если старший отброшенный бит был не единичкой, а нулём...
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Преимущества (и недостатки) троичной системы перед двоич

Post by Lavr »

У меня тут вот какой вопрос возник: а какие логические функции троичной логики дают какое-либо
преимущество в рассмотрении задач на логику
?

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

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

Собственно, если четко сформулировать вопрос: какие логические функции троичной логики желательно
иметь в троичном CPU, причем какие сугубо троичные предпочтительны?
iLavr
User avatar
JeNNeR
Fanat
Posts: 52
Joined: 18 Nov 2014 09:17
Location: Отсюда

Re: Преимущества (и недостатки) троичной системы перед двоич

Post by JeNNeR »

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

Re: Преимущества (и недостатки) троичной системы перед двоич

Post by JeNNeR »

Ну тут уже раздолье.
Троичных функций с одним аргументом 27 штук, с двумя аргументами уже 19683.
Так что тут можно подобрать практически любую.
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Re: какие логические функции троичной логики желательны

Post by Lavr »

AlexanderZh wrote:Для себя составил такую табличку функций.
...
Что-то, кажется мне, у вас мой любимый "Троичный XOR" отсутствует среди таблички функций.
А мне он представлятся весьма и весьма полезным...
iLavr