Трійкова система числення. Потрійний комп'ютер: Так, ні, можливо: Логіка

Трійкова система числення- позиційна система числення з цілою чисельною основою, що дорівнює 3.

Існує у двох варіантах: несиметрична та симетрична.

У несиметричній троїчній системі числення частіше застосовуються цифри (0,1,2), а в троїчній симетричній системі числення знаки (-,0,+), (-1,0,+1), (1,0,1), ( 1,0,1), (i,0,1), (N,O,P), (N,Z,P) та цифри (2,0,1), (7,0,1). Троїчні цифри можна позначати будь-якими трьома знаками (A,B,C), але додатково потрібно вказати старшинство знаків, наприклад, C>B, B>A.

Цифри в троїчній симетричній системі доцільно позначати їх знаками, тобто. замість 1, 0, -1 писати +, 0, -. Наприклад, десяткові числа 13, 7, 6, -6 у такому троїчному записі будуть:

13 = +++
7 = +-+
б = +-0
-6 = -+0

Зміна знака числа у симетричному коді рівносильно потрітної інверсії, тобто. взаємозаміні всіх "+" на "-" та всіх "-" на "+".

На відміну від двійкової, це арифметика чисел зі знаком, причому знаком числа виявляється цифра старшого з його значних (ненульових) розрядів. Проблеми чисел зі знаком, що не має в двійковому кодідосконалого рішення, в троїчному симетричному коді просто немає, чим і зумовлені його важливі переваги.

У цифровій техніці система числення з основою b реалізується регістрами, що складаються з наборів тригерів, кожен з яких може приймати різні стани, що кодують цифри числа. При цьому особливого значення набуває економічність системи числення - можливість представлення якомога більшого діапазону чисел з використанням якнайменшої загальної кількості станів.

Якщо загальна кількість станів дорівнює m, то кількість тригерів дорівнює m/b, а кількість чисел, які вони представляють, відповідно - b^(m/b). Як функція від b, цей вираз досягає максимуму при b рівному числу e = 2,718281828. При цілих значеннях b максимум досягається для b = 3. Таким чином, найбільш економічною є трійкова система числення (використовується в трійкових ЕОМ), за якою йдуть двійкова система числення (традиційно використовується в більшості поширених ЕОМ) і четвіркова система числення.

Трохи філософії

Бінарна логіка, що є основою сучасної обчислювальної техніки, Сприймається сьогодні як якась аксіома, істинність якої не піддається сумніву. Кодування інформації за допомогою наявності або відсутності сигналу здається самим відповідним способомреалізацію цифрових систем. Але чи це так?

Правила роботи комп'ютерів визначають люди. Використання двійкової логіки в обчислювальному процесі- не закон природи, а свідоме рішення, яке хтось колись ухвалив, тому що воно задовольняло розробників комп'ютерів, програмістів та користувачів, які вирішують свої завдання.

Чому саме двійкова логіка стала базою сучасних ЕОМ? Відповідь видається очевидною. Історично математична логіка спиралася на ідею "третього не дано", зводячи процес логічних висновків до бінарних рішень.

Ця догма класичної логіки завдячує народженням принципу бівалентності логічних суджень, запровадженому запеклим стоїком Хризіппом і підтримуваному авторитетом Аристотеля. "Фундаментом діалектики служить теза, що будь-яке висловлювання (те, що називають "аксіомою") або істинно, або хибно", - говорив Цицерон.

Простота бівалентності справді непогано описує логічні реалії життя. Варто згадати семафори, пішохідні переходи та тумблери "вкл-викл". Бінарність непогано керує повсякденністю.

Давайте зважимо на звичайних важелях важелів два предмети А і В. Ваги з легкістю дозволять визначити нам дві протилежності: вага А > В і вага А
Логіку повсякденному життіскладно впхнути в чорно-білу картину бівалентності - це усвідомлювало багато мислителів. У результаті світ з'явилися некласичні логіки, які відмовилися від закону виключеного третього. Один із перших варіантів багатозначної логікиу двадцятих роках минулого сторіччя розробив польський учений Ян Лукасевич. У його тризначній логіці крім полярних "так" і "ні" з'явилося значення "можливо". Тризначні логічні висловлювання Лукасевича допускали відсутність несуперечності та називалися модальними. Пам'ятаєте консиліум у казці про Буратіно? "Пацієнт швидше живий, ніж мертвий". "Швидше живий" і є модальним логічне висловлювання.


Льюїс Керолл (Чарльз Лютвідж Доджсон)
У двійковій системі природно уявні невід'ємні чи непозитивні числа, оскільки необхідні і ті, й інші, доводиться вдаватися до додаткового чи зворотного коду чи вводити спеціальний біт знака числа (“прямий код”). Порівняно з трійковим кодом, що дозволяє запровадити знак (+, 0, -) на рівні елемента-триту, завдяки чому радикально спрощуються всі подальші побудови, двійкові конструкції в принципі неповноцінні, за винятком, хіба що двійково-трійкової, що представляє трити парами бітів. Справа в тому, що числа (схоже, як і все у світі) потрійні за природою. Адже позитивне не є невід'ємне (всупереч тому, як це зустрічається в англомовній літературі) і негативне не є непозитивне, тому що є три фундаментальні класи чисел - позитивні, негативні і нуль. Це тризначна (не хрисиппо-булева) логіка: позитивне є антинегативне, а негативне - антипозитивне, комплементарно ж позитивне негативне або нуль і т.д. Це логіка символів числа, і хоча їх два (плюс, мінус), значень таки три: +, 0, -.

У російській історико-математичної літературі «завдання про гирях» відома під назвою «завдання Баше-Менделєєва», названої так на честь французького математика 17 ст. Баше де Мезіріака, який розмістив це завдання у своєму «Збірнику приємних і цікавих завдань» (1612 р.) та блискучого російського хіміка Дмитра Івановича Менделєєва, який цікавився цим завданням, будучи директором Головної Палати заходів та ваг Росії.

