# Central processing unit (CPU) or Processor

A (CPU|Processor) has several (execution|processor) cores.

The fundamental operation of most CPUs, regardless of the physical form they take, is to execute a sequence of stored instructions called a program. The program is represented by a series of numbers that are kept in the main memory (primary storage).

There are four main steps (stages) that all CPUs use in their process pipeline:

• fetch,
• decode,
• execute,
• and store the result.

From one CPU model to another, the complete pipeline (included all operations) may varied.

The threads in a multiprocessing systems (such as multi-core systems) have to share the resources of a single core:

See Simple CPU

## 3 - Processor Architecture

Where:

• The data registers hold numbers for computation
• Clock is the clock generator
• The arithmetic-logic unit (ALU) holds the wiring for doing arithmetic on the numbers held in the data registers.
• The control unit holds wiring that triggers the arithmetic operations in the ALU. How does the control unit know to request an addition or a subtraction? The answer is: it obtains instructions, one at a time, that have been stored in primary storage.
• The instruction counter is a register that tells the control unit where to find the instruction that it must do.
• The instruction register is where the instruction can be copied and held for study by the control unit,
• The address buffer and data buffer are two registers that are a “drop-off” point when the processor wishes to copy information from a register to primary storage (or read information from primary storage to a register). Data Storage - Memory Management Unit (MMU) ?

## 4 - Performance

### 4.1 - Maximum Throughput Calculation

The maximum Throughput is the amount of data that the CPU is able to process without any latency by interfering processes.

To calculate the Maximum Throughput in bytes we use the following equation:

$$T = \frac{W}{8} * (S*1,000,000)$$

Where:

• T equals maximum throughput,
• W equals bus width
• and S equals bus speed in MHz.

A 33MHz CPU operating on a 32 bits wide bus would be then able to process more than:

• 1.32E+8 Bytes per second (ie 132 * 1,000,000)
• of 125.8 megabytes per second. (ie 132 * 1,000,000 / 1024 / 1024)

The equation above might be accurate to a certain extent but in reality the number might drop a bit caused by overhead.

### 4.2 - Benchmark: SPECint

Because of these problems, various standardized tests such as SPECint have been developed to attempt to measure the real effective performance in commonly used applications.

### 4.3 - Multi-core processors

Processing performance of computers is increased by using multi-core processors, which essentially is plugging two or more individual processors (called cores in this sense) into one integrated circuit. Ideally, a dual core processor would be nearly twice as powerful as a single core processor. In practice, however, the performance gain is far less, only about fifty percent,due to, e.g.:

• imperfect software algorithms
• and implementation.

## 5 - Quiz

What usually has the greatest negative effect on processor performance?