Monday, March 24, 2008

Dual Core Defined

Dual Core Defined

As the tasks that computers can perform get more complicated, and as people desire to do more at once, computer manufacturers are trying hard to increase speed in order to keep up with demand. Having a faster CPU has been the traditional way to keep up, since a faster CPU can do a task then quickly switch and work on the next. However, due to size, complexity and heat issues it has become increasingly difficult to make CPUs faster. In order to continue to improve performance, another solution had to be found.

Having two CPUs (and a motherboard capable of hosting them) is more expensive, so computer engineers came up with another approach: take two CPUs, smash them together onto one chip, and presto! The power of two CPUs, but only one socket on the motherboard. This keeps the price of the motherboards reasonable, and allows for the power of two CPUs (also known as cores) with a cost that is less than two separate chips. This, in a nut shell, is what the term "Dual Core" refers to - two CPUs put together on one chip.

There are more subtle differences between brands (how they combined two cores onto one chip, and the speeds they run each core at) that can affect how much of a boost in performance you can get from having a dual core CPU. Additionally, different types of programs get differing benefits from having a dual core chip.


Thread Scheduling

There is one more thing to keep in mind: how a computer knows when to use each core. There is a part of the Windows operating system called the 'scheduler' which tells the CPU what program to be running at any given time. This allows several programs to run at the same time, while the processor switches back and forth between them as needed. When a lot of programs are running, a computer can begin to seem slow, since Windows' scheduler is having to divert the computer's CPU resources in many directions. If a dual-core processor is present, the scheduler suddenly has twice as much CPU resource to work with. This would allow for things like being able to run one core specifically for a game, while using the other core to do "background" things that keep the rest of the system running. Sometimes both cores can even work on the same program (if it is designed to take advantage of more than one core - this is called being "multi-threaded"). However, it is important to note that if you are running a single program and it is not "multi-threaded", you will not see a benefit from more than one CPU or core.


Dual Core Implementation

Because of the different ways AMD and Intel came into the dual-core market, each platform deals with the increased communication needs of their new processors differently. AMD claims that they have been planning the move to dual-core for several years now, since the first Athlon64s and Opterons were released. The benefit of this can be seen in the way that the two cores on their processors communicate directly -- the structure was already in place for the dual cores to work together. Intel, on the other hand, simply put two of their Pentium cores on the same chip, and if they need to communicate with each other it has to be done through the motherboard chipset. This is not as elegant a solution, but it does its job well and allowed Intel to get dual-core designs to the market quickly. In the future Intel plans to move to a more unified design, and only time can tell what that will look like.

Intel did not increase the speed of their front-side-bus (the connection between the CPU and the motherboard) when they switched to dual-core, meaning that though the processing power doubled, the amount of bandwidth for each core did not. This puts a bit of a strain on the Intel design, and likely prevents it from being as powerful as it could be. To counteract this effect, Intel continues to use faster system memory to keep information supplied to the processor cores. As a side note, the highest-end Intel chip, the Pentium Extreme Edition 955, has a higher front-side-bus speed, as well as having a larger (2MB per core) cache memory and the ability to use Hyperthreading (which all non-Extreme Edition Pentium D processors lack). This makes it a very tempting choice for those wanting to overcome some of the design handicaps of Intel's dual-core solution.

AMD, on the other hand, does not use a front-side-bus in the traditional sense. They use a technology called HyperTransport to communicate with the chipset and system memory, and they have also moved the memory controller from the chipset to the CPU. By having the memory controller directly on the processor, AMD has given their platform a large advantage, especially with the move to dual-core. The latest generation of AMD single-core processors can use single- or dual-channel PC3200 memory, but it is interesting to note that even though dual-channel operation doubles the memory speed, it does not double the actual memory performance for single-core processors. It appears that dual-channel memory just provides significanly more bandwidth than a single processor core can use. However, with dual-core processors all that extra bandwidth can be put to good use, allowing the same technology already present in single-core chips to remain unchanged without causing the same sort of bottleneck Intel suffers from.


AMD Performance Comparison

To compare performance differences here at Puget Custom Computers, we compile a selection of benchmarks taken from systems we have built in the past. This comes in very useful when looking to answer questions about performance, like we're doing here! We will tackle AMD first:

No comments: