What is the relationship between FSB, cache, cores, and clockspeed?

trepanation

Distinguished
Aug 20, 2009
70
0
18,630
Here's a quote taken from wikibooks:

Often in advertisements (especially for pre-built systems) a processor will be described briefly, like this:
Pentium 4 at 3.2 GHz
But there’s more to it than that, a more detailed specification would read as follows:
Intel Pentium 4 3.2GHz LGA775 FSB800 HT L2-2MB
Which parses out to:
Model: Intel Pentium 4
Clock Speed: 3.2GHz (=3200MHz)
Interface: Land Grid Array 775
Frontside Bus: 800 Mhz
Other Spec: HyperThreading technology
L2-Cache: 2MB (=2048 kB)
So we can see that while 3.2 GHz is a screaming fast clock speed, this processor might not be as fast as, say, a processor with a 4 megabyte L2 cache, a 1066 Mhz front side bus and two cores, even if that processor runs at a slower clock speed.

http://en.wikibooks.org/wiki/How_To_Assemble_A_Desktop_PC/Choosing_the_parts#Descriptions

So I guess that, in calculating your CPU's potential (as in, independent of mobo and etc) speed, there are 4 values: the FSB, the cache, the number of cores, and the clockspeed (CS). From my rough understanding, FSB and CS are multiplicitly related, so a clockspeed of 3 GH and an FSB of 900 would result in a speed of...um, 3GH* 900mh, or something. So, having an extremely high CS of... 3.5 GH, but an extremely low FSB value of like 500 MH would result in a much slower CPU than a 3.0 GH CS but a 1000 MH FSB. Am I right?

Now then, multiple cores. I think I understand that part - having a single core means that you can only run one "thread," but if you are trying to run 2 then it will not run as fast, and if each thread has the exact same demand then upgrading to a dual core will double your speed (providing that your CS and whatever else is powerful enough), and if you are running 4 threads then a quad core will quadruple your speed, and etc. But since most programs don't support quad core just yet, you may be wasting your money since it won't give you anything extra past a certain number. Dual core is a big upgrade from single core though, even if you are only running 1 program, because Windows will run a bunch of processes in the background anyway. Am I right?

I don't think I get what the cache is, though.

Please, give me as PRECISE details as you possibly can, and correct me on every little error that I have made in my assessment, and I am sure I made big ones too. I am very, very interested in learning as much about this as I can, because I want to build my first computer as best as I can. I was a total newbie 3 days ago, then I started reading guides and asking questions, and I've learned so much, but I am sure I have plenty more. Please spare me no details!

Thank you.

*edit*

Oh, and while we're at it... I've had my eye on the Q6600 as my CPU. Give me your opinions.
 
These relationships vary from one architecture to another.

A very common architecture is the Intel P45 chipset,
which uses a Northbridge chip to mediate traffic
between the CPU and RAM.

On such Intel chipsets, the bus between the Northbridge
and the CPU is "quad-pumped" which means that it
transfers data four (4) times for every tick of the
raw bus clock.

Thus, using the nomenclature from the popular CPU-Z software,
the "Bus Speed" might be 400 MHz, which results in a
"Rated FSB" of 1,600 MHz.

The most common RAM has been DDR2, now being surpassed
by DDR3. "DDR" means "Double Data Rate".

Thus, the raw DRAM clock "frequency" might be 400 MHz also,
producing a rated memory speed of 800 MHz aka DDR2-800.

With these numbers, the FSB : DRAM ratio is 1 : 1 or "synchronous"
although Intel chipsets will run fine with an "asynchronous" ratio
e.g. Bus Speed of 333 MHz and DRAM Frequency of 400 MHz.


The number of cores in any given CPU will determine just how
much parallel computation that CPU can perform.

And, the size and number of Level 1 and Level 2 CPU caches
will also influence overall CPU speed.

Because CPU cores have become so amazingly fast,
it's generally a good policy to keep as much computational work
inside those CPU caches, to minimize the number of
requests that must be transmitted over the bus
to the Northbridge, and then over the other bus
between the Northbridge and RAM.


Now, when you gravitate to the Core i7 architecture,
lots of things change, most notably the existence
of triple-channel RAM and an integrated memory controller.

