Обновить

Комментарии 83

Не знаю рассказывают ли сейчас в вуз-ах, готовящих IT-специалистов о троичной логике, о Брусенцове и его "Сетуне", но когда я учился в первой половине 70-х годов на инженера-программиста мы с восхищением слушали лекции об этих чудесах. Тогда казалось - ещё немного, ешё чуть-чуть и ....

Я учился в ВУЗе в 2013-2017 годах, нам рассказывали про эти аппараты и троичную логику на "теории информационных систем". Видимо у профессоров ещё есть надежда на молодое поколение и они стараются впихнуть в программу то что было интересно им в своё время.

Так это здорово! Спасибо.

В 2007 на истории ЭВМ было. Я делал доклад на эту тему.

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

СССР - госкапитализм, неизбежные проблемы экономической формации капитализм

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

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

Что касается LLM, они работают на очень сложных транзисторных системах. Перелопачивать всю эту дичь ради потенциально предельной экономии в десяток процентов - сомнительная затея. Да и программировать троичную логику интересно в узких и спеицифческих задачах с большим простором (читай - бюджетом) на оптимизацию. Я бы посмотрел на погроммистов, решившим сделать интернет-магазин с троичной логику. Как будет рабоать тот же if-than-else?

Наконец, вопрос квантования LLM - это именно, что вопрос оптимизации. Я бы скорее ставил на то, что инференс "деградирует" до уровня FP2 с какой-нибудь подвывернутой внутренней логикой (кривоватый пример с потолка - использование подуровней в сумматоре, чтобы веса с большей охотой влияли друг на друга). Выточить ультрафиолетовой литографией транзистор, который бы смог выполня трочиную логику исключительно для LLM... Звучит авантюрной идей. Да и в целом, для эффективных (и инспектируемых) LLM необходимо отходить от архитекутры фон Неймана, чтобы избавиться от очень узкого места в виде шины памяти.

Она не только сложней, но скорей всего и неэффективней и менее стабильная.

"Скорей всего" - это очень важный критерий. Можно еще мне кажется, верю, что... и т.п.

Это уже не хуже аргументов, перечисленных в статье: про дешевизну, костность мышления, технологическую изоляцию. А слово мог есть даже в заголовке: "Как мир мог не стать двоичным".

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

С тем дизайном, как делали “Сетунь”, двоичная была бы не дороже. Возможно, и дешевле. Ну очень простая была машинка.

А еще троичные булевы операции сложнее, то есть сложность не только технологическая, но и теоретическая. Например, для вычисления функции Вебба (через нее выражаются все остальные функции) требуется намного больше транзисторов. Есть более подробная инфа: https://math.stackexchange.com/q/253861

Здесь возникает вопрос, какова методика расчета, давшая 6%.

С инженерной точки зрения троичная логика давала огромный простор. В двоичной логике мы имеем 2² = 4 унарные операции и 2⁴ = 16 бинарных. В троичной логике количество функций растет чудовищно: унарных — 27, бинарных — уже 19 683, а тринарных (трехоперандных) — миллиарды.

Эм, это не только огромный простор, но и огромная проблема. Для 16 двоичных бинарных элементов можно выпустить номенклатуру стандартных элементов, средней руки инженер может наизусть знать и типовые схемы, и таблицы состояний. А вот когда их почти 20 тысяч...

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

(Да и не все из этих 16 полезны на практике, например константный 0 и 1, повторитель, отбрасывающий один из операндов или инвертирующий его. Для подобных операций не нужны отдельные элементы.)

Для троичной... надо подумать, но уверен, что не 19683, а на порядки меньше.

Upd: ИИ подсказывает, что достаточно трех: min, max, - (унарный минус).

С теоретической точки зрения через функцию Вебба выражаются все остальные функции в любой многозначной логике. Однако она не практична и формулы получаются слишком громоздкими. Хотя в троичной логике все намного более монстроуозней по сравнению с двоичной.

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

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

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

Что значит анализ троичной системы через двоичную? Я уже два раза написал, что двоичная тут используется только для сравнения и через нее ничего не выражается. Есть функция Вебба, которая определяется так в любой многозначной логике:

Webb(x, y) = W(x, y) = Inc(Max(x, y))

Через нее выражаются любые другие функции в двоичной, троичной или любой другой многозначной логике. Например, в двоичной логике базовые операции через нее выржаются так:

~x = W(x, x)
x & y = ~(~x | ~y) = W(W(x, x), W(y, y))
x | y = Inc(W(x, y)) = W(W(x, y), W(x, y))

