Чому бінарні, а не трикомпонентні обчислення? [зачинено]


79

Хіба об’єкт із трьома станами відразу не здатний вмістити більше інформації та обробляти більші значення? Я знаю, що в даний час процесори використовують масивні мережі XOR-воріт, і їх потрібно буде переробити.

Оскільки ми знаходимося на 64 біті (ми можемо представити 2 ^ 63 можливі стани), обчислюючи еквівалент трійкового покоління може підтримувати число з ще 30 десятками журналів (3 ^ 63-2 ^ 63).

Думаю, виявити різницю потенціалів між +1 та 0 так само легко, як і від -1 до 0.

Чи може якась складність апаратного забезпечення, енергоспоживання або щільність мікросхеми компенсувати будь-який приріст у сховищі та обчислювальній потужності?


1
64 біти -> 2 ^ 64, 64 трити -> 3 ^ 64, а не 63
Оскар Ског

Відповіді:


66
  • Набагато важче побудувати компоненти, які використовують більше двох станів / рівнів / що завгодно. Наприклад, транзистори, що використовуються в логіці, або закриті і взагалі не проводять, або широко відкриті. Якщо їх напіввідкрити, знадобиться набагато більше точності та використання додаткової потужності. Тим не менше, іноді для упаковки більшої кількості даних використовується більше станів, але рідко (наприклад, сучасна флеш-пам'ять NAND, модуляція в модемах).

  • Якщо ви використовуєте більше двох станів, ви повинні бути сумісними з двійковими файлами, оскільки решта світу використовує його. Виходить три, оскільки для перетворення в двійковий формат потрібно буде дороге множення або ділення з залишком. Замість цього ви переходите безпосередньо до чотирьох або вищої сили двох.

Це практичні причини, чому цього не роблять, але математично цілком можливо побудувати комп’ютер за потрійною логікою.


9
ми тут не говоримо про сучасний час. На той час, коли розглядалися трикомпонентні комп'ютери, решта світу все ще (також) працювала на бінарних комп'ютерах
paweloque

1
Так, сучасне обладнання буде проблемою, але саме тому потрібне нове обладнання, так, спочатку воно буде дорогим, але дуже схоже на поточну ціну апаратного забезпечення із падінням з часом. Як інший, хто глибоко пов’язаний з цією темою, я кажу, що немає вагомих причин, щоб не робити цього.
ars265

2
Також: Якщо біт - це фрагмент двійкових даних, якою би була частина трійкових даних ...?
aaron-bond

4
@Askan Досить впевнений, що це відоме як трит.
Riking

"дорогий" ?? Здається, ви мікрооптимізуєте.
Квіп Йоверт

38

Тут багато дезінформації. Бінарний має простий перемикач увімкнення / вимкнення. Тринарний / тернарний може використовувати один із 2 режимів: Збалансований ака -1, 0, +1 або незбалансований 0, 1, 2, але не просто ввімкнений чи вимкнений, або, більш правильно, має 2 стани "увімкнення".

З розширенням волоконної оптики та експансивного апаратного забезпечення трикомпонентний пристрій насправді призведе нас до набагато експансивнішого та швидшого стану за набагато нижчих витрат. Сучасне кодування все ще може використовуватися (подібно до того, як 32-розрядне програмне забезпечення все ще може використовуватися на 64-розрядному обладнанні) у поєднанні з новішими потрійними кодами, принаймні спочатку. Просто потрібно раннє обладнання, щоб перевірити, яка інформація надходить, або програмне забезпечення, яке можна оголосити заздалегідь, якщо це трохи чи тривожно. Код може надсилатися одночасно із 3 частин замість сучасних 2 для однакової або меншої потужності.

За допомогою волоконно-оптичного обладнання замість сучасного двійкового процесу ввімкнення / вимкнення це визначалося б як 0 = вимкнено, а решта 2 перемикача - як ортогональні поляризації світла. Що стосується безпеки, то насправді це можна зробити набагато безпечнішим для окремої людини, оскільки для кожного ПК чи навіть користувача встановлені певні поляризаційні "специфікації", які мають бути надіслані / отримані між користувачем та призначенням. Те саме стосується "воріт" з іншим обладнанням. Вони не повинні бути більшими, просто у вас є можливість 3 можливості замість 2.

Існували навіть деякі теорії і, можливо, початок деяких тестів на ефект Джозефсона, які дозволяли б мати потрійні комірки пам'яті, використовуючи циркулюючі надпровідні струми, або за годинниковою стрілкою, проти годинникової стрілки, або вимкнені.

Якщо порівнювати безпосередньо, Ternary є цілочисельною базою з найвищою економікою радіусу, за якою слідують двійкові та четвертинні. Навіть деякі сучасні системи використовують тип потрійної логіки, він же SQL, який реалізує потрійну логіку як засіб обробки вмісту полів NULL. SQL використовує NULL для представлення відсутніх даних у базі даних. Якщо поле не містить визначеного значення, SQL вважає, що це означає, що фактичне значення існує, але що значення на даний момент не реєструється в базі даних. Зверніть увагу, що відсутнє значення - це не те саме, що чисельне значення нуля, чи значення рядка нульової довжини. Порівняння чогось із NULL - навіть іншого NULL - призводить до НЕВІДОМОГО стану істини. Наприклад, вираз SQL "City = 'Paris'" вирішує значення FALSE для запису з "Chicago" у полі City, але він вирішує UNKNOWN для запису з полем NULL City. Іншими словами, для SQL невизначене поле представляє потенційно будь-яке можливе значення: відсутнє місто може представляти або не представляти Париж. Тут використовується тринадна логіка з сучасними двійковими системами, хоча і грубими.


Це пізня відповідь, яка, мабуть, нікому не принесе користі, але я стверджую, що ваше порівняння бінарного / тринарного переходу, аналогічного 32-бітному / 64-бітному, є хибним. В останньому випадку нічого по-справжньому не змінилося щодо функції апаратного забезпечення на фундаментальному рівні; інструкція mov eax, ebxбуде робити те саме саме в будь-якому наборі інструкцій. З огляду на різницю між двійковим та двійковим способом, це вже не є обґрунтованою гарантією: трикутний регістр може виглядати дуже різним від двійкового реєстру; mov eax ebxможе не означати одне і те ж для обох кодувань.
bionicOnion

1
@bionicOnion: Я не бачу проблем із зворотною сумісністю. Двійковий код 89 d8в 0/1 біта залишиться незмінним у тритах, але ви отримаєте набагато більше кодів операцій, де може бути будь-який з цих 16 тритів -1. І це не той самий код роботи.
Jongware

що таке аспект швидкості пам'яті?
Зешан Саджид,

@RadLexus Я б припустив, що він дивиться на апаратний аспект, а не на програмний. Трійковий процесор, або, принаймні, ранній, швидше за все, мав би різний бінарний і трійковий режими, і йому потрібно було б перемикатися між ними. Це загрожує певними накладними витратами, навіть якщо це може бути не так вже й багато. Крім того, залежно від того, як він розроблений, процес переміщення даних у трійковий регістр цілком може відрізнятися від процесу переміщення даних у двійковий; якщо так, ми втратимо гарантію, що mov eax, ebxзавжди виконує той самий процес.
Justin Time - поновити Моніку

"Тернар - це цілочисельна база з найвищим економічним коефіцієнтом радіусу, за яким слідують двійкові та четвертинні". Якщо вся система не є трикомпонентною, прибутку немає і лише чистий збиток.
Координатор

16

Звичайно, ми могли б вмістити більше даних на біт, як і наша десяткова система числення може вмістити набагато більше даних в одній цифрі.

Але це також збільшує складність. У багатьох випадках бінарний файл поводиться дуже приємно, що робить його надзвичайно простим в управлінні. Логіка двійкового суматора набагато простіша, ніж логіка для потрійних чисел (або, що стосується цього, десяткових).

Ви не могли б чарівним чином зберегти або обробити більше інформації. Апаратне забезпечення повинно бути набагато більшим і складнішим, щоб з лишком компенсувати більшу ємність.


6
Це походить від фактичного досвіду проектування апаратних засобів чи просто інстинкту кишечника?
ojblass

7
ojblass: Це походить від людей, які насправді виготовляли десяткові комп’ютери в 1940-х роках. Навколо також є потрійні логічні ворота, але потрійних комп’ютерів дуже мало. Дивіться, наприклад, статтю Вікіпедії про історію обчислювальної техніки: en.wikipedia.org/wiki/History_of_computing_hardware,http://… та en.wikipedia.org/wiki/Ternary_computer
Дуг,

1
За визначенням, логіка тритів є більш складною, ніж біти. У двійковій формі, якщо у вас двобітні входи, у вас є 2 * 2 == 4 виходи. З трійкою у вас є 3 * 3 + 9 виходів.
James

1
@IsaacKotlicky Імунітет до шуму так само важливий, як ніколи раніше. Поки ви якимось чином використовуєте рівні напруги, межа між ними безпосередньо перетворюється на час та енергію.
Potatoswatter

3
@Potatoswatter Ternary цілком може базуватися на електричній сигналізації. Схема пам'яті Джозефсона, призначена для з'єднання, використовує спрямований струм для визначення значення. Отже, за годинниковою стрілкою = 1, cc = -1 і вимкнено = 0 (очевидно). Це має додаткові переваги перед простим трикутником.
Ісаак Котлікі

11

Багато це пов’язано з тим, що в кінцевому підсумку біти представляються як електричні імпульси, і простіше створити апаратне забезпечення, яке просто розмежовує «заряджений» і «відсутність заряду», і легко виявляти переходи між станами. Система, що використовує три стани, повинна бути дещо точнішою в розрізненні "зарядженого", "частково зарядженого" та "відсутність заряду". Крім того, "заряджений" стан не є постійним в електроніці: енергія починає "кровоточити" з часом, тому "заряджений" стан змінюється в дійсному "рівні" енергії. У системі з трьома державами це теж слід було б врахувати.


Насправді, я думаю, що більшість трійкових логік використовує стани +1, 0 та -1, а не 0, +0,5 та +1,0.
Рік Коупленд,

Ну, що б не означало більшість ... але, я думаю, виявити різницю між +1 і 0 так само просто, як і між -1 і 0.
ojblass

5
Спробуйте написати код, який відрізняє три значення, використовуючи лише одне твердження if. (справа не допускається)
SingleNegationElimination

2
чи можу я скласти мовну конструкцію?
ojblass

1
@IfLoop Ви маєте на увазі арифметику Фортрана, якщо?
Navin

7

Ну, з одного боку, не існує меншої одиниці інформації, ніж трохи. оперування бітами є найосновнішим і основним способом обробки інформації.

Можливо, сильніша причина полягає в тому, що набагато простіше зробити електричні компоненти, які мають два стабільних стану, а не три.

Осторонь: Ваша математика трохи відхилена. у 64-значному двійковому числі приблизно 101,4 двійкових цифр. Пояснення: найбільше 64-значне потрійне число - 3433683820292512484657849089280 (3 ^ 64-1). щоб представити це у двійковому вигляді, потрібно 102 біти: 101011010101101101010010101111100011110111100100110010001001111000110001111001011111101011110100000000

Це легко зрозуміти, log2 (3 ^ 64) становить приблизно 101,4376


2 до 6 - це 64, а 3 до 6 - 729 ... Мені шкода, що я густий?
ojblass

Звичайно, ти маєш рацію ... у мене болить голова, але ти маєш рацію ... чи можете ви виправити питання якимось значущим чином, щоб сказати це?
ojblass

1
Щодо "набагато легше зробити електричні компоненти, які мають два стабільні, а не три стабільні стани", чи це, можливо, зміниться в більш сучасному майбутньому?
Pacerier

@Pacerier: не те, що я знаю, але тоді я не фахівець. Це, мабуть, питання для physics.stackexchange.com
SingleNegationElimination

5

Існують також теорії, які припускають, що волоконна оптика може використовувати світлові частоти (тобто кольорові) для диференціації станів, дозволяючи таким чином майже нескінченну (залежно від роздільної здатності блоку детектування) кількість базових можливостей.

Логічні ворота, безумовно, є платними для будь-якої бази, але для прикладу використаємо тринарний:

Для трикутного шлюзу XOR він може бути виключним для одного (або будь-якого) з трьох станів, які він порівнює, АБО одного з інших трьох станів. Він також може зв'язати два з трьох станів разом для двійкового виводу. Можливості збільшуються буквально в геометричній прогресії. Звичайно, для цього знадобляться більш складні апаратні та програмні засоби, але складність повинна зменшити розмір і, що важливіше потужність (читати тепло). Навіть говорять про використання тринарного у нано-обчислювальній системі, де є мікроскопічний "удар", "дірка" або "незмінний" для представлення трьох станів.

Зараз ми стикаємось із проблемою типу QWERTY. Qwerty був розроблений як неефективний через проблему з механікою набору тексту, яка вже не існує, але кожен, хто сьогодні використовує клавіатури, навчився користуватися системою qwerty, і ніхто не хоче її змінювати. Тринарні та вищі бази колись прорвуться через це питання, коли ми досягнемо фізичних обмежень двійкових обчислень. Можливо, ще не двадцять років, але всі ми знаємо, що не можемо продовжувати подвоювати свої можливості кожні півтора року назавжди.


2

Я вважаю, що це з двох причин (будь ласка, виправте мене, якщо я помиляюся): по-перше, тому що значення 0 і 1 насправді не є струмом / струмом чи щось подібне. Шум досить високий, і електронні компоненти повинні розрізняти, що значення, що коливається, скажімо, від 0,0 до 0,4, є нулем, а від 0,7 до 1,2 - одиницею. Якщо ви додасте більше рівнів, ви в основному ускладнюєте це розрізнення.

По-друге: вся логічна логіка відразу перестане мати сенс. І оскільки ви можете реалізувати суму з булевих воріт, а також із суми, будь-яку іншу математичну операцію, приємніше мати щось, що добре відображається для практичного використання для математики. Якою буде логічна таблиця істини для довільної пари між помилкою / можливо / правдою?


10
Ну ... Насправді булева таблиця істини - це лише окремий випадок для кількості значень = 2. Ви можете так само легко визначити потрійну логіку en.wikipedia.org/wiki/Ternary_logic Щоб зробити його більш цікавим, стан Z / високого імпедансу фактично використовується в кожному стандартному комп'ютері / електронному пристрої для реалізації шин, які можуть обробляти більше, ніж кілька пристроїв в одному рядку .
віраптор

Я не погоджуюся з твердженням Вікіпедії, що Z є логічним станом. Ви не можете в реальному світі використовувати Z у всіх операціях. Як створити XOR-шлюз, який працює з Z?
MadCoder

2

Ще однією головною перешкодою є те, що існує набагато більша кількість логічних операцій, які потрібно було б визначити. Кількість операторів визначається за формулою b ^ (b ^ i), де b - основа, а i - кількість входів. Для двійкової системи із двома вхідними даними це працює до 16 можливих операторів. Не все це зазвичай реалізується у воротах, і деякі ворота охоплюють більше однієї умови, однак усі вони можуть бути реалізовані з трьома або менше стандартних воріт. Для дворівневої трикомпонентної системи це число набагато вище близько 1968 року. Хоча декілька з цих воріт були б схожими один на одного, зрештою, можливість ручного проектування основних схем була б майже неможливою. Хоча навіть студент-початківець інженерного факультету здатний розробити основні двійкові схеми в своїй голові.


Поясніть, будь ласка, чому кількість операторів b ^ (b ^ i)
enrique

2

Відповідь Screwball правильна і виправляє деякі викривлення, запропоновані тут. Ті, хто відповів про дробові позитивні значення, повністю пропустили концепцію потрійної системи, яка базується на 0, +1 та -1. Коли його вперше побудували росіяни в 1950-х роках, конкуренція між СРСР та США була інтенсивною. Я підозрюю, що політика між ними була багато в чому пов’язана з кінцевою популярністю бінарних файлів США над трійником СРСР.

З того, що я прочитав, використовуються кілька потрійних комп’ютерів. Москва використовує їх в університеті, а IBM - у своїх лабораторіях. Є посилання на інших, але я не міг розрізнити, наскільки вони серйозні, чи вони просто для експериментів чи гри. Очевидно, їх набагато дешевше будувати, і вони використовують набагато менше енергії для роботи.


Я не можу знайти жодного посилання на «використовувані» комп’ютери. Вони всі в музеях чи старовинних іграшках для університетів. Жодна з них не будувалась протягом останніх 40 років.
Mooing Duck

1

Я впевнений, що багато з цього пов'язано з перевіркою помилок цифрових сигналів. Наприклад, у квантових обчисленнях це завдання майже неможливо, але не неможливо досягти за принципом неклонування, але також через те, що існує збільшена кількість станів. Для двох станів процес перевірки помилок не є тривіальним, але він відносно простий. У трьох станах перевірка помилок стає нескінченно складнішою. Ось чому аналогові комп’ютери з майже нескінченною кількістю станів були виключені.

Якщо ви зацікавлені в квантових обчисленнях, хоча подивіться на упаковку сфери та квантову перевірку помилок, там є кілька досить акуратних речей.


Як невелике оновлення з цього питання. Насправді я думаю про те, щоб одного разу спробувати впровадити дуже базовий потрійний комп'ютер на базі FPGA.
cwoodall

1

Щоб схема працювала в будь-якому, крім двійкового, ви повинні визначити, як будуть представлені інші стани. Ви запропонували систему -1, 0 і +1, але транзистори не працюють таким чином, їм подобається, щоб їх напруга або струм йшли лише в одному напрямку. Щоб зробити біт із 3 станами, знадобиться 2 транзистори, але ви можете зробити 2 двійкові біти з тих самих транзисторів і мати 4 стани замість 3. Двійковий файл просто більш практичний на низькому рівні.

Якщо ви намагалися встановити порогові значення на схемі і замість цього використали 0, +1, +2, ви зіткнулися з іншим набором проблем. Я не знаю достатньо, щоб вдаватися в подробиці, але для логічних схем це просто більше проблем, ніж це варте, особливо, коли галузь вже повністю присвячена двійковій системі.

Існує одна область, де кілька рівнів використовуються для отримання більше 2 станів на біт: флеш-пам’ять MLC . Навіть там кількість рівнів буде дорівнювати 2, так що вихідні дані можуть бути легко перетворені в двійкові для використання рештою системи.


0

Я думаю, що трикутник буде більш ефективним. Він просто ніколи не став популярним. Бінарний вийшов на сцену, і тепер перехід на трикомпонентну зміну буде зміною всього, що ми знаємо.


3
Однозначно не "просто більш популярний" на апаратному рівні: якщо припустити, що простий двійковий логічний затвор має + 1В, визначений як 0, і + 5В, визначений як 1, фактична напруга буде десь поблизу - наприклад, це може бути + 2В і + 3,5 В, але все ще працюють належним чином: у цьому випадку все ще існує розумний розрив для розрізнення високого та низького стану; для трикомпонентних, вам доведеться: а) мати більш жорсткі експлуатаційні (і, за рахунок цього, виробництво) допуски, що призводять до дорожчого заліза, та / або б) працювати з вищими напругами (наприклад, + 1 / + 5 / + 9В), що знову має свої власні технічні підводні камені (отже, знову ж коштує дорожче).
Пісквор залишив будівлю

