Front Side Bus
IntroductionShopping for a new processor and motherboard can be confusing. Some of the most important terms and concepts regarding system performance are also the hardest to understand. Terms like: System Clock, Quad Pumping, Double Pumping, DDR, FSB, SDRAM, Dual Channel, and QDR make many new builders cringe. In this article I will walk you through some of these important concepts so that you can make a more informed decision when upgrading your current system or building a new one.
| Go to Top |
Part One: What's a busTo get anything done with a computer you have to get the information you input to the CPU and then to any attached devices such as cards, displays, and other output devices. Inside the computer itself, this information travels in the form of signals over what is known as a bus. You can think of a bus as a road and the signals as cars. A wide road (bus) can support more cars (signals), and a smaller road (bus) supports less. The cars (signals) on the road (bus) have a speed limit (the bus speed). Although a speed limit can be broken (an overclocked bus) doing so can have adverse effects on the cars (signals).
Going along with this analogy: A computer is like a small city. You do not have just one road, but instead you have several different roads with different names and speeds.
There are three main buses in most computers:
)1 PCI Bus- The PCI bus connects your expansion cards and drives to your processor and other sub systems. On most systems the bus speed of the PCI bus is 33MHz. If you go higher than that, then cards, drives, and other devices can have problems. The exception to this is found in servers. In some servers you have a special 64-bit (extra wide) 66MHz PCI slots that can accept special high-speed cards. Think of this as a double sized passing lane on a major road that allows higher cars to go through.
2) AGP Bus- The AGP bus connects your video card directly to your memory and processor. It is very high speed compared to standard PCI and has a standard speed of 66MHz. Only one device can be hooked to the AGP bus as it only supports one video card so the speed is better compared to the PCI bus, which has many devices on it at once.
3) Front Side Bus (FSB) - The Front Side Bus is the most important bus to consider when you are talking about the performance of a computer. The FSB connects the processor (CPU) in your computer to the system memory. The faster the FSB is, the faster you can get data to your processor. The faster you get data to the processor, the faster your processor can do work on it. The speed of the front side bus depends on the processor and motherboard chipset you are using as well as the system clock. Read on for more information about the Front Side Bus later in this article.
| Go to Top |
Part Two: The System ClockThe system clock is the actual speed of your FSB with out any enhancements (such as double pumping, or quad pumping) on it. The system clock is also sometimes just called the bus speed. From the system clock your PCI bus speed is determined via the use of a divider and then your AGP bus speed is determined by multiplying the PCI bus speed by 2. The dividers allow you to have a faster speed on your PCI and AGP bus while still allowing for the faster operation of the main FSB. In most systems PCI dividers are set automatically and you can not alter them, however, in newer motherboards geared towards computer enthusiasts -- PCI dividers can sometimes be manually set in order to allow you to raise the System clock higher then its normal rate. The three most common dividers built in to motherboards are: 1/5 (used on a 166MHz system clock), 1/4 (used on a 133MHz system clock), and 1/3 used on a 100MHz system clock. A 1/6 divider is sometimes available for overclocking and future support.
Example: If you have a 166MHz system clock and you set a 1/5 divider in your motherboard's bios then your PCI bus speed would be 166/5 = ~33MHz and your AGP bus speed would be ~33*2 = 66MHz.
Why Isn't My Processor the Right Speed?
An often-misunderstood property of the system clock is its effect on processor speed. You see, a thing called a "CPU Multiplier" determines the speed of a processor in MHz. If you take the multiplier of the processor and multiply it by the system clock speed you get the speed of your processor. Your CPU has its multiplier hard wired in to the chip, and this *normally* cannot be changed. Your system clock is another matter. It can be set on your motherboard by using BIOS or a set of switches on the board itself. This is very important. Most motherboards do not automatically set the system clock for you when you install a new processor. We often get reports from new system builders saying that they received the wrong speed processor when in actuality; the new builder forgot to set the system clock to the right speed for their processor. For a list of standard system clock speeds please see part IV of this article.
| Go to Top |
Part Three: Double Pumping, Quad Pumping, and DDREarlier in this article I compared a bus to a road, and the bus speed to a speed limit. This isn't entirely correct because unlike a standard speed limit in real life you are not talking about miles per hour or kilometers per hour, you are talking about MHz or millions of clock cycles a second. A cycle is easily represented by a sine wave.
A clock cycle is how long it takes to go from 1 to 0 (from the peek of the wave to the bottom of it). So how does that affect your system?
Your processor and memory all can be affected by various enhancements to speed. To understand this you first must look back at the old way of doing things:
Traditional parts with out any enhancements can only send/receive a signal once a cycle. A good example of this as far as memory is concerned is standard SDRAM such as PC133. The traditional approach has been around for a long time and it matched well to the un-enhanced buses like you find on processors such as the Intel Pentium / II / III or AMD K6 series. For these types of systems standard SDRAM made a lot of sense because the memory and the processor both were able to transmit at the same time and the bus speed could be synchronized.
Enter the Present - The Double Pumped bus w/DDR
As time progressed processor and memory manufacturers found ways of improving the number of access times per cycle. With the release of the AMD Athlon Processor the world saw the concept of a "Double Pumped FSB". With a double pumped bus the processor could send and receive a signal from the memory sub system twice a cycle. This was a great idea; however this meant that standard SDRAM memory no longer lined up. Standard SDRAM memory could only send/receive once a cycle. What was created is what is known as a bottleneck -- or an obstacle to maximum performance. Removing the bottleneck required a new and faster type of memory and the memory that filled this gap was DDR memory or Double Data Rate memory.
DDR memory can transmit twice a cycle just like the double pumped bus on an Athlon processor, which means that using it with an Athlon processor creates an optimized situation just like you had before with the traditional system.
Quad Pumping, the P4, and Rambus Memory
When the Pentium 4 came out they introduced a new catch phrase to the market: "Quad Pumped" (also known as QDR). The Pentium 4 FSB can handle 4 signals a cycle. When the P4 was first released motherboards only supported traditional SDRAM accessing once a cycle. As you can imagine, such a combination of single access a cycle memory and a four access a cycle processor gives you a massive bottleneck and greatly reduces the potential performance of the processor. Intel was very quick to adopt the fastest memory technology available: Rambus RIMM memory. Although Rambus memory only accesses twice a cycle like DDR, Rambus memory comes in much higher speeds than DDR. The base speed of the popular Rambus memory at the time was a double pumped 400MHz (800MHz). Although the memory does not handle 4 signals a cycle it does work very well since 400MHz is also the enhanced speed of the standard P4 FSB (4 accesses a cycle x 100MHz). The fact that the memory does two cycles for every cycle that the bus helps makes up for the two signals a cycle difference. It is not as good as true QDR would be but the technology is widely available unlike QDR memory.
Dual channel Technology
Lets say you have a car that can hold 4 people but you've got 8 people to transport across town. What do you do? Well you could take one load of people across town, and then go back and get another load of people (a standard memory system) or if money was no object you could simply buy another car and have the other half of the people follow you across town in the other car (a Dual channel memory bus). With dual channel technology you use two memory modules at once to further enhance performance. This essentially doubles the number of signals a second you can handle and doubles your bandwidth (volume of information that can be transferred at once). Point Blank: Dual channel technology increases memory performance but it costs more money because you have to buy memory modules in pairs. Dual channel technology also costs more because the motherboard has to support it in the chipset and a chipset that supports dual channel technology costs more due to the higher complexity of the memory bus. Higher motherboard cost + higher memory cost = higher overall system cost.
Dual channel Rambus has been around for a long time but Dual Channel DDR technology is just now hitting the scene in mass. Since DDR memory is cheaper than Rambus memory and more widely available, Dual Channel DDR should be a good option for the P4 processor but the problem is that as of this writing no consumer level chipset supporting Dual Channel DDR exists for the Pentium 4. (Dual channel DDR is widely available for the AMD Athlon XP series of processors via the nforce2 chipset by nVidia,) When Dual Channel DDR solutions emerge for the Pentium 4 they will quickly become the best price vs performance ratio on the P4 side.
Update [Sept. 2007]: At this point, pretty much any motherboard you buy is going to have either Dual Channel DDR, DDR2, or DDR3. Most but not all Dual Channel supporting motherboards will operate in a slower single channel mode if using one stick of ram, but work best with ram in pairs. On these boards its best not to try the odd 3 stick of ram configuration though as some motherboards will have problems operating in this fasion or plain won't POST.
It's worth noting that at this point, RAMBUS is no longer widely available nor is it supported by any curent motherboard chipset. Those with Rambus based systems are strongly encouraged to upgrade to systems utilizing DDR2 or DDR3. As far as which to go with, [DDR2 vs DDR3] right now DDR2 is much much more common than DDR3 and cheaper. DDR3 will probably start becoming common sometime in 2008 when more motherboard chipsets come out with full support for it.
| Go to Top |
Part IV: The System Clock, the Front Side Bus, and OverclockingNow that you understand the performance enhancements in the FSB of a processor it is important that you understand how to figure out the processor multiplier and the proper system clock. When you go to purchase a processor you are told in the ad / description for the processor what FSB it has. To determine the proper system clock for the processor simply divide the FSB by the performance enhancer (2 for the double pumped bus on AMD Athlon XP/Thunderbird/Duron processors or 4 for the quad pumped bus on the Intel Pentium 4).
If your processor has a ... FSB then the system clock speed should be:
66MHz (Various Celeron and older): 66MHz clock
100MHz (Pentium II / Pentium III / K6): 100MHz clock
133MHz (Pentium II / Pentium III / K6): 133MHz clock
200MHz (Athlon, Duron, Thunderbird): 100MHz clock
266MHz (Thunderbird, XP): 133MHz clock
333MHz (XP): 166MHz clock
400MHz (Pentium 4): 100MHz clock
400MHz (AMD XP): 200MHz clock
533MHz (Pentium 4): 133MHz clock
800MHz (Pentium 4): 200MHz clock
800MHz (AMD64): 200MHz clock
1066MHz (Pentium 4/LGA775): 266MHz clock
1333MHz (Pentium 4/LGA775): 333MHz clock
Now, remember what I said about the processor multiplier earlier in this article? (Processor speed = processor multiplier x system clock)
If you do not know the multiplier for your processor simply take the proper system clock speed for it and divide that into the rated processor speed and then round the dividend to the nearest .5. Examples: The Pentium4 3.06GHz processor has a FSB of 533MHz. Its system clock is 533 / 4 = ~133. The multiplier is 3,060 / 133 = ~23.
The AMD Athlon XP2700+ has a main clock speed of 2.17GHz and a FSB of 333MHz. Its system clock is 333 / 2 = ~166MHz. The multiplier is 2,170 / 166 = ~13
Underclocking and Overclocking
Underclocking or the act of running a processor or device at under its rated speed is accomplished by simply running the device at a lower bus speed (or if possible a lower multiplier). Most underclocking is done by accident by new system builders. Most motherboards come defaulted to the lowest system clock speed that the motherboard supports. Since the system clock speed is usually not automatically set by the processor you put into the board, this means that if you put a processor with a higher bus speed than the lowest one the board supports, you are underclocking the processor.
Example: Lets say I buy an AMD Athlon XP2400+ processor with a FSB of 266MHz. (XP2400 has a clock speed of ~2000MHz). If I do not set the system clock to 133MHz then I get the processors multiplier (15) times the default bus speed (100). This gives me the wrong processor speed (1500MHz) and the motherboard will either tell me I have a 1,500MHz thunderbird processor, or a XP1700+ processor. Changing the system clock in bios to 133 will make the motherboard detect the processor properly and give me the right processor speed.
Overclocking or the act of running a processor or device higher then its rated speed is accomplished by increasing the system clock (or if possible the multiplier). The biggest issue with overclocking is keeping your PCI bus close to its speed limit (33MHz). Since a divider of your system clock determines your PCI bus, you not only affect your processor when you increase it, but also other parts of the system. Devices attached to the PCI bus are much less over clocking friendly then either memory or a CPU. When you overclock a processor using the system clock your processor speed is determined in the same way as one would for finding normal clock speed: processor multiplier x system clock = processor speed.
Example: An Athlon XP1800+ (1.53GHz) processor with a FSB of 266 and its system clock overclocked to 145MHz would give you a speed of ~1.67GHz and cause the board to detect the processor as a XP2000+.
| Go to Top |
Part V: Summary and ConclusionWhen you are choosing and installing components in a system you should now know how to properly set the system clock in order to achieve the full potential of the system. You should also now understand more about matching memory with a processor. Go with a motherboard/system that complements your CPU and provides it with memory support that well matches the FSB potential. Slower memory technologies such as PC133 SDRAM do not work well with current processors such as the Pentium 4 and Athlon XP. Although synchronizing the memory speed and the FSB speed is best it is OK to use memory that is faster then the FSB of your processor provided that the motherboard supports it.
| Go to Top |
UpdatesSince this guide was written a few new technologies have emerged such as DDR2 memory and 64 bit processors for Desktop. Here are a few additional pieces of information about these technologies:
DDR2 Short and SweetThere are a few major things you need to know about DDR2 when building a system:
Basic Functionality: DDR2 memory has a different approach to design at the chip level then DDR. The simplest way to understand how it works would be to think that at the low level it had two chips of half the stated memory speed working in tandem together to achieve the full speed stated. So for DDR2 400 it would be something like 2 chips of DDR200 working together to achieve the full 400 speed. Notice that I say "chips" not sticks of memory. All this happens on 1 stick of memory.
The overall effect of this trickery is that manufacturers can scale up the speed of the memory beyond the limits of DDR, with only taking a small hit to the timing of the memory ( how long it takes for the memory to respond back to a request ).
This means that it's possible, and expected to see memory speeds of 533MHz or higher for DDR2. In fact, the current concensus is that if you want to build a system, and have a choice between a motherboard with DDR1 and DDR2 then to see a benefit to DDR2 you need to at least get one speed grade higher than that of the max normal speed of DDR1. ( 400MHz ). This is because the timings ( latency ) of DDR2 are worse than DDR. Essentially in most situation DDR400 ( especially low latency DDR400) is faster than DDR2 400. However, when you get to DDR2 533 the speed boost makes up for the slower timings.
As far as matching FSB to DDR2 speed my recommendations are to skip DDR2 400 and opt for going with the following:
800MHz FSB = DDR2 533MHz ( Ideal ) or DDR2 400MHz ( Matched but Slow. ) 1066MHz FSB = DDR2 667 ( Good ) or DDR2 533MHz ( Matched )
Generally you want to keep the system clock of your memory matching with the root clock of your memory or one step above. So the system clock on a 800MHz FSB P4 is 200 (quad pumped) so that matches DDR2 400 (essentially 200 unimproved) or is good with 1 step up DDR2 533MHz (essentially 266 unimproved). Note however that if you only had a 800MHz FSB processor then DDR2 667 really probably isn't going to help much. Once you pass the 1 step above mark on the memory you have diminishing returns unless you can get to double (DDR2 800MHz).
Compatability: Generally a motherboard is only going to accept DDR1 or DDR2 not both. The slots are physically different and have a different number of pins, however people have been known to force memory into the wrong slots ( And that ends in horrible results! ). Be careful when installing it and make sure the motherboard takes that kind of memory before attempting.
At the time of this writing only motherboards for Pentium4 or Xeon accepted DDR2. AMD Socket 754 and Socket 939 motherboards can't accept DDR2 due to the integrated memory controller in the CPU. AMD is making a line of CPUs that can work with DDR2. They will use new motherboards and have a new socket called M2.
Additional Notes on DDR2: 1) DDR2 is not QDR like I mentioned earlier, the technology is different. 2) DDR2 does give you definate benefits and it is recommended. 3) At the time of this writing ALL motherboards that used DDR2 were Dual Channel Ready. 4) It is not uncommon to hear of problems from people trying to use 3 sticks of DDR2. This stems somewhat from what I mentioned in #3. I recommend either using 1,2 or 4 sticks of DDR2. ( more is ok if you are doing a server but add them in pairs, don't use a odd number of sticks if you can avoid it ).
A few notes on 64 bit1) You can use 32 bit operating systems with a 64 bit AMD CPU or EMT64 Enabled Pentium 4/Xeon.
2) If you plan to run a 64 bit OS with your 64 bit processor, and are actually going to use 64 bit applications ( not just 32 bit applications in 64 bit OS ) then it is recommended that you double the amount of memory you think you need. So for example if you think you would be comfortable with 512mb of memory, use 1GB. If you wanted 1 GB use 2 GB. [Generally 2GB is fine for most anything].
3) The most common issue with 64 bit CPUs and 64 bit operating systems is that you need all new drivers for your hardware. Often the driver CDs that come with hardware lack the 64 bit driver and you have to download new ones from the web.
| Go to Top }