Сутність «завдання Баше-Менделєєва» полягає в наступному: за якої системи гир, маючи їх по одній, можна зважити всілякі вантажі Q від 0 до максимального вантажу Qmax, щоб максимального вантажу Qmax було б найбільшим серед усіх можливих варіацій? Відомо два варіанти розв'язання цієї задачі: (1) коли гирі дозволено класти на вільну чашу терезів; (2) коли гирі дозволяється класти на обидві чаші терезів. В першому випадку " оптимальна системагир» зводиться до двійковій системі гир: 1, 2, 4, 8, 16, ..., а «оптимальний» алгоритм, що з'являється при цьому, або спосіб вимірювання породжує двійкову систему числення, що лежить в основі сучасних комп'ютерів. У другому випадку найкращою є трійкова система гир: 1, 3, 9, 27, 81, …

Хронологія


Переваги трійних ЕОМ

Трійкові ЕОМ (комп'ютери) мають ряд переваг у порівнянні з двійковими ЕОМ (комп'ютерами).

При додаванні тритів у трійкових напівсуматорах і в трійкових суматорах кількість додавань приблизно в 1,5 рази менше, ніж при додаванні бітів у двійкових напівсуматорах і в двійкових суматорах, і, отже, швидкодія при додаванні приблизно в 1,5 рази більше.

При застосуванні симетричної троїчної системи числення і додавання і віднімання проводиться в одних і тих же двоаргументних (двохоперандних) напівсуматорах-напіввичитувачах або повних трихаргументних (трихоперандних) суматорах-вичитувачах без перетворення негативних чисел та в двійкових повних суматорах з перетворенням негативних чисел на додаткові коди.

Інформація, якою оперує комп'ютер, так чи інакше розкладається на одиниці та нулі – графіка, музика, тексти, алгоритми програм. Все просто і зрозуміло: "включено" - "вимкнено", "є сигнал" - "немає сигналу". Або «істина», або «брехня» - двійкова логіка. А тим часом ще 1961-го, у рік першого польоту людини в космос, у Радянському Союзі налагодили виробництво незвичайних обчислювальних машин, що оперували не двійковою, а троїчною логікою

«Зайва» змінна Недвозначність логіки перегукується з основоположника першої закінченої логічної теорії — Аристотелю, який між твердженням і антиствердженням поміщав третє «привид» — «може так, а може ні». У подальшому розвитку логіка була спрощена за рахунок відмови від цього третього стану і в такому вигляді виявилася надзвичайно живучою, незважаючи на свою невідповідність нечіткою, яка не завжди розкладається на так і немає дійсності. У різні століття «розширити» логіку намагалися Оккам, Лейбніц, Гегель, Керролл та деякі інші мислителі, зрештою тризначну логіку розробив на початку XX століття польський учений Ян Лукасевич.


«Сетунь» Незважаючи на те, що згодом команда Брусенцова розробила другу модель «Сетунь-70», а в США в 1970-х роках йшла робота над аналогічною ЕОМ Ternac, «Сетунь» залишилася єдиним в історії троїчним комп'ютером серійно.

У принципі, трійкова система числення мала не менше шансів, ніж двійкова. Хто знає, яким шляхом розвитку пішов би технічний прогрес, якби «трайти» здобули перемогу над «байтами». Як виглядали б сучасні смартфоничи GPS-навігатори, як позначилося б значення «може бути» на їхній швидкодії? Складно сказати. Ми проаналізуємо це питання, а надамо вам можливість зробити висновки самостійно.

Машина Фоулера

Заради справедливості слід відразу зауважити: першу обчислювальну машину з трійковою системою числення задовго до радянських конструкторів побудував англійський винахідник-самоучка Томас Фоулер у далекому 1840 році. Його машина була механічною та повністю дерев'яною.

Томас Фоулер працював банківським службовцем і за діяльністю був змушений робити складні обчислення. Щоб полегшити та прискорити свою роботу, він зробив таблиці для рахунку ступенями двійки та трійки, а пізніше опублікував ці таблиці у вигляді брошури.

Потім він пішов далі, вирішивши повністю автоматизувати розрахунки за таблицями, і збудував лічильну машину. Англійська патентна система того часу була недосконала, попередній винахід Фоулера (термосифон для систем парового опалення) було скопійовано з мінімальними змінами і запатентовано безліччю недобросовісних «винахідників», тому, побоюючись, що його ідею знову можуть вкрасти, він вирішив виготовити машину в машині. - з дерева. Так як дерево - матеріал ненадійний, для забезпечення достатньої точності обчислень Фоулер довелося зробити машину дуже громіздкою, близько 2 м в довжину. Втім, як писав сам винахідник у супровідній записці, відправляючи машину до Лондона королівський коледж, «Якби її можна було виготовити з металу, вона виявилася б не більше пишучої машинки».

Машина Фоулера була простою, ефективною і використовувала новаторський підхід: замість десяткової системи числення оперувала «тріадами», тобто ступенями трійки. На жаль, чудовий винахід так і залишився непоміченим, оригінал машини не зберігся до наших часів, і про її пристрій відомо лише з твору Фоулера-молодшого, який написав біографію батька.

Першірадянські досліди

Про практичному використаннітроїчної системи числення забули понад сто років. Наступними, хто повернувся до цієї ідеї, були інженери кафедри обчислювальної математики механіко-математичного факультету МДУ.

Все почалося 1954 року: кафедрі мали передати електронно-обчислювальну машину М-2, але не склалося. А машину ждали, готувалися її встановлювати і налагоджувати, з нею пов'язувалися певні очікування та плани. І хтось запропонував: давайте збудуємо свою.

Взяли — і збудували, благо на той час у МДУ існували деякі теоретичні напрацювання. Керівником групи, що здійснювала проектування та виготовлення машини, було призначено Миколу Петровича Брусенцова. Завдання було таке: зробити машину гранично простою і недорогою (бо ніякого спеціального фінансування у проекту не було). Спочатку збиралися робити двійкову ЕОМ, але пізніше — саме з міркувань економічності та простоти архітектури — дійшли рішення, що вона буде троїчною, використовує «природний» трійковий симетричний код, найпростіший із симетричних кодів.

