Обновить

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

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

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

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

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

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

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

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

Именно такой сигнал распространяется по сети - 0 +, независимо от среды распространения. Чистая радиотехника, все модемы так работают.

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

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

Полагаете, разрабы сетуни были НАСТОЛЬКО тупыми и некомпетентными, что до этого не додумались? Это предположение выглядит крайне сомнительным, учитывая, что им таки удалось построить работающую машину.

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

Это как с юстировкой головок на древних дисковых накопителях, вроде работает но постоянно требуется человек для регулировки(было дело, был причастен, СМ-2М).

Кремниевый транзистор к середине 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.

Причем 650 - это поздний компьютер, специально собранный из тормозного, но дешевого дерьма для нищебродов. Выбор именно его для сравнения - замечательная подтасовка.

IBM 704 - 1955 - 12 тыс. add/sec
IBM 709 - 1958 - 42 тыс. add/sec
Сетунь - 1959 - 4,5 тыс. add/sec

То есть по факту сделали компьютер в 10 раз медленнее, а не в 100 раз быстрее.

Это не хорошо и не плохо, цель Сетуни была не в быстродействии, но в статье конечно постарались зализать.

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

...

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

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

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

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

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

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

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

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

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

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

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

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

Большую часть (30) машин передали в ВУЗы. Обучать студентов. Это прямая диверсия.

А лучше бы было изучать программирование карандашом и бумагой, видя ЦВМ только на праздничных фотографиях в газете "Правда" ?

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

Лучше было бы, в тех условиях, для обучения студентов собирать четырёхразрядные двоичные машины. Для практических задач они годны весьма слабо (хотя позже проц 4004 использовался в реальных коммерческих разработках -- значит, что-то полезное он уже мог делать), зато снижение разрядности хорошо уменьшает размер АЛУ (в 4004 было всего 2300 транзисторов, а не 4800, как в 8080), так что вместо одной нелепой сетуни можно было построить несколько машин нормальной архитектуры, вполне годных для обучения студентов.

лучше купить было каждому студенту домой IBM 360, гораздо лучше

но получалось то, что получалось

лучше купить было каждому студенту домой IBM 360, гораздо лучше

Нет, не лучше. IBM System/360 появилась позже, стоила дорого, и, если я не ошибаюсь, их вывоз в ссср был запрещён, так что попытка сарказма -- мимо.

А вот строить вместо нелепой сетуни простые двоичные машины с четырёхразрядным словом было бы действительно лучше. Для обучения студентов основным принципам они и сейчас подходят не хуже более продвинутых моделей (хотя сейчас студентов учат основам на восьмибитниках -- но это чисто технически так получилось, ибо восьмибитные процы производятся до сих пор, а 4004 снят с производства полвека назад), но двоичная логика логичнее троичной (пардон за тавтологию), а ресурсов, освобождённых отказом от одной сетуни, хватило бы на несколько четырёхбитных машин (в сетуни использовалось слово из девяти тритов, т.е. для его обработки требовалось примерно столько же элементов, как для 18 двоичных битов. Ну, тупо напрямую сравнивать нельзя, так что сетунь конечно не равна 4.5 нормальным машинам, но 2-3 точно можно было вместо неё построить).

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

Строить стопиццот менйстримных комьпютеров и купить стопиццот абиэмов было для СССР абсолютно одинаковой фантастикой, оторванной от реальности.

В реальности были только 50 бонусных Сетуней, их можно было подарить каким-нибудь рабочим-колхозникам, или студентам, или на свалку. И подарить студентам было бы неплохим выбором.

двоичная логика логичнее троичной (пардон за тавтологию)

Она привычнее.

Какая нафиг логика, если -1 записывается разными способами, а +0.0 и -0.0 - разные числа.

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

На тот момент, каким будет будущее чудо никто не мог знать, могло оно и естественным образом троичным оказаться. Не были ещё изобретены ни MOS, ни CMOS

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

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

хватило бы на несколько четырёхбитных машин

которые на хрен никому не нужны, и даже предсказать что будут нужны невозможно

это сегодня можно сделать однобитный процессор, и пофигу что он на каждое действие будет 20-30 тактов делать, дурная сила гигагерцев справится. А тогда было наоборот, единицы и первые десятки КГц и максимально широкие шины, чтобы хоть что-то вообще успеть посчитать

и основой компьютера были 6 битов, а не 8. Для текста хватит 6x1, для простых расчётов - 6x2, для точных 6x3 и для экстремально крутых - 6x4. Нет, ну конечно 6x2 можно поделить на 4 тоже, это как сегодня делать 5-битные компьютеры примерно, не байт, но можно же набрать в принципе

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

а 8-битовые компьютеры как дешевая игрушка для детей - это вообще конец 1980-х (в богатых США, не в СССР)

