Fortælling/RC4000, RC8000 and RC9000

Fra DDHFwiki
Spring til navigation Spring til søgning

These notes is an attempt to briefly describe the development from the first RC4000 to the RC9000 computer, which was still in production in 1996.



Although originally designed for process control, the RC4000 was soon after its "birth" in 1967 turned into a general purpose computer system. Peripheral devices that you expect to find on such a system were added: terminals, disks, magnetic tape stations etc. Most of the controllers for the peripheral devices were placed in a separate "I/O Controller" cabinet of the same design as the CPU cabinet.

The original RC4000 design included an operator console with a typewriter terminal, using a parallel interface to the CPU. "Parallel" in this context means one electrical connection per character in the character set, in each direction!

For connection of terminals through asynchronous RS232 connections, a so-called telemultiplexer (TMX) was developed. The TMX featured 16 "low speed" channels for teletype terminal and the like. From the beginning, the maximum data rate was 200 Baud, but fortunately, the data rates available could easily be changed by some simple rewiring of the TMX. Data rates as high as 4800 Baud has been obtained on the low speed channels.

The TMX also included 4 "medium speed" channels, specified for data rates up to 2400 Baud. These channels were mainly intended for block-oriented, synchronous communication and were not very usefull in connection with normal data terminals.

The very first RC4000 included a magnetic drum as its only backing storage device. A drum (192 kBytes) was also included in the later RC4000 systems, but the main backing storage were magnetic disk storages. CDC Disk Storage Modules were used; in the early days a type with 6 MBytes capacity (RC433); later on, a 54 MBytes (RC4819) drive became standard. The latter was connected through an RC-made Disk FIle Controller (DFC403), being capable of connecting up to 6 disk drives to the RC4000.

Magnetic tape stations were the widely used Ampex TM7, named RC747 (7-track) and RC749 (9-track) by RC.

RC4000 Line Printer (RC610) was delivered by Data Products - a 1000 LPM drum printer, weighting some 400 kg. RC designed the controller electronics that was built into the printer. The "printer cable" on RC4000 is simply an extension of the internal low-speed I/O data channel.

Punched cards were a must of the time. The Card Reader (RC405) came from CDC. An external 3- phase transformer was needed to convert the european 3x380V mains voltage to the 3x160V needed by this US-made peripheral (other peripherals were delivered in euopean versions by their vendors).

Other peripherals included a graphic plotter, various graphic displays and, of course, equipment dedicated for process control applications (analog and digital I/O etc).

The last RC4000 installation under regular technical maintenance by RC was (or rather, is) placed at the Technical University of Denmark. After 13 years of faithfull duty, its job was taken over by an RC8000 in 1983. The complete RC4000 system was installed in the premises of "Polyteknisk Radiogruppe" (PRG), a student society at DTU for people with interest in electronics and computing. Today (1996), the RC4000 in PRG is still fully operational.

Only one component of the original design did not last the lifetime of RC4000: The console typewriter (an IBM printball terminal) was worn beyond any chance of repair on several RC4000's around 1980. A single circuit board with an UART was designed as a replacement for the original "Console I/O Controller", and a TeleType matrix printer terminal was fitted instead of the IBM typewriter. Although this solution works well in the technical sense, it was a pity for the elegant design of the operator console as a whole.


In the mid-seventies, it was time to design the successor of RC4000. Advances in integrated circuit technology had made RC4000 technically old-fashioned.

The successor was named RC8000. Where the RC4000 CPU was made up of hundreds of rather small circuit boards, the technology now allowed to design the RC8000 CPU on only a few, larger (appr. 40x40 cm) boards.

Before the RC8000 was designed, RC introduced a so-called minicomputer system, named RC3600. The RC3600 CPU is an enhanced copy of the Data General "Nova" minicomputer (RC represented Data General in Denmark in the early seventies, and sold Nova systems under the name RC7000). The RC3600 is used as Front End Processor in the RC8000 system, controlling all peripheral devices except the disks. So the only peripheral device controllers that are connected directly to the RC8000 CPU is a "Disk Storage Channel" (DSC) and a "Frontend Processor Adapter" (FPA). These controllers are "semi-intelligent" microprogrammed devcies, capable of executing simple, so-called Channel Programs stored in RC8000 main memory.

