Asymmetric multiprocessing
Encyclopedia
Asymmetric multiprocessing, or AMP, was a software stopgap for handling multiple CPUs before symmetric multiprocessing
, or SMP, was available.
Multiprocessing
is the use of more than one CPU in a computer system. The CPU is the arithmetic and logic engine that executes user applications; an I/O interface such as a GPU, even if it is implemented using an embedded processor, does not constitute a CPU because it does not run the user's application program. With multiple CPUs, more than one set of program instructions can be executed at the same time. All of the CPUs have the same user-mode instruction set, so a running job can be rescheduled from one CPU to another.
Notable early offerings by computer manufacturers were the Burroughs B5000
, the DECsystem-1055, and the IBM System/360 model 65MP. There were also dual-CPU machines built at universities.
The problem with adding a second CPU to a computer system was that the operating system had been developed for single-CPU systems, and extending it to handle multiple CPUs efficiently and reliably took a long time. To fill the gap, operating systems intended for single CPUs were initially extended to provide minimal support for a second CPU. In this minimal support, the operating system ran on the “boot” processor, with the other only allowed to run user programs. The next step towards symmetric multiprocessing
(SMP) was to allow the operating system to run on any CPU, but only on one at a time, which could be thought of as a form of symmetric multiprocessing with a single coarse-grained lock. Eventually the operating systems improved their method of using the additional CPUs until they achieved full SMP, in which the operating system and the applications under its control ran on all of the CPUs simultaneously, with finer-grained locking.
. The operating systems which ran on these machines were OS/360 M65MP and TSS/360
. There was also software developed at universities which used both CPUs, notably MTS
. Both processors had access to the data channels, and so could initiate I/O.
M65MP was closer to SMP than MCP for the B5000 or TOPS-10 for the DECsystem-1055, since the operating system kernel ran on both processors (though with a “big lock” around the I/O handler) and peripherals could generally be attached to either processor.
The MTS supervisor (UMMPS) ran on either or both CPUs of the IBM System/360 model 67-2. Supervisor locks were small and were used to protect individual common data structures that might be accessed simultaneously from either CPU. As with M65MP, Individual tasks (jobs, processes) would only execute on one processor at a time.
that featured two processors. The CDC 6500 was a CDC 6400 with two processors. The CDC 6700 was a CDC 6600 with the CDC 6400 processor added to it.
These systems were organized quite differently from the other multiprocessors in this article. The operating system ran on the peripheral processors, while the user's application ran on the CPUs. Thus, the terms ASMP and SMP do not properly apply to these multiprocessors.
1108-II and its successors had up to three CPUs. These computers ran the UNIVAC EXEC 8 operating system, but it is not clear from the surviving documentation where that operating system was on the path from asymmetric to symmetric multiprocessing.
ran on several computers between 1964 and 2000, including some multiprocessors. Details are scarce, but it appears that Multics would today be called an asymmetric multiprocessing system, because a user program could run on only one CPU.
Symmetric multiprocessing
In computing, symmetric multiprocessing involves a multiprocessor computer hardware architecture where two or more identical processors are connected to a single shared main memory and are controlled by a single OS instance. Most common multiprocessor systems today use an SMP architecture...
, or SMP, was available.
Multiprocessing
Multiprocessing
Multiprocessing is the use of two or more central processing units within a single computer system. The term also refers to the ability of a system to support more than one processor and/or the ability to allocate tasks between them...
is the use of more than one CPU in a computer system. The CPU is the arithmetic and logic engine that executes user applications; an I/O interface such as a GPU, even if it is implemented using an embedded processor, does not constitute a CPU because it does not run the user's application program. With multiple CPUs, more than one set of program instructions can be executed at the same time. All of the CPUs have the same user-mode instruction set, so a running job can be rescheduled from one CPU to another.
Background and history
For the room-size computers of the 1960s and 1970s, a cost-effective way to increase compute power was to add a second CPU. Since these computers were already close to the fastest available (near the peak of the price:performance ratio), two standard-speed CPUs was much less expensive than a CPU that ran twice as fast. Also, adding a second CPU was less expensive than a second complete computer, which would need its own peripherals, thus requiring much more floor space and an increased operations staff.Notable early offerings by computer manufacturers were the Burroughs B5000
Burroughs B5000
In the 1970s, Burroughs Corporation was organized into three divisions with very different product line architectures for high-end, mid-range, and entry-level business computer systems...
, the DECsystem-1055, and the IBM System/360 model 65MP. There were also dual-CPU machines built at universities.
The problem with adding a second CPU to a computer system was that the operating system had been developed for single-CPU systems, and extending it to handle multiple CPUs efficiently and reliably took a long time. To fill the gap, operating systems intended for single CPUs were initially extended to provide minimal support for a second CPU. In this minimal support, the operating system ran on the “boot” processor, with the other only allowed to run user programs. The next step towards symmetric multiprocessing
Symmetric multiprocessing
In computing, symmetric multiprocessing involves a multiprocessor computer hardware architecture where two or more identical processors are connected to a single shared main memory and are controlled by a single OS instance. Most common multiprocessor systems today use an SMP architecture...
(SMP) was to allow the operating system to run on any CPU, but only on one at a time, which could be thought of as a form of symmetric multiprocessing with a single coarse-grained lock. Eventually the operating systems improved their method of using the additional CPUs until they achieved full SMP, in which the operating system and the applications under its control ran on all of the CPUs simultaneously, with finer-grained locking.
Burroughs B5000
An option on the Burroughs B5000 was “Processor B”. This second processor, unlike “Processor A” had no connection to the peripherals, though the two processors shared main memory. The operating system ran only on Processor A. When there was a user job to be executed, it might be run on Processor B, but when that job tried to access the operating system the processor halted and signaled Processor A. The requested operating system service was then run on Processor A.IBM System/360 models 65MP and 67-2
IBM offered dual-processor computer systems based on its System/360 model 65 and the closely related model 67IBM System/360 Model 67
The IBM System/360 Model 67 was an important IBM mainframe model in the late 1960s. Unlike the rest of the S/360 series, it included features to facilitate time-sharing applications, notably a DAT box to support virtual memory and 32-bit addressing...
. The operating systems which ran on these machines were OS/360 M65MP and TSS/360
TSS/360
The IBM Time Sharing System TSS/360 was an early time-sharing operating system designed exclusively for a special model of the System/360 line of mainframes, the Model 67. Made available on a trial basis to a limited set of customers in 1967, it was never officially released as a supported product...
. There was also software developed at universities which used both CPUs, notably MTS
Michigan Terminal System
The Michigan Terminal System is one of the first time-sharing computer operating systems. Initially developed in 1967 at the University of Michigan for use on IBM S/360-67, S/370 and compatible mainframe computers, it was developed and used by a consortium of eight universities in the United...
. Both processors had access to the data channels, and so could initiate I/O.
M65MP was closer to SMP than MCP for the B5000 or TOPS-10 for the DECsystem-1055, since the operating system kernel ran on both processors (though with a “big lock” around the I/O handler) and peripherals could generally be attached to either processor.
The MTS supervisor (UMMPS) ran on either or both CPUs of the IBM System/360 model 67-2. Supervisor locks were small and were used to protect individual common data structures that might be accessed simultaneously from either CPU. As with M65MP, Individual tasks (jobs, processes) would only execute on one processor at a time.
CDC 6500 and 6700
Control Data Corporation offered two configurations of its CDC 6000 seriesCDC 6000 series
The CDC 6000 series was a family of mainframe computers manufactured by Control Data Corporation in the 1960s. It consisted of CDC 6400, CDC 6500, CDC 6600 and CDC 6700 computers, which all were extremely rapid and efficient for their time...
that featured two processors. The CDC 6500 was a CDC 6400 with two processors. The CDC 6700 was a CDC 6600 with the CDC 6400 processor added to it.
These systems were organized quite differently from the other multiprocessors in this article. The operating system ran on the peripheral processors, while the user's application ran on the CPUs. Thus, the terms ASMP and SMP do not properly apply to these multiprocessors.
DECsystem-1055
Digital Equipment Corporation offered a dual-processor version of its DECsystem-1050 which used two KA10 processors. This offering was extended to later processors in the PDP-10 line. DEC also had a multi-processor PDP-11 and several multi-processor VAX systems.Univac 1108-II
The UnivacUNIVAC
UNIVAC is the name of a business unit and division of the Remington Rand company formed by the 1950 purchase of the Eckert-Mauchly Computer Corporation, founded four years earlier by ENIAC inventors J. Presper Eckert and John Mauchly, and the associated line of computers which continues to this day...
1108-II and its successors had up to three CPUs. These computers ran the UNIVAC EXEC 8 operating system, but it is not clear from the surviving documentation where that operating system was on the path from asymmetric to symmetric multiprocessing.
Multics
MulticsMultics
Multics was an influential early time-sharing operating system. The project was started in 1964 in Cambridge, Massachusetts...
ran on several computers between 1964 and 2000, including some multiprocessors. Details are scarce, but it appears that Multics would today be called an asymmetric multiprocessing system, because a user program could run on only one CPU.
IBM System/370 model 168
Two options were available for the IBM System/370 model 168 for attaching a second processor. One was the IBM 3062 Attached Processing Unit, in which the second processor had no access to the channels, and was therefore similar to the B5000's Processor B or the second processor on a VAX-11/782. The other option offered a complete second CPU, and was thus more like the System/360 model 65MP.See also
- 3B20C
- Multi-core (computing)Multi-core (computing)A multi-core processor is a single computing component with two or more independent actual processors , which are the units that read and execute program instructions...
- Software lockoutSoftware lockoutIn multiprocessor computer systems, software lockout is the issue of performance degradation due to the idle wait times spent by the CPUs in kernel-level critical sections. Software lockout is the major cause of scalability degradation in a multiprocessor system, posing a limit on the maximum...
- Giant lockGiant lockIn operating systems, a giant lock, also known as a big-lock or kernel-lock, is a lock which may be used in the kernel to provide the concurrency control required by symmetric multiprocessing systems....
- Symmetric multiprocessingSymmetric multiprocessingIn computing, symmetric multiprocessing involves a multiprocessor computer hardware architecture where two or more identical processors are connected to a single shared main memory and are controlled by a single OS instance. Most common multiprocessor systems today use an SMP architecture...