Entertaining tasks
Mathematics
Abnormal programming
Programming
Programming microcontrollers
Comments 22
0
Что интересно, вы не первый, кто мне задаёт такой вопрос.

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

И, вот, очень жаль, что не хватает. Читать криво нарисованные схемы довольно неудобно (рисунки 1-к-4 и 1-к-9)

0
У меня нет рисунка 1-к-9… А в чём бы вы предложили рисовать?
0
Супер. Только почему регистры нумеруются с единицы? Обычно с нуля, а для троичной арифметики, наверное, вообще как-то по другому должны нумероваться.
0
Ну а команды у меня нумеруются с минус четырёх :)

И именно поэтому нет нулевого регистра, т.к. знак команды даёт направление копирования.
0
Извините, я не в курсе начала обсуждения, но Вы не смотрели публикации начала 50-х? Тогда же были разработаны несколько версий троичного компьютера. Может найдете что-либо полезное.
0
Я не очень знаю, о чём вы конкретно, но подозреваю, что о Николае Петровиче Брусенцове и его Сетуни. У нас с ним сильно разные задачи.

Был бы благодарен, если бы вы могли точнее указать полезные публикации.
0
К сожалению, не могу, не имею точной информации. Когда-то ( с 1996 по 2006) преподавал криптографию на кафедре ЭВМ в МИИТе и там на стендах кафедры была такая информация о троичной логике в ЭВМ первых поколений. Поэтому по ассоциации с Вашей публикацией это и вспомнилось.
+1
ЭВМ первых поколений не была полностью троичной. Большой проблемой является создание (энергонезависимой) троичной памяти, та же сетунь использовала два ферритовых колечка на трит (три состояния из четырёх).

Я же сделаю бескомпромиссно троичный вычислитель, хотя и гораздо более примитивный, нежели сетунь.
0
Чуть яснее представилось практическое применение тернарной логики.
0
Не очень ясно, что именно вы имеете в виду под практическим применением. Стоящего практического применения как такового у неё нет, бинарная логика проще и надёжнее. Или вы имели в виду как именно можно что-то вычислить при помощи троичной логики?
0
Стоящего практического применения как такового у неё нет, бинарная логика проще и надёжнее.
Это не совсем так. Результатом сравнений двух чисел на большинстве процессоров является два флага: Z и V. Но только три компбинации имеют смысл.

С троичными чистами такой фигни нет.
0
V это разве не переполнение? Будьте добры, разверните, пожалуйста, ваш комментарий!
0
Результат сравнения двух чисел — это одно из трёх (а не одно из двух): больше, меньше, равно. Это один трит. И никаких «запрещённых комбинаций».
0
С этим-то я согласен, а вот про запрещённые комбинации не понял. И мне интересно, какие именно флаги выставляются и какая комбинация запрещена.
0
Я подозреваю, имелись в виду Z и N. Вот с ними чётко — по крайней мере после CMP — Z=1, N=0: A==B
Z=0, N=0: A>B
Z=0, N=1: A<B
а вот Z=1, N=1 — не бывает, потому что Z=1 подразумевает старший бит обычного результата (который копируется в N) равным 0.

Для сравнения: S/360 и все её потомки вплоть до ныне живой SystemZ имеют двухбитовое поле condition codes с четырьмя возможными комбинациями, и там после арифметических операций: 0 — результат равен 0, 1 — больше 0, 2 — меньше 0, 3 — произошло знаковое переполнение (и тогда признак знака результата подавлен более важным признаком). Если бы они унесли тогда V отдельно, то оставшиеся N+Z можно было бы совместить в трите.

Но как только выходим на IEEE754 — возникает четвёртый вариант — несравнимость чисел (NaN != NaN) и всё ломает ;\
+1
Увидел статью в выдаче TM Feed'a и не сразу понял, что это четвертая статья в серии, а не попытка переполнить буфер какого-нибудь калькулятора :)
0
во время учёбы пользовались Electronics Workbench, там можно и рисовать схемы и запускать на обработку, использовали правда версию 96 года, но думаю по большей степени и сейчас она будет актуальной.
0
Очень познавательно и по полочкам! С нетерпением жду пятой части.
Only those users with full accounts are able to leave comments. , please.