The cabinet and chassis system is also shared with RC3600. The circuit boards are mounted in card cassettes, each casssette housing up to 5 boards. Each cassette has built in power supplies that are fed directly from the mains. The cassettes making up a complete RC8000 system are interconnected with various bus cables, and mounted in one or more 19" frames. All in all, a considerably more compact design than the RC4000.

(As a curiousity, a software simulator making it possible to execute RC4000 code directly on the RC3600 16-bit CPU was developed. The RC4000-simulating RC3600 was marketed as RC6000, but performance was too poor for any serious application. The main sales argument was that all components of RC6000 could later be part of an RC8000 system, once the RC8000 CPU became available).

The main requirement for RC8000 was that it should be software compatible with RC4000 at the application level. This is achieved by sharing the same basic architecture, as well as the same instruction set, except for monitor control. The implementation of memory protection, for instance, is completely different from RC4000. Also, much of context switching involved in monitor calls and interrupts are handled directly by the microcode on RC8000. Still, unless you are working directly on either the monitor code or on operating system code, you probably don't have to bother about the differencies from RC4000.

Several RC8000 CPU models were designed. The first one was the Model 45, taking up 4 circuit boards and performing 0.5 MIPS - appr. twice the performance of RC4000. Later on came a low-end, single board CPU (Model 15), and a 2-board replacement for the '45: Model 50. Adding a cache memory board to Model 50 turned it into a Model 55, performing 1 MIPS. Also, a Floating Point Unit (FPU) to enhance the performance in real number calculations were introduced. Except for Model 45, all RC8000 CPU's are based on AMD's 2901 Bit Slice processors.

Some 10 years after the first RC8000 CPU was designed, the '55 CPU was modified in order to support multiprocessor systems. The RC8000-MP concept features up to 4 CPU's sharing memory and bus system. The MP-CPU also featured two new user-mode instructions: One for moving whole data blocks in main memory, and one dedicated to array index checking (unfortuately, the latter suffered from a one- off error in the microcode). For some reason, none of these instructions were implemented in the later RC9000-10.

The RC4000 was limited to a main memory size of 128 KWords (384 KBytes). RC8000 was designed to support the full memory size allowed by the architecture: 4 MWords (12 MBytes). The first memory boards available were 32 kWords magnetic core stores, but later 64 kWord semiconductor memory boards became standard. In 1983, 256 kWord boards became available, and later again, 1 MWord boards, making it practically possible to reach the maximum memory size of 4 MWords.

As for RC4000, the disk drives for RC8000 were supplied by CDC, with capacities up to 248 MBytes. Magnetic tape stations (connected through RC3600) came from Pertec and Wangco.

A network concept, RCNET, was defined from the beginning, making it possible for a network of RC8000 systems to share each others resources. The network is physically made up of interconnects between the RC3600 frontends. It is also possible for two RC8000 CPU's to share the same RC3600 Frontend.

(Steps were even taken to connect RC4000 to RCNET. A "Synchronous Communication Controller" (SCC) was developed for RC4000, and the required drivers were written. The maybe only SCC ever built now resides in Polyteknisk Radiogruppe (see above under RC4000), but despite a huge research effort, it has not been possible to reveal the details about the use of the SCC).

Even after the introduction of RC8000, several Gier installations were still in service. To facillitate migration from Gier to RC8000, a hardware Gier emulator was developed for RC8000. Similarly, a CDC 1604 emulator was designed.

In 1984, the RC product range was extended with a desktop computer, RC Partner, and a small, multi- user, UNIX-based system, RC39. Ethernet had become the standard LAN medium, and of course, the 3 families of RC computers had to interconnect via Ethernet. The RC8000 LAN controllers share components with the Multibus based RC39 system. To interface the Multibus system to RC8000, a new Intel 80186-based intelligent controller design was employed. This "LAN-controller-controller" is called an IFP ("InterFace Processor"?).

