C:/Computing/Processors-IO-Storage/CPU-Performance-Factors/

Introduction

The CPU, using the Von Neumann Architecture can only execute one instruction at a time. This is slow, especially when many programs need millions of instructions

Clock Speed

Modern processors can run at 3GHz+, meaning 3 billion clock cycles per second

But older processors did not have this luxury, and many still have speeds of 1.2GHz

Increasing the clock speed allows for more instructions to be done in the same amount of time.

However, there isnt a 1:1 relationship between clock speed and instructions executed

Number of Cores

A core is, in the most simple sense, an entire copy of a CPU.

A Quad (4) core processor would have 4 CUs, 4 ALUs, but may have a shared cache.

Just like Clock Speed, doubling the cores does not double the speed - the cores have to "talk" with each other, which takes some time, moreover, most programs are not designed with multi core in mind

RAM Size

RAM (Random Access Memory) is temporary storage for programs and data being used by the CPU.

More RAM allows for more programs and larger datasets to run simultaneously without relying on slower storage like SSDs or hard drives.

Insufficient RAM leads to frequent swapping between RAM and storage, significantly reducing performance.

Register Size

Registers are small, fast storage locations inside the CPU that hold data for immediate use in calculations.

The size of a register (e.g., 32-bit, 64-bit) determines how much data the CPU can process at once.

A larger register size enables the CPU to handle larger numbers and addresses, which improves performance in modern applications.

Data Bus Width

The data bus connects the CPU to memory and other components, allowing data to travel between them.

The width of the data bus (e.g., 32-bit, 64-bit) determines how many bits can be transferred at once.

A wider data bus increases data throughput, reducing the time needed to fetch or store data.

Data Bus Speed

Data bus speed refers to how quickly the bus can transfer data between components.

It is measured in Hertz (e.g., MHz, GHz) and works alongside the data bus width to determine overall bandwidth.

A faster data bus minimizes delays in data transfer, ensuring the CPU spends less time waiting for data.

Offloading

Offloading refers to delegating tasks to specialized hardware to reduce the CPU's workload.

For example, a GPU (Graphics Processing Unit) handles graphical computations, freeing the CPU for other tasks.

Other examples include network cards for communication and co-processors for intensive calculations like AI or physics simulations.