facebook rss twitter

Review: AMD Athlon 64 X2 4800+

by Ryszard Sommefeldt on 9 May 2005, 00:00

Tags: AMD (NYSE:AMD)

Quick Link: HEXUS.net/qabes

Add to My Vault: x

What's all the fuss about?

Drop-in replacement?


While Intel are pulling the trick of tying new core logic to the new Pentium D and dual-core Pentiun Extreme Edition processors, to force the user that wants it from them into a hydra-like purchase of at least processor and mainboard - which people already invested in recent released Pentium 4 core logic will love - AMD have said that they require only a BIOS upgrade for any existing Socket 939 mainboard for it to support an Athlon 64 X2 processor.

The first key thing to take from that is that you need Socket 939 to run an Athlon 64 X2, with Socket 754 not having the ability to support it. That's tied to the only real hidden snag to AMD's statement that you can just drop one in, following a BIOS update. One of the main reasons Socket 754 can't support an X2 is electrical. That socket type doesn't have the power pins available to supply a dual-core processor with what it needs to run correctly.

That applies to Socket 939, too. While yes, all released Socket 939 core logic has no issue hosting a dual-core X2-based processor, and indeed I've seen it running on more than just the nForce4 SLI I tested with, the mainboard must support the new processor's power requirements, both in terms of a voltage regulation circuit and voltage range supply, but also in terms of current draw with the correct componentry and implementation to facilitate that.

That said, the vast majority of boards, especially those owned by the people already invested in Socket 939 that'll have an immediate interested and desire for an X2, will have no issues. The rule of thumb is that if it supports any Socket 939 Athlon FX processor, either 53 or 55, it'll support an X2. Their respective requirements with regards to power provision and voltage are similar enough for that to be the case. So if you've got a board that lists Athlon FX as a supported CPU, look out for the required BIOS support from your board's vendor.

If you want to pick up an X2 as your first Socket 939 CPU, or you want to switch mainboards at the same time, stick to the obvious boards from the likes of ASUS, DFI, Gigabyte, MSI and other Tier-1 or Tier-2 vendors.

Does it bring anything else over just two cores?

After that, being a Socket 939 processor, its basic feature set outside of being a dual-core CPU is almost identical to that of the Socket 939 processors that precede it. That means a dual-channel memory controller, support for the x86-64 instruction set architecture (ISA) pioneered by Opteron nearly two years ago and class-leading clock-for-clock performance to put Intel's gigahertz-craving opposition to shame.

However, just duplicating the entire front-end and execution resources of a current Athlon 64 processor aren't what the X2 is all about. Being produced as it is in AMD's 90nm fabs in Dresden, Germany, and having the latest E0 stepping of the basic Athlon 64 core, that means support for Intel's SSE3 instruction set first given to the world with their Prescott-1M core Pentium 4.

SSE3 is a set of mostly SIMD (single instruction, multiple data) instructions that help a certain class of programming tasks execute in less cycles with the processor. SIMD processing is somewhat parallel, operating as it does on multiple chunks of data with the same instruction, outputting multiple bits of data at the end. Those paying attention in CPU class will have realised that a couple of SSE3's instructions are related to HyperThreading.

A little bit on HyperThreading

HyperThreading is Intel basically duplicating the front-end of their Pentium 4 processor on the same die, allowing it to dispatch a pair of executing code threads onto the processor's execution resources, which comprise floating point and integer arithmetic units in the main, giving the appearance to the OS of two full processors. Pentium 4's pipeline design means that under a whole load of common computing scenarios, a fair chunk of execution resources that process the code you run on the chip are idle. Why not get those used and bring up overall possible performance by allowing them to be used by another thread?

A nice idea in theory, but in practice, in all but the easiest of threads to run that way in parallel, performance isn't that much more. It's all to do with the threads having to share the bits that make a processor speedy. So the two threads that can execture on a HyperThreading processor have to share that processor's L1 instruction and data caches, along with the inclusive L2 cache (which mirrors L1 on Intel's CPUs). They also have to share the same CPU-to-memory bus, if they want to fetch data from main memory. So if thread one craps all over thread two's cache data with some heavy cache accesses, when thread two goes to read it, it won't be there. That means a fetch from memory.

And if a thread stalls the CPU pipeline, which can easily happen in practice, it's also stalled for the other thread, too. Therefore if the threads have access to their owns sets of execution resources like caches and main integer pipes, performance will increase. That's not to say HyperThreading is a bad idea. Far from it as it turns out, especially in the matter of basic OS usage and responsiveness in Windows XP's case. But it's clear that rather than two virtual cores, two real ones will be a bit better.

So Intel's HyperThreading has laid the groundwork for applications to take advantage of the ability to execture two parallel threads on a mass-market PC. That's something I'll come back to later in this article.

Reconciling HyperThreading and SSE3's pair of HT-affecting instructions, would you be surprised to hear that an Athlon 64 X2, one which we know will support SSE3, will also support HTT, too?

It does HyperTheading?!

Well, sort of. Athlon 64 X2, cheekily leveraging Intel's hard work with Microsoft on Windows XP and Windows 2003's thread scheduler and their push for developers to embrace HyperTheading, advertises itself as supporting HyperThreading when software queries it for available functionality. Execute the right CPUID instruction on an X2 and mask the right place in the bit field for HTT support and you'll see a 1 there, indicating its a HyperThreading processor.

For consumer applications that check for the presence of HyperThreading, rather than two physical CPUs, the mechanism for which has existed in Windows operating systems since SMP (symmetric multi-processing) support was added to Windows NT, AMD's dual-core processor should rightfully be able to take advantage of that code and accelerate it.

For applications that use the standard ways of the Win32 API, the fact that the X2 is a HyperThreading-compatible CPU is moot, given there is actually more than one physical processor core. They just happen to be on the same silicon wafer and therefore share the same physical package which is placed in just one CPU socket.

So regardless of how the app wants to schedule and run a pair of threads, be that normally or with HTT, X2 will let you do so. It's their way of thanking Intel for just copying the x86-64 implementation docs verbatim, to come up with their own x86-64-compatible processors. You use our nice tech, we'll use yours, essentially.

And there's more.