The
Microprocessors operate on binary data; that is data composed of ones and zeros. These ones and zeros correspond to electrical switches being either on or off. Just as 42 is a decimal number meaning “4 10s and 2 units”, a binary number is a series of binary digits each one representing a power of 2. In this context, a power means the number of times that a number is multiplied by itself. 10 to the power 1 ( 101 ) is 10, 10 to the power 2 ( 102 ) is 10×10, 103 is 10x10x10 and so on. Binary 0001 is decimal 1, binary 0010 is decimal 2, binary 0011 is 3, binary 0100 is 4 and so on. So, 42 decimal is 101010 binary or (2 + 8 + 32 or 21 + 23 + 25 ). Rather than using binary to represent numbers in computer programs, another base, hexadecimal is usually used.
In this base, each digital represents a power of 16. As decimal numbers only go from 0 to 9, the numbers 10 to 15 are represented as a single digit by the letters A, B, C, D, E and F. For example, hexadecimal E is decimal 14 and hexadecimal 2A is decimal 42 (two 16s + 10). Using the C programming language notation (as I do throughout this book) hexadecimal numbers are prefaced by “0x“; hexadecimal 2A is written as 0x2A .
Microprocessors can perform arithmetic operations such as add, multiply and divide and logical operations such as “is X greater than Y?”.
The processor’s execution is governed by an external clock.
This clock, the system clock, generates regular clock pulses to the
processor and, at each clock pulse, the processor does some work.
For example, a processor could execute an instruction every clock
pulse.
A processor’s speed is described in terms of the rate of the system
clock ticks.
A 100Mhz processor will receive 100,000,000 clock ticks every second.
It is misleading to describe the power of a
The instructions have to be fetched from memory as they are executed. Instructions may themselves reference data within memory and that data must be fetched from memory and saved there when appropriate.
The size, number and type of
- Program Counter (PC)
- This
register contains the address of the next instruction to be executed. The contents of the PC are automatically incremented each time an instruction is fetched. - Stack Pointer (SP)
- Processors have to have access to large
amounts of external read/write random access memory (
RAM ) which facilitates temporary storage of data. The stack is a way of easily saving and restoring temporary values in external memory. Usually, processors have special instructions which allow you to push values onto the stack and to pop them off again later. The stack works on a last in first out (LIFO) basis. In other words, if you push two values, x and y, onto a stack and then pop a value off of the stack then you will get back the value of y.Some processor’s stacks grow upwards towards the top of memory whilst others grow downwards towards the bottom, or base, of memory. Some processors support both types of stacks, for example ARM.
- Processor Status (PS)
- Instructions may yield results; for
example “is the content of
register X greater than the content ofregister Y?” will yield true or false as a result. The PSregister holds this and other information about the current state of the processor. For example, most processors have at least two modes of operation, kernel (or supervisor) and user. The PSregister would hold information identifying the current mode.
Details on Intel-based CPUs can be found
Details on Alpha AXP-based CPUs can be found
Details on ARM-based CPUs can be found