We all know that a computer’s CPU can only understand instructions that are written in
machine language. Because people find it very difficult to write entire programs in machine language, other programming languages have been invented.
Earlier, we stated that the CPU is the most important component in a computer because it is the part of the computer that runs programs. Sometimes the CPU is called the “computer’s brain” and is described as being “smart.” Although these are common metaphors, you should understand that the CPU is not a brain, and it is not smart. The CPU is an electronic device that is designed to do specific things. In particular, the CPU is designed to perform operations such as the following:
- Reading a piece of data from main memory
- Adding two numbers
- Subtracting one number from another number
- Multiplying two numbers
- Dividing one number by another number
- Moving a piece of data from one memory location to another
- Determining whether one value is equal to another value
As you can see from this list, the CPU performs simple operations on pieces of data. The CPU does nothing on its own, however. It has to be told what to do, and that’s the purpose of a program. A program is nothing more than a list of instructions that cause the CPU to perform operations.
Each instruction in a program is a command that tells the CPU to perform a specific operation. Here’s an example of an instruction that might appear in a program:
To you and me, this is only a series of 0s and 1s. To a CPU, however, this is an instruction
to perform an operation.1 It is written in 0s and 1s because CPUs only understand instructions that are written in machine language, and machine language instructions always have an underlying binary structure.
A machine language instruction exists for each operation that a CPU is capable of performing. For example, there is an instruction for adding numbers, there is an instruction for subtracting one number from another, and so forth. The entire set of instructions that a CPU can execute is known as the CPU’s instruction set.
NOTE: There are several microprocessor companies today that manufacture CPUs.
Some of the more well-known microprocessor companies are Intel, AMD, and Motorola. If you look carefully at your computer, you might find a tag showing a logo for its
Each brand of microprocessor has its own unique instruction set, which is typically
understood only by microprocessors of the same brand. For example, Intel microprocessors understand the same instructions, but they do not understand instructions for Motorola microprocessors.
The machine language instruction that was previously shown is an example of only one
instruction. It takes a lot more than one instruction, however, for the computer to do anything meaningful. Because the operations that a CPU knows how to perform are so basic in nature, a meaningful task can be accomplished only if the CPU performs many operations.
For example, if you want your computer to calculate the amount of interest that you will
earn from your savings account this year, the CPU will have to perform a large number of
instructions, carried out in the proper sequence. It is not unusual for a program to contain thousands or even millions of machine language instructions.
Programs are usually stored on a secondary storage device such as a disk drive. When you install a program on your computer, the program is typically downloaded from a website, or installed from an online app store.
Although a program can be stored on a secondary storage device such as a disk drive,
it has to be copied into main memory, or RAM, each time the CPU executes it. For
example, suppose you have a word processing program on your computer’s disk. To
execute the program, you use the mouse to double-click the program’s icon. This causes
the program to be copied from the disk into main memory. Then, the computer’s CPU
executes the copy of the program that is in main memory. This process is illustrated in the Figure below.
When a CPU executes the instructions in a program, it is engaged in a process that is known as the fetch-decode-execute cycle. This cycle, which consists of three steps, is repeated for each instruction in the program.
The steps are:
- Fetch: A program is a long sequence of machine language instructions. The first set of the cycle is to fetch, or read, the next instruction from memory into the CPU.
- Decode: A machine language instruction is a binary number that represents a command that tells the CPU to perform an operation. In this step, the CPU decodes the instruction that was just fetched from memory, to determine which operation I should perform.
- Execute: The last step in the cycle is to execute, or perform, the operation.
Figure below illustrates these steps( The fetch-decode-execute cycle )