Блог
Экономичность основания — теорема, а не измерение: 5,66 процента в ламповой модели 1950 года, победа на проводе в USB4 v2 и GDDR7 и проигрыш на вентиле по запасу помехоустойчивости.
[Источники — ни одного нашего замера] За троичность приводят одно число: основание 3 экономичнее основания 2. Число верно точно, но про железо не говорит ничего, потому что это теорема, а не результат. Замер, который стоит поставить, назван в конце.
Стоимость представления числа N в основании b в классической метрике — это число разрядов, умноженное на основание: E(b, N) = b · ⌊log_b(N) + 1⌋, а E/ln(N) стремится к b/ln(b). Минимум по вещественному b — это e; задачу поставил и решил Якоб Штайнер в 1850 году (Journal für die reine und angewandte Mathematik, том 40, с. 208). Сравнение двойки с тройкой — уже не его: это одно деление.
| основание b | b/ln b |
|---|---|
| 2 | 2.88539 |
| e | 2.71828 |
| 3 | 2.73072 |
| 4 | 2.88539 |
| 10 | 4.34294 |
2.88539 / 2.73072 = 1.0566: троичная асимптотически экономичнее двоичной на 5,66 процента — не в разы. Двойка и четвёрка совпадают точно, потому что 4 = 2². Проверяется одной строкой:
python3 -c "import math; print([(b, round(b/math.log(b), 5)) for b in (2, math.e, 3, 4, 10)])"
Модель за E(b, N) сформулирована явно: разряд с b состояниями стоит ровно b единиц оборудования. Это Engineering Research Associates, High-Speed Computing Devices (McGraw-Hill, 1950): кольцевой счётчик на триодах, где основанию R нужно R триодов на разряд. Их подсчёт ламп до 10⁶ — 39,20 у основания 2 против 38,24 у основания 3, то есть 2,5 процента, а не 5,66. И там же стоит оговорка, которую цитирующие опускают:
«the choice of 2 as a radix is frequently justified on more complete analysis» — «выбор двойки как основания часто оправдан при более полном анализе». ERA, High-Speed Computing Devices, 1950, с. 84–87.
У КМОП-транзистора нет «b состояний по цене b». Стив Вайс напоминает, что модель не работала уже в ламповую эпоху: IBM 650 использовала bi-quinary, семь триодов на десятичный разряд. Смените функцию стоимости — сместится и оптимум: у Георгиу (arXiv:1611.03715) он принимает значения от 1,42 до 3,83 при разных параметрах.
| диапазон N | b = 2 | b = 3 | b = e |
|---|---|---|---|
| 1..6 | 4.7 | 5.0 | 4.5 |
| 1..43 | 9.3 | 9.5 | 9.0 |
| 1..182 | 13.3 | 13.1 | 12.9 |
| 1..5329 | 23.0 | 22.2 | 22.1 |
Это усреднённые, а не асимптотические значения (Wikipedia, Optimal radix choice): первые две строки двоичная выигрывает прямо, а троичная обгоняет только на диапазонах порядка сотен.
ВЦ МГУ, лаборатория Брусенцова, по инициативе академика Соболева; первый образец 1958–1959. 200 кГц, около 4500 операций в секунду, слово 9 или 18 тритов, серия 1961–1965 в Казани. Сколько выпущено — не решено: 50 у английской Wikipedia, computer-museum.ru и Хейза, 46 у русской. Почему остановили — тоже: невыгодная заводу цена, административное решение или молчание источника.
Хейз фиксирует главное: каждый трит был парой ферритовых сердечников, а два сердечника вмещают больше одного трита. На бумаге 18 тритов покрывают 3¹⁸ = 387 420 489 при r·w = 54 против 58 у двоичного эквивалента — в железе этот запас ушёл на реализацию. Сетунь-70 (апрель 1970) осталась единственным экземпляром, а её система команд позже стала ДССП — на двоичных машинах.
Кнут называет эту запись едва ли не самой красивой системой счисления. Но это свойства записи, а не приборов.
USB4 версии 2.0 (USB-IF, октябрь 2022), Gen4: три уровня, 25,6 ГБод на линию, 11 бит в 7 тритов, потому что 2¹¹ = 2048 ≤ 3⁷ = 2187 — это 99,1 процента троичного предела, а метрика ошибок названа TER. Следом GDDR7: JESD239 от 5 марта 2024 года, первый стандарт DRAM с PAM — 3 бита за 2 такта против 2 у NRZ.
| стандарт | линейный код | уровней |
|---|---|---|
| 100BASE-TX | MLT-3 | 3 |
| 100BASE-T4 | 8B6T | 3 |
| 1000BASE-T | 4D-PAM5 + trellis | 5 |
| 2.5G/5GBASE-T (802.3bz) | PAM-16 / 128-DSQ + LDPC | 16 |
| 100BASE-T1 (802.3bw) | PAM-3 | 3 |
| 1000BASE-T1 (802.3bp) | PAM-3, 750 МБод | 3 |
| 2.5/5/10GBASE-T1 (802.3ch) | PAM-4 | 4 |
| USB4 v2 Gen4 | PAM-3, 11b/7t | 3 |
| GDDR7 (JESD239) | PAM-3 | 3 |
Две строки закрывают распространённое утверждение: 2.5GBASE-T и 5GBASE-T — не PAM-3, а «даунклок» 10GBASE-T с PAM-16 и 128-DSQ, который путают с соседним 2.5GBASE-T1 (802.3ch, PAM-4). И сам PAM-3 — сигнализация на проводе, а не вычисления: на обоих концах линии данные двоичные.
При размахе Vpp и m равноотстоящих уровнях расстояние равно Vpp/(m−1): переход от двух уровней к трём делит запас помехоустойчивости пополам, 6,02 дБ, за прирост плотности log₂3 = 1,58 раза. Таблица USB-IF: относительный запас 1 у PAM-2, 0,5 у PAM-3, 0,33 у PAM-4. В Ethernet тот же коэффициент — пятиуровневому 1000BASE-T нужно примерно на 6 дБ больше SNR, чем трёхуровневому 100BASE-T.
Второе препятствие — прибор. КМОП-вентиль это выключатель с двумя рельсами и без статического тока; средний уровень приходится изготавливать — делителем со сквозным током, как в троичном CNTFET-инверторе 2005 года, который существует в HSPICE, а не в кремнии, — или приборами с несколькими порогами вне mainstream-КМОП. Дальше область раскритиковала себя сама: Этьембль (arXiv:2207.04839) выносит вывод в заголовок — троичные и четверичные CNTFET-сумматоры менее эффективны, чем двоичные, на сумматорах со сквозным переносом; Такбири с соавторами (CSSP, 2019) показывают, что запасы помехоустойчивости в многозначной логике публиковались завышенными.
Третье препятствие — размер приза: 5,66 процента асимптотически против индустрии, которая забирала столько же каждые несколько месяцев по закону Мура, не перестраивая булеву алгебру, EDA, компиляторы и IEEE 754.
Единственный работающий троичный результат в машинном обучении — BitNet b1.58 (arXiv:2402.17764, февраль 2024, Microsoft Research и UCAS): веса из {−1, 0, +1}, активации 8 бит, а «1,58» — это log₂3, энтропия трита. Работает именно ноль: он даёт явную фильтрацию признаков. У модели 2B4T (arXiv:2504.12285) 2 миллиарда параметров.
| модель | память без эмбеддингов, ГБ | latency, мс (декод на CPU) | энергия, Дж (оценка отчёта) |
|---|---|---|---|
| BitNet b1.58 2B4T | 0.4 | 29 | 0.028 |
| Gemma-3 1B | 1.4 | 41 | 0.186 |
| LLaMA 3.2 1B | 2.0 | 48 | 0.258 |
| Qwen2.5 1.5B | 2.6 | 65 | 0.347 |
Честная позиция узкая. Экономичность основания — это математика: верна точно, равна 5,66 процента и номинирована в триодах кольцевого счётчика 1950 года. Результатом была бы функция стоимости, измеренная на существующих компонентах, — ровно то, чего, по словам Вайса, никто не опубликовал. Эксперимент невелик: сбалансированно-троичный сумматор на N тритов по два бита на трит против двоичного на ⌈N·log₂3⌉ бит того же динамического диапазона, LUT, FF и Fmax после place-and-route, N = 9, 18, 24. Это другая валюта, чем у ERA, и сказать это вслух — половина работы. Гипотеза — троичная сторона проиграет, потеряв аппаратную цепь переноса. Отрицательный результат ценнее: он превращает 76-летний спор из философского в измеренный.
Такие замеры и ставит клуб «Золотая Литейная» на t27.ai/#/foundry — со знаменателем, условиями и отрицательными результатами тем же кеглем, что и положительные. Если троичный сумматор проиграет, число всё равно будет опубликовано.
Каждая цифра выше измерена, и рядом с ней названы её пределы.