The IBM System/360 (S/360) is a family of computer systems announced by IBM on April 7, 1964, System/360 was the first family of computers designed to cover both commercial and scientific applications and a complete range of sizes from small, entry-level machines to large mainframes. The design distinguished between architecture and implementation, allowing IBM to release a suite of compatible designs at different prices. All but the only partially compatible Model 44 and the most expensive systems use microcode to implement the instruction set, which used 8-bit byte addressing with fixed-point binary, fixed-point decimal and hexadecimal floating-point calculations. The System/360 family introduced IBM's Solid Logic Technology (SLT), which packed more transistors onto a circuit card, allowing more powerful but smaller computers, but did not include integrated circuits, which IBM considered too immature.

System/360's chief architect was Gene Amdahl and the project was managed by Fred Brooks, responsible to Chairman Thomas J. Watson Jr. The commercial release was piloted by another of Watson's lieutenants, John R. Opel, who managed the launch of IBM's System/360 mainframe family in 1964. The slowest System/360 model announced in 1964, the Model 30, could perform up to 34,500 instructions per second, with memory from 8 to 64 KB. High-performance models came later. The 1967 IBM System/360 Model 91 could execute up to 16.6 million instructions per second. The larger 360 models could have up to 8 MB of main memory,

In 1961, IBM assembled a task force to chart their developments for the 1960s, known as SPREAD, for Systems Programming, Research, Engineering and Development. In meetings at the New Englander Motor Hotel in Greenwich, Connecticut, SPREAD developed a new concept for the next generation of IBM machines. At the time, new technologies were coming into the market including the introduction of replacement of individual transistors with small-scale integrated circuits and the move to an 8-bit byte from the former 6-bit oriented words. These were going to lead to a new generation of machines, today known as the third generation, from all of the existing vendors.

"Family" concept

Producing a single system design with support for all of these features, at a price acceptable to low-end customers and with a performance level acceptable to high-end customers, would border on impossible. Instead, the SPREAD concept was based on the separation of the defined feature set from its internal operation, with a family of machines with different performance and different internal designs.

Specifically, depending on the machine, some components might not be directly implemented in hardware, and would instead be completed using small programs referred to as microcode or microprograms. These small programs, or subprograms, would be stored in read only memory (ROM) inside the machine. Some models use microcode in the central processing unit (CPU) to implement instructions while others use only hardware. Some models use cycle-stealing microcode in the CPU to implement I/O channels while others use only hardware in separate units. Today this approach is known as microcode.

This meant that a single lineup could have machines tailored to match the price and performance niches that formerly demanded entirely separate computer systems, where software was specific to each system. This flexibility greatly lowered barriers to entry. With most other vendors customers had to choose between machines they might outgrow or machines that were potentially too powerful and thus too costly. In practice, this meant that many companies simply did not buy computers. Now, a customer could purchase a machine that solved a particular requirement, knowing they could switch models as their needs changed, without losing support for the programs they were already running.), 85 (1969), 91 (1967, anticipated as the 92), 95 (1968), and 195 (1971). The 85 design was intermediate between the System/360 line and the follow-on System/370 and was the basis for the 370/165. There was a System/370 version of the 195, but it did not include Dynamic Address Translation.

The implementations differed substantially, using different native data path widths, presence or absence of microcode, yet were extremely compatible. Except where specifically documented, the models were architecturally compatible. The 91, for example, was designed for scientific computing and provided out-of-order instruction execution (and could yield "imprecise interrupts" if a program trap occurred while several instructions were being read), but lacked the decimal instruction set used in commercial applications. New features could be added without violating architectural definitions: the 65 had a dual-processor version (M65MP) with extensions for inter-CPU signalling; the 85 introduced cache memory. Models 44, 75, 91, 95, and 195 were implemented with hardwired logic, rather than microcoded as all other models.

The Model 67, announced in August 1965, was the first production IBM system to offer dynamic address translation (virtual memory) hardware to support time-sharing. "DAT" is now more commonly referred to as an MMU. An experimental one-off unit was built based on a model 40. Before the 67, IBM had announced models 64 and 66, DAT versions of the 60 and 62, but they were almost immediately replaced with the 67 at the same time that the 60 and 62 were replaced with the 65. DAT hardware would reappear in the S/370 series in 1972, though it was initially absent from the series. Like its close relative, the 65, the 67 also offered dual CPUs.

IBM stopped marketing all System/360 models by the end of 1977.

Backward compatibility

IBM's existing customers had a large investment in software that ran on second-generation machines. Several System/360 models had the option of emulating the customer's existing computer using special hardware

IBM later added features and modified emulator programs to allow emulation of the 1401, 1440, 1460, 1410 and 7010 under the control of an operating system.

The Model 85 and later System/370 maintained the precedent, retaining emulation options and allowing emulators to run under OS control alongside native programs.

Successors and variants

System/360 (excepting the Models 20, 44 and 67) was replaced with the mostly compatible System/370 range in 1970 and Model 20 users were targeted to move to the IBM System/3. (The idea of a major breakthrough with FS technology was dropped in the mid-1970s for cost-effectiveness and continuity reasons.) Later compatible IBM systems include the 4300 family, the 308x family, the 3090, the ES/9000 and 9672 families (System/390 family), and the IBM Z series.

Computers that were mostly identical or compatible in terms of the machine code or architecture of the System/360 included Amdahl's 470 family (and its successors), Hitachi mainframes, the Magnuson Computer Systems M80 range, the UNIVAC 9000 series, Fujitsu as the Facom, the RCA Spectra 70 series, and the English Electric System 4.

The IBM 5100 portable computer, introduced in 1975, offered an option to execute the System/360's APL.SV programming language through a hardware emulator. IBM used this approach to avoid the costs and delay of creating a 5100-specific version of APL.

Special radiation-hardened and otherwise somewhat modified System/360s, in the form of the System/4 Pi avionics computer, are used in several fighter and bomber jet aircraft. In the complete 32-bit AP-101 version, 4 Pi machines were used as the replicated computing nodes of the fault-tolerant Space Shuttle computer system (in five nodes). The U.S. Federal Aviation Administration operated the IBM 9020, a special cluster of modified System/360s for air traffic control, from 1970 until the 1990s. (Some 9020 software is apparently still used via emulation on newer hardware.)

Table of System/360 models

{| class="wikitable sortable sort-under defaultright col1center col8center col9center col10left"

! data-sort-type="number"

! data-sort-type="number" | Announced<br/>

! data-sort-type="number" | Commercial<br />performance<br />(kIPS)

! data-sort-type="number"

! data-sort-type="number"