The Intelligent Controller concept was also used for a new integrated disk/tape controller, called the "Intelligent Device Adapter" (IDA). The IDA connected fixed CDC disk drives of up to 415 MBytes (larger drives were added later). Using the same controller for disk and tape made it possible to use high- density, high-speed tape drives in streaming mode, making disk to tape backups almost as fast as disk to disk copying on the old systems with removable disk kits.

With the LAN controller and the IDA, it is possible to build a very compact RC8000 without the RC3600 Frontend. Also, the new IDA disks were mounted in the same cabinet as the CPU and controllers, relaxing the requiremets for a special computer room with double floor etc.


In the last half of the eighties, UNIX became an increasing demand of the computer market. RC decided that the computer to replace RC8000 should support UNIX as well as being capable of running RC4000/RC8000 code. A hybrid solution with two different processors running concurrently in same main memory, and sharing the same peripherals was considered, but rejected. The RC9000 consists of a common hardware platform, where all components except the CPU circuit boards are common to the "UNIX-RC9000" and the "RC8000-compatible" RC9000. The latter is known as RC9000-10. RC9000 was introduced on the market around 1987-88.

The RC9000-10 CPU is implemented on 2 circuit boards, of which one is a floating point unit. The main part of the CPU is built around a gate array ASIC. CPU performance is appr. 4 MIPS, and just like RC8000-MP, up to 4 processors can be combined in a tightly coupled configuration. Up to 8 MWords of main memory is supported; the upper half of which can be used as a "RAM disk", speeding up various tasks.

Functionally, the RC9000-10 CPU is very similar to RC8000. Of course, the user-mode part of the instruction set is inherited back from RC4000. Compared to RC8000, all facillities that is not used by the monitor (e.g. the Escape facillity) has been removed. Some further simplification, for instance on the interrupt system, was also done. In a sense, some details of the design more resemble RC4000 than RC8000.

The RC9000 platform includes a System Support Processor (SSP), taking care of autoloading the CPU and controllers etc., and connecting the operator console terminal. Also, the SSP loads the CPU microcode from a floppy disk into RAM.

Apart from the SSP, only 2 kinds of I/O controllers are found on RC9000: the disk/tape controller (IOC), and the LAN controller (DLC). These are logically similar to the RC8000 IDA and LAN controllers, respectively. The CPU boards, memory boards, SSP, IOC's and DLC's are installed in a chassis housing up to 16 circuit boards. Fixed disks and tape drive(s) are mounted in the same cabinet.

