A
Ancra
... establishing the bitness of the CPU,
which is exclusively a property of the ISA.
- ! !
Well,well.- Why didn't you say so before? We're in perfect agreement
then!
ancra
... establishing the bitness of the CPU,
which is exclusively a property of the ISA.
Ancra said:[SNIP]
My argument is that the capabilities does not follow from the GPR.
Yes, quite correct for *YOUR* definition of 64 bitness.
(Hi Rupert, now I understand you ;-))
"definition"? well, bits can refer to many things.
The argument one makes is to a large part caused by how one percieves
the opponents view. And much of my 'War & Peace novel' elaborations
were driven by Dan involving physical addressing into the discussion.
I wanted to make clarifications.
But ok, let me try this:
The capabilities, in question, belong to the concept widely known and
referred to as "64-bit computing" in connection with any discussion on
servers, 64-bit Linux, Windows64 etc.
The question I sought to answer was this: What 64-bit property confers
these capabilities to a cpu?
However *YOUR* definition isn't the one shared by the
rest of the world.
-Hmm, "definition"? again.
Take any article you want, on 64-bit computing, and read on. Read on
beyond the introductionary section on 64-bit GPRs, to what the purpose
of 64-bit computing is about.
Word to the wise :
It's a good idea to run a sanity check on your arguments
if you are finding that they conflict with 50+ years of
practice.
Yes, but I'm such a convoluted person, that I feel practice sometimes
outlives its usefulness. Much have happened in those 50 years.
Register widths and path widths tend to vary a lot inside
architectures today. And are more governed by what you can make use
of, than by how often you have to change vacuum tubes.
But let's do it your way:
OK, '64-bitness' refers to the length of those particular registers
known as GPR.
- Then what?
What does that mean? Why does anyone need 64-bitness?
I don't think it ever really does outlive it's usefullness
to be honest. There are always lessons to be learnt from
the past as well as present. I do confess to thinking the
same way as yourself and beating up on this very group in
the very same way. I think the last great crusade I launched
was in the thread entitled something like "Dead horse
flogging" from a long time ago.
Personally I've found it to be rather handy. I've done
stuff like SIMD work with it, done 3D graphics in integer
because 64bits give me enough range to get by etc...
In the current world dominated by register-register style
machines 64bit GPRs is a big deal, especially as addresses
are often held in GPRs.
In said:I don't really think you need to be a computer architect to come up with
a reasonable definition:
The bitness of a system is (mostly) determined by the largest flat
address range you can easily handle.
(This is quite obvious to asm hackers, but much less so for others, as
long as the compiler can hide the ugly stuff.)
By your definition, an architecture with 64-bit GPRs supporting 48-bit
addressing is a 48-bit architecture, while the computing indistry
would consider it a 64-bit architecture, without any if's and but's.
The traditional Cray vector processors fall into this category.
In said:Huh?
How can you read that into what I wrote?
If I do all address arithmetic on 64-bit registers, then it is indeed a
64-bit system, even if parts of that address range doesn't really point
to real (or even virtual) memory.
In the paragraphs you snipped, I mentioned how being allowed to use the
64-bit MMX registers to address the 36-bit physical address range of
some x86 cpus would have made them (ugly) 64-bit cpus.
Dan said:Which doesn't make any sense, of course. "The largest flat address
range you can easily handle" in this scenario is still 36-bit, period.
You were not consistent with your own definition. According to your
definition, that would make it a 36-bit processor.
You're confusing the integer arithmetic capabilities of the CPU and its
addressing capabilities. It makes no sense to talk about 64-bit
addressing, unless the architecture defines a biunivocal relationship
between the address range and the range of values representable in a
64-bit CPU register.
Terje Mathisen said:By "handle" I meant which size would a pointer be, and how would I do
address arithmetic on it. I don't care how many of the bits are actually
brought out on the memory bus, only that the total is large enough for the
task I'm doing.
In said:By "handle" I meant which size would a pointer be, and how would I do
address arithmetic on it. I don't care how many of the bits are actually
brought out on the memory bus, only that the total is large enough for
the task I'm doing.
I don't think I'm confused, but I seem to be confusing, at least to you.
Sez who? What is preventing the design of an OS whose processes can
address more than 4GB, through segmentation, just as MSDOS allowed its
processes to access more than 64 KB?
Sez who? What is preventing the design of an OS whose processes can
address more than 4GB, through segmentation, just as MSDOS allowed its
processes to access more than 64 KB?
Secondly, you're off target a bit:
Win32 only gives an app 2GB process space, not 4.