From our studies in Chapter 2 (data representation) we know that a computer
must manipulate binary-coded data. We also know from Chapter 3 that memory is
used to store both data and program instructions (also in binary). Somehow, the
program must be executed and the data must be processed correctly. The central
processing unit (CPU) is responsible for fetching program instructions, decoding
each instruction that is fetched, and performing the indicated sequence of
operations on the correct data. To understand how computers work, you must first
become familiar with their various components and the interaction among these
00068_CH04_Null.qxd 10/18/10 12:03 PM Page 195
196 Chapter 4 / MARIE: An Introduction to a Simple Computer
components. To introduce the simple architecture in the next section, we first
examine, in general, the microarchitecture that exists at the control level of modern
computers.
All computers have a CPU that can be divided into two pieces. The first is the
datapath, which is a network of storage units (registers) and arithmetic and logic
units (for performing various operations on data) connected by buses (capable of
moving data from place to place) where the timing is controlled by clocks. The
second CPU component is the control unit, a module responsible for sequencing
operations and making sure the correct data are where they need to be at the correct
time. Together, these components perform the tasks of the CPU: fetching
instructions, decoding them, and finally performing the indicated sequence of
operations. The performance of a machine is directly affected by the design of the
datapath and the control unit. Therefore, we cover these components of the CPU
in detail in the following sections.