A computer instruction set defines the correct execution of a program as the instructions processed one after another – that is, sequentially (see Chapter 2). This sequential abstraction enables composition of arithmetic operations (add, xor), operations on memory (state), and also grants extraordinary power to branch instructions that compose blocks of instructions conditionally. In this chapter, we explore the central importance of the sequential abstraction for managing the complexity of large-scale software and hardware systems. Subsequently, we consider creative techniques that both preserve the illusion of sequence and allow the processor implementation to increase the speed of program progress. These techniques are known as instruction-level parallelism (ILP), and accelerate program execution by executing instructions in a program in pipelined (overlapped), out-of-order, and even speculative fashion. Understanding ILP provides a perspective on how commercial processors really execute programs – far different from the step-by-step recipe of the sequential abstraction.
Review the options below to login to check your access.
Log in with your Cambridge Aspire website account to check access.
If you believe you should have access to this content, please contact your institutional librarian or consult our FAQ page for further information about accessing our content.