64 bit processors

J

Jmonahan

I have a question about the line of true 64 bit processors. When they
are running 32 bit software, do they take the instructions, data,
etc. 2 blocks at a time or is there half of the cpu that is not
being used?? Where this is leading, is to the question is it better
to have a super hi speed 32 bit cpu and OC it, or is it better to
have a 64 bit cpu of less speed. Om that case would they be about
equal? In other words, is it worth it to buy a 64 bit cpu now, even
if it is only running 32 bit software and may still be doing that for
some time??
 
K

kony

I have a question about the line of true 64 bit processors. When they
are running 32 bit software, do they take the instructions, data,
etc. 2 blocks at a time or is there half of the cpu that is not
being used?? Where this is leading, is to the question is it better
to have a super hi speed 32 bit cpu and OC it, or is it better to
have a 64 bit cpu of less speed. Om that case would they be about
equal? In other words, is it worth it to buy a 64 bit cpu now, even
if it is only running 32 bit software and may still be doing that for
some time??


The answer to the question you didn't ask is, yes buy an
Athlon 64 instead of a P4, at most uses it's faster,
including 32bit.
 
G

General Schvantzkoph

I have a question about the line of true 64 bit processors. When they
are running 32 bit software, do they take the instructions, data,
etc. 2 blocks at a time or is there half of the cpu that is not
being used?? Where this is leading, is to the question is it better
to have a super hi speed 32 bit cpu and OC it, or is it better to
have a 64 bit cpu of less speed. Om that case would they be about
equal? In other words, is it worth it to buy a 64 bit cpu now, even
if it is only running 32 bit software and may still be doing that for
some time??

64 bits refers to the address size not to data sizes, a 32 bit CPU can
address 4 billion bytes, a 64 bit CPU can address 4 billion X 4 billion
bytes, i.e. 2^64 or 1.6 * 10^18 bytes. We've reached the point where
4GBytes of real memory is not only possible but is even affordable so the
4Gbyte limit of a 32 bit address is a problem. By increasing the address
space to 64 bits the virtual address space becomes so large that the we
won't have to worry about it limiting the amount of RAM that you can put
into a system for another 50 years, probably much much longer than 50
years but if you make the wildly optimistic prediction that Moores law
continues to hold forever then at the rate of 1.5 years per bit (the
historical Moore rate) then it will take 48 years to use up the new
address bits.
 
E

Ed

I have a question about the line of true 64 bit processors. When they
are running 32 bit software, do they take the instructions, data,
etc. 2 blocks at a time or is there half of the cpu that is not
being used?? Where this is leading, is to the question is it better
to have a super hi speed 32 bit cpu and OC it, or is it better to
have a 64 bit cpu of less speed. Om that case would they be about
equal? In other words, is it worth it to buy a 64 bit cpu now, even
if it is only running 32 bit software and may still be doing that for
some time??


The AMD64 chips can run 32-bit just like any other 32-bit x86 CPU,
64-bit is just (free) icing on the cake.

http://www.anandtech.com/cpuchipsets/showdoc.aspx?i=2242&p=6
http://reviews.zdnet.co.uk/hardware/0,39023760,39164010,00.htm
http://techreport.com/reviews/2004q4/athlon64-fx55/index.x?pg=5
http://www6.tomshardware.com/cpu/20041115/pentium4_570-20.html

Ed
 
W

Wes Newell

64 bits refers to the address size not to data sizes,

Now that's a new one and I thought I'd heard them all.:) Actually, this
is incorrect too though. The A64 address bus is 40bits, 48 virtual.
a 32 bit CPU can address 4 billion bytes

Tell me why my 32bit 68000 cpu can only address 16MB then (1 clue, it has
a 24bit address bus). I really haven't checked, but it's very possible to
have a 32bit cpu address more than 4GB. the amount of directly addressable
ram is controlled by the size of the address bus, and has nothing to do
with 32, 64, or 128 bit cpu's.
 
C

Chip

Wes Newell said:
Now that's a new one and I thought I'd heard them all.:) Actually, this
is incorrect too though. The A64 address bus is 40bits, 48 virtual.


Tell me why my 32bit 68000 cpu can only address 16MB then (1 clue, it has
a 24bit address bus). I really haven't checked, but it's very possible to
have a 32bit cpu address more than 4GB. the amount of directly addressable
ram is controlled by the size of the address bus, and has nothing to do
with 32, 64, or 128 bit cpu's.

The view posted by General Whateverhisnameis may be incorrect, but its an
*incredibly* common misconception.

I can't count the number of articles I have read that was lyrical about the
benefits of 64-bit being the increased address space. Presumably the author
having no clue that it would be perfectly possible to have a 16-bit (let
alone 32-bit) processor with a 48-bit or 64-bit address bus.

Chip
 
G

General Schvantzkoph

Now that's a new one and I thought I'd heard them all.:) Actually, this
is incorrect too though. The A64 address bus is 40bits, 48 virtual.


Tell me why my 32bit 68000 cpu can only address 16MB then (1 clue, it has
a 24bit address bus). I really haven't checked, but it's very possible to
have a 32bit cpu address more than 4GB. the amount of directly addressable
ram is controlled by the size of the address bus, and has nothing to do
with 32, 64, or 128 bit cpu's.

The physical address space of a CPU is almost never identical to the
virtual address. The virtual address space is what the programmer sees, so
in a 32 bit architecture that's 4G and in 64 bit architecture it's
1.6*10^19. The physical address space is determined by the width of the
Address Translation Unit RAM and the address pins on the CPU. The physical
address space is a choice that the CPU designers make for each design.
Pins and RAM cost money so you don't want to support a physical address
space that's larger than the maximum amount of RAM that the particular CPU
is ever likely to have. When the 68000 came out the biggest DRAM was 64K,
the CPU designers would have figured that at the end of life of the chip
the biggest DRAM would be the 1M DRAM so they picked 16M as the physical
address space because it was confortably larger then any real memory
system that it would ever have to support without being excessively
expensive. When you get to the end of an architecture's life, as we are
now with the 32 bit x86 architecture, it becomes possible to have more
real memory then virtual memory. The way this is handled is that CPUs can
support multiple virtual address spaces, each of which can have it's own
DRAM space. So a Xeon might have 16 separate threads each of which can
address 4G of RAM for a total of 64G of real memory. Each thread is still
limited to 4G but you can have lots of them. There are also ways to give
programmers access to more memory by using segmentation registers which
allows the programmers to manage multiple virtual memory spaces within one
process, that's what the 80286 did to extend the 16 bit address space of
the 8086. Segmentation is a horrible way to handle memory, a larger linear
address space is much easier for programmers to deal with. The AMD64
architecture is now back to where we were in the 68K days. The virtual
address space is so large that all the RAMs in the world couldn't fill it.
The programmer sees the 64 bit space but the actual amount of physical RAM
supported is much smaller, I'm not sure what the exact size is but I
suspect it's around 40 bits (1 terabyte) which would be confortably larger
than the amount of RAM that this generation of chips is likely to have to
support (assuming 4G and maybe even 16G RAMs by the time the last current
generation A64s are unplugged).
 
G

Gregory Toomey

I have a question about the line of true 64 bit processors. When they
are running 32 bit software, do they take the instructions, data,
etc. 2 blocks at a time or is there half of the cpu that is not
being used?? Where this is leading, is to the question is it better
to have a super hi speed 32 bit cpu and OC it, or is it better to
have a 64 bit cpu of less speed. Om that case would they be about
equal? In other words, is it worth it to buy a 64 bit cpu now, even
if it is only running 32 bit software and may still be doing that for
some time??

The new processor are backwards compatible instructions with earlier
versions of the architecture. New 64-bit instructions have been added.

So a 64-bit XOR and 16-bit XOR on am Athlon 64 take about the same number of
cpu cycles.


