Троичный компьютер в браузере. Троичный компьютер


Компьютеры Советской России с троичной сбалансированной системой счисления / Хабр

"Возможно, самая красивая система счисления — это сбалансированная троичная" — Дональд Е. Кнут, Искусство программирования, Издание 2.

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

Такая конструкция сегодня настолько распространена, что трудно себе представить, как компьютеры могут работать иначе. Но, в Советской России 50-х годов они работали иначе. Если вы вдруг не слышали про такое, загуглите "Сетунь" — сбалансированный трехкомпонентный компьютер, разработанный в 1958 году небольшой группой во главе с Брусенцовым, в МГУ.

Перед тем, как говорить о Брусенцове и Сетуни, давайте я немного объясню вам троичную сбалансированную систему счисления.

Тернарная или троичная — это система счисления, в которой есть три вероятных значения: 0, 1 и 2. В её сбалансированной версии существуют три вероятности -1, 0 и +1, часто упрощённые до -, 0 и + соответственно.

В такой форме троичные значения подразумеваются в виде "централизованных" вокруг средней точки 0. Применяются те же правила, как и к любой другой системе счисления: самый правый символ, R, имеет собственное значение, а каждый последующий символ имеет значение, умноженное на основание B, возведенное в степень равную расстоянию D от R.

Эмм, давайте я просто приведу пример. Давайте запишем 114:

+++-0 = (1 * 3^4) + (1 * 3^3) + (1 * 3^2) + (-1 * 3^1) + 0 = 81 + 27 + 9 + -3 = 114

И в бинарной (двоичной):

1110010 = (1 * 2^6) + (1 * 2^5) + (1 * 2^4) + 0 + 0 + (1 * 2^1) + 0 = 64 + 32 + 16 + 2 = 114

И, для уверенности, те же правила, применённые при десятичной системе счисления:

114 = (1 * 10^2) + (1 * 10^1) + (4 * 10^0) = 100 + 10 + 4 = 114

Круто?

Что если мы хотим представить -114? В двоичной и десятичной системах нам понадобится использовать новый символ: знак (sign). В основной памяти двоичного компьютера это осуществляется либо через хранение ведущего бита, указание знака или значительное уменьшение количества чисел, которые мы можем представить1. Именно по этой причине мы говорим о signed и unsigned в языках программирования.

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

Вот смотрите:

---+0 = (-1 * 3^4) + (-1 * 3^3) + (-1 * 3^2) + (1 * 3^1) + 0 = -81 + -27 + -9 + 3 = -114

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

В конце 50-х годов в мире компьютеров был захватывающий период: Натаниэль Рочестер и его команда в IBM недавно разработали первый серийно выпускаемый компьютер с хранящейся в памяти программой, так называемый «современный» компьютер IBM 701. Джон Бэкус со своей командой изобрели FORTRAN, первый язык программирования высокого уровня, который обрёл широкое применение. И, пожалуй, самое главное — начали развиваться первые целиком транзисторные компьютеры, такие как TX-0 и Philco Transac S-2000. Было задано направление для разработки двоичных компьютеров, которые позже стали доминировать.

Но это было в Северной Америке.

В то же время в России группа математиков и инженеров под руководством Брусенцова и его коллеги Сергея Соболева разрабатывает другие компьютерные системы2. Брусенцов и его коллеги исследуют множество западных компьютеров и технологических достижений, и осмысливают применение транзисторов для представления двоичных данных. Но давайте вспомним, что это СССР — транзисторы не так легко доступны за железным занавесом. А электронные лампы трубки одинаково отстойны как в России, так и на Западе!

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

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

Троичная логика была реализована через объединение двух таких ферритовых элементов и подключения их таким образом, что они моделировали три устойчивых состояния. Этот подход был успешным, но количество необходимых элементов не сокращалось, поскольку в действительности два ферритовых сердечника могут потенциально представлять собой два двоичных бита, что в итоге даёт больший объём информации (2 ^ 2), чем один троичный "трит" (3 ^ 1), Печально, но хотя бы потребляемая мощность была снижена!

Сетунь оперирует числами до 18 тритов, то есть один трит может моделировать любое число между -387 420 489 и 387 420 489. Двоичному компьютеру требуется как минимум 29 битов для достижения такой мощности.

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

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

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

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

Давайте я приведу простой пример. Перевод в код числа 0.2 выглядит следующим образом:

0.+--+ = 0 + (1 * (3^-1)) + (-1 * (3^-2)) + (-1 * (3^-3)) + (1 * (3^-4)) = 0.33 + -0.11 + -0.03 + 0.01 = 0.2

И для записи 0.8 нужно начать с + в старшем разряде, а затем просто инвертировать дробную часть (например, 1 + -0,2):

+.-++- = 1 + (-1 * (3^-1)) + (1 * (3^-2)) + (1 * (3^-3)) + (-1 * (3^-4)) = 1 + -0.33 + 0.11 + 0.03 + -0.01 = 0.8

Выше видно, что выделение целой части тритов справа от поразрядной точки эквивалентно округлению: 0,2 становится нулём, а 0,8 становится единицей. Круто!

Ок, возвращаемся к Сетуни в последний раз. В конце 60-х Брусенцов разработал более современную машину "Сетунь-70", которая воплотила тернарность более чётко. Было введено понятие "трайт", который состоял из 6 тритов (примерно 9,5 битов). Компьютер Сетунь-70 был стековым, и поэтому вместо машинных инструкций, которые намеренно назвали регистрами для ввода и вывода, все операции выполнялись в двух стеках — одном для операндов (вход) и одном для возвращаемых значений (выход). Для того, чтобы приспособить этот дизайн, машинные инструкции были написаны в обратной бесскобочной нотации (обратной польской нотации или постфиксной записи).

В конце 70-х годов, Брусенцов и несколько его учеников разработали язык программирования для Сетунь-70, который назвали Диалоговая система структурированного программирования (ДССП). Проводя своё исследование4, я заметил, что это стек-ориентированный язык (что, правда, совсем не удивительно), аналогичный Forth и использует обратную польскую нотацию. Это позволяет писать программы на языке относительно высокого уровня, но продолжать чувствовать себя "низкоуровнево". Настолько, что у его авторов было следующее сообщение:

ДССП не был изобретен. Он был открыт. Поэтому у языка нет версий, только расширения.

Рассмотрим программу на ДССП, которая складывает группу цифр:

1 2 3 4 DEEP 1- DO +

Давайте попробуем разложить её. В первой колонке у нас команда, во второй — состояние компьютера после выполнения (стека операндов), а в третьей я даю объяснение:

1 [1] Добавить 1 в стек. 2 [2 1] Добавить 2 в стек. 3 [3 2 1] Добавить 3 в стек. 4 [4 3 2 1] Добавить 4 в стек. DEEP [4 4 3 2 1] Добавить "глубину стека" (4) в стек. 1- [-1 4 4 3 2 1] Добавить -1 в стек. DO [4 3 2 1] Начать цикл, удалить два элемента из стека. Для управления циклом первый элемент применяется ко второму пока не получится 0. + [] Применить оператор "+" до завершения цикла, каждый раз удаляя верхний элемент из стека операндов, применяя + и добавляя вывод в стек возвратов.

По окончанию исполнения, стек операндов будет пустым, а в стеке возвратов будет [10].

О ДССП подробней написано на сайте Ивана Тихонова (авторы Сидоров С.А. и Шумаков М.Н.).

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

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

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

(Перевод Наталии Басс)

Сноски:

  1. Это зависит от того, как конкретная машина представляет числа. Дополнительный код — это представление чисел в десятичной системе счисления, которое даёт возможность представить от -((2^n) / 2) до ((2^n) / 2) - 1 в n битах.

2) Хотя компьютер Сетунь был первым электронным устройством, использовавшим для работы тернарную систему, стоит отметить, что идея использования такой системы в вычислительных устройствах впервые была популяризована более 100 лет назад. В 1840 году Томас Фаулер построил вычислительную машину целиком из дерева, и она работала с данными, используя тернарную систему.

  1. Более точное описание можно найти на сайте российского компьютерного музея.

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

  3. Мой собственный вклад можно увидеть на computerpionee.rs.

  4. Изображение в статье взято с сайта Московского суперкомпьютерного комплекса МГУ, на нём одна из машин Сетунь в работе.

habr.com

Троичный компьютер в браузере / Хабр

В 1959 году Н. П. Брусенцов разработал для МГУ уникальную вычислительную машину «Сетунь». Она была основана на троичной системе счисления и хотя элементная база была частично двоичной, что приводило к перерасходу деталей, машина зарекомендовала себя как экономичная и надёжная. Сегодня троичную машину можно увидеть разве что в музее, двоичный код победил.

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

В этой статье рассматривается троичная симметричная система счисления. Цифры в ней положительные и отрицательные, то есть -1/0/1 или более общепринятое -/0/+. Из этого свойства вытекает нативная поддержка нашим будущим компьютером отрицательных чисел.

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

Существует формула y = ln(x)/x, физический смысл которой я понимаю как «соотношение объема хранимой информации к сложности ее хранения», где сложность возрастает по оси X.

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

О работе Н. П. Брусенцова я узнал сравнительно недавно. Изучив некоторые материалы по Сетуни я понял, что нет необходимости проделывать весь путь заново и можно использовать знания наших дней. Насколько я знаю, троичная виртуальная машина была так же разработана в МГУ. Но материалов по ней мало, а исходников вообще нет.

Как раз в этот момент Н. Вирт опубликовал первые наработки проекта Оберон 2013.

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

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

