Computer - Central processing unit (CPU)

A CPU is just a device name that indicate a device that controls a computer system.

A CPU is also known as:

The fundamental operation of most CPUs, regardless of the physical form they take, is to execute a sequence of stored instructions called a machine code program. All instructions are defined in a document called an Instruction Set Architecture (ISA). Every processor that implement this ISA, need to implement each instruction described in it.

The execution of each instruction goes through four main steps (stages) that all CPUs use in their process pipeline called the instruction cycle.

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

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

Moore Law by transistor

Interface

Device interface

A CPU can communicate with other devices through two interfaces:

Processor Architecture

The central processing unit consists of two parts:

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). Virtual Memory - Memory Management Unit (MMU) ?

Performance

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.

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.

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.

Quiz

What usually has the greatest negative effect on processor performance?

• b

What usually has the greatest positive effect on IO ?

• compression !