Обновить

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

Коммерческих чипов с нативной тернарной арифметикой по-прежнему нет. 

А их и не будет, потому что:

1. Запуск техпроцесса невероятно дорог, на порядки больше производства чипов.
Плюс САПР для этого придется писать с нуля, а также, подозреваю переписывать часть уже накопленной кодовой базы.

2. Для современных процов со средним числом транзисторов в 6-8 млрд. троичный аналог (не важно в симметричной или несимметричной сс) в лучшем случае будет иметь число транзисторов х1,585, а по факту х3, с соответствующим увеличением площади кристалла и снижением КВГ.
Чиплетный финт ушами конечно может помочь с КВГ, но площадь не уменьшит.
Любая попытка уменьшить число транзисторов на вентиль утыкается либо в огромные сквозные токи при переключении, либо в пункт 1 из-за использования нестандартных МОП транзисторов с дополнительными активными областями.

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

Собственно, экономический эффект и убил троичную логику. Даже у Сетуни под капотом трит делался из двух битов. О чём автор упомянул.

Кремниевый транзистор к середине 1960-х изменил экономику вычислений. Физика транзистора заточена под два состояния - открыт или закрыт. Три уровня на кремнии требуют дополнительной схемотехники, точных порогов напряжения и дают нестабильность при температурных дрейфах. Феррит-диодная база Сетуни это обходила, но к кремниевым интегральным схемам приспособить троичную логику оказалось нетривиально.

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

Ну, кто‑то и «музыку через вешалку» слушает, если верить байке.

В IT чаще пляшут от наличие рук и готового ПО. Если я сейчас спаяю комп с байтом из 9 битов, то, наверное, будет клёво, но вот даже CP/M я на неё запарюсь портровать. Это как очень отдалённый пример.

Если строить троичный компьютер общего назначения (как современную «Сетунь»), практической пользы почти не будет. На FPGA или ASIC его можно сделать куда надежнее, чем в 1959 году: нормальная память, ECC, формальная верификация, CI‑тесты, симуляторы, нормальный toolchain. Но это будет либо троичная ISA поверх обычной двоичной физики, либо экспериментальная многоуровневая схемотехника. Интересно, конечно, второе — но сделать и использовать такое... ух сил уйдёт!

А в чем заключается эта математическая неэффективность? Почему вдруг близость тройки к числу е становится более эффетивной?

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

Сами же сказали в статье, что в ibm650 использовался магнитный барабан. Будь там ферритовая память а в сетуни барабан - ситуация была бы обратной. У урал-1 был барабан - 100 оп/с. У бэсм-1 - вообще трубки.

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

Автор написал.

Для позиционной системы счисления с основанием r и n разрядами можно записать r^n чисел. Стоимость машины пропорциональна числу элементов - то есть r × n. Если минимизировать это произведение при фиксированном диапазоне чисел, производная обнуляется при r = e ≈ 2.718.

Правда, это верно только теоретически, когда элементы с разными разрядами равны по стоимости. А если трит делается из двух битов вся теория идёт прахом.

Кстати, два - второе целое число после тройки максимально приближенное к e.

Трайт (tryte) - аналог байта. В Сетуни-70 - 6 тритов. Покрывает 729 значений против 256 у байта при схожей схемотехнике.

...

Трит хранился как два двоичных разряда...

Т.обр., схемотехнически трайт занимал 2х6 = 12 двоичных разрядов. "Покрывает" 4096 значений. Из которых будем использовать 729 значений, ибо идея превыше всего. Что-то я потерял момент, где начинается выгода.

Поднимите мне веки - (с).

А какая может быть выгода в имитации? Да никакой. Не было радиодеталек для нативных троичных ячеек. Да и сейчас нет.

Не знаю, как тогда, а сейчас выгода аналогичных разработок начинается на словах "грант Минпромторга на не имеющий аналогов в мире..."

Печально, но это работает на лиц, принимающих решения.

Что-то я потерял момент, где начинается выгода.

Выгода теоретически начинается дальше, когда мы делаем настоящие триты, а не имитируем их. Практически, как мы видим, не началась.

А на этапе модели, понятное дело, никакой выгоды быть не может.

начинается дальше, когда мы делаем настоящие триты

Так не делаем же. Я понимаю, что экспериментальные исследования, но ведь эти клоуны собрали аж 50 "Сетуней"!

что круто у троичной системы, так это то, что деление или умножение на три выполняется сдвигом вправо-влево

это невероятно полезно для программирования ПЕРИОДИЧЕСКИХ процессов при моделировании трёхфазных систем: электродвигателей, электросетей и так далее.

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

Менять схемотехнику под каждую цифру - не выглядит разумным... А если бы вы 5- или 6-фазные системы начали моделировать?

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

Потому, думаю, и через 10 и через 100 и через 1000 лет человечество будет использовать именно трёхфазные сети и трёхфазные же электродвигатели/электрогенераторы.

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

троичная система очень бы подходила и к энергетике,

Извините, нет. Не к энергетике, а к выполнению операций деления со степенями тройки.

Зато деление/умножение на два становится не простой операцией сдвига, а полноценным алгоритмом!

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

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

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

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

По-моему, лет 10-15 назад даже на хабре была статья на эту тему... (но если погуглить, статьи есть, но описание троичной логики неглубокое)

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

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

взял этот факт всерьез

Не уверен, что по теме, но встречалось доказательство, что оптимально для представления информации словарь должен состоять из четырех "букв". И именно поэтому для хранения информации ДНК использует 4 элемента.

Оптимально в каких условиях?

Наверное, во всех условиях. В исследовании озадачились, какой оптимальный размер элемента, которым эффективно кодировать информацию. То есть, в нашем словаре 33 буквы, в латинском - 26, текст (частный случай) можно записывать в виде байтов по восемь бит, можно в Radix50 помещать 3 символа в 2 байта и т.д.
Словарь может состоять из букв, из слов, из целых предложений или абзацев (или вообще целых документов).
Если у нас словарь из предложений, то мы можем записать так: 1 - предложение №1, 2 - предложение №2, ... У нас текст (или информация) будет выглядеть так: 3, 2, 9, 15, например. Но при этом размер словаря будет очень большой, так как каждый символ соответствует целому предложению. Это как векторные базы, один вектор может соответствовать целому абзацу или документу.

Информация передается так: мы даем текст и плюс словарь для этого текста.

С другой стороны, если в словаре буквы, как у нас, тогда словарь маленький (26...33 букваы) но текст получается большой. Тоже не лучший вариант.

Построили график функции, по одной оси - размер словаря, по другой - количество информации (размер самого текста + размер словаря). В итоге получилось, что при числе символов в словаре, равном 4, у нас будет самый эффективный способ передачи информации.
Вот это и связали с ДНК, дескать, природа тоже выбрала самый оптимальный вариант кодирования - всего из 4 символов.
Связывая это с материалом статьи, можно предположить, что лучше всего в ячейке или одном элементе (атомарном) памяти хранить 4 уровня сигнала, а не 2 (как в бите) и не 3 (как в трите).
Также можно добавить, что есть элементы памяти, в которых данные хранятся не в виде 0 или 1, а в виде нескольких уровней напряжения. Например, MLC во Flash памяти.

И именно поэтому для хранения информации ДНК использует 4 элемента.

Именно ли поэтому? Они комплиментарные, возможны всего две пары: А-Т, Г-Ц - получается хитрая двоичная система с резервированием (защита от ошибок?).

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

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

Человек, когда пишет в статье ошибочную информацию, редко выдумывает ее прям на месте из головы, а чаще транслирует какое-то пусть неверное, но реально существующее мнение/информацию. ЛЛм-ки же на голубом глазу генерируют мегатонны полного бреда, каждый из которого верифицировать жизни не хватит, так что правильный подход - нейрослоп в dev/null даже не читая

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

... еще немного, еще чуть-чуть и ...

согласен, именно так, мне тоже жаль того времени, деревья были как-то зеленее :)

  • 11 → запрещено, не используется

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

Объясните. Т.е. это всегда была двоичная логика, а кому-то захотелось выпендриться и сделать 3 значения вместо двух или четырех?

Да, полный дебилизм. Был адский дефицит современной (полупроводники) элементной базы, и эти товарищи наладили производство самодельные феррит-диодных ячеек. У ферритового колечка два устойчивых состояния, и эти клоуны для имитации одного трита использовали пару клечек. Похоже на тупое проедание гранта, да, но в данном случае грант вылился в госзаказ.

На самом деле тема и правда интересная. Представление отрицательных чисел в двоичной системе несколько костыльно. А в симметричной троичной системе оно естественно.

Костыли исчезли в момент изобретения обратного дополнительного кода.

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

Удалил коммент.

Все что сперва понаписал фигня. Есть, правда, проблема троичной логики - нет явного признака знака в старшем разряде.

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

Отсутствие элементной базы. Это и есть фундаментальная проблема. На КМОП хорошо строить двоичную. Строить из двоичной - троичную уже не хорошо

С точки зрения логики - вполне вероятно построить было бы можно

Есть проблема со скоростью: если для условной двоичной 5-вольтовой логической схемы 1 будет пусть от 0т 3в до 5в, а 0 от 0.2в до 1.5в, то схема может переключаться в состояние 1 уже по достижении 3в на нарастающем фронте и 1.5 на убывающем, в троичной же логике схема должны будет ждать некоторое время чтоб понять, что напряжение устаканилось, и это реально 1, а не растущий фронт до 2

Совершенно не понимаю восторгов, связанных с этим технологическим и логическим выкидышем. Были же и нормальные, "классические" (и современные для того времени) разработки - буквально в то же время (1959): например, ЭВМ "Днепр", которая была "на транзисторах", была выпущена тиражом в 500 экз и применялась в системах управления производствами, в оборонке, в космосе, САПР, в медицине, синтезе звука, управлении экпериментами...

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

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

Публикации