в реальности 1950-х двоичный компьютер - это ОЧЕНЬ дорого и ОЧЕНЬ медленно по частоте, и поэтому должна быть максимально широкая шина кратная 6 битам. А в будущем будут "разумные роботы" а вовсе не суперкомпьютер по цене одного обеда в ресторане в каждом кармане, чтобы в кошечек пальцем тыкать.

Полагаю, мировому рынку хватит и пяти компьютеров. (Thomas J. Watson, председатель правления IBM, 1948 г.

Или ещё:

Главные отрасли промышленности Земли работали на Мултивак – исполинскую вычислительную машину, которая за пятьдесят лет выросла до невиданных размеров и, заполнив Вашингтон с его предместьями, протянула бесчисленные щупальца во все большие и малые города мира. (Айзек Азимов, 1958 - как раз время Сетуни)

Какие ещё к лешему 4-битные калькуляторы по цене небольшого города, на которых можно будет научиться тому, чего никогда не будет?..

Куда-то вас унесло. Машины не бонусные, а из утверждённой серии. Собранные не студентами, а на Казанском заводе. Сбывались не только вузам, но и заводам (Брусенцов писал о победе над директором завода - тот не смог отказаться от машины). Отставали не в микроэлектронном будущем, а уже тогда (неэффективное использование памяти, некоторый паритет только с десятичными магнитными компьютерами). Арифметическое устройство в Сетуни как раз последовательного действия было (хоть и "с отдельным блоком для выполнения быстрого умножения"). Наверное, только с кратностью в точку. Надо было им предсказывать 12-битность?

В реальности были только 50 бонусных Сетуней, их можно было подарить каким-нибудь рабочим-колхозникам, или студентам, или на свалку.

Бред же. Я понимаю, как бонусом из НИОКР может получиться одна машина, но 50 -- это серийное производство на заводе, Бруснецов воспользовался технической неграмотностью начальства и пропихнул свой вредительский проект.

Она привычнее.

Она проще. Я не помню наизусть таблиц истинности для типовых логических элементов (потому что их просто незачем помнить, они ж очевидны), но любую из них напишу за то время, которое нужно на само действие "сделать табличку, вписать в неё цифры/знаки". Правила троичной логики я знаю, но чтоб написать банальную таблицу истинности для, скажем, троичной "2И", мне понадобится подумать пару минут.

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

Конраду Цузе расскажите, что "материалы, в которых естественно делать двоичные элементы" появились "потом". Он двоичную машину ещё в 38м году построил.

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

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

это сегодня можно сделать однобитный процессор, и пофигу что он на каждое действие будет 20-30 тактов делать, дурная сила гигагерцев справится. А тогда было наоборот, единицы и первые десятки КГц и максимально широкие шины, чтобы хоть что-то вообще успеть посчитать

Первая в мире программируемая ЭВМ "Z3" Конрада Цузе, применявшаяся для практических задач, была двоичной, работала на тактовой частоте чуть более пяти Герц и имела вычислительную мощность около 2 флопсов. И ничо, хватало для реальной работы, имеющей практическую ценность.

и основой компьютера были 6 битов, а не 8.

Если вы словом "компьютер" обозначаете сетунь, то не шесть битов, а шесть тритов, что по теории информации примерно равно девяти с половиной битам, а чисто по железу эти шесть тритов стоили, примерно как 20 (12-18-24 в разных узлах) бит. Экономия -- только на проводах, а они в те времена стоили ничтожно мало по сравнению с другими деталями. Это вам не современность, где ради экономии нескольких проводов оказывается выгодно засунуть в клавиатуру или в принтер специализированный компьютер, более мощный, чем все вместе взятые компьютеры, использовавшиеся землянами для нужд космоса в 60ых.

а 8-битовые компьютеры как дешевая игрушка для детей - это вообще конец 1980-х (в богатых США, не в СССР)

В коннце 80ых игрушки для детей в богатых сша уже были шестнадцатибитными, и стоили там примерно как хороший велосипед. Восемь бит -- это игрушка для гиков из конца семидесятых (Альтаир, 1975, 400$, Эппл-1, 1976, 666$ и т.д.).

в реальности 1950-х двоичный компьютер - это ОЧЕНЬ дорого и ОЧЕНЬ медленно по частоте, и поэтому должна быть максимально широкая шина кратная 6 битам.

Просто бред. Почти все компьютеры были двоичными -- потому что это ДЕШЕВЛЕ. Троичная сетунь была дороже и хуже, чем была бы эквивалентная ей по флопсам двоичная машина.

А для скорости просто наращивали разрядность, строили машины с самой различной длиной слова, зависимо от требований заказчика -- например, 20, 22, 23, 24, 26, 27 разрядов (цифры реальные, машины именно с такими словами реально существовали). Советские сумрачные гении даже машину на сто-с-чем-то разрядов собирались построить, да вовремя вышел запрет на дурацкие самоделки.

Ни о какой кратности шести битам, разумеется, и речи не было.

Какие ещё к лешему 4-битные калькуляторы по цене небольшого города, на которых можно будет научиться тому, чего никогда не будет?..

Серийная сетунь стоила, примерно как автомобиль "волга". Четырёхбитная машина стоила бы в 2-3 раза меньше, причём ничем, кроме короткого слова, не отличалась бы от "настоящих", более продвинутых машин.

Совершенно в то же время, в том же государстве, но в других ВУЗах, студенты изучали и работали с полупроводниковыми "классическими" (двоичными) "Днепр", "Наири", "Минск-2"/22, "Мир-1", "Раздан-2", "БЭСМ-4"...

Однако, кому-то "повезло" вляпаться в эту псевдо-троичную нелепость.

Польза кажется все же есть. Данные машины показали, что реализовать такое возможно. Также они показали, что реализовывать не нужно. Оба вывода важны для студентов. И не только для них. Сокурсники из МФТИ, которым читали на занятиях про эти машины, потом бегали с горящими глазами и задалбывали всех: "а представляешь!". И вспоминали про них и потом, спустя много лет.

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

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

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

выбрать одну нормальную ЦВМ и поставить во всех вузах одинаковую государство не тянуло

поэтому либо хватали, что успевали, либо программировали на бумажках

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

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

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

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

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

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

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

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

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

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

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

И в этом месте интересный факт: более трёх фаз - слишком уж расходно будет, менее трёх фаз - слишком уж будет неудобно.

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

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

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

Или, по мере развития и удешевления полупроводниковых коммутирующих и преобразующих устройств, полностью перейдёт на HVDC (ЛЭП постоянного тока). Они пока дОроги из-за дороговизны преобразующих подстанций, но передавать электричество по ним выгоднее на 10..25% (чем больше и дальше, тем больше экономия), в основном за счёт отсутствия реактивных потерь.

Вон, в бытовой технике блоки питания с низкочастотным трансформатором (50/60Гц) за последние ~20 лет исчезли полностью, сейчас вся техника использует высокочастотное преобразование -- даже сварочные аппараты сейчас дешевле делать "импульсными", с лёгким ВЧ-трансформатором, а не с огромным низкогерцовым. Логично предположить, что постепенно придём к тому же и на промышленном уровне, а там и до перехода на HVDC недалеко.

Уже сейчас совершенно не важно, какая там степень при делении: ЭВМ достаточно быстры. В общем, это уже давно несущественно.

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

Шаговых двигателей, из наиболее распространенных есть два типа, биполярный и униполярный. Одни устарели, вторые те же две фазы, но всего две обмотки и каждая используется со сменой направления тока, то есть +1, 0, -1 дважды. И так во всех современных cnc, 3d принтерах и много еще где. В бесколлекторных двигателях, которые, например в квадрокоптерах, таже тройка трижды.

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

А в двоичной на три. И как быть?

Легко - надо всего-навсего перевести множимое в систему счисления равному множителю и сделать один сдвиг )))

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