Проект был доведен до стадии альфы и заморожен. И вот в 2015 году в процессе изучения языка Dart возникла идея реализовать порт эмулятора для браузера. Нетипичный для веба проект, много странных целей, что может быть интереснее?

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

Так же, ради интереса, можно использовать собственные типы данных, которые будут характерны для троичных машин, а сам процессор реализовать в виде отдельных модулей, примерно соответствующих реальным блокам процессора — регистры, АЛУ и т.д. Плюсом будет использование множества фич Dart, ведь проект нужен для самообучения.

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

Для начала реализуем логику и математику. Сразу интересно.

Основной логический тип троичной системы — trilean (по аналогии с boolean). Русского аналога слову я не нашел. Для типа trilean существует три значения, true/null/false. Для этих значений существуют основные логические законы. Их сформулировал Ян Лукасевич в 20-х годах прошлого века. Из двух законов, отрицания и импликации выводятся все основные логические операции. Описав в Dart тип Tril, используем возможности перегрузки операторов. Немного тестирования, и тип готов. Используем фабричный конструктор, чтобы не плодить множество копий объектов типа Tril, своеобразная оптимизация.

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

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

Дополнительно введем тип int27, как можно догадаться, в нем 27 тритов, это будет размером машинного слова в нашей системе. Конечно, 27 тритов умещают больше значений, чем 32 бита. Значения от -3 812 798 742 493 до 3 812 798 742 493. Тут можно сказать, что 64 бита уместят больше значений, чем 27 тритов, но при этом понадобится вдвое больше триггеров для такого регистра.

Для самых требовательных можно ввести тип int81, который зарулит в минуса даже 128-битные числа. Кстати, можно заметить, что количество тритов увеличивается по степеням тройки. Реализуем тип int27 аналогично tryte.

Дополнительным типом нашей математической подсистемы будет тип Trits, это аналог типа SET в Обероне. Типу SET посвящена отдельная статья Н. Вирта, где он называет тип SET недооцененным. Мы же оценим его по достоинству.

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

Кроме троичной записи чисел символами -/0/+ существует также девятеричная форма записи троичных чисел, в ней символами являются ZXYW01234. Реализуем конвертеры для такой записи чисел.

В качестве развлечения, не связанного с основной задачей — реализуем конвертер в троичную симметричную систему счисления с иррациональным основанием. Основанием выберем квадрат золотого сечения. Подобная система счисления называется фибоначчиевой. У нее есть интересное свойство — запись числа симметрична относительно ее нулевого разряда.

Пример всех конвертеров в одной картинке. Проведем несколько тестов. Математическая подсистема готова.

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

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

Для процессора я использовал асинхронные возможности языка Dart. Каждый цикл процессора планируется на будущее и исполняется асинхронно. При этом я все же схитрил и ускорил исполнение, увеличив тактовую частоту в 100 раз. Получился своеобразный разгон. Итак, основная активность процессора происходит в методе next().

Пришло время разработать систему команд процессора. Как я уже говорил, я основывался на материалах проекта Оберон 2013. Н. Вирт разработал простую систему команд для реализации своего RISC-процессора на ПЛИС. Я модернизировал эту систему команд для троичного кода. Двух- или трех-операндная арифметика, условные переходы, прямая и косвенная адресация памяти.

В процессоре будет 27 регистров общего назначения, дополнительный регистр PC будет обозначать адрес расположения следующей команды в памяти, регистр IR будет содержать текущую команду. Также присутствует дополнительный трит NZ, который будет содержать дополнительный результат выполнения операций над регистрами. Некоторые регистры общего назначения заберет себе система Оберон для размещения адресов возврата, вершины стека и т.д.

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

Итак алгоритм действий процессора такой — из памяти читается слово по адресу PC, значение записывается в IR и отправляется дешифратору команд, который отправляет сигналы тем или иным блокам на выполнение действий. Такие действия могут поменять значение регистра, при этом в регистр NZ записывается информация о том, является ли значение нулем или оно больше нуля. Вот так, одним тритом отвечают на два вопроса. В последствии этот трит может быть использован при исполнении инструкции условного перехода. В результате выполнения команды меняется состояние памяти в местах, которые исполняемый код считает переменными, меняется адрес перехода процессора на следующем шаге, итерация завершается. Завершение работы процессора происходит при переходе на -1 ячейку памяти, так как в ней записана команда с форматом — (-13).

Всю систему команд нет смысла расписывать. С ней можно ознакомиться в документе github.com/kpmy/tri/blob/master/doc/trinary-0.pdf.

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

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

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

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

Отдельным модулем идет bootstrap, это несколько команд, которые установят в памяти константы машины (размер памяти, адрес таблицы модулей и др.) и переведет процессор на адрес первой исполняемой команды. Bootstrap был подготовлен вручную.

Модуль Core создан по образу и подобию ядра системы Оберон, модулю Kernel, так как это ядро, в нем много прямых операций с памятью, реализация аллокатора динамических структур (глючит иногда) реализация перехватчика исключений и т.д, Как раз в модуле Core реализуем самую примитивную консоль. Для вывода строк и чисел будем записывать значения символов в ячейку памяти, как было описано выше. Платформозависимый модуль SYSTEM является виртуальным, его вызовы компилятор переводит непосредственно в машкод.

Невыразительный скриншот. Проверить работоспособность получившейся виртуальной машины можно вот здесь. Конечно, комплексная отладка и процессора и компилятора одновременно привела к некоторым багам (которые я еще не нашел), но как proof of concept результат работы мне показался достаточным.

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

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

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

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

Ну и пожалуй, несколько ссылок для тех, кто заинтересуется. Н.П. Брусенцов скончался 4 декабря 2014 года. Надеюсь, дело его жизни не будет забыто.

habr.com

Троичный компьютер — Википедия

Троичный компьютер — компьютер, построенный на двоичных и троичных логических элементах и узлах [1], работающий в двоичной и троичной системе счисления по законам двоичной и троичной логики с применением двоичных и троичных алгоритмов.

История

  • 1958 г., Н. П. Брусенцов построил в МГУ первую опытную электронную троичную ЭВМ (компьютер) «Сетунь»[9] на ячейках из ферритдиодных магнитных усилителей переменного тока[10], работавших в двухбитном троичном коде, четвёртое состояние двух битов не использовалось. Для передачи данных использовалась однопроводная система[11]. В США в то время тоже рассматривали преимущества и недостатки троичного компьютера и после проведённых теоретических исследований строить троичный компьютер не стали.
  • 1959 г., под руководством Н. П. Брусенцова (ВЦ МГУ) разработана первая серийная троичная ЭВМ «Сетунь». С 1962 г. по 1964 г. Казанским заводом математических машин было произведено 46 ЭВМ «Сетунь»[12].
Трёхуровневая 3-тритная цифровая компьютерная система TCA2[13]
  • 2008 г., (14 марта — 24 мая), Джефф Коннелли (англ. Jeff Connelly), Кираг Патель (англ. Chirag Patel) и Антонио Чавез (англ. Antonio Chavez) при поддержке профессора Филлипа Нико (англ. Phillip Nico) (California Polytechnic State University of San Luis Obispo, San Luis Obispo, Калифорния, США) построили трёхтритную цифровую компьютерную систему TCA2, версия v2.0[14], в трёхуровневой (3-Level CodedTernary, 3L CT, «однопроводной») системе троичных логических элементов на 1484-х интегральных транзисторах.

Видео по теме

Преимущества троичных ЭВМ (компьютеров)

К:Википедия:Статьи без источников (тип: не указан)

Троичные ЭВМ (компьютеры) обладают рядом преимуществ по сравнению с двоичными ЭВМ (компьютерами).

При сложении тритов в троичных полусумматорах и в троичных сумматорах количество сложений в log2⁡3=1,58...{\displaystyle \log _{2}3=1,58...} раза меньше, чем при сложении битов в двоичных полусумматорах и в двоичных сумматорах, и, следовательно, быстродействие при сложении в 1,58.. раза (на 58%) больше.

При применении симметричной троичной системы счисления и сложение и вычитание производится в одних и тех же двухаргументных (двухоперандных) полусумматорах-полувычитателях или полных трёхаргументных (трёхоперандных) сумматорах-вычитателях без преобразования отрицательных чисел в дополнительные коды, то есть ещё немного быстрее, чем в двоичных полусумматорах и в двоичных полных сумматорах, в которых для вычитания используется сложение с двумя преобразованиями отрицательных чисел, сначала в первое дополнение, а затем во второе дополнение, т.е. два дополнительных действия ("инверсия" и "+1") на каждое отрицательное слагаемое.

Сложение сильно тормозят переносы, которые в двоичном сумматоре возникают в 4-х случаях из 8-ми (в 50% случаев), в троичном несимметричном сумматоре возникают в 9-ти случаях из 18-ти (в 50% случаев), а в троичном симметричном сумматоре в 8-ми случаях из 27-ми (в 29,6...% случаев), что ещё немного увеличивает быстродействие при применении троичных симметричных сумматоров.

3-битная троичная физическая система кодирования и передачи данных 3B BCT имеет на 15,3% большее быстродействие, чем обычная двоичная система кодирования и передачи данных[15], что ещё немного увеличивает быстродействие.

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

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