До кінця 1958 року закінчили перший екземпляр машини, якій дали ім'я «Сетунь» — за назвою московської річки. "Сетунь" була відносно невелика для обчислювальних машин того покоління і займала площу 25-30 м2. Завдяки своїй витонченій архітектурі вона була здатна виконувати 2000-4500 операцій на секунду, мала оперативну пам'ять у 162 дев'ятитритних осередки і запам'ятовуючий пристрій на магнітному барабані ємністю 36-72 сторінки по 54 осередки кожна. Машинних команд було всього 27 (причому три так і залишилися незатребуваними), завдяки чому програмний кодвиходив дуже економним; програмування безпосередньо в машинних кодахбуло настільки простим, що для «Сетуні» навіть не розробляли свій асемблер. Дані вводили в машину з перфострічки, результати виводилися на телетайп (причому, що цікаво, негативні цифри друкувалися як звичайні, але перевернені догори ногами). При експлуатації машина показувала 95-98% корисного часу (витраченого на вирішення завдань, а не на пошук несправностей та усунення несправностей), а в ті часи дуже хорошим результатомвважалося, якщо машина могла дати хоча б 60%.

На міжвідомчих випробуваннях 1960 року машину визнали придатною для масового використання в КБ, лабораторіях та вузах, надійшло розпорядження про серійному випуску«Сетун» на Казанському заводі математичних машин. З 1961 по 1965 рік було збудовано 50 екземплярів, які працювали по всій країні. Потім провадження звернули. Чому перестали випускати «Сетунь», якщо вона успішно використовувалася усюди від Калінінграда до Якутська? Одна з можливих причинв тому, що комп'ютер виявився надто дешевим у виробництві і тому невигідним для заводу. Інша причина-кісність бюрократичних структур, протидія відчувалося кожному з етапів.

Згодом Микола Брусенцов та Євген Жогольов розробили більше сучасну версіюмашини, що використовувала ті ж принципи троїчності, - "Сетунь-70", але вона так і не пішла в серійне виробництво, єдиний досвідчений зразок працював у МДУ до 1987 року.

Тризначна логіка

Двозначна математична логіка, яка повсюдно панує у світі комп'ютерної та іншої «інтелектуальної» техніки, на думку творця троїчного комп'ютера Миколи Брусенцова, не відповідає здоровому глузду: «закон виключеного третього» відрізає інші висновки, крім «істини» та «не-істини», а тим часом процес пізнання реальності людиною аж ніяк не зводиться до дихотомії «так/ні». Тому, стверджує Брусенцов, щоб стати інтелектуальним, комп'ютер має бути троє.

Тризначна логіка відрізняється від двозначною тим, що окрім значень «істина» та «брехня» існує третє, яке розуміється як «не визначено», «нейтрально» чи «можливо». При цьому зберігається сумісність із двозначною логікою. логічні операціїз «відомими» значеннями дають самі результати.

Логіці, що оперує трьома значеннями, природно відповідає трійкова система числення - трійкова симетрична, якщо говорити точніше, найпростіша із симетричних систем. До цієї системи вперше звернувся Фібоначчі для вирішення своєї «завдання про гір».

У троїчній симетричній системі використовуються цифри: -1, 0 та 1 (або, як їх позначають, -, 0 і +). Переваги її як симетричної системи полягають у тому, що, по-перше, не потрібно якось особливо відзначати знак числа — число негативне, якщо його провідний розряд негативний, і навпаки, а інвертування (зміна знака) числа здійснюється шляхом інвертування всіх його розрядів ; по-друге, округлення тут не потребує якихось спеціальних правил і виконується простим обнуленням молодших розрядів.

Крім того, з усіх позиційних системобчислення трійкова найбільш економічна - в ній можна записати Велика кількістьчисел, ніж у будь-якій іншій системі, при рівній кількості використовуваних знаків: так, наприклад, десятковій системіЩоб представити числа від 0 до 999, потрібно 30 знаків (три розряди, десять можливих значень для кожного), в двійковій системі тими ж тридцятьма знаками можна закодувати числа в діапазоні від 0 до 32767, а в трійковій - від 0 до 59048. економічною була б система числення з основою, що дорівнює числу Ейлера (e = 2,718 ...), і 3 - найбільш близьке до нього ціле.

Якщо у звичних нам двійкових комп'ютерахінформація вимірюється у бітах і байтах, то комп'ютери на трійковій системі числення оперують новими одиницями: тритами та трайтами. Трит – це один трійковий розряд; подібно до того, як біт може приймати значення 0 і 1 («брехня» і "істина»), трит може бути (+), (0) або (-) (тобто «істина», «невідомо» або «брехня») .

Один трайт традиційно (так було на «Сетуні») дорівнює шести тритам і може набувати 729 різних значень (байт — лише 256). Втім, можливо, у майбутньому трайти стануть 9- або 27-розрядними, що природніше, тому що це ступеня трійки.

Справжнєта майбутнє трійкових комп'ютерів

Після "Сетуні" було кілька експериментальних проектів, що здійснювалися ентузіастами (таких, наприклад, як американські Ternac і TCA2), проте це були або дуже недосконалі машини, далекі від двійкових аналогів, або програмні емуляції на двійковому "залізі".

Основна причина полягає в тому, що використання в комп'ютерах трійкових елементів поки не дає жодних істотних переваг перед двійковими: випуск останніх налагоджений масово, вони простіші та дешевші за собівартістю. Навіть зараз побудований трійковий комп'ютер, недорогий і за своїми характеристиками порівнянний з двійковими, він повинен бути повністю сумісний з ними. Вже розробники «Сетуні-70» зіткнулися з необхідністю забезпечити сумісність: щоб обмінюватися інформацією з іншими університетськими машинами, довелося додати можливість читати з перфострічок двійкові дані та при виведенні конвертувати дані в двійковий формат.

Проте не можна сказати, що трійковий принцип у комп'ютеробудуванні — безнадійний анахронізм. В останнє десятиліття виникла потреба у пошуку нових комп'ютерних технологій, і деякі з цих технологій лежать у галузі троїчності.

Один із таких дослідницьких напрямів — пошук альтернативних способів збільшення продуктивності процесорів. Кожні 24 місяці число транзисторів у кристалі процесора збільшується приблизно вдвічі — ця тенденція відома як «закон Мура», і вічно вона не може тривати: масштаби елементів і зв'язків можна виміряти в нанометрах, і дуже скоро розробники зіткнуться з цілою низкою технічних складностей. Крім того, є й економічні міркування — чим менше, тим дорожче розроблення та виробництво. І з якогось моменту виявиться дешевшим пошукати альтернативні способиробити процесори потужнішими, ніж продовжувати гонку за нанометрами, — звернутися до технологій, від яких раніше відмовлялися як від нерентабельних. Перехід від однорідних кремнієвих структур до гетероперехідних провідників, що складаються з шарів різних середовищі здатним генерувати кілька рівнів сигналу замість звичних «є» і «ні» — це можливість підвищити інтенсивність обробки інформації без збільшення кількості елементів (і подальшого зменшення їх розмірів). При цьому від двозначної логіки доведеться перейти до багатозначних — тризначної, чотиризначної тощо.

Інший напрямок, також націлений збільшення продуктивності, — розробки у сфері асинхронних процесорів. Відомо, що забезпечення синхронності процесів у сучасних комп'ютерахнеабияк ускладнює архітектуру і витрачає процесорні ресурси — до половини всіх транзисторів у чіпі працює на забезпечення цієї синхронності. Компанія Theseus Logic пропонує використовувати "розширену двійкову" (фактично - трійкову) логіку, де крім звичайних значень "істина" і "брехня" є окремий сигнал "NULL", який використовується для самосинхронізації процесів. У цьому напрямі працюють ще кілька дослідницьких груп.

Є й більш фантастичні напрями, де виправдано використання тризначної логіки: оптичні та квантові комп'ютери.

Навчаючись на останньому курсі та готуючи дипломний проект, майбутній творець першого та єдиного у світі трійкового комп'ютера зіткнувся з необхідністю розрахунку складних таблиць. Вже тоді він освоїв чисельні методи обчислень та склав таблиці дифракції на еліптичному циліндрі (відомі як таблиці Брусенцова). Так закладався фундамент його діяльності у галузі обчислювальної техніки у Московському державному університеті.

Його науковий керівник академік С.Л. Соболєв загорівся ідеєю створення малої ЕОМ, придатної за вартістю, розмірами, надійністю для інститутських лабораторій. Він організував семінар, у якому брали участь М.Р. Шура-Бура, К.А. Семендяєв, Є.А. Жоголев і, звісно, ​​сам Сергій Львович. Аналізували недоліки існуючих машин, прикидали систему команд і структуру (тепер це називають архітектурою), розглядали варіанти технічної реалізації, схиляючись до магнітним елементамОскільки транзисторів ще не було, лампи виключалися, а сердечники та діоди можна було дістати і все зробити самим. На одному із семінарів (23 квітня 1956 р.) за участю С.Л. Соболєва були сформульовані основні технічні вимогидо створення малої ЕОМ. Керівником та спочатку єдиним виконавцем розробки нового комп'ютера було призначено Н.П. Брусенців. Зауважимо, що йшлося про машину з двійковою системою числення на магнітних елементах.

Саме тоді Н.П. Брусенцова виникла думка використати трійкову систему числення. Вона дозволяла створити дуже прості та надійні елементи, зменшувала їх кількість у машині у сім разів у порівнянні з іншими елементами. Суттєво скорочувалися вимоги до потужності джерела живлення, до відбраковування сердечників та діодів, і, головне, з'являлася можливість використовувати натуральне кодування чисел замість застосування прямого, зворотного та додаткового кодучисел.

Перший екземпляр «Сетуні» (а машина була названа так на ім'я річки, що протікала біля університету) був готовий до кінця 1958 р. Зробили її, можна сказати, своїми руками співробітники лабораторії, що очолює Н. П. Брусенцова: Є. А. Жоголев, С П. Маслов, В. В. Верігін, В. С. Березін, Б. Я. Фельдман, Н. С. Карцева, А. М. Тишуліна, В. П. Рогозін. На десятий день комплексного налагодження машина запрацювала. Такого на практиці наладчиків розроблюваних у роки ЕОМ ще був.

Постановою Радміну СРСР серійне виробництво «Сетуні» було доручено Казанському заводу математичних машин. Конструкторську документацію на машину розробили у СКБ Інституту кібернетики АН України. Перший зразок машини демонструвався на ВДНГ у Москві. Другий довелося здавати на заводі, оскільки заводські начальники намагалися довести, що машина, ухвалена Міжвідомчою комісією та успішно працююча на ВДНГ, не годиться для виробництва. «Довелося власними рукамипривести заводський (другий) зразок у відповідність до нашої документації, - згадує Брусенцов, - і на випробуваннях він показав 98% корисного часу при єдиній відмові (пробився діод на телетайпі), а також солідний запас з кліматики та варіацій напруги мережі». Бажання налагодити великосерійне виробництво керівництво заводу не мало. Причини: «Сетунь» була надто дешевою машиною, а отже, невигідною для заводу, і той факт, що вона надійно та продуктивно працювала у всіх кліматичних зонах від Калінінграда до Магадана та від Одеси до Якутська, причому без будь-якого обслуговування і по суті без запасних частин, до уваги не приймався. Успішність випробувань змусили 30 листопада 1961 р. директора заводу було підписати акт, який поклав край його старанням поховати неугодну машину.

Випускали лише по 15-20 машин на рік, а незабаром і від цього відмовилися. Загалом казанський завод випустив 50 ЕОМ «Сетунь», 30 із них працювали у вищих навчальних закладахСРСР.

Потрібно сказати, що до машини відразу ж виявили значний інтерес за кордоном. Зовнішторг отримав на неї заявки з низки європейських країн. Але жодна з них не була реалізована.

У 1961-1968 pp. Брусенцов разом із Жогольовим розробив архітектуру нової машини, названою потім "Сетунь-70". Було намічено до 1970 р. розробити зразок, що діє. У квітні 1970 р. зразок уже діяв. Працював він на тестах, які довелося писати М. П. Брусенцову, бо Жоголєв захопився іншою роботою. Машину все ж таки осідлали, допоміг програміст Раміль Альварес Хосе, а ще через рік, «трохи» модернізувавши «Сетунь-70», зробили її машиною структурованого програмування.

Це була машина, в якій невідомі на той час (1966-1968 рр.) RISC – ідеї поєдналися з перевагами тризначної логіки, трійкового коду та структурованого програмування Е. Дейкстри. Для неї створили діалогову систему структурованого програмування, а в ній безліч високоефективних, надійних та компактних продуктів - таких, як крос-системи програмування мікрокомп'ютерів, системи розробки технічних засобів на базі однокристальних мікропроцесорів, системи обробки текстів, управління роботами-маніпуляторами, медичний моніторинг та багато іншого інше.

Машина була задумана так, що забезпечувалася ефективна можливістьїї програмного розвитку. Троїчність у ній грала ключову роль. Команд у традиційному розумінні не було – вони віртуально складалися зі складів. Довжина та адресність команд варіюються за потребою, починаючи з нульадресної. Насправді програміст не думає про команди, а пише у постфіксній формі (ПОЛІЗ) вирази, що задають обчислення над стеком операндів. Для процесора ці алгебраїчні вирази є готовою програмоюале алгебра доповнена операціями тестування, управління, введення-виведення. Користувач може поповнювати набір складів своїми операціями та вводити (визначати) постфіксні процедури, використання яких практично не знижує швидкодії, але забезпечує ідеальні умови для структурованого програмування. Результат - трудомісткість програм зменшилася в 5-10 разів при небувалій надійності, зрозумілості, модифікованості тощо, а також компактності та швидкості.

На жаль, лабораторію М. П. Брусенцова після створення машини «Сетунь-70» було виселено з приміщення ВЦ МДУ на горище студентського гуртожитку. Ймовірно, причина була у тому, що на тлі двійкових ЕОМвиглядала вона зі своєю потрійністю білою вороною. Перше дітище Миколи Петровича – машина «Сетунь» (експериментальний зразок, який пропрацював безвідмовно 17 років) було варварськи знищено – її розрізали на шматки та викинули на звалище. «Сетунь-70» співробітники лабораторії забрали із собою на горище і там на її основі створили «Наставник» – чудову систему навчання за допомогою комп'ютера.

У людському суспільстві неприйняття нового у порядку речей, і М. П. Брусенцов ще легко відбувся. А ось Вільям Оккам, який проповідував тризначну логіку в ХIII столітті, з великими труднощами уникнув багаття. технічних причинДвійковою системою - основа має бути трійковою.

Нині Микола Петрович Брусенцов завідує лабораторією ЕОМ факультету обчислювальної математики та кібернетики Московського державного університетуім. М.В. Ломоносова. Основні напрямки його наукової діяльності- архітектура цифрових машин, автоматизовані системи навчання, системи програмування для міні- та мікрокомп'ютерів. ЕОМ «Сетунь-70» і сьогодні успішно використовується в навчальному процесіу МДУ. Н.П. Брусенцов є науковим керівником тем, пов'язаних із створенням мікрокомп'ютерних навчальних систем та систем програмування.

М. П. Брусенцов говорив, що «.. Наявність переконливі докази вірності відкритого шляху. З якою легкістю було зроблено «Сетунь», як просто її освоювали та продуктивно застосовували у всіх областях і як програмісти плювалися, коли довелося їм переходити на двійкові машини. Найвище досягнення сьогодні – RISC-архітектура – ​​машини зі скороченим набором команд (зазвичай їх 150), але де їм до «Сетуні», у якої 24 команди забезпечували повну універсальність та невластиві RISC ефективність та зручність програмування!

Справжній RISC може бути лише троїчним.

Н.П. Брусенцов, Раміль Альварес Хосе

На початку 1956 р. з ініціативи академіка С.Л. Соболєва, завідувача кафедри обчислювальної математики на механіко-математичному факультеті Московського університету, в обчислювальному центрі МДУ було засновано відділ електроніки та почав працювати семінар з метою створення практичного зразка цифрової обчислювальної машини, призначеної для використання у вузах, а також у лабораторіях та конструкторських бюро промислових підприємств. . Потрібно розробити малу ЕОМ, просту в освоєнні та застосуваннях, надійну, недорогу і водночас ефективну у широкому спектрі завдань.

Грунтовне вивчення протягом року обчислювальних машин, що були на той час, технічних можливостейїх реалізації призвело до нестандартного рішеннявжити в створюваній машиніне двійковий, а трійковий симетричний код, реалізувавши ту саму врівноважену систему числення, яку Д. Кнут через двадцять років назве може бути, найкрасивішою і як потім стало відомо, переваги якої були виявлені К. Шенноном в 1950 121 .

На відміну від загальноприйнятого в сучасних комп'ютерах двійкового коду з цифрами 0, 1, арифметично неповноцінного внаслідок неможливості безпосереднього представлення в ньому негативних чисел, трійковий код із цифрами -1, 0, 1 забезпечує оптимальну побудову арифметики чисел зі знаком. При цьому, не тільки немає потреби в штучних і недосконалих додатковому, прямому або зворотному кодахчисел, але арифметика набуває ряду значних переваг: однаковість коду чисел, варіювана довжина операндів, єдиність операції зсуву, тризначність функції знак числа, оптимальне округлення чисел простим відсіканням молодших розрядів, взаємокомпенсованість похибок округлення в процесі обчислення.

Трійкова ЕОМ “Сетунь”, дослідний зразок якої розробили, змонтували і до кінця 1958 р. ввели в експлуатацію співробітники відділу електроніки, як показав досвід її освоєння, програмного оснащення та різноманітних практичних застосувань, з вичерпною повнотою задовольняла всім передбаченим завданням її розробку вимогам. Цей успіх, з урахуванням того, що розробка троїчної ЕОМ проводилася вперше, проводилася нечисленним колективом співробітників-початківців (8 випускників МЕІ та МДУ, 12 техніків і лаборантів) і була виконана в короткий строк, явно свідчить про благодатність потрійної цифрової техніки. Ціною ускладнення в порівнянні з двійковими елементами пам'яті та елементарних операційдосягається істотне спрощення та, головне, природність архітектури трійних пристроїв.

При мінімальному наборі команд (всього 24 одноадресні команди) "Сетунь" забезпечувала можливість обчислень з фіксованою і з плаваючою комою, мала індекс-реєстр, значення якого можна як додавати, так і віднімати при модифікації адреси, надавала операцію додавання з твором, що оптимізує обчислення поліномів , операцію порозрядного множення та три команди умовного переходу за знаком результату. Проста та ефективна архітектура дозволила зусиллями невеликої групи програмістів вже до кінця 1959 р. оснастити машину системою програмування та набором прикладних програм, достатніми для проведення у квітні 1960 р. міжвідомчих випробувань дослідного зразка.

За результатами цих випробувань "Сетунь" була визнана першим зразком універсальної обчислювальної машини, що діє, на безлампових елементах, якому властиві " висока продуктивність, достатня надійність, малі габарити та простота технічне обслуговування”. За рекомендацією Міжвідомчої комісії Рада Міністрів СРСР прийняла ухвалу про серійне виробництво “Сетуні” на Казанському заводі математичних машин. Але чомусь трійковий комп'ютер припав не до вподоби чиновникам радіоелектронного відомства: вони не забезпечили розробку серійного зразка машини, а після того як він все-таки був здійснений з використанням конструктивів машини М-20, що випускалася заводом, не сприяли нарощуванню випуску відповідно до зростаючого числом замовлень, зокрема з-за кордону, а навпаки, жорстко обмежували випуск, відхиляючи замовлення, і в 1965 р. повністю припинили, причому перешкодили освоєнню машини в ЧССР, яка планувала крупносерійне виробництво. Приводом для цієї дивної політики могла бути рекордно низька ціна"Сетун" - 27,5 тис., рублів, обумовлена ​​бездефектним виробництвом її магнітних цифрових елементівна Астраханському заводі ЕА та ЕП, по 3 руб. 50 коп. за елемент (у машині було близько 2 тис. елементів). Істотно те, що електромагнітні елементи “Сетуні” дозволили здійснити граничну реалізацію тризначної логіки на рідкість економно, природно та надійно. Досвідчений зразок машини за 17 років експлуатації у ВЦ МДУ після заміни на першому році трьох елементів з дефектними деталями не зажадав жодного ремонту внутрішніх пристроївта був знищений у стані повної працездатності. Серійні машини стійко функціонували в різних кліматичних зонах від Одеси та Ашхабада до Якутська та Красноярська за відсутності будь-якого сервісу та запчастин.

Завдяки простоті та природності архітектури, а також раціонально побудованій системі програмування, що включає інтерпретуючі системи: ІП-2 (плавка кома, 8 десяткових знаків), ІП-3 (плавна кома, 6 десяткових знаків), ІП-4 ( комплексні числа, 8 десяткових знаків), ІП-5 (плавка кома, 12 десяткових знаків), автокод ПОЛІЗ з операційною системоюта бібліотекою стандартних підпрограм (плаюча кома, 6 десяткових знаків), машини “Сетунь” успішно освоювалися користувачами у вузах, на промислових підприємствах та в НДІ, опиняючись ефективним засобомвирішення практично значущих завдань у різних галузях, від науково-дослідного моделювання і конструкторських розрахунків до прогнозу погоди та оптимізації управління підприємством. На семінарах користувачів обчислювальних машин "Сетунь", проведених у МДУ (1965), на Людиновському тепловозобудівному заводі (1968), в Іркутському політехнічному інституті (1969) були представлені десятки повідомлень про результативні народногосподарські застосування цих машин. "Сетунь", завдяки природності потрійного симетричного коду, виявилася справді універсальним, нескладно програмованим і ефективним обчислювальним інструментом, що позитивно зарекомендував себе, зокрема, як технічний засібнавчання обчислювальної математики у понад тридцяти вузах. А у Військово-повітряній інженерній академії ім. Жуковського саме на “Сетуні” було вперше реалізовано автоматизована система комп'ютерного навчання.

Потрійна система числення заснована на тому ж позиційному принципі кодування чисел, що і прийнята в сучасних комп'ютерах двійкова система, проте вага i-й позиції (розряду) у ній дорівнює не 2 i, а 3 i. При цьому самі розряди не двозначні (не биті), а тризначні (трити) - крім 0 і 1 допускають третє значення, яким у симетричній системі служить -1, завдяки чому однаково представимі як позитивні, так і негативні числа. Значення n-тритного цілого числа N визначається аналогічно значенню n-бітного:

де а i ∈ (1, 0, -1) – значення цифри i-го розряду.

Цифри в троїчній симетричній системі доцільно позначати їх знаками, тобто. замість 1, 0, -1 писати +, 0, -. Наприклад, десяткові числа 13, 7, 6, -6 у такому троїчному записі будуть: 13 = +++, 7 = +-+, б = +-0, -6 = -+0. Зміна знака числа у симетричному коді рівносильно потрітної інверсії, тобто. взаємозаміні всіх "+" на "-" та всіх "-" на "+". Операції складання та множення у троїчному симетричному коді визначені таблицями:

На відміну від двійкової, це арифметика чисел зі знаком, причому знаком числа виявляється цифра старшого з його значних (ненульових) розрядів. Проблеми чисел зі знаком, що не має в двійковому коді досконалого рішення, у трійковому симетричному коді просто немає, чим і зумовлені його важливі переваги.

Машина "Сетунь" може бути охарактеризована як одноадресна, послідовної дії, з 9-тритним кодом команди, 18-тритними регістрами суматора Sта множника R, 5-тритним індекс-регістром модифікації адреси Fта лічильником-вказівником виконуваних команд C, а також однобитним покажчиком знаку результату ? , керуючим умовними переходами.

Оперативна пам'ять - 162 9-тритних осередки - розділена на 3 сторінки по 54 осередки для посторінкового обміну з основною пам'яттю - магнітним барабаном ємністю 36 чи 72 сторінки. Зчитування та запис у оперативну пам'ятьможливі 18-тритними та 9-тритними словами, причому 9-тритне слово відповідає старшій половині 18-тритного в регістрах Sі R. Вміст цих регістрів інтерпретується як число з фіксованою після другого зі старших розрядів коми, тобто. за модулем воно менше 4,5. При обчисленнях з плаваючою комою мантиса М нормалізованого числа задовольняє умову 0,5< |М| <1,5, а порядок представлен отдельным 5-тритным словом, интерпретируемым как целое со знаком.

Сторінка двоступінчаста структура пам'яті з послівною адресацією в межах трьох сторінок ОЗУ, що обходиться 5-тритними адресами і відповідно 9-тритними командами, зумовила незвичайну компактність програм і водночас високу швидкодію машини, незважаючи на те, що в інтерпретуючих системах магнітний барабан функціонує як оперативна пам'ять.

У 1967-1969 pp. на основі досвіду створення та практичних застосувань машини "Сетунь" розроблена вдосконалена трійкова цифрова машина "Сетунь 70", дослідний зразок якої вступив в дію в квітні 1970 р. Це була машина нетрадиційної двостекової архітектури, орієнтованої на забезпечення сприятливих умов подальшого розвитку її систем.

Прийняття арифметичного стека (стека 18-тритних операндів) обумовлено використанням як машинної мови так званого польського інверсного запису програм (ПОЛІЗ), який позитивно зарекомендував себе в однойменному інтерпретаторі на "Сетуні". ПОЛІЗ-програма складається з команд тієї чи іншої адресності, а є послідовністю коротких слів - 6-тритных трайтов (трійних байтів). Як елемент програми трайт може бути адресним, або операційним. Адресний трайт або використовується як операнда попереднім операційним, або сприймається як припис заслати в стек операндів з оперативної пам'яті слово, що адресується від одного до трьох трайтів. В оперативній пам'яті всього 9 сторінок по 81 трайту, причому відкрито для доступу на даний момент три сторінки, номери яких вказані в так званих "регістрах приписки".

Операційний трайт вказує на операції, а точніше процедури, що виконуються над стеком операндів, а також над регістрами процесора. Усього передбачено 81 операцію - 27 основних, 27 службових та 27 програмованих користувачем.

Другий (системний) стек, що містить адреси повернення при обробці переривань та при виконанні вкладених підпрограм, дозволив успішно реалізувати на "Сетуні 70" ідею структурованого програмування Е. Дейкстри, ввівши операції виклику підпрограми, виклику за умовою та циклічного виконання підпрограм. Здійснене таким чином процедурне структуроване програмування на практиці підтвердило заявлені Дейкстрою переваги його методу: трудомісткість створення програм скоротилася в 5-7 разів, завдяки виключенню традиційного налагодження тестуванням на конкретних прикладах, причому програми набули належної надійності, упорядкованості, зрозумілості та модифікованості. Надалі ці особливості архітектури “Сетуні 70” послужили основою діалогової системи структурованого програмування ДССП, реалізованої машинах серії ДВК і наступних персональних комп'ютерах .

На жаль, подальший розвиток закладених у “Сетуні 70” можливостей шляхом розробки її програмного оснащення було припинено адміністративним порядком. Довелося переорієнтуватися на комп'ютеризацію навчання. "Сетунь 70" стала основою для розробки та реалізації автоматизованої системи навчання "Наставник", що втілила принципи "Великої дидактики" Яна Амоса Коменського. Призначення комп'ютера у цій системі не “електронне перегортання сторінок” і мультимедійні ефекти, а відстеження вірності розуміння учням те, чого він навчається, своєчасне подолання помилок і забезпечення шляхом обгрунтовано призначених вправ реального оволодіння предметом навчання. Разом з тим комп'ютер протоколює хід заняття, надаючи розробнику навчального матеріалу можливість оцінювати ефективність дидактичних прийомів, що використовуються, і вдосконалювати їх.

Навчальний матеріал у “Наставнику” надається учням у друкованому вигляді з пронумерованими секціями, абзацами, вправами та довідками до помилкових відповідей, завдяки чому за допомогою найпростішого терміналу з цифровою клавіатурою та калькуляторним індикатором комп'ютер без гіпертекстового дисплею легко та легко їй здатність діалогу із читачем. Створення навчальних матеріалів для "Наставника" не пов'язане з програмуванням комп'ютера, і, як показала практика, розробка цілком задовільних посібників з математики, фізики, англійської мови та інших предметів шкільним вчителям посильна. Дидактична ефективність цієї нехитрої системи виявилася надзвичайно високою. Так, курс "Базовий Фортран" студенти факультету ВМК МДУ проходили в "Наставнику" за 10-15 годин, студенти економічного факультету - за 15-20 годин, показуючи потім у практикумі більш досконале вміння програмувати на Фортрані, ніж після звичайного семестрового курсу.

Реалізований в "Наставнику" принцип "книга-комп'ютер" зумовив оптимальне використання комп'ютера як засобу навчання практично у всіх відносинах: необхідна апаратура (мікрокомп'ютер і підключені до нього 3-4 десятки терміналів, подібних до найпростішого калькулятора) гранично дешева, надійна і легко освоюється , Так і викладачами, робота в режимі діалогу з книгою невтомна, захоплююча і при належній організації викладу гарантує швидке та повноцінне засвоєння предмета, що вивчається. Застосування системи у МДУ, МАІ, ВІА ім. Куйбишева, у середній школі та для професійного навчання на ЗІЛі підтвердили її високу ефективність у широкому спектрі предметів та рівнів навчання. Водночас “Наставник” вже понад 30 років постійно використовується на факультеті ВМіК для автоматизованого проведення контрольних робіт, а також тестування вступників на факультет, який визначає рівень володіння англійською мовою для комплектування однорідних навчальних груп.

Однак за, здавалося б, нагальної потреби дієвого вдосконалення процесу навчання в наш інформаційний вік “Наставник” не був затребуваний. Очевидно, занадто простий і дешевий, та й яка ж це комп'ютерна система – без дисплея, мишки та гіпертексту. Адже ІТ-оснащеність навчального процесу все ще прийнято оцінювати не за рівнем та якістю навчання, а за кількістю та потужністю залучених до нього комп'ютерів.

Система команд машини "Сетунь"

Література

  1. Shаnnonc. Є.А Симметрична notation для номерів.- "The American Mathematical Monthly", 1950, 57, N 2, р, 90 - 93,
  2. Reid J.B. Letter to the editor. - “Comm. ACM”, 1960, 3, N 3, нар. А12 – A13.
  3. Howden Р.F. Weigh-counting technique is faster then binary.- "Electronics", 1974, 48, N 24, нар. 121 – 122.
  4. Байцер Б. Архітектура обчислювальних комплексів, Т. 1. М., "Світ", 1974.
  5. Процедури Sixth International Symposium on Multiple-Valued Logic, Мау 25 – 28 1976. IEEE Press, 1976.
  6. Croisier А. Введення в pseudoternary transmission codes.- "IBM Journal of Research and Development", 1970, 14, N 4, нар. 354 – 367.
  7. Брусенцов Н.П. Електромагнітні цифрові пристрої із однопровідною передачею тризначних сигналів.- У кн.: Магнітні елементи автоматики та обчислювальної техніки. XIV Всесоюзна нарада (Москва, вересень 1972). М., "Наука", 1972, с. 242 – 244.
  8. Арістотель. 06 тлумачення. СПб., 1891.
  9. Брусенцов Н.П. Діаграми Льюїса Керрола та арістотелєва силлогістика.- У кн.: Обчислювальна техніка та питання кібернетики, вип. 13. Вид-во МДУ, 1976, с. 164-182.
  10. Запуск до програмування. PDP-8 handbook series. Digital Equipment Corporation, 1972.

Матеріали міжнародної конференції SORUCOM 2006 (3-7 липня 2006 року)
Розвиток обчислювальної техніки в Росії та країнах колишнього РСРС: історія та перспективи
Статтю поміщено в музей 31.10.2007 з дозволу автора

1959 року М. П. Брусенцов розробив для МДУ унікальну обчислювальну машину «Сетунь». Вона була заснована на трійковій системі числення і хоча елементна база була частково двійковою, що призводило до перевитрати деталей, машина зарекомендувала себе як економічна та надійна. Сьогодні трійкову машину можна побачити хіба що у музеї, двійковий код переміг.

Спілкування із зовнішнім світом відбувається за допомогою запису в комірку пам'яті з встановленою адресою значення, яке обробить хост-виконавець. Наприклад, можна таким чином реалізувати примітивну консоль налагодження.
Так як у нас веб-додаток, виведемо цю консоль в автентичному чорному вікні з білими літерами. Для цього скористаємося готовим компонентом та можливостями стандартної бібліотеки Dart з керування вмістом.

+-0. Перші кроки

Оскільки код із робочої віртуальної машини в мене вже був, коротко опишу особливості його виконання.

Отже, для прошивки в пам'ять готового коду опишемо клас-завантажувач, котовий завантажуватиме код із сервера і записуватиме його в пам'ять. Код у форматі JSON, дивно, але факт, адже будь-який бінарний формат запису був би не зовсім сумісний із трійковим кодом.

За канонами системи Оберон, завантажувач виконує модифікацію адрес переходу, проста математика вносить у код поправку на зміщення коду модуля, що завантажується щодо нульової позиції, яку задає компілятор при компіляції.

Окремим модулем йде bootstrap, це кілька команд, які встановлять у пам'яті константи машини (розмір пам'яті, адресу таблиці модулів та інших.) і переведе процесор на адресу першої команди, що виконується. Bootstrap був підготовлений вручну.

Модуль Core створений за образом і подобою ядра системи Оберон, модулю Kernel, так як це ядро, в ньому багато прямих операцій з пам'яттю, реалізація аллокатора динамічних структур (іноді глючить) реалізація перехоплювача винятків і т.д,
Якраз у модулі Core реалізуємо найпримітивнішу консоль. Для виведення рядків і чисел будемо записувати значення символів у комірку пам'яті, як було описано вище. Платформозалежний модуль SYSTEM є віртуальним, його виклики компілятор переводить безпосередньо в машкод.

Невиразний скріншот.
Перевірити працездатність віртуальної машини, що вийшла, можна ось. Звичайно, комплексне налагодження процесора і компілятора одночасно призвело до деяких багів (які я ще не знайшов), але як proof of concept результат роботи мені здався достатнім.

+-+. Підсумки

У результаті ми отримали цілком працездатний, розширюваний на всі боки аналог процесора Н. Вірта з проекту Оберон 2013 з модифікацією для потрійної системи числення і потрійного коду і кілька модулів для роботи в системі, що вийшла.

В оригінальному інтерпретаторі я спробував розвинути успіх і реалізувати спілкування із зовнішнім світом за аналогом порту rs232, з файловою системою на основі протоколу 9p. І ось із чим я зіткнувся. І та й інша технологія, хоч і декларуються кросплатформенними, при введенні в поняття платформи тритів і трайтів стрімко втрачають свою кросплатформенність. Основа у вигляді байтів та бітів робить портування таких технологій нетривіальним завданням.

