20-09-2023
«Се́тунь» — малая ЭВМ на основе троичной логики, разработанная в вычислительном центре Московского государственного университета в 1959 г. Единственная в своём роде ЭВМ, не имеющая аналогов в истории вычислительной техники .
Руководитель проекта — Н. П. Брусенцов, основные разработчики: Е. А. Жоголев, В. В. Веригин, С. П. Маслов, А. М. Тишулина. Разработка машины была предпринята по инициативе и осуществлялась при активном участии советского математика С. Л. Соболева.
Казанским заводом математических машин было произведено 46 компьютеров Сетунь, 30 из них использовались в университетах СССР.
На основе двоичной ферритодиодной ячейки Гутенмахера, которая представляет собой электромагнитное бесконтактное реле на магнитных усилителях трансформаторного типа, Н. П. Брусенцов разработал троичную ферритодиодную ячейку[1][2], которая работала в двухбитном троичном коде, т.е. один трит записывался в два двоичных разряда, четвёртое состояние двух двоичных разрядов не использовалось. Состояние каждого разряда на пульте управления отображалось двумя лампочками, четвёртая комбинация (1,1) не использовалась.
Трайт — минимальная непосредственно адресуемая единица главной памяти «Сетуни 70» Брусенцова.
Трайт равен 6 тритам (~9,5 бита) и способен принимать значения в диапазоне ±364.
Трайт достаточно велик, чтобы закодировать, например, алфавит, включающий русские и латинские заглавные и строчные буквы, цифры, математические и служебные знаки.
В трайте целое число как 9-ричных, так и 27-ричных цифр. Два трайта — это 19 битов, три трайта — почти 29 битов и т. д.
DSSP (Dialog System for Structured Programming) — язык программирования, разработанный для Сетуни. Он был разработан студентами лаборатории Николая Брусенцова на ВМК МГУ. 32-битная версия была создана в 1989.
DSSP похож на язык Forth, оба — примеры стековых языков программирования.[4]
Система команд одноадресная[3]. Представление чисел — с фиксированной запятой[3], одинарной (9 трит) и двойной (18 трит) точности. Прямо адресуемое адресное пространство — 243 ячейки. Обмен информацией между ОЗУ и ЗУ на магнитном барабане осуществляется страницами (зонами) по 54 9-разрядных ячейки.
Формат команды (при печати)[3]
Код операции | Название | Вид |
---|---|---|
3̅3̅ | Чтение зоны с барабана в ОЗУ | x0y1y2 3̅3̅ |
3̅0 | Чтение с перфоленты в ОЗУ | x0 00 3̅0 |
3̅0 | Троичный вывод (печать) | x0 03 3̅0 |
3̅0 | Вывод в один столбец | x0 03̅ 3̅0 |
3̅0 | Вывод в два столбца | х0 01̅ 3̅0 |
3̅0 | Вывод в три столбца | х0 01 3̅0 |
3̅3 | Запись из ОЗУ на барабан | х0у1у2 3̅3 |
2̅3 | Нормализация | а т 2̅3 |
2̅0 | Сдвиг | а т 2̅0 |
2̅3 | перенос из s в ОЗУ | а т 2̅3 |
1̅3 | Сложение, F+[a]-> F | а т 1̅3 |
1̅0 | Перенос из ОЗУ в F | а т 1̅0 |
1̅3 | Сложение [а]+C -> F; F ->C | а т 1̅3 |
2̅3̅ | Нормализация | а т 2̅3̅ |
2̅0 | Сдвиг | а т 2̅0 |
2̅3 | Перенос числа из s в ОЗУ | а т 2̅3 |
1̅3̅ | Сложение F+[a]-> F | а т 1̅3̅ |
1̅0 | Перенос из ОЗУ в F | а т 1̅0 |
1̅3 | Сложение [a]+C->F; F->C | а т 1̅3 |
03̅ | Перенос из F в ОЗУ | а т 03̅ |
00 | Безусловный переход | а т 00 |
03 | Перенос из C в ОЗУ | а т 03 |
13̅ | Условный переход (УП-1̅) | а т 13̅ |
10 | Условный переход (УП-0) | а т 10 |
13 | Условный переход (УП-1) | а т 13 |
23̅ | Останов машины до нажатия на пульте кнопки Пуск | а т 23̅ |
20 | Логическое поразрядное умножение | а т 20 |
23 | Перенос из ОЗУ в R | а т 23 |
33̅ | Вычитание | а т 33̅ |
30 | Перенос числа из ОЗУ в s | а т 30 |
33 | Сложение | а т 33 |
43̅ | Умножение-1̅ | а т 43̅ |
40 | Умножение-0 | а т 40 |
43 | Умножение-1 | а т 43 |
Сетунь (компьютер).