Both Intel and AMD have been slowing down the rate for increasing the clock speeds of processor. Part of this is due to the limitations of the current technology and designs. To try and keep up to pace with future developments, both companies are introducing dual-core processors in 2005.
For some time now, the benefits of multiple processors have been seen in the server environment. By having multiple processors on a single server, the tasks running on the server can be divided between the processors to allow the system has a whole to function faster. The goal of a dual-core CPU is to take two physical processors and integrate them on one physical chip.
Before going into the benefits and drawbacks of dual-core or multiple processors, it is important to understand the concept of threading. A thread is simply a single stream of data through the processor on the system. Each application generates its own or multiple threads depending upon how it is running. With current multitasking, a processor can only handle a single thread at a time, so the system rapidly switches between the threads to process the data in a seemingly concurrent manner.
The benefit of having multiple processors is that the system can handle more than one thread. Each processor can handle a separate stream of data. This greatly increases the performance of a system that is running concurrent applications such as a server.
Intel implemented something they called Hyperthreading. This is not the same as multithreading. Instead it is a technology embedded within a single core processor to make it appear to the system as if it had multiple processors. What this really did was speed up the rate at which the system could switch between multiple threads thus boosting multitasking on personal computers.
While the concept of multiple processors sounds very appealing, there is a major caveat to this ability. In order for the true benefits of the multiple processors to be seen, the software that is running on the computer must be written to support multithreading. Without the software supporting such a feature, threads will be primarily run through a single processor thus degrading the efficiency.
Thankfully, all of the major current operating systems have multithreading capability. But the multithreading must also be written into the application software. Most of the applications that the average user runs currently do not have this. As a result, any speed benefits will solely be from the operating system being able to separate applications between the processors.
A good example to explain this is to look at a typical PC game. Most games require some form of rendering engine to display what is happening in the game. In addition to this, there is some sort of artificial intelligence to control the computers controlled events in the game. With a single processor, both of these must function by switching between the two. This is not necessarily efficient. If the system had multiple processors, the rendering and AI could each run on a separate processor. This looks like an ideal situation for a multiple processor.
The problem is that the game, like most applications, is not designed to take advantage of the multiple processors. As a result, both the rendering and AI happen on a single processor leaving the second processor essentially unused. As a result, a multiple core PC will not have any speed benefit. If the game is designed with multiple threads, then a dual-core processor would be advantageous over a single processor.
One thing that has not been mentioned yet is clock speeds. Most people are still familiar with the fact that the higher the clock speed, the faster the processor will be. Dual-core processors are going to make things more complex. Since the dual-core processors are being designed to fit in roughly the same dimensions as a single core processor, speeds are not going to be equivalent.
Most of the early dual-core processors are going to be running at lower clock speeds compared to single core processors. The rational behind it is that a dual-core processor with each running at 1GHz should be equivalent to a single processor running at 2GBz. The problem is that this doesn't work in practice when the applications are not written to take advantage of the multiple processors. Until the software is written this way, unthreaded applications will run faster on a single processor than a dual-core CPU.
Those individuals out there who already use software that is multithreaded will see the most benefit from the dual processors. For the majority of people, there is not going to be much of a benefit for the dual-core over a single core processor. This will gradually change as the dual-core model becomes more common, but it will likely take some time.