📜 ⬆️ ⬇️

Project Kronos and a little-known Russian team from the Novosibirsk Academgorodok Kronos Research Group (KRG)

It will be a question of a project that once again refutes the biased fact that in the field of computer technology we have always lagged behind the West, and Russian programmers are engaged in "knee" programming, and the lot of developers except to customize ready-made systems for the needs of our domestic market.



Project Kronos and a little-known Russian team from the Novosibirsk Academgorodok Kronos Research Group (KRG)


In the second half of the 1980s, the Kronos research group developed unique technologies, embodied in a variety of finished commercial products, and a number of projects in the space and telecommunications industry. Over time, the group transformed into three independent companies, known as XDS, xTech Ltd. and ProPro Group.
')
In the mid-80s, Kronos Research Group (KRG) developed a domestic 32-bit workstation, its own UNIX-like operating system, implemented software and hardware components of the transputer architecture for the MARS project (Modular Asynchronous Developed Systems).




Novosibirsk State University

The summer of 1983 is considered the beginning of the creation of the Kronos project, just at this time the materials on Modula-2 and Lilith became available. Alexey Nedorya worked on his thesis work - the compiler from the Edison language, Dmitry Kuznetsov worked on the creation of the Modula-2 compiler. A small group was organized that was interested in programming, including compilers. Later Evgeny Tarasov and Vladimir Vasekin joined the group. And in the spring of 1984 these four had a “cheeky” idea to create something like Lilith, to develop their own machine with their own OS.
Kronos toys is a separate story. Generally speaking, Kronos was originally conceived because the people really wanted to have a game machine at their own disposal. Expensive, I would give now to play Kronosovye toys. Suitcases - were written by John Seryukov. He played for a long time in them - he must have debugged :) Xonix - which winning strategies have not been devised! It was considered the most elegant to drive all the killer balls into narrow rooms or labyrinths, where they could make only weak twitches. Pentix is ​​an analogue of Tetris, only out of five squares is the first toy on Ilyushin's color display. The addiction of the game was such that voluntarily stop playing was absolutely impossible. One of the toys was "Labyrinth", the creation of Dimka Flaass. The essence of the game - it was necessary to program the robot on a meta-tongue so that it went around the maze, collecting all the "treasures" along the way. The people sat, drawing on a piece of paper a maze diagram, empirically computed during the game - the maze was generated randomly for each game. The passion for the game ended unexpectedly and naturally - Dimka redid the labyrinth in 3-dimensional, which greatly complicated the game and dramatically increased its passage time. Not mastered.

Based on the experience of developing a personal computer Lilith in the development, yet many decisions were made independently. The architecture of interaction of processes, interrupts, addressing and work with external devices has been significantly redesigned. Many simplifications were achieved thanks to the 32-bit processor (in the form of a board for Electronics-60), which Tarasov and Vasekin were involved in creating. The grandfather of Kronos can surely be considered Niklaus Wirth, a professor from Zurich, it was he who created the programming language Modula-2 and implemented it on the Lilith machine. Modula-2 is indispensable when developing software.

The name was given in honor of the Greek titan Kronos. In the representation of the ancient Greeks, the kingdom of Kronos corresponded to the “golden age,” and it also consonant with the Greek word “chronos,” which in translation means time. According to the developers, the name most likely was chosen by chance, I liked the sound.
The essential feature of the Kronos project was the exceptional, I would say, magical, attractiveness of it for talented students. I have never seen such an effectively working, spontaneously self-organized youth team. In the 40 square meters allocated for work, something was programmed day and night (it was usually programmed at night), it was discussed, more and more new students came, they were given tasks, and after a short time they felt like the old-timers of Kronos. Probably 20 people passed through this project. I’ll say right away that all of them have reached the highest qualifications and are now leaders of their current teams, albeit in different organizations, cities and countries.

Kuznetsov began writing a compiler on the Burroughs 6700 and an interpreter of Kronos. Nedorya implemented a small OS running the interpreter. By the summer of 1984, Nedora wrote in Pascal a microassembler for Kronos firmware. Already in December 1984, the Kronos-1 processor was ready. After Kronos was connected to the Burroughs for the organization of cross-development via a serial channel, the complex debugging process began.



Console firmware worked on Kronos, a small coherent utility was written on Burroughs, it allowed downloading the program to Kronos and running it. Everything worked, but so-so. Therefore, the development of Kronos-2 began soon. It was planned to change the instruction set, processor, compiler. Its development began with the development of a system of commands that could not be coordinated with each other. The promotion of the new system was carried out directly through Kronos, Kronos-assembler was completed in Pascal, which was structural and supported the concepts of procedure and separate compilation.

A loader, a primitive file system and an editor, and a process scheduler were written in Kronos-assembler. A second terminal was connected to Kronos, after which a dual-user operating system started up.