Умножение просто делается: x * 2 = x * 3 - x

К сдвигу на трит операция вычитания добавляется

А вот деление - сложнее. Деление на 2 можно представить как умножение на 1/2. Приближённо 1/2 можно вычислить в несколько шагов по следующему алгоритму:

x1 = 1 + 3⁴
x2 = x1 + x1 * 3²
1/2 ≈ (x2 + x2 * 3) / 3⁸

Соответственно, при делении числа y на 2 мы в этом алгоритме заменяем 1 на y, умножение и деление на степень тройки - соответствующими сдвигами:

x1 = y + y * 3⁴
x2 = x1 + x1 * 3²
y / 2 ≈ (x2 + x2 * 3) / 3⁸

Если требуется более высокая точность - алгоритм будет немного другим

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

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

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

Может, не троичная, а просто держали что-то предумноженным на 1/3?

трёхфазных систем: электродвигателей
...
здесь видна новая грань полезности

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

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

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

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

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

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

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

По-моему, лет 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 памяти.

Плюс за упоминание кода Radix50 с размером алфавита в 40 символов. ;)

Построили график функции, по одной оси - размер словаря, по другой - количество информации (размер самого текста + размер словаря). В итоге получилось, что при числе символов в словаре, равном 4, у нас будет самый эффективный способ передачи информации.

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

Если бы 4 было оптимальным, его бы использовали часто. Может, оно оптимально только для нашей, углеродной, ДНК?

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

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

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

Вот сейчас токенизаторы со словарями порядка 50 тыс слов или кусков слов. По пять байт на каждый - будет 250 килобайт. Потом каждый токен можно будет поместить в два байта. Как-то делал массив, он двумерный, если сделать длину слова переменной, то надо ещё указатели хранить на них. Если слова длинные, то есть смысл, если короткие, то проще фиксированный размер иметь. И так далее, не просто всё учитывать .

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

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

Как они там по парам - это один вопрос, но считается, что алфавит состоит из четырех элементов.


Это mRNA. Каждый кодон состоит из трех нуклеотидов.

В ДНК вместо U (урацил) присутствует T (тимин).


А тут - ДНК

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

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

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

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

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

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

Нельзя, но повторюсь: глупые мысли людей берутся не с потолка - это или ошибочный, но существующий в инфополе факт, либо ошибочная интерпретация фактов самим автором, то есть в случае с человеком, даже за ошибкой что-то стоит, а это сужает пространство. Ну то есть человек может написать что-то вроде “как известно, викинги носили шлемы с рогами” и тут чутка эрудированный читатель сразу заметит ошибку, а менее эрудированный тоже быстро при желании найдет опровержение этого факта. ЛЛМка же запросто выдаст что-то вроде “как известно викинги носили шлемы с мордами кабанов” и этот бред уже так просто глазом не выцепится. Поскольку нейронки генерят в основном бред проще и надежнее их сразу игнорировать, таким образом вероятность бреда в читаемом сразу снижается с 99.99% до преемлимых 70

 этот бред уже так просто глазом не выцепится

Да одно и то же. Читатель либо профи в ранних европейских шлемах, либо нет. Если да - то в обоих случаях заметит ошибку. Если нет - то нет в обоих случаях.

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

Не получается заметить факт ошибки по внешним (out of band) проявлениям. Нейронка не начнет нервно крутить пуговицу, потому что ни пальцев не пуговицы не имеет. Но если смотреть только на готовый текст, то отличия от самоуверенного белкового краснобая нет

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

редкий человек гонит бред в статью в том же стиле как и нейронка

про постоянство и даже индивидуальную подгонку стиля я согласен и о том написал, но спор был влияет ли суть ошибки

известное заблуждение, опровержение которого тоже есть в каждом утюге

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

а найдя - ещё надо будет понять, может быть это именно опровержения врут

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

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

Вовсе нет - распространённые заблуждения на то и распространённые, что их опровержения тоже в инфополе висят и многим известны. То есть факт “викинги не носили шлемов с рогами, это распространенное заблуждение” уже известен многим, в отличие от галюнов нейронок

То есть факт “викинги не носили шлемов с рогами, это распространенное заблуждение” уже известен многим

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

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

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

Разумнее пометить вопрос…

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

А что толку? Опровержения многих мифов “висят в инфополе”, как вы выразились, но их адептов от этого меньше не становится.

Задача не искоренить адептов (хотя нейронки со своими шершавыми кабанами добавляют новых адептов новой шизы), задача не стать адептом самому, при этом не тратя двое суток на рисерч после каждой прочитанной статьи. Отправка нейрослопа в dev/null не читая очень этому способствует

ТОЧНО мы узнать не сможем, были у них рога на шлемах или нет

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

На этом принципе, например, основана Википедия: чтобы написать статью про сепульки, мне не нужно быть учёным сепульковедом, вместо этого достаточно пересказать прочитанные научные работы, чтобы дать читателю примерное, пусть и не идеальное, но достаточно близкое к реальности представление о предмете. То бишь, отсутствие собственной компетенции компенсируется расчётом на то, что уважаемый учёный не часто будет в своей работе нести чушь (а если какой-нибудь Лайнус Полинг и встретится, то это компенсируется использованием источников от разных авторов - если 9 говорят "белое", а десятый "чёрное", то разумнее полагаться, на то, что сепульки белые).

На всякий случай напомню: у меня НЕТ собственного мнения о том, носили викинги рога на шлемах или нет.

ни в одной серьёзной научной работе по этой теме вы не найдёте утверждения о наличии рогов

Вам знакома проблема штанов Арагорна? Если нет, то суть её в том, что нигде в текстах Толкиена не говорится наличии у него штанов. Упоминаются только сапоги и плащ. Конечно, здравый смысл нам подсказывает, что штаны у Ары таки были -- но из текста это не следует. Средневековый шотладнец, если б прочёл книгу, уверенно сказал бы, что Ара, конечно же, носил килт, а дикий папуас из племени, где штанов не носят, не менее уверенно скажет, что высоких сапог и длинного плаща вполне достаточно, чтоб не мёрзнуть, поэтому очевидно, что штанов Ара не носил.

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

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

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

если 9 говорят "белое", а десятый "чёрное", то разумнее полагаться, на то, что сепульки белые

Голосование не является способом установления истины.

Когда я с четверть века назад предложил на одном форуме простой способ для превращения VBA-шного ГСЧ из спектрально-структурированного в белошумовый с помощью вставки DoEvents перед Randomize, из нескольких сотен читателей всего несколько поняли, какую проблему это решает и как это решение работает. (если интересно, могу рассказать подробнее, в VBA до сих пор используется кривой ГСЧ)

Находку объявят подделкой, нашедшего – мошенником и мракобесом, и забудут эту историю

