Одна ячейка памяти троичного компьютера один трит может принимать одно из трех возможных значений
Обновлено: 21.11.2024
Тройной компьютер (также называемый тройным компьютером) – это компьютер, в вычислениях которого используется троичная логика (три возможных значения) вместо более распространенной двоичной логики (два возможных значения).
История
Одна из первых вычислительных машин, построенная Томасом Фаулером полностью из дерева в 1840 году, работала в сбалансированном троичном алгоритме. [1] [2] Первый современный электронный троичный компьютер Сетунь был построен в 1958 году в Советском Союзе в Московском государственном университете Николаем Брусенцовым, [3] [4] и имел заметные преимущества перед бинарными компьютерами, которые в конечном итоге заменили его. , таких как более низкое потребление электроэнергии и более низкая стоимость производства. [3] В 1970 году Брусенцов построил усовершенствованную версию ЭВМ, которую назвал Сетунь-70. [3] В США в 1973 году был разработан троичный вычислительный эмулятор Ternac, работающий на двоичной машине.
Сбалансированный троичный
Троичные вычисления обычно реализуются с точки зрения сбалансированных троичных вычислений, в которых используются три цифры −1, 0 и +1. Отрицательное значение любой сбалансированной троичной цифры можно получить, заменив каждый + на - и наоборот. Легко вычесть число, перевернув цифры + и -, а затем используя обычное сложение. Сбалансированная тройка может выражать отрицательные значения так же легко, как и положительные, без необходимости ведущего отрицательного знака, как с десятичными числами. Эти преимущества делают некоторые вычисления в троичной системе более эффективными, чем в двоичной.
Я часто размышляю о том, что, если бы в период младенчества общества была принята троичная система вместо десятичной, машины, подобные нынешним, были бы задолго до того, как это стало бы обычным явлением, поскольку переход от мысленного к механическому исчислению был бы очень очевидно и просто.
Будущее
С появлением серийно выпускаемых двоичных компонентов для компьютеров троичные компьютеры превратились в небольшую сноску в истории вычислений. Однако Дональд Кнут предсказывает, что элегантность и эффективность троичной логики вернут их в разработку в будущем. [5] Один из возможных способов добиться этого — объединить оптический компьютер с троичной логической системой. [6] Тройной компьютер, использующий волоконную оптику, может использовать темноту как 0 и две ортогональные поляризации света как 1 и -1. IBM также нечасто сообщает о темах троичных вычислений (в своих статьях), но не занимается этим активно.
Джозефсоновский переход был предложен как сбалансированная троичная ячейка памяти, использующая циркулирующие сверхпроводящие токи по часовой стрелке, против часовой стрелки или в выключенном состоянии. «Преимуществами предложенной схемы памяти являются возможность высокой скорости вычислений, низкое энергопотребление и очень простая конструкция с меньшим количеством элементов благодаря троичной операции». [7]
В 2009 году был предложен троичный квантовый компьютер, в котором вместо кубитов используются кутриты. Когда количество основных состояний квантового элемента равно d, это называется кудитом. [8]
Тернарные компьютеры в популярной культуре
В романе Роберта А. Хайнлайна Достаточно времени для любви разумные компьютеры Секундуса, планеты, на которой происходит действие части сюжета, включая Минерву, используют несбалансированную троичную систему. Минерва, сообщая о результате расчета, говорит: «Триста сорок одна тысяча шестьсот сорок. Исходное троичное значение: пара единиц пара запятая единица ноль ноль запятая пара единиц пара запятая единица ноль ноль точка ноль». [9]
Виртуальные адепты в ролевой игре Mage: The Ascension используют тройные компьютеры.
В веб-комиксе Говарда Тайлера Schlock Mercenary каждый современный компьютер представляет собой троичный компьютер. ИИ используют дополнительную цифру как «может быть» в логических операциях (истина/ложь), таким образом, имея гораздо более глубокое понимание нечеткой логики, чем это возможно с бинарными компьютерами.
Союзники из серии Revelation Space Аластера Рейнольдса используют троичную логику для программирования своих компьютеров и нанотехнологических устройств.
Дополнительная литература
См. также
Ссылки
Внешние ссылки
Эта статья взята из Википедии - версия от 17.11.2016. Текст доступен по лицензии Creative Commons Attribution/Share Alike, но к медиафайлам могут применяться дополнительные условия.
Закрыто. Этот вопрос не соответствует правилам переполнения стека. В настоящее время ответы не принимаются.
Хотите улучшить этот вопрос? Обновите вопрос, чтобы он соответствовал теме Stack Overflow.
Закрыт 1 год назад.
Разве объект с тремя состояниями не способен сразу же хранить больше информации и обрабатывать большие значения? Я знаю, что процессоры в настоящее время используют массивные сети вентилей XOR, и это необходимо переработать.
Поскольку у нас 64-битная система (мы можем представить 2^63 возможных состояния), вычисление эквивалентного троичного поколения может поддерживать число с еще 30 десятками знаков log(3^63-2^63).
Я полагаю, что определить разность потенциалов между +1 и 0 так же легко, как и между -1 и 0.
Может ли сложность аппаратного обеспечения, энергопотребления или плотности чипа компенсировать выигрыш в емкости хранения и вычислительной мощности?
15 ответов 15
Намного сложнее создавать компоненты, использующие более двух состояний/уровней/что-то еще. Например, транзисторы, используемые в логике, либо закрыты и вообще не проводят ток, либо полностью открыты. Если бы они были полуоткрыты, потребовалась бы гораздо большая точность и дополнительная мощность. Тем не менее, иногда для упаковки большего количества данных используется больше состояний, но редко (например, современная флэш-память NAND, модуляция в модемах).
Если вы используете более двух состояний, вам необходимо быть совместимым с двоичным, потому что его использует остальной мир. Три отсутствует, потому что преобразование в двоичное число потребует дорогостоящего умножения или деления с остатком. Вместо этого вы переходите сразу к четырем или более высокой степени двух.
Это практические причины, по которым это не делается, но математически вполне возможно построить компьютер на троичной логике.
здесь мы не говорим о современности. В то время, когда рассматривались троичные компьютеры, остальной мир все еще (также) работал на двоичных компьютерах
Да, современное оборудование будет проблемой, но именно поэтому нужно новое оборудование, да, поначалу оно будет дорогим, но очень похоже на текущую цену на оборудование, которая со временем падает. Как другой человек, глубоко вовлеченный в эту тему, я говорю, что нет веских причин не делать этого.
Здесь много дезинформации. Binary имеет простой переключатель включения/выключения. Trinary/Ternary может использовать один из двух режимов: Balanced aka -1, 0, +1 или unbalanced 0, 1, 2, но не просто включен или выключен, или, точнее, имеет 2 состояния "включено".
С расширением волоконной оптики и дорогостоящего аппаратного обеспечения троичная система фактически приведет нас к гораздо более обширному и быстрому состоянию при гораздо меньших затратах. Современное кодирование все еще можно использовать (так же, как 32-битное программное обеспечение все еще можно использовать на 64-битном оборудовании) в сочетании с более новыми троичными кодами, по крайней мере, на начальном этапе. Просто нужно раннее оборудование, чтобы проверить, какая часть информации поступает, или программное обеспечение, чтобы объявить заранее, если это бит или трит. Код можно было отправлять по 3 штуки за раз вместо современных 2 при той же или меньшей мощности.
В волоконно-оптическом оборудовании вместо современного двоичного процесса включения/выключения он будет определяться 0=выключением, а остальные 2 переключателя - ортогональными поляризациями света. Что касается безопасности, на самом деле это может быть сделано значительно более безопасным для человека, поскольку каждый ПК или даже пользователь настроен на определенные «спецификации» поляризации, которые должны быть отправлены / получены только между пользователем и пунктом назначения. То же самое можно сказать и о «воротах» с другим оборудованием. Они не должны быть больше, просто есть вариант с 3 вариантами вместо 2.
Были даже некоторые теории и даже, возможно, были начаты некоторые тесты эффекта Джозефсона, которые позволили бы тройным ячейкам памяти использовать циркулирующие сверхпроводящие токи по часовой стрелке, против часовой стрелки или в выключенном состоянии.
При прямом сравнении троичная система счисления представляет собой целочисленное основание с самой высокой системой счисления, за которой следуют двоичная и четверичная системы счисления. Даже некоторые современные системы используют тип троичной логики, также известный как SQL, который реализует троичную логику как средство обработки содержимого поля NULL. SQL использует NULL для представления отсутствующих данных в базе данных. Если поле не содержит определенного значения, SQL предполагает, что это означает, что фактическое значение существует, но в настоящий момент оно не записано в базе данных. Обратите внимание, что отсутствующее значение — это не то же самое, что нулевое числовое значение или строковое значение нулевой длины. Сравнение чего-либо с NULL — даже с другим NULL — приводит к НЕИЗВЕСТНОМУ состоянию истинности. Например, выражение SQL «Город = 'Париж'» разрешается в FALSE для записи с «Чикаго» в поле «Город», но разрешается в UNKNOWN для записи с пустым полем «Город». Другими словами, для SQL неопределенное поле потенциально представляет любое возможное значение: отсутствующий город может представлять, а может и не представлять Париж. Именно здесь тройная логика используется с современными двоичными системами, хотя и грубо.
Тернарные вычисления основаны на «тритах» с тремя состояниями, а не на битах с двумя состояниями. Несмотря на преимущества этой системы, она редко используется.
Его друг Фрай: утешает его. — Это был всего лишь сон, Бендер. Двух не бывает».
Все, кто знаком с цифровыми вычислениями, знают о нулях и единицах, включая персонажей мультфильма «Футурама». Нули и единицы являются строительными блоками двоичного языка. Но не все компьютеры цифровые, и ничто не говорит, что цифровые компьютеры должны быть бинарными. Что, если бы мы использовали систему с основанием 3 вместо базы 2?Может ли компьютер представить третью цифру?
Как заметил эссеист по компьютерным наукам Брайан Хейс, "люди считают десятками, а машины - двойками". Несколько смельчаков осмелились рассмотреть троичную альтернативу. Луи Хауэлл предложил язык программирования TriINTERCAL, использующий систему счисления с основанием 3, в 1991 году. А российские новаторы построили несколько десятков машин с основанием 3 более 50 лет назад. Но система нумерации не прижилась в более широком компьютерном мире.
Тройной компьютер (также называемый тройным компьютером) – это компьютер, в вычислениях которого используется троичная логика (три возможных значения) вместо более распространенной двоичной логики (два возможных значения).
Тернарные вычисления имеют много основных преимуществ по сравнению с двоичными вычислениями. К ним относятся:
- Более высокая скорость передачи данных.
- Доступ к дополнительным инструкциям.
- Обратная совместимость с устаревшими двоичными кодами.
- Предотвращение вредоносных программ и вирусов.
Однако обычное назначение троичных компьютеров пока не было достигнуто с ошеломляющим успехом, потому что они не так эффективны, как двоичные, для вычисления двоичных кодов, что обычно предпочтительнее и кажется почти вездесущим.
Тернарная логика
Учитывая ограниченное пространство здесь, мы просто коснемся нескольких математических идей, чтобы дать нам некоторое представление. Для более глубокого понимания предмета ознакомьтесь с превосходной статьей Хейса «Третья база» в ноябрьском/декабрьском выпуске журнала American Scientist за ноябрь/декабрь 2001 г.
Слово «тройной» относится к числу три. Как правило, нечто троичное состоит из трех частей или частей. Тернарная форма в музыке — это форма песни, состоящая из трех разделов. В математике тройка означает использование трех в качестве основы. Некоторые люди предпочитают слово "тройной", возможно, потому, что оно рифмуется со словом "двоичный".
Джефф Коннелли раскрывает еще несколько терминов в своей статье 2008 года "Ternary Computing Testbed 3-Trit Computer Architecture". «Трит» — это троичный эквивалент бита. Если бит — это двоичная цифра, которая может иметь одно из двух значений, то трит — это троичная цифра, которая может иметь любое из трех значений. Трит - это одна цифра с основанием 3. «Трите» будет 6 тритов. Коннелли (и, возможно, никто другой) определяет «триббл» как половину трита (или одну цифру с основанием 27), а одну цифру с основанием 9 он называет «нит». (Подробнее об измерении данных см. в разделе «Понимание битов, байтов и их кратных».)
Все это может стать немного ошеломляющим, поэтому мы просто рассмотрим еще одну концепцию, которая поможет нам понять цифры. По словам Коннелли, троичные вычисления имеют дело с тремя дискретными состояниями, но сами троичные числа могут быть определены по-разному:
- Несбалансированный тринарный —
- Дробный несбалансированный тринар —
- Сбалансированный тринарный —
- Логика неизвестного состояния —
- Тринарный двоичный код —
Сбалансированный тройной
Тернарные вычисления очень часто применяются с точки зрения сбалансированных троичных вычислений, в которых используются три цифры −1, 0 и +1. Отрицательное значение любой сбалансированной троичной цифры можно получить, заменив каждый + на - и наоборот. Легко вычесть число, перевернув цифры + и -, а затем применив обычную функцию сложения. Сбалансированный троичный код может задавать отрицательные значения так же легко, как и положительные, без необходимости использования ведущего отрицательного знака, как в несбалансированных числах.
Несбалансированная тройка
Троичные вычисления можно применять с точки зрения несбалансированного троичного, в котором используются три цифры 0, 1, 2. Исходные 0 и 1 описываются как обычный двоичный компьютер, но вместо этого он использует 2 как ток утечки.
Тернарные компьютеры в истории
Здесь особо рассказывать не о чем, потому что, как выразился Коннелли, «тринарная технология — относительно неизведанная область в области компьютерной архитектуры». Несмотря на то, что университетские исследования по этому вопросу могут быть скрыты, не так много компьютеров с основанием 3 запущено в производство. На суперконференции Hackaday 2016 года Джессика Танк выступила с докладом о троичном компьютере, над которым она работала последние несколько лет. Еще неизвестно, выйдут ли ее усилия из безвестности.
Первым троичным компьютером была ранняя вычислительная машина, созданная Томасом Фаулером из дерева в 1840 году и работавшая в сбалансированном троичном коде. Первый современный троичный компьютер Сетунь был построен в 1958 году в Советском Союзе Николаем Брусенцовым. Работая с известным советским математиком Сергеем Львовичем Соболевым, Брусенцов создал исследовательскую группу в Московском государственном университете и разработал троичную компьютерную архитектуру, в результате которой было построено 50 машин.
Как пишет на своем веб-сайте исследователь Эрл Т. Кэмпбелл, СЭТУН «всегда был университетским проектом, не полностью одобренным советским правительством, и руководство завода относилось к нему с подозрением».
В 1970 году Брусенцов сделал усовершенствованную версию ЭВМ, которую назвал Сетунь-70.В США тенденция троичных вычислений также началась в 50-х годах, когда произошел заметный прогресс в развитии троичной арифметики и микроэлектронных компонентов для троичных компьютеров. Несмотря на значительные преимущества по сравнению с двоичными версиями, двоичные компьютеры в конечном итоге заменили эти троичные версии из-за более низкого потребления электроэнергии и производственных затрат.
Преимущества тройного компьютера
SETUN использовал сбалансированную троичную логику, как отмечалось выше. Это общепринятый подход к троичной системе, который также встречается в работах Джеффа Коннелли и Джессики Танк. «Возможно, самая красивая система счисления — это сбалансированная троичная система счисления», — пишет Дональд Кнут в отрывке из своей книги «Искусство компьютерного программирования».
Брайан Хейс также является большим поклонником троичной системы. «Здесь я хочу трижды приветствовать основание 3, троичную систему. … Это выбор Златовласки среди систем счисления: когда основание 2 слишком маленькое, а основание 10 слишком большое, основание 3 в самый раз».
Один из аргументов Хейса в пользу достоинств системы счисления с основанием 3 заключается в том, что это самая близкая система счисления к системе счисления с основанием e, «основанию натуральных логарифмов, с числовым значением около 2,718». С математическим мастерством эссеист Хейс объясняет, почему система счисления с основанием e (если бы она была практичной) была бы самой экономичной системой счисления. Он повсеместно распространен в природе. И я отчетливо помню слова мистера Робертсона, моего школьного учителя химии: «Бог считает на е».
Большую эффективность троичной системы по сравнению с двоичной можно проиллюстрировать на примере использования компьютера SETUN. Хейс пишет: «Сетун работал с числами, состоящими из 18 троичных цифр, или тритов, что дало машине числовой диапазон 387 420 489. Двоичному компьютеру потребуется 29 бит, чтобы достичь такой емкости…».
Почему компьютеры не являются троичными?
На самом деле Советский Союз много раз экспериментировал с некоторыми троичными компьютерами, но они так и не были коммерциализированы. Троичный бит известен как трит. Причина, по которой мы не можем использовать троичную логику, сводится к тому, как транзисторы уложены друг на друга в компьютере — что-то, что называется «затворами», — и как они используются для выполнения математических операций. Шлюзы принимают два входа, выполняют на них задачу, а затем возвращают один выход.
Теперь мы возвращаемся к исходному вопросу статьи. Если троичные вычисления намного эффективнее, почему мы все их не используем? Один из ответов заключается в том, что все произошло не так. Мы зашли так далеко в бинарных цифровых вычислениях, что было бы довольно трудно повернуть назад. Точно так же, как робот Бендер понятия не имеет, как считать дальше нуля и единицы, современные компьютеры работают на логической системе, отличной от той, которую мог бы использовать любой потенциальный троичный компьютер. Конечно, Бендера можно каким-то образом заставить понять троичную систему, но, вероятно, это будет больше похоже на симуляцию, чем на редизайн.
По словам Хейса, сама SETUN не осознавала большей эффективности троичной системы. Он говорит, что, поскольку каждый трит хранился в паре магнитных сердечников, «тройное преимущество было упущено». Кажется, что реализация так же важна, как и теория.
Почему база 3 не прижилась? Легко предположить, что надежных устройств с тремя состояниями просто не существовало или их было слишком сложно разработать. И как только бинарная технология утвердилась, огромные инвестиции в методы изготовления бинарных чипов перевесили бы любое небольшое теоретическое преимущество других основ."
Кроме того, мы должны учитывать периферийное оборудование и законы физики, когда речь идет об использовании двоичных файлов. Каждое число в вашем компьютере представляет собой электрический сигнал. В предыдущие дни вычислений электрические сигналы было намного сложнее измерять и контролировать должным образом. Разумнее проводить различие между состоянием «включено», определяемым отрицательным зарядом, и состоянием «выключено», определяемым положительным зарядом. Здесь «выкл» определяется положительным зарядом, поскольку электроны имеют отрицательный заряд, поэтому большее количество электронов означает больший ток с отрицательным зарядом.
Важно отметить, что это позволяет току течь от источника к месту назначения только тогда, когда в затворе есть ток. Это формирует двоичный переключатель. Производители могут делать эти транзисторы очень маленькими — даже около 5 нанометров. Так работают современные процессоры.
Четверичные компьютеры: система нумерации будущего
Мы говорили о битах и тритах, но слышали ли вы о кубитах? Это предлагаемая единица измерения для квантовых вычислений. Математика здесь становится немного нечеткой. Квантовый бит, или кубит, — это наименьшая единица квантовой информации. Кубит может находиться в нескольких состояниях одновременно. Таким образом, хотя он может представлять больше, чем просто два состояния двоичного кода, он не совсем совпадает с троичным. (Чтобы узнать больше о квантовых вычислениях, см. раздел Почему квантовые вычисления могут стать следующим поворотом на пути больших данных.)
А вы думали, что бинарный и троичный код — это сложно! Квантовая физика не является интуитивно очевидной.Австрийский физик Эрвин Шредингер предложил мысленный эксперимент, известный как кот Шредингера. Вас просят представить на минуту сценарий, в котором кот одновременно жив и мертв.
Здесь некоторые люди выходят из автобуса. Смешно предполагать, что кошка может быть одновременно и живой, и мертвой, но в этом суть квантовой суперпозиции. Суть квантовой механики в том, что объекты обладают характеристиками как волн, так и частиц. Ученые-компьютерщики работают над тем, чтобы воспользоваться этими свойствами.
Суперпозиция кубитов открывает новый мир возможностей. Ожидается, что квантовые компьютеры будут экспоненциально быстрее, чем бинарные или троичные компьютеры. Параллелизм состояний нескольких кубитов может сделать квантовый компьютер в миллионы раз быстрее, чем современный ПК.
Заключение
Пока революция квантовых вычислений не изменит все, статус-кво двоичных вычислений сохранится. Когда Джессику Танк спросили, какие варианты использования могут возникнуть для троичных вычислений, аудитория застонала, услышав упоминание об «интернете вещей». И в этом может быть суть дела. Если вычислительное сообщество не согласится с очень веской причиной, чтобы опрокинуть тележку с яблоками и не попросить свои компьютеры считать тройками, а не двойками, роботы, такие как Бендер, будут продолжать думать и мечтать в двоичном формате. Между тем эпоха квантовых вычислений уже не за горами.
Поскольку в современных компьютерах для представления данных используются единицы и нули, более 60 лет назад произошел технологический прорыв.
Это создание троичных компьютеров.
Тройной компьютер, также известный как тройной компьютер, — это компьютер, использующий в своих вычислениях троичную логику (три возможных значения) вместо давно используемой двоичной системы ("База 2").
Идея создания этого компьютера давно существовала в 1840 году с изобретением первой вычислительной машины, сделанной полностью из дерева, построенной Томасом Фаулером, и в 1958 году с первым в истории современным электронным троичным компьютером Сетунь в Советском Союзе. Московский государственный университет имени Николая Брусенцова. К сожалению, троичные компьютеры не прижились в более широком компьютерном мире.
Тл; доктор;
Троичные компьютеры посредством троичных вычислений («База 3») обычно реализуются с точки зрения сбалансированного троичного кода с использованием трех цифр −1, 0 и +1.
Сбалансированный троичный код может ясно выражать отрицательные значения так же легко, как и положительные, без использования ведущего отрицательного знака, как с десятичными числами.
Упомянутые преимущества делают некоторые вычисления в троичном коде более эффективными, чем в более популярном сегодня двоичном коде.
Прямо со слов Томаса Фаулера:
«Я часто размышляю о том, что если бы в период младенчества общества была принята троичная система вместо десятичной, машины, подобные нынешним, были бы задолго до того, как это стало бы обычным явлением, поскольку переход от мысленного к механическому исчислению был бы было так очевидно и просто».
Тернарный компьютер через троичные вычисления
В музыке тройная форма – это форма песни, состоящая из трех частей. В математике тройка означает использование трех в качестве основы. Люди иногда предпочитали троицу троице, потому что она просто рифмуется с двоичностью.
Согласно опубликованной в 2008 году статье Джеффа Коннелли под названием "Ternary Computing Testbed 3-Trit Computer Architecture". «Трит» — это троичный эквивалент бита. Если бит — это двоичная цифра, которая может иметь одно из двух значений, то трит — это троичная цифра, которая может иметь любое из трех значений. Трит - это одна цифра с основанием 3. «Трите» будет 6 тритов. Коннелли (и, возможно, никто другой) определяет «триббл» как половину трита (или одну цифру с основанием 27), а одну цифру с основанием 9 называет «нит».
По словам Коннелли, троичные вычисления имеют дело с тремя дискретными состояниями, но сами троичные числа могут быть определены по-разному:
- Несбалансированный тринарный –
- Дробный несбалансированный тринар –
- Сбалансированный тринарный –
- Логика неизвестного состояния —
- Тринарный двоичный код —
Более высокую эффективность, которую может обеспечить троичная система по сравнению с двоичной, можно проиллюстрировать на примере использования компьютера SETUN.
Брайан Хейс, большой поклонник троичных чисел, пишет: «Сетунь работал с числами, состоящими из 18 троичных цифр, или тритов, что дало машине числовой диапазон 387 420 489. Двоичному компьютеру потребуется 29 бит, чтобы достичь такой емкости…».
Тернарный компьютер в историческом контексте
С безвременной кончиной троичных вычислений несколько десятилетий назад довольно многие высказали свое мнение о недолговечной вычислительной технологии.
Как сказал бы Коннелли, «тройная технология — это относительно неизведанная область в области компьютерной архитектуры». Несмотря на то, что университетские исследования по этому вопросу могут быть скрытыми сокровищами, не так много компьютеров с основанием 3 запущено в производство.
Хотя исследователь Эрл Т. Кэмпбелл заявляет на своем веб-сайте, SETUN «всегда был университетским проектом, не полностью одобренным советским правительством, и руководство завода относилось к нему с подозрением».
Почему не троичный, а двоичный?
Спрашивая себя, если троичные вычисления намного эффективнее, то почему мы не все их используем?
Ответ будет таков: просто так получилось.
Мы уже зашли так далеко с бинарными цифровыми вычислениями, и было бы трудно повернуть назад.
Тернарный компьютер останется в истории для всех нас.
Как сказал бы Хейс, сама SETUN не осознала большей эффективности троичной системы. Добавим, что поскольку каждый трит хранился в паре магнитных сердечников, «тройное преимущество было упущено». Кажется, что реализация так же важна, как и теория.
Его расширенная цитата выглядит так:
«Почему основание 3 не прижилось? Легко предположить, что надежных устройств с тремя состояниями просто не существовало или их было слишком сложно разработать. И как только бинарная технология утвердилась, огромные инвестиции в методы изготовления бинарных чипов перевесили бы любое небольшое теоретическое преимущество других основ».
Тернарные компьютеры в БУДУЩЕМ
Хотя мы никогда не сможем вернуться назад с троичными компьютерами, их технология (троичные вычисления) по-прежнему имеет потенциал для использования в качестве дополнения к некоторым современным появляющимся технологиям.
Дональд Кнут утверждает, что в будущем их вернут в разработку, чтобы воспользоваться преимуществами элегантности и эффективности троичной логики.
Одним из возможных способов этого может быть объединение оптического компьютера с троичной логической системой.
Еще одним является переход Джозефсона , предложенный как сбалансированная тройная ячейка памяти, использующая циркулирующие сверхпроводящие токи по часовой стрелке, против часовой стрелки или в выключенном состоянии.
В 2009 году был предложен квантовый компьютер, в котором используется квантовое тройное состояние, кутрит, а не обычный кубит.
Обзор
Тернарные компьютеры — это компьютеры, использующие в своих вычислениях троичную логику (три возможных значения) вместо более популярной двоичной логики (два возможных значения). Но, как показывает история, двоичный код продолжал существовать, а троичный остался в пыли, хотя у него больше преимуществ по сравнению с двоичным. Может быть, потому что это довольно сложно и дорого.
Хотя таких компьютеров может и не быть, их вычислительная технология (тройная) может быть использована с новейшими технологическими изобретениями.
Многие знают, что компьютеры хранят данные и работают с ними в двоичной системе счисления. Одно из основных объяснений этому можно найти в схемах современных компьютеров, которые состоят из миллиардов простых и серийно выпускаемых транзисторов и конденсаторов, которые вместе могут представлять два состояния: высокое напряжение (1) и низкое напряжение (0).
Эта конструкция сегодня настолько распространена, что трудно представить, как компьютеры могут работать по-другому. Но, в Советской России 50-х они работали иначе. Если вы не слышали об этом, погуглите «Сетунь» — сбалансированный трехкомпонентный компьютер, разработанный в 1958 году небольшой группой под руководством Брусенцова в МГУ.
Прежде чем говорить о Брусенцове и Сетуни, позвольте мне немного объяснить троичную сбалансированную систему счисления.
Тернарная или тройная система счисления, в которой есть три возможных значения: 0 , 1 и 2 . В его сбалансированной версии есть три вероятности -1 , 0 и +1, которые часто упрощаются до - , 0 и + соответственно.
В этой форме троичные значения подразумеваются как "централизованные" вокруг средней точки 0 . Применяются те же правила, что и для любой другой системы счисления: крайний правый символ R имеет свое значение, а каждый последующий символ имеет значение, умноженное на основание B, возведенное в степень, равную расстоянию D от R. р>
Мм, позвольте мне привести пример. Напишем 114 :
И в двоичном (бинарном):
И, для уверенности, те же правила применяются к десятичной системе счисления:
Что если мы захотим ввести -114 ? В двоичной и десятичной системах нам нужно будет использовать новый символ: знак. В основной памяти двоичного компьютера это делается либо за счет сохранения ведущего бита, указывающего на знак, либо значительного уменьшения количества чисел, которые мы можем представить 1 .Именно по этой причине мы говорим о подписанных и неподписанных языках программирования.
Но в симметричной троичной системе, как мы узнаем позже, для представления обратной величины числа (перевернутого числа) нам просто нужно заменить все «+» на «-» и наоборот. Нам не нужна никакая дополнительная информация для обозначения знака!
Позже мы увидим, что это и несколько других свойств сбалансированной тройной системы дают нам очень интересные вычислительные преимущества. А теперь вернемся к компьютеру «Сетунь».
В конце 1950-х годов в мире компьютеров был захватывающий период: Натаниэль Рочестер и его команда в IBM недавно разработали первый массовый компьютер с программой, хранящейся в памяти, так называемый «современный» компьютер IBM 701. . Джон Бэкус и его команда изобрели FORTRAN, первый широко используемый язык программирования высокого уровня. И, пожалуй, самое главное, начали разрабатываться первые полностью транзисторные компьютеры, такие как TX-0 и Philco Transac S-2000. Было задано направление развития бинарных компьютеров, которое впоследствии стало доминировать.
Но это было в Северной Америке.
В то же время в России группа математиков и инженеров под руководством Брусенцова и его коллеги Сергея Соболева занимается разработкой других компьютерных систем 2 . Брусенцов и его коллеги изучают многие западные компьютеры и технологические достижения, а также понимают, как использовать транзисторы для представления двоичных данных. Но давайте помнить, что это СССР - транзисторы не так легко доступны за железным занавесом. А ламповые электронные лампы одинаково отстой и в России, и на Западе!
Поэтому Брусенцов разрабатывает базовый элемент из миниатюрных ферритовых сердечников и полупроводниковых диодов, способный работать как регулируемый трансформатор тока. Это оказывается эффективной базой для реализации троичной логики 3 . Выяснилось, что эти элементы, по сравнению с их бинарными аналогами, обеспечивают более высокое быстродействие и надежность и требуют меньше энергии для работы.
Команда из десяти человек построила «Сетунь» буквально из ничего, работая в небольшой комнате, заполненной лабораторными столами (которые они сами построили!). Каждое утро члены команды собирали пять простых элементов машины. Взяли ферритовые сердечники и с помощью обычной швейной иглы намотали по 52 витка проволоки. Затем ядра были переданы техническим специалистам, которые завершили процесс сборки и смонтировали их в блоки.
Логика троицы была реализована путем объединения двух таких ферритовых элементов и соединения их таким образом, чтобы они имитировали три устойчивых состояния. Такой подход оказался удачным, но количество необходимых элементов не уменьшилось, так как в реальности два ферритовых сердечника потенциально могут быть двумя двоичными битами, что в итоге дает больше информации (2^2), чем один триплет (3^1). по крайней мере энергопотребление было снижено!
Setun работает с числами до 18 тритов, то есть один трит может имитировать любое число от -387 420 489 до 387 420 489 . Для достижения этой мощности двоичному компьютеру требуется не менее 29 бит.
Разработка «Сетуни» длилась два года, несмотря на то, что система смогла провести операции в течение десяти дней с начала испытаний, а на тот момент это было беспрецедентно. Всего было выпущено около 50 автомобилей. И хотя компьютеры «Сетунь» долгие годы безотказно работали в экстремальных российских климатических условиях, проект раздирали противоречия.
В большей степени из-за неспособности производителя обосновать массовое производство того, что они считали дешевой областью науки и «плодом университетской фантазии». Думаю, можно с уверенностью предположить, что Россия в то время просто не была готова понять потенциальную важность компьютеров. В итоге машины «Сетунь» были заменены бинарными аналогами, которые могли выполнять вычисления с той же эффективностью, но стоимость эксплуатации была более чем в два раза!
Как я уже говорил, нет необходимости хранить в нем начальный бит, а точнее триты, для обозначения знака. Итак, нет понятия целых чисел со знаком или без — все это просто целое число. Таким образом, вычитание достигается простым инвертированием операнда и применением сложения (что реализовано аналогично компьютерам с двоичной системой). Эта положительная или отрицательная согласованность также может уменьшить количество передач, необходимых для операций умножения.
Еще одна полезная функция сбалансированной троичной системы счисления (или любой симметричной системы счисления, если на то пошло) — вероятность реализации округления чисел с плавающей запятой с явным выделением целой части числа, что позволяет упростить вычисление осуществление деления. Это связано с тем, как троичная система отображает дробную часть действительных чисел.
Приведу простой пример. Перевод в коде номера 0.2 выглядит следующим образом:
А для записи 0,8 нужно начинать с + в старшем разряде, а потом просто инвертировать дробную часть (например, 1+-0,2):
Выше видно, что выделение целой части тритов справа от побитовой точки эквивалентно округлению: 0,2 становится нулем, а 0,8 становится единицей. Круто!
Хорошо, вернемся к Сетуню в последний раз. В конце 60-х годов Брусенцов разработал более современную машину «Сетунь-70», в которой ярче воплотилась тройственность. Было введено понятие «признак», которое состояло из 6 тритов (примерно 9,5 бит). Сетунь-70 была стековой ЭВМ, и поэтому вместо машинных инструкций, которые намеренно назывались регистрами для ввода и вывода, все операции выполнялись в двух стеках — один для операндов (вход) и один для возвращаемых значений (выход). . Чтобы адаптировать этот дизайн, машинные инструкции были написаны в обратной неблокирующей записи (обратная польская запись или постфиксная запись).
В конце 70-х годов Брусенцов и несколько его учеников разработали язык программирования для Сетунь-70, названный Диалоговой системой структурированного программирования (ДСПП). В своем исследовании 4 я заметил, что это стек-ориентированный язык (что, впрочем, совсем не удивительно), похожий на Форт и использующий обратную польскую нотацию. Это позволяет вам писать программы на языке относительно высокого уровня, но при этом оставаться «низкоуровневым». Настолько, что у его авторов было следующее сообщение:
Рассмотрите программу на PRSP, которая суммирует группу чисел:
Попробуем разложить его. В первом столбце у нас команда, во втором - состояние компьютера после выполнения (стек операндов), а в третьем даю пояснение:
В конце выполнения стек операндов будет пуст и окажется в стеке возврата [10].
Подробнее о ДСПП написано на сайте Ивана Тихонова (авторы Сидоров С.А. и Шумаков М.Н.).
Разработка сбалансированных троичных компьютеров почти превратилась в небольшую сноску в анналах компьютерной истории. И хотя исследование ячеек памяти, способных эффективно отображать три разных состояния, было незначительным, некоторые достижения в этой области были.
А именно японские исследователи в конце 90-х описали возможность использования перехода Джозефсона для реализации троичной логики. Этого можно было добиться за счет циркуляции сверхпроводящих токов — положительного (по часовой стрелке), отрицательного (против часовой стрелки) или нулевого. Они обнаружили, что это дает ячейкам памяти «возможность высокоскоростных вычислений, низкое энергопотребление и очень простую конструкцию с меньшим количеством элементов благодаря троичной операции».
Но я не думаю, что в ближайшем будущем вы будете часто сталкиваться с концепцией сбалансированного троичного компьютера. И что DSPP станет прорывом среди агрессивных любителей языков программирования — тоже. Но я считаю, что из прошлого можно извлечь много мудрых решений 5 .
- Это зависит от того, как конкретная машина представляет числа. Дополнительный код — это представление чисел в десятичном виде, что позволяет представить от -((2^n)/2) до ((2^n)/2)-1 в n битах.
2) Хотя компьютер «Сетунь» был первым электронным устройством, в котором использовалась троичная система, стоит отметить, что идея использования такой системы в вычислительных устройствах была впервые популяризирована более 100 лет назад. В 1840 году Томас Фаулер построил компьютер полностью из дерева, и она работала с данными, используя троичную систему.
Более точное описание можно найти на сайте Русского музея вычислительной техники.
Справочные материалы для ДССБ на английском языке не очень доступны, поэтому я предупреждаю вас, что мои знания ограничены и могут содержать предположения.
Читайте также: