Почему двоичные, а не троичные вычисления?


разве объект с тремя состояниями не способен мгновенно хранить больше информации и обрабатывать большие значения? Я знаю, что процессоры в настоящее время используют массивные сети ворот XOR, и это нужно будет переработать.

Так как мы находимся на 64 бит (мы можем представить 2^63 возможных состояний) вычисление эквивалента троичная поколение смогло поддержать номер с 30 больше журналов мест 10 (3^63-2^63).

Я думаю, что это так же легко обнаружить разность потенциалов между +1 и 0, как это между -1 и 0.

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

17 64

17 ответов:

  • гораздо сложнее создавать компоненты, которые используют более двух состояний / уровней / что угодно. Например, транзисторы, используемые в логике, либо закрыты и не ведут вообще, либо широко открыты. Имея их наполовину открытыми потребует гораздо больше точности и использовать дополнительную мощность. Тем не менее, иногда для упаковки большего количества данных используется больше состояний, но редко (например, современная флэш-память NAND, модуляция в модемах).

  • Если вы используете более двух состояний, вам нужно чтобы быть совместимым с двоичным кодом, потому что остальной мир использует его. Три-это потому, что преобразование в двоичный код потребует дорогостоящего умножения или деления с остатком. Вместо этого вы идете прямо к четырем или более высокой степени двух.

много дезинформации здесь. Binary имеет простой переключатель включения/выключения. Trinary / Ternary может использовать один из 2 режимов: сбалансированный aka -1, 0, +1 или несбалансированный 0, 1, 2, но не просто включен или выключен, или, точнее, имеет 2 "on" состояния.

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

с оборудованием оптического волокна, вместо современного включено-выключено бинарного процесса, он был бы определен 0=off и другие 2 переключателя как ортогональные поляризации света. Как для обеспечения безопасности это может быть фактически сделано более безопасным для человека, поскольку каждый ПК или даже пользователь настроен на определенную поляризацию "спецификации", которая должна быть отправлена/получена только между Пользователем и местом назначения. То же самое можно сказать и о "воротах" с другим оборудованием. Они не должны быть больше, просто есть возможность для 3 возможностей, а не 2.

там даже были некоторые теории и даже, возможно, начать некоторые тесты на эффект Джозефсона, которые позволили бы троичные ячейки памяти, использующие циркулирующие сверхпроводящие токи, либо по часовой стрелке, либо против часовой стрелки, либо выключены.

при непосредственном сравнении Тернарное-это целочисленное основание с наибольшей экономикой корня, за которым следуют двоичные и четвертичные. Даже некоторые современные системы используют тип тернарной логики, он же SQL, который реализует тернарную логику как средство обработки содержимого нулевого поля. SQL использует NULL для представления отсутствующих данных в базе данных. Если поле не содержит определенного значения, SQL предполагает это означает, что фактическое значение существует, но в настоящее время оно не записано в базе данных. Обратите внимание, что пропущенное значение не совпадает ни с числовым значением нуля, ни со строковым значением нулевой длины. Сравнив все к нулю-даже другой нуль-результаты в неизвестном состоянии истины. Например, выражение SQL "City =' Paris ' "разрешает значение FALSE для записи с" Chicago " в поле City, но оно разрешает значение UNKNOWN для записи с полем NULL City. Другими словами, к SQL, an неопределенное поле представляет потенциально любое возможное значение: отсутствующий город может представлять или не представлять Париж. Именно здесь тринарная логика используется с современными бинарными системами, хотя и грубыми.

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

но это также увеличивает сложность. Двоичный ведет себя очень хорошо во многих случаях, что делает его удивительно простым в управлении. Логика для двоичного сумматора намного проще, чем для троичных чисел (или, если на то пошло, десятичных).

вы не сможете волшебным образом хранить или обрабатывать больше информации. Оборудование придется быть настолько больше и сложнее, что это более чем компенсирует большую емкость.

вы должны прочитать статьи о русском троичный компьютер:

многое из этого связано с тем, что в конечном итоге биты представлены в виде электрических импульсов, и проще построить аппаратное обеспечение, которое просто различает "заряженный" и "без заряда", и легко обнаруживать переходы между состояниями. Система, использующая три состояния, должна быть немного более точной в дифференциации между "заряженной", "частично заряженной" и "без заряда". Кроме того, "заряженное" состояние не является постоянным в электронике: энергия начинает" истекать " в конце концов, поэтому a "заряженное" состояние изменяется в реальном "уровне" энергии. В 3-государственная система, это должно быть принято во внимание, тоже.

Ну, во-первых, нет меньшей единицы информации, чем бит. работа с битами является самым основным и фундаментальным способом обработки информации.

возможно, более сильная причина заключается в том, что его гораздо проще сделать электрические компоненты, которые имеют два стабильных состояния, а не три.

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

Это легко понять, log2 (3^64) составляет около 101.4376

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

логические элементы, безусловно, являются платными для любой базы, но давайте использовать trinary для примера:

для тринарных ворот XOR он может быть исключительным для одного (или любого) из трех состояний, которые он сравнивает, или одного из трех других состояний. Он также может связать два из трех состояний вместе для двоичного вывода. Возможности увеличиваются буквально в геометрической прогрессии. Конечно, это потребует более сложного аппаратного и программного обеспечения, но сложность должна уменьшить размер и, что более важно, мощность (читай тепла). Есть даже разговоры об использовании trinary в нанокомпьютерной системе, где есть микроскопический "удар"," дыра "или" неизмененный", чтобы представить три состояния.

прямо сейчас, мы находимся в своего рода QWERTY типа проблема. Qwerty был разработан, чтобы быть неэффективным из-за проблемы с механикой набора текста, которая больше не существует, но все, кто использует клавиатуры сегодня научились использовать систему qwerty, и никто не хочет ее менять. Тринарий и более высокие базы когда-нибудь прорвутся через эту проблему, когда мы достигнем физических ограничений двоичных вычислений. Может быть, еще двадцать лет, но мы все знаем, что мы не можем продолжать удваивать возможности каждые полтора года навсегда.

троичный эквивалент "бита" просто вызвал слишком много возмущения!

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

из того что я читал, есть несколько троичных компьютеров. В Москве некоторые из них используются в их университете, а IBM-в своих лабораториях. Есть ссылки на других, но я не мог различить, насколько они серьезны, или если они просто для экспериментов или игры. По-видимому, они гораздо дешевле в строительстве, и они используют гораздо меньше энергии для работы.

еще одним серьезным препятствием является то, что существует гораздо большее количество логических операций, которые необходимо было бы определить. Число операторов определяется по формуле b^(b^i), где b-база, а i-число входов. Для двухвходовой двоичной системы это работает до 16 возможных операторов. Не все из этого обычно снабжены в стробах и некоторые стробы покрывают больше чем одно условие, однако все из их можно снабдить с 3 или меньше из стандартных стробов. Для двух входных тернарных система это число намного выше примерно 19683. Хотя некоторые из этих вентилей будут похожи друг на друга, в конечном итоге возможность проектирования основных схем вручную будет практически невозможна. В то время как даже первокурсник инженерного факультета способен проектировать основные двоичные схемы в своей голове.

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

во-вторых: вся булева логика сразу перестала бы делать чувство. И поскольку вы можете реализовать sum из булевых элементов, а из sum-любую другую математическую операцию, лучше иметь что-то, что хорошо отображается в практическом использовании для математики. Какой будет логическая таблица истинности для произвольной пары между false / maybe / true?

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

Если вы заинтересованы в квантовых вычислениях, хотя посмотрите на упаковку сфер и проверку квантовых ошибок, некоторые довольно аккуратные вещи там.

Я думаю, что троичный будет более эффективным. Он просто никогда не становился популярным. Двоичный вышел на сцену, и теперь переход на троичный будет изменением всего, что мы знаем.

чтобы схема работала во всем, кроме двоичного, вы должны определить, как будут представлены другие состояния. Вы предложили систему -1, 0 и +1, но транзисторы не работают, Они любят, чтобы их напряжение или ток шел только в одном направлении. Чтобы сделать бит с 3 состояниями, потребуется 2 транзистора, но вы можете сделать 2 двоичных бита из тех же транзисторов и иметь 4 состояния вместо 3. Бинарный просто более практичен на низком уровне.

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

есть одна область, где несколько уровней используются для получения более 2 состояний на бит: MLC флэш-память. Даже там количество уровней будет мощностью 2, так что выход может быть легко преобразуется в двоичный код для использования остальной частью системы.

конечно, но троичный ' бит ' (тет?) было бы сложнее, вы все равно хранили бы тот же объем информации, только в base3 вместо base2, а мощность, если компоненты с двумя состояниями,-это простота. Почему бы просто не пойти вперед и сделать 10-го государства base10

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

Если бы был серьезный случай, чтобы переключиться на троичный или десятичный, то они будут. Это не случай "они пробовали это так, и он просто застрял"

Если мы используем 3 состояния, то основной проблемой, возникающей из-за этого являются

  1. Если мы используем униполярный сигнал, то запас шума будет уменьшаться, следовательно, увеличивая частоту битовых ошибок.
  2. для униполярного сигнала для того чтобы держать константу допустимого предела шума мы должны увеличить электропитание и следовательно расход энергии увеличит.
  3. Если мы используем биполярный сигнал, то общий размах сигнала будет увеличиваться, тем самым увеличивая потери.
  4. дополнительные слой в многослойной печатной плате должен быть добавлен для учета отрицательного колебания в биполярных сигналах.

надеюсь, что я убедительно

Я думаю, что это больше связано с программируемостью, условными операторами и эффективным использованием и функциональностью транзисторов, чем что-либо еще. Может быть очевидно, что вложенное IF истинно, если есть ток через цепь, но как программа знает, что делать, если решение может быть достигнуто тысячью разных маршрутов? Это интересно в отношении ИИ, где память и обучение гораздо важнее, чем грубая вычислительная мощность.