Home -> IP Gurus -> Gyan Guru -> HOT ARTICLES

GYAN GURU

An Introduction to 64-bit Computing and x86-64

When I first heard that AMD had plans to extend the x86 ISA to 64 bits, I thought it was a terrible idea. Though x86 is the world's most successful ISA, it's also the world's most widely disparaged. Programmers, analysts, architecture buffs, and enthusiasts often see x86 as a leaden albatross around the neck of the entire computing industry, and like the Mariner's albatross we were all hoping it would just fall off at some point and slip quietly into the deep. But in spite of such hopes, I really knew better. In fact, I've argued elsewhere that x86 isn't going away anytime soon, and it no longer makes any real sense to gripe about its quirks from a performance perspective. I won't recap that argument here, but I can sum it up briefly. Most of us would probably assent to the following statement: "there's a huge global market for mainstream business and consumer software, and the overwhelming majority of that software just so happens to use the x86 ISA." This statement is true, as far as it goes, but framing x86's role in the software industry this way misses an important point. In my article "The Future of x86 and the Concept of the ISA," I argue that a statement like the following would provide a more relevant assessment of the true state of the software industry: "There's a huge global market for mainstream business and consumer x86 software, and several smaller markets for software written to other ISAs." All discussions of the desktop prospects of widely ported operating systems (i.e. Linux) or of the possible effects of greater open source market penetration aside, this statement should still ring true to anyone who's acquainted with the present realities of the installed base of IT and consumer software. If we think realistically about most of the world's commercial software not as "software" in the abstract but as x86 binary code, then it becomes apparent that improvements to the x86 ISA represent one of the most practical and cost-effective ways to advance and expand the x86 software market. Indeed, Intel's continuing extensions of additions to the x86 ISA prove just this point. Consider the move from 16 bits to 32 bits, the addition of the x87 floating-point instructions, and the addition of integer and then floating-point SIMD instructions. All of these modifications of x86 helped bring new capabilities to the PC, allowing it to find new applications and enter new markets. Thus, the ongoing adaptation of the x86 ISA to ever newer technological contexts has been one of the essential subplots in the past two decades' story of the "information revolution." The present article outlines what AMD hopes is the next step in x86's evolution: x86-64. As we'll see, x86-64 is more than just a 64-bit extension to the 32-bit x86 ISA; it adds some new features, as well, while getting rid of some obsolete ones. Note that this article deals with the x86-64 ISA only. The sequel will cover the specific implementations (Hammer, Opteron, etc.). And note also that the general discussions of 64-bit computing that make up the first half of the article are applicable to 64-bit platforms, not just x86-64. So those of you interested in the implications of a possible Apple move to a 64-bit platform like the PPC 970 might want to read at least the first half of the article.

Why 64 bits?
The question of why we need 64-bit computing is often asked but rarely answered in a satisfactory manner. That this is so is evidenced by the fact that the question keeps coming up again and again in online discussions of AMD's upcoming Hammer processor. There are good reasons for the confusion surrounding the question, the first of which is the rarely acknowledged fact that "the 64-bit question" is actually two questions: 1) how does the existing 64-bit server and workstation market use 64-bit computing, and 2) what use would the consumer market have for 64-bit computing. People who ask the 64-bit question are usually asking for the answer to question 1 in order to deduce the answer to question 2. This being the case, we'll first look at question 1 before tackling question 2.

What is 64-bit computing?
If you've read my introduction to the basic concepts in microprocessor technology, "Understanding the Microprocessor," then you're familiar with the code/data distinction and its implications. (If you haven't read that article, you might want to at least skim it and look at the diagrams before going any further.) Simply put, the labels "16-bit," "32-bit" or "64-bit," when applied to a microprocessor, characterize the processor's data stream. Although you may have heard the term "64-bit code," this designates code that operates on 64-bit data. In more specific terms, the labels "64-bit," 32-bit," etc. designate the number of bits that each of the processor's general-purpose registers (GPRs) can hold. So when someone uses the term "64-bit processor," what they mean is "a processor with GPRs that store 64-bit numbers." And in the same vein, a "64-bit instruction" is an instruction that operates on 64-bit numbers.

 

 
Untitled Document - Gyan Guru Menu

GYAN GURU

Gyan Guru Home

User Queries

FAQs

Hot Articles

 

IP - GURUS

Hep Guru

Love Guru

 
 
An Indraprastha university students' venture in collaboration with Modulus Systems. Copyright © 2004
NOTE : This is an effort by the university alumni to unite the Guru Gobind Singh Indraprastha University. This is not the official website.p