IBM System/360
History of IBM mainframes, 1952–present |
---|
Market name |
Architecture |
The IBM System/360 (S/360) is a mainframe computer system family announced by IBM on April 7, 1964. It was the first family of computers making a clear distinction between architecture and implementation, allowing IBM to release a suite of compatible designs at different price points. It was extremely successful in the market, allowing customers to purchase a smaller system with the knowledge they would always be able to migrate upward if their needs grew. The design is considered by many to be one of the most successful computers in history, influencing computer design for years to come. The chief architect of the S/360 was Gene Amdahl.
System/360 history
A family of computers
Unlike past practice, IBM created an entire line of computers (or CPUs) from small to large, low to high performance, all running the same command set (with two exceptions for specific markets). This feat allowed customers to use a lower cost model and then upgrade to larger systems as their needs grew — without the time and expense of rewriting software. IBM made the first commercial use of microcode technology to accomplish this compatibility, employing it in all but the largest models.
This flexibility greatly lowered barriers to entry. With other vendors (with the possible and notable exception of General Electric), customers had to choose between machines they could outgrow and machines that were potentially overpowered (and thus too expensive). This meant that many companies simply didn't buy computers. The System/360 changed the entire nature of the market as companies could now lease "low end" machines without fear and at a lower initial cost. (At that time, IBM leased computers instead of selling them.)
Models
IBM initially announced a family of six computers and forty common peripherals. IBM actually delivered fourteen models, including rare one-off models for NASA. The cheapest model was the 360/20 with as little as 4K of core memory, eight 16-bit registers instead of the sixteen 32-bit registers of real 360s, and an instruction set that was a subset of that used by the rest of the range. (The Model 20 was suited to smaller businesses — it had the IBM name and salesforce but not all the bells and whistles.)
The initial announcement in 1964 included Models 30, 40, 50, 60, 62, and 70. The first three were low- to middle-range systems aimed at the IBM 1400 series market. All three began shipping in mid-1965. The last three, intended to replace the 7000 series machines, never shipped and were replaced by the 65 and 75, which shipped in November, 1965, and January, 1966, respectively.
Later additions on the low end included the 20 (1966, mentioned above), 22 (1971), and 25 (1968). The 44 (1966) was a variant aimed at the mid-range scientific market with hardware floating point but an otherwise limited instruction set. A succession of high-end machines included the 67 (1966, mentioned below), 85 (1969), 91 (1967), 95 (1968), and 195 (1971). The 195 bridged the gap between the System/360 line and the follow-on System/370.
The 360-67, first shipped in August, 1966, was the first IBM system to offer dynamic address translation ("DAT," now more commonly referred to as an MMU; DAT hardware would reappear in the S/370 series in 1972, though it was initially absent from the series). (Before the 67, IBM had announced models 64 and 66, DAT versions of the 60 and 62, but they were almost immediately replaced by the 67 at the same time that the 60 and 62 were replaced by the 65.) When announcing the 360-67 (August 1965), IBM also announced TSS/360, an ill-fated time-sharing operating system project that was canceled in 1971. Instead, the 360-67's successful operating system was CP/CMS, the original virtual machine system. CP/CMS was developed outside the IBM mainstream at IBM's Cambridge Scientific Center, in cooperation with MIT researchers; it eventually won wide acceptance, and led to the development of IBM's VM/CMS and today's z/VM.
All System/360 models were withdrawn from marketing by the end of 1977.
Backward compatibility
IBM's existing customers had a large investment in software that ran on second generation machines. Many models offered the option of microcode emulation of the customer's previous computer (e.g. the IBM 1400 series on a 360/30 or the IBM 7094 on a 360/65) so that old programs could run on the new machine. However customers had to halt the computer, throw a switch, and restart to enter emulation mode. The later System/370 retained the emulation options, but allowed them to be executed under operating system control alongside native programs.
Successors and variants
The S/360 was replaced by the compatible System/370 range in 1970. (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 3090, the System/390 family, the zSeries, and today's System z9.
Computers which were 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 UNIVAC 9200/9300/9400 series, and the RCA Spectra 70 series, which was sold to what was then UNIVAC to become the UNIVAC 90/60 and later releases. The Soviet Union produced an S/360 clone called the ES EVM.
The IBM 5100 portable computer, introduced in 1975, offered an option to run the System/360's APL\SV programming language through a hardware emulator. IBM used this approach in order to avoid the costs and delay in creating a version of APL specific to the 5100.
Special radiation-hardened and otherwise somewhat modified S/360s, in the form of the System/4 Pi avionics computer, are used in several fighter and bomber jet aircraft. In the full 32-bit AP-101 version, 4 Pi machines are 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.)
Technical description
Key features of lasting impact
The System/360 introduced a number of industry standards to the marketplace, such as:
- The 8-bit byte (against financial pressure during development to reduce the byte to 4 or 6 bits)
- Byte-addressable memory (as opposed to word-addressable memory)
- 32-bit words
- Two's complement arithmetic
- Commercial use of microcoded CPUs
- The IBM Floating Point Architecture (until superseded by the IEEE 754-1985 floating-point standard, 20 years later)
- The EBCDIC character set[1]
Architectural overview
All models of System/360, except for the Model 20, had 16 32-bit general purpose registers (R0–R15). Binary arithmetic and logical operations could be performed as register-to-register and as memory-to-register/register-to-memory as a standard feature. If the Commercial Instruction Set option was installed, packed arithmetic could be performed as memory-to-memory with some memory-to-register operations. The Scientific Instruction Set feature, if installed, provided access to four floating point registers that could be programmed for either 32-bit or 64-bit floating point operations. The Models 85 and 195 could also operate on 128-bit extended-precision floating point numbers stored in pairs of floating point registers, and software provided emulation in other models. The System/360 used an 8-bit byte, 32-bit word, 64-bit double-word, and 4-bit nybble. Machine instructions had operators with operands, which could contain register numbers or memory addresses. This complex combination of instruction options resulted in a variety of instruction lengths and formats.
Memory addressing was accomplished using a base-plus-displacement scheme, with registers 1 through F (15). A displacement was encoded in 12 bits, thus allowing a 4096-byte displacement (0–4095), as the offset from the address put in a base register. Register 0 could not be used as a base register, as "0" was reserved to indicate an address in the first 4 KB of memory. This permitted initial execution of the IPL ("Initial Program Load" or boot) since base registers would not necessarily be set to 0 during the first few instruction cycles.
The System/360 machine-code instructions were always 1 byte (8 bits) followed by at least a 1-byte immediate operand. Instructions were always situated on 2-byte boundaries. There were three types of instructions: those that took no memory operands (2 bytes), one operand (4 bytes), and two operands (6 bytes).
Operations like the MVC (Move-Character) (Hex: D2) could only move at most 256 bytes of information. Moving more than 256 bytes of data required multiple MVC operations. (The System/370 series introduced a family of more powerful instructions such as the MVCL "Move-Character-Long" instruction, which allows 16MB to be moved at once.)
An operand was two bytes long, typically representing an address as a 4-bit nibble denoting a base register and a 12-bit displacement relative to the contents of that register, in the range 000–FFF (shown here as hexadecimal numbers). The address corresponding to that operand would be the contents of the specified general-purpose register plus the displacement. For example, an MVC instruction that moved 256 bytes (with length code 255 in hexadecimal as FF) from base register 7, plus displacement 000, to base register 8, plus displacement 001, would be coded as the 6-byte instruction "D2FF 8001 7000" (operator/length/address1/address2).
The System/360 was designed to separate the "system state" from the "problem state". This provided a basic level of security and recoverability from programming errors. Problem (user) programs could not modify data or program storage associated with the system state. Addressing, data, or operation exception errors caused the system state to be entered through a controlled routine allowing the operating system to attempt to correct or terminate the program in error. Similarly, certain processor hardware errors could be recovered through the "machine check" routines.
Channels
Peripherals interfaced to the system via channels. A channel was a specialized processor with the instruction set optimized for transferring data between a peripheral and main memory. In modern terms, this could be compared to direct memory access (DMA).
There were two types of channels; byte-multiplexer channels, for connecting "slow speed" devices such as card readers and punches, line printers, and communications controllers, and selector channels for connecting high speed devices, such as disk drives, tape drives, data cells and drums. Every S/360 (except for the Model 20, which was not a standard S/360) had a byte-multiplexer channel and 1 or more selector channels. The smaller models had integrated channels, while for the larger models the channels were large separate units, such as the IBM 2860 and 2870.
The byte-multiplexer channel was able to handle I/O to/from several devices simultaneously at the device's highest rated speeds, hence the name, as it multiplexed I/O from those devices onto a single data path to main memory. Devices connected to a byte-multiplexer channel were configured to operate in 1-byte, 2-byte, 4-byte, or "burst" mode. The larger "blocks" of data were used to handle progressively faster devices. For example, a 2501 card reader operating at 600 cards per minute would be in 1-byte mode, while a 1403-N1 printer would be in burst mode. Also, the byte-multiplexer channel had an optional sub-selector section that would accommodate tape drives. The byte-multiplexor's channel address was typically "0" and the sub-selector addresses were from "C0" to "FF." Thus. tape drives on S/360 where commonly addressed at 0C0-0C7. Other common byte-multiplexer addresses where: 00A: 2501 Card Reader, 00C/00D: 2540 Reader/Punch, 00E/00F: 1403-N1 Printers, 010-013: 3211 Printers, 020-0BF: 2701/2703 Telecommunications Units. These addresses are still commonly used in z/VM virtual machines.
The S/360 had an integrated 1052 console that was addressed as 01F, however, this was not connected to the byte-multiplexer channel, but rather, had a direct internal connection to the mainframe.
Selector channels enabled I/O to high speed devices. These storage devices were attached to a control unit and then to the channel. The control unit enabled clusters of devices to be attached to the channels. On higher speed S/360 models, multiple selector channels, which could operate simultaneously or in parallel, improved overall performance.
Byte-multiplexer and selector channels where connected to the mainframe with gray "bus and tag" cable pairs. The bus cables carried the address and data information and the tag cables identified what data was on the bus. The general configuration of a channel was to connect the devices in a chain, like this: Mainframe--Control Unit X--Control Unit Y--Control Unit Z. Each control unit was assigned a "capture range" of addresses that it serviced. For example, control unit X might capture addresses 40-4F, control unit Y: C0-DF, and control unit Z: 80-9F. The capture ranges had to be a multiple of 8, 16, 32, 64, or 128 devices and be aligned on appropriate boundaries. Each control unit in turn had one or more devices attached to it. For example, you could have control unit Y with 6 disks, that would be addressed as C0-C5.
The cable ordering of the control units on the channel was also significant. Each control unit was "strapped" as High or Low priority. When a device selection was sent out on a mainframe's channel, the selection was sent from X->Y->Z->Y->X. If the control unit was "high" then the selection was checked in the outbound direction, if "low" then the inbound direction. Thus, control unit X was either 1st or 5th, Y was either 2nd or 4th, and Z was 3rd in line. It was also possible to have multiple channels attached to a control unit from the same or multiple mainframes, thus providing a rich high-performance, multiple-access, and backup capability.
Typically the total cable length of a channel was limited to 200 feet, less being preferred. Each control unit accounted for about 10 "feet" of the 200 foot limit.
Basic hardware components
Being somewhat uncertain of the reliability and availability of the then new monolithic integrated circuits, IBM chose instead to design custom hybrid integrated circuits using discrete flip chip mounted glass encapsulated transistors and diodes with silk screened resistors on a ceramic substrate, then either encapsulated in plastic or covered with a metal lid. Several of these were then mounted on a small multi-layer printed circuit board to make a "Solid Logic Technology" (SLT) module. Each SLT module had a socket on one edge that plugged into pins on the computer's backplane (the reverse of how most other company's modules were mounted).
Operating system software
Operating System/360 (OS/360) was developed for the mid-range System/360 computers. The smaller machines used Basic Operating System/360 (BOS/360), Tape Operating System (TOS/360), or Disk Operating System/360 (DOS/360, which evolved into VSE) and the larger were supposed to use OS/360 MVT (which evolved into MVS). MVT took a long time to develop into a usable system, and the less ambitious MFT was widely used. TSS/360 (Time-Sharing System, a Multics-influenced system) was promised, but it never worked properly and was replaced with either CP-67 (made to run on the S/360 Model 67, as mentioned above), MTS (Michigan Terminal System), TSO (Time Sharing Option for OS/360), or one of several other time-sharing systems. CP-67 was eventually developed into VM/370, later known as VM/CMS, which turned out to become a very popular and long-lasting OS among users of the S/370 range and later successors to the higher-end S/360 models.
The S/360 Model 20 offered a simplified and rarely used tape-based system called TPS (Tape Processing System), and also DPS (Disk Processing System) that provided support for the 2311 disk drive. TPS could run on a machine with 8K of memory, and DPS required 12K, which was pretty hefty for a Model 20. Many customers ran quite happily with 4K and CPS (Card Processing System).
With TPS and DOS, the card reader was used (a) to define the stack of jobs to be run (Job Control Language), and (b) to feed in transaction data, like customer payments. But the operating system was held on tape or disk, and results (master files!) could also be stored on the tapes or hard drives. Stacked job processing became an exciting possibility for the small but adventurous computer user.
Peripherals
IBM developed a new family of peripheral equipment for the S/360, carrying over a few from its older 1400 series. Interfaces were standardized, allowing greater flexibility to mix and match processors, controllers and peripherals than in the earlier product lines.
The new peripherals had four-digit numbers starting with "2." The number for the CPU itself started with "20" so the CPU for an S/360 Model 20 was numbered 2020.
Each type of peripheral had a different second digit (2300s, 2400s, etc.):
- disk drives and other random-access devices: IBM 2311, IBM 2314;
- magnetic tape drives: 2401, 2405;
- punch card-handling equipment: 2501 (card reader), 2520 (card punch); 2540 (reader/punch), 2560 (MFCM);
- paper tape reader: 2671;
- optical character recognition (OCR) readers 1287 and 1288; and,
- communications interfaces: 2701, 2705, 2780.
In addition, the S/360 computers could use certain peripherals that were originally developed for the earlier IBM 1400 series computers. These earlier peripherals had 4-digit numbers starting with 14, such as the IBM 1403 chain printer. The 1403, an extremely reliable device which had already earned a reputation as a workhorse, was sold as the 1403-N1 when adapted for the System/360.
Most systems were sold with a 1052 as the console typewriter. This was tightly integrated into the CPU - the keyboard would physically lock under program control. Certain high-end machines could optionally be purchased with a 2250 graphical display, costing upwards of US $100,000.
Disk and drum storage
The first disk drives for the 360 were IBM 2311s. They had a theoretical capacity of 7.2 megabytes, although actual capacity varied with record design.[1](p. 31) In 1966, the first 2314s shipped. This device had up to 8 disk drives with an integral control unit. Each drive used a removable disk pack with a capacity of nearly 28MB. The disk packs for the 2311 and 2314 were physically large by today's standards – e.g. the 2311 disk pack was about 14 inches in diameter and had 6 platters stacked on a central spindle. The top and bottom outside platters did not store data. Data was recorded on the inner sides of the top and bottom platters and both sides of the inner platters, providing 10 recording surfaces. The 10 read/write heads moved together across the surfaces of the platters which were formatted with 203 concentric tracks. To reduce the amount of head movement (seeking), data was written in a virtual cylinder from inside top platter down to inside bottom platter. These disks were not usually formatted with fixed-sized sectors as are today's hard drives (though this was done with CP/CMS). Rather, most S/360 I/O software could customize the length of the data record (variable-length records), as was the case with magnetic tapes.
Some of the most powerful S/360s used high-speed head-per-track drum storage devices. The 3,500 RPM 2301[2], which replaced the 7320, was part of the original S/360 announcement, with a capacity of 4Mb. Other models appeared later, such as the 6,000 RPM 2305 in 1970, with capacities of 5Mb (2305-1) or 11Mb (2305-2) per module.[3] Although these devices did not have large capacity, their speed and transfer rates made them attractive for high-performance needs. A typical use was overlay linkage (e.g. for OS and application subroutines) for program sections written to alternate in the same memory regions. Drums were particularly effective as paging devices on the early virtual memory systems. It should be noted that the 2305, although often called a "drum" was actually a head-per-track disk device, with twelve recording surfaces and a data transfer rate up to 3 megabytes per second.
Rarely seen was the IBM Data Cell (2321)[4], a bizarre (and mechanically dramatic) device that contained multiple magnetic strips to hold data; strips could be randomly accessed, placed upon a cylinder-shaped drum for read/write operations; then returned to an internal storage cartridge. The IBM Data Cell (2321) was among several IBM trademarked "speedy" mass online direct-access storage peripherals (reincarnated in recent years as "virtual tape" and automated tape librarian peripherals). The 2321 file had a capacity of 400 MB, at the time when the 2311 disk drive only had 7.2 MB. The IBM Data Cell was proposed to fill cost/capacity/speed gap between magnetic tapes -- which had high capacity with relatively low cost per stored byte -- and disks, which had higher expense per byte. Some installations also found the electromechanical operation less dependable and opted for less mechanical forms of direct-access storage.
Tape drives
The 2400 tape drives consisted of a combined drive and control unit, plus individual 1/2" tape drives attached. With the 360, IBM switched from IBM 7 track to 9 track tape format. 2400 drives could be purchased that read and wrote 7 track tapes for compatibility with the older IBM 729 tape drives. In 1967, a slower and cheaper pair of tape drives with integrated control unit was introduced: the 2415. In 1968, the IBM 2420 tape system was released, offering much higher data rates, self-threading tape operation and 1600bpi packing density. It remained in the product line until 1979.
Unit record devices
- Punch card devices included the 2501 card reader and the 2540 card reader punch. Virtually every S/360 had a 2540. The 2560 MFCM ("Multi-Function Card Machine") reader/sorter/punch, listed above, was for the Model 20 only. It had notorious reliability problems (earning humorous acroymns often involving "...Card Muncher").
- Line printers were the IBM 1403 and the slower IBM 1443.
- A paper tape reader, the IBM 2671, was introduced in 1964. It had a rated speed of 1,000 cps. (There were also a paper tape reader and paper tape punch from an earlier era, available only as RPQs (Request Price Quotation). the 1054 (reader) and 1055 (punch), which were carried forward (like the 1052 console typewriter) from the IBM 1050 Teleprocessing System. All these devices operated at a maximum of 15.5 characters per second. The paper tape punch from the IBM 1080 System was also available by RPQ, but at a prohibitively expensive price.
- Optical Character Recognition (OCR) devices 1287 and latter the 1288 were available on the 360's. The 1287 could read handwritten numerals, some OCR fonts, and cash register OCR paper tape reels. The 1288 'page reader' could handle up to legal size OCR font typewritten pages, as well as handwritten numerals. Both of these OCR devices employed a 'flying spot' scanning principle, with the raster scan provided by a large CRT, and the reflected light density changes were picked up by a high gain Photo Multiplier tube.
Remaining machines
Few machines remain. Despite being sold in very large numbers for a mainframe system of its era, only a few System/360 computers are known to exist today in working condition. Most machines were scrapped when they could no longer profitably be leased, partly for the gold and other precious metal content of their circuits, but mainly to keep these machines from competing with IBMs newer computers, such as the System/370. As with all classic mainframe systems, complete System/360 computers were prohibitively large to be held in storage, and too expensive to maintain. The Smithsonian Institution owns a System/360 Model 65, although it is no longer on public display. The Computer History Museum in Mountain View, CA has a non-operable System/360 Model 30 on display. The University of Western Australia has a complete System/360 in storage at its Shenton Park warehouse. The IBM museum in Sindelfingen has two S/360s (a Model 20 and a Model 91 floating point machine). The control panel of the most complex System/360 model type built, the FAA 360 - 9020, comprising 3 System/360 model 65s and 3 System/360 model 50s is on display in the Computer Science department of Stanford University as IBM 360 display and Stanford Big Iron. It was manufactured in 1971 and decommissioned in 1993.
Notes
- ^ The System/360 was originally to use the ASCII character set, and IBM was a major advocate of the ASCII standardization process. However, IBM did not have enough ASCII-based peripherals ready for the System/360's launch, and decided instead on EBCDIC, a derivation of the earlier Binary-Coded Decimal (BCD) system. There was also pressure from large commercial and government customers who had massive BCD files, which could not be converted context-free into ASCII. EBCDIC had been used in some earlier systems, but the System/360 turned EBCDIC into an industry standard for mainframe computing due to its own success and the subsequent need to maintain backward compatibility.
- ^ IBM 2301 Drum Storage, Columbia University Computing History
- ^ IBM 2305 product announcement
- ^ The IBM 2321 Data Cell Drive, Columbia University Computing History
See also
- List of IBM products
- Dr. Gene Amdahl (architect)
- Dr. Gerrit Blaauw (architect)
- Dr. Fred Brooks (System/360 project manager)
- Bob Evans (computer scientist)
References
- Emerson W. Pugh, Lyle R. Johnson, John H. Palmer, IBM's 360 and Early 370 Systems (MIT Press, Cambridge, 1991) is the definite reference work on the early history of the family.
- IBM Corp (1964). IBM System/360 Principles of Operation. Poughkeepsie, NY: IBM Systems Reference Library, File No. S360-01, Form A22-6821-0.
External links
From the IBM Journal of Research and Development (PDF files):
- Architecture of the IBM System/360 – By S/360 architects Gene Amdahl (HW), Fred Brooks (OS), and G. A. Blaauw (HW)
- Solid Logic Technology – By E. M. Davis, W. E. Harding, R. S. Schwartz and J. J. Corning
General:
- IBM's announcement of the System/360
- Pictures of an IBM S/360-67 at Newcastle (UK) University
Lots of scanned manuals of IBM System/360 at bitsavers[2]
This article is based on material taken from the Free On-line Dictionary of Computing prior to 1 November 2008 and incorporated under the "relicensing" terms of the GFDL, version 1.3 or later.