Transputers: The Multiprocessor Revolution That Never Happened

At the very beginning of the 1980s, as many times in later years, there was an opinion that conventional processors had reached the limit of their performance. At least then, there were all the prerequisites for this: the technologies available at that time no longer allowed placing more logic circuits on a single crystal. Traditional computers with CISC architecture approached the limit of their computing capabilities, and it was unclear whether it could be overcome. It was then that transputers were born – chips with a fundamentally new architecture, which was immediately dubbed a scientific and technical breakthrough, a revolutionary development and the future of computer technology. Our story today is about transputers themselves and how their fate turned out.

Developers

The inventor of transputers is the British company INMOS, whose headquarters were located in the city with the beautiful name of Bristol. The company was founded in 1978 as part of the British government's efforts to develop the domestic semiconductor industry. The government, through the National Enterprise Board (NEB), allocated 50 million pounds sterling: this investment was seen as a strategic step designed to ensure the competitiveness of the UK in the rapidly growing global electronics industry. The main task that the founding fathers – Ian Barron, Richard Petritz and Paul Schroeder – set for themselves was to challenge the dominance of American and Japanese manufacturers in the British semiconductor market.

Ian Marchant Barronan engineer with a background in computer architecture, was the driving force behind INMOS. He had previously worked at Elliott Brothers and Computer Technology Limited, where he developed a transistor computer Elliott 803 and a 16-bit computer built on emitter-coupled logic Modular One. INMOS was based on parallel processing, an approach that Barron believed would revolutionize computing by overcoming the limitations of traditional serial processing on existing processor architectures. Richard Petritz, one of the company's founders, was a seasoned semiconductor expert who brought valuable experience from his time at RCA and General Electric that would prove useful in later INMOS projects.

INMOS's first products were static random access memory (SRAM) chips, followed by dynamic RAM and EEPROM. But the company's crowning achievement was the transputer, which propelled it to the top of the UK semiconductor market.

The Birth of the Transputer

Since the technical capabilities of the processors that existed in the early 80s were already close to being exhausted, it was believed that the only way forward was through greater use of parallelism, that is, the use of several processors that would work together to solve problems simultaneously. Previous generations of microprocessors did not imply this type of application, so the industry needed new architectures that could do it. Increasing the clock frequency of existing chips no longer led to an increase in performance, which was especially critical for applications that required high-performance computing. Ian Barron rightly believed that in the future, parallelism and multitasking would be supported by all operating systems.

The transputers, designed from scratch at INMOS, were microprocessors, each with its own built-in memory and serial communication channels for exchanging data with other transputers, allowing them to directly communicate with each other. This architecture theoretically made it possible to design systems ranging from servers and workstations with a small number of processors to supercomputers equipped with hundreds of transputer chips. At the time, this concept was innovative; no one had designed anything like it before INMOS.

The genius of the transputer was its scalability, which allowed developers to create large interconnected multiprocessor systems for purposes such as scientific research and real-time control systems for various equipment.

There was another important factor, economics: adding more processors was potentially much cheaper than using a single, faster processor. The designers believed that a transputer would cost only a few dollars per unit. There were many ways to use the chip: for example, one transputer could be installed as a personal computer's CPU, and another could be installed as the primary disk drive controller on the same machine. In a traditional PC architecture, the disk controller's computing power would be idle when the drive or diskette drive was not being accessed. In contrast, in a transputer system, the idle cycles of any of these transputers could be used for other tasks, greatly increasing the performance of the entire system.

Anatomy of a transputer

Externally, the transputer was little different from other microprocessors of the time: a rectangular ceramic case and metal contacts for connecting to printed circuit boards. The most famous model, the INMOS T414, was packaged in a 32-pin DIL (dual in-line) package, which was a common form factor for microprocessors in the 1980s. However, inside the transputer's case was a complex architecture that distinguished it from its competitors.

Technically, transputers can be classified not even as general-purpose microprocessors, but as microcontrollers, since they had their own RAM and were equipped with almost everything necessary for autonomous operation. A RAM controller and even a microprogram that played the role of a real-time operating system (RTOS) were built into the microcircuit. Thus, the transputer was an early prototype of the then non-existent System-on-Chip (SoC) device.

Each transputer had on-chip RAM of 2 to 4 kilobytes, depending on the model. This local memory was essential for reducing latency in accessing data and minimizing the need to maintain constant communication with external memory. The inclusion of local memory allowed each transputer to work on tasks independently, without relying on shared RAM or buses, which often became a bottleneck in multiprocessor systems.

The chip ran at 20 MHz, which was considered quite high for the time, so much so that the designers were very concerned about the possibility of implementing such a high-frequency clock signal on the board. Therefore, the external clock frequency was much lower: 5 MHz, and a multiplier was used to increase it. The core of the chip used four non-overlapping phases, and the designers could use any combination of them. Therefore, it is possible to state with some approximation that the transputer actually ran at 80 MHz.

