The IBM System/370 (S/370) was a model range of IBM mainframe computers announced on June 30, 1970 as the successors to the System/360 family. The series mostly maintained backward compatibility with the S/360, allowing an easy migration path for customers; this, plus improved performance, were the dominant themes of the product announcement. In September 1990, the System/370 line was replaced with the System/390.
|Encoding||Variable (2, 4 or 6 bytes long)|
|Branching||Condition code, indexing, counting|
|Floating point||4 64-bit|
|History of IBM mainframes, 1952–present|
The original System/370 line was announced on June 30, 1970 with first customer shipment of the Models 155 and 165 planned for February 1971 and April 1971 respectively. System/370 underwent several architectural improvements during its roughly 20-year lifetime.The 155 first shipped in January 1971.
- 13 new instructions, among which were
- thereby permitting operations on up to 2^24-1 bytes (16 MB), vs. the 256-byte limits on the 360's MVC and CLC;
- SHIFT AND ROUND DECIMAL (SRP), which multiplied or divided a packed decimal value by a power of 10, rounding the result when dividing;:25-26
- optional 128-bit (hexadecimal) floating point arithmetic, introduced in the System/360 Model 85
- a new higher-resolution time-of-day clock:6
- support for the block multiplexer channel:18 introduced in the System/360 Model 85.
All models of the System/370 used IBM's form of monolithic integrated circuits called MST (Monolithic System Technology) making them third generation computers. MST provided System/370 with four to eight times the circuit density and over ten times the reliability when compared to the previous second generation SLT technology of the System/360.
On September 23, 1970, IBM announced the Model 145, a third model of the System/370, which was the first model to feature semiconductor main memory made from monolithic integrated circuits and was scheduled for delivery in the late summer of 1971. All subsequent S/370 models used such memory.
In 1972, a very significant change was made when support for virtual storage was introduced with IBM's "System/370 Advanced Function" announcement. IBM had initially (and controversially) chosen to exclude virtual storage from the S/370 line. The August 2, 1972 announcement included:
- address relocation hardware on all S/370s except the original models 155 and 165
- the new S/370 models 158 and 168, with address relocation hardware
- four new operating systems: DOS/VS (DOS with virtual storage), OS/VS1 (OS/360 MFT with virtual storage), OS/VS2 (OS/360 MVT with virtual storage) Release 1, termed SVS (Single Virtual Storage), and Release 2, termed MVS (Multiple Virtual Storage) and planned to be available 20 months later (at the end of March 1974), and VM/370 – the re-implemented CP/CMS
Virtual storage had in fact been delivered on S/370 hardware before this announcement:
- In June 1971, on the S/370-145 (one of which had to be "smuggled" into Cambridge Scientific Center to prevent anybody noticing the arrival of an S/370 at that hotbed of virtual memory development – since this would have signaled that the S/370 was about to receive address relocation technology). (Varian 1997:p29) The S/370-145 had an associative memory used by the microcode for the DOS compatibility feature from its first shipments in June 1971; the same hardware was used by the microcode for DAT. Although IBM famously chose to exclude virtual storage from the S/370 announcement, that decision was being reconsidered during the completion of the 145 engineering, partly because of virtual memory experience at CSC and elsewhere. The 145 microcode architecture simplified the addition of virtual storage, allowing this capability to be present in early 145s without the extensive hardware modifications needed in other models. However, IBM did not document the 145's virtual storage capability, nor annotate the relevant bits in the control registers and PSW that were displayed on the operator control panel when selected using the roller switches. The Reference and Change bits of the Storage-protection Keys, however, were labeled on the rollers, a dead giveaway to anyone who had worked with the earlier 360/67. Existing S/370-145 customers were happy to learn that they did not have to purchase a hardware upgrade in order to run DOS/VS or OS/VS1 (or OS/VS2 Release 1 – which was possible, but not common because of the limited amount of main storage available on the S/370-145).
Shortly after the August 2, 1972 announcement, DAT box (address relocation hardware) upgrades for the S/370-155 and S/370-165 were quietly announced, but were available only for purchase by customers who already owned a Model 155 or 165. After installation, these models were known as the S/370-155-II and S/370-165-II. IBM wanted customers to upgrade their 155 and 165 systems to the widely sold S/370-158 and -168. These upgrades were surprisingly expensive ($200,000 and $400,000, respectively) and had long ship date lead times after being ordered by a customer; consequently, they were never popular with customers, the majority of whom leased their systems via a third-party leasing company. This led to the original S/370-155 and S/370-165 models being described as "boat anchors". The upgrade, required to run OS/VS1 or OS/VS2, was not cost effective for most customers by the time IBM could actually deliver and install it, so many customers were stuck with these machines running MVT until their lease ended. It was not unusual for this to be another four, five or even six years for the more unfortunate ones, and turned out to be a significant factor in the slow adoption of OS/VS2 MVS, not only by customers in general, but for many internal IBM sites as well.
Later architectural changes primarily involved expansions in memory (central storage) – both physical memory and virtual address space – to enable larger workloads and meet client demands for more storage. This was the inevitable trend as Moore's Law eroded the unit cost of memory. As with all IBM mainframe development, preserving backward compatibility was paramount.
- In October 1981, the 3033 and 3081 processors added "extended real addressing", which allowed 26-bit addressing for physical storage (but still imposed a 24-bit limit for any individual address space). This capability appeared later on other systems, such as the 4381 and 3090.
- The System/370 Extended Architecture (S/370-XA), first available in early 1983 on the 3081 and 3083 processors, provided a number of major enhancements, including: expansion of the address space from 24-bits to 31-bits; facilitating movement of data between two address spaces; and a complete redesign of the I/O architecture. The cross-memory services capability which facilitated movement of data between address spaces was actually available just prior to S/370-XA architecture on the 3031, 3032 and 3033 processors.
- In February 1988, the Enterprise Systems Architecture/370 (ESA/370) was announced. It added sixteen 32-bit access registers, more addressing modes, and various facilities for working with multiple address spaces simultaneously.
Expanding the address space
As described above, the S/370 product line underwent a major architectural change: expansion of its address space from 24 to 31 bits.
The evolution of S/370 addressing was always complicated by the basic S/360 instruction set design, and its large installed code base, which relied on a 24-bit logical address. (In particular, a heavily used machine instruction, "Load Address" (LA), explicitly cleared the top eight bits of the address being placed in a register. This created enormous migration problems for existing software.)
The strategy chosen was to implement expanded addressing in three stages:
- first at the physical level (to enable more memory hardware per system)
- then at the operating system level (to let system software access multiple address spaces and utilize larger address spaces)
- finally at the application level (to let new applications access larger address spaces)
Since the core S/360 instruction set remained geared to a 24-bit universe, this third step would require a real break from the status quo; existing assembly language applications would of course not benefit, and new compilers would be needed before non-assembler applications could be migrated. Most shops thus continued to run their 24-bit applications in a higher-performance 31-bit world.
This evolutionary implementation (repeated in z/Architecture) had the characteristic of solving the most urgent problems first: relief for real memory addressing being needed sooner than virtual memory addressing.
31 versus 32 bits
IBM's choice of 31-bit (versus 32-bit) addressing for 370-XA involved various factors. The System/360 Model 67 had included a full 32-bit addressing mode, but this feature was not carried forward to the System/370 series, which began with only 24-bit addressing. When IBM later expanded the S/370 address space in S/370-XA, several reasons are cited for the choice of 31 bits:
- The desire to retain the high-order bit as a "control or escape bit." In particular, the standard subroutine calling convention marked the final parameter word by setting its high bit.
- Interaction between 32-bit addresses and two instructions (BXH and BXLE) that treated their arguments as signed numbers (and which was said to be the reason TSS used 31-bit addressing on the Model 67). (Varian 1997:p26, note 85)
- Input from key initial Model 67 sites, which had debated the alternatives during the initial system design period, and had recommended 31 bits (instead of the 32-bit design that was ultimately chosen at the time). (Varian 1997:pp8–9, note 21, includes other comments about the "Inner Six" Model 67 design disclosees)
Series and models
Models sorted by date introduced (table)
The following table summarizes the major S/370 series and models. The second column lists the principal architecture associated with each series. Many models implemented more than one architecture; thus, 308x processors initially shipped as S/370 architecture, but later offered XA; and many processors, such as the 4381, had microcode that allowed customer selection between S/370 or XA (later, ESA) operation.
Note also the confusing term "System/370-compatible", which appeared in IBM source documents to describe certain products. Outside IBM, this term would more often describe systems from Amdahl Corporation, Hitachi Ltd., and others, that could run the same S/370 software. This choice of terminology by IBM may have been a deliberate attempt to ignore the existence of those plug compatible manufacturers (PCMs), because they competed aggressively against IBM hardware dominance.
|1970||System/370 (no DAT)||high-end||System/370-xxx||-155, -165, -195|
|1970||System/370 (DAT)||mid-range||-145 and -135|
|1972||System/370||high-end||-158 and -168|
|entry||-115 and -125|
|mid-range||-138 and -148|
|1977||System/370-compatible||high-end||303x||3031, 3032, 3033|
|1979||entry/mid||43xx||4331, 4341, 4361|
|1980||high-end||308x||3081, 3083, 3084|
|1986||high-end||3090||-120 to -600|
|1988||mid-range||ES/4381||-90, -91, -92|
Models grouped by Model number (detailed)
IBM used the name System/370 to announce the following eleven (3 digit) offerings:
System/370 Model 115
It was delivered with "a minimum of two (of IBM's newly announced) directly-attached IBM 3340 disk drives." Up to four 3340s could be attached.
The CPU could be configured with 65,536 (64K) or 98,304 (96K) bytes of main memory. An optional 360/20 emulator was available.
(The 115 was withdrawn Mar 9, 1981)
System/370 Model 125
Two, three or four directly attached IBM 3333 disk storage units provided "up to 400 million bytes online."
Main memory was either 98,304 (96K) or 131,072 (128K) bytes.
(The 125 was withdrawn Mar 9, 1981)
System/370 Model 135
The IBM System/370 Model 135 was announced Mar 8, 1971. Options for the 370/135 included a choice of four main memory sizes; IBM 1400 series (1401, 1440 and 1460) emulation was also offered.
A "reading device located in the Model 135 console" allowed updates and adding features to the Model 135's microcode.
(The 135 was withdrawn Oct 16, 1979)
System/370 Model 138
The IBM System/370 Model 138 which was announced Jun 30, 1976 was offered with either 524,288 (512K) or 1,048,576 (1 MB) of memory. The latter was "double the maximum capacity of the Model 135," which "can be upgraded to the new computer's internal performance levels at customer locations."
(The 138 was withdrawn Nov 1, 1983)
System/370 Model 145
Thr first System/370 to use monolithic main memory, the model 145 was offered in six memory sizes. A portion of the main memory, the "Reloadable Control Storage" (RCS) was loaded from a prewritten disk cartridge containing microcode to implement, for example, all needed instructions, I/O channels, and optional instructions to enable the system to emulate earlier IBM machines.
The 145 was withdrawn Oct 16, 1979.
System/370 Model 148
As with the option to field-upgrade a 135, a 370/145 could be field-upgraded "at customer locations" to 148-level performance. The upgraded 135 and 145 systems were "designated the Models 135-3 and 145-3."
System/370 Model 155
The IBM System/370 Model 155 and the Model 165 were announced Jun 30, 1970, the first of the 370s introduced. Neither had a DAT box; they were limited to running the same non-virtual-memory operating systems available for the System/360. The 155 first shipped in January 1971.
Both the 155 and the 165 were withdrawn Dec 23, 1977.
System/370 Model 158
It included dynamic address translation (DAT) hardware, a pre-requisite for the new virtual memory operating systems (DOS/VS, OS/VS1, OS/VS2).
A tightly coupled multiprocessor (MP) model was available, as was the ability to loosely couple this system to another 360 or 370 via an optional channel-to-channel adapter.
Emulation for 7070/7074, 1401/1440/1460, and 1410/7010 were included, and they could operate concurrently with standard System/370 workloads.
(The 158 and 168 were withdrawn Sep 15, 1980)
System/370 Model 165
System/370 Model 168
It included dynamic address translation (DAT) hardware, a pre-requisite for the new virtual memory operating systems.
Although the 168 served as IBM's "flagship" system, a 1975 newbrief said that IBM boosted the power of the 370/168 again "in the wake of the Amdahl challenge... only 10 months after it introduced the improved 168-3 processor."
The 370/168 was not withdrawn until September 1980.
System/370 Model 195
The first of the initial high end machines, IBM's 3033, was announced March 25, 1977 and was delivered the following March, at which time a multiprocessor version of the 3033 was announced. IBM described it as "The Big One."
IBM noted about the 3033, looking back, that "When it was rolled out on March 25, 1977, the 3033 eclipsed the internal operating speed of the company's previous flagship the System/370 Model 168-3 ..."
Three systems comprised the next series of high end machines, IBM's 308X systems:
- The 3081 (announced Nov 12, 1980) had 2 CPUs
- The 3083 (announced Mar 31, 1982) had 1 CPU
- The 3084 (announced Sep 3, 1982) had 4 CPUs
All three systems were withdrawn Aug 4, 1987.
The next series of high-end machines, the IBM 3090, began with models 200 and 400. They were announced Feb. 12, 1985, and were configured with two or four CPUs respectively.
The 200 and 400 were withdrawn May 5, 1989.
The 4331 was subsequently withdrawn November 18, 1981, and the 4341 February 11, 1986.
IBM offered many Model Groups and models of the 4300 family, ranging from the entry level 4331 to the 4381, described as "one of the most powerful and versatile intermediate system processors ever produced by IBM."
The 4381 Model Group 3 was dual-CPU.
This low-end system, announced October 7, 1986, was "designed to satisfy the computing requirements of IBM customers who value System/370 affinity" and "small enough and quiet enough to operate in an office environment."
IBM also noted its sensitivity to "entry software prices, substantial reductions in support and training requirements, and modest power consumption and maintenance costs."
Furthermore, it stated its awareness of the needs of small-to-medium size businesses to be able to respond, as "computing requirements grow," adding that "the IBM 9370 system can be easily expanded by adding additional features and racks to accommodate..."
In the 360 era, a number of manufacturers had already standardized upon the IBM/360 instruction set and, to a degree, 360 architecture. Notable computer makers included Univac with the UNIVAC 9000 series, RCA with the RCA Spectra 70 series, English Electric with the English Electric System 4, and the Soviet ES EVM. These computers were not perfectly compatible, nor (except for the Russian efforts) were they intended to be.
That changed in the 1970s with the introduction of the IBM/370 and Gene Amdahl's launch of his own company. About the same time, Japanese giants began eyeing the lucrative mainframe market both at home and abroad. One Japanese consortium focused upon IBM and two others from the BUNCH (Burroughs/Univac/NCR/Control Data/Honeywell) group of IBM's competitors. The latter efforts were abandoned and eventually all Japanese efforts focused on the IBM mainframe lines.
Some of the era's clones included:
|IBM S/370 registers|
above, i.e., the most significant (leftmost) bit is designated as bit number 0.
S/370 also refers to a computer system architecture specification, and is a direct and mostly backward compatible evolution of the System/360 architecture:9 from which it retains most aspects. This specification does not make any assumptions on the implementation itself, but rather describes the interfaces and the expected behavior of an implementation. The architecture describes mandatory interfaces that must be available on all implementations and optional interfaces which may or may not be implemented.
Some of the aspects of this architecture are:
- Big endian byte ordering
- One or more processors with:
- 16 32-bit General purpose registers
- 16 32-bit Control registers
- 4 64-bit Floating-point registers
- A 64-bit Program status word (PSW) which describes (among other things)
- Timing facilities (Time of day clock, interval timer, CPU timer and clock comparator)
- An interruption mechanism, maskable and unmaskable interruption classes and subclasses
- An instruction set. Each instruction is wholly described and also defines the conditions under which an exception is recognized in the form of program interruption.
- A memory (called storage) subsystem with:
- 8 bits per byte
- A special processor communication area starting at address 0
- Key controlled protection
- 24-bit addressing
- Manual control operations that provide:
- A bootstrap process (a process called Initial Program Load or IPL)
- Operator-initiated interrupts
- Resetting the system
- Basic debugging facilities
- Manual display and modifications of the system's state (memory and processor)
- An Input/Output mechanism – which doesn't describe the devices themselves
Some of the optional features are:
- A Dynamic Address Translation (DAT) mechanism that can be used to implement a virtual memory system
- Floating point instructions
Because of the extensible nature of the interface specification, new interface could be devised without breaking the initial interface contract. Such examples are:
- ECPS:VM, a feature to assist the VM/370 operating system
- ECPS:VSE, a feature to assist the DOS operating system
Great care was taken in order to ensure that further modifications to the architecture would remain compatible, at least as far as non-privileged programs were concerned. This philosophy predates the definition of the S/370 architecture and started with the S/360 architecture. If certain rules are adhered to, a program written for this architecture will run with the intended results on the successors of this architecture.
One of the key aspect that allows this compatibility is to define that unused fields are to be set to a predetermined value (usually 0) - and that using another value leads to an exception condition being recognized.:10 When the interface is modified, this unused field can then be used to alter the interface contract. A well formed program can then still produce the expected result even when executing on an implementation of the new interface.
Such an example is that the S/370 architecture specifies that the 64-bit PSW register bit number 32 has to be set to 0 and that doing otherwise leads to an exception. Subsequently, when the S/370-XA architecture was defined, it was stated that this bit would indicate whether the program was a program expecting a 24-bit address architecture or 31-bit address architecture. Thus, most programs that ran on the 24-bit architecture can still run on 31-bit systems; the 64-bit z/Architecture has an additional mode bit for 64-bit addresses, so that those programs, and programs that ran on the 31-bit architecture, can still run on 64-bit systems.
However, not all of the interfaces can remain compatible. Emphasis was put on having non control programs (called problem state programs) remain compatible. Thus, operating systems have to be ported to the new architecture because the control interfaces can (and were) redefined in an incompatible way. For example, the I/O interface was redesigned in S/370-XA making S/370 program issuing I/O operations unusable as-is.
The System/370 line was replaced with the IBM System/390 in the 1990s, and the architecture was similarly renamed from ESA/370 to ESA/390. This was essentially just a rename for marketing reasons, rather than major architectural change.
In 2000, the System/390 was replaced with the zSeries (now called IBM System z). The zSeries mainframes introduced the 64-bit z/Architecture, the most significant design improvement since the 31-bit transition. All have retained essential backward compatibility with the original S/360 architecture and instruction set.
GCC and Linux on the S/370
The GNU Compiler Collection (GCC) had a back end for S/370, but it became obsolete over time and was finally replaced with the S/390 backend. Although the S/370 and S/390 instruction sets are essentially the same (and have been consistent since the introduction of the S/360), GCC operability on older systems has been abandoned. GCC currently works on machines that have the full instruction set of System/390 Generation 5 (G5), the hardware platform for the initial release of Linux/390. However, a separately maintained version of GCC 3.2.3 that works for the S/370 is available, known as GCCMVS.
As in System/360, peripherals attached to the system via channels, in this case, evolved as follows:
- The block multiplexer channel, previously available only on the 360/85 and 360/195, was a standard part of the architecture. For compatibility it could operate as a selector channel.
- Also, as part of the DAT announcement, channels were upgraded to have Indirect Data Address Lists (a form of I/O MMU).
- E.g., programs that depended on getting program interrupts for alignment errors might fail.
- IBM used a lower case "m"
- One announcement alone featured mention of "Twelve models of the 4381" for just 3 "Model Groups" and also listed 6 other Model Groups
- The same IBM web page notes the following date announced/withdrawn dates: Model Groups 1 & 2 (Sep 15, 1983 - Feb 11, 1986), Model Group 3 (Oct 25, 1984 - Feb 11, 1986), Model Groups 11, 12, 13 & 14 (announced Feb 11, 1986), Model Groups 21, 22, 23 & 24 (May 19, 1987 - Aug 19, 1992).
- "System/370 Announcement". IBM. June 30, 1970.
- Pugh, E.W.; L.R. Johnson; John H. Palmer (1991). IBM's 360 and early 370 systems. Cambridge: MIT Press. ISBN 0-262-16123-0.
- IBM System/370 Principles of Operation (PDF) (First ed.). IBM. June 1970. GA22-7000-0.
- "Announcing: System/370 Model 155" (PDF). IBM.
- "Announcing System/370 Model 165" (PDF). IBM.
- Richard P. Case; Andris Padegs (January 1978). "Architecture of the IBM System/370" (PDF). Communications of the ACM. 21 (1): 73–96. doi:10.1145/359327.359337.
The IBM 2880 Block-Multiplexer Channel included most of the System/370 I/O architecture extensions and was made available on System/360 Models 85 and 195.
- "Information technology industry timeline, 1964–1974".
- Varian, Melinda Varian (1997). VM and the VM community, past present, and future (PDF). SHARE 89 Sessions 9059-9061.
- IBM Maintenance Library 3145 Processing Unit Theory - Maintenance (PDF) (Second ed.). IBM. October 1971. pp. CPU 117–129. SY24-3581-1.
- IBM Maintenance Library 3145 Processing Unit Theory - Maintenance (Third ed.). IBM. pp. CPU 117–129. SY24-3581-2.
- A. Padegs (September 1981). "System/360 and Beyond". IBM Journal of Research & Development. IBM. 25 (5): 377–390. doi:10.1147/rd.255.0377. – tables include model characteristics (Table 1) and announcement/shipment dates (Table 2). The S/370-155-II and -165-II are listed under the former but not the latter, because the upgraded systems were not formally announced as separate models. The "System/370 Advanced Function" announcement, including the -158 and -168, was the main public event.
- A. Padegs (May 1983). "System/370 Extended Architecture: design considerations". IBM Journal of Research & Development. IBM. 27 (3): 198–205. doi:10.1147/rd.273.0198. – a subsection titled "31-bit addressing" begins on page 201.
- "System/370 Model 145". IBM Archives. IBM.
- "IBM timeline of S/370 series". with surprising term 'System/370-compatible' for the 3xxx and 4xxx series
- "IBM 9370 announcement letter". to explain why the 9370 is categorized as a System/370 compatible system
- "System/370 Model 115". IBM Archives. IBM.
- "System/370 Model 125". IBM Archives. IBM.
- "System/370 Model 135". IBM Archives. IBM.
- "System/370 Model 138". IBM Archives. IBM.
- "System/370 Model 148". IBM Archives. IBM.
- "System/370 Model 155". IBM Archives. IBM.
- "System/370 Model 158". IBM Archives. IBM.
- "System/370 Model 165". IBM Archives. IBM.
- Jon Elson (December 5, 2014). "IBM 360/85 vs. 370/165". Newsgroup: alt.folklore.computers.
- "System/370 Model 168". IBM Archives. IBM.
- "IBM's 3033 "The Big One": IBM's 3033". IBM Archives. IBM.
- "IBM boosts power of 370/168 again". Computer Weekly (486). 1975. p. 1.
- "System/370 Model 195". IBM Archives. IBM.
- "System/360 Model 195". IBM Archives. IBM.
- "3031 Processor Complex". IBM Archives. IBM.
- "Mainframes - Basic information sources". IBM Archives. IBM.
- "3033 Press announcement". IBM Archives. IBM.
- "3033 Multiprocessor - Press announcement". IBM Archives. IBM.
- "IBM's 3033 "The Big One": IBM's 3033". IBM Archives. IBM.
THINK magazine later simply dubbed it – "The Big One."
- "3032 Processor Complex". IBM Archives. IBM.
- "3081 Processor Complex". IBM Archives. IBM.
- "3083 Processor Complex". IBM Archives. IBM.
- "3084 Processor Complex". IBM Archives. IBM.
- "IBM System/370 Extended Architecture Principles of Operation" (PDF). IBM. March 1983. SA22-7085-0.
- a Google on IBM "extended architecture" will find http://www-01.ibm.com/common/ssi/ShowDoc.wss?docURL=/common/ssi/rep_ca/0/897/ENUS285-030/index.html and more
- "3090 Processor Complex". IBM Archives. IBM.
- "IBM 3090 PROCESSOR UNIT MODEL 120E, IBM 3092 PROCESSOR CONTROLLER MODEL 3". IBM. May 19, 1987.
- the hyperlink on the words "Vector processing" point to an article that has only 2 mentions of IBM, one of which begins "In 2000, IBM, Toshiba and Sony collaborated."
- The "first to market" advantage can be summarized as "In 1972, computer designer Seymour Cray left CDC and formed a new company" as noted in Getting Up to Speed: The Future of Supercomputing, 2005, ISBN 0309165512, by National Research Council, Division on Engineering and Physical Sciences, Computer Science and Telecommunications Board
- "4331 Processor". IBM Archives. IBM.
- "4341 Processor". IBM Archives. IBM.
- "4361 Processor". IBM Archives. IBM.
- "4381 Processor". IBM Archives. IBM.
- "IBM 9370 INFORMATION SYSTEM OVERVIEW". IBM. October 7, 1986.
- "Report Of The SSC Computer Planning Committee" (PDF). January 1990. chapter 5.4, "SUMMARY OF RELATIVE STRENGTH OF DEC/VMS AND IBM/VM".
- David S. Bennahum (November 1997). "Heart of Darkness".
from 1967 to 1972, it put in place a massive industrial complex to reverse-engineer, copy, and produce IBM mainframes and DEC minicomputers... Once a computer was reduced to its constituent bits on both a software and hardware level, industrial management designed a manufacturing process to replicate the machine... a clone of the IBM 360/40 in 1970, a Cold War coup. Later, he worked on duplicating the IBM 370
- Re the 370 (followup to 360/40 clone): Michael Weisskopf (September 24, 1985). "Soviet Radar Allegedly Stolen From U.S." WashingtonPost.
- "System/370 Principles of Operation" (PDF). Fourth Edition. IBM. September 1975. GA22-7000-4.
- ESA/390 Principles of Operation. IBM. Section 22.214.171.124 Problem-State Compatibility. SA22-7201-08.
- "Removed architectures and systems removed from GCC 3.4".
- "GCCMVS (GCC 3.2.3 for S/370)".
- Hercules System/370 Emulator A software implementation of IBM System/370