The UNIX version of RC9000 consists of one or more loosely coupled Processing Units (PU's). Each PU has two tightly coupled MIPS R2000 or R3000 RISC processors. The key word of the design is Fault Tolerance, supported by a special UNIX version called TX (Transaction eXecutive), which was acquired from a third-party vendor. Despite the interesting technical design, the UNIX RC9000 did for several reasons not become a commercial success for RC.

System software

The Monitor

The world famous monitor design by Per Brinch Hansen is described in the manual "RC4000 Multiprogramming System", edited by PBH. The manual covers what should later be known as "Monitor 1".

"Monitor 2" took over around 1971. The main difference from Monitor 1 is the handling of console I/O. The concept of console buffers are removed, and console processes resemble other external processes in the sense that they never send messages themselves. A special system process called "operator" is introduced for interface with the interrupt key function. The "att " prompt was introduced with Monitor 2.

The backing storage system of Monitor 1 and Monitor 2 suffered from some weaknesses: Areas (i.e. files) had to be placed in contiguous segments on the storage device, meaning that an area could never be extended beyond its initial size. All area names in the catalog were global, i.e. names had to be unique in the whole system. And finally, dynamic mounting and unmounting of disks was not supported.

These deficiencies were removed in Monitor 3, released around 1973. The allocation system for backing storage introduced in Monitor 3 is very similar to the FAT system in MS-DOS (but remember that this is almost 10 years before the first IBM PC!). By attatching number intervals, called "bases", to catalog entries and process names, and defining rules for visibility and file protection, the file system now supported multi-user operating systems in a much better way. The base concept is a very unique feature; however, a detailed explanation is beyond the scope of these notes. Mounting and unmounting of disks were made possible by placing so-called auxiliary catalogs on each backing storage device.

Also in Monitor 3, the rules for claiming of message buffers were changed, thereby making it possible to introduce a "regret message" monitor call. Usefull, among other things, for cleaning up after programs that were terminated with errors. Another Monitor 3 contribution is "pseudo-processes", making it possible for an internal process to create alias names for itself and thereby e.g. simulating several external processes at the same time. And finally, the "operator" process from Monitor 2 disappeared again, and "attention messages" were introduced instead.

Since Monitor 3 for RC4000, very little has changed from an external point of view (a lot of internal changes has been carried out to port the monitor from RC4000 to RC8000 and RC9000-10, due to the changed protection system, I/O system, new controllers etc). Of course, a period of more than 20 years do not pass without new functions and features being added, but in the great view it's only details. The same binary user program can be run on RC4000 with Monitor 3, and on RC9000-10 - assuming that the program does not deal with mounting of disks or other operating system functions, and does not rely on the format of process descriptions in the monitor (these were changed in the RC8000 monitor in 1983 in order to increase the maximum number of internal processes and the maximum number of catalog entries).

(For the above statement to be true for a compiled Algol program, it should be generated by an Algol compiler version from the years 1976 to 1986 appr. There are three small details that affect compatibility between RC4000 and RC8000/9000-10 at this level. One is the fact that the register dump after internal exceptions take up one more word in RC8000 and RC9000-10 than it does in RC4000. Therefore, programs compiled with a pre-RC8000 version of Algol will only run on RC4000. The second issue is the fact that newer versions of the Algol run-time system uses the special block memory move instruction if it runs on an RC8000-MP. To test the type of processor, a machine instruction (general get) which is not available on RC4000 is used. This problem can be fixed by a simple patch into the runtime system. The third issue is the fact that RC8000 and RC9000-10 systems with more than one CPU require that programs are generated by a compiler supporting multiprocessors. The only difference is that a reference to "current internal process" cannot be read from a fixed memory address on a multiprocessor system, but must be obtained through a monitor call. These technical details are mentioned here only to illustrate just how small the incompatibillities actually are from the 1973 version to today - the latest update of the RC9000-10 monitor took place in late 1994).

Operating systems

The operating system "s", which is integrated with the monitor, hasn't changed much over the years, apart from what is needed to support the monitor and hardware as it has developed. The most usefull enhancement is probably the ability to take input from command files. This feature was introduced at some time in the RC8000 history. Earlier, a "s-usercatalog" was invented.

One RC4000 customer, H.C. Oersted instituttet in Copenhagen, developed a small online operating system with process swapping, called "t", for Monitor 2. Several RC4000 installations used this system, at least for a period of time.

RC designed an operating system written in Algol, for Monitor 2. The system was called BOSS (1). It was hardly finished before it was made obsolete by the introduction of Monitor 3.

With the introduction of Monitor 3, BOSS-2 replaced BOSS-1. BOSS-2 is a very advanced (and complex), batch-oriented operating system, almost completely written in assembler. BOSS-2 was widely used on RC4000 and RC8000, but although it was developed and enhanced during many years, it never became really good for online applications.

In 1978, RC introduced a smaller operating system, aimed especially at online applications on RC8000. The system is called MIPS/TS, and consists of 3 modules: Swopping Online System (SOS), TErminal Module (TEM), and PRInter MOdule (PRIMO). The system was designed to run on RC4000 as well as RC8000, but hasn't been used much on RC4000. In 1987, the TEM module was replaced by TAS, a flexible terminal access control system with programmable menus etc.

File Processor and utilities

The FP command processor has only undertaken minimal development since the very first versions. The FP "notes" were no longer needed after the introduction of Monitor 3, and were thus removed. Some minor enhancements has been added to FP in the time of RC8000.

The library of utility program has grown over the years, including two generations of tape backup systems. In 1986 - at last - a screen oriented text editor became available.


The first version of Algol for RC4000 was "Algol 5" ("Algol 1" was for DASK, "Algol 2" to "Algol 4" were Gier Algol's). A brief view of the development since then:

Algol 6 (appr. 1970) featured "field" data types and records, and the "long" data type (48-bit integer).

Algol 7 extended the language syntax with while-statements and repeat-until loops, and introduced "context records", a mechanism to support multi-user applications.

Algol 8 introduced support for real coroutine programming with the "activity" concept, including separate stacks and a very nice integration with the Algol I/O system.

The current version is called "Algol 8 Version 2". Many other features and enhancements than those mentioned above has been added over the years, and the run-time library has grown similarly.

Database applications are supported by a library of procedures to handle Indexed Sequential Files (the ISQ system), and, built on top of ISQ, the Connected Files (CF) System. The design of the CF system was completed in 1972, and very little has been changed since then. Although the standard disk size was 6 MBytes when the CF-system was designed, it performs excellent on database sizes of several hundred MBytes!

Other languages

A Fortran compiler was developed early in the history of RC4000, implementing a special "RC-Fortran" dialect. A preprocessor, XFORTRAN, offers help on converting standard Fortran-IV programs to RC- Fortran. Fortran programs can use most of the procedures from the Algol run time library.

Much later, a Pascal compiler for RC8000 was developed. The Pascal system uses its own run time system and library, which is not compatible with Algol/Fortran.

Rumours say that a Cobol compiler was also designed for RC8000, but it has not been marketed for a long time.

In a Master Thesis project at the Technical University of Denmark in 1975, the RCMOL (RC Machine Oriented Language) was designed. RCMOL was later used to implement the MIPS/TS operating system.


The RC4000 was designed for process control, and naturally, several systems were sold for that purpose.

"Geodaetisk Institut" (today a part of National Survey and Cadastre in Denmark) has been intensive users of RC4000, RC8000 and RC9000-10. Special hardware devices for enhanced floating point processing were developed for RC4000 as well as for RC8000, especially for GI. Also Meteorologisk Institut (national weather service) used RC4000 and RC8000 as "number crunchers".

Around 1980, RC introduced an integrated business administration system for RC8000, called RC-Mosaik. Several RC8000 systems were sold with this application. The RC-Mosaik system is still in use in what is left of RC's headquarters (today ICL Data).

After the introduction of RC8000, the danish telecom operator Jysk Telefon designed a telephone directory system (you call an operator, give name and address, and get the phone number), called the OP system. This system was further developed by RC and sold in several countries - including USA. One main feature of the OP system is that it works on phonetic representations rather than exact spellings of names etc., thus solving the problem of how to spell a name you hear on the phone. The phonetic representation is only practically possible in languages with rather simple rules for deriving the pronunciation from the spelling. Therefore, this feature cannot be used with english language. The orders in USA were won on speed and reliability.

Another successful application from the later time is RcLib, a system for litterature registration in libraries, with advanced free-text search capabilities. RcLib on RC9000-10 is used by several danish university libraries today (1996).

Lots of other users and applications could be mentioned - in the mid-eighties, some 150 RC8000 systems were in use. Today, the RC9000-10 is kept alive by the OP system (and RcLib). Several RC9000-10 computers were delivered for an OP system in Turkey as late as 1996.

RC4000 software on other platforms

As mentioned in the description of RC8000, a simulated RC4000 (RC6000) was implemented on the RC3600 CPU. Actually, this is not the only effort made to make RC4000 software available on other hardware platforms.

An RC4000 simulator has also been written for one of the computers in Digital's PDP family, with a more usefull performance than the RC6000 concept.

H.C. Oersted instituttet (at the University of Copenhagen) designed their own hardware version of RC8000, called "HC8000".

The author wrote an RC4000 simulator for the PC/DOS platform. On a fast Pentium system, this simulator is faster than a (single-CPU) RC9000-10.