The primary tool for managing data transfer was the microcode: instruction opcodes were used as entry points into the read-only memory, and the output from the ROM was transferred directly to the data path. For multi-cycle instructions, the microcode decoded four possible options for the second cycle while the data path was executing the first. The decision as to which of these options would actually be used was made toward the end of the first cycle, allowing for very high performance.

The most unique and innovative feature of the transputers was the serial hardware communication lines, called “os-links.” Each transputer had four high-speed bidirectional serial communication channels that allowed it to communicate directly with other transputers at data rates of 5, 10, or 20 Mbps. Any number of transputers could be linked together via the links (which could extend for tens of meters), forming a single computing farm. However, data transfer between transputers was done in a chain, which inevitably caused delays in large systems. To solve this problem, INMOS developed a zero-latency switch that connected up to 32 transputers (or switches) to even larger networks.

Transputers could be loaded both from memory and via os-link – a special BootFromROM chip pin was used to select the boot source. This was done using a two-byte command from the upper part of the memory, which is usually used to return to the boot code. If the command was not received when power was applied, the chip would wait for data to be received via any network channel. This allowed the creation of multiprocessor devices on which one transputer would always boot from ROM, and then start sending the boot code to other transputers, and would be able to transmit different codes for different chips. For example, a corresponding driver could be loaded in a transputer that functions as a hard disk or disk drive controller on a device.

The transputer had only three data registers and a workspace pointer to a regular instruction-accessible stack of memory. This allowed for very fast context switching by simply changing the workspace pointer to memory used by another process. The instruction set consisted of eight-bit instructions consisting of an opcode and operand nibbles. This made the transputer one of the few commercial processors with the architecture MISC (Minimal instruction set computer).

Parallel computing was provided by a scheduler that could efficiently switch between multiple processes (or “threads”), allowing the processor to handle a complex set of tasks simultaneously. Processes waiting for a connection were automatically suspended while the network circuit completed a read or write, and this idle time was available to other processes. This approach significantly accelerated the chip's operation compared to the software-based multitasking used in other systems.

Occam language
To facilitate the use of parallelism, INMOS developed a special programming language for transputers called Occam, named after William of Occam and his principle of simplicity (Occam's razor). Occam was based on the CSP (Communicating Sequential Processes) model, in which processes exchanged messages over channels, similar to the communication channels of the transputer itself.

Occam allowed programmers to define processes and specify how they interacted with each other, enabling efficient parallel computing. Channel-based interprocess communication became a fundamental part of the language. For example, writing code for device controllers became trivial: even the simplest program could monitor serial ports for I/O and automatically go to sleep when inactive.

Occam uses deterministic behavior whenever possible. In many other systems, nondeterminism (when the timing and order of execution of code elements can vary) is a major source of bugs and complications. Occam's design avoids this by providing strict rules for how processes communicate. Occam's communication model defines processes as independent entities that communicate through channels. Processes do not share state, which avoids many of the pitfalls associated with concurrent programming, such as race conditions.

Like most programming languages, Occam supports sequential execution of statements using the SEQ statement. A sequence of statements is executed in the order in which they appear. Parallelism is expressed using the PAR construct. When multiple processes or statements are placed in a PAR block, they are executed simultaneously, in parallel. Communication between parallel processes in Occam is accomplished using one-way channels. A process can send data to another process over a channel, and the receiving process will wait for the data to arrive. Here is an example of code in which one process sends a value to another process over a channel:

CHAN INT c:        -- объявляем целочисленный канал 'c' 
PAR
  c ! 42           -- Процесс 1 посылает integer-число  42 по каналу 'c'
  INT x:
  c ? x            -- Процесс 2 получает значение из 'c' и сохраняет его в переменной 'x'

Occam was a pioneering language that introduced key concepts in parallel programming that are still relevant today. Its emphasis on simplicity helped it become an effective tool for programming transputers.

The end of an era

Despite their innovative architecture, transputers never achieved widespread commercial success. With the advent of general-purpose processors with multiple cores and the growing dominance of established players such as Intel and Motorola, INMOS found it difficult to maintain a foothold in the market. In addition, the complexity of programming parallel systems and the niche nature of many transputer applications limited their wider adoption.

In 1989, INMOS was acquired by SGS-Thomson (now STMicroelectronics), and transputer development eventually ceased. However, the British legacy lives on. Many of the concepts incorporated into transputers, such as parallelism and distributed processing, influenced the development of multi-core processors, graphics chips, and modern parallel computing technologies.

The article is supported by the team Serverspace.

Serverspace — a cloud services provider that rents out virtual servers with Linux and Windows OS in 8 data centers: Russia, Belarus, Kazakhstan, the Netherlands, Turkey, the USA, Canada and Brazil. To build an IT infrastructure, the provider also offers: creating networks, gateways, backups, CDN services, DNS, S3 object storage.

IT infrastructure | Double the first payment by code HABR

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *