Author |
Message |
haqreu
Maniac
Joined: 10 Mar 2017 05:30 Posts: 318
|
Товарищи, а можете мне аргументированно рассказать, зачем можно хотеть делать железки на троичной системе счисления? Заранее спасибо!
Поясню: я слышал некоторое количество аргументов, но ни один из них мне не кажется железобетонным. Давайте обсудим все аргументы, которые сможем вспомнить?
|
05 Jul 2018 12:13 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 23298 Location: Silicon Valley
|
У нас уже была похожая тема: Тринарное исчисление против бинарногоТолько она ушла далеко в сторону и я её прикрыл Из того, что сразу же приходит в голову на тему преимуществ сбалансированной троичности: 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... : )
|
05 Jul 2018 20:47 |
|
|
haqreu
Maniac
Joined: 10 Mar 2017 05:30 Posts: 318
|
Оптимальность считается по взятой с потолка функции качества. Что будет, если считать площадь кремния? Не вижу никаких неудобств в работе с доп. кодами. Я правильно понимаю, что речь идёт о числах с фиксированной запятой? А как реализовывать плавающую точку? Там же не получится такого финта ушами. Это не то же самое, что и пункт 1? Ну, это руками сложно, а в кремнии может быть примерно всё равно. Сомнительные недостатки, хотя да, человек чаще делит на два, нежели на 3. А что с помехоустойчивостью у троичных схем? А с быстродействием? С энергопотреблением?
|
05 Jul 2018 22:46 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 23298 Location: Silicon Valley
|
Ну вроде у народа какие-то обоснования на этот счёт были Ну а я вижу - например чтобы поменять знак + на - в доп.коде надо сделать 2 действия: инвертировать и затем инкрементировать, а в сбалансированной троичности - просто инвертировать Да обычно реализовать - был у нас топика на эту тему Нет - первый пункт сугубо про систему счисления, а тут проводки считаем (у 10-ричной системы например будет ещё меньше проводков, но она непрактична) возможно Пока плохо
|
06 Jul 2018 00:23 |
|
|
haqreu
Maniac
Joined: 10 Mar 2017 05:30 Posts: 318
|
В студию! Ровно такое же неудобство, как и у поиска знака у троичного числа. Мы согласны с тем, что плавающую точку простым отбрасыванием разрядов будет не огрубить? Ровно как и с фиксированной точкой в двоичной системе - огрубление через отбрасывание лишних разрядов. Не вижу, где тут преимущество... Можешь показать обоснование, что проводов будет меньше? (Каких проводов? Для чего проводов?)
|
06 Jul 2018 06:30 |
|
|
haqreu
Maniac
Joined: 10 Mar 2017 05:30 Posts: 318
|
А теперь в студию следующий документ (смотреть секцию 6-7, страница 84): http://bitsavers.trailing-edge.com/pdf/ ... s_1950.pdfИтак, эта функция была введена для подсчёта ламп в кольцевом счётчике, который использовался для представления чисел в любой [целочисленной] базе. Ну и читаем до конца: | | | | 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 07:06 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 23298 Location: Silicon Valley
|
Проводов для параллельной передачи того же самого объёма данных
|
06 Jul 2018 10:23 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 23298 Location: Silicon Valley
|
Ну если мы отбрасываем не пересчитвая экспоненту, то тоже самое - простое отбрасывание
|
06 Jul 2018 10:24 |
|
|
haqreu
Maniac
Joined: 10 Mar 2017 05:30 Posts: 318
|
В двоичной то же самое ведь?
|
06 Jul 2018 10:26 |
|
|
haqreu
Maniac
Joined: 10 Mar 2017 05:30 Posts: 318
|
Ок. То есть, между АЛУ и памятью проводов нужно меньше. А сколько проводов нужно внутри самой памяти?
|
06 Jul 2018 10:26 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 23298 Location: Silicon Valley
|
В двоичной округлять надо - если отброшенное больше или равно половине (старший отброшенный бит был единичкой), то надо прибавлять единичку к оставленному, чтобы погрешность меньше была P.S. А если число отрицательное (в дополнительном коде), то надо не прибавлять единичку, а вычитать, причём если старший отброшенный бит был не единичкой, а нулём...
|
06 Jul 2018 10:32 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
У меня тут вот какой вопрос возник: а какие логические функции троичной логики дают какое-либо преимущество в рассмотрении задач на логику?
Я к тому что с арифметикой - всё понятно и бесспорно. Классическую "задачу весов" троичный процессор должен уметь решать лучше двоичного.
Известно, что любую логическую функции троичной логики можно реализовать, имея в наборе MIN или MAX и одно из циклических отрицаний. К примеру, в PDP-8 из двоичных логических функций были только AND и NOT, поскольку любая двоичная логическая функция через AND и NOT реализуется. Но я считаю, что пожадничали они: OR и XOR можно было ввести аппаратно - очень "некавайна" их программная реализация при наличии базовой памяти всего в 4096 слов.
Собственно, если четко сформулировать вопрос: какие логические функции троичной логики желательно иметь в троичном CPU, причем какие сугубо троичные предпочтительны?
_________________ iLavr
|
12 Jan 2019 01:54 |
|
|
JeNNeR
Fanat
Joined: 18 Nov 2014 09:17 Posts: 52 Location: Отсюда
|
Сугубо троичные - это сдвиг вверх (NOP -> OPN), сдвиг вниз (NOP -> PNO), инверсия (NOP -> PON). Ну еще всякие жесткие и мягкие сравнения, но они уже более похожи на MIN/MAX. Типа сравнений (NOP -> NNP, NOP -> PNN, NOP -> NPN)
|
12 Jan 2019 04:57 |
|
|
JeNNeR
Fanat
Joined: 18 Nov 2014 09:17 Posts: 52 Location: Отсюда
|
Ну тут уже раздолье. Троичных функций с одним аргументом 27 штук, с двумя аргументами уже 19683. Так что тут можно подобрать практически любую.
|
12 Jan 2019 07:33 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Что-то, кажется мне, у вас мой любимый " Троичный XOR" отсутствует среди таблички функций. А мне он представлятся весьма и весьма полезным...
_________________ iLavr
|
12 Jan 2019 15:57 |
|