CPU pipelining works on the flow of instructions, and generally not their
width.

gtoomey
 
C

CBFalconer

Chip said:
The view posted by General Whateverhisnameis may be incorrect, but
its an *incredibly* common misconception.

I can't count the number of articles I have read that was lyrical
about the benefits of 64-bit being the increased address space.
Presumably the author having no clue that it would be perfectly
possible to have a 16-bit (let alone 32-bit) processor with a
48-bit or 64-bit address bus.

There are several factors here. First is the address field in the
actual instructions, which are very likely to be (or to become) 64
bits. Second is the address field in the physical i/o interface,
which is likely to be 32 bits, or capable of 4G of physical
memory. Third is the actual memory attached, which I will assume
to be the common 1G. These three quantities must be strictly
decreasing (or same) in the order I have given them.

The operating system will be the only thing actually aware of the
real physical limits. It will arrange to map all 64 bit addresses
(via tables) into one of: a) disk location b) real memory location
c) invalid. The hardware (or even the OS software) will arrange
that any access to b) is intercepted and converted into a), while
any c) is flagged as a gross error and something serious done about
it. At the same time it can map process specific virtual addresses
(in a known address space) into the larger physical address space,
giving the ability to write all programs as if they had a machine
to themselves.

The efficiency of this mapping is crucial to the apparent speed of
the system under load.
 
S

Steve Wolfe

Tell me why my 32bit 68000 cpu can only address 16MB then (1 clue, it
has
The view posted by General Whateverhisnameis may be incorrect, but its an
*incredibly* common misconception.

I can't count the number of articles I have read that was lyrical about the
benefits of 64-bit being the increased address space. Presumably the author
having no clue that it would be perfectly possible to have a 16-bit (let
alone 32-bit) processor with a 48-bit or 64-bit address bus.

Here's what's going on: A 32-bit processer really can only address 4
gigabytes of memory in a single address space. There are hacks like PAE
that let you put more than 4 gigs in a machine, but a single process can
only see 4 gigs of memory. That's it, there's no way around it. If you
disagree, don't argue, try getting a single process to allocate more than 4
gigs on the OS of your choice on a 32-bit processer. Come back when you've
done it.

The A64/Opterons, being 64 bit processers, can address up to a 64-bit
memory address, which is unfathomably huge. However, I believe that they
currently have only a 48-bit memory bus, which is still a boat-load of
memory.

However, going from a 32-bit instruction set to a 64-bit instruction set
with all other items equal can (and does) incur a slight overhead, as you
have to pump more bits around to get the same things accomplished. It's
generally along the lines of 1%-3% real-world performance. However, in the
case of the A64/Opteron, all other items are NOT equal - in 64-bit mode, the
new instruction set allows you to utilize a larger number of registers,
which gives you a real-world performance BOOST of around 10% in most apps.

steve
 
J

Jerry G.

Without getting complicated, you are always using the full CPU capability.
You are not using 1/2 a CPU to do the work. When the 64 bit CPU runs 32 bit
software, it will function as if it was a 32 bit unit.

I would only spend the extra amount if I was having the necessity of a 64
bit CPU. You will need the 64 bit operating system to take advantage of it
from an operating system point of view. If you are not running 64 bit
capable software's there will also not be any advantage. Very few software's
at this time are written in the 64 bit format.

If you are buying this for future investment, this is not a good idea from
the point of view, that next year or whatever, the 64 bit machines may be
different, and some other need will arise, still making your machine
obsolete in it own way.

Buy what you need for now to get your job done the way you require it to be
done. To some extent, you can do upgrades to the existing system as they are
required. When your system becomes too obsolete, in let's say about 3 years
from now, then it would be worth to start over again on a new system with
the same philosophy.

--

Jerry G.
======


I have a question about the line of true 64 bit processors. When they
are running 32 bit software, do they take the instructions, data,
etc. 2 blocks at a time or is there half of the cpu that is not
being used?? Where this is leading, is to the question is it better
to have a super hi speed 32 bit cpu and OC it, or is it better to
have a 64 bit cpu of less speed. Om that case would they be about
equal? In other words, is it worth it to buy a 64 bit cpu now, even
if it is only running 32 bit software and may still be doing that for
some time??
 
W

Wes Newell

The physical address space of a CPU is almost never identical to the
virtual address. The virtual address space is what the programmer sees, so
in a 32 bit architecture that's 4G and in 64 bit architecture it's
1.6*10^19. The physical address space is determined by the width of the
Address Translation Unit RAM and the address pins on the CPU. The physical
address space is a choice that the CPU designers make for each design.
Pins and RAM cost money so you don't want to support a physical address
space that's larger than the maximum amount of RAM that the particular CPU
is ever likely to have. When the 68000 came out the biggest DRAM was 64K,
the CPU designers would have figured that at the end of life of the chip
the biggest DRAM would be the 1M DRAM so they picked 16M as the physical
address space because it was confortably larger then any real memory
system that it would ever have to support without being excessively
expensive. When you get to the end of an architecture's life, as we are
now with the 32 bit x86 architecture, it becomes possible to have more
real memory then virtual memory. The way this is handled is that CPUs can
support multiple virtual address spaces, each of which can have it's own
DRAM space. So a Xeon might have 16 separate threads each of which can
address 4G of RAM for a total of 64G of real memory. Each thread is still
limited to 4G but you can have lots of them. There are also ways to give
programmers access to more memory by using segmentation registers which
allows the programmers to manage multiple virtual memory spaces within one
process, that's what the 80286 did to extend the 16 bit address space of
the 8086. Segmentation is a horrible way to handle memory, a larger linear
address space is much easier for programmers to deal with. The AMD64
architecture is now back to where we were in the 68K days. The virtual
address space is so large that all the RAMs in the world couldn't fill it.
The programmer sees the 64 bit space but the actual amount of physical RAM
supported is much smaller, I'm not sure what the exact size is but I
suspect it's around 40 bits (1 terabyte) which would be confortably larger
than the amount of RAM that this generation of chips is likely to have to
support (assuming 4G and maybe even 16G RAMs by the time the last current
generation A64s are unplugged).

Aha, so now they consider the bitness of the cpu to be the maximum
possible address space within the architecture if you're sumize is
correct. I wonder who keeps changing the nomenclature. In the beginning it
was defined by the data bus size, then it changed to register size (I
think Intel was the first to do this, with the 8088). Motorola redefined
thier 16bit 68000 to calling it a 32bit later. And now we have a bitness
that virtually has nothing to do with anything speed wise, actual ram
address size or anything of any value. Next thing you know they'll be
adding up all the bus widths of the cpu and calling it an xxxx bit cpu.
Got to one up the competition.
 
G

General Schvantzkoph

Aha, so now they consider the bitness of the cpu to be the maximum
possible address space within the architecture if you're sumize is
correct. I wonder who keeps changing the nomenclature. In the beginning
it was defined by the data bus size, then it changed to register size (I
think Intel was the first to do this, with the 8088). Motorola redefined
thier 16bit 68000 to calling it a 32bit later. And now we have a bitness
that virtually has nothing to do with anything speed wise, actual ram
address size or anything of any value. Next thing you know they'll be
adding up all the bus widths of the cpu and calling it an xxxx bit cpu.
Got to one up the competition.

It's always been the virtual address space that defined the bitness of a
CPU architecture. I've been in the business for 30 years and I spent the
first half of my career designing CPUs. Some marketing types in the
early days of microprocessors may have used bus size to define the bitness
of a microprocessor but no computer architect ever did that. The problem
with using register width or bus width is that it isn't consistant even
within a single CPU. The floating point registers in a 16 bit minicomputer
were 64 bits wide, that didn't make the computer a 64 bit computer. The
same thing goes for the memory datapath. The 939 pin Athlon 64s have two
64 bit memory buses, does that make them a 128 bit processor? of course
not. By the same token as serial buses like PCI express and SATA replace
parallel buses does that make the machines 1 bit processors? It is true
that the integer registers generally are the same width as the address
because you use the integer registers to compute addresses in most
architectures. However it's not required, you could use a pair of
registers to hold an address pointer. You can also have specialized
registers that are used only for addresses and other registers that are
used for general purpose integer arithmetic. In fact the base x86
architecture does use a god awful collection of single purpose registers
rather than a uniform general purpose register set.
 
G

Gregory Toomey

Jerry said:
Very few
software's at this time are written in the 64 bit format.

Linux & some BDSs have been running 64 bit for years eg MIPS.
There are 64 bit builds of linux for Athlon 64.

gtoomey
 
E

Ed

I have a question about the line of true 64 bit processors. When they
are running 32 bit software, do they take the instructions, data,
etc. 2 blocks at a time or is there half of the cpu that is not
being used?? Where this is leading, is to the question is it better
to have a super hi speed 32 bit cpu and OC it, or is it better to
have a 64 bit cpu of less speed. Om that case would they be about
equal? In other words, is it worth it to buy a 64 bit cpu now, even
if it is only running 32 bit software and may still be doing that for
some time??


Opteron and Athlon64 processors are able to run both 64-bit and 32-bit
operating systems and code. Under a 32-bit operating system, including
Linux, Unix, Solaris x86 and Windows, these processors run 32-bit
applications at full speed and full power -- and in many cases, more
efficiently than other x86 processors. When they boot up with a 64-bit
OS, you can mix-and-match 64-bit and 32-bit applications and tools, both
running at full speed. So, 64-bit developers have a huge array of
software available to them, both in terms of the new 64-bit tools and
servers, but also the entire existing base of 32-bit apps. It's
literally the best of both worlds, up and down the stack.

http://www.devx.com/amd/Door/16009
 
W

Wes Newell

It's always been the virtual address space that defined the bitness of a
CPU architecture.

Now this is s crock of the well known smelly subtance. :)
So what's the virtual address space of the 16bit Motorola 68K cpu?
The real address bus is 24bits wide. The register size is 32bits, hence
the reason they redefined it as 32 bit after Intelalie started defining
there cpu's by register size. Look at some of your old data sheets from
both Motorola and Intel. Originally Intel defined the 8088 CPU as an 8 bit
cpu, which it was for all practical purposes. They later redefined as a
16bit CPU. Now that wasn't done by engineers. It was done by marketing.
Remember the old 80486SLC I think it was called. IIRC it had a fricking
8bit data bus and was as slow as crap flowing down a river ( from one
sucker that bought one) and Intel called it a 32bit cpu. Give me a break.
Tere's so much marketing BS floating around thee days one can't tell wtf
they're buying without a lot of in depth research.
I've been in the business for 30 years and I spent the
first half of my career designing CPUs.

And I started designing computer hardware in the late 70's after working
with them since about '71. Had to use a teletype to load the progam
with tape, but that really doesn't mean much today..
Some marketing types in the early days of microprocessors may have
used bus size to define the bitness of a microprocessor but no computer
architect ever did that.

I can't remember anyone ever using anything except the data bus width,
and I've got a good memory..
The problem with using register width or bus width is that it isn't
consistant even within a single CPU. The floating point registers in a
16 bit minicomputer were 64 bits wide, that didn't make the computer a
64 bit computer.

At the time, things were simple. there was no on board cache, so every
memory access had to go over the data bus. So the wider the bus the faster
the cpu. The problem of running 16bit instructions over an 8 bit data bus
should be obvious. Today, the bitness of the cpu has little impact on
performance as about 90% of all accesses ocur within the onboard cache and
all memory buses or at least as wide as the internal registers.
 
A

Aardvark J. Bandersnatch, BLT, MP, PBJ, LSMFT

Lieber Herr Schwantzkopf,

In fact the base x86
architecture does use a god awful collection of single purpose registers
rather than a uniform general purpose register set.

That has always puzzled me. Why in the heck did the micro designers take
that route?

(PS -- also thirty years in computer tech, started out, however, as a
mainframe maintenance tech, considerably lower than a CPU designer)
 
C

Chip

Steve Wolfe said:
Here's what's going on: A 32-bit processer really can only address 4
gigabytes of memory in a single address space. There are hacks like PAE
that let you put more than 4 gigs in a machine, but a single process can
only see 4 gigs of memory. That's it, there's no way around it. If you
disagree, don't argue, try getting a single process to allocate more than
4
gigs on the OS of your choice on a 32-bit processer. Come back when
you've
done it.

The A64/Opterons, being 64 bit processers, can address up to a 64-bit
memory address, which is unfathomably huge. However, I believe that they
currently have only a 48-bit memory bus, which is still a boat-load of
memory.

However, going from a 32-bit instruction set to a 64-bit instruction set
with all other items equal can (and does) incur a slight overhead, as you
have to pump more bits around to get the same things accomplished. It's
generally along the lines of 1%-3% real-world performance. However, in
the
case of the A64/Opteron, all other items are NOT equal - in 64-bit mode,
the
new instruction set allows you to utilize a larger number of registers,
which gives you a real-world performance BOOST of around 10% in most apps.

Whilst we are on the subject of performance - rather than debates about
address space and number of registers, width etc. - it might be worth
mentioning about the A64 having its memory controller onboard.

Since memory transfers are not being controlled by a separate Northbridge,
the overall latency is much reduced compared with the old XP architecture.
Net effect: Huge memory bandwidth improvement, which obviously boosts
performance considerably too. For example a Sisoft Ram bandwidth (Integer
Buffered iSSE2) score of 4000 is pretty damned fantastic with an Athlon XP.
6000 or more is a walk in the park for an A64. 7000 is fairly easy and 8000
is achievable. HUGE gains in bandwidth.

Chip
 
C

Chip

General Schvantzkoph said:
It's always been the virtual address space that defined the bitness of a
CPU architecture.

That's just not correct. Motorola classified the 68000 as 16-bit
microprocessor, yet it had a 24 bit address bus. It had 8 32-bit data
registers and 8 32-bit address registers. By your logic it should have been
called a 32-bit CPU.

Chip
 
C

Chip

Aardvark J. Bandersnatch said:
Lieber Herr Schwantzkopf,



That has always puzzled me. Why in the heck did the micro designers take
that route?

The Intel 8088 - upon which all this is built - was the biggest pile of crap
ever invented. Certainly compared to the marvellous, wonderful, brilliant,
fabulous Motorola 68000 that was around at the same time. No contest. The
Motorola architecture was a programmers dream, with loads of 32-bit
multipurpose registers, the ability to address loads of memory in contiguous
chunks (no segment registers, yuk) and a great instruction set. And it ran
like the wind.

Unfortunately, some idiot in IBM decided - for reasons unknown to me - to
implement the 8088 in the first IBM PC. I might have had something do with
wanting to keep the memory bus 8-bits wide to keep the cost down. The 8088
was 16-bit internally, with an 8-bit data bus. Joke. A 68000
implementation would have meant a more complex motherboard with 16 bit
memory.

Another possibility is the lack of a standard 68000 OS at the time. Before
the PC was born, the only "standard" OS was CP/M and this ran on Zylog Z80s
and on Intel. CP/M 68K hadn't been written yet. I think IBM's early plans
were to sell PC's with CP/M, but as we know a certain Bill Gates changed all
that by writing the diabolical MS-DOS in his garage.

Anyway, the rest is history. Motorola didn't get the IBM PC, Intel did and
we have had to put up with the consequences ever since.

Of course the x86 architecture got better. The 8086 (as featured in the IBM
XT) at least had a 16-bit data bus and the PC-AT with the Intel 80286
finally brought some decent speed, even if programming it was still a
nightmare.

I could go on. But I'll stop there.

Chip
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Similar Threads


Top