Звичайно, тут можна заперечити, що значущість та поширеність трійкових систем дорівнює нулю, але тут як в анекдоті про Вовочку, трійковість є, а слів про кросплатформність для неї немає. Можливо, це є деяким гальмом у поширенні трійкових систем. Адже все й так працює.

Особисто я побачив лише одне виправдане застосування трійкових машин – це організація захищених від вторгнень каналів зв'язку. Адже навіть за наявності прямого доступу до каналу хакеру буде потрібно як мінімум апаратний дешифратор сигналів, який ще треба розробити. Таким чином, боротьба броні та снаряда може дати життя промисловому застосуванню описаних технологій.

+0-. Посилання

Ну і, мабуть, кілька посилань для тих, хто зацікавиться.
  • trinary.ru красивий сайт із калькуляторами, календарями, симулятором ОС оригінальної Сетуні.
  • ternarycomp.cs.msu.ru більш серйозний сайт, з описом патентів, алгоритмів
  • www.inf.ethz.ch/personal/wirth/ProjectOberon/index.html авторська сторінка проекту Оберон 2013.
  • github.com/kpmy/tri репозиторій проекту
  • bitbucket.org/petryxa/trisc репозиторій оригінального емулятора

+00. P.S

Н.П. Брусенцов помер 4 грудня 2014 року. Сподіваюся, справа його життя не буде забута.

Теги: Додати теги