Кроме этого, вместо 4-х унарных, 16-ти бинарных и 256-ти тринарных двоичных логических функций в троичных ЭВМ появляются 27 унарных, 19 683 бинарных и 7 625 597 484 987 тринарных (трёхоперандных) троичных логических функций, которые намного мощнее бинарных. Увеличение "логической мощности" в неизвестное число раз, может в 19 683/16 = 1 230 раз, а может в 7 625 597 484 987/256 = 29 787 490 175 раз (нет методики сравнения "логических мощностей"), но намного, может увеличить "логическую мощность" даже медленнодействующих физических систем кодирования и передачи данных, в том числе и трёхуровневой (3-Level CodedTernary (3L CT), "однопроводной").

Подобно тому, как в двоичных ЭВМ деление на 2 осуществляется для целых чисел операцией сдвига кода на 1 разряд вправо, а для чисел в виде мантиссы и экспоненты (с плавающей запятой) вычитанием 1 из экспоненты, в троичных ЭВМ для целых чисел операцией сдвига кода на 1 разряд вправо, а для чисел в виде мантиссы и экспоненты (с плавающей запятой) вычитанием из экспоненты 1 производится деление на 3. Из-за этого свойства троичные алгоритмы, а некоторые троичные алгоритмы работают быстрее двоичных алгоритмов, работают на троичных ЭВМ быстрее, чем на двоичных ЭВМ, что ещё немного увеличивает скорость решения некоторых задач, особенно имеющих троичность, на троичных ЭВМ.

В троичной системе знак числа может иметь все три значения: "-", "0" и "+", т.е. лучше используется троичная суть знака числа. Это можно сделать и в двоичной системе, но в двоичной системе потребуется два двоичных разряда (бита) на знак числа, а в троичной системе только один троичный разряд (трит).

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

Удельное натуральнологарифмическое число кодов (чисел) (плотность записи информации) описывается уравнением y=ln⁡xx{\displaystyle y={\frac {\ln x}{x}}}, где x{\displaystyle x} — основание системы счисления[16]. Из уравнения следует, что наибольшей плотностью записи информации обладает система счисления с основанием равным основанию натуральных логарифмов, то есть равным числу Эйлера (е=2,71…). Эту задачу решали ещё во времена Непера при выборе основания для логарифмических таблиц. Из целочисленных систем счисления наибольшей плотностью записи информации обладает троичная система счисления.

Троичная логика целиком включает в себя двоичную логику, как центральное подмножество, поэтому троичные ЭВМ (компьютеры) могут делать почти [источник не указан 251 день]К:Википедия:Статьи без источников (тип: не указан) всё, что делают двоичные ЭВМ (компьютеры), плюс возможности троичной логики.

Элементы троичных ЭВМ (компьютеров)

Известны троичные элементы следующих видов:

Импульсные

[17][18]

Потенциальные

Трёхуровневые
  • В трёхуровневых потенциальных линиях передачи цифровых данных (3-Level CodedTernary, 3L CT, «однопроводных») трём устойчивым состояниям соответствуют три уровня напряжения (положительное, нулевое, отрицательное), (высокое, среднее, низкое)[14][19][20]. Имеют меньшее итоговое быстродействие, чем обычная двоичная система [21].

Амплитуда наибольшего сигнала помехи равной помехоустойчивости с двухуровневыми элементами не более (+/-)Uп/6 (16,7% от Uп), при делении всего диапазона напряжений на три равные части и номинальных напряжениях сигналов в срединах поддиапазонов.

Недостатки:1. необходимость, для равной помехоустойчивости с обычной двоичной системой, увеличения размаха сигнала в 2 раза,2. неодинаковость среднего состояния с верхним и нижним состояниями,3. неодинаковость амплитуд переходов из крайних состояний в среднее (одинарная амплитуда) и переходов из одного крайнего состояния в другое крайнее состояние (двойная амплитуда).

Двухуровневые

Амплитуда наибольшего сигнала помехи не более (+/-)Uп/4 (25% от Uп), при делении всего диапазона напряжений на две равные части и номинальных напряжениях сигналов в срединах поддиапазонов.

  • Двухуровневые, потенциальные (2-Level BinaryCodedTernary, 2L BCT), в которых логические элементы (инверторы) имеют два устойчивых состояния с двумя уровнями напряжения (высокое, низкое), а троичность работы достигается системой обратных связей (троичный триггер)[22]. Амплитуда сигнала помехи до Uп/2 (до 50 % от Uп).

Двухбитные

Недостатки:

1. два провода на один разряд.

Трёхбитные

  • Двухуровневые трёхбитные (2-Level 3-Bit BinaryCodedTernary, 2L 3B BCT, «трёхпроводные»)[24]. По скорости равны троичным двухуровневым двухбитным триггерам. По сравнению с обычными двоичными RS-триггерами увеличивают объём хранимых и передаваемых данных в 1,5 раза на один разряд, но и аппаратные затраты тоже увеличиваются. Быстродействие выше, чем в обычной двоичной системе, но ниже, чем в четверичной четырёхбитной системе, но аппаратные затраты растут меньше, чем в четверичной четырёхбитной системе. Из-за избыточности трёхбитного кода появляется возможность обнаружения одиночных однобитных ошибок на аппаратном уровне, что может оказаться полезным в устройствах повышенной надёжности и может найти применение в устройствах, в которых надёжность и быстродействие являются более значимыми параметрами, чем аппаратные затраты.

Недостатки:

1. три провода на один разряд.

Смешанные
  • Смешанные, в которых вход данных трёхуровневый по одной линии и земле, а выход данных двухуровневый по трём линиям и земле.[25]

Узлы троичных ЭВМ

Полный троичный тринарный (трёхоперандный) одноразрядный сумматор является неполной троичной логической тринарной (трёхоперандной) функцией.

Простейшие троичные процессоры на троичных регистрах сдвига, выполняющие операции умножения и деления на 3{\displaystyle 3} и 3n{\displaystyle 3^{n}}, прибавления и вычитания 3{\displaystyle 3} и 3∗n{\displaystyle 3*n}, умножения и деления на 1{\displaystyle 1} и n{\displaystyle n}, прибавления и вычитания 1{\displaystyle 1} и n{\displaystyle n} описаны в [источник не указан 3040 дней]К:Википедия:Статьи без источников (тип: не указан).

Будущее

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

В работе [Jin, He, Lü 2005][27] возможным путём считают комбинацию оптического компьютера с троичной логической системой. По мнению авторов работы, троичный компьютер, использующий волоконную оптику, должен использовать три величины: 0 или ВЫКЛЮЧЕНО, 1 или НИЗКИЙ, 2 или ВЫСОКИЙ, т.е. трёхуровневую систему. В работе же [24] автор пишет, что более быстродействующей и более перспективной является трёхчастотная система с тремя величинами: (f1,f2,f3) равными "001" = "0", "010" = "1" и "100" = "2", где 0 - частота выключена, а 1 - частота включена.

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

См. также

Примечания

  1. ↑ D. C. Rine (ed.), Computer Science and Multiple-Valued Logic. Theory and Applications. Elsevier, 1977, 548p. ISBN 9780720404067
  2. ↑ Славянская «золотая» группа. Mузей Гармонии и Золотого Сечения.
  3. ↑ «Liber аbaci» Леонардо Фибоначчи. Наталья Карпушина. Задача 4. Вариант 1
  4. ↑ «Троичный принцип» Николая Брусенцова. Mузей Гармонии и Золотого Сечения
  5. ↑ «Liber аbaci» Леонардо Фибоначчи. Наталья Карпушина. Задача 4. Вариант 2
  6. ↑ Троичная механическая счётная машина Томаса Фоулера.
  7. ↑ Сайт Томаса Фоулера
  8. ↑ Раздел 5.2 Choice of binary system
  9. ↑ Троичные ЭВМ «Сетунь» и «Сетунь 70». Н. П. Брусенцов, Рамиль Альварес Хосе
  10. ↑ Брусенцов Н. П. Троичные ЭВМ "Сетунь" и "Сетунь 70" // Международная конференция SORUCOM. — 2006.
  11. ↑ Брусенцов Н. П. Электромагнитные цифровые устройства с однопроводной передачей трёхзначных сигналов // Магнитные элементы автоматики и вычислительной техники. XIV Всесоюзное совещание (Москва, сентябрь 1972 г.). — Москва: Наука, 1972. — С. 242-244.
  12. ↑ Забытая история советских ЭВМ. Владимир Сосновский, Антон Орлов
  13. ↑ Trinary Computer
  14. ↑ 1 2 Ternary Computing Testbed 3-Trit Computer Architecture. Jeff Connelly, Computer Engineering Department, August 29th, 2008, with contributions from Chirag Patel and Antonio Chavez. Advised by Professor Phillip Nico. California Polytechnic State University of San Luis Obispo
  15. ↑ Куликов А. С. Быстродействие физических систем передачи данных
  16. ↑ А. С. Куликов. Экономичность систем счисления с показательной весовой функцией
  17. ↑ http://emag.iis.ru/arc/infosoc/emag.nsf/f0c3e40261f64c5b432567c80065e37d/72de119fdb628501c3257193004180c8?OpenDocument МГУ — не конкурент, а колыбель науки или о том, что в информационном обществе нельзя без Аристотеля. Н. П. Брусенцов. О «Сетуни», её разработках, производстве
  18. ↑ http://www.trinitas.ru/rus/doc/0226/002a/02260054.htm АКАДЕМИЯ ТРИНИТАРИЗМА. Дмитрий Румянцев. Долой биты! (Интервью с конструктором троичной ЭВМ)
  19. ↑ Троичная цифровая техника. Перспектива и современность. 28.10.05 Александр Кушнеров, Университет им. Бен-Гуриона, Беэр-Шева, Израиль.
  20. ↑ http://www.trinary.cc/Tutorial/Tutorial.htm
  21. ↑ Куликов А.С. Быстродействие физических систем передачи данных
  22. ↑ Троичные триггеры
  23. ↑ http://trinary.ru/materials/ternary-binary-based-trigger Троичные триггеры на двоичных логических элементах
  24. ↑ 1 2 Быстродействие физических систем передачи данных
  25. ↑ Trinary.cc
  26. ↑ D.E. Knuth, The Art of Computer Programming — Volume 2: Seminumerical Algorithms, pp. 190—192. Addison-Wesley, 2nd ed., 1980. ISBN 0-201-03822-6.
  27. ↑ Ternary Optical Computer

