In Chapter 2 we studied what is computable and how much effort it takes to compute certain things. For this we used the Turing machine, an abstract model of a computer that sequentially executes a sequence of instructions stored on a tape. Real-world central processing units (CPUs) in computers are conceptually similar. They sequentially read instructions and data from memory, process them, and write them back to memory. Increasing the execution speed of such a machine amounts to increasing the number of instructions or data words read and processed per second.