Научная статья на тему 'Троичные ЭВМ: исторический и образовательный аспекты изучения компьютерной архитектуры'

Троичные ЭВМ: исторический и образовательный аспекты изучения компьютерной архитектуры Текст научной статьи по специальности «Математика»

CC BY
1371
219
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ЭВМ "СЕТУНЬ" / ТРОИЧНЫЕ ЭВМ / ТРОИЧНАЯ ЛОГИКА / ТРОИЧНАЯ СИСТЕМА СЧИСЛЕНИЯ / СИММЕТРИЧНАЯ ТРОИЧНАЯ СИСТЕМА СЧИСЛЕНИЯ / ТРОИЧНЫЙ ТРИГГЕР / ПЛОТНОСТЬ ИНФОРМАЦИИ / ИЗУЧЕНИЕ АРХИТЕКТУРЫ / SETUN COMPUTER / COMPUTER TERNARY / TERNARY LOGIC / TERNARY / SYMMETRIC TERNARY / TERNARY TRIGGER / INFORMATION DENSITY / COMPUTER ARCHITECTURE STUDY

Аннотация научной статьи по математике, автор научной работы — Иванько Михаил Александрович, Гасович Анна Андреевна

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Ternary computer : historical and educational aspects of computer architecture studing

The article deals with the basic principles of operation of ternary computers, ternary logic and arithmetic, compares ternary and binary systems, ternary technical implementation of the structural elements; It outlines the historical context of a single series with the ternary computers Setun.

Текст научной работы на тему «Троичные ЭВМ: исторический и образовательный аспекты изучения компьютерной архитектуры»

УДК 004.023

ТРОИЧНЫЕ ЭВМ: ИСТОРИЧЕСКИЙ И ОБРАЗОВАТЕЛЬНЫЙ АСПЕКТЫ ИЗУЧЕНИЯ КОМПЬЮТЕРНОЙ АРХИТЕКТУРЫ

Иванько Михаил Александрович

доцент кафедры информатики и информационных технологий, кандидат технических наук Московский государственный университет печати имени Ивана Федорова 127550 Россия, г. Москва, ул. Прянишникова, д. 2А т1ка1еЬ'@таИ- ги

Гасович Анна Андреевна

студентка кафедры информатики и информационных технологий Московский государственный университет печати имени Ивана Федорова 127550 Россия, г. Москва, ул. Прянишникова, д. 2А gasovich. ann@mail.ru

Аннотация. В работе рассматриваются основные принципы функционирования троичных ЭВМ, троичная логика и арифметика, сравниваются троичная и двоичная системы, техническая реализация троичных структурных элементов; излагается исторический контекст появления единственной серийной троичной советской ЭВМ «Сетунь».

Ключевые слова: ЭВМ «Сетунь», троичные ЭВМ, троичная логика, троичная система счисления, симметричная троичная система счисления, троичный триггер, плотность информации, изучение архитектуры.

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

Вопрос, использовать ли именно двоичную систему, сейчас не стоит: слишком много ресурсов вложено в разработку устройств, на ее базе работающих. Чем же интересна троичная система счисления и реализация вычислительных процессов на ней?

Интерес может быть исторический и образовательный. С исторической точки зрения, можно рассмотреть серию советских суперкомпьютеров «Сетунь» и «Сетунь-70», поскольку проблемы, с которыми столкнулись их разработчики, актуальны и сегодня. В образовательном плане изучение троичных компьютеров может помочь систематизировать и обобщить знания о двоичных: сравнение принципов работы основных структурных элементов сподвигает более глубоко разбираться как с техническими особенностями (расширение знаний по физике), так и с сопутствующим математическим аппаратом.

Троичная логика и троичная арифметика

Как и гласит название, в троичной логике переменная может пребывать в одном из трех разных состояний, на естественном языке описываемых как «Истина» («True»), «Ложь» («False») и «Неизвестно» («Null»). Рассматриваемая логика не является нечеткой, т.е. значение «Неизвестно» нельзя трактовать как в какой-то мере принадлежащее к «Истине» или ко

«Лжи». Таким образом, не может быть промежуточных состояний «Возможно Истина», «Вероятно Ложь» и т.д.

Для машины состояние «Неизвестно» может трактоваться как состояние, когда данные, принимающие два других значения, еще не получены устройством.