Ссылки

  • Сайт материалов по троичной информатике (МГУ)
  • Дмитрий Румянцев. Льюис Кэрролл и троичная машина  (недоступная ссылка с 13-05-2013 [1918 дней] — история)
  • Академия тринитаризма. Дмитрий Румянцев. Долой биты! (Интервью с конструктором троичной ЭВМ. Также в UPgrade февраль 27, 2009)
  • «Сетунь-ВС». Программа-модель троичной ЭВМ «Сетунь» Брусенцова
  • Виктор Лофгрен. Thunguska the ternary computer emulator.
  • Виктор Лофгрен. Проект «Тунгуска» (эмулятор 6-разрядной троичной ЭВМ).
  • Стив Грабб. Проект элементов и узлов троичного трёхуровневого компьютера.
  • Брусенцов Н. П. Неадекватность двоичной информатики.
  • Микросхема нового усилителя тока работающая в троичной системе.
  • Стахов А. П. Троичный принцип Брусенцова, система счисления Бергмана и «золотая» троичная зеркально-симметричная арифметика
  • Team: r2d2. Multiple-Valued Logic architectures and circuits. Participants: Daniel Chillet, Ekue Kinvi-Boh, Olivier Sentieys — команда, которая в 2004 г., в Catholic University of Louvain-La-Neuve (UCL) (Франция), выпустила первые полностью троичные микросхемы (64-term SRAM и 4-term сумматор).
  • INRIA. Team R2D2. Reconfigurable and Retargetable Digital Devices. Renne. Activiti Report. 2004
  • Будущее квантовых компьютеров — в троичных вычислениях
  • Троичные цифровые системы и троичная логика
  • Творец троичного компьютера[неавторитетный источник?]
  • Сергей Матющенко. Первые «малогабаритные» компьютеры
  • Творец троичной ЭВМ
  • История компьютера. Троичный компьютер.
  • Научная конференция, посвящённая пятидесятилетию ЭВМ «Сетунь»
  • «Троичный Компьютер???»
  • Фотографии конструкции и осциллограммы трёхуровневой 3-х тритной троичной цифровой компьютерной системы.
  • Ternary Computing Testbed 3-Trit Computer Architecture. Jeff Connelly, Computer Engineering Department, August 29th, 2008, with contributions from Chirag Patel and Antonio Chavez. Advised by Professor Phillip Nico. California Polytechnic State University of San Luis Obispo. Архитектура 3-х тритного троичного компьютера.
  • «Двоичную логику в отставку!»
  • Академия тринитаризма. Румянцев Д. Льюис Кэрролл и троичная машина

wikipedia.green

Троичный компьютер - это... Что такое Троичный компьютер?

Проверить нейтральность.

На странице обсуждения должны быть подробности.

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

История

Витраж с изображением машины Томаса Фаулера в Храме святого Михаила (St. Michael’s Church in Torrington, Devon)[5]
  • 1947 г., в работе [8], выполненной под руководством Джона фон Неймана (США), упоминается, но не обсуждается троичная система счисления.
Первая опытная троичная ЭВМ «Сетунь»
  • 1958 г., Н. П. Брусенцов построил в МГУ первую опытную электронную троичную ЭВМ (компьютер) «Сетунь»[9] на ячейках из ферритдиодных магнитных усилителей переменного тока[10], работавших в двухбитном троичном коде, четвёртое состояние двух битов не использовалось. Для передачи данных использовалась однопроводная система[11].
Первая серийная троичная ЭВМ «Сетунь»
  • 1959 г., под руководством Н. П. Брусенцова (ВЦ МГУ) разработана первая серийная троичная ЭВМ «Сетунь». С 1962 г. по 1964 г. было выпущено около 50 ЭВМ "Сетунь"[12].
ЭВМ «Сетунь-70»
  • 1973 г., G. Frieder, A. Fong и C. Y. Chao (SUNY, Буффало, США), создали Ternac — экспериментальный троичный эмулятор на двоичной эвм, с арифметикой над 24-тритными целыми и 48-тритными действительными числами.
Трёхуровневая 3-тритная цифровая компьютерная система TCA2[13]
  • 2008 г., (14 марта — 24 мая), Jeff Connelly, Chirag Patel и Antonio Chavez (Advised by Professor Phillip Nico) (California Polytechnic State University of San Luis Obispo, San Luis Obispo, Калифорния, США) построили трёхтритную цифровую компьютерную систему TCA2, версия v2.0[14], в трёхуровневой (3-Level CodedTernary, 3L CT, "однопроводной") системе троичных логических элементов на 1484-х интегральных транзисторах.
Снимок модели троичного контроллера 2BT3BTCA021[15] в логическом симуляторе Atanua
  • 2011 г., (август), А. С. Куликов (Москва, Россия) построил 12288-тритную модель троичного контроллера с двухбитными и трёхбитными троичными шинами 2BT3BTCA021[15] в двухуровневых двухбитной (2-Level 2-Bit BinaryCodedTernary, 2L 2B BCT, "двухпроводной") и трёхбитной (2-Level 3-Bit BinaryCodedTernary, 2L 3B BCT, "трёхпроводной") системах троичных логических элементов в логическом симуляторе Atanua.

Преимущества троичных ЭВМ (компьютеров)

Троичные ЭВМ (компьютеры) обладают рядом преимуществ по сравнению с двоичными ЭВМ (компьютерами).

Удельное натуральнологарифмическое число кодов (чисел) (плотность записи информации) описывается уравнением , где  — основание системы счисления[16]. Из уравнения следует, что наибольшей плотностью записи информации обладает система счисления с основанием равным основанию натуральных логарифмов, то есть равным числу Эйлера (е=2,71…). Эту задачу решали ещё во времена Непера при выборе основания для логарифмических таблиц. Из целочисленных систем счисления наибольшей плотностью записи информации обладает троичная система счисления.

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

Элементы троичных ЭВМ (компьютеров)

Известны троичные элементы следующих видов:

Импульсные

[17][18]

Потенциальные

Трёхуровневые
  • Трёхуровневые потенциальные логические элементы (3-Level CodedTernary, 3L CT, "однопроводные"), в которых трём устойчивым состояниям соответствуют три уровня напряжения (положительное, нулевое, отрицательное), (высокое, среднее, низкое)[19][20][14]. Объём передаваемых данных увеличивается в 1,5 раза на один разряд. Амплитуда сигнала помехи до Uп/4 (до 25% от Uп).
Двухуровневые

Двухбитные

    • Двухуровневые двухбитные (2-Level 2-Bit BinaryCodedTernary, 2L 2B BCT, "двухпроводные")[21]. По скорости приблизительно на 1/3 уступают троичным двухуровневым трёхбитным триггерам[источник не указан 979 дней]. По сравнению с обычными двоичными триггерами в 1,5 раза увеличивают прямые аппаратные затраты[источник не указан 979 дней].

Трёхбитные

    • Двухуровневые трёхбитные (2-Level 3-Bit BinaryCodedTernary, 2L 3B BCT, "трёхпроводные")[источник не указан 979 дней]. На 1/3 быстрее по сравнению с троичными двухуровневыми двухбитными триггерами. По сравнению с обычными двоичными RS-триггерами увеличивают объём хранимых и передаваемых данных в 1,5 раза на один разряд. Наиболее экономичны с точки зрения аппаратных затрат (уменьшают прямые аппаратные затраты приблизительно на 5,7 % по сравнению с аппаратными затратами на обычных двоичных триггерах)[источник не указан 979 дней].
Смешанные
  • Смешанные, в которых вход данных трёхуровневый по одной линии и земле, а выход данных двухуровневый по трём линиям и земле. [22]

Узлы троичных ЭВМ

Полный троичный тринарный (трёхоперандный) одноразрядный сумматор является неполной троичной логической тринарной (трёхоперандной) функцией.

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

Будущее

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

В работе [24] возможным путём считают комбинацию оптического компьютера с троичной логической системой. По мнению авторов работы, троичный компьютер, использующий волоконную оптику, должен использовать три величины: 0 или ВЫКЛЮЧЕНО, 1 или НИЗКИЙ, 2 или ВЫСОКИЙ.

Оптическая троичная двухуровневая трёхразрядная (трёхбитная) одноединичная (однонулевая, однозначная) система из-за передачи за один такт одного трита увеличивает скорость передачи данных по одному разряду в 1,5 раза на один разряд, по n троичным разрядам ещё больше, при этом уменьшаются удельные аппаратные затраты.

Будущий потенциал троичной вычислительной техники был также отмечен такой компанией как Hypres, которая активно участвует в троичной вычислительной технике. IBM в своих публикациях также сообщает о троичной вычислительной технике, но активно не участвует в ней.

См. также

Примечания

  1. ↑ Славянская «золотая» группа. Mузей Гармонии и Золотого Сечения.
  2. ↑ «Liber аbaci» Леонардо Фибоначчи. Наталья Карпушина. Задача 4. Вариант 1
  3. ↑ «Троичный принцип» Николая Брусенцова. Mузей Гармонии и Золотого Сечения
  4. ↑ «Liber аbaci» Леонардо Фибоначчи. Наталья Карпушина. Задача 4. Вариант 2
  5. ↑ The ternary calculating machine of Thomas Fowler
  6. ↑ Троичная механическая счётная машина Томаса Фоулера.
  7. ↑ Сайт Томаса Фоулера
  8. ↑ Раздел 5.2 Choice of binary system
  9. ↑ Троичные ЭВМ “Сетунь” и “Сетунь 70”. Н.П. Брусенцов, Рамиль Альварес Хосе
  10. ↑ Брусенцов Н. П. Троичные ЭВМ "Сетунь" и "Сетунь 70" // Международная конференция SORUCOM. — 2006.
  11. ↑ Брусенцов Н. П. Электромагнитные цифровые устройства с однопроводной передачей трёхзначных сигналов // Магнитные элементы автоматики и вычислительной техники. XIV Всесоюзное совещание (Москва, сентябрь 1972 г.). — Москва: Наука, 1972. — С. 242-244.
  12. ↑ Забытая история советских ЭВМ. Владимир Сосновский, Антон Орлов
  13. ↑ http://www.flickr.com/photos/theyoungthousands/sets/72157605274828930/ Trinary Computer
  14. ↑ 1 2 http://xyzzy.freeshell.org/trinary/CPE%20Report%20-%20Ternary%20Computing%20Testbed%20-%20RC6a.pdf Ternary Computing Testbed 3-Trit Computer Architecture. Jeff Connelly, Computer Engineering Department, August 29th , 2008, with contributions from Chirag Patel and Antonio Chavez. Advised by Professor Phillip Nico. California Polytechnic State University of San Luis Obispo
  15. ↑ 1 2 А.С.Куликов. Троичные контроллеры и троичные ЭВМ (троичные компьютеры)
  16. ↑ А. С. Куликов. Экономичность систем счисления с показательной весовой функцией
  17. ↑ http://emag.iis.ru/arc/infosoc/emag.nsf/f0c3e40261f64c5b432567c80065e37d/72de119fdb628501c3257193004180c8?OpenDocument МГУ — не конкурент, а колыбель науки или о том, что в информационном обществе нельзя без Аристотеля. Н. П. Брусенцов. О «Сетуни», её разработках, производстве
  18. ↑ http://www.trinitas.ru/rus/doc/0226/002a/02260054.htm АКАДЕМИЯ ТРИНИТАРИЗМА. Дмитрий Румянцев. Долой биты! (Интервью с конструктором троичной ЭВМ)
  19. ↑ Троичная цифровая техника. Перспектива и современность. 28.10.05 Александр Кушнеров, Университет им. Бен-Гуриона, Беэр-Шева, Израиль.
  20. ↑ http://www.trinary.cc/Tutorial/Tutorial.htm
  21. ↑ http://trinary.ru/materials/ternary-binary-based-trigger Троичные триггеры на двоичных логических элементах
  22. ↑ http://trinary.cc/Tutorial/Registers/Registers.htm
  23. ↑ D.E. Knuth, The Art of Computer Programming — Volume 2: Seminumerical Algorithms, pp. 190—192. Addison-Wesley, 2nd ed., 1980. ISBN 0-201-03822-6.
  24. ↑ Ternary Optical Computer

Ссылки

  • Сайт материалов по троичной информатике (МГУ)
  • Дмитрий Румянцев. Льюис Кэрролл и троичная машина
  • http://www.trinitas.ru/rus/doc/0226/002a/02260054.htm Академия тринитаризма. Дмитрий Румянцев. Долой биты! (Интервью с конструктором троичной ЭВМ. Также в UPgrade февраль 27, 2009)
  • «Сетунь-ВС». Программа-модель троичной ЭВМ «Сетунь» Брусенцова
  • Виктор Лофгрен. Thunguska the ternary computer emulator.
  • Виктор Лофгрен. Проект «Тунгуска» (эмулятор 6-разрядной троичной ЭВМ).
  • Стив Грабб. Проект элементов и узлов троичного трёхуровневого компьютера.
  • Брусенцов Н. П. Неадекватность двоичной информатики.
  • Микросхема нового усилителя тока работающая в троичной системе.
  • Стахов А. П. Троичный принцип Брусенцова, система счисления Бергмана и «золотая» троичная зеркально-симметричная арифметика
  • http://web.archive.org/web/20060514100747/http://www.inria.fr/rapportsactivite/RA2004/r2d22004/uid51.html Team: r2d2. Multiple-Valued Logic architectures and circuits. Participants: Daniel Chillet, Ekue Kinvi-Boh, Olivier Sentieys. — команда, которая в 2004 г., в Catholic University of Louvain-La-Neuve (UCL) (Франция), выпустила первые полностью троичные микросхемы (64-term SRAM и 4-term сумматор).
  • http://web.archive.org/web/20060112181303/http://www.inria.fr/rapportsactivite/RA2004/r2d22004/r2d2.pdf INRIA. Team R2D2. Reconfigurable and Retargetable Digital Devices. Renne. Activiti Report. 2004
  • Будущее квантовых компьютеров — в троичных вычислениях
  • Троичные цифровые системы и троичная логика
  • Творец троичного компьютера[неавторитетный источник?]
  • Сергей Матющенко. Первые «малогабаритные» компьютеры
  • Творец троичной ЭВМ
  • История компьютера. Троичный компьютер.
  • Научная конференция, посвящённая пятидесятилетию ЭВМ «Сетунь»
  • http://www.dialog-21.ru/news/digest.asp?id=123186 "Троичный Компьютер???"
  • http://www.flickr.com/photos/theyoungthousands/sets/72157605274828930/ Фотографии конструкции и осциллограммы трёхуровневой 3-х тритной троичной цифровой компьютерной системы.
  • http://xyzzy.freeshell.org/trinary/CPE%20Report%20-%20Ternary%20Computing%20Testbed%20-%20RC6a.pdf Ternary Computing Testbed 3-Trit Computer Architecture. Jeff Connelly, Computer Engineering Department, August 29th, 2008, with contributions from Chirag Patel and Antonio Chavez. Advised by Professor Phillip Nico. California Polytechnic State University of San Luis Obispo. Архитектура 3-х тритного троичного компьютера.
  • http://www.arsvest.ru/archive/issue680/posidelki/view8787.html "Двоичную логику в отставку!"
  • http://www.trinitas.ru/rus/doc/0226/002a/02260075.htm Академия тринитаризма. Румянцев Д. Льюис Кэрролл и троичная машина

dic.academic.ru

Троичный компьютер Википедия

Троичный компьютер — компьютер, построенный на двоичных и троичных логических элементах и узлах [1], работающий в двоичной и троичной системе счисления по законам двоичной и троичной логики с применением двоичных и троичных алгоритмов.

История

  • 1958 г., Н. П. Брусенцов построил в МГУ первую опытную электронную троичную ЭВМ (компьютер) «Сетунь»[9] на ячейках из ферритдиодных магнитных усилителей переменного тока[10], работавших в двухбитном троичном коде, четвёртое состояние двух битов не использовалось. Для передачи данных использовалась однопроводная система[11]. В США в то время тоже рассматривали преимущества и недостатки троичного компьютера и после проведённых теоретических исследований строить троичный компьютер не стали.
  • 1959 г., под руководством Н. П. Брусенцова (ВЦ МГУ) разработана первая серийная троичная ЭВМ «Сетунь». С 1962 г. по 1964 г. Казанским заводом математических машин было произведено 46 ЭВМ «Сетунь»[12].
Трёхуровневая 3-тритная цифровая компьютерная система TCA2[13]
  • 2008 г., (14 марта — 24 мая), Джефф Коннелли (англ. Jeff Connelly), Кираг Патель (англ. Chirag Patel) и Антонио Чавез (англ. Antonio Chavez) при поддержке профессора Филлипа Нико (англ. Phillip Nico) (California Polytechnic State University of San Luis Obispo, San Luis Obispo, Калифорния, США) построили трёхтритную цифровую компьютерную систему TCA2, версия v2.0[14], в трёхуровневой (3-Level CodedTernary, 3L CT, «однопроводной») системе троичных логических элементов на 1484-х интегральных транзисторах.

Преимущества троичных ЭВМ (компьютеров)

Троичные ЭВМ (компьютеры) обладают рядом преимуществ по сравнению с двоичными ЭВМ (компьютерами).

При сложении тритов в троичных полусумматорах и в троичных сумматорах количество сложений в log2⁡3=1,58...{\displaystyle \log _{2}3=1,58...} раза меньше, чем при сложении битов в двоичных полусумматорах и в двоичных сумматорах, и, следовательно, быстродействие при сложении в 1,58.. раза (на 58%) больше.

При применении симметричной троичной системы счисления и сложение и вычитание производится в одних и тех же двухаргументных (двухоперандных) полусумматорах-полувычитателях или полных трёхаргументных (трёхоперандных) сумматорах-вычитателях без преобразования отрицательных чисел в дополнительные коды, то есть ещё немного быстрее, чем в двоичных полусумматорах и в двоичных полных сумматорах, в которых для вычитания используется сложение с двумя преобразованиями отрицательных чисел, сначала в первое дополнение, а затем во второе дополнение, т.е. два дополнительных действия ("инверсия" и "+1") на каждое отрицательное слагаемое.

