Коллектив Авторов - Цифровой журнал «Компьютерра» № 101
Автор приключений Алисы Льюис Кэрролл разработал трёхзначную алгебру, применив третью характеристику объекта — «несущественность» наряду с «существованием» и «несуществованием».
В вычислительной технике безупречность булевой алгебры начинает давать сбои при работе с отрицательными значениями. Ведь для представления отрицательного числа в бинарном виде нужно ввести дополнительный бит. То самое «третье», с помощью которого можно определить знак числа в двоичном коде. О том, что такое кодирование является нетрадиционным, говорит его даже название — дополнительный код. Получается, что для простоты реализации в ЭВМ операций для положительных и отрицательных чисел их разработчики сознательно отошли от двоичной логики в пользу того самого «исключенного третьего».
Двоичный алгоритм проверки знака переменной Х не оптимален, в то время как в троичном алгоритме проверка выполняется с помощью всего одной операции.
Ещё один недостаток двоичной логики — тот факт, что без дополнительных «костылей» в ней не реализовать основное логическое выражение — следование.
Попытка реализовать трёхзначность следования силами двузначной логики привела к тому, что это логическое выражение фактически подменили материальной импликацией. В вычислительных алгоритмах этот фокус сработал, а вот попытка реализации на компьютере вывода умозаключений провалилась. Подмена следования двузначной материальной импликацией ограничивает «интеллектуальность» ЭВМ. Человек с его способностью быстро перейти от двоичной логики к троичной, соглашаясь в нужный момент на «ничью», оказался намного гибче компьютера.
А что если логику компьютера изначально сделать троичной? Так рассуждал Николай Петрович Брусенцов, представляя осенью 1956 года на семинаре, посвящённом разработке МГУшной ЭВМ, магнитный усилитель с питанием импульсами тока — тот самый, модифицированный им феррит-диодный регистр. Его ключевой особенностью было формирование тройки значений: 1, 0 и -1 — идеальный вариант цифрового элемента, работающего с троичной логикой.
Николай Петрович Брусенцов рассказал в интервью «Компьютерре» о преимуществах троичной логики: "Люди настолько «околпачены» законом исключённого третьего, что не в состоянии понять, как всё обстоит на самом деле. На самом же деле двоичная логика совершенно не подходит даже для описания основного логического выражения — следования. При попытке описания в двоичной логике нормальной дизъюнктивной формы следования оно превращается либо в тождество, либо в пресловутую материальную импликацию.
Математик С.К. Клини и его книга «Математическая логика» в своё время оказали такое влияние на этот раздел математики, что сегодня практически ни в одном учебнике математической логики не найти отношения следования. Ссылаясь на Аристотеля, Клини заменил следование на материальную импликацию («Два проще, а потому и полезней»). Логики, конечно, признают, что материальная импликация в постановке Клини — отношение, не имеющее смысла.
Дело в том, что все логики пытаются выразить отношение следования, используя закон исключённого третьего, а такого закона в природе нет, потому что отношение следования трёхзначное..."
"...Недостаток двоичной логики мы обнаружили, когда попытались научить компьютер делать умозаключения. Оказалось, что с использованием двузначной логики это невозможно. Люди, делая умозаключения, выходят из положения, убирая в нужный момент двоичную логику и используя отношение следования, а значит — трёхзначную логику".
Триты и трайтыТри вида сигналов, формируемые базовым элементом будущего троичного компьютера, его создатели назвали тритом. Если принять бит за меру количества информации, то информационная ёмкость трита будет равна примерно 1,5. А это значит, что при прочих равных условиях троичный компьютер обрабатывает в единицу времени больше информации, чем двоичный.
Минимальной адресуемой единицей памяти проектируемого троичного компьютера стал трайт, равный шести тритам и принимающий значения от -364 до 364. Работа с диапазоном отрицательных значений — особенность, отличающая трайт от двоичного байта, значения которого распространяются от 0 до 255.
Информационная ёмкость трайта такова, что с его помощью легко можно закодировать все заглавные и строчные символы русского и латинского алфавитов, математические и служебные символы.
Уникальная особенность троичного кода, применяемого в «Сетуни», связана с его симметричностью — распространением значений как в положительную, так и в отрицательную область. Благодаря симметричности в троичном компьютере отрицательные числа представлялись естественным путём — без хитроумных манипуляций с дополнительным кодом.
Уже одна эта особенность существенно упростила как систему команд «Сетуни», так и её архитектуру.
Блок-схема компьютера «Сетунь»
Набор команд «Сетуни» состоял всего из двадцати четырёх операций, три из которых были зарезервированы и никогда не использовались. Под код операции отводилось три трита. Шеститритовая адресная часть операции содержала: адрес, указание длины операнда и трит индексации (сложить, вычесть или не индексировать). Шесть тритов адреса позволяли адресовать сто шестьдесят два девятитритных слова, разбитых на три страницы памяти.
Реализация «Сетуни» в «железе» была весьма простой. Структурной единицей компьютера стала ячейка, представляющая собой феррит-диодный магнитный усилитель, собранный на гетинаксовой основе. Генератор тактовой частоты задавал такт работы ячеек в двести герц.
Сумматор
Ячейки компоновались в функциональные блоки: сумматоры, дешифраторы троичного кода, регистры сдвига. С помощью тридцатиконтактного разъёма каждый блок стыковался с другими блоками «Сетуни», формируя базовые компоненты ЭВМ: арифметическое устройство и устройство управления.
Память в «Сетуни», подобно современным гибридным системам хранения данных, была двухступенчатой: ферритовый куб ёмкостью в одну страницу постранично обменивался с традиционным для того времени запоминающим устройством — магнитным барабаном.
Программист и пользователь первого варианта «Сетуни» общался с ней с помощью рулонного телетайпа. Позднее для ввода данных стали применять фотоэлектрические перфоратор и считыватель с перфоленты, а для вывода — электроуправляемую печатную машинку.
"Нам видеть её и знать не надо"По своим возможностям «Сетунь» относилась к малым ЭВМ. Иначе быть и не могло: троичный компьютер задумывался как университетская ЭВМ, обеспечивающая поддержку учебного процесса и научных изысканий вуза.
Однако простота и естественность работы с «Сетунью», обусловленная применением в ней троичной логики, снискала добрую славу. На варианте компьютера, установленном в вычислительном центре МГУ, решались экономические задачи, велись метеорологические расчёты, обрабатывались самые разнообразные статистические данные.
Попытка запустить массовое производство «Сетуни» не просто не увенчалась успехом, а чуть было не закончилась закрытием проекта. На тщательно сделанный и оттестированный образец «Сетуни», установленный на выставке научно-технических достижений вузов, высокое руководство не обратило никакого внимания.
Реализации первого варианта «Сетуни» (1958 год) и экземпляр, демонстрировавшийся на ВДНХ в 1961 году
Более того, проект «Сетунь» попал под закрытие в рамках наведения порядка в разнообразном парке советских ЭВМ того времени. Один из членов государственного радиотехнического комитета (ГКРЭ), всеми уважаемый директор конструкторского бюро, отмахнулся от «Сетуни» фразой: «Нам видеть её и знать не надо. Покажите бумагу с с авторитетными подписями и печатями». Только благодаря вмешательству академика Соболева межведомственная комиссия ГКРЭ летом 1960 года провела тщательные недельные испытания троичного компьютера, в результате которых признала «Сетунь» «первым действующим образцом универсальной вычислительной машины на безламповых элементах, создание которой является определённым достижением в вычислительной технике». Ни больше ни меньше.
Серийное производство троичного компьютера навязали Казанскому заводу математических машин, хотя Брусенцов с командой разработчиков получал предложения от других производителей, в том числе и из-за рубежа.