В троичной вот так:

Inc(x) = W(x, x)
Dec(x) = Inc(Inc(x))
~x = W(W(Dec(x), Inc(x)), Inc(W(Dec(x), x))
x & y = ~(~x | ~y)
x | y = Inc(Inc(W(x, y))

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

В формулах не самое последнее место занимает умение их применять к месту.

Можно значительно проще. Существуют ли в реальности ситуации, которые можно представить в виде троичной логики?

Да везде и всюду.

Ответ отрицательный/ нет ответа/ответ положительный. Движение назад/отсутствие движения/движение вперед.

Это легко представить через двоичную логику, НО, каждый раз через две операции.

И вопрос, а какие реальные задачи действительно бинарные?

Можно значительно проще. Существуют ли в реальности ситуации, которые можно представить в виде троичной логики? Да везде и всюду.

И они ничем не выделяются на фоне ситуаций, которые надо представлять четверичной логикой, пятеричной, и так далее.

В статистике примеров вы сразу ляжете на лопатки

Только в искусственно упрощённой интерпретации входных данных для такой статистики. Например, если стоит вопрос, на который надо ответить “да”, “нет”, или что-то третье, то это третье может быть одним из вариантов: “я сам не могу знать”; “никто не знает”; “данные не поступили” (может ещё быть различие, почему именно не поступили); наконец, “вопрос некорректен” (как классическое “Вы перестали пить коньяк по утрам?”) – и различия между ними принципиальны не меньше, чем это само да/нет.

Ну а если настаиваете – начните с рассказа, с каких источников и какими методами вы будете собирать эту статистику. Вот там и посмотрим на адекватность ваших методов.

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

Вы же сами предложили вариант “данные не поступили”. Еще можно добавить “ответ еще не получен”.

Да. И они все как раз свыше того одного, который по-вашему добавляется к двум.

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

Если вы про X-состояние на проводах… ну ок, если вообще есть смысл его учитывать, то это ещё один вариант в дополнение к перечисленным.

И тогда обратите внимание, что, например, Verilog знает 0, 1, x,… и z! “z” это выходной “сигнал” типа “выход отключен”, и логика Verilog содержит таблицы истинности на 4 варианта каждого входа. Например, при физическом соединении выходных проводов (обозначил тут плюсом): 0+0 == 0, 0+z == 0, но 0+x == x.

Все подобный доказательства имеют как раз спецефическую ошибку - 'стоит ли учитывать..."

Так и получается, здесь считаем, здесь рыбу заворачиваем.

Двоичный вариант (n=2): Ячейка стоит 2 рубля. Покупаем 50 ячеек. Они дают 2⁵⁰ комбинаций. Это примерно 1,13 × 10¹⁵ чисел. Троичный вариант (n=3): Ячейка стоит 3 рубля. Покупаем 33 ячейки (33 × 3 = 99 рублей, рубль еще остался на мороженое). 33 ячейки дают 3³³ комбинаций. Считаем: 3³³ ≈ 5,5 × 10¹⁵ чисел.

Например, чтобы сменить знак числа, не нужно было выполнять сложную последовательность действий — достаточно было выполнить одну операцию поразрядной инверсии.

В сбалансированной(симметричной) троичной системе диапазон отрицательных и положительных одинаковый 2**33. В бинарной версии для отрицательных 2**49, для положительных 2**50. Чтобы представить диапазон 3*33, должен использоваться знаковый бит как в two`s complement или отдельный набор инструкций. Интересно как выглядит представление Сетуни на уровне ячеек. Если там симметричная система и 6 тритов на яейку, то как получилось −364 … +364. Видимо формат хранения в регистре и в памяти отличается.

Насколько я помню, на урове ячеек один трит Сетуни - это просто два двоичных бита.

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

Не совсем так. В связанной ячейке уже не приходится говорить про бит.

Вспомнился анекдот: ученые построили компьютер на женской логике. Запускают программу, она выдает ответ. Запускают еще раз - ответ другой. "Почему?!" - "Она на тебя обиделась!"

«42»

А другой раз 56.

А миллион лет потратили!

И зовут её Алиса ))

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

Но если положить логику Фомина не в формулы, а в деньги, то он отталкивается от того, что троичный триггер стоит в полтора раза дороже триггера двоичного. А это совсем не факт.

Хлобысь! В десяточку. Прямо вот в самое яблочко. Идеализированная картина падает и дрыгает ножками, хедшот, фраг. Наповал. 10/10.

На практике оказывается, что цена с ростом числа состояний растёт или несоразмерно много (троичный триггер на КМОП — это просто двухбитный двоичный, искусственно кастрированный), или, наоборот, несоразмерно мало (MLC-ячейки того же флэша, например). Поэтому или всё сводится к двои́чке, или, наоборот, люди ударяются в дикие дали.

Хотя для той же флэшки оптимум вполне может и на трои́чке сойтись: всё равно содержимое страницы проходит через Рида-Соломона, а ему всё равно, какое там простое число в основании полей Галуа. Что два в энной степени, что три. В любом случае мы конвертируем из/в двоичной в Галуа и обратно, заодно через систему уравнений корректируя ошибки. А Галуа при этом можно хоть на семиричной системе построить, это ничего не усложняет и не упрощает.

троичный триггер на КМОП — это просто двухбитный двоичный, искусственно кастрированный

Далеко не всегда (впрочем, я не утверждаю, что это целесообразно).

Там вроде не КМОП, а биполярники с динамикой (т. е. ненулевыми токами вне процесса переключения)?

Не, ну КМОП в принципе тоже можно подвесить за серединку… к затворам резистор на ноль прицепить такой, чтобы закрылись и верх, и низ, ну а 0 и +5 объявить -2.5 и +2.5 соответственно.

Получится устойчивое z-состояние — если вход висит, через резистор статика стекает и на выходе тоже z, оба закрыты. Если на входе +2.5, то открывается нижний и на выходе -2.5. И наоборот, естественно.

Но я не уверен, что это можно будет называть КМОП — скорее какой-то РТЛ… я это когда-то более-менее прикидывал студентом, тыщулетназад, где-то получается очень удобно, где-то — по сложности как двухбитка, но без четвёртого состояния. Подтяжки разные прикидывал, скажем, в некоторых случаях нам не нужна полная инверсия, а нужно схлопнуть в 1 на выходе всё, что не 1 (то есть и 0, и z). Иногда почти что-то экономилось в плане места — но и это всё на фоне чудовищного роста энергопотребления и падения скорости. Полный разряд подзатворной ёмкости, когда на входе z и всё сливается только через резистор, ооооо… %)

Реально, проще сделать КМОП-четырёхбитник, который будет жрать меньше, чем троичный девятитритник, а эмулировать его с потрохами быстрее, чем он бы работал физически. Оно всё имеет право в качестве эзотерической схемотехники — да, если у кого-то есть право на брейнфак, то у нас есть право на троичную РТЛ :) Эзотерическая схемотехника — хотим и будем :) (пытался в выходные закончить софтовую эмуляцию заметно окрутевшей в камментах схемы, но так «удачно» заболел, что в итоге остался только мешок бла-бла и куча черновиков карандашом). Но если тот мой камень потенциально может хотя бы барабан стиралки крутить, то куда приткнуть троичную РТЛ — я даже при большом желании не могу придумать :(

Z-состояние в КМОП неустойчиво и ну может быть драйвером, все нагрузки же ёмкостные. Если вы переведёте выход вашего гипотетического вентиля в high-Z, вход следующего вентиля не подтянется до половины питания, а останется в своем предыдущем состоянии.

Кубиты имеют же 3-е состояние суперпозиции (кота Шредингера) и кудиты имеют три и более состояний.

Очень хочется притянуть квантовый мир к Сетуни, но аналогия там довольно скользкая

  1. В статье ссылаются на Фомина, а остальной мир ссылается с той же теоремой на Клода Шеннона. “Середина XX века” это слишком абстрактно. Кто всё-таки был первым?

  2. Действительно, если троичный триггер реально будет состоять из двух двоичных (на плюс и на минус), как получается в реальной логике, то всё преимущество пропадает. Точно так же как если пытаться передавать десятичные цифры как один триггер на 10 состояний, или как 4 на 2 (пусть и с неиспользуемыми состояниями), разница не в пользу того, что на 10 состояний. Поэтому мир и остановился на двоичной логике: она проще, надёжнее и таки дешевле.

Но интересная попытка, безусловно, зачтена: Брусенцов вписал своё имя в историю.

Ну кстати можно эффективно уместить десятичные числа в наши двоичные компьютеры для плавающей точки

Хм, как бы, на двоичных машинах, например, 0.1f или 0.3f, не имеют точного представления, только `0.25f, 0.5f, 0.75f` можно точно представить.

А на троичных машинах, вообще проблемы с вычислительными методами и форматными преобразованиями, ни одна десятичная дробь не имеет точного представления. Мало того, и наоборот тоже. 😉

Странно, что ссылка не прикрепилась, я даже статью про это написал: https://habr.com/ru/articles/839524/. Так что нет, точное представление можно эффективно уместить, даже получив сильно больше значений в экспоненте. А нам и нужна именно десятка, так как мы все системы почти во всех дисциплинах считаем в десятках(банально стандартный вид числа) и неточность с десятью намного серьезнее неточных 1/3, 2/7 и т.п..

Странно, что ссылка не прикрепилась, я даже статью про это написал: https://habr.com/ru/articles/839524/. Так что нет, точное представление можно эффективно уместить, даже получив сильно больше значений в экспоненте. А нам и нужна именно десятка, так как мы все системы почти во всех дисциплинах считаем в десятках(банально стандартный вид числа) и неточность с десятью намного серьезнее неточных 1/3 и т.п..

На троичном компьютере аналогом binary32 (8 бит экспонента, 23+1 мантисса или 7,2 цифры в диапазоне 10^{-45} ... 10^{38}), может быть ternary18 (3 трайта):

  • Кодировка: 5 + 13 трит (со скрытым старшим тритом, т.е., знак экспоненты - знак числа) тогда можно получить: 6,4 цифры в диапазоне 10^{\pm 28};

  • Вариант кодировки: 6 + 12 трит (со скрытым старшим разрядом, т.е., знак экспоненты - знак числа) или 5,9 цифры в диапазоне 10^{\pm 86};

  • Как я понимаю, в Сетуни (ИП-3 и ПОЛИЗ) использовалась кодировка: 4 + 14 трита без скрытых старших разрядов, экспонента: ±40, мантисса: ±2'391'484 или 6,4 цифры в диапазоне 10^{\pm 19}.

Аналогом binary64 (11 бит экспонента, 52+1 мантисса или 15,95 цифры в диапазоне 10^{-323} ... 10^{308}), может быть ternary36 (6 трайтов):

  • Кодировка 8 + 28 трита (со скрытым старшим тритом, т.е., знак экспоненты - знак числа) или 13,5 цифры в диапазоне 10^{\pm 782}.

Правда, float немного не попадает требования стандарта языка C23, Implementation limits:

  • FLT_DIG = 6, FLT_MAX_10_EXP = 37, FLT_MIN_10_EXP = -37;

  • DBL_DIG = 10, DBL_MAX_10_EXP = 37, DBL_MIN_10_EXP = -37.

Да и вообще система типов C для троичного компьютера немного не попадает в C23 Implementation limits:

  • char - 1 трайт - ±364 (\pm 2^{8,5});

  • short - 2 трайт - ±265'720 (\pm 2^{18,0});

  • long - 3 трайта - ±193'710'244 (\pm 2^{27,5}, C23 требует \pm 2^{31});

  • long long - 6 трайтов - ±75'047'317'648'499'560 (\pm 2^{56,1}, C23 требует \pm 2^{63}).

Будем посмотреть, когда дело дойдёт до драки.

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

  • decimalT18 (3 трайта): 6 цифр, 10^{\pm 121};

  • decimalT36 (6 трайтов): 14 цифр, 10^{\pm 1093}.

Такое прям можно и во все Вики, и куда-нибудь еще отправлять, чтобы Ваши анализ не потерялся, если нам все же потребуются когда-то реализации троичных компьютеров

Опять небинарные оживились xD

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

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

Ну человек - это тупиковая ветвь эволюции. Главное, что все остальные твари в природе - трёхногие, им ничто не грозит.

Казалось бы, вот он — триумф троичного подхода. Но в 1965 году производство «Сетуни» было остановлено. Почему?

Потому что в 1960 появились первые микросхемы, выполненные по планарной технологии, а в 1965 уже был озвучен Закон Мура. Даже один единственный ферритовый сердечник по размеру больше, чем кристалл микрухи, которая одна реализует сразу целый логический блок, например двоичный сумматор.

Потому что тогда бы компьютер троил. А кому это надо)

Но если положить логику Фомина не в формулы, а в деньги, то он отталкивается от того, что троичный триггер стоит в полтора раза дороже триггера двоичного. А это совсем не факт.

Как бы, этот "не факт" может быть в обе стороны. К примеру, ячейка DRAM отличается минимально:

Нет «удобных» элементов для реализации схемотехники (на данный момент). А строить из двоичной логики - неэффективно

Да, ладно, все умеют в массовые ОУ с двойным питанием ±5 В, ±3,3В или даже ниже. Основные вопросы более менее давно все решены. К примеру, массовые большие антенные решётки не на рассыпухе же делают.

Другое дело, что выигрыш невелик, всего 1,6 раза, а порог вхождения немал, т.к. кроме ЦП и ОЗУ, нужно что-то придумывать за периферию, северный и южный мосты и т.п.

Т.е. интеллекта нужно вложить весьма и весьма много, на пару тон.

Это не то, такого удобства как КМОП для двоичной логики не дает.

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

Другое дело, что выигрыш невелик, всего 1,6 раза

1,6 - это уже существенно. Только их нет, на текущей элементной базе, с учетом усложнения схемотехники польза будет отрицательной.

Я Вас умоляю, на примере ячейки DRAM, цена - один дополнительный P-N переход.

Можно SRAM посмотреть, сумматор или умножитель. На `-V`, `0`, `+V` многое можно переработать без особых проблем.

А вот насчёт "1,6 - это уже существенно", это ж как посмотреть. Если с точки зрения закона Мура (2 раза за 24 месяца), то это всего 16 месяцев разработчика. Причём результат гораздо лучше прогнозируется. О чём речь?

Я Вас умоляю, на примере ячейки DRAM, цена - один дополнительный P-N переход.

многое можно переработать без особых проблем.

Я все же подожду от вас логику, нам ведь нужно как-то работать с тремя уровнями напряжения. В вентилях. Я приму вашу позицию если количество вентилей будет больше в те же 1,6 раза. Но что-то мне подсказывает что их будет ещё больше. Да и при двухполярном питании -V, +V станет вопрос получения 0… Точнее все что лезет в голову будет ценой ухудшения динамических характеристик и увеличения статического тока потребления

Если с точки зрения закона Мура (2 раза за 24 месяца), то это всего 16 месяцев разработчика. О чём речь?

Дальнейшая работоспособность «закона Мура» уже под вопросом. Транзисторы особо не уменьшаются

P.S. @amartologyесли ещё бываешь на Хабре, поучаствуешь в беседе о троичной логике?

А что тут участвовать? КМОП-технология не позволяет удобно получить среднее из трёх состояний, а значит делать на ней троичную логику нормально невозможно. Нет совместимости с КМОП = нет коммерческих перспектив.

Точка.

Вы осознаёте, что 2ИНЕ - это четыре транзистора, а ОУ - несколько десятков?

Никакого нативного двух полярного питания в КМОП нет, там если вам нужен зачем-то средний уровень напряжения, его надо громоздко и энергозатратно делать самостоятельно.

Нет совместимости с КМОП ...

Как бы, симметричная троичная логика, в принципе, может быть построена на МОП-транзисторах. Собственно, энергоэффективность и вообще вся история, как бы, намекает:

Вы осознаёте, что 2ИНЕ - это четыре транзистора, а ОУ - несколько десятков? Никакого нативного двух полярного питания в КМОП не...

Так и да, у ключей меняются пороги и пороговые функции. Номенклатура МОП-транзисторов для ключей в троичной логики, вероятно, должна быть иная. ОУ были упомянуты всуе, не только ввиду двойного питания, но и за более широкую номенклатуру транзисторов.

На мой взгляд, это возможно. Но я не предполагаю, что это будет легко сделать.

В случае, динамической DRAM, ввиду того, что конденсатор по своей природе может иметь много уровней заряда, стоимость реализации существенно меньше, чем в оценке Фомина.

В других элементарных узлах можно ожидать плюс/минус оценку Фомина.

Исследование возможностей и способов реализации современных троичных цифровых элементов, Научный отчет, Маслов С.П., под руководством Брусенцова Н.П., 2004 , https://istina.msu.ru/download/16287855/1eKHwI:xjHVVw3lbsh7gNOYU2AHvoFwG78/ , Брусенцов Н.П. - конструктор Сетунь и Сетунь-70.

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

= нет коммерческих перспектив.

Так и да, коммерческие перспективы, да и вообще перспективы, под большим вопросом, ибо нет ничего:

  • нет периферии;

  • нет языков высокого уровня (стандарты требуют модификации)

  • нет компиляторов (требуют доработки);

  • нет ОС (тут уже не доработка);

  • нет библиотек, нет программ (скажем, в области математики, 1.5, 0.5, 0.25 не будут иметь точных представлений).

Так, что на верхнем уровне можно всё потерять, даже если самые оптимистические предположения среднего и нижнего уровней оправдаются. (Что, вероятно, и произошло с моделями Сетунь и Сетунь-70, не хватило сил, по сравнению с разработчиками других ЭВМ. И, как результат, оказались невостребованы).

Ваша картинка с тремя ключами не работает. Покажите, чем управляются ключи.

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

Да такая же в ОУ номенклатура транзисторов. Они на тех же техпроцессах как правило делаются.

Исследование возможностей и способов реализации современных троичных цифровых элементов, Научный отчет, Маслов С.П., под руководством Брусенцова Н.П., 2004 ,

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

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

А кто-нибудь на динисторах строил такое? может готовые микрухи есть?

Про Сетунь каждый раз немного обидно читать. Сделали реально необычную машину, не игрушку, не теоретическую фантазию, а рабочую вещь. И всё равно упёрлись в привычное мир уже поехал в другую сторону

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

В Интеле даже теоретически в те времена не могли ее изобрести. Там подход другой был

Тут, та же ситуация, что и с теми же экранопланами. Гладко на бумаге, куча теоретических преимуществ, чудо изобретение. А при реализации, все преимущества съедаются недостатками из реального мира.

Реальный мир это когда сделали и проверили. А теоретические расчеты это не реальность а теория. Из реального и широко известного это пока только многоуровневые линии передачи данных и тернарная фильтрация IP пакетов. И как то там далеко не проценты, которые фигурируют в расчетах а порядки

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

Это "однажды" уже наступило. Именно сейчас.

Размер молекулы кремния это 0.2 нанометра. Пару итераций закона Мура возможно еще получится сделать.

В 2нм техпроцессе IBM длина канала 12нм.

Линейные размеры ячейки транзистора со времен 20нм уменьшаются очень слабо. А название техпроцесса перестало быть с ними не связано ещё раньше

Троичная логика есть в любой современной реляционной СУБД: TRUE, FALSE, NULL (aka UNKNOWN). И соответственные таблицы истинности.

Изящно? Может быть. Но с практической точки зрения это малоценно, а обычно лишь порождает свой класс довольно трудноуловимых ошибок.

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

Можно и обойтись двумя битами. Две операции против одной, но можно, если не режим реального времени

Я добавлю, что троичная логика SQL заведомо дефектна, потому что чуть менее чем все чуть менее чем всегда смешивают NULL как “неизвестно” и NULL как “точно нет значения”, и это даже в базе (логика операций с TRUE-FALSE-NULL соответствует “неизвестно”, а подстановка NULL при JOINʼах – “точно нет значения”). Исправления этого пока не придумали, кроме как расширять домен на спец. значения, уходя по максимуму от NULL в собственных данных. Поэтому логика SQL тут скорее антипример.

Это миф, что троичная логика не нашла практического применения вообще, совсем и нигде. Нашла. В одной определённой нише. Чарлиплексинг.

Если предположить, что (согласно Марксу, если разобраться) мы видим некий обучающий спектакль в материальном мире, чтобы получить представление о мире невидимом, а история уложена невидимыми "культурными слоями", не все из которых имеют материальные носители со второй сигнальной системой, то интересный спектакль можно увидеть. Вот, например: «ибо, где двое или трое собраны во имя Мое, там Я посреди них» (Мф. 18:20). Ну, если про двоичную систему "всё понятно" - это NATO-OTAN условно, то что есть троичная? А вот, наверно "теза/антитеза/инвариант". То есть три части: одна смотрит влево, другая вправо, основная - должна была бы уметь руководить. Материализм вообще о чём: о том, чтобы оставить материальные исторические свидетельства, а потом правильно их расшифровать. Не всегда получается (Рэй Брэдбери "И грянул гром", Конфуций "Не научившись понимать истинный смысл слов, нельзя знать людей."). Но тема сложнее.

Хорошая статья. Но троичная логика — не единственный способ обойти закон исключённого третьего. Интуиционистская логика, например, вообще не вводит третье значение истинности («не определено»), а отказывается от требования, чтобы у каждого утверждения было истинностное значение. В праве это работает именно так: «не доказано» — это не третья истина, а отсутствие завершённой конструкции. Так что у двоичной логики есть не только троичный конкурент, но и более тонкий альтернативный подход. https://vc.ru/legal/2731609-tretee-sostoyanie-pravosudie-i-intuicionistskaya-logika-v-sude.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Информация

Сайт
beget.com
Дата регистрации
Дата основания
Численность
201–500 человек
Местоположение
Россия