AMD was the first to implement integrated memory controllers,
and it took some time for Intel to catch up, but Intel did finally
catch up in a brilliant manner (I'm an Intel "fan boy" :)


P.S. The Q6600 has been a very successful CPU for Intel;
but its performance is now exceeded by models like
the Q9550 which uses a smaller 45nm die permitting
a much larger L2 cache. Also, the latter cache is
dynamically shared, whereas the L2 cache in the
Q6600 is not shared in the same manner.

And, the Core i7 architecture is far superior again,
because of its integrated triple-channel memory controller
and support for Hyperthreading, effectively
processing 8 threads in hardware simultaneously
with a memory bandwidth exceeding 25,000 MB/second
at stock settings.

By comparison, DDR2-800 has a maximum bandwidth of 6,400 MB/second
(8 bytes @ 800 MHz).


I hope this helps.


MRFS
 
Compared to the CPU, RAM memory is slow. Cache is very high-speed on-chip memory which (hopefully) keeps a copy of the most frequently used stuff from RAM. The more cache you have, the less the system depends on RAM speed. The more cores and more active threads you have, the more cache you need to keep the CPU from having to wait too much.

Modern CPUs have enough cache so that the vast majority (in excess of 90%) of memory requests can be found in the cache rather than having to go to RAM. This is why RAM speeds are the least significant thing to worry about in overclocking a system - if you speed up RAM by 10% but only 10% of the memory accesses use it, then you'll only get a 1% speedup in overall throughput (and that's assuming that every instruction references RAM, which isn't true by a long shot).

There are other details such as whether the cache is shared among the cores, how many cache levels there are, the cache organization, etc. But that's the basic idea.
 


A Pentium 4's clockspeed was computed by multiplying the FSB and multiplier. Intel's FSB is multiplied by 4, as they say it is "quad-pumped" saying that it runs 4 bits at the same time at the same clock rate. So from your example:

Model: Intel Pentium 4
Clock Speed: 3.2GHz (=3200MHz)
Interface: Land Grid Array 775
Frontside Bus: 800 Mhz = 200MHz (actual)
L2-Cache: 2MB (=2048 kB)

Given the 3200MHz, you divide it with the actual FSB value of 200, giving you a multiplier of 16. So raising the FSB to 205MHz would yield 3280MHz. Also for Intel's case raising the FSB would also raise the RAM's speed. If your RAM is a DDR module, which runs at 400MHz (200MHz actual), raising the FSB by 5 MHz would also raise the RAM's rate to 205MHz which would be declared as 410MHz.

These computation of multiplier and FSB are applicable to Intel's processors, AMD's are done a bit differently and you'd need an AMD guy to explain the rest.



Putting things into reality

Your 3.5GHz processor may have originated from something like this:
Multiplier: 7
Base FSB : 200 (normalized to 200MHz for both processors)
Original Clock Speed: 1400MHz
Overclocked FSB: 500MHz
Overclocked speed : 3.5GHz

Your 3.0GHz processor would be something like this:
Multiplier : 3
Base FSB : 200 (normalized to 200MHz for both processors)
Original Clock Speed: 300MHz
Overclocked FSB: 1000MHz
Overclocked speed : 3.0GHz


Raising the FSB would have an appropriate increase in clock speed and performance. Your 3.5GHz was originally 1.4GHz which is worlds faster than the 300MHz processor. Also in most cases it'd be impossible to reach higher than 500MHz as it requires a pretty special board with pretty powerful VRMs, and cooling. The final clockspeed is where you look at for performance, since generally every generation of processors have the same or near the same starting FSB.




More cores would be better, but sometimes when the application is not optimized to make use of more than 2 cores, higher clockspeed would be better. Benchmarks are a clear indicator to show you on which applications benefit from clockspeed and which from cores, though the trend is now to move on to more cores.



Cache is where instructions and data is stored before they are executed by the cpu. In general the current 2~4MB cache of Core 2 processors are more than enough, but Intel keeps bumping it up for us (hooray progress).

Here's an article about increasing cache sizes:
Does Cache Size Really Boost Performance?
http://www.tomshardware.com/reviews/cache-size-matter,1709.html
 
Something else to think about when deciding on a multicore CPU. Windows does use all the cores. Even though you may not have a single program installed that can use more than 1 core, a multicore CPU still has some benefits. While you are running that single threaded program, Windows makes use of the other cores to run background tasks. So everything runs a lot smoother, and faster. A modern PC can be running an amazing amount of stuff in the background, just look at your taskbar. Do you have 3 or 4, 8, 10, even 20 icons showing at the bottom right? A multicore CPU might not be absolutely needed, but let me tell you, they sure do make a difference in overall Windows and program performance. A dual core is a basic requirement for any modern PC, a Quad may not be really needed, but they sure are nice to have.
Kind of like 4 wheel drive on a vehicle. You don't need it most of the time, but when you do need it, boy it sure is nice to have.
 


^=This poster gave an excellent explanation of cache, i couldn't put it any better.
-The cache is like a mini ram on the processor and 1. Its much faster then ram and 2. ITs much closer then ram so latency is practically elimated.
-FSB is an acronym for the Front Side Bus, this a method of connecting the processor and ram together using the northbridge of a motherboard. The new method called QPI which has surpassed FSB is much faster since it directly connects the ram and processor resulting in lower latency. (Quick Path Interconnect).

-Core and clockspeed have to do with the architecture of the processor. The clockspeed is basically how fast the processor is able to perform calculations. Cores are like physical divsions of a processor. However I really dont know how to put this is in a good explanation so maybe another poster can help :)