Since 1985, all work on the Kronos project has been carried out at the Computing Center, with the support of A. G. Marchuk. The creators of the project Dmitry Kuznetsov, Alexey Nedorya, Evgeny Tarasov and Vladimir Filippov worked here. Originally developed by Kronos-1, later Kronos-2, Kronos-2.2, Kronos-2.5, Kronos-2.6. Kronos-2 was highly appreciated by amateurs (about 50 machines were made by hand) and by experts in the industry - the documentation was transferred to various organizations and in some development was replicated.

Kronos-2.2, Kronos-2.5, Kronos-2.6 are known as the Kronos processor family.

In 1985, the team Kronos Group fell into the hands of the book of Wirth in English, which was about Modula-2.
This was what we were looking for - the division of software modules into interface and executive parts, as well as a more rigorous programming system while maintaining easy access to low-level tools. It was possible to establish normal collective interaction and isolate system-dependent parts at the language level. Continuing work on the run-in technology, we began to rebuild our tool farm on the go. For a couple of months, we managed to find a working compiler (these were the successors of the Wirth system for the PDP-11: M22 and M23 for the RT-11). I liked the system, the only thing that disappointed is the not very successful implementation of the object code generator. Even for the sake of a beautiful idea, we could not afford to squander system resources.

The team implemented a simple assembly method for inserts, identified critical procedures, after which they were copied manually in assembler "... It only remained to deceive the linker protection and write a small program that directly from the listing in the codes put the" optimized "procedures in the appropriate place and corrected all checksums to ensure the integrity of the object code. Everything worked like a clock. "


Alexey Nedorya and Vladimir Filippov at the Kronos 2.6 workstation

The works were carried out on a machine with 96 Kbytes of RAM, with a single external memory were floppy disks (480 Kbytes). Since programming further in assembler was “difficult”, Nedorya, Kuznetsov and Tarasov started writing the compiler, it took 2 weeks, the size of such a compiler was 3 thousand lines in assembler. “I don’t know how the rest,” emphasizes Nedorya, “but I still consider that compiler for Kronos to be one of my best developments.” The team began to create the operating system Excelsior.
For Excelsior OS, the prototype was UNIX OS. She was popular at the time. True, the final version, which was written entirely in Modula-2, was called Excelsior iV (imaginary UNIX System V). It was a multi-user, multi-tasking, built on the principle of dynamic loading. 15 people worked on the creation of the Excelsior operating system, Dmitry Kuznetsov was involved in the development of the file system, and Alexei Nedorya worked on the core.

In 1986 Vasekin left the group and Vladimir Filippov took his place. By 1988, the group numbered almost 20 people.

In 1987, the Kronos-2.5 and Kronos-2.6 modifications were produced. SLE of the Institute of Cybernetics of the Academy of Sciences of Estonia, a radio factory in Izhevsk, a plant in Leningrad, several enterprises in Novosibirsk, Berdsk, Chisinau, Perm were producing this family of processors, Finnish 16-bit computers of the ELORG-DATA series were modernized, later a 64-bit arithmetic co-processor was developed .

And so, Kronos is the common name for a family of 32-bit processors that were designed to create micro and mini-computers, the data processor architecture is focused on supporting high-level programming languages, and this allowed to implement the latest concepts in software development and use COMPUTER.

Processor family Kronos 2.X

The 2.X family includes three designs: 2.2, 2.5, 2.6. Kronos processors were produced by experimental batches mainly for the purpose of building tool machines for creating and debugging software. The main application was found by Kronos 2.6 processors in the small-scale production of the Kronos-2.6WS Workstation.


Workstation Kronos-2.6WS

Processors of the 2.X family have one instruction set, differ in their internal functional arrangement, speed and design. The processors are fully software compatible, the firmware control unit implements the logic of operation of all units. “The two data buses combine an arithmetic logic unit, a block of registers, a fast hardware stack of 7 words, a device for selecting commands and input / output. The dual-bus internal structure of the processors allows performing binary operations on the stack (addition, subtraction, logical AND, OR, etc.) in a single clock cycle. Thus, most commands are executed in a single clock cycle, which meets the basic ideas of the RISC architecture. Firmware management simplifies the design of processors and makes it possible to implement complex commands such as a procedure call. ” ( Architecture of processors of the Kronos family )


RAM Kronos M256.2


processor Kronos P2.1


processor Kronos P2.2

Kronos 2.2 - the first implementation of the above architectural concepts. The processor is designed as a motherboard in the design of the computer Electronics-60, fully compatible with all devices that support the communication protocol on the Q-bus 22 bus, operates with 32-bit words. The bus is 16-bit, so access to the data word in memory occurs in two accesses via the Q-bus 22 bus. ALU Kronos 2.2 is 20-bit. Address arithmetic is processed in one clock cycle, and data is processed in two clock cycles, the processor is located on one board.


processor Kronos P2.5

