Брусенцов: создатель троичного компьютера

Три вместо двух: архитектурный прорыв

1958 год. Пока весь мир увлеченно переходил на двоичные рельсы, делая ставку на биты (0 и 1), в стенах МГУ молодой инженер Николай Петрович Брусенцов пошел иным путем. Он спроектировал «Сетунь» — уникальную троичную ЭВМ, оперирующую логикой −1, 0, +1. Здесь правили бал не биты, а триты. Результат говорит сам за себя: полсотни произведенных машин успешно трудились 15 лет без единого серьезного сбоя.

Это не была попытка создать чисто теоретическую «альтернативную архитектуру». Скорее, это был виртуозный инженерный хак, объединивший физику, математику и программную логику в единую работоспособную систему.

Инженерное изящество: феррит-диодная логика

Не имея доступа к интегральным схемам, Брусенцов работал с тем, что было: ферритовыми сердечниками и диодами. Связка из двух сердечников, объединенных в синхронизированный контур, позволяла фиксировать три устойчивых состояния.

   Феррит-диодная ячейка «Сетуни»
   (3 состояния на базе 2 сердечников,
    образующих единый контур)

   ╔════════════════════════════════════════════╗
   ║  ТАКТ СЧИТЫВАНИЯ                           ║
   ║          ↓                                 ║
   ║  ╔═══════╩═══════╗                         ║
   ║  ║ Сердечник 1   ║ ← Рабочий элемент.      ║
   ║  ║  (феррит)     ║    Намагниченность      ║
   ║  ╚═══════╦═══════╝    определяет: +1,0,-1  ║
   ║          ↓                                 ║
   ║      ╔═══╩═══╗                             ║
   ║      ║ Диод  ║ ← Сигнал выпрямляется       ║
   ║      ╚═══╦═══╝                             ║
   ║          ↓                                 ║
   ║    ╔═════╩═════╗                           ║
   ║    ║ Выход:    ║                           ║
   ║    ║ +1, 0, -1 ║                           ║
   ║    ╚═══════════╝                           ║
   ╚════════════════════════════════════════════╝

   ╔════════════════════════════════════════════╗
   ║  ТАКТ ПОДГОТОВКИ (сразу после считывания)  ║
   ║          ↓                                 ║
   ║  ╔═══════╩═══════╗                         ║
   ║  ║ Сердечник 2   ║ ← Компенсатор.          ║
   ║  ║  (феррит)     ║    Убирает гистерезис   ║
   ║  ╚═══════╦═══════╝    Сердечника 1,        ║
   ║          ↓            готовит к следующему ║
   ║     (обратная связь    циклу работы)       ║
   ║      к Сердечнику 1)                       ║
   ╚════════════════════════════════════════════╝

   Данные кодируются исключительно состоянием
   Сердечника 1 при тактовом импульсе.

Почему именно три состояния, а не четыре? Эти два сердечника не являются независимыми битами; они работают в связке. Второй элемент не несет полезной нагрузки — его задача заключается в компенсации гистерезиса, подготавливая систему к новому циклу. Вся информация сосредоточена в реакции первого сердечника на тактовый импульс: отсутствие сигнала (0), или прохождение тока в одном из двух направлений (+1 или −1). Итого — три физически различимых состояния.

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

Математическая элегантность: уравновешенная троичная система

Двоичная логика вечно сталкивается с проблемой отрицательных чисел, порождая сложности с дополнительными кодами и знаковыми разрядами. Брусенцов же выбрал уравновешенную троичную систему с цифрами −1, 0, +1 (часто обозначаемыми как T, 0, 1).

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

Алгоритм конвертации чисел в эту систему поражает своей простотой:

  1. Делим число на 3 с поиском остатка.

  2. Если остаток 0 или 1 — оставляем как есть.

  3. Если остаток 2 — записываем T (−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 насчитывают около тысячи. Брусенцов сфокусировался на узком, но важном спектре задач: прикладная физика, решение уравнений, сложные расчеты. Минимум избыточности — только функциональность.

Надежность как часть архитектуры

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

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

Почему «Сетунь» — эталонный хак

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

Настоящий хакер — это тот, кто решает невозможную задачу при ограниченных ресурсах. Брусенцов именно это и сделал: он превратил теоретическую концепцию в надежную серийную машину.

Сегодня, когда мы вновь возвращаемся к обсуждению не-фон-неймановских архитектур и троичной логики, стоит помнить: всё это уже было реализовано в МГУ в 1958 году человеком, который просто взял имеющиеся инструменты и сделал шаг в будущее.

Подписывайтесь на мой ТГ-канал, чтобы находить нестандартное в привычных вещах.

 

Источник

Читайте также