Author |
Message |
haqreu
Maniac
Joined: 10 Mar 2017 06:30 Posts: 322
|
Товарищи, а можете мне аргументированно рассказать, зачем можно хотеть делать железки на троичной системе счисления? Заранее спасибо!
Поясню: я слышал некоторое количество аргументов, но ни один из них мне не кажется железобетонным. Давайте обсудим все аргументы, которые сможем вспомнить?
|
05 Jul 2018 13:13 |
|
 |
Shaos
Admin
Joined: 09 Jan 2003 00:22 Posts: 19314 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 21:47 |
|
 |
haqreu
Maniac
Joined: 10 Mar 2017 06:30 Posts: 322
|
Оптимальность считается по взятой с потолка функции качества. Что будет, если считать площадь кремния? Не вижу никаких неудобств в работе с доп. кодами. Я правильно понимаю, что речь идёт о числах с фиксированной запятой? А как реализовывать плавающую точку? Там же не получится такого финта ушами. Это не то же самое, что и пункт 1? Ну, это руками сложно, а в кремнии может быть примерно всё равно. Сомнительные недостатки, хотя да, человек чаще делит на два, нежели на 3. А что с помехоустойчивостью у троичных схем? А с быстродействием? С энергопотреблением?
|
05 Jul 2018 23:46 |
|
 |
Shaos
Admin
Joined: 09 Jan 2003 00:22 Posts: 19314 Location: Silicon Valley
|
Ну вроде у народа какие-то обоснования на этот счёт были Ну а я вижу - например чтобы поменять знак + на - в доп.коде надо сделать 2 действия: инвертировать и затем инкрементировать, а в сбалансированной троичности - просто инвертировать Да обычно реализовать - был у нас топика на эту тему Нет - первый пункт сугубо про систему счисления, а тут проводки считаем (у 10-ричной системы например будет ещё меньше проводков, но она непрактична) возможно Пока плохо 
|
06 Jul 2018 01:23 |
|
 |
haqreu
Maniac
Joined: 10 Mar 2017 06:30 Posts: 322
|
В студию! Ровно такое же неудобство, как и у поиска знака у троичного числа. Мы согласны с тем, что плавающую точку простым отбрасыванием разрядов будет не огрубить? Ровно как и с фиксированной точкой в двоичной системе - огрубление через отбрасывание лишних разрядов. Не вижу, где тут преимущество... Можешь показать обоснование, что проводов будет меньше? (Каких проводов? Для чего проводов?)
|
06 Jul 2018 07:30 |
|
 |
haqreu
Maniac
Joined: 10 Mar 2017 06:30 Posts: 322
|
А теперь в студию следующий документ (смотреть секцию 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 08:06 |
|
 |
Shaos
Admin
Joined: 09 Jan 2003 00:22 Posts: 19314 Location: Silicon Valley
|
Проводов для параллельной передачи того же самого объёма данных
|
06 Jul 2018 11:23 |
|
 |
Shaos
Admin
Joined: 09 Jan 2003 00:22 Posts: 19314 Location: Silicon Valley
|
Ну если мы отбрасываем не пересчитвая экспоненту, то тоже самое - простое отбрасывание
|
06 Jul 2018 11:24 |
|
 |
haqreu
Maniac
Joined: 10 Mar 2017 06:30 Posts: 322
|
В двоичной то же самое ведь?
|
06 Jul 2018 11:26 |
|
 |
haqreu
Maniac
Joined: 10 Mar 2017 06:30 Posts: 322
|
Ок. То есть, между АЛУ и памятью проводов нужно меньше. А сколько проводов нужно внутри самой памяти?
|
06 Jul 2018 11:26 |
|
 |
Shaos
Admin
Joined: 09 Jan 2003 00:22 Posts: 19314 Location: Silicon Valley
|
В двоичной округлять надо - если отброшенное больше или равно половине (старший отброшенный бит был единичкой), то надо прибавлять единичку к оставленному, чтобы погрешность меньше была P.S. А если число отрицательное (в дополнительном коде), то надо не прибавлять единичку, а вычитать, причём если старший отброшенный бит был не единичкой, а нулём...
|
06 Jul 2018 11:32 |
|
 |
Lavr
Supreme God
Joined: 21 Oct 2009 09:08 Posts: 7777 Location: Россия
|
У меня тут вот какой вопрос возник: а какие логические функции троичной логики дают какое-либо преимущество в рассмотрении задач на логику?
Я к тому что с арифметикой - всё понятно и бесспорно. Классическую "задачу весов" троичный процессор должен уметь решать лучше двоичного.
Известно, что любую логическую функции троичной логики можно реализовать, имея в наборе MIN или MAX и одно из циклических отрицаний. К примеру, в PDP-8 из двоичных логических функций были только AND и NOT, поскольку любая двоичная логическая функция через AND и NOT реализуется. Но я считаю, что пожадничали они: OR и XOR можно было ввести аппаратно - очень "некавайна" их программная реализация при наличии базовой памяти всего в 4096 слов.
Собственно, если четко сформулировать вопрос: какие логические функции троичной логики желательно иметь в троичном CPU, причем какие сугубо троичные предпочтительны?
_________________ iLavr
|
12 Jan 2019 02:54 |
|
 |
JeNNeR
Fanat
Joined: 18 Nov 2014 10:17 Posts: 53 Location: Отсюда
|
Сугубо троичные - это сдвиг вверх (NOP -> OPN), сдвиг вниз (NOP -> PNO), инверсия (NOP -> PON). Ну еще всякие жесткие и мягкие сравнения, но они уже более похожи на MIN/MAX. Типа сравнений (NOP -> NNP, NOP -> PNN, NOP -> NPN)
|
12 Jan 2019 05:57 |
|
 |
AlexanderZh
Devil
Joined: 21 Mar 2017 13:50 Posts: 678 Location: Spb
|
Для себя составил такую табличку функций. MIN, MAX - понятно. Нужны обязательно. ADD - сложение (вычитание). Перенос (заём) может отображаться флагом. Вроде нужна. MUL - потритовое умножение, надобность под вопросом. ANY - любое значение кроме неопределенности (0). Надобность под вопросом. CON - перенос при сложении, если есть флаг то вроде не нужно. EQU - если входные данные совпадают - true (+), не совпадают - false (-). Еще две функции пока не обозвал никак. Надобность тоже не определил.
Унарные (в таблице нет): INV - инвертирование. SHU - сдвиг вверх (0>+, +>-, ->0) SHD - сдвиг вниз (0>-, +>0, ->+) эти нужны ну и некоторые специфические унарные, столкнулся с ними при переводе из троичной системы в двоичную: EQO - Проверка на "0". На выходе "+" если вход "0", "0" в противном случае (использую) EQN, EQP - функции аналогичны, не понадобились, и вряд ли нужны. Но чем Куликов не шутит, может понадобятся ещё.
|
12 Jan 2019 08:11 |
|
 |
JeNNeR
Fanat
Joined: 18 Nov 2014 10:17 Posts: 53 Location: Отсюда
|
Ну тут уже раздолье. Троичных функций с одним аргументом 27 штук, с двумя аргументами уже 19683. Так что тут можно подобрать практически любую.
|
12 Jan 2019 08:33 |
|
|