Не бит, а трит
1958 год. Весь мир строит двоичные компьютеры. Фон Нейман, IBM, мейнфреймы — всё на битах: 0 и 1. В Московском государственном университете молодой инженер Николай Петрович Брусенцов берёт и делает троичную ЭВМ. Сетунь. Логика: −1, 0, +1. Не бит, а трит. Она работала — 50 машин, 15 лет эксплуатации, без сбоев.
Это не была «альтернативная архитектура» в академическом смысле. Это был чистый хак — на уровне физики, математики и софта.
Хак на уровне физики: феррит-диодные ячейки
Брусенцов не располагал интегральными схемами. Он использовал то, что было: ферритовые сердечники и диоды. Два сердечника, работающих как единый тактируемый контур, дают три устойчивых состояния.
Феррит-диодная ячейка Сетуни (3 состояния из 2 сердечников, работающих как единый контур) ╔════════════════════════════════════════════╗ ║ ТАКТ СЧИТЫВАНИЯ ║ ║ ↓ ║ ║ ╔═══════╩═══════╗ ║ ║ ║ Сердечник 1 ║ ← Рабочий. Направление ║ ║ ║ (феррит) ║ намагниченности ║ ║ ╚═══════╦═══════╝ определяет: +1,0,-1 ║ ║ ↓ ║ ║ ╔═══╩═══╗ ║ ║ ║ Диод ║ ← Выпрямляет сигнал ║ ║ ╚═══╦═══╝ ║ ║ ↓ ║ ║ ╔═════╩═════╗ ║ ║ ║ Выход: ║ ║ ║ ║ +1, 0, -1 ║ ║ ║ ╚═══════════╝ ║ ╚════════════════════════════════════════════╝ ╔════════════════════════════════════════════╗ ║ ТАКТ ПОДГОТОВКИ (сразу после считывания) ║ ║ ↓ ║ ║ ╔═══════╩═══════╗ ║ ║ ║ Сердечник 2 ║ ← Компенсационный. ║ ║ ║ (феррит) ║ Гасит гистерезис ║ ║ ╚═══════╦═══════╝ Сердечника 1, ║ ║ ↓ готовит к след. такту║ ║ (обратная связь ║ ║ к Сердечнику 1) ║ ╚════════════════════════════════════════════╝ Сердечник 2 НЕ кодирует данные. Информацию хранит только отклик Сердечника 1.
Почему три состояния, а не четыре? Два сердечника — это не два независимых бита. Они работают в паре. Второй сердечник не кодирует информацию — он подготавливает первый к следующему такту, компенсируя гистерезис. Информацию несёт только отклик первого сердечника на тактовый импульс: импульс не прошёл (0), прошёл в одном направлении (+1), прошёл в противоположном (−1). Три физически различных состояния. Четырёх не бывает.
Никаких транзисторов. Чистая электромагнитная логика, выжатая из доступных материалов.
Хак на уровне математики: уравновешенная троичная система
Двоичные компьютеры мучаются с отрицательными числами. Прямой код, обратный код, дополнительный код — три разных представления для одного и того же. Знаковый бит, переносы, путаница.
Брусенцов выбрал уравновешенную троичную систему. Цифры: −1, 0, +1 (обычно записываются как T, 0, 1). Отрицательные числа представляются так же, как положительные — просто с отрицательными цифрами. Никакого знакового бита. Никакого дополнительного кода.
Алгоритм перевода из двоичной/десятичной системы в троичную элегантен до предела:
Делим число на 3 с остатком.
Если остаток 0 или 1 — записываем соответствующую цифру.
Если остаток 2 — записываем T (−1), а к частному прибавляем 1.
Этот третий шаг — и есть математический хак Брусенцова. Вместо того чтобы вводить искусственный знаковый бит, он превращает неудобный остаток в удобный ценой одного переноса.
Пример: число 42₁₀ в троичной системе:
42 ÷ 3 = 14, остаток 0 → 0 14 ÷ 3 = 4, остаток 2 → T, частное +1 = 5 5 ÷ 3 = 1, остаток 2 → T, частное +1 = 2 2 ÷ 3 = 0, остаток 2 → T, частное +1 = 1 1 ÷ 3 = 0, остаток 1 → 1
Читаем снизу вверх: 1 T T T 0. Проверка: 1×3⁴ + (−1)×3³ + (−1)×3² + (−1)×3¹ + 0×3⁰ = 81 − 27 − 9 − 3 + 0 = 42. ✓
Та же идея, что в дополнительном двоичном коде, но встроенная в саму систему счисления. Никаких костылей.
Хак на уровне софта: 24 операции — и всё
Сетунь имела одноадресную систему команд из 24 операций. Для сравнения: современный x86-64 имеет около 1000 инструкций. Брусенцов выбрал минимальный набор, заточенный под реальные задачи физфака МГУ: кристаллография, дифференциальные уравнения, расчёты. Никакой избыточности. Только то, что нужно.
Хак на уровне системы: троичный триггер и защита от помех
Брусенцов не остановился на логических элементах. Он разработал троичный триггер — устройство, способное хранить одно из трёх состояний. Это был ключевой элемент для построения регистров и памяти Сетуни. Позднее он запатентовал усовершенствованный троичный триггер, который был более устойчив к бета-частицам и импульсным наводкам — критическое свойство для вычислительной техники того времени.
Логический троичный элемент, лежащий в основе этих разработок, был создан ещё раньше. Это показывает, что Брусенцов не был «изобретателем-одиночкой» — он систематически, шаг за шагом, выстраивал элементную базу для троичных вычислений, от простейшего логического элемента до помехоустойчивого триггера.
Почему Сетунь — это хак
Потому что Брусенцов не вписался в двоичную ортодоксию. Он не стал делать «ещё один двоичный компьютер». Он построил альтернативу. И она работала — 15 лет, 50 машин, без сбоев.
Определение хакера: сделать то, что «невозможно», из того, что есть, и оно работает. Брусенцов сделал именно это. Не теоретическую модель. Не прототип в лаборатории. А серийную машину, которая решала реальные задачи.
Сегодня, когда мы обсуждаем квантовые вычисления, троичную логику и не-фон-неймановские архитектуры, стоит помнить: всё это уже было. В 1958 году. В МГУ. Сделано инженером, который взял то, что было под рукой, и построил то, что считалось невозможным.
Подписвайтесь на мой ТГ-канал, если хотите видеть больше нетривиальное в тревиальном.