Выбор не бинарный: независимый энтузиаст создал тернарный CPU на базе FPGA

троичный процессор плис трит недвоичные вычисления Setun theregister.com

Троичный процессор 5500FP на ПЛИС демонстрирует практичность недвоичных вычислений. Это первое общедоступное троичное оборудование со времен 1965 года. — theregister.com

5500FP — это троичный центральный процессор, реализованный на ПЛИС. Он не очень быстрый, но упрощает эксперименты с компьютерами, не использующими двоичную систему.

Независимый исследователь Клаудио Лоренцо Ла Роса недавно опубликовал статью 5500FP: 24-тритный сбалансированный троичный RISC-процессор. Статья довольно техническая, но занимает всего семь страниц. В ней описывается, как реализовать троичный процессор на стандартной ПЛИС, основанной на двоичной системе:

Мы представляем 5500FP — 24-тритный сбалансированный троичный RISC-процессор, реализованный на ПЛИС, с набором инструкций (ISA) из 120 команд, нативными примитивами атомарной синхронизации и открытой платой для разработки оборудования. Эта разработка демонстрирует практическую осуществимость сбалансированных троичных вычислений на современном реконфигурируемом оборудовании, предоставляя конкретную платформу для исследований недвоичных архитектур без барьера разработки специализированных микросхем.

Нет никакой внутренней причины, по которой компьютеры должны кодировать всё в двоичном виде. Естественный мир более тонок, чем просто «включено» или «выключено». Другой способ кодирования логики, который хорошо подходит для цифровой электроники, — это троичная логика. Она кодирует числа в тритах вместо битов. Трит может принимать одно из трёх значений, а не два, представляемых «включено» или «выключено». Распространённый вариант — сбалансированная троичная система, в которой один трит может принимать значения один, ноль или минус 1.

Слово «бит» (bit) — это сокращение от binary digit (двоичная цифра) и было придумано покойным американским математиком Джоном У. Тьюки, который также придумал слово «программное обеспечение» (software) и в качестве бонуса разработал алгоритм Быстрого преобразования Фурье. По аналогии, если двоичная цифра — это бит, то троичная цифра — это «трит». Троичный (ternary) означает, что имеется три дискретных состояния, а не версия BOFH.

Существует долгая историческая преемственность для троичной компьютерной логики. Великий Дональд Кнут является её поклонником; во втором томе «Искусства программирования» он назвал её «пожалуй, самой изящной системой счисления». Дуглас Джонс из Университета Айовы предлагает Троичный манифест, который объясняет, как работает кодирование чисел, и многое другое. Ещё в 2017 году команда разработала более специализированный троичный чип на ПЛИС, а пару лет спустя южнокорейская команда исследовала изготовление троичных компонентов в масштабе пластины.

Троичные компьютеры строились и ранее. В Московском государственном университете в конце 1950-х годов — примерно в то время, когда там учился покойный сэр Тони Хоар — команда под руководством Сергея Соболева и Николая Брусенцова создала троичную машину, ЭВМ «Сетунь». О «Сетуни» написано много, большая часть на русском языке, но статья «Неизбранный путь — „Сетунь“, Холодная война и утерянное будущее недвоичных вычислений» интересна. Брусенцов был соавтором технического описания «Троичные ЭВМ: „Сетунь“ и „Сетунь-70“» [PDF], которое доступно на английском языке.

«Сетунь» вдохновила более позднюю американскую машину TERNAC, которая также была троичной, — но она существовала только в виде симуляции на Fortran поверх двоичной машины Burroughs. Разработчик TERNAC, Гидеон Фридер, опубликовал две часто цитируемые статьи 1972 года по этому проекту: «Троичные компьютеры, часть I: мотивация для троичных компьютеров» и «Троичные компьютеры, часть 2: эмуляция троичного компьютера».

Одна из причин, по которой «Сетунь» не привела к созданию большего количества троичного оборудования, заключается в том, что базовая реализация использовала двоичную логику, при этом двое ворот обслуживали каждый трит. Это проще реализовать, но это по сути расточительно: один трит может хранить примернов 1,58 раза больше данных, чем один бит, но использование двух битов сводит это преимущество на нет — можно было бы хранить на треть больше данных в двоичном виде (два бита могут представлять четыре состояния, в то время как один трит представляет только три состояния). Однако именно так работает процессор 5500FP, как по уважительной причине использования готовых логических элементов, так и для упрощения взаимодействия практически с любым существующим компьютерным оборудованием, которое полностью основано на двоичной системе.

Ла Роса видит большой потенциал в этой идее и посвятил ей целый веб-сайт: Троичные логические ЦП — Производительность и эффективность в третьем тысячелетии. ®

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

Похожие новости: