“Сетунь” – единственный серийный троичный компьютер
«Сетунь» представляет собой малую ЭВМ, построенную на принципах троичной логики, другими словами это троичный компьютер. Она была разработана в 1959 году в стенах вычислительного центра Московского государственного университета. Этот уникальный троичный компьютер, практически не имеет аналогов не только в данный момент времени, но и вообще в истории вычислительной техники.
Для начала разберёмся, что же такое троичный компьютер, коим, как уже было сказано, является рассматриваемая модель «Сетунь». Такое название получил специализированный компьютер, который построен на логических элементах и узлах двух типов – как на классических двоичных, так и уникальных в своём роде троичных. Понятно, что он использует в своей работе соответственные системы счисления, логики и алгоритмы работы – двоичные и троичные.
Из истории вычислительной техники известно, что вначале число разрядов в машинном слове определялось разными конструкторами по разному, почти произвольно. Сам байт первоначально был шестью двоичными разрядами, но шестиразрядный байт не прижился, так как был слабо связан с двоичной системой (6 слабо связано с двоичной системой). 8 разрядов являются 3-ей степенью двойки, то есть лучше связаны с двоичной системой, поэтому позже от шестиразрядного байта перешли к восьмиразрядному байту, но и эта система не совершенна из-за некратной двум 3-ей степени двойки, 4-я степень двойки лучше связана с двоичной системой счисления.
Более совершенным рядом в двоичной системе является ряд 2, 4, 16, 256, … , но из-за аппаратных трудностей сразу от 4-х разрядов к 16-ти перейти было трудно, поэтому появились 8-ми разрядные ЭВМ, как предшественники 16-ти разрядных ЭВМ. В настоящее время из-за аппаратных трудностей 32-х, 64-х и 128-ми разрядные ЭВМ являются предшественниками 256-ти разрядных ЭВМ.
Можно выделить следующие основные этапы развития троичного компьютера:
– в период с середины 12-13 веков Фибоначчи смог доказать, что троичная система счисления может быть более экономичной по сравнению с двоичной – в случае, когда при условном взвешивании можно класть гири не на одну чашу весов, а на обе;
– в 1840 году появилась первая троичная вычислительная машина, ставшая вообще одной из первых механических вычислительных машин;
– в период с 1956 по 1958 годы Н.П. Брусенцов создал первый троичный компьютер серийного производства – ту самую «Сетунь»;
– позднее, в 1970 году, Брусенцов выпустил вторую версию своего детища, получившего имя «Сетунь-70»;
– долгое время данное направление не имело практически никакого развития, однако, в 2008 году была построена трёхтритная цифровая компьютерная система TCA2, которая, в отличие от «Сетуни», работала не на ферритдиодных магнитных усилителях переменного тока, а на интегральных транзисторах. Но это уже, как говорится, совсем другая история.
Руководитель проекта — Н. П. Брусенцов, основные разработчики: Е. А. Жоголев, В. В. Веригин, С. П. Маслов, А. М. Тишулина. Разработка машины была предпринята по инициативе и осуществлялась при активном участии виднейшего советского математика С. Л. Соболева.
Казанским заводом Математических машин было произведено 50 компьютеров Сетунь, 30 из них использовались в университетах СССР.
Автор «Сетуни» на основе обычной двоичной ферритодиодной ячейки Гутенмахера разработал её уникальный троичный аналог, работа которого была построена на двухбитном троичном коде. Всё это выглядело следующим образом – один трит (так называется единица измерения в данном случае) записывается в два двоичных разряда.
Помимо трита, в троичной логике, используемой «Сетуньей», аналогично двоичной системе, в которой есть бит и байт, применяется термин «трайт», являющийся минимальной непосредственно адресуемой единицей главной памяти «Сетуни», равный шести тритам, что примерно равен девяти с половиной битов. Таким образом, получается, что трайт чуть больше привычной единицы измерения двоичной системы байта. Два трайта равны 19 битам, три трайта – почти 29 битам и т.д. Он может принимать значения в довольно широком диапазоне – от -364 до 364.
Число разрядов процессора — 9 тритов.
Тактовая частота процессора — 200 кГц.
На основе двоичной ферритодиодной ячейки Гутенмахера, которая представляет собой электромагнитное бесконтактное реле на магнитных усилителях трансформаторного типа, Н. П. Брусенцов разработал троичную ферритодиодную ячейку, которая работала в двухбитном троичном коде, т.е. один трит записывался в два двоичных разряда, четвёртое состояние двух двоичных разрядов не использовалось. Состояние каждого разряда на пульте управления отображалось двумя лампочками, четвёртая комбинация (1,1) не использовалась.
Стоит отметить забавный факт – отрицательные троичные и девятеричные цифры, выводимые на «Сетуни» на печать, отображались перевёрнутыми «вверх ногами», то есть повёрнутыми на 180 градусов.
Основные преимущества, которые имеют троичные компьютеры по отношению к двоичным:
1) во-первых, троичная система обладает наибольшей плотностью записи информации среди всех существующих целочисленных систем счисления. Из данного факта следует, что при прочих равных условиях троичные компьютеры будут иметь превосходящую удельную ёмкость памяти и удельную производительность процессора по сравнению с двоичными аналогами;
2) троичные компьютеры лучше приспособлены к троичным алгоритмам, которые работают быстрее двоичных алгоритмов;
3) при этом троичные компьютеры способны делать практически всё, что делают их двоичные коллеги, поскольку двоичная логика является центральным подмножеством троичной;
4) процесс накопления ошибки округления на троичных компьютерах также идёт гораздо медленнее, поскольку округление в троичной системе происходит путём отбрасывания лишних разрядов.
Говоря о будущем таких машин, как «Сетунь» (то есть троичных компьютеров), известный американский учёный Дональд Кнут, отмечал, что они занимают очень мало место в отрасли вычислительной техники, что объясняется массовым засильем двоичных компонентов, производимых в огромных количествах. Но, поскольку троичная логика гораздо эффектнее, а главное, эффективнее двоичной, не исключено, что в недалёком будущем к ней вернутся.
На данный момент вполне реальным выглядит вариант использования троичного компьютера в сочетании с волоконной оптикой, имеющий три заданных значения: 0, соответствующий состоянию Выключено, 1 – состояние Низкий и 2 – состояние Высокий.
Думаю, потребителю без разницы, что там открывает страничку вконтактика – двоичный, троичный или вообще колдовской. Главное, чтоб винда под него была и игры катались.
Ну, если до сих пор есть клоуны, пытающиеся отказаться от фон неймановской архитектуры (в широком смысле – от идеи, что программа выбирает последовательность доступа к данным) – то о чем вообще говорить.
Да с идиотами и так все ясно. Компьютеры – штука рыночная. Пусть носители всевозможных идей, все эти прогрессоры и поступят по-рыночному – возьмут кредит, построят свой компьютер и продают его. Если он лучше существующих – они получат рыночное преимущество и озолотятся. Но они почему-то так не делают. А поднимают шум на тему – “дайте бабла, а мы уж…” Ага. И таких деятелей – море.
Параллельность выше у троичников?
Псевдокубиты?
Интегральный транзистор — это круть!
>>троичная система обладает наибольшей плотностью записи информации среди всех существующих целочисленных систем счисления
Невероятный бред. Вот сразу после этого создателей троичного компа можно везти в дурку или, как минимум, выпнуть из отрасли IT со справкой о профнепригодности.
Что такое “троичная система” на уровне электрического сигнала? Это три уровня (напряжения или тока) в проводе. То есть низкий, средний и высокий.
Ну ОК – сейчас в SSD-памяти широко применяются QLC-ячейки, у которых 16 уровней напряжения. То есть между низким и высоким – не один промежуточный уровень, а аж 14 штук. Где там сидят троичные ячейки по плотности информации? Глубоко в анусе.
Естественным развитием идеи MLC-ячеек была мысль записать в ячейку аналоговый сигнал. И да – такая память существует, в нее тупо пишется аналоговый сигнал.
Но мы отвлеклись. Так вот – троичные ячейки памяти как раз демонстрируют ублюдочность самой идеи троичной логики. Их в реальной жизни пришлось эмулировать из двоичных ячеек (например, на ферритовых кольцах – троичная ячейка строилась из двух колец, в двоичном компе два кольца – это 2 бита, то есть не 3, а 4 состояния), то есть терять часть емкости.
Соответственно и все бла-бла-бла про теоретические преимущества троичной логики – упираются в то, что на самом деле этих преимуществ нету. Комп с 10 троичными разрядами – эквивалентен по сложности устройства компу с 20 двоичными разрядами, и как только ты сравниваешь 10 троичных с 20 двоичными – все “достоинства” сразу испаряются.
А знаешь, откуда идет этот троичный бред?
1840 год — Томас Фаулер построил деревянную троичную счётную машину с троичной симметричной системой счисления.
И вот через 115 лет до сумасшедшего в СССР это докатилось.
То ли дело кетайские лопаты с алиэкспресса, ага, двоичная логика, много ядЫр, ведроид, флешка в Zopo. Афигенна! Эй, чувак чесал про упаковку команд, а значит сокращение тактов и количества вариантов! Так же как с векторными командами, где идет дикий гон с разрядностью.
Вообще-то “троичный компьютер” – это про ДАННЫЕ. Данные представлены тритами вместо битов.
Коды команд при этом запросто могут оставаться двоичными. Более того, если бы у тебя был мозг, ты бы понял, что двоичный дешифратор команд в ALU это наиболее естественное решение.
В естестве рубильника? И ALU тут уже не причем, оно лишь построено под конкретные команды. Так вот количество исполнительных блоков снижается. И это не выдумки совковых вчоных, а выводы канадских разработчиков квантовых компьютеров.
Смеши истчо, очень весело. И не забудь рассказать о троичной логике в продукции ТАЗа.
Мда, не ожидал от тебя такого бинарного мышления буратины!
Ты давно себя в зеркале видел? Посмотри и подумай – о чем с таким можно говорить, о какой логике.
Не, ну логика, ноль нет сигнала, единичка есть сигнал. А третье то состояние какое? У мну щас мозг дымить начнёт же?!
Типа как +1, 0, -1. Расшифровать как True, Unknown/Maybe, False.
На фейхуа? Заставлять ячейку распознать направление? Нахрена усложнять, то? Сделать две?,а нет, три надо уже. Да ну его, если одной можно.
Оно усложняет на уровне вентиля, зато позволяет сократить их количество. В статье об этом прямо написано.
На буя? Для начала нормальные микросхемы, драть, надо опять шарашки и Лаврентия, чтоб мозги в правильном направлении.
Да, уровни сигналов это круто)) А матаппарат при этом какой предполагают использовать?
Нечёткая логика – самое простое. Можно и что-нибудь более изощрённое прикрутить. Проблема троичных компьютеров – в эволюции; в том, что выживет только одно направление – либо бинарное, либо троичное. И преимущества троичной системы не достаточно велики, чтобы ломать существующую систему.
Воот! Эт, как на войне, количество как баран овцу. Не, ну пусть за моей ротой, сзади, стоит пара взводов семьдва, чем один леклерк
При чем тут нечёткая логика? Каким математическим аппаратом предполагается обрабатывать простейшие операции? Те описания, которые я видел – это приведение троичной системы к двоичной и использование ‘классической’ булевой алгебры.
Тем же самым. Или я не понял вопрос? – Алгебра, на то и алгебра, что не привязана к системе исчисления. И в случае логики – тоже. Ну будет 3 значения переменной вместо 2; таблица, описывающая базовые операции, станет 3×3 вместо 2×2.
Да, с нечёткой логикой – я погорячился; это не логика в чистом виде. Её использование здесь (троичные вычисления) сильно избыточно.
Не, я про простейшие логические операции, которые как раз к системе счисления привязаны и на которых построено всё остальное.
Ну там вида F=A v B, F=A ⊕ B и ты пы.
Логические операции — это операции сравнения.
И ты можешь видеть, что булевые переменные кроме случая прямого присваивания имеют смысл и возникают только при операции сравнения.
И здесь может быть только два состояния — тру и фолс.
Вопрос же о степени релевантности — это другой, отдельный вопрос.
В имеющихся в те годы числодробилках/АЛУ (процов исчо не было), были операции над булевыми переменными, две основных – сложение и вычитание, емнип.
Умножение и деление это тож сложение и вычитание, ток заморочные.
При чём тут тру и фолс?
Чочоч?
Сложение булевых переменных?
В процах?
ППЦ.
Зачем вообще понадобились разные уровни сигналов для ячей изначально?
А вот тебе определение которое ты должен знать лучше таблицы умножения:
<< Константы булевского типа, как и переменные, могут принимать только два значения: True и False.
Это, драть, азы, фундамент.
Еси што — про дискретные булевы ф-ци и таблицы я в курсе.
>>Чочоч?
>>Сложение булевых переменных?
>>В процах?
Эммм, а как исчо 2+2 считать будем? В GPU?)) Я с тех пор далеко угрёбся от схемотехники, но сильно подозреваю, что процессы щас ровно так жы протекают и в двоичном коде, что характерно.
Скоко слоёв абстракций на машинный код с тех пор накрутили сверху, на базис не влияет никак.
Зы: ты гришь про булевы переменные, а я про булеву алгебру.
Ненене — ты на жжппие не съезжай — ты хочешь сказать, что у тебя могут складываться две True? Две False? True с False?
Булева алгебра?
Нна — держы корман шырее:
<< Самыми распространенными в булевой алгебре операциями являются отрицание (НЕ) и логические И и ИЛИ. Так можно описать практически все действия в алгебре суждений.
Т.е. — сичош фишкан?
Булева алгебра оперирует с логическими операциями. А не плюсы-минусы, драть. Причом все они могут быть сведены к сравнениям.
Я тебе тока што в камменте чегось нопейсал?
Ась?
Про сравнения?
Ты конешно жы не читал это нихрена.
Каг всегда.
И поспешыл поплотнее и поглубжее усесца в лужу.
ну — добро — это твой добровольный ненасильственный выбор.
>>Т.е. — сичош фишкан?
>>Булева алгебра оперирует с логическими операциями. А не плюсы-минусы, драть. Причом все они могут быть сведены к сравнениям.
Гы, правда что ли??))) А к чему отнести вычисления вида 0111 + 1110 = 10101 ???
К тру?)) К фолс?))
Да, и через операции какого вида производятся эти действия?
Я внимательно.
Шо ты вынимательно?
Тебе ещё из учебника определения сюдой вывалець?
А можыд ты ево уже сам наконец таки прочитаеш?
Я тебе шо — нанялсо тут азы розиясняць?
нахрен — сами всё, сами…
Хинт: приведенное выражовывание выполняется железом как раз теми самыми булевыми операциями, скоко слоёв абстракций сверху при этом – вопрос другой, но машинных кодах оно так. И те самые АЛУ считали именно так.
И вопрос изначально был – а какой мат. аппарат использовать при наличии не ‘0’ и ‘1’ в машинных словах, а ‘-1’, ‘0’ и ‘1’??? Если на пальцах, то: а скоко будет ‘-1’х’1’?
Не желаешь оно осознать – дело твоё.
Драть, ты упоротый вхлам.
Физически ячейка может иметь два состояния — намагничено и нет. Есть напряжение-отсутствует напряжение.
А теперь — авай мню в лицах розскажи как ты реализуешь третье состояние.
Там вверьху Глагне вже нопейсал(стопицот постов назат)* для олтеренетив одарённых — троичность это про данные.
Про представление данных.
* Вы же не читаете нихрена, но кидаетесь розсуждать.
Exit discussion.
>>Драть, ты упоротый вхлам. Физически ячейка может иметь два состояния — намагничено и нет. Есть напряжение-отсутствует напряжение.
Ячейка может, как минимум иметь полярность. Или, можно мерять уровень напряжения/поля/чего там в ней, см., например, коммент Глагнэ про современные модули.
Пример вида 0111 + 1110 = 10101 это, внезапно, про данные, упс.
Сам упоротый, гыы))
Может?
Ну — так напиши как ты собираешься это реализовать физически.
Тока не про уровни сигнала(я понимаю, что на большее тебя не хватит, но это — другое — сразу говорю).
>>Ну — так напиши как ты собираешься это реализовать физически. Тока не про уровни сигнала
Правда что ли? MLC это не про увеличение плотности записи? И в общем-то ничего не мешает использовать этот принцип для троичной записи.
Как ничего не мешало реализовать условную минус единицу в ТТЛ сборках – хоть через уровень напряжения в ячейке памяти (количество вольт), хоть через условный ‘0’ и полярность напряжения в ячейке (+/-).
Но повторюсь, мой вопрос был принципиально о другом – каким мат. аппаратом это обрабатывать? Всё, что я видел на эту темутему, сводилось к приведению троичной логики к двоичной и обработке уже двоичных операндов.
Т.е в те годы можно было достичь более высокой плотности хранения данных (что возможно казалось важным авторам), но никаких выгод в скорости их обработки (что, как показала практика развития вычислительных систем, гораздо важнее) не просматривалось, соответственно сейчас вспоминать про эту систему смысла нет.
Но ты продолжай упарываться тру и фолсом, да.
Бесполезняк полный — тебе про Ерёму, ты — про Фому.
Всегда нужно смарець в корень — а тут вопрос такой — какие ячейки ты собираешься использовать на физическом уровне.
А ты(они) оказуецо используют двоичные ячейки.
Драть!
Три двоичные ячейки!
Драть, передрать — в чом тут смысел?
Ну авай буим пять ячей пользовать — что это даст?
Тут как ты их не группируй — базовая плотность записи в одной двоичной ячейке будет задавать общую плотность.
>>Всегда нужно смарець в корень — а тут вопрос такой — какие ячейки ты собираешься использовать на физическом уровне
Твоя вообще читать, с чего я начинать?
Я никакие ячейки использовать не собираюсь в принципе, разработкой мелкосхем я не занимался отродясь, даже тогда, когда с микроэлектроникой был завязан по полной (в прошлой жизни, гы).
Какие ячейки использовались разрабами Сетуни, можно почитать в их документации, если тебя от этого так штырит, мне поѣеру.
Основное отличие Сетуни от классических архитектур – в использовании троичных данных, соответственно я поинтересовался у норота, какой мат. аппарат использовался при обработке этих троичных данных, т.к. я увидел у них приведение троичных данных к двоичным и обработку их, как двоичных.
Но, возможно, я чего-то недопонял.
Извиняюсь, что вмешиваюсь в Вашу борьбу мнений, но, кмк, к троичной логике вполне применима математическая модель, в шутку обрисованная в статье http://new.topru.org/mayaneznaya-fantaziya/
Лука, в ячейки, двоичные ячейки — можно записать представление данных хоть в троичной, хоть в восьмеричной, хоть в шестнадцатиричной системе.
Тут тупо вопрос — что и в каком порядке ты будешь писать в двоичные ячейки.
Почему ячейки двоичные?
Они могут иметь только два состояния: пусто и занято. Или — ноль и единица или — есть напруга-нет напруги или намагничено-размагничено — не суть.
А вот данные ты тудой можешь напхать — какие захочешь, вводя например градацию состояния “занято” — уровнями сигнала(к примеру — 1 вольт, 2 вольта и т.д.).
Здесь весь вопрос — как ты их будешь считывать и интерпретировать.
А под это дело можно написать хренову уйму интерпретаторов.
Зилок, ты упрлся
______________________
Почему ячейки двоичные?
Они могут иметь только два состояния: пусто и занято. Или — ноль и единица или — есть напруга-нет напруги или намагничено-размагничено — не суть.
_________________________
Ты о каких ячейках?
Тебе говорят про работу с данными, ты про их хранение.
Ахахаха!
Драаать, скока там камментов после каммента Глагне про данные прошло?
Наканецта допёрле?
А йа все эти камменты свои именно это и старалсо донести до чьего то ума — на физическом уровне всё реализовано двоично.
А вот представление данных можно организовать в двоичных ячеях — как тебе понравицо.
Пипес.
Возьми и ради интереса — прочитай всю колонку камментов.
Это забавно.
Это легко проиллюстрировать на лампочках — она или светит или нет.
Два состояния.
А вот вкрутить в патрон ты можешь любую лампочку — тусклую. яркую, цветную, вообще — любую.
Ты даже можешь собрать целую картину из лампочек.
Но все они будут иметь всего два состояния — вкл и выкл.
А терь дальше продолжу цепочку — в нашей вселенной не реализовано разных степеней небытия. Т.е. — состояния выкл.
Вот степеней бытия — бесконечно много.
ну канеш — понесло, ыыыы
>>Извиняюсь, что вмешиваюсь в Вашу борьбу мнений
Сурово, да))