На мой взгляд, вы все же несколько излишне доверяете розовской публицистике )
Он, конечно, пишет живо и убедительно, но стоит помнить, что хотя камни с неба падать, конечно, не могут - тем не менее слово “метеорит” в активный словарный запас каким-то образом попало.

На мой взгляд, вы все же несколько излишне доверяете розовской публицистике )

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

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

У него очень много здравых идей, и очень здравых. И хватает (а у кого их нет) идей, хм, не очень здравых. В частности, представления о том, как работает наука, у него местами совершенно пещерно-троглодитские. Причем в части как негативной (вот это вот ваше Находку объявят подделкой, нашедшего – мошенником прямо как с его публицистики списано - так вот, скорее всего все будет происходить ну совсем не так; ваш вариант не то, чтобы совсем невозможен, но просто крайне маловероятен), так и позитивной. Его описания “работающей” науки - фентези почище Толкиновского.
Что меня печалит, конечно.

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

Мне напомнить вам историю доктора Земмельвейса? Убедиться в его правоте было легко и почти бесплатно -- но никто этого не сделал, потому что его открытие шло против принятых тогда в "научном сообществе" догм.

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

Ну, вы мне напомнили историю доктора Земмельвейса. По вашей логике, врачи и сейчас не моют руки перед операцией? Как так - моют? А как так могло случиться, если принятые в научном сообществе догмы столь всесильны?

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

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

С археологией такое не сработает: если какую-то находку "отменят" из-за того, что она противоречит "повесточке" или принятым в сообществе догмам -- совсем не факт, что потом найдётся ещё одна аналогичная находка.

если какую-то находку “отменят” из-за того, что она противоречит “повесточке” или принятым в сообществе догмам – совсем не факт, что потом найдётся ещё одна аналогичная находка

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

С археологией я знаком не очень хорошо. Гораздо лучше с палеогеографией. Там, в частности, вполне существует теория, противоречащая текущему мейнстриму - относительно того, как выглядел т.н. “ледниковый период”. Данилов, Чувардинский, Калякин-старший. Внезапно никто не обзывает их мошенниками и мракобесами: с ними не соглашаются, их не понимают, но публиковаться им это совершенно не мешало/мешает.

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

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

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

Деревья были красно-черные

Сбалансированные!

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

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

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

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

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

> Похоже на тупое проедание гранта

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

Лет 10 назад в википедии писали, что примерно в то же время поляки тоже хотели утереть СССР нос и тоже сделали троичный компьютер, только несбалансированный (цифры 0, +1, +2). Вот кому и зачем ТАКОЕ было нужно - непонятно :-) А ЦВМ, в которой отрицательные числа есть сразу на нижнем уровне - это как минимум интересно

Сейчас, правда, это убрал, про поляков. Зато написали, что в Южной Корее с помощью Самсунга хотят сделать экспериментальный троичный процессор. Тоже "лады гранты проедают" или все же есть видимо какой-то резон изучать нестандартные техники?..

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

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

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

В "Долой биты" важнее, что по крайней мере на тот момент, на конце седьмого десятка, Брусенцов уже чудил.

PDP-8 стоила 20 тысяч долларов без всякой периферии, только один процессорный блок ... Чехи считали, что могли хорошо продавать «Сетунь» в соответствии с рыночными ценами и получать порядка полумиллиона долларов прибыли с каждой машины.

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

[про скорость развития компьютерного железа в 2004 году] каждые три-четыре года нужно покупать новый компьютер и новый софт ... Но почему? Да потому, что в самом начале заложены неверные принципы. Если вы в основу заложите простые, естественные принципы, то и все развитие происходит просто, логично, естественно.

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

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

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

Зато положительный и отрицательный ноль никуда не исчезли.

Или, в случае дополнительного кода, несимметричность величин максимального положительного и минимального отрицательного числа.

Допкод это и есть костыль. Пара операций просто на пустом месте

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

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

нет явного признака знака в старшем разряде.

Он не нужен.

В троичной симметричной системе ({-1,0,1}) знак определяется самым старшим ненулевым тритом

Да, но его надо искать, а в двоичной его позиция фиксирована.

Аппаратно, например через каскадную логику. На выходе будет одно из трех значений: −1, 0 или +1.

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

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

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

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

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

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

Может что на оптике можно сделать, кодировать не уровнем, а цветом - длиной волны.

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

Не знаю даже. Это дело специалистов.

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

Спасибо! Это и хотелось понять.

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

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

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

Для передачи большого кол-ва информации лучше использовать троичную систему (напр. на оптоволокне и спец. лазерах), т.к. 661578 разряд в троичной хранит больше информации чем 1048576 разрядов в двоичной и нужно передавать сигнал в ~1.584962 (для 64 байтов [мин. ethernet пакет] - 512 бит, что меньше информации в 324 тритах, кол-во необходимых сигналов для передачи сокращается в ~1.580247 раз) раза меньшее кол-во раз - время передачи сокращается, расход энергии сокращается. Больше информации за раз - больше экономия. Напр., для видео/аудио и пр. больших объёмов, для небольших - лучше двоичными, т.к. там разница в ~1.5 раза и выгода от использования пары трёхстабильных элементов для передачи троичных данных стремится к 0.

