IntroductionIt's all about the dual-core these days. From Intel launching a split-core Smithfield processor range, from the Pentium Extreme Edition 840 down, to today's official launch of AMD's dual-core Opteron range, all the hype in the processor world revolves around putting more than one core inside a processor package. The current approaches of AMD and Intel to multiple core processors aren't new, with other CPU vendors having multi-core processor designs for a long time. However those processors aren't x86 designs and fall outside of the usual HEXUS remit, and the eye of the consumer and many workstation and server vendors.
Before I dive into things, there's some concepts and terminology to digest, that I'll be using to describe multiple core processors in this article. Intel's Smithfield processor is made up of two separate processor dies on the same physical package, under the same heatspreader. So if you were to take the heatspreader off of a Pentium D or a Pentium Extreme Edition 840, you'd see two separate dies. AMD's approach is different, both cores occupying one die. Take the heatspreader off the Opteron 875 that I'll show you soon and you'd see just one die, albeit one which houses two processor cores.
While technically they're both dual-core processors, both current approaches shows you there's significant difference in the two ways of getting more than one processor core into one physical package. Both ways of doing chip multiprocessing, where you place multiple physical cores on the same package, have the cores sharing an interconnect to the rest of the system. The cores on Intel's Smithfield simply ride the same GTL+ bus that connects the processors to the memory controller and the rest of the system. AMD's approach has the cores sharing a memory controller and HyperTransport links to the rest of the system.
Regardless of the approach, multi-core processors are designed to exploit threading models and thread-level parallelism on modern operating systems. Common sense tells you that doing more work in the same amount of time on a computer system will increase performance. That's the driving mantra behind all multi processor systems, where if there's another complete set of execution resources on another processor to use, you should always do so wherever possible.
The barrier to massive widespread adoption of multi-processor systems is the software. Most consumer software is single-threaded where the application does all its work in one thread, which can only be run on one processor at any given time. If you've got multiple processors, the single-threaded application you're using will ignore all but one of the CPUs. However, with x86 CPU vendors running out of ways to increase single-threaded performance with essentially clock speed and larger caches, because of the current process limits that the CPUs are built with, they've had to go wide, building multi-core processors that keep sane clock speeds and cache sizes, but which let you run multiple threads of execution.
The mass-market introduction of multi-core x86 processors should therefore force operating system and application vendors to seriously consider multi-threading wherever possible. There's massive scope for parallelising many consumer software applications, so pervasive multi-core processors in systems worldwide will only increase the number of well-written multi-threaded applications, which in turn will help drive the reverse: further adoption of PCs, workstations and servers with multi-core processors because more applications are available to exploit them. And while single-threaded performance can theoretically rise just by having the OS you're running have access to more than one CPU, the large gains are with explicitly multi-threaded applications running on that same OS.
In the server and workstation world, they're most of the way there already with the software, and multi-core processors will simply allow vendors to pack more processing power into the same space, which affords them benefits in terms of power (you can double your processing power in the same number of chassis', with dual-core processors, so you're not spending any more of a power budget on things like disks and memory), size (to double your processing power in the same size of chassis, just use a dual-core processor) and therefore money.
Hopefully the benefits of a multi-core processor, like Intel's new dual-core desktop and workstation processors, and AMD's dual-core Opteron range, are obvious, when paired with software that can exploit it. With Tarinder looking at dual-core for the average consumer recently, it's my turn to look at dual-core Opteron for the workstation and server markets.
Let's jump right in with a look at how AMD engineered the dual-core Opteron processor.