Original Link: http://www.anandtech.com/show/598
AMD’s Voyage into the 64-bit Arena: x86-64 Revealedby Anand Lal Shimpi on August 10, 2000 3:34 AM EST
- Posted in
Ambition can be a double edged sword; on the one hand, it can push you to accomplish that which you'd previously never thought possible, yet on the other, it can set you up for a much larger failure in the long run.
In our "little" microprocessor community, we've got two very ambitious manufacturers, the very same names you've been hearing and debating over for the past few years, none other than AMD and Intel. Prior to AMD's release of their Athlon processor, which, for the longest time bore the codename 'K7', placing AMD's name before Intel's in a sentence was pretty much unheard of. The company had been improving their stance in the desktop microprocessor industry, but they were still more than a few steps behind Intel.
Now, just under a year after AMD's Athlon release, the company is discussing its plans to compete not only in the desktop, workstation and server markets but also in the extremely high-end enterprise market segment. You can't say that AMD hasn't come a long way from the time when their flagship processor was the K6.
Intel has been keeping themselves busy as well; in addition to maintaining their usual product lines covering the mobile, value, performance and server market segments, they are juggling the launch of the new Pentium 4 all while preparing to introduce their first major step away from the IA-32 x86 instruction set architecture (ISA) to their first 64-bit architecture, IA-64. With IA-64, Intel is promising to be free of the shackles that the x86 ISA has placed on their CPUs for over 2 decades, but in doing that, they are also flushing the idea of high performing backwards compatibility with older IA-32 applications.
If you look around the microprocessor industry, especially at those companies that already have 64-bit parts available, Intel's strategy for IA-64 isn't all that extreme. Other companies rely on emulation or even separate processors in order to maintain backwards compatibility with 32-bit applications for those customers that are not ready to completely migrate entirely to a 64-bit OS with 64-bit applications. This puts a lot of weight on the consumer (in this case, large businesses, not your usual definition of the word) to decide when moving over to a 64-bit platform would be ideal, since using this approach, you're almost never allowed to have the best of both worlds, a high performing 32-bit solution and 64-bit compatibility.
AMD saw a major flaw with this approach and felt that there should be a way for them to become a supplier of a 64-bit processor without making the consumer sacrifice 32-bit performance for that support. We're already familiar with AMD's solution to this problem as they've already announced that they'd be extending the 32-bit x86 ISA to 64-bits with what they call x86-64, but now we're finally beginning to see exactly how x86-64 will work and what it will mean for AMD's future enterprise platform, the K8, also known as SledgeHammer.
Is there a need for 64-bit processors?
Before we can get into a discussion of AMD's x86-64 architecture and how it compares to competing solutions, we need to briefly address the needs that do exist for 64-bit processors.
The way the evolution of microprocessors work is pretty simple. The technology that drives the high-end enterprise computing solutions will be used in one shape or form on the desktop level later on. This provides the foundation for 64-bit processors for use in enterprise computing situations, and also clearly defines the fact that 64-bit computing isn't for everyone just yet.
The main customers for 64-bit processors are those that are currently feeling the limits of the 32-bit architecture at present. The best quote we ever got regarding who would need a 64-bit processor was from Intel saying that "we needed [Itanium] in order to design our next generation chips." It is true, microprocessor designs are becoming incredibly complex; with transistor count increasing and die size shrinking, it isn't too far fetched that the engineers at AMD and Intel could use the help of 64-bit processors.
Likewise, Mechanical CAD (MCAD) applications used in the designing of automobiles, satellites and other such complex objects will also benefit from 64-bit processors.
Extremely large database applications also fit the 64-bit processor bill because they, just like the aforementioned applications, can all benefit from a larger addressable memory area using 64-bit addresses.
There are also applications that can benefit from a processor's ability to handle 64-bit integers without having to split them up into multiple parts. Security and encryption processing is an example of such an application that would benefit from 64-bit processing.
AMD and Intel list other needs for 64-bit processors such as Internet Content Delivery (read: high end servers) and simulations such as weather forecasting computers.
Remember when 4MB of RAM was an obscenely large amount of memory to have on a desktop computer? There will come a time where 4GB of RAM isn't too uncommon of a memory size for your average computer, and when that day comes, even your average computer user will have a use for 64-bit processors, whether or not they realize it at the time is another topic entirely.
Ambition at its worst: x86-64 vs IA-64
AMD is at a very unique position now: they're not big enough to overshadow Intel but at the same time they're large and reputable enough to be able to offer their own input as to the direction the industry should be taking in the future. As you can probably guess, AMD's vision of getting from point A to point B (in this case, migration to 64-bit microprocessor architecture) is very different from the way Intel sees it happening. This is where having two very ambitious companies can create more than simple competition - we're getting into two completely different architectures.
Intel's approach to the 64-bit migration is simple. They will have their existing line of IA-32 processors, the Celeron, Pentium III and upcoming Pentium 4 for those that require the best performance under today's and tomorrow's 32-bit applications. Your average computer user and even your hardcore enthusiast is not going to need the benefits of a 64-bit processor architecture in the very near future; the eventual transition to 64-bit computing will occur across the board, but that won't be for at least a couple more years.
Then, to cover those that feel the need for a 64-bit platform, whether it is for greater computational power in handling 64-bit integers, etc or for the increased amount of memory address space (the 4GB direct address limitation is beginning to present itself as a limitation for some very high end applications), Intel will offer their IA-64 solutions, starting with the Itanium.
The unfortunate downside to this solution is that if you or your company finds itself in a situation where you are still depending on quite a few 32-bit x86 applications that you need the best performance for, yet at the same time you want to make the move to 64-bit applications, a single Itanium or other IA-64 based processor isn't going to be the best solution. Ideally you'd need a Pentium 4 for your 32-bit applications and an Itanium to handle all 64-bit applications, since the Pentium 4 will most likely be better at running 32-bit apps than the Itanium.
AMD's approach is considerably different, since they aren't in a position to go down the IA-64 path and they can't really produce an IA-64 competitor this late in the game they had one of two options either, 1) stay out of the 64-bit arena completely and fall back to the position they were just a couple of years ago, following in Intel's footsteps, or 2) attempt to compete with IA-64 by producing their own 64-bit architecture.
We just mentioned that AMD couldn't possibly create their own 64-bit architecture from scratch now and expect the market to wait for them so instead they're doing what Intel did about 15 years ago, adapt the x86 ISA. This time around, instead of adding 32-bit support to the 16-bit x86 ISA, AMD is adding 64-bit support to the current 32-bit x86 ISA and calling it x86-64.
This approach offers one very clear benefit, you get the best 32-bit x86 performance AMD is capable of delivering, alongside 64-bit compatibility, in a single core. This alleviates the pressure on the customers in the market for 64-bit processors to wait until the best time to migrate to a 64-bit OS since x86-64 makes it possible to run both 32-bit and 64-bit applications at the top levels of performance all from a single chip.
Basically with x86-64, you get the advantages of having a 64-bit architecture with full x86 compatibility without sacrificing performance. This is exactly what Intel did with the 386 around 15 years ago, and it's what AMD is doing with their K8 that's in development now.
Unfortunately with this comes a major downside, by building on the x86 ISA yet again AMD is still bringing along with them all the added baggage that comes with the x86 ISA. We asked AMD about this noticeable downside and their stance on the issue is simple, they believe that "performance has less to do with instruction set and more to do with implementation," which is what they're banking on with x86-64.
How x86-64 Works
AMD just today released the specifics on their x86-64 architecture allowing programmers to begin development for the platform. The 64-bit extension to the x86 ISA adds a number of advancements over the current 32-bit x86 ISA, the most notable improvements are 8 new general purpose registers (64-bit), 64-bit memory addressing, and of course 64-bit wide registers and instruction pointer.
In addition to the 8 new general purpose registers (GPRs), the x86-64 ISA extends the existing registers to 64-bits much like the i386 extended the, at the time, 16-bit registers to 32-bits. This is done through the use of a REX prefix, for example the RAX register is the 64-bit version of the EAX register. Meaning an ADD function with a prefix would be the 64-bit equivalent to its 32-bit counterpart. This is similar to the 32-bit transition the x86 ISA encountered seemingly ages ago.
The x86-64 architecture features two operating modes, a legacy mode that works with all existing 16/32-bit operating systems and applications and a new operating mode known as 'long mode' which is split into two more modes, both of which require a 64-bit operating system. In 64-bit mode, as the name implies, you receive all the benefits of a 100% 64-bit architecture, meaning you can run 64-bit applications under your 64-bit OS.
At the same time the architecture allows for a compatibility mode where you can run 32-bit applications under a 64-bit OS. The below table helps to illustrate the point:
While this is a very simplified method of describing how x86-64 works, AMD has released the documentation on the architecture so depending on how much more detail you're interested in going into, the information is available.
Now it's time to get to the hardware side of things, while AMD isn't saying anything publicly about the forthcoming SledgeHammer processor, their first x86-64 CPU, we do have a gathering of what we know thus far about the elusive K8 and AMD's other high-end products.
For starters, the AMD760/770 chipsets are still due out for late this year as is AMD's first core specifically targeted at the high-end market, the Mustang. There is still no confirmation that the Mustang core will be shipping by the end of 2000 however, and there is a chance that it won't be until early 2001 that we really see the Mustang in its flesh. This is fine for AMD since the Thunderbird is already doing so well and its unlikely that we'll see volume shipments of Intel's Pentium 4 until early 2001 as well.
The first x86-64 based processors from AMD will be available sometime next year, this is contrary to rumors that we've seen pop up but realistically speaking, you're not going to see a SledgeHammer (K8) in 2000.
Like the current Athlon core, there will eventually be many variations on the K8 core. Most likely variations based on cache size, core clock frequency and maybe even FSB frequency will allow the x86-64 architecture to slowly but eventually filter down to non-enterprise applications.
The only issue we see at this point in time is chipset support for the K8. As of now, VIA is the biggest chipset provider for AMD's processors, but we can guarantee you that VIA, a company that is based around producing value chipsets, isn't going to be making enterprise level K8 chipsets. AMD's two other supporters in the chipset industry, ALi and SiS aren't even as big as VIA in the desktop chipset market right now, there's no way either of them will be supplying K8 chipsets, this leaves AMD to handle the task alone.
Developing and producing a chipset for such a high-end processor is not easy, it will definitely be much more difficult to implement than AMD's 750 was, and even then, the 750 was much more difficult than the BX chipsets motherboard manufacturers were used to playing with.
It should be interesting to see how the entire picture unfolds as there is much more to a successful processor than a solid architecture, although having the latter is definitely one step in the right direction.
AMD's x86-64 ISA is an interesting approach to the 64-bit computing migration, and it is entirely too early in the game to decide its fate. The theme of the architecture is obviously compatibility and ease of migration, which is what it allows since it is just an extension of an existing architecture. As AMD likes to put it, the "[x86-64] extends existing mechanisms rather than creating new ones."
With the architecture documentation now publicly available, it won't be long before discussions of x86-64 vs IA-64 are sparked once more, but the real question to ask is whether AMD is helping or hurting the industry by keeping the x86 ISA alive for yet another round?
Only time will tell