Т.е. и троичный процессор должен работать с блоками, а не с отдельными тритами (SIMD), чтобы выгода была отлична от 0 по объёму схемотехники и энергопотреблению. Т.е. не для обычных пользователей, т.к. кач-во кода в таких системах не впечатляет (от ОС и до пользовательских программ).

Для передачи большого кол-ва информации лучше использовать троичную систему

А вы не думали, что если бы передавать таким образом информацию было бы действительно эффективнее, то так уже бы и делали и об этом писали бы в любой статье про "Сетунь" (как эта), и мы бы уже это знали?

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

Системы счисления не работают на этом уровне.

Мы не смотрим на запись в TLC-флеш или на 8PSK как на преобразование чисел в 2^3-ричную систему. И не смотрим на методы сжатия как на странные системы счисления (asymmetric numeral system, да-да). И на кодировки так не смотрим.

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

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

смена основания не бесплатна. Она требует ресурсов, программных или аппаратных — неважно.

*С учётом контекста, что смена системы счисления бывает эквивалентна сжатию*, ну вот и избегайте теперь сжатия, начните с network.http.accept-encoding.

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

У Ethernet протокола на 1Гбит там 1.25+Гбит на физ. уровне. И такие люди будут думать о выгоде в 1.5+ раза по плотности информации для передачи? Бред же.
Потом добавьте потери скорости при перекодировании из двоичной в троичную и обратно. Ещё меньше людей будет о таком думать.
Элементная база нужна + толстый заказчик, т.к. на малых объёмах экономика не экономит. Круг заинтересованных людей сужается в точку.

Если бы все думали, что все за них уже всё подумали, то сидели бы мы в какой-нибудь пещере нынешней Франции. Если у вас есть мат./физ. док-ва, что это невозможно, то кидайтесь ссылками, чтобы и меня просветить.

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

Т.е. 128b/130b, 64b/66b, 8b/10b кодирование это враньё?
Я думал о чём-то таком (8b/6t) https://en.wikipedia.org/wiki/4B3T
Лучше от 128b/Nt, чтобы было ближе к макс. плотности.
Если там плотнее кодируется нормально, то неплохо, но тройка всё равно должна давать максимум плотности при 3, 9, 27 и т.д. уровнях на такт.

Edit: Хотя по энергоэффективности выгоднее пару линий с PAM-3 и (M)b/(N)t кодировкой, т.к. 9 уровней это слишком жёстко.

Для передачи большого кол-ва информации лучше использовать троичную систему

Это верно только для каналов непосредственной передачи данных, типа ЛПТ-порта, да и то, "лучше" это только на низких частотах передачи, где ещё неактуальна скорость и точность изменения состояний.

Кстати, стандарт RS232 таки троичный, +12В единица, -12В ноль, 0В -- нет передачи значащего бита данных в данный момент.

Кстати-2, ТТЛ-логика тоже отчасти троичная -- 0...1В -- ноль, 4...5В -- единица, 2...3В -- Z-состояние, т.е. "на этом выходе нет значащей информации"

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

для достижения максимальной надёжности, используются только два максимально разнесённых друг от друга состояния среды

Так было до 90х, сейчас медные линии многоуровневые и внешние и внутренние

Ну, сейчас, как я понял, упёрлись в частоту чистой FM и оказалось выгодно вместо неё (и тем более вместо чистой АМ) использовать их "смесь", где кодирование использует и временнУю (частотную) и амплитудную модуляцию одновременно. На на медных линиях есть проблема с этим -- из-за наличия ёмкости, есть предел скорости изменения состояния.

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

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

FM, AM это эфир и там изначально симметричный сигнал

Вы как-то уже определитесь:

сейчас медные линии многоуровневые

по меди в скоростных шинах два уровня не передается сегодня

так многоуровневые или нет?

FM, AM это эфир и там изначально симметричный сигнал

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

Что тут определяться. Принято повсеместно - много это больше чем два.

"Симметричность вроде бы нужна"))) волна состоит из двух полуволн. В этом и симметрия. Без этого никак.

Принято повсеместно - много это больше чем два.

Это у филологов так принято, две точки -- двоеточие, три точки -- многоточие )

А по логике, "много" -- это когда больше, чем один.

"Симметричность вроде бы нужна"))) волна состоит из двух полуволн. В этом и симметрия. Без этого никак.

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

Несимметричные волны? Теоретически можно, а зачем? Вешанию такое надо?

ЭТо айти сфера возомнила, что создала свой ассиметричный мир и он лучше. В природе везде симметрия.