0

Звичайно, але потрійний "біт" (тет?) Був би складнішим, ви все одно зберігали б однакову кількість інформації, просто в base3 замість base2, а потужність, якщо компоненти двох станів - це простота. Чому б просто не вперед і не створити базу 10 штатів10

Бінарні обчислення пов'язані з двійковими воротами AND, OR і NOT, їх величезною простотою і здатністю об'єднуватися в довільно складні структури. Вони є наріжним каменем буквально всієї обробки, яку виконує ваш комп’ютер.

Якби був серйозний випадок, щоб перейти на трійковий або десятковий, тоді вони б. Це не випадок, "вони спробували це так, і це просто застрягло"


2
Примітка: Це "трит", із трикутної цифри.
сонце

2
Примітка №2: ви насправді зможете зберігати більше в трит, ніж трохи. Для знакових значень трит може містити двійкові 1 і 0, але також -1 без необхідності знакового біта. Для беззнаку трит міг містити 0, 1 і 2. Для двійкового копіювання знадобиться 2 біти для зрівняння. А у випадку з системою дека, ви зможете вмістити величезну кількість інформації за біт або навіть трит.
doogle

0

Якщо ми використовуємо 3 стани, то основними проблемами, що виникають через це, є

  1. Якщо ми використовуємо однополярний сигнал, тоді запас шуму зменшиться, отже, збільшуючи битову помилку.
  2. Щоб однополярний сигнал підтримував постійний рівень шуму, нам потрібно збільшити джерело живлення, а отже, споживання енергії зросте.
  3. Якщо ми використовуємо біполярний сигнал, то загальний хит сигналу збільшиться, збільшуючи тим самим втрати.
  4. Додатковий шар у багатошаровій друкованій платі доведеться додати, щоб врахувати негативні коливання біполярних сигналів.

Сподіваюся, я переконливий


-3

Я думаю, це більше пов’язано з програмованістю, умовними операторами та ефективним використанням та функціональністю транзисторів, ніж будь-що інше. Може бути очевидним, що вкладений ІФ відповідає дійсності, якщо через ланцюг проходить струм, але як програма знає, що робити, якщо рішення можна досягти тисячею різних шляхів? Це цікаво щодо ШІ, де пам’ять та навчання набагато важливіші за грубу обчислювальну силу.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.