Multiprocessing
This article needs additional citations for verification. (February 2014) |
Multiprocessing is the use of two or more
According to some on-line dictionaries, a multiprocessor is a computer system having two or more
At the
In Flynn's taxonomy, multiprocessors as defined above are MIMD machines.[9][10] As the term "multiprocessor" normally refers to tightly coupled systems in which all processors share memory, multiprocessors are not the entire class of MIMD machines, which also contains message passing multicomputer systems.[9]
Key topics
Processor symmetry
In a multiprocessing system, all CPUs may be equal, or some may be reserved for special purposes. A combination of hardware and operating system software design considerations determine the symmetry (or lack thereof) in a given system. For example, hardware or software considerations may require that only one particular CPU respond to all hardware interrupts, whereas all other work in the system may be distributed equally among CPUs; or execution of kernel-mode code may be restricted to only one particular CPU, whereas user-mode code may be executed in any combination of processors. Multiprocessing systems are often easier to design if such restrictions are imposed, but they tend to be less efficient than systems in which all CPUs are utilized.
Systems that treat all CPUs equally are called symmetric multiprocessing (SMP) systems. In systems where all CPUs are not equal, system resources may be divided in a number of ways, including asymmetric multiprocessing (ASMP), non-uniform memory access (NUMA) multiprocessing, and clustered multiprocessing.
Master/slave multiprocessor system
In a master/slave multiprocessor system, the master CPU is in control of the computer and the slave CPU(s) performs assigned tasks. The CPUs can be completely different in terms of speed and architecture. Some (or all) of the CPUs can share a common bus, each can also have a private bus (for private resources), or they may be isolated except for a common communications pathway. Likewise, the CPUs can share common RAM and/or have private RAM that the other processor(s) cannot access. The roles of master and slave can change from one CPU to another.
Two early examples of a mainframe master/slave multiprocessor are the Bull Gamma 60 and the Burroughs B5000.[11]
An early example of a master/slave multiprocessor system of microprocessors is the Tandy/Radio Shack
The earlier TRS-80 Model II, which was released in 1979, could also be considered a multiprocessor system as it had both a Z-80 CPU and an Intel 8021[12] microcontroller in the keyboard. The 8021 made the Model II the first desktop computer system with a separate detachable lightweight keyboard connected with by a single thin flexible wire, and likely the first keyboard to use a dedicated microcontroller, both attributes that would later be copied years later by Apple and IBM.
Instruction and data streams
In multiprocessing, the processors can be used to execute a single sequence of instructions in multiple contexts (
Processor coupling
Tightly coupled multiprocessor system
Tightly coupled multiprocessor systems contain multiple CPUs that are connected at the bus level. These CPUs may have access to a central shared memory (SMP or
Chip multiprocessors, also known as
Loosely coupled multiprocessor system
Loosely coupled multiprocessor systems (often referred to as
Tightly coupled systems perform better and are physically smaller than loosely coupled systems, but have historically required greater initial investments and may depreciate rapidly; nodes in a loosely coupled system are usually inexpensive commodity computers and can be recycled as independent machines upon retirement from the cluster.
Power consumption is also a consideration. Tightly coupled systems tend to be much more energy-efficient than clusters. This is because a considerable reduction in power consumption can be realized by designing components to work together from the beginning in tightly coupled systems, whereas loosely coupled systems use components that were not necessarily intended specifically for use in such systems.
Loosely coupled systems have the ability to run different operating systems or OS versions on different systems.
See also
- Multiprocessor system architecture
- Symmetric multiprocessing
- Asymmetric multiprocessing
- Multi-core processor
- BMDFM– Binary Modular Dataflow Machine, a SMP MIMD runtime environment
- Software lockout
- OpenHMPP
References
- ISBN 978-1-4200-7548-9.
- ^ ISBN 978-0-7384-3534-3.
- ^ "Multiprocessor dictionary definition - multiprocessor defined". www.yourdictionary.com. Retrieved 16 March 2018.
- ^ "multiprocessor". Retrieved 16 March 2018 – via The Free Dictionary.
- ISBN 978-0471715429.
- ^ ISBN 978-1-133-19024-0.
- ^ ISBN 978-0-07-014589-4.
- ISBN 978-81-7008-971-1.
- ^ ISBN 978-0-08-091959-1.
- ISBN 978-0-8493-3758-1.
- ^ The Operational Characteristics of the Processors for the Burroughs B5000 (PDF). Revision A. Burroughs. 1963. 5000-21005A. Retrieved 27 June 2023.
- ^ TRS-80 Model II Technical Reference Manual. Radio Shack. 1980. p. 135.