и что значит один? Если есть один, то должен быть ноль. В сумме это уже два

Троичное - это кодирование линии, это не следует смешивать с оригинальным представлением информации (например, в процессоре)

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

Я её не имел ввиду. Она то архитектурно троичная, а на физическом уровне двоичная. Я имел ввиду, что существует line coding, которое является самостоятельной сущностью.

Это игра в слова. Либо сетунь не троичная, либо RS232 тоже троичный.

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

А эрэска с какого перепугу троичная? Там три уровня?

Хм... Запутали что-то. Я когда интересовался Сетунью, мне показалось, что да, именно троичная ячейка (типа магнитных полюсов: север, юг и нет поля). Если так, то споры ни к чему.

А эрэска с какого перепугу троичная?

Видимо имелось ввиду то, что физически можно выделить три уровня: 0, 1 и отсутствие сигнала.

Видимо имелось ввиду то, что физически можно выделить три уровня: 0, 1 и отсутствие

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

Ячейки памяти в сетуни бинарные. Одно колечко хранит "+1", другое "-1", два нуля равны нулю, комбинация двух единиц не используется.

RS-232 имеет три состояния линии: -12 ноль, +12 единица, 0 -- в данный момент на линии нет значащих данных.

Можно сказать, что полуячейка бинарна, но ячейка тринарна. Два плеча связаны.

Вообще чисто бинарных работающих систем не существует. Они все по большому счету тринарны. Реализуются только с разной степенью эффективности.

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

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

А то, что декодируется в бинарный при передаче, так человечество не первый и не последний раз выбирает тупиковое направление

Нет, не игра. Любая система состоит из блоков, уровней. На каждом уровне свой алфавит символов.

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

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

Теорема Шеннона это частный случай. Устарело

Можно об этом поподробнее, а именно:

  • что является общим случаем и

  • какие теоремы, описывающие случаи, не покрываемые ею, пришли на смену?

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

Конечно он его не рассматривал. Теорема Шеннона описывает верхний теоретический предел пропускной способности канала связи при заданных ширине полосы и SNR, какое бы кодирование там ни использовалось. А два уровня у вас там или QAM256, это теореме безразлично.

Он рассматривал исключительно два уровня. И верхний предел при них. В то время о другом речь просто не шла. И никакие QAM, PAM, тогда даже не снились. Времена контактного телеграфа таки.

Зачем вы рассказываете о том, в чём не разбираетесь? Двоичность -- это лишь частный случай теоремы Шеннона, когда число возможных символов в алфавите (состояний среды передачи) равно двум (0 и 1).

Теоремы Шеннона это вообще частный случай, как, собственно и любая теорема. Но вы в этом лучше разбираетесь по вашему заявлению. Сам не знаю, зачем я азбуку цитирую

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

С логической (не физической) точки зрения наши компы не двоичные, а 256-ричные, потому что минимальный объём адресуемой ячейки памяти - 8 бит или байт. Мы не можем расположить переменную произвольно в памяти с точностью до бита, не может оперировать типами с размером не кратным 8 бит, без дополнительного слоя симуляции двоичной системы. Двоичность современных компов проявляется только на уровне железа и вовсе не видна в софте. На логическом уровне мы может рассматривать наши компы как 256ричные, это будет правильней.

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

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

256-ричные тогда уж.

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

Возможно оптические вычисления позволят создать такие процессоры?

легко интегрированы в имеющуюся железную инфраструктуру, с минимумом переделок

Процессор с 256 уровнями сигнала вместо двух? Точно?

256 мало. Современные процы могут в 64 бита. Это же 18446744073709551616 состояний. Вот к чему стремиться надо, но проще аналоговый вычислитель сделать.

Процессор с 256 уровнями сигнала вместо двух? Точно?


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

256-ричные процессоры

А смысл? Обычные процессоры тоже своего рода 256-ричные: у них байт - минимальная адресуемая единица информации. Ну будет вместо "байта" "256-бит". Но не факт, что схемотехника окажется проще.

p.s. не читал всю ветку, а надо было

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

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

К чему уж эти полумеры. Сейчас уже делают квантовые компьютеры на кубитах с бесконечным числом состояний. ;)

Ну да, вчера прохожу мимо ларька, смотрю квантовые компьютеры продаются

Красивый инженерный концепт для своего времени, но выживает не самое элегантное решение, а то которое дешевле масштабировать на миллиарды транзисторов

Без учёта странностей реализации (используется три из четырёх состояний), у тритов есть ещё одно важное преимущество — простота округления. Отбрасывание дробной части — это всегда округление до ближашего целого. Никаких floor/ceil, не надо думать о знаке.

Кнут в “Искусстве программирования” действительно писал, что нет проблем с округлением, но, на самом деле это не так. В троичной арифметике сложности с числом 1/2, так как оно представимо двумя равнозначными способами в виде бесконечных периодических дробей, из-за того, что троичная запись допускает вычитание, и, при этом 1/2 = 1 - 1/2