A significant difference Kronos 2.5 is the presence of local memory of 0.5-2 MB - depending on the used chips. The remaining memory is on the Multibus-1 bus (up to 1 MB). Kronos 2.5 is fully 32-bit, made in the form of two boards in the Intel construct. The processor clock frequency is 3 MHz, performance is 1 million simple operations per second over the stack.


processor Kronos P2.6

Kronos 2.6 differs in design and flexibility of reconfiguration for a specific application, it can be built into a separate mini-computer, into a multiprocessor complex, board size 233.3 x 220 mm (E2) - processing circuit board (ALU, stack, registers) firmware control, local memory board (0.5-2 MB), I / O bus adapter card. The devices are combined with a local synchronous 32-bit bus, to which memory cards, an interprocessor communication adapter, a controller to the local network and a magnetic disk drive, a bitmap display code card, an arithmetic calculator, and other devices can be added, the processor clock frequency is 3 MHz, performance - 1.5 million operations per second on the stack.



From the life of the team: "... at the Kronos 2.6 workstation, three users could work at the same time. Since the people in the group were much larger, they had to work in shifts around the clock. The night shifts were loved by Leopold: he sat until morning, and then around eight to take the child to the kindergarten. In the morning the next shift was catching up.

We arrive one morning in the morning, on the keyboard is a note from Leopold. On the punch card in large block letters it says: “Don't touch! SYSTEM BUCHET! ”Nobody knew the English word“ buchet ”. Began to look in the dictionary Muller. It was clear that the word was written incorrectly, but in what place did he twist it and what did he mean? After lunch, having slept off, the hero of the occasion came. It turned out that he wanted to convey to us that nothing can be touched as the SYSTEM module hangs. "


Kronos 2.6 WS. Experimental Workstation Model











As mentioned earlier, computers with Kronos 2.2, Kronos 2.5 and Kronos 2.6 processors were running the Excelsior operating system, which was designed to solve a wide range of tasks. The Excelsior OS was created in response to the following principles - openness of the system, modularity, integrability of results, and user-friendly interface. All Excelsior OS software is focused on multi-process, multitasking and multi-user applications. The modular architecture made it possible to use Kronos processors both in embedded real-time systems and in supermini computers. The ease of programming made Kronos indispensable in applications that required constant software development and change.

Research Project MARS (Modular Asynchronous Developed Systems)


In 1983, it became known that a project was being carried out in Japan to create computers of the fifth generation, in which emphasis was placed on a significant increase in the "intelligence" of the systems being created. The project attracted the attention of both the US and European countries, and proposals for the creation of alternative projects began to take shape. In the USSR, they undertook to assess the Japanese project and propose a concept that is real in our conditions. To this end, a group of specialists in computer architecture and software was created, headed by Kotov, and many experts were involved. By the beginning of 1985, the team was able to gather, prepare and coordinate the necessary documents, in April, the Temporary Scientific and Technical Team Start began work.

Alexander Marchuk, deputy head of the All-Union Scientific and Technical Committee Start:
I remember well that there were no serious disagreements, and even more conflicts. There was a creative atmosphere, scientific analysis, respect for the opinions of others. In the report, very little was written about the Japanese draft, whose shortcomings did not even want to be criticized. The future showed that we were right and little came out of that Japanese “miracle”. By the way, the leading Western countries responded to the “Japanese challenge” with national-level programs, and the results of the Americans and Europeans turned out to be much more significant later. The enthusiasm and creative atmosphere of our working group fueled the feeling of the beginning of a great creative work.

A few words about financing, 12 million rubles were allocated for three years, and more than a million dollars in foreign currency for the purchase of tool computers.


One of the racks of the supercomputer MARS-M, 1989

Kronos has become the basic processor for the MARS computing system created by the Start team. In Start Kronos was brought to the industrial design, produced in small batches. A microprocessor was developed.

MARS computing element had an arbitrary number of neighbors. The main building block was the Kronos processor (MARS-T). The goal of the MARS-T project was to create a network of processors that would be connected by fast channels. The memory in the system was only local.
The layout of the MARS-T consisted of four Kronos-2.6 processors connected by channels. Additional commands have been added to the processors for receiving / transmitting data from the channels. The Excelsior iV OS with a modified kernel was loaded onto one machine (the host), and a small specialized core was loaded on all the others.

Later there was the SOCRAT project, led by I. V. Pottosin, and some members of the Kronos Research Group were included here. The project involved the creation of cross-development tools for onboard software of Russian satellites.

After the collapse of Suz, government funding for research projects ceased and, alas, as early as 1991, the Start project was almost completely phased out.

A new era of private business has begun. Members of the Kronos Group have created several enterprises. Application programmers gathered in the company ProPro Group, began to work on the creation of drawing and design CAD bCAD. The system engineers created the xTech company and worked on the creation of programming tools, mainly in the Modula-2 and Oberon-2 languages.


New kronos


A. Denisov, A. Seryukov, E. Tarasov

Source: https://habr.com/ru/post/394577/


All Articles