Если в двоичной логике довольно быстро пришли к традиционным нулю и единице, то в троичной численные обозначения варьируются, и единого стандарта не предусмотрено. В представлении логики Клини, также известной как «Сильная логика неопределенности», значения записываются первыми буквами английских слов True, False и Unknown («Неизвестно»). В «Парадоксальной логике» Приста используются числа 1, -1 и 0. Доктор философии Ян Лукаcевич, собственно разработавший троичную логику, использовал для обозначений 1, 0 и 'А. В обоих случаях минимальное число соответствовало лжи, максимальное — истине, а промежуточное — неизвестности, или, по Лукаcевичу, «нейтральному состоянию» [1].

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

Чтобы определить другие бинарные операции, можно использовать правило:

если

OPER(F,F) = OPER(F,T), то

OPER(F,U) = OPER(F,F) = OPER(F,T) и, аналогично, если

OPER(T,F) = OPER(T,T), то OPER(T,U) = OPER(T,F) = OPER(T,T).

MIN (A,B)

A Л B B

-1 0 +1

-1 -1 -1 -1

A 0 -1 0 0

+1 -1 0 +1

MAX (A,B)

A V B B

-1 0 +1

-1 -1 0 +1

A 0 0 0 +1

+1 +1 +1 +1

Своеобразие приобретают унарные операции. Кроме привычного логического НЕ, не затрагивающего «нейтральное состояние», но меняющего знак двум другим, вводятся операции инкремента и декремента (INK и DEC).

A -A

-1 +1

0 0

+1 -1

A INC(A)

-1 0

0 1

+1 -1

A DEC(A)

-1 +1

0 -1

+1 0

Некоторые законы двоичной логики переформулированы для троичной. В частности, закон противоречия («Невозможно, чтобы противоречащие высказывания были одновременно истинными») заменяется на закон несовместности состояний (о нем было сказано выше, при объяснении отличий от нечеткой троичной логики). Также становится неверным закон исключенного третьего — ему на смену приходит закон полноты состояний (также известный как закон исключенного четвертого).

К представлению чисел в троичной системе счисления можно подойти по-разному. Наибольшее распространение получила симметричная система счисления (+, 0, -). В числе ее преимуществ — наглядность при определении знака числа (в старшем разряде отрицательных обязательно будет «-», для смены знака достаточно инвертировать цифру в каждом разряде), легкое определение делимости на 2 (сумма разрядов кратна 2) и на 3 (в младшем разряде 0) [2].

Менее известна несимметричная система счисления (0, 1, 2), ввиду ее неудобства для представления отрицательных чисел. В двоичной системе счисления эту проблему решает дополнительный код, и хотя сейчас машины справляются с ним без проблем, для старых компьютеров и человеческого мозга это была весьма сложная задача.

Имеющийся логико-математический аппарат позволяет производить ряд операций, необходимых вычислительному устройству для работы. По определению, цифровой автомат — это устройство, которое должно уметь принимать, хранить и преобразовывать информацию (представленную, в нашем случае, в троичной симметричной системе счисления). Цифровой автомат может находиться в нескольких устойчивых состояниях. Это означает, что никаких серьезных противоречий, мешающих создать троичный компьютер, нет.

Основным элементом как двоичной, так и троичной ЭВМ является триггер. В конкретный момент времени он (как цифровой автомат) будет пребывать ровно в одном состоянии (это учитывает закон несовместности состояний). Троичный триггер должен

иметь три таких устойчивых состояния и кодировать один трит информации.

Троичность может быть реализована на трехуровневых логических элементах. При альтернативном подходе, может использоваться двухуровневый 2- или 3-битный триггер (хотя и оперирует 2- или 3-битными кодами на входе и на выходе, при этом имеет 3 устойчивых состояния).

Примеры троичных триггеров: И-НЕ [3], триггер Бакстера 3х2 И-НЕ [4].

Троичные триггеры со счетным входом (Т-триггеры) и с временной задержкой (Э-триггеры) приводятся в виде прототипов, либо в виде итогов работы логического симулятора А1апиа [5].

Регистр кодирует машинное слово и состоит из последовательности синхронизируемых триггеров, каждый из которых приводится в необходимое состояние сигналом синхронизации. Если в современных ЭВМ длина машинного слова составляет 32 или 64 бита, то в троичной ЭВМ длина машинного слова измеряется тритами, девятиразрядный троичный регистр может содержать одно из почти 20 000 машинных слов (в то время как девятиразрядный двоичный — всего 512). Минимальная ячейка, имеющая адрес, и, соответственно, программно доступная по этому адресу, в двоичных компьютерах именуется байтом, а в троичных — трайтом. Трайт состоит из 6 трит (этот стандарт установился благодаря «Сетуни»).

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

