Taken from Reddit, it's a good article.
An explanation of what makes a CPU more or less powerful than another
I am posting this because it has come to my attention that a fair portion of the people that are building their new rigs don't actually know why the components that they chose are as powerful as they are. This will hopefully explain enough for you to have a working understanding of your processor's inner workings.
This first portion of this explanation is taken from a post I made in /r/buildapcforme and helps to explain what makes a CPU more or less powerful, and also addresses some common misconceptions about CPU's:
Three main factors are taken into account to find how powerful a CPU is.
To put it simply, a core is like another processor inside your CPU, and these contain threads. Usually there is 1 core to a thread, but in certain Intel CPUs, hyperthreading creates "fake" or virtual cores that aren't quite as good as real ones, but still help. Most things such as games can't take advantage of more than 2 cores, so that's where the next two factors come into play.
CPU clocks are measured in GHz (Formerly KHz & MHz), and are the speed in which they operate. These clocks can be increased on certain CPU's at the cost of extra heat. A higher clock speed usually means a hotter CPU, so third-party CPU coolers can be installed to make the CPU cooler, and sometimes even quieter. AMD's clock speeds are usually much higher than Intel's, and this leads to a popular misconception that they are better, when in fact they are usually worse, due to the last factor:
Instructions Per Cycle:
Instructions Per Cycle, or IPC, is one of the most important factors in determining CPU power. To try and explain it best, imagine 2 different CPU's. CPU 1 is running at 50 MHz with 75 IPC, while CPU is running at 50MHz with 50 IPC. Each instruction completes the operations that your program needs in order to function, thus, completing the most in the least amount of time is crucial. Look at how quickly CPU 1 overtakes CPU 2 in power:
CPU 1: 75 instructions
CPU 2: 50 instructions
CPU 1: 150 instructions
CPU 2: 100 instructions
And 100 cycles in:
CPU 1: 7500 instructions
CPU 2: 5000 instructions
CPU 2's company can't compete with CPU 1's company's instructions per second, so they raise the clock speed. Unfortunately, it's impossible to raise the clock speed high enough to be on even ground with CPU 1. This is when CPU 2's company increases the cores in CPU 2. Now, if CPU 1 has 2 cores running at the same speed and IPC as before, and CPU 2 has 4 cores running at the same speed and IPC has before, we actually see CPU 2 overtake CPU 1! Unfortunately though, most applications cannot use all four cores. Thus, the extra cores don't matter for the most part. But CPU 2 still sees some use. In order to compete, not only is CPU 2 either the same price or cheaper, but it finds a niche in a different market, with things like rendering that can use all 4 cores. While CPU 1's company may have CPU's that fare much better, and even have the same amount of cores as CPU 2's, those processors are much more expensive. Thus, CPU 2 is often used in PC's that just don't have a high enough budget for a better CPU from CPU 1's company. CPU 2's company still sees use in gaming and normal applications though, and makes budget CPU's that actually don't do that badly for their price.
So this leaves another question on the table: Why? I'll answer some common questions about CPU's now.
Q: Why aren't games optimized for more than one or two core(s)?
A: I'm going to use a portion of the wikipedia page on the Megahertz Myth in order to explain this.
Let's have 2 CPU's again as an example. Their IPC here isn't necessary, it should be assumed that their IPC is identical. It should also be assumed here that 1 core = 1 thread. CPU 1 is a single-core processor running at 50MHz, whereas CPU 2 is a dual-core processor running at 25MHz. In a properly optimized application, these processors would be effectively equal. Let's get some basic code here to help demonstrate:
2 goto 1
Right now we are telling the processor to add 1 to the value of x and then to repeat the instruction. This would run indefinitely. Both CPU's will complete this in the same amount of cycles, but CPU 2 is unable to use both cores. To quote the wikipedia page mentioned previously: "... the new value of x must be derived by the same core as the previous value, effectively limiting the process to one core". This means that only one core can be used for this code, as the second core cannot retrieve information processed by the first core. Thus, the single core CPU will perform at twice the speed as the dual-core one. But what happens if the code is changed?
3 goto 1
In this example, because there are 2 different equations to complete that are entirely separate from each other, CPU 2 is able to split the workload between the two cores. Thus, it will operate at the same speed as CPU 1. (Note: It is not nearly this easy to create multi-threaded applications, this is just for the sake of simplicity.)
Q: What is a "Hertz"?
A: One Hertz (Hz) is equivalent to one cycle per second. One KHz is 103 (1,000) Hz, one MHz is 106 (1,000,000), and one GHz is 109 (1,000,000,000) Hz. This pattern continues upwards into Terahertz and such.
Q: Why not just make clocks even higher to compensate properly for a lower IPC?
A: This was actually famously a mistake first made by Intel, not AMD as one might assume. During the late 90's to early 2000's, Intel's Pentium series was marketed solely on the fact that they had a higher clock than AMD's CPU line. The clock kept getting higher and higher until they ran into thermal dissipation issues at around 4GHz. Then when Intel's Core 2 series processors came out, they massively increased the IPC and decreased the clock speed, resulting in a much more stable CPU. AMD actually not only passed the 4GHz barrier, but the 5GHz barrier with their FX series though, which goes to show what change can be made in just a few years.
Q: What is a Cache?
A: Your CPU's cache is what is used to access the main memory (Random Access Memory) faster. Caches operate on a hierarchy, with a standard CPU having L1 (fastest) to L3 (Slowest). The larger a cache is, the more "Hits" it gets, but the higher the latency. A hit occurs when a CPU needs to find a value in the system's main memory. When a CPU tries to find the value, it first searches for that value in the cache. Due to the fact that the cache gets slower the larger it is, the CPU does this in a multi-stage process.
The CPU checks for the location in the main memory using the fast but small L1 cache.
The CPU checks for the location using its medium speed but larger capacity L2 cache.
The CPU checks for the location with its slow, biggest capacity L3 cache.
If none of these caches returned a hit, then the CPU directly checks the main memory, which is much slower than a cache.
During any of these stages, if the memory location returns a hit, the process starts over for the next location.
Finally, there are also some lesser looked at aspects when buying a CPU such as wattage, chipset, and OC capability.
Wattage: The amount of Joules per second required to power the CPU.
Chipset: From wikipedia's page on Chipsets : In a computer system, a chipset is a set of electronic components in an integrated circuit that manages the data flow between the processor, memory and peripherals. Older chipsets may have a slow FSB speed that can limit the ram speed that can be used. The frontside bus is also used in overclocking due to how clock speed is calculated. A clock multiplier is added to the FSB speed to get a frequency. Example: A FSB speed of 200MHz with a clock multiplier of 10x would produce a frequency of 2000MHz (2GHz). So, if we overclocked the FSB to 250MHz, the clock speed would become 2500MHz.
OC capability: Simply, whether or not the CPU can be overclocked. Pretty self explanatory.
I hope this helped explain a lot about how CPU's function, and why to consider some processors over others. If you have any questions, or if I forgot to include something, then feel free to message me or leave a comment!