Development of ternary computers at Moscow State University
by Brousentsov N. P., Maslov S. P., Ramil Alvarez J., Zhogolev E.A.
It is known that the ternary arithmetic has essential advantages as compared with the binary one that is used in present-day computers. In connection with this Donald Knuth assumed that the replacement of "flip-flop" for "flip-flap-flop" one a "good" day will nevertheless happen. Now, when the binary computers predominate, it is hard to believe in a reality of such assumption, but if it would happen not only the computer arithmetic, but the informatics on the whole would become most simple and most perfect. The third value (Aristotle named it snmbebhkoV – attendant) what is very actual but hidden in binary logic, will become obvious and direct manipulated. Ternary logic has better accordance with the Nature and human informal thinking. Unfortunately, the modern researches of the multivalued (non-binary) logic are formal and are not associated with practical requests.
A remarkable exclusion is the experience of creating the ternary computers "Setun" and "Setun 70" at Moscow State University. This experience convincingly confirms practical preferences of ternary digital technique.
The design of small digital machine "Setun" (Setun is the little river which flows into the river "Moscow" near the University) was initiated by member of the academy of Sciences S. L. Sobolev at 1956. It was assumed to create small, inexpensive computer, simple in use and service for schools, research laboratories, design offices and for manufacture control. For such goal at the computer center of the University there was formed a group of young men (4 MS and 5 BA). The joint seminar for engineers and programmers was organized and S. L. Sobolev, K. A. Semendjev, M. R. Shura-Bura, I. S. Berezin were its permanent participants. The problems of optimization of computer architecture and technical realization were examined and the variants of future computer were discussed.
Due to the low reliability of the computer elements on vacuum tubes and inaccessibility of transistors the fast elements on miniature ferrite cores and semiconductor diodes were designed. These elements work as a controlled current transformer and were an effective base for implementation of the threshold logic and its ternary version in particular [7]. Ternary threshold logic elements as compared with the binary ones provide more speed and reliability, require less equipment and power. These were reasons to design a ternary computer.
"Setun" is a sequential computer containing the fast multiplier, thanks to the speed of operation as in parallel devices is achieved. The small (3 pages of 54 words) ferrite RAM that has page exchange with the main magnetic drum memory works as a cash.
"Setun" has an one-address architecture with one index-register. The contents of it, in dependence of value (+,0,-) of address modification trit, may be added to or subtracted from the address part of instruction. The instruction set consists only of 24 instructions including performing mantissa normalization for floating-point calculation, shift, combined multiplication and addition. Three instructions are reserved but have never been used because of the lack of necessity.
Simplicity, economy and elegance of computer architecture are the direct and practically very important consequence of the ternarity, more exactly – of representation of data and instructions by symmetrical (balanced) code, i.e. by code with digits 0, +1, -1. In opposite to binary code there is no difference between "signed" and "unsigned" number. As a result the amount of conditional instructions is decrease twice and it is possible to use them more easily; the arithmetic operations allow free variation of the length of operands and may be executed with different lengths; the ideal rounding is achieved simply by truncation, i.e. the truncation coincides with the rounding and there is the best approximation the rounding number by rounded.
The experience of creating, programming and application of "Setun" unambiguously confirmed the significant preferences of ternarity. In spite of the fact that the designers of the first were very young and the group was small, the specimen of "Setun" was ready in Dec. 1958, i.e. in two years since the beginning. "Setun" worked correctly at once without even debugging and began to execute the existing programs. At 1960 it was sufficient amount of programs and it was possible to present "Setun" for the official testing.
Such testing was passed in Apr. 1960 very successfully. The computer demonstrated unusual for that times reliability and stability of operation in wide range of ambient temperature and supply voltage. It was found that the computer is rather simple both in manufacturing and in service, suitable for wide range of applications. "Setun" was recommended for production.
Unfortunately the officials of the computer production in the USSR had negative position about non-planned and unusual "fruit of university fantasy". Instead of supporting the innovation and taking a possible profit they permanently attempted to annihilate "ugly duckling". There were many orders of "Setun", including ones for export, but only 10-15 computers were produced annually and none of them was exported aboard. The planned manufacture of "Setun" in Czechoslovakia was also broken. At 1965 the manufacturing of "Setun" was stopped in spite of unsatisfied requests. It was replaced by a binary computer of the same performance but more than 2.5 times more expensive.
In total there were produced 50 computers (including the specimens). The 30 ones were installed at universities and colleges, the rest – at research laboratories and plants. Geographically "Setun" were scattered all over the country – from Kaliningrad to Jakutsk and from Ashkhabad to Novosibirsk.
It was found that ternary computer is very favorable for seizing and application. Simplicity of programming in codes (it was decided not to make an assembler) permitted to design a few interpreters mostly in Polish inverse (postfix) notation. On such base it was possible to program the different tasks from engineering calculations and experimental results processing to manufacturing control and computer education.
On the base of "Setun’s" positive experience it was designed and exhaustively determined in Algol-like programming language the architecture of other ternary computer. This computer named "Setun 70" was introduced in 1970. In "Setun 70" the peculiarities of ternarity are embodied with more understanding and completeness: the ternary format for symbols encoding – "tryte" (analog of binary byte) consisting of 6 trits (~9.5 bits) is established; the instruction set is updated of auxiliary ternary logic and control instructions; arithmetic instructions now allow more variation of operand length – 1, 2 and 3 trytes and length of result may be up to 6 trytes.
The possibility to vary the length of the word-operands is expanded to the word-instructions. More exactly, in "Setun 70" the traditional conception of computer instruction as a word does not exists. The program is a sequence of tryte-operations and tryte-addresses. The executed combinations of such trytes may be interpreted as virtual instructions. But there is no necessity for a programmer to think about this – he (she) constructs postfix expressions directly from the operands and operations by similar way as it is made in mathematics.
"Setun 70" is a two-stack computer. Stack of operands is the evolution of accumulator of one-address "Setun". The return stack is the base of an automata that controls the nesting of subprograms. The simple improvement of such mechanism permits to transform "Setun 70" into some computer for the proposed Dijkstra E.W. structured programming.
An adequate realization of Dijkstra ideas named the "procedure programming", wholly proved his hopes about radical improvement of programming (the goal not achieved in "structured revolution"). Construction and modificatin of the programs on "procedure programming computer" became more easily (in 3-5 times) and the perfect correctness has been achieved.
However "Setun 70" was the last "ternac". After it the research was stopped. In "Setun 70" it was implemented the CAI system "Nastavnik", the binary versions of which are the perfect example of effective realization of computer didactic up to now. The "procedure programming" was transformed into the Dialogue System of Structured Programming (DSSP). DSSP as a matter of fact emulates "Setun 70" architecture on binary computers: thus it fulfills the advantages of "procedure programming". DSSP exists and evolves, on its base there is originated a high-level "construct programming" that allows in particular to realize the very simple and effective dialogue system of Boolean algebra.