Сложение сильно тормозят переносы, которые в двоичном сумматоре возникают в 4-х случаях из 8-ми (в 50% случаев), в троичном несимметричном сумматоре возникают в 9-ти случаях из 18-ти (в 50% случаев), а в троичном симметричном сумматоре в 8-ми случаях из 27-ми (в 29,6...% случаев), что ещё немного увеличивает быстродействие при применении троичных симметричных сумматоров.

3-битная троичная физическая система кодирования и передачи данных 3B BCT имеет на 15,3% большее быстродействие, чем обычная двоичная система кодирования и передачи данных[15], что ещё немного увеличивает быстродействие.

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

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

Кроме этого, вместо 4-х унарных, 16-ти бинарных и 256-ти тринарных двоичных логических функций в троичных ЭВМ появляются 27 унарных, 19 683 бинарных и 7 625 597 484 987 тринарных (трёхоперандных) троичных логических функций, которые намного мощнее бинарных. Увеличение "логической мощности" в неизвестное число раз, может в 19 683/16 = 1 230 раз, а может в 7 625 597 484 987/256 = 29 787 490 175 раз (нет методики сравнения "логических мощностей"), но намного, может увеличить "логическую мощность" даже медленнодействующих физических систем кодирования и передачи данных, в том числе и трёхуровневой (3-Level CodedTernary (3L CT), "однопроводной").

Подобно тому, как в двоичных ЭВМ деление на 2 осуществляется для целых чисел операцией сдвига кода на 1 разряд вправо, а для чисел в виде мантиссы и экспоненты (с плавающей запятой) вычитанием 1 из экспоненты, в троичных ЭВМ для целых чисел операцией сдвига кода на 1 разряд вправо, а для чисел в виде мантиссы и экспоненты (с плавающей запятой) вычитанием из экспоненты 1 производится деление на 3. Из-за этого свойства троичные алгоритмы, а некоторые троичные алгоритмы работают быстрее двоичных алгоритмов, работают на троичных ЭВМ быстрее, чем на двоичных ЭВМ, что ещё немного увеличивает скорость решения некоторых задач, особенно имеющих троичность, на троичных ЭВМ.

В троичной системе знак числа может иметь все три значения: "-", "0" и "+", т.е. лучше используется троичная суть знака числа. Это можно сделать и в двоичной системе, но в двоичной системе потребуется два двоичных разряда (бита) на знак числа, а в троичной системе только один троичный разряд (трит).

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

Удельное натуральнологарифмическое число кодов (чисел) (плотность записи информации) описывается уравнением y=ln⁡xx{\displaystyle y={\frac {\ln x}{x}}}, где x{\displaystyle x} — основание системы счисления[16]. Из уравнения следует, что наибольшей плотностью записи информации обладает система счисления с основанием равным основанию натуральных логарифмов, то есть равным числу Эйлера (е=2,71…). Эту задачу решали ещё во времена Непера при выборе основания для логарифмических таблиц. Из целочисленных систем счисления наибольшей плотностью записи информации обладает троичная система счисления.

Троичная логика целиком включает в себя двоичную логику, как центральное подмножество, поэтому троичные ЭВМ (компьютеры) могут делать почти [источник не указан 251 день] всё, что делают двоичные ЭВМ (компьютеры), плюс возможности троичной логики.

Элементы троичных ЭВМ (компьютеров)

Известны троичные элементы следующих видов:

Импульсные

[17][18]

Потенциальные

Трёхуровневые
  • В трёхуровневых потенциальных линиях передачи цифровых данных (3-Level CodedTernary, 3L CT, «однопроводных») трём устойчивым состояниям соответствуют три уровня напряжения (положительное, нулевое, отрицательное), (высокое, среднее, низкое)[14][19][20]. Имеют меньшее итоговое быстродействие, чем обычная двоичная система [21].

Амплитуда наибольшего сигнала помехи равной помехоустойчивости с двухуровневыми элементами не более (+/-)Uп/6 (16,7% от Uп), при делении всего диапазона напряжений на три равные части и номинальных напряжениях сигналов в срединах поддиапазонов.

Недостатки:1. необходимость, для равной помехоустойчивости с обычной двоичной системой, увеличения размаха сигнала в 2 раза,2. неодинаковость среднего состояния с верхним и нижним состояниями,3. неодинаковость амплитуд переходов из крайних состояний в среднее (одинарная амплитуда) и переходов из одного крайнего состояния в другое крайнее состояние (двойная амплитуда).

Двухуровневые

Амплитуда наибольшего сигнала помехи не более (+/-)Uп/4 (25% от Uп), при делении всего диапазона напряжений на две равные части и номинальных напряжениях сигналов в срединах поддиапазонов.

  • Двухуровневые, потенциальные (2-Level BinaryCodedTernary, 2L BCT), в которых логические элементы (инверторы) имеют два устойчивых состояния с двумя уровнями напряжения (высокое, низкое), а троичность работы достигается системой обратных связей (троичный триггер)[22]. Амплитуда сигнала помехи до Uп/2 (до 50 % от Uп).

Двухбитные

  • Двухуровневые двухбитные (2-Level 2-Bit BinaryCodedTernary, 2L 2B BCT, «двухпроводные»)[23]. По скорости равны троичным двухуровневым трёхбитным триггерам[источник не указан 3040 дней]. По сравнению с обычными двоичными триггерами в 1,5 раза увеличивают прямые аппаратные затраты[источник не указан 3040 дней].

Недостатки:

1. два провода на один разряд.

Трёхбитные

  • Двухуровневые трёхбитные (2-Level 3-Bit BinaryCodedTernary, 2L 3B BCT, «трёхпроводные»)[24]. По скорости равны троичным двухуровневым двухбитным триггерам. По сравнению с обычными двоичными RS-триггерами увеличивают объём хранимых и передаваемых данных в 1,5 раза на один разряд, но и аппаратные затраты тоже увеличиваются. Быстродействие выше, чем в обычной двоичной системе, но ниже, чем в четверичной четырёхбитной системе, но аппаратные затраты растут меньше, чем в четверичной четырёхбитной системе. Из-за избыточности трёхбитного кода появляется возможность обнаружения одиночных однобитных ошибок на аппаратном уровне, что может оказаться полезным в устройствах повышенной надёжности и может найти применение в устройствах, в которых надёжность и быстродействие являются более значимыми параметрами, чем аппаратные затраты.

Недостатки:

1. три провода на один разряд.

Смешанные
  • Смешанные, в которых вход данных трёхуровневый по одной линии и земле, а выход данных двухуровневый по трём линиям и земле.[25]

Узлы троичных ЭВМ

Полный троичный тринарный (трёхоперандный) одноразрядный сумматор является неполной троичной логической тринарной (трёхоперандной) функцией.

Простейшие троичные процессоры на троичных регистрах сдвига, выполняющие операции умножения и деления на 3{\displaystyle 3} и 3n{\displaystyle 3^{n}}, прибавления и вычитания 3{\displaystyle 3} и 3∗n{\displaystyle 3*n}, умножения и деления на 1{\displaystyle 1} и n{\displaystyle n}, прибавления и вычитания 1{\displaystyle 1} и n{\displaystyle n} описаны в [источник не указан 3040 дней].

Будущее

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

В работе [Jin, He, Lü 2005][27] возможным путём считают комбинацию оптического компьютера с троичной логической системой. По мнению авторов работы, троичный компьютер, использующий волоконную оптику, должен использовать три величины: 0 или ВЫКЛЮЧЕНО, 1 или НИЗКИЙ, 2 или ВЫСОКИЙ, т.е. трёхуровневую систему. В работе же [24] автор пишет, что более быстродействующей и более перспективной является трёхчастотная система с тремя величинами: (f1,f2,f3) равными "001" = "0", "010" = "1" и "100" = "2", где 0 - частота выключена, а 1 - частота включена.

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

См. также