В троичном виде: 0.(+1) = +1.(-1)

То есть мало того, что мы 1/2 не можем точно записать, так ещё и непонятно, какую из двух форм выбрать.

1/2 = 1 - 1/2

Так это и в двоичной форме так же.

Аналогичная проблема существование двух нулей, положительного и отрицательного.

И то и другой можно допустить или недопустить как раз стандартом на кодирование чисел.

Так это и в двоичной форме так же.

Я хотел показать, что в троичной системе проблема округления 1/2 никуда не исчезает. Причём если в двоичной мы 1/2 можем записать точно - хватило бы разрядов, то в троичной это невозможно сделать.

Ну это математика вообще. Геометрические прогрессии, взаимно простые числа и периодические дроби. В двоичной системе невозможно в конечном месте двоичной дробью записать 1/3, а в троичной - невозможно 1/2.

Я возражал конкретно про две разные возможные записи.

В двоичной бесконечная периодическая дробь равна другому числу, в случае если у нас бесконечное число единиц после точки: 0.(1) = 1. И этот случай проблем не вызывает: мы просто выберем 1. А вот в троичной если у нас ноль целых и после точки только плюс единицы, или целая единица, а после точки минус единицы, то эти две бесконечные дроби равны между собой: 0. +1 +1 +1 … = +1. -1 -1 -1 … И здесь уже нельзя сделать однозначный выбор.

В двоичной 1/3 без проблем округляется. В троичной округление 1/2 неоднозначно. Если мы будем, как в школе 1/2 округлять только по направлению от нуля, то есть, выбирать только форму +1.(-1), то начнётся дрейф и накопление ошибки. В двоичной с накоплением ошибки борются округлением к чётному. Только в троичной у последней цифры не 2, а 3 возможных значения. Простой алгоритм округления работать не будет.

У нас нет в компьютере бесконечных дробей, память конечная, а в то время - ещё и очень маленькая. Поэтому обсуждать тут особо нечего. Периодические дроби (настоящие, а не как извратный способ записать целое число, я знаю что 5 = 4,999(9), а не только 5,000(0)) в реальном компьютере не представимы позиционной записью.

 И здесь уже нельзя сделать однозначный выбор.

А как сейчас делается выбор между +0 и -0 в числах IEEE 754?

Вот точно так же, зафиксировать в стандарте, что должен быть такой и только такой вид. Или оба вида. Как в стандарте сделаете - так и будет.

Аналогично в двоичной системе нельзя "сделать однозначный выбор" как записывать -1 - никаких дробей, целое число УЖЕ нельзя записать однозначно.

Если ваш вопрос чисто абстрактный - какой из двух НЕВОЗМОЖНЫХ в реальности вариантов выбрать, чтобы НЕ записывать их в компьютер (потмоу что невозможно), то минус единица вполне себе реальные данные, которые можно и часто нужно записать в компьютер. А однозначности нет.

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

Ну вот в программе нужно поделить 1 на 2. Бесконечных дробей нет. Поэтому нужно выбрать один из округлённых вариантов в троичной системе: 0.+1 +1 (округление вниз) или +1. -1 -1 (округление вверх). Оба дают одинаковую погрешность. И какой выбрать? Если мы будем выбирать только один из вариантов, допустим, только округление вверх, то при больших расчётах будет накопление ошибки. Если нужно много раз просуммировать: 1/2 + 1/2 +1/2 + … то мы уйдём куда-то не туда.

Мы, по-моему, о разных вещах говорим, и лучше завершить дискуссию.

Так и в этом нет ничего специфического для троичной системе.
Вы подняли типовую проблему всех финансовых программ - банковых, бухгалтерских и т.д.

Невозможность записать конечной двоичной дробью 1/10
Необходимость округлять либо вверх, либо вниз
Опасность слабого, но постоянного дрейфа.

Есть разные подходы, есть "бухгалтерское округление", которое делается по очереди вверх и вниз. Или иногда вводят отдельное поле для погрешности и его тоже как-то хранят и учитывают в остальных расчётах. Значения не абсолютные, а с точностью до.

Но дело не в том, КАК именно с этим жить, а в том, что с этим УЖЕ приходится как-то жить на вполне реальных двоичных компьютерах. Ничего нового тут троичная система бы не добавила. Просто неудобными числами стали бы другие. Но сама проблема у двоичных компьютеров стоит так же, как у троичных. Просто проявляется на других числах.

Да банальное даже (на условном бейсике)

LET x = 1.0
LET a = x / 3 : LET b = a : LET c := a;
LET y = a + b + c
PRINT x = y

В результате почти всегда будет FALSE, почти во всех реальных языках.
Почему? потому что это врождённая неизлечимая проблема двоичной системы. У троичной тоже такая есть, да. Но именно, что ТОЖЕ

Мир свернул не туда

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

Публикации