Developer | Compagnie des Machines Bull |
---|---|
Type | Large-scale mainframe computer |
Generation | 2 |
Release date | 1960 |
Introductory price | 10M Francs (1960, about $18M USD in 2023) |
Units sold | 17 |
Operating system | GGZ, GGU |
CPU | Transistorized, distributed and multi-threaded. Up to 25 Processing Units. 24-bit words with 1 to 4 words data types. @ 100 kHz |
Memory | Central memory: 32 kwords (core memory). Up to four drum memory extensions (25 kwords each). |
Storage | Up to 48 magnetic tape readers |
Input | Magnetic tape, punched cards, paper tape, teletypes |
Power | 200-400 kVA |
Dimensions | Typically 3000-4000 sq.ft |
Predecessor | Bull Gamma 3 |
Successor | GE-600 series |
The Bull Gamma 60 was a large transistorized mainframe computer designed by Compagnie des Machines Bull. Initially announced in 1957, the first unit shipped in 1960. It holds the distinction of being the world's first multi-threaded computer, and the first to feature an architecture specially designed for parallelism. [1] [2]
The Gamma 60 spearheaded numerous groundbreaking technologies during the early 1960s, notably in multi-programming, utilizing tools that were still in their nascent stages. Upon its release, its architecture garnered significant attention among machine designers, becoming a subject of study alongside contemporary supercomputers and being cited as an example for progress in computer design. [3] [4]
Despite its innovations, the Gamma 60's large footprint (close to 4000 sq.ft), high cost, energy consumption, and complexity ultimately resulted in limited commercial success, with about only twenty units sold worldwide. Its main competitors included the IBM 7070, 7090, and 7030 "Stretch". [5] The last Gamma 60 remained in service until 1974. [6]
The Gamma 60 marked Bull's entry into core memory, solid-state logic and magnetic tape capabilities. [7] Its architectural core was based on a large, high-speed central memory, with an arbitrator (known as the Program Distributor) responsible for distributing data and instructions to the various units within the computer. The processor was segmented into a central unit and a series of discrete, specialized processing units. This design allowed for the concurrent operation of up to five clusters, each containing five processing units. [8]
Each unit in the computer, whether a processing unit or a peripheral device, operated autonomously and would request data and instructions from the central unit when they became available. Data transmission to and from the processing units occurred through two independent buses—one for transmission and another for retrieval. [4]
The processor operated in a 24-bit parallel configuration, with its primary data types employing one, two, or four words, also referred to as 'catenae', ranging from 24 to 96 bits in width. Simpler and slower external devices often employed an 8-bit parallel logic internally. These devices communicated with the central unit via bit-serial messages for instruction and data transfer requests. All messages were asynchronous, and the machine, through priority classes, was designed to accommodate very high device latencies if necessary, even from an ALU (Arithmetic Logic Unit). [4]
The processor was divided into four kinds of processing elements: [2]
Even though up to twenty-five of those specialized processing units could run simultaneously, only one central unit (functioning as a dispatcher) existed in the machine, which does not classify as an SMP (Symmetric Multiprocessing) architecture.
Given the distribution of processing units across separate cabinets, the choice of a slower clock speed of 100 kHz, half of what was originally envisioned, was aimed at mitigating the impact of propagation delays. Although this imposed a limitation on the performance of individual processing units, Bull's strategy was to counterbalance it by parallelism and the ability to easily add additional processing units. [5] Interestingly, while the Gamma 60 logic was transistorized, the operating voltage of the germanium transistors was too low to counter the impedance of the great distances that could sometimes occur between some cabinets and peripherals. As a result, vacuum tubes had to be used in certain instances to drive the clock and some I/O signals. [9]
In modern terms, the Gamma 60 CPU would be described as a hardware time-sharing central processor for asynchronous parallel processes, using an explicit fork-join parallelism at the instruction level. [4]
The Gamma 60 foreshadowed the architecture of superscalar processors, where the role of its central memory is now partly assumed by caches. Additionally, it shared similarities with EPIC architectures such as Intel Itanium, in that each instruction was its own thread, and the management of execution concurrency and memory access coherence was placed under the responsibility of the programmer. [8] [4]
Central memory was implemented with a stack of core memory with a basic memory cycle of 10 μs, making it the fastest component of the Gamma 60 (in comparison, a fixed point addition required 100 microseconds). Main memory addresses were coded on 15-bits, allowing the central memory to store 32,768 words, or 96 kB.
The memory map was continuous and shared by all units, except for the first 128 bytes which were unit specific and contained a set of local registers. Since central memory had, by far, the lowest latency of all components, it constituted the heart of the Gamma 60. Henceforth, the processing units didn't have working memory besides their registers, instead, the Program Distributor dispatched data and instructions to them by loading pointers to the central memory into their registers. [4]
The 128 bytes memory of each processing unit was implemented using planar core memory and followed the following map: [2]
One exception was the Program Distributor which had its own set of registers.
The peripherals of the Gamma 60 were categorized into four distinct classes based on their latency and performance characteristics. [10]
Class 0 included the fastest and most time-critical peripherals. The Program Distributor favored this class over any other to transfer instructions and data. It consisted of two devices: the Logical Unit (binary ALU) and the operator desk.
Class 1 included the Arithmetic Unit (BCD ALU), the General Comparator and the Transcoder (translation unit).
Class 2 included storage devices, notably:
The magnetic drums acted as large memories with a slower access time than Central Memory (10 milliseconds versus 10 microseconds). Up to four drums could be added to the Gamma 60, each with a capacity of 128 tracks of 200 words (150 kB each). Their memory was not mapped to the main memory namespace but was accessed as would a magnetic tape.
Up to ten specialized I/O processors named Uniselectors could each control up to twelve tape units. However, only 48 tapes units could be connected simultaneously.
Magnetic tapes had a recording density of 200 bits per inch and a 730m or 1100m length. The magnetic tape units used phase modulation rather than NRZ (non-return-from-zero), a technology that had been previously developed for the drum memory of the Gamma 3.
Class 3 included slower recording equipment such as:
Finally, class 4 included the slowest peripherals, such as teletypes and typewriters.
The sequencing mechanism employed by the Gamma 60 encompassed an orchestration of instruction fetching and distribution, execution control, memory access, and inter-process communication. The following sequence details a complete instruction execution cycle: [2]
Programming the Gamma 60 was tedious, as adequate development tools for parallel programming did not exist in those times. High-level languages only appeared two years after the Gamma 60 introduction.
Two kinds of machine languages existed:
Recognizing the need for a high-level language, Bull began the development of a new language for the Gamma 60 called AP3. However, this initiative was eventually abandoned in favor of ALGOL, in which Bull got significantly invested starting in the late 1950s. [13] The ALGOL 60 compiler was eventually released in December 1962. [13]
While Algol solved many complexity issues with programming the Gamma 60, it was ill suited to business applications. Additionally, COBOL did not exist when the Gamma 60 was designed, and was still in its early stages during the computer lifespan. Furthermore, the Gamma 60 used a fork-join model [7] which COBOL had not been designed to accommodate. As a result, developers had no alternative but to use code B for programming the Gamma 60 in business applications. [7]
This absence of advanced high-level tools for breaking down tasks into small concurrent threads meant that most programs only utilized a fraction of the hardware's capabilities. [14]
A complete Gamma 60 instruction was composed of a series of 24-bit words of four types:
A complete instruction must always last with a directive.
The instruction formats could vary depending on the processing unit, and supported direct, relative and indirect memory addressing. The Gamma 60 primarily performed memory operations through load-store operations in the main memory, or used processing instructions to manipulate registers in the processing units. Multiprocessing was achieved with two instructions: cut ("coupure") activated a processing unit by specifying a program address, while simu ("simultané") enabled an asynchronous branch for another unit.
As an example, considering the following expression:
This could be implemented using the following Gamma 60 pseudo-code: [4]
[C] cut to multiplication unit: [A] address (load) b [A] address (load) c [A] address (store) a [D] directive (mult) [C] cut to arithmetic unit: [A] address (load) a [A] address (load) d [A] address (store) d [D] directive (add)
The distribution of instructions across the processing units, as well as the handling of synchronization, was done automatically by the Program Distributor.
An early operating system, GGZ (Gestion Générale Zéro, or General Management version Zero), was developed for the Gamma 60. It was delivered as a compact resident supervisor stored on magnetic tape, containing a bootloader, resource table, error handler and an operator command interpreter. The bootloader was capable of initializing several variables during boot or accept them from the operator. [7]
A more advanced operating system, GGU (Gestion Générale des Unités), was later shipped but remained incomplete as the computer neared the end of its lifespan. GGU introduced features like memory management, enhanced error recovery, and automated job management and scheduling. [11] It was notably used at RTT in Belgium. [6]
Unfortunately, the software tools available in the late fifties and early sixties, such as compilers, operating systems, and debuggers, were still too primitive to fully utilize the capabilities of the Gamma 60. Compilers allowing automatic exploitation of concurrency for an EPIC architecture only emerged in the late 1990s, after a development period that exceeded the entire lifespan of the Gamma 60. [5]
Due to the significant challenges in program development with the crude tools of the times, Bull lost several clients to IBM, whose machines, while single-processor, were simpler and more cost-effective. [15]
About twenty large companies and organizations showed interest in the Gamma 60 in the late fifties and early sixties, although not all of them made a purchase. The unit shipped to AG Vie was the first one manufactured, but encountered reliability issues as some hardware problems were still being discovered and resolved. As the company's patience ran out, the computer was decommissioned prematurely. Gaz de France (now Engie) also expressed interest but later withdrew due to implementation and operational complexities. The contract was eventually awarded to the IBM 7070. Other clients are listed in the table below: [15]
Client | Country | Order year | Commissioning year | Decommissioning year | Successor |
---|---|---|---|---|---|
AGVie | France | 1957 | 1960 | 1962 | Gamma 30 |
EDF | France | 1957 | 1960 | 1964 | IBM 7090 |
CNEP (now BNP Paribas) | France | 1957 | 1961 [16] | 1969 | GE 600 |
Union | France | 1957 | 1963 | 1969 | GE 600 |
SNCF | France | 1958 | 1960 | 1966 | |
RTT | Belgium | 1958 | 1961 | 1974 | Siemens 4004 |
Urbaine Seine | France | 1959 | 1961 | 1970 | GE 600 |
GMF | France | 1959 | 1962 | 1973 | GE 615 |
Credito Italiano | Italy | 1960 | 1961 | Unknown | |
CEA | France | 1960 | 1962 | 1964 | CDC 3600 |
Banca Lavoro | Italy | 1960 | 1962 | Unknown | |
Printemps | France | 1961 | 1962 | 1965 | |
HBNPC | France | 1961 | 1963 | 1970 | |
TLF | France | 1962 | 1964 | 1971 | |
Mitsubishi | Japan | 1963 | 1965 | 1971 | GE 635 |
RTT B | Belgium | 1964 | 1966 | 1974 |
The Régie des Télégraphes et Téléphones, later known as Belgacom and now Proximus, boasted one of the largest Gamma 60 installation, featuring an average of twenty Processing Units. [17] The installation spanned two floors: the lower floor housed a 400 kVA alternator that supplied stabilized current to the computer, along with robust air conditioning systems to maintain the heat-sensitive germanium electronics at a constant 18 °C. The upper floor was partitioned into three rooms—one for the mainframe, another for the operator console and tape readers, and the last room for card punches and readers. [6]
The Gamma 60 that remained in service the longest was also at RTT, where it operated continuously for 13 years. The decision to replace its two Gamma 60 systems in the mid-1970s with several Siemens 4004 computers was politically motivated, as the Belgian government had established a five-year contract linking their information systems to Siemens and Phillips. [6]
Bull committed significant resources to the development of the Gamma 60, even though the practical utilization of its architectural innovations would not become feasible until the 1980s or even the 1990s, greatly impacting its commercial success. [8] The challenges it faced in the market led to financial difficulties that hindered the creation of a more accessible, scaled-down version suitable for smaller companies. Instead, the mid-range Gamma 30 transitioned to a licensed version of the simpler and more traditional RCA 301 computer, which, while successful in competing with the IBM 1401, could not capitalize on the innovations of the Gamma 60. [18]
In 1963, Bull was eventually purchased by General Electric, and the primary successor to the Gamma 60 became the GE 600 family starting in 1965.
No surviving specimens of the Gamma 60 exist today, save for some of its components displayed in certain museums. The NAM Computer Museum in Namur, Belgium, showcases a detailed scaled model of the Gamma 60 as it appeared at RTT. The Gamma 60 was also featured in the Jean-Luc Godard film Alphaville (1965), portraying the antagonist Alpha 60 computer. [19]
No Gamma 60 emulator is known to exist as of 2024 [update] .
The central processing unit (CPU), also called a central processor, main processor, or just processor, is the most important processor in a given computer. Its electronic circuitry executes instructions of a computer program, such as arithmetic, logic, controlling, and input/output (I/O) operations. This role contrasts with that of external components, such as main memory and I/O circuitry, and specialized coprocessors such as graphics processing units (GPUs).
The Data General Nova is a series of 16-bit minicomputers released by the American company Data General. The Nova family was very popular in the 1970s and ultimately sold tens of thousands of units.
The 8086 is a 16-bit microprocessor chip designed by Intel between early 1976 and June 8, 1978, when it was released. The Intel 8088, released July 1, 1979, is a slightly modified chip with an external 8-bit data bus, and is notable as the processor used in the original IBM PC design.
The Intel 8088 microprocessor is a variant of the Intel 8086. Introduced on June 1, 1979, the 8088 has an eight-bit external data bus instead of the 16-bit bus of the 8086. The 16-bit registers and the one megabyte address range are unchanged, however. In fact, according to the Intel documentation, the 8086 and 8088 have the same execution unit (EU)—only the bus interface unit (BIU) is different. The 8088 was used in the original IBM PC and in IBM PC compatible clones.
In processor design, microcode serves as an intermediary layer situated between the central processing unit (CPU) hardware and the programmer-visible instruction set architecture of a computer, also known as its machine code. It consists of a set of hardware-level instructions that implement the higher-level machine code instructions or control internal finite-state machine sequencing in many digital processing components. While microcode is utilized in Intel and AMD general-purpose CPUs in contemporary desktops and laptops, it functions only as a fallback path for scenarios that the faster hardwired control unit is unable to manage.
The PDP-8 is a family of 12-bit minicomputers that was produced by Digital Equipment Corporation (DEC). It was the first commercially successful minicomputer, with over 50,000 units being sold over the model's lifetime. Its basic design follows the pioneering LINC but has a smaller instruction set, which is an expanded version of the PDP-5 instruction set. Similar machines from DEC are the PDP-12 which is a modernized version of the PDP-8 and LINC concepts, and the PDP-14 industrial controller system.
In computer science, an instruction set architecture (ISA) is an abstract model that generally defines how software controls the CPU in a computer or a family of computers. A device or program that executes instructions described by that ISA, such as a central processing unit (CPU), is called an implementation of that ISA.
The IBM 704 is the model name of a large digital mainframe computer introduced by IBM in 1954. It was the first mass-produced computer with hardware for floating-point arithmetic. The IBM 704 Manual of operation states:
The type 704 Electronic Data-Processing Machine is a large-scale, high-speed electronic calculator controlled by an internally stored program of the single address type.
The IBM 650 Magnetic Drum Data-Processing Machine is an early digital computer produced by IBM in the mid-1950s. It was the first mass-produced computer in the world. Almost 2,000 systems were produced, the last in 1962, and it was the first computer to make a meaningful profit. The first one was installed in late 1954 and it was the most popular computer of the 1950s.
In the history of computer hardware, some early reduced instruction set computer central processing units used a very similar architectural solution, now called a classic RISC pipeline. Those CPUs were: MIPS, SPARC, Motorola 88000, and later the notional CPU DLX invented for education.
In computer science, computer engineering and programming language implementations, a stack machine is a computer processor or a virtual machine in which the primary interaction is moving short-lived temporary values to and from a push down stack. In the case of a hardware processor, a hardware stack is used. The use of a stack significantly reduces the required number of processor registers. Stack machines extend push-down automata with additional load/store operations or multiple stacks and hence are Turing-complete.
The APE(X)C, or All Purpose Electronic (X) Computer series was designed by Andrew Donald Booth at Birkbeck College, London in the early 1950s. His work on the APE(X)C series was sponsored by the British Rayon Research Association. Although the naming conventions are slightly unclear, it seems the first model belonged to the BRRA. According to Booth, the X stood for X-company.
In computing, a word is the natural unit of data used by a particular processor design. A word is a fixed-sized datum handled as a unit by the instruction set or the hardware of the processor. The number of bits or digits in a word is an important characteristic of any specific processor design or computer architecture.
In computer architecture, 24-bit integers, memory addresses, or other data units are those that are 24 bits wide. Also, 24-bit central processing unit (CPU) and arithmetic logic unit (ALU) architectures are those that are based on registers, address buses, or data buses of that size.
The CDC 6000 series is a discontinued family of mainframe computers manufactured by Control Data Corporation in the 1960s. It consisted of the CDC 6200, CDC 6300, CDC 6400, CDC 6500, CDC 6600 and CDC 6700 computers, which were all extremely rapid and efficient for their time. Each is a large, solid-state, general-purpose, digital computer that performs scientific and business data processing as well as multiprogramming, multiprocessing, Remote Job Entry, time-sharing, and data management tasks under the control of the operating system called SCOPE. By 1970 there also was a time-sharing oriented operating system named KRONOS. They were part of the first generation of supercomputers. The 6600 was the flagship of Control Data's 6000 series.
In computer architecture, 16-bit integers, memory addresses, or other data units are those that are 16 bits wide. Also, 16-bit central processing unit (CPU) and arithmetic logic unit (ALU) architectures are those that are based on registers, address buses, or data buses of that size. 16-bit microcomputers are microcomputers that use 16-bit microprocessors.
In computer architecture, 60-bit integers, memory addresses, or other data units are those that are 60 bits wide. Also, 60-bit central processing unit (CPU) and arithmetic logic unit (ALU) architectures are those that are based on registers, address buses, or data buses of that size.
In computer architecture, 1-bit integers or other data units are those that are 1 bit wide. Also, 1-bit central processing unit (CPU) and arithmetic logic unit (ALU) architectures are those that are based on registers of that size.
The Nicolet 1080 computer was the successor of the Nicolet 1070/PDP-8 computer, released in 1971 by Nicolet Instrument Corporation, which operated between 1966 and 1992 in Madison, Wisconsin. As a part of a data processing mainframe, model 1080 allowed NMR spectrum analysis by the use of fast Fourier transform (FFT) algorithms. The processing of big amounts of data at a fast rate was possible thanks to the uncommon 20-bit architecture, which was a significant performance advantage over other systems based on 8 and 16 bits architectures.
The Gamma 3 was an early electronic vacuum-tube computer. It was designed by Compagnie des Machines Bull in Paris, France and released in 1952.
My design duties on the 1604 had grown to include supervision of an increasing number of engineers. I escaped the turmoil briefly to attend a seminar and short course at UCLA concerned with giant computers. The seminar reviewed such machines as STRETCH, LARC, ATLAS, ILLIAC II, and GAMMA 60.
{{cite web}}
: CS1 maint: multiple names: authors list (link)