Book contents
- Frontmatter
- Contents
- Preface
- 1 Introduction
- 2 The Basics
- 3 Superscalar Processors
- 4 Front-End: Branch Prediction, Instruction Fetching, and Register Renaming
- 5 Back-End: Instruction Scheduling, Memory Access Instructions, and Clusters
- 6 The Cache Hierarchy
- 7 Multiprocessors
- 8 Multithreading and (Chip) Multiprocessing
- 9 Current Limitations and Future Challenges
- Bibliography
- Index
- References
7 - Multiprocessors
Published online by Cambridge University Press: 05 June 2012
- Frontmatter
- Contents
- Preface
- 1 Introduction
- 2 The Basics
- 3 Superscalar Processors
- 4 Front-End: Branch Prediction, Instruction Fetching, and Register Renaming
- 5 Back-End: Instruction Scheduling, Memory Access Instructions, and Clusters
- 6 The Cache Hierarchy
- 7 Multiprocessors
- 8 Multithreading and (Chip) Multiprocessing
- 9 Current Limitations and Future Challenges
- Bibliography
- Index
- References
Summary
Parallel processing has a long history. At any point in time, there always have been applications requiring more processing power than could be delivered by a single-processor system, and that is still as true today as it was three or four decades ago. Early on, special-purpose supercomputers were the rule. The sophisticated designs that were their trademarks percolated down to mainframes and later on to microprocessors. Pipelining and multiple functional units are two obvious examples (cf. the sidebars in Chapter 3). As microprocessors became more powerful, connecting them under the supervision of a single operating system became a viable alternative to supercomputers performancewise, and resulted in cost/performance ratios that made monolithic supercomputers almost obsolete except for very specific applications. This “attack of killer micros” has not destroyed completely the market for supercomputers, but it certainly has narrowed its scope drastically.
In this chapter, we consider multiprocessing, that is, the processing by several processing units of the same program. Distributed applications such as Web servers or search engines, where several queries can be processed simultaneously and independently, are extremely important, but they do not impose the coordination and synchronization requirements of multiprocessing. Moreover, there are a number of issues, such as how to express parallelism in high-level languages and how to have compilers recognize it, that are specific to multiprocessing. We do not dwell deeply on these issues in this chapter; we are more interested at this junction in the architectural aspects of multiprocessing.
- Type
- Chapter
- Information
- Microprocessor ArchitectureFrom Simple Pipelines to Chip Multiprocessors, pp. 260 - 302Publisher: Cambridge University PressPrint publication year: 2009