1.12 Concluding Remarks
■
53
ideas examined in both chapters. Chapter 2 uses examples that span about 35
years, drawing from one of the first supercomputers (IBM 360/91) to the fastest
processors in the market in 2006. It emphasizes what is called the dynamic or run
time approach to exploiting ILP. Chapter 3 focuses on limits and extensions to
the ILP ideas presented in Chapter 2, including multithreading to get more from
an out-of-order organization. Appendix A is introductory material on pipelining
for readers without much experience and background in pipelining. (We expect it
to be review for many readers, including those of our introductory text,
Computer
Organization and Design: The Hardware/Software Interface
.)
Chapter 4 focuses on the issue of achieving higher performance using multi-
ple processors, or multiprocessors. Instead of using parallelism to overlap indi-
vidual instructions, multiprocessing uses parallelism to allow multiple instruction
streams to be executed simultaneously on different processors. Our focus is on
the dominant form of multiprocessors, shared-memory multiprocessors, though
we introduce other types as well and discuss the broad issues that arise in any
multiprocessor. Here again, we explore a variety of techniques, focusing on the
important ideas first introduced in the 1980s and 1990s.
In Chapter 5, we turn to the all-important area of memory system design. We
will examine a wide range of techniques that conspire to make memory look
infinitely large while still being as fast as possible. As in Chapters 2 through 4,
we will see that hardware-software cooperation has become a key to high-
performance memory systems, just as it has to high-performance pipelines. This
chapter also covers virtual machines. Appendix C is introductory material on
caches for readers without much experience and background in them.
In Chapter 6, we move away from a processor-centric view and discuss issues
in storage systems. We apply a similar quantitative approach, but one based on
observations of system behavior and using an end-to-end approach to perfor-
mance analysis. It addresses the important issue of how to efficiently store and
retrieve data using primarily lower-cost magnetic storage technologies. Such
technologies offer better cost per bit by a factor of 50–100 over DRAM. In Chap-
ter 6, our focus is on examining the performance of disk storage systems for typ-
ical I/O-intensive workloads, like the OLTP benchmarks we saw in this chapter.
We extensively explore advanced topics in RAID-based systems, which use
redundant disks to achieve both high performance and high availability. Finally,
the chapter introduces queing theory, which gives a basis for trading off utiliza-
tion and latency.
This book comes with a plethora of material on the companion CD, both to
lower cost and to introduce readers to a variety of advanced topics. Figure 1.21
shows them all. Appendices A, B, and C, which appear in the book, will be
review for many readers. Appendix D takes the embedded computing perspective
on the ideas of each of the chapters and early appendices. Appendix E explores
the topic of system interconnect broadly, including wide area and system area
networks used to allow computers to communicate. It also describes clusters,
which are growing in importance due to their suitability and efficiency for data-
base and Web server applications.