Суперкомпьютер «Сетунь»

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

Главным конструктором ЭВМ был Н.П. Брусен-цов, на момент создания окончивший радиотехнический факультет МЭИ и в 1953 году, в возрасте 28 лет, направленный в конструкторское бюро МГУ. До своей смерти в 2014 году заведовал лабораторией троичной информатики. Помимо конструирования интересовался историей, описал трехзначную логику Аристотеля [6].

С. Л. Соболев, советский математик, также стоял у истоков «Сетуни». По его инициативе был сформирован вычислительный центр МГУ, а на общественном фронте он вел активную борьбу за кибернетику, объявленную в СССР лженаукой [7].

Кроме них в разработке участвовали Е.А. Жого-лев, В.В. Веригин, С.П. Маслов, А.М. Тишулина. (схема работы «Сетуни» [8]).

Сложно сказать, воплощало ли это устройство фон-неймановскую архитектуру, но известно, что в основу его легли три принципа [9]: 1) троичная симметричная система счисления; 2) троичная или трехальтернативная логика; 3) троичная элементная база.

Элементной базой большинства компьютеров того времени были вакуумные трубки (первое поколение) и транзисторы (второе поколение). Все они располагали лишь двумя состояниями, отсюда — распространение двоичных компьютеров. Для троичной «Сетуни» были использованы феррит-диодные ячейки — усовершенствованный ферритодиодный элемент Гу-тенмахера (в оригинале, кстати, двоичный). Как и в двоичных компьютерах, эти элементы объединялись в функциональные блоки — регистры, сумматоры, дешифраторы.

«Сетунь» выигрывала по многим параметрам. Трайт, в отличие от байта, мог кодировать целое число от -364 до 364, что позволяло закодировать и русский, и английский алфавиты, а также цифры, математические операции и служебные команды. В числе команд — обмен информацией между ОЗУ и магнитным барабаном, нормализация, сдвиг, условный и безусловный переходы.

Формат команды был следующим: к у1 у2 х1 у3 у4, к — признак команды, у1 - у4 — девятеричные цифры с симметричной базой, х — цифра троичной системы с симметричной базой, у1у2 — адрес команды, х1 — признак длины ячейки, у3у4 — код операции. Примеры записи: х0 01 30, х0 01 30.

Производительность компьютера составляла 4500 операций в секунду, а время полезной работы — 90% (в то время хорошим показателем считалось уже 60%). Первая «Сетунь» проработала безотказно 17 лет.

Всего было выпущено 46 экземпляров, использовавшихся для образовательных нужд в вузах по всему СССР. Произвел их Казанский завод математических машин (закрыт в 1994). По причине дешевизны фер-ритодиодных элементов (по сравнению с транзисторами), стоимость компьютера была рекордно низкой: около 30 тысяч рублей со всеми периферийными устройствами. Это при том, что один только процессор PDP-8 стоил 20 тысяч долларов.

Разработками заинтересовался Чехославацкий завод «Зброевка Яна Швермы». Интересовался разработками и Дональд Кнут, знаменитый американский теоретик программирования. О троичных компьютерах он писал так: «... основным достоинством по сравнению с классической симметричной системой счисления является уникальный способ контроля всех основных преобразований информации в компьютере. Поэтому я считаю вопрос разработки "зеркально-симметричного Фибоначчи-компьютера" в развитие "троичных" компьютеров Брусенцова может оказаться делом не таких уж далекого будущего» [9].

Как ни парадоксально, дальше серийное производство троичных ЭВМ не пошло. Среди причин осторожно называют бюрократические препятствия и то,

что компьютер оказался слишком дешевым: выигрышное для стран капиталистического лагеря оказалось проигрышным для стран социалистического. СССР предпочитал вкладываться в дорогие проекты и, как гласит история, многие из этих инвестиций не вернулись. В книге «История компьютеров в лицах» Б.Н. Малиновский так описывает конец «Сетуни»: «Создание ЭВМ — не дело университетской науки, полагало начальство. Машина "Сетунь" была варварски уничтожена, — ее разрезали на куски и выбросили на свалку» [9].

Какое-то время проработала наследница старой «Сетуни», «Сетунь-70». В числе ее особенностей были совместимость с двоичными ЭВМ, по одному стеку для команд и для операндов, метод отладки — пробегом по коду снизу вверх [8].