Примечания

  1. ↑ D. C. Rine (ed.), Computer Science and Multiple-Valued Logic. Theory and Applications. Elsevier, 1977, 548p. ISBN 9780720404067
  2. ↑ Славянская «золотая» группа. Mузей Гармонии и Золотого Сечения.
  3. ↑ «Liber аbaci» Леонардо Фибоначчи. Наталья Карпушина. Задача 4. Вариант 1
  4. ↑ «Троичный принцип» Николая Брусенцова. Mузей Гармонии и Золотого Сечения
  5. ↑ «Liber аbaci» Леонардо Фибоначчи. Наталья Карпушина. Задача 4. Вариант 2
  6. ↑ Троичная механическая счётная машина Томаса Фоулера.
  7. ↑ Сайт Томаса Фоулера
  8. ↑ Раздел 5.2 Choice of binary system
  9. ↑ Троичные ЭВМ «Сетунь» и «Сетунь 70». Н. П. Брусенцов, Рамиль Альварес Хосе
  10. ↑ Брусенцов Н. П. Троичные ЭВМ "Сетунь" и "Сетунь 70" // Международная конференция SORUCOM. — 2006.
  11. ↑ Брусенцов Н. П. Электромагнитные цифровые устройства с однопроводной передачей трёхзначных сигналов // Магнитные элементы автоматики и вычислительной техники. XIV Всесоюзное совещание (Москва, сентябрь 1972 г.). — Москва: Наука, 1972. — С. 242-244.
  12. ↑ Забытая история советских ЭВМ. Владимир Сосновский, Антон Орлов
  13. ↑ Trinary Computer
  14. ↑ 1 2 Ternary Computing Testbed 3-Trit Computer Architecture. Jeff Connelly, Computer Engineering Department, August 29th, 2008, with contributions from Chirag Patel and Antonio Chavez. Advised by Professor Phillip Nico. California Polytechnic State University of San Luis Obispo
  15. ↑ Куликов А. С. Быстродействие физических систем передачи данных
  16. ↑ А. С. Куликов. Экономичность систем счисления с показательной весовой функцией
  17. ↑ http://emag.iis.ru/arc/infosoc/emag.nsf/f0c3e40261f64c5b432567c80065e37d/72de119fdb628501c3257193004180c8?OpenDocument МГУ — не конкурент, а колыбель науки или о том, что в информационном обществе нельзя без Аристотеля. Н. П. Брусенцов. О «Сетуни», её разработках, производстве
  18. ↑ http://www.trinitas.ru/rus/doc/0226/002a/02260054.htm АКАДЕМИЯ ТРИНИТАРИЗМА. Дмитрий Румянцев. Долой биты! (Интервью с конструктором троичной ЭВМ)
  19. ↑ Троичная цифровая техника. Перспектива и современность. 28.10.05 Александр Кушнеров, Университет им. Бен-Гуриона, Беэр-Шева, Израиль.
  20. ↑ http://www.trinary.cc/Tutorial/Tutorial.htm
  21. ↑ Куликов А.С. Быстродействие физических систем передачи данных
  22. ↑ Троичные триггеры
  23. ↑ http://trinary.ru/materials/ternary-binary-based-trigger Троичные триггеры на двоичных логических элементах
  24. ↑ 1 2 Быстродействие физических систем передачи данных
  25. ↑ Trinary.cc
  26. ↑ D.E. Knuth, The Art of Computer Programming — Volume 2: Seminumerical Algorithms, pp. 190—192. Addison-Wesley, 2nd ed., 1980. ISBN 0-201-03822-6.
  27. ↑ Ternary Optical Computer

Ссылки

  • Сайт материалов по троичной информатике (МГУ)
  • Дмитрий Румянцев. Льюис Кэрролл и троичная машина  (недоступная ссылка с 13-05-2013 [1918 дней] — история)
  • Академия тринитаризма. Дмитрий Румянцев. Долой биты! (Интервью с конструктором троичной ЭВМ. Также в UPgrade февраль 27, 2009)
  • «Сетунь-ВС». Программа-модель троичной ЭВМ «Сетунь» Брусенцова
  • Виктор Лофгрен. Thunguska the ternary computer emulator.
  • Виктор Лофгрен. Проект «Тунгуска» (эмулятор 6-разрядной троичной ЭВМ).
  • Стив Грабб. Проект элементов и узлов троичного трёхуровневого компьютера.
  • Брусенцов Н. П. Неадекватность двоичной информатики.
  • Микросхема нового усилителя тока работающая в троичной системе.
  • Стахов А. П. Троичный принцип Брусенцова, система счисления Бергмана и «золотая» троичная зеркально-симметричная арифметика
  • Team: r2d2. Multiple-Valued Logic architectures and circuits. Participants: Daniel Chillet, Ekue Kinvi-Boh, Olivier Sentieys — команда, которая в 2004 г., в Catholic University of Louvain-La-Neuve (UCL) (Франция), выпустила первые полностью троичные микросхемы (64-term SRAM и 4-term сумматор).
  • INRIA. Team R2D2. Reconfigurable and Retargetable Digital Devices. Renne. Activiti Report. 2004
  • Будущее квантовых компьютеров — в троичных вычислениях
  • Троичные цифровые системы и троичная логика
  • Творец троичного компьютера[неавторитетный источник?]
  • Сергей Матющенко. Первые «малогабаритные» компьютеры
  • Творец троичной ЭВМ
  • История компьютера. Троичный компьютер.
  • Научная конференция, посвящённая пятидесятилетию ЭВМ «Сетунь»
  • «Троичный Компьютер???»
  • Фотографии конструкции и осциллограммы трёхуровневой 3-х тритной троичной цифровой компьютерной системы.
  • Ternary Computing Testbed 3-Trit Computer Architecture. Jeff Connelly, Computer Engineering Department, August 29th, 2008, with contributions from Chirag Patel and Antonio Chavez. Advised by Professor Phillip Nico. California Polytechnic State University of San Luis Obispo. Архитектура 3-х тритного троичного компьютера.
  • «Двоичную логику в отставку!»
  • Академия тринитаризма. Румянцев Д. Льюис Кэрролл и троичная машина

wikiredia.ru

Троичный компьютер - Дом Солнца

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

Его научный руководитель академик С.Л. Соболев загорелся идеей создания малой ЭВМ, пригодной по стоимости, размерам, надежности для институтских лабораторий. Он организовал семинар, в котором участвовали М.Р. Шура-Бура, К.А. Семендяев, Е.А. Жоголев и, конечно, сам Сергей Львович. Анализировали недостатки существующих машин, прикидывали систему команд и структуру (теперь это называют архитектурой), рассматривали варианты технической реализации, склоняясь к магнитным элементам, поскольку транзисторов еще не было, лампы исключались, а сердечники и диоды можно было достать и все сделать самим. На одном из семинаров (23 апреля 1956 г.) с участием С.Л. Соболева были сформулированы основные технические требования к созданию малой ЭВМ. Руководителем и вначале единственным исполнителем разработки нового компьютера был назначен Н.П. Брусенцов. Заметим, что речь шла о машине с двоичной системой счисления на магнитных элементах.

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

Первый экземпляр «Сетуни» (а машина была названа так по имени речки, протекавшей возле университета) был готов к концу 1958 г. Сделали ее, можно сказать, своими руками сотрудники возглавляемой Н. П. Брусенцовым лаборатории: Е. А. Жоголев, С. П. Маслов, В. В. Веригин, В. С. Березин, Б. Я. Фельдман, Н. С. Карцева, А. М. Тишулина, В. П. Рогозин. На десятый день комплексной наладки машина заработала. Такого в практике наладчиков разрабатываемых в те годы ЭВМ еще не было.

Постановлением Совмина СССР серийное производство «Сетуни» было поручено Казанскому заводу математических машин. Конструкторскую документацию на машину разработали в СКБ Института кибернетики АН Украины. Первый образец машины демонстрировался на ВДНХ в Москве. Второй пришлось сдавать на заводе, поскольку заводские начальники пытались доказать, что машина, принятая Межведомственной комиссией и успешно работающая на ВДНХ, не годится для производства. «Пришлось собственными руками привести заводской (второй) образец в соответствие с нашей документацией, — вспоминает Брусенцов, — и на испытаниях он показал 98% полезного времени при единственном отказе (пробился диод на телетайпе), а также солидный запас по климатике и вариациям напряжения сети». Желания наладить крупносерийное производство у руководства завода не было. Причины: «Сетунь» была слишком дешевой машиной, а значит, невыгодной для завода, и тот факт, что она надежно и продуктивно работала во всех климатических зонах от Калининграда до Магадана и от Одессы до Якутска, причем без какого-либо обслуживания и по существу без запасных частей, в расчет не принимался. Успешность испытаний вынудили 30 ноября 1961 г. директора завода был подписать акт, положивший конец его стараниям похоронить неугодную машину.

Выпускали всего по 15—20 машин в год, а вскоре и от этого отказались. Всего казанский завод выпустил 50 ЭВМ «Сетунь», 30 из них работали в высших учебных заведениях СССР.

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

В 1961—1968 гг. Брусенцов вместе с Жоголевым разработал архитектуру новой машины, названной затем «Сетунь-70». Было намечено к 1970 г. разработать действующий образец. В апреле 1970 г. образец уже действовал. Работал он на тестах, которые пришлось писать Н. П. Брусенцову, потому что Жоголев увлекся другой работой. Машину все же «оседлали», помог программист Рамиль Альварес Хосе, а еще через год, «слегка» модернизировав «Сетунь-70», сделали ее машиной структурированного программирования.

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

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

К сожалению, лаборатория Н. П. Брусенцова после создания машины «Сетунь-70» была выселена из помещения ВЦ МГУ на чердак студенческого общежития. Вероятно, причина была в том, что на фоне двоичных ЭВМ выглядела она со своей троичностью белой вороной. Первое детище Николая Петровича — машина «Сетунь» (экспериментальный образец, проработавший безотказно 17 лет) была варварски уничтожена — ее разрезали на куски и выбросили на свалку. «Сетунь-70» сотрудники лаборатории забрали с собой на чердак и там на ее основе создали «Наставник» — замечательную систему обучения с помощью компьютера.

В человеческом обществе неприятие нового в порядке вещей, и Н. П. Брусенцов еще легко отделался. А вот Уильям Оккам, проповедовавший трехзначную логику в ХIII веке, с большим трудом избежал костра…Тем не менее Н. П. Брусенцов уверен, что полноценная информатика не может ограничиться общепринятой сегодня по техническим причинам двоичной системой — основа должна быть троичной.

В настоящее время Николай Петрович Брусенцов заведует лабораторией ЭВМ факультета вычислительной математики и кибернетики Московского государственного университета им. М.В. Ломоносова. Основные направления его научной деятельности — архитектура цифровых машин, автоматизированные системы обучения, системы программирования для мини- и микрокомпьютеров. ЭВМ «Сетунь-70» и сегодня успешно используется в учебном процессе в МГУ. Н.П. Брусенцов является научным руководителем тем, связанных с созданием микрокомпьютерных обучающих систем и систем программирования.

Н. П. Брусенцов говорил, что «..налицо убедительные доказательства верности открытого пути. С какой легкостью была сделана «Сетунь», как просто ее осваивали и продуктивно применяли во всех областях и как программисты плевались, когда пришлось им переходить на двоичные машины. Наивысшее достижение сегодня —- RISC-архитектура — машины с сокращенным набором команд (обычно их 150), но где им до «Сетуни», у которой 24 команды обеспечивали полную универсальность и несвойственные RISC эффективность и удобство программирования!

Истинный RISC может быть только троичным.

www.sunhome.ru

Троичный компьютер — WiKi

Троичные ЭВМ (компьютеры) обладают рядом преимуществ по сравнению с двоичными ЭВМ (компьютерами).

При сложении тритов в троичных полусумматорах и в троичных сумматорах количество сложений в log2⁡3=1,58...{\displaystyle \log _{2}3=1,58...}  раза меньше, чем при сложении битов в двоичных полусумматорах и в двоичных сумматорах, и, следовательно, быстродействие при сложении в 1,58.. раза (на 58%) больше.

При применении симметричной троичной системы счисления и сложение и вычитание производится в одних и тех же двухаргументных (двухоперандных) полусумматорах-полувычитателях или полных трёхаргументных (трёхоперандных) сумматорах-вычитателях без преобразования отрицательных чисел в дополнительные коды, то есть ещё немного быстрее, чем в двоичных полусумматорах и в двоичных полных сумматорах, в которых для вычитания используется сложение с двумя преобразованиями отрицательных чисел, сначала в первое дополнение, а затем во второе дополнение, т.е. два дополнительных действия ("инверсия" и "+1") на каждое отрицательное слагаемое.

Сложение сильно тормозят переносы, которые в двоичном сумматоре возникают в 4-х случаях из 8-ми (в 50% случаев), в троичном несимметричном сумматоре возникают в 9-ти случаях из 18-ти (в 50% случаев), а в троичном симметричном сумматоре в 8-ми случаях из 27-ми (в 29,6...% случаев), что ещё немного увеличивает быстродействие при применении троичных симметричных сумматоров.

3-битная троичная физическая система кодирования и передачи данных 3B BCT имеет на 15,3% большее быстродействие, чем обычная двоичная система кодирования и передачи данных[15], что ещё немного увеличивает быстродействие.

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

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

Кроме этого, вместо 4-х унарных, 16-ти бинарных и 256-ти тринарных двоичных логических функций в троичных ЭВМ появляются 27 унарных, 19 683 бинарных и 7 625 597 484 987 тринарных (трёхоперандных) троичных логических функций, которые намного мощнее бинарных. Увеличение "логической мощности" в неизвестное число раз, может в 19 683/16 = 1 230 раз, а может в 7 625 597 484 987/256 = 29 787 490 175 раз (нет методики сравнения "логических мощностей"), но намного, может увеличить "логическую мощность" даже медленнодействующих физических систем кодирования и передачи данных, в том числе и трёхуровневой (3-Level CodedTernary (3L CT), "однопроводной").

Подобно тому, как в двоичных ЭВМ деление на 2 осуществляется для целых чисел операцией сдвига кода на 1 разряд вправо, а для чисел в виде мантиссы и экспоненты (с плавающей запятой) вычитанием 1 из экспоненты, в троичных ЭВМ для целых чисел операцией сдвига кода на 1 разряд вправо, а для чисел в виде мантиссы и экспоненты (с плавающей запятой) вычитанием из экспоненты 1 производится деление на 3. Из-за этого свойства троичные алгоритмы, а некоторые троичные алгоритмы работают быстрее двоичных алгоритмов, работают на троичных ЭВМ быстрее, чем на двоичных ЭВМ, что ещё немного увеличивает скорость решения некоторых задач, особенно имеющих троичность, на троичных ЭВМ.

В троичной системе знак числа может иметь все три значения: "-", "0" и "+", т.е. лучше используется троичная суть знака числа. Это можно сделать и в двоичной системе, но в двоичной системе потребуется два двоичных разряда (бита) на знак числа, а в троичной системе только один троичный разряд (трит).

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

Удельное натуральнологарифмическое число кодов (чисел) (плотность записи информации) описывается уравнением y=ln⁡xx{\displaystyle y={\frac {\ln x}{x}}} , где x{\displaystyle x}  — основание системы счисления[16]. Из уравнения следует, что наибольшей плотностью записи информации обладает система счисления с основанием равным основанию натуральных логарифмов, то есть равным числу Эйлера (е=2,71…). Эту задачу решали ещё во времена Непера при выборе основания для логарифмических таблиц. Из целочисленных систем счисления наибольшей плотностью записи информации обладает троичная система счисления.

Троичная логика целиком включает в себя двоичную логику, как центральное подмножество, поэтому троичные ЭВМ (компьютеры) могут делать почти [источник не указан 211 дней] всё, что делают двоичные ЭВМ (компьютеры), плюс возможности троичной логики.

Известны троичные элементы следующих видов:

Импульсные

[17][18]

Потенциальные

Трёхуровневые
  • В трёхуровневых потенциальных линиях передачи цифровых данных (3-Level CodedTernary, 3L CT, «однопроводных») трём устойчивым состояниям соответствуют три уровня напряжения (положительное, нулевое, отрицательное), (высокое, среднее, низкое)[14][19][20]. Имеют меньшее итоговое быстродействие, чем обычная двоичная система [21].

Амплитуда наибольшего сигнала помехи равной помехоустойчивости с двухуровневыми элементами не более (+/-)Uп/6 (16,7% от Uп), при делении всего диапазона напряжений на три равные части и номинальных напряжениях сигналов в срединах поддиапазонов.

Недостатки:1. необходимость, для равной помехоустойчивости с обычной двоичной системой, увеличения размаха сигнала в 2 раза,2. неодинаковость среднего состояния с верхним и нижним состояниями,3. неодинаковость амплитуд переходов из крайних состояний в среднее (одинарная амплитуда) и переходов из одного крайнего состояния в другое крайнее состояние (двойная амплитуда).

Двухуровневые

Амплитуда наибольшего сигнала помехи не более (+/-)Uп/4 (25% от Uп), при делении всего диапазона напряжений на две равные части и номинальных напряжениях сигналов в срединах поддиапазонов.

  • Двухуровневые, потенциальные (2-Level BinaryCodedTernary, 2L BCT), в которых логические элементы (инверторы) имеют два устойчивых состояния с двумя уровнями напряжения (высокое, низкое), а троичность работы достигается системой обратных связей (троичный триггер)[22]. Амплитуда сигнала помехи до Uп/2 (до 50 % от Uп).

Двухбитные

  • Двухуровневые двухбитные (2-Level 2-Bit BinaryCodedTernary, 2L 2B BCT, «двухпроводные»)[23]. По скорости равны троичным двухуровневым трёхбитным триггерам[источник не указан 3000 дней]. По сравнению с обычными двоичными триггерами в 1,5 раза увеличивают прямые аппаратные затраты[источник не указан 3000 дней].

Недостатки:

1. два провода на один разряд.

Трёхбитные

  • Двухуровневые трёхбитные (2-Level 3-Bit BinaryCodedTernary, 2L 3B BCT, «трёхпроводные»)[24]. По скорости равны троичным двухуровневым двухбитным триггерам. По сравнению с обычными двоичными RS-триггерами увеличивают объём хранимых и передаваемых данных в 1,5 раза на один разряд, но и аппаратные затраты тоже увеличиваются. Быстродействие выше, чем в обычной двоичной системе, но ниже, чем в четверичной четырёхбитной системе, но аппаратные затраты растут меньше, чем в четверичной четырёхбитной системе. Из-за избыточности трёхбитного кода появляется возможность обнаружения одиночных однобитных ошибок на аппаратном уровне, что может оказаться полезным в устройствах повышенной надёжности и может найти применение в устройствах, в которых надёжность и быстродействие являются более значимыми параметрами, чем аппаратные затраты.

Недостатки:

1. три провода на один разряд.

Смешанные
  • Смешанные, в которых вход данных трёхуровневый по одной линии и земле, а выход данных двухуровневый по трём линиям и земле.[25]

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

В работе [Jin, He, Lü 2005][27] возможным путём считают комбинацию оптического компьютера с троичной логической системой. По мнению авторов работы, троичный компьютер, использующий волоконную оптику, должен использовать три величины: 0 или ВЫКЛЮЧЕНО, 1 или НИЗКИЙ, 2 или ВЫСОКИЙ, т.е. трёхуровневую систему. В работе же [24] автор пишет, что более быстродействующей и более перспективной является трёхчастотная система с тремя величинами: (f1,f2,f3) равными "001" = "0", "010" = "1" и "100" = "2", где 0 - частота выключена, а 1 - частота включена.

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

ru-wiki.org


Читайте также
  • Гиперскоростная звезда – более 1.000.000 миль в час
    Гиперскоростная звезда – более 1.000.000 миль в час
  • Астрономы обнаружили самую большую спиральную галактику
    Астрономы обнаружили самую большую спиральную галактику
  • Млечный путь содержит десятки миллиардов планет, схожих с Землей
    Млечный путь содержит десятки миллиардов планет, схожих с Землей
  • Млечный путь разорвал своего спутника на четыре отдельных хвоста
    Млечный путь разорвал своего спутника на четыре отдельных хвоста
  • Найден источник водородных газов для нашей Галактики
    Найден источник водородных газов для нашей Галактики