SolutionBase: Dual core and more: Newer CPUs mean more speed

It used to be that, in order to get more CPU horsepower, you had to look for a higher Mhz rating. Now, Intel and AMD are boosting CPU power by increasing the number of CPUs on a single chip. Scott Lowe takes you on a tour of the new dual-core CPUs.

Just about every article about processors these days talks about the dual core offerings from Intel and AMD. But, what many fail to do is tell you exactly what dual core means for you. In this article, I'll talk a little, in layman's terms, about these offerings and give you a snapshot of what's available in today's market and a peek at what's to come.

Author's Note

If you're a hard core processor engineer, skip this article! If you're like most IT people, this article is probably perfect for you. Read on.

The basics

Before I get started talking about single cores and dual cores, I want to go over some of the basics to provide some background that will help what I talk about here make more sense.

You've probably heard of Moore's Law (or theorem, if you prefer), which, according to Webopedia is:

"The observation made in 1965 by Gordon Moore, co-founder of Intel, that the number of transistors per square inch on integrated circuits had doubled every year since the integrated circuit was invented."

At a similar pace, processor performance has improved along a similar path. Unfortunately (or fortunately, if you're tired of being constantly behind in the GHz race), while Moore's Law has continued to be fairly consistent, chip vendors, including AMD, Intel and IBM, are beginning to run into very real physical limits for what they can achieve. For example, in 2004, Intel shelved plans for their release of a Pentium 4 processor running at 4GHz. While it would have been darn fast, Intel was unable to adequately resolve issues related to the heat generated by the processor as well as the power required to run the thing. As the clock speed of a processor is ratcheted up, more power is required and more heat is generated as a byproduct of this increased power requirement.

AMD has opted to take a different route, doing more work in a single clock cycle, resulting in the ability to run a processor at a lower clock speed, thus requiring less power and generating less heat. Since AMD's newer processors have adopted this paradigm, AMD has been able to stay well in step with, and sometimes significantly ahead of, Intel in the performance metrics, even though, in paper, the AMD runs "slower".

Why is all of this important? Simply put, Intel has reached the end of the road in the gigahertz game (at least until they can reasonably and inexpensively solve the heat and power problems), and AMD doesn't want to give up the good thing they have going. This leaves the companies with a few alternatives for increasing performance, besides boosting the clock speed.

One quick way to improve the performance of a processor is to add bigger caches at various levels. The successful use of a processor's cache means that the system doesn't need to go to RAM, which is much slower, to fulfill a request. Three levels of caching are common on today's newest processors, and each serves a purpose. The L1, or Level 1, cache is usually a small, but very fast cache integrated right into the processor chip itself. By being so close to the processor, L1 cache can have a significant positive performance effect on the system.

Also common in today's system is L2 cache, located between the processor and the RAM. L2 cache is usually larger than L1 cache. L3 cache making its way to many processors is yet another, larger cache layer. It's important to point out that more levels of cache doesn't always result in a performance gain. In fact, in early 2005, IBM removed L3 cache support from its 4-way 64-bit Intel Xeon chipset, and realized a performance gain in the process. Why? Fewer cache checks by other processor caches meant less work for the system. The L1 and L2 cache, however, remain well intact.

One more topic to talk about before I get into the newest speed push -Hyperthreading. Simply put, Hyperthreading, an Intel-only affair, fools a system into thinking that it has two processors for every physical processor. By splitting a single processor up into two virtual processors, an operating system can theoretically, send two instructions at the same time to be handled by the processor. The processor, in turn, handles the second instruction during times when it's not processing the first instruction. Hyperthreading does not provide massive gains in system performance and is not the same as having dual cores, or dual processors doing the same work.

The new kid on the die: Dual cores

If you're only doing one task at a time, and close each program before moving on to the next, your current, single core system is probably fine for you now and for a long time. If you're grinning while you read this article, it's probably because your taskbar is littered with dozens of windows and applications. Clearly, you're not in the unitasking minority.

Enter dual-core processors.

A dual-core processor is still a single physical unit, but with two processing cores handling the computational chores for the system. Whereas a dual processor system, that is, a system that has two distinct, physical CPUs in separate CPU sockets, a dual-core system is two processors cores on a single die in a single CPU socket. Processing happens in parallel, in a way not all that different from dual processor systems. However, dual-core systems are not as fast as systems with full dual processor implementations. Why? In most cases, dual-core processors share a single bank of RAM. When the processors' cache doesn't contain data needed by one of the processors, system RAM needs to be consulted, which, at present, always results in a performance hit for the system since RAM is much slower than processor cache.

Bear in mind that processor cache often runs at the speed of the processor whereas the best RAM on the market right now tops out at less than 700MHz. Further, sharing a bank of RAM can create contention in situations in which both cores need to do so access memory. In contrast, in a dual processor system, each physical CPU generally has a connection to its very own bank of RAM, thereby eliminating processor contention.

Simply put, this means that a dual core system will not give you double the performance of a single core system. It will, however, perform significantly better than a single-core system but contention over unique system resources, such as RAM prevents a dual-core system from achieving two times the performance of a single-core cousin. The primary advantage to a dual-core system is its ability to execute multiple instructions simultaneously.

Intel tried to simulate this with Hyperthreading, but the key difference between Hyperthreading and dual cores is the number of processors. Hyperthreading only takes advantages of pauses between instructions or lags while the processor is waiting for information from system RAM to execute other instructions, resulting in a pseudo-SMP-like system. Dual-cores goes to the next level and, while not replicating all of the functionality in a dual processor system, does provide a significant boost in processing power.

To use this power, software needs to know how to do so. From the beginning the software vendor needed to have written the code to be SMP-aware. Fortunately, if your vendor failed to do so, all is not lost. If you're running multiple programs on your computer, you'll still see at least something of a performance gain since most modern operating systems themselves include an SMP-aware kernel.

Licensing x 2?

While the technical challenges are clear, there are hurdles to be overcome with regard to software licensing. Many of these hurdles are already being addressed.

The big question: Is a dual-core system a single processor or a dual processor system?

You've probably seen "per processor" licensing costs skyrocket. With dual-core systems, some manufacturers could stand to make a whole lot of money by maintaining that each core is, in fact, considered a separate CPU.

In October of 2004, Microsoft issued guidelines about how, with the advent of multiple cores in a single processor, they plan to licensing software. In a move that likely shocked people who like to write Microsoft as "Micro$oft", the company indicated that a dual-core processor would be considered a single processor--across the board. Basically, Microsoft will not differentiate between a single and dual core system, but will just count the number of occupied sockets on the system's motherboard. So far, other companies, including IBM (in a limited way, at least--IBM is not applying this model to high-end processors), have followed suit.

Until July of 2005, Oracle priced its software on a "per core" basis, resulting in significantly higher charges for companies moving to dual-core systems. Starting in July, Oracle will count each core of a processor as three-quarters of a processor, effectively saying that a dual-core system will cost 1.5 times a single processor license.

So you can see that we're running the gamut of options when it comes to how vendors plan to handle licensing. Your best bet is to check with your vendors before you make any assumptions as to how they will act.

The market

The market is definitely still forming when it comes to multicore processors, so I'm going to introduce the primary product families only. If I go into too much detail, it'll just be wrong by the time you read this article.

AMD has released a number of processors in their desktop-centric Athlon 64 X2 line. The X2 indicates the dual core nature of the processor. The processors in this family include AMD's 64-bit extensions as well, making them a formidable entry in the desktop marketplace. For this line, AMD has maintained its megahertz equivalency rating. So, for example, an Athlon 64 X2 4600+ processor includes two processors that run at speeds similar to a baseline 4.6GHz computer.

In fact, AMD designed the Athlon 64 from the beginning to be capable of dual-cores. As a result, AMD's newest dual-core processors can be dropped into some existing motherboards with little more than a BIOS update required.

AMD's server chips, the Opteron family of processors, is made up of three main lines--the 100, 200, and 800 lines. With model numbers starting at 165, 265, and 865--the "65" designation is AMD's starting point that indicates that a processor includes dual cores--the number is incremented by five to get to the next clock speed. Further, the first number in the model number, the 1, 2, or 8, indicates the scalability of the processor. For example, a model 275 Opteron processor is capable of up to 2-way SMP, runs at 2.2 GHz and includes two cores.

Intel is starting its dual-core focus on the desktop and working on embracing the server side of things. The Pentium-D line of processors, numbered in the 800's (the 820, 830 & 840 Pentium-D processors, and the Extreme Edition of the 840 are currently available) are dual core processors available in speeds ranging from 2.8GHz to 3.2GHz for each core. As of this writing, Intel had not released any server-class dual-core processors and the 800 series was the only product line that was dual-core enabled.

Two cores are better than one

From a technical perspective, dual cores are a really good thing, as long as you can use them to their fullest potential. With a quickly evolving market and fierce competition between the main players in the processor arena, the "core wars" could very quickly replace the "megahertz wars" that littered the landscape with ever-faster processors.