Техническими проблемами в области реализации троичной логики занимались Motorola, Hypres, Texas Instruments, IBM. Среди решений — интегральные схемы на основе кремниево-германиевых сплавов и даже использование колец оптоволокна для улавливания поляризованного света.

Почему же такой повышенный интерес именно к троичной, а не к четверичной или пятиричной логике? Ведь многозначных логик может быть огромное множество, так существует ли некий критерий оптимальности?

Очевидно, что выгодной следует считать систему, которая при маленьком алфавите может закодировать большое количество значений. Пусть m — количество таких значений, r — число триггеров, а b — количество символов в алфавите.

Тогда m = r*b, поскольку каждый из r триггеров соответствует b состояний.

Общее число кодов в такой системе будет равно =, максимума такая функция достигает при b = e = 2,718... А для целых чисел — в тройке. Таким образом, троичная система счисления является наиболее эффективной, давая выигрыш и в количестве машинных слов, и в быстродействии [10].

Очевидно, главным недостатком троичных ЭВМ, не дающим им выйти на рынок, является недостаточная проработанность технологий. В двоичные компьютеры, пусть и разделившиеся в своем развитии на разные ветви, вложено невероятное количество денег и труда, тогда как троичная логика при своей эффективности оставалась уделом узкого круга энтузиастов. Возможно, в будущем, в процессе поисков более эффективных вычислительных средств, человечество придет к несправедливо забытой троичной логике. Но пока она представляет, как было сказано в введении, только образовательный и исторический интерес.

БИБЛИОГРАФИЧЕСКИЙ СПИСОК

1. Википедия — свободная энциклопедия [Электронный ресурс]. — URL: https://ru.wikipedia.org/wiki/Лукасевич, Ян (дата обращения: 15.09.2015).

2. Троичная арифметика [Электронный ресурс]. — URL: http://trinary.ru/kb/3d3703c1-75fb-4bf8-9041-a27d34a30508 (дата обращения: 15.09.2015).

3. Троичный трехбитный одноединичный триггер Л.К. Бакстера [Электронный ресурс]. — URL: https://c0mm0ns.wikimedia.0rg/wiki/File:Tr0ichnyi _trigger_Baxter_3 x2i-ne%2B 3 x2ili.png#/media/ File:Troichnyi_trigger_Baxter_3 x2i-ne%2B 3x2ili. png (дата обращения: 15.09.2015).

4. Троичная цифровая техника [Электронный ресурс]. — http://andserkul.narod.ru/troichnaja_ cifrovaja_tehnika.html (дата обращения: 15.09.2015).

5. Брусенцов Н.П. Трехзначная интерпретация силлогистики Аристотеля, Историко-математические исследования, Вторая серия, вып. 8 (43). — Янус-К. — 2003.

TERNARY COMPUTER : HISTORICAL AND EDUCATIONAL ASPECTS OF COMPUTER ARCHITECTURE STUDING

Anna Andreyevna Gasovich

Moscow State University of Printing Arts 127550Russia, Moscow, Pryanishnikova street, 2A

Mihail Alexandrovich Ivanko

Moscow State University of Printing Arts 127550Russia, Moscow, Pryanishnikova street, 2A

Annotation. The article deals with the basic principles of operation of ternary computers, ternary logic and arithmetic, compares ternary and binary systems, ternary technical implementation of the structural elements; It outlines the historical context of a single series with the ternary computers Setun.

Keywords: Setun computer, computer ternary, ternary logic, ternary, symmetric ternary, ternary trigger, information density, computer architecture study.

6. Википедия — свободная энциклопедия [Электронный ресурс]. — URL: https://ru.wikipedia.org/wiki/Соболев, Сергей Львович (дата обращения: 15.09.2015).

7. Недвоичная логика [Электронный ресурс]. — URL:http://geektimes.ru/post/160595 (дата обращения: 15.09.2015.

8. Стахов А.П. Под знаком «Золотого Сечения»: Исповедь сына студбатовца. Винница: ITI. — 2003.

9. Троичная зеркально-симметричная арифметика // «Академия Тринитаризма». — М., Эл № 776567, публ. 18827. — 24.04.2014.

1. Википедия — свободная энциклопедия [Электронный ресурс]. — URL: https://ru. wikipedia.org/wiki/Троичная_логика (дата

обращения: 15.09.2015).

i Надоели баннеры? Вы всегда можете отключить рекламу.