You are on page 1of 2


The question of why we need 64-bit computing is often asked but rarely answered in
a satisfactory manner. There are good reasons for the confusion surrounding the
question.That is why first of all; let's look through the list of users who need
64 addressing and 64-bit calculations today: oUsers of CAD, designing systems,
simulators do need RAM over 4 GB. Although there are ways to avoid this limitation
(for example, Intel PAE), it impacts the performance. Thus, the Xeon processors
support the 36bit addressing mode where they can address up to 64GB RAM.

The idea of this support is that the RAM is divided into segments, and an address
consists of the numbers of segment and locations inside the segment. This approach
causes almost 30% performance loss in operations with memory. Besides, programming
is much simpler and more convenient for a flat memory model in the 64bit address
space - due to the large address space a location has a simple address processed
at one pass. A lot of design offices use quite expensive workstations on the RISC
processors where the 64bit addressing and large memory sizes are used for a long
time already. oUsers of data bases.

Any big company has a huge data base, and extension of the maximum memory size and
possibility to address data directly in the data base is very costly. Although in
the special modes the 32bit architecture IA32 can address up to 64GB memory, a
transition to the flat memory model in the 64bit space is much more advantageous
in terms of speed and ease of programming. oScientific calculations. Memory size,
a flat memory model and no limitation for processed data are the key factors here.
Besides, some algorithms in the 64bit representation have a much simpler form.
oCryptography and safety ensuring applications get a great benefit from 64bit
integer calculations.

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. In the diagram above black boxes are code, white
boxes are data, and gray boxes are results. The instruction and code "sizes" are
not to be taken literally, since they're intended to convey a general feel for
what it means to "widen" a processor from 32 bits to 64 bits.

Not all the data either in memory, the cache, or the registers is 64-bit data.
Rather, the data sizes are mixed, with 64 bits being the widest. Note that in the
64-bit CPU pictured above, the width of the code stream has not changed; the same-
sized opcode could theoretically represent an instruction that operates on 32-bit
numbers or an instruction that operates on 64-bit numbers, depending on what the
opcode's default data size is. On the other hand, the width of the data stream has
doubled. In order to accommodate the wider data stream, the sizes of the
processor's registers and the sizes of the internal data paths that feed those
registers must be doubled.

Now let's take a look at two programming models, one for a 32-bit processor and
another for a 64-bit The registers in the 64-bit CPU pictured above are twice as
wide as those in the 32- bit CPU, but the size of the instruction register (IR)
that holds the currently executing instruction is the same in both processors.
Again, the data stream has doubled in size, but the instruction stream has not.
Finally, the program counter (PC) has also doubled in size.
For the simple processor pictured above, the two types of data that it can process
are integer data and address data. Ultimately, addresses are really just integers
that designate a memory address, so address data is just a special type of integer
data. Hence, both data types are stored in the GPRs and both integer and address
calculations are done by the ALU.Many modern processors support two additional
data types: floating-point data and vector data. Each of these two data types has
its own set of registers and its own execution unit(s).