Троичный процессор: утопия или технология будущего?
Почему компьютерам перестало хватать единиц и нулей и каким будет российский троичный процессор «Тайфун».
Иллюстрация: Оля Ежак для Skillbox Media
О компьютерах, работающих на троичной логике, и их возможностях говорят давно. Да и не только говорят: в СССР, например, такая машина на протяжении 15 лет обслуживала вычислительный центр МГУ и вдохновила американских инженеров на аналогичные эксперименты. Правда, в итоге технология не стала массовой ни в СССР, ни в США.
В теории троичные процессоры по многим параметрам превосходят двоичные, они менее энергозатратны и более надёжны. Тогда почему сегодня мы не найдём в промышленности ни одного рабочего компьютера на троичной системе? Разобраться нам помог Александр Тимошенко, руководитель компании «Тайфун», которая разрабатывает троичный процессор с собственной архитектурой и язык программирования для него.
Александр Тимошенко
Руководитель «Тайфуна», инженер-разработчик. Занимается разработкой троичного процессора и языка программирования «Тритон».
Содержание
Немного истории
Первый в мире троичный компьютер серийного производства под названием «Сетунь» выпустили в СССР в 1959 году. Над проектом работали исследователи МГУ имени М. В. Ломоносова под руководством Н. П. Брусенцова.
В основе памяти «Сетуни» лежали ферритовые кольца. Машина оперировала двухбитными двоично кодированными троичными числами, то есть один трит записывался двумя двоичными числами:
- (0, 0) — 0
- (1, 1) — 0
- (0, 1) — −1
- (1, 0) — +1
С 1960 по 1965 год в Казани выпустили 49 ЭВМ «Сетунь». Они были дешевле, надёжнее и компактнее тогдашних двоичных аналогов и неплохо справлялись с научно-техническими задачами средней сложности. Также «Сетунь» использовали в вузах, конструкторских бюро, научно-исследовательских институтах и на заводах. Это была не самая мощная машина, но зато в её основе лежала троичная логика, что само по себе было в новинку и открывало путь к дальнейшим экспериментам.
В 1970 году в единственном экземпляре была выпущена «Сетунь-70», после чего разработка троичных компьютеров прекратилась и перешла в разряд технической философии. Почему так произошло, мы вкратце рассказывали в одной из наших статей.
Одной из заметных попыток американских учёных сделать эмулятор троичной арифметики на двоичном компьютере был проект Ternac. Эксперимент показал, что на двоичном компьютере можно реализовать недвоичную систему, сохранив при этом такой же расход памяти и скорость вычислений. Но аппаратно реализовать эти идеи не удалось.
Технические особенности троичных процессоров
Исследователи давно говорят о том, что двоичная система подходит к своему пределу. Ещё в 1965 году инженер Intel Гордон Мур сформулировал закон, согласно которому количество транзисторов, размещаемых на кристалле интегральной схемы, вырастает в два раза каждые 24 месяца.
Очевидно, что бесконечно повышать производительность компьютеров, увеличивая количество транзисторов, не получится. Поэтому инженеры стали уменьшать транзисторы. Но и здесь вскоре упёрлись в потолок: на нанометровых масштабах влияние токов утечки становится сильнее, процессоры быстрее нагреваются и выходят из строя.
Сегодня перед исследователями стоит выбор: использовать троичную логику или отказаться от кремния и перейти на квантовые компьютеры. Мейнстримным стал квантовый путь — многие учёные и инженеры сходятся во мнении, что будущее за кубитами (квантовыми аналогами битов). Но есть и те, кто видит потенциал в троичной системе.
Уже в 2010-е годы лаборатория МГУ (та же, в чьих стенах создавалась «Сетунь») разработала троичную виртуальную машину. Воссоздать «Сетунь» так и не вышло, зато учёные подробно описали архитектуру следующего поколения чипов.
Сегодня над троичным процессором работают инженеры компании «Тайфун». Мы поговорили с её руководителем и попытались выяснить, почему он и его команда верят в будущее этой экзотической технологии.
Для чего нужен троичный процессор
— Зачем нужна троичная система, чем не устраивает двоичная?
— Двоичные вычисления подошли к своему пределу. Мы в компании выбрали троичную симметричную систему счисления, так как у неё есть ряд преимуществ как в структуре, так и в возможностях вычисления.
Троичная система позволяет оперировать отрицательными и положительными числами, не применяя старшие разряды. Также у неё неоспоримое преимущество в округлении чисел с плавающей точкой простым отбрасыванием. В некоторых математических приёмах вычисления происходят в несколько раз быстрее. Всё это даёт прирост производительности порядка 20–25% по сравнению с двоичной системой.
Троичная система счисления считается самой сбалансированной и ёмкой по объёму чисел. Поэтому она может при той же разрядности двоичной системы держать в себе в два раза больше чисел. Если 32-битные машины могут держать максимум 4 ГБ памяти, то у троичной системы показатель будет минимум 8 ГБ. Разница ощутимая.
— В истории уже была ЭВМ «Сетунь» — пример серийного троичного компьютера. Ваша разработка — процессор «Тайфун» — наследник этой машины?
— Да, создателем первых машин был Николай Петрович Брусенцов. К сожалению, он уже не с нами, но с нами Хосе Альварес — программист «Сетуни». Кроме того, мы активно сотрудничаем с МГУ, где разрабатывалась «Сетунь». «Тайфун» отчасти можно считать наследником этих машин, но мы идём своим путём и используем в архитектуре собственные решения.
— Есть ли примеры серийных троичных процессоров, кроме ЭВМ «Сетунь»? У компании Intel были планы выпуска троичных процессоров. Известно ли, как далеко они продвинулись?
— До сегодняшнего дня в мире не было и нет серийных образцов, но есть исследования Samsung и Intel. Также Китай активно интересуется данной темой. Насколько нам известно, только Samsung остался в этой теме и продолжает разработки. Intel сейчас переживает не лучшее время, и, по нашим данным, компания остановила разработки.
Особенности процессора и языка программирования для него
— Для процессора на троичной системе наверняка понадобится собственный язык программирования. На вашем сайте есть информация про Тритон. Можете рассказать о нём подробнее? Как на нём писать код и чем он отличается от других языков?
— Это, пожалуй, самый сложный вопрос. В России давно никто не делает свои языки программирования, хотя у нас в Новосибирске есть хороший институт имени А. П. Ершова.
Мы проектируем свою систему команд процессора, поэтому решили сразу разработать и свой язык программирования — Тритон. Это системный язык, по сути — автокод, из которого будет выходить сразу троичный код. Кроме того, мы адаптируем Тритон для архитектур x86-64 и MIPS.
Работу языка можно представить следующей схемой:
слог → слово → список → поток
Любая команда в Тритоне — слог. Из слогов мы формируем слова, из слов делаем списки и, наконец, ищем возможность эти списки исполнить поточно.
Одна из особенностей нашего языка программирования в том, что код на нём пишется на русском языке. Благодаря этому даже далёкий от привычного программирования человек сможет легко его освоить. Другой важный плюс — мы ввели единый знак сравнения (©), вместо распространённых символов: >, <, = и ! =.
Например, синтаксис условного перехода выглядит так:
Смысл необычного знака сравнения заключается в том, что в троичной системе мы можем получить любое из вышеприведённых состояний: число меньше, больше, равно или не равно. Также введённый знак позволяет нам оперировать отрезками в стиле 1 © а © 1000.
Ещё в Тритоне не надо работать с регистрами, как, например, в стандартном FASM. В целом у языка более понятный подход к написанию кода. Для него мы разрабатываем специальную IDE — «Тритон». Она будет сама решать, откуда взять данные, куда их поместить, и анализировать возможность поточного выполнения.
Более подробно о Тритоне мы рассказывали на XIII Международной научно-практической конференции имени А. И. Китова в Российском экономическом университете имени Г. В. Плеханова.
— На конференцию может попасть любой желающий?
— Насколько мне известно, выступления транслировались по Zoom. Касательно личного присутствия не могу сказать. Официальная информация о конференции доступна на сайте.
— Есть ли принципиальные различия в физическом устройстве процессоров на двоичной и на троичной системе? Какие используются ядра, топология и архитектура?
— Да, безусловно, различия во внутреннем физическом устройстве кардинальны. Если для двоичной системы в процессоре заложены принципы классических транзисторов, то для троичной логики мы используем другие схемы. Исторически сложилось мнение, что для реализации троичной системы надо использовать положительное и отрицательное напряжение. Этот принцип использовался в «Сетуни», но можно применить и другой подход.
Мы разрабатываем две архитектуры — «Трит-2» и «Трит-6» по аналогии с «Сетунью-58» и «Сетунью-70»:
- Физическая архитектура «Трит-2». Её проектируют по принципу «троичная логика на двоичных физических элементах». Система похожа на «Сетунь-58». Цель архитектуры — отработать на железе основные методы построения ядер и других компонентов.
- Физическая архитектура «Трит-6». В ней используется принцип «троичная логика на троичных элементах». Это аналог «Сетуни-70».
Касательно топологии и ядер — идёт собственная разработка. Могу лишь сказать, что основной принцип работы архитектуры будет кардинально отличаться от существующих.
— Можно ли выпускать троичные процессоры на тех же заводах, на которых производят двоичные процессоры? Для «Тайфуна» понадобится специальная материнская плата с отдельным сокетом?
— Отвечая на предыдущий вопрос, я сказал, что сейчас разрабатываются две архитектуры. На первом этапе мы хотим закончить с архитектурой «Трит-2» и выпустить её на основе базовых матричных кристаллов (БМК). Сейчас мы активно обсуждаем производство инженерных образцов с заводом «Ангстрем». После этого в планах выпустить пару десятков отладочных плат, в первую очередь для своих нужд. Несколько плат отправим для тестов единомышленникам по троичной теме.
Касательно архитектуры «Трит-6» могу сказать, что мы ведём разработку собственного лабораторного литографа, чтобы попробовать воплотить наши идеи в жизнь. Основание литографа уже пошло в производство первого образца.
Если говорить про принцип модульности, то мы планируем отдельный сокет для обеих архитектур.
— Каковы технические характеристики процессора «Тайфун»: техпроцесс, частота и производительность?
— Сейчас мы говорим только о тестовых образцах, поэтому всё весьма скромно. В первую очередь необходимо подтвердить полную работоспособность архитектуры. Наша целевая производительность — от 100 гигафлопс.
— Можно ли будет совмещать в одном системном блоке процессор «Тайфун» и, например, видеокарту от NVIDIA или придётся адаптировать комплектующие?
— Это самый больной вопрос. Архитектура «Трит-2» позволяет использовать для работы существующее железо. «Трит-6» будет полностью работать на троичных компонентах, поэтому совмещать разное оборудование не выйдет. Придётся проектировать устройства на новой архитектуре за счёт своих же разработок.
— У процессоров «Эльбрус» собственная архитектура Е2К, которая требует довольно массивной компиляторной обвязки, чтобы процессоры работали быстро с разными программами и железом. Для «Тайфуна» будут нужны такие же компиляторы?
— У архитектуры Е2К был прекрасный, на мой взгляд, автокод Эль-76, который при должном развитии мог стать базовым языком.
Тритон идёт аналогичным путём. Оба этих языка — автокоды, но их синтаксис полностью соответствует языкам высокого уровня. Благодаря этому можно импортировать код с любого похожего языка программирования, например с Си. При этом можно будет сразу генерировать машинный код.
Цели эмулировать режимы работы существующего закрытого ПО у нас нет.
— ПО на троичном коде совместимо с двоичным? Нужен ли там отдельный компилятор или эмулятор, как Lintel у «Эльбруса»?
— Lintel — транслятор кода, мы также продумываем несколько будущих примерно похожих вариантов для реализации. Пока остановились на варианте гипервизора, который будет эмулировать работу разных архитектур и переводить её в троичный режим. Из-за этого пострадает скорость, так как нужно время для перевода данных из одной архитектуры в другую.
Трудности и перспективы
— МЦСТ создаёт собственную архитектуру, но у этой компании долгая история и большой опыт. «Байкал Электроникс», ЭЛВИС и «Модуль» пошли по самому быстрому пути — взяли уже разработанные архитектуры. И все эти компании работают с двоичной системой. А «Тайфун» идёт совершенно новым путём, ещё и на основе малоизвестной системы. Не страшно?
— На этот вопрос можно ответить: «Зрим в корень проблемы». В СССР были три уникальные архитектуры, достойные жить и в наше время. Это «Эльбрус», БЭСМ-6 и «Сетунь». Руководству МЦСТ нужно отдать должное: в сложное время перестройки они сумели не только сохранить архитектуру «Эльбрусов», но и перенести её в современные чипы. БЭСМ-6 и «Сетунь», к сожалению, не смогли пережить этот этап. Мы сейчас пытаемся возродить архитектуру «Сетуни». Также я знаю, что энтузиасты пробуют работать с БЭСМ-6.
Мы хорошо общаемся и дружим с другими участниками отрасли, например с «Байкал Электроникс».
— А на каком этапе находится разработка «Тайфуна»? Как скоро появятся готовые процессоры, пусть и в инженерных образцах?
— Я надеюсь, что архитектура «Трит-2» у нас появится до 7 февраля 2025 года. Почему именно такая дата? Это 100-летие со дня рождения создателя «Сетуни» Н. П. Брусенцова. И очень бы хотелось успеть сделать тестовые образцы именно к этому времени.
Если говорить про «Трит-6», то работы предстоит много, так как мы планируем создать образец полностью своими силами. Сразу оговорюсь и приоткрою завесу: поскольку у нас тестовый образец, его можно сделать не только в кремнии, использовать упрощённые технологии.
— Для каких устройств разрабатывается «Тайфун»? Это ПК, мобильные устройства, серверы?
— Этот вопрос напрямую пересекается и с исторической, и рыночной стороной. Наша главная цель — воссоздать саму троичную архитектуру и показать на нашем примере, что отечественные разработки времён СССР достойны жить и развиваться дальше. Цели заработать в моменте и «хайпануть» на этой теме у нас нет.
Наше видение на сегодня таково: «Тайфун» — это экспериментальный микропроцессор на собственной отладочной плате с минимальными рабочими характеристиками. Некий аналог Intel 286. Почему такое сравнение? Нельзя пробежать путь до современных процессоров, не пройдя все этапы развития.
К вопросу об используемых устройствах. Это небольшие решения:
- для различных производств (в этой области используются разные микроконтроллеры, возможно, IoT-устройства);
- образования и задач общего плана (об этом мы тоже думаем — нужно развивать интерес к отечественным решениям);
- задач Минобороны.
— Кто финансирует проект и сколько будут стоить процессоры «Тайфун»?
— Финансирование разработок идёт за счёт собственных средств. У меня есть компания, которая работает уже более десяти лет. Прибыль от её деятельности я инвестирую в «Тайфун». Нам так и не удалось получить финансирование. Например, государственный Фонд перспективных исследований не заинтересовался проектом. Другим фондам важна модель продаж. Все хотят быстрых денег, поэтому нам не по пути.
Цены на конечные устройства будут зависеть от технологии. Для архитектуры «Трит-2» мы пока планируем только выпуск БМК. С ценами тут всё более или менее понятно. При этом ещё предстоят переговоры с производителями, так как нам не нужна радиационная стойкость и металлокерамические корпусы. Такие параметры пока готова обсуждать только компания «Ангстрем».
С архитектурой «Трит-6» всё обстоит сложнее. Если мы сможем запустить свой лабораторный литограф, то цены будут адекватными. Всё благодаря тому, что мы планируем использовать 76-миллиметровые пластины кремния и изготавливать небольшие партии процессоров.
— После запуска производства много ПО придётся оптимизировать и переписывать с нуля. Как планируете разрабатывать софт для «Тайфуна»? Есть ли сообщество программистов?
— Семантика «Тритона» по большей части повторяет языки высокого уровня. Это позволяет нам со временем написать конвертер с других языков программирования, в первую очередь с Си. После этого дело пойдёт быстрее. Но пока мы не знаем, есть ли смысл портировать всё подряд.
— С какими ОС будет работать «Тайфун»? Будут ли ограничения на ПО? Например, будет ли использоваться только open source?
— Исторически в СССР и РФ практически не было своих операционных систем. Я считаю это огромным упущением. Инженеры либо переписывали Unix, либо клонировали CP/M. Мы всегда занимали роль догоняющих.
Поэтому у нас нет планов портировать существующие операционные системы. Мы будем разрабатывать свою ОС или воспользуемся разработками сообщества, а именно — БМПОС и «Синапс ОС».
— Какие насущные задачи и проблемы есть в вашей компании?
— Основная проблема — это недостаток персонала. У нас ограниченное финансирование, поэтому я сделал упор на Verilog-разработчиков и научных сотрудников по языкам программирования. Ещё в компании три направления развития, что мешает уделять время всем задачам.
Чтобы укреплять компетентность сотрудников и энтузиастов, мы решили открыть бесплатный портал о фотолитографии. Сейчас он работает в тестовом режиме, а мы продолжаем искать редкие отечественные книги и работы для оцифровки. Позже мы опубликуем их в виде удобных курсов. Планируем, что первые материалы станут доступны в апреле-мае 2024 года.
Ещё хотелось бы добавить, что в нашей истории был момент, когда нас всех целенаправленно поставили в роль догоняющих — мы должны были угнаться за западными технологиями. Считаю, что необходимо рубить этот узел и идти своим путём, развивая собственные технологии и архитектуры. Да, это долго и больно, но нам необходимо пройти этот путь. Буду также очень рад, если кто-то решит полноценно заняться БЭСМ-6 и возродить её.