ericburnby :
ddpruitt :
ericburnby :
ddpruitt :
128 bit is pointless. I can't even remember the last time I needed to deal with a 64 bit structure. 64 bit is useful for addressing more than 4 gigs of RAM after that it's use is limited.
Let's say you had a 64bit program that performed image manipulation. The program itself was 10MB and it allocated 240MB of RAM for data to work with for a total of 250MB of RAM.
Now here's a question for every one on Tom's who continually posts that you need 4GB of RAM to make use of 64bit.
Do you think this program, only occupying 250MB of RAM, will not give you any advantage on a system with less then 4GB of RAM? Think very carefully about your answer. This should weed out the people who actually understand 64bit from those that don't.
I think you need to understand the architecture a bit better. The 10 Meg program and the 240 Meg alloc'd space are stored in different segments. The OS takes care of the program while the program takes care of the data. Ignoring a bunch of details, essentially the OS is only going to be storing offsets, not an entire 64 bit pointer and the offsets are shorter than 64 bits. The virtual address space uses some creative techniques to appear larger and segments the pieces for easy conversion. Thus your 64 bits aren't useful except for much except physical addresses.
Are you going to answer my question or not?
BTW, I've been coding since the early 80's, so don't worry about whether or not I understand the architecture or what's going on. I'm trying to dumb things down for a "certain" group of users here, hence the wording of my example.
So the question stands. Is a 64bit program running on a 64bit processor going to gain any advantages if it's only using a portion of the available memory? It's not a difficult question.
Surely you must be joking.
X86 microprocessors have been using >32 bit physical address spaces since 1995 with Windows support since 2000 (server versions only). AMD64/EM64T extended the virtual address space from 32 bits to 64 bits (of which 48 bits are used for addressing) but this represents only one of many changes introduced by AMD64/EM64T. It's somewhat silly that the most touted benefit of the 64 bit extensions is one that was not in fact introduced by the 64 bit extensions at all while the actual benefits are completely overlooked.
Other benefits include:
native support for NX/XD bit which protects against buffer overflows
native 64 bit operations in the scalar and memory units
access to twice as many GP and XMM CPU registers, each of which is 64 bits wide rather than 32
removal of numerous legacy features
software defined multitasking rather than hardware defined multitasking