Difference between Windows 7 x64 and x84

ryand52002

Junior Member
Jul 24, 2009
11
0
0
what is the difference between Windows 7 x64 and x86?
i never understood that and i recently ordered new parts to build a new computer so i was seeing which one is the better choice to install.
 

Gamingphreek

Lifer
Mar 31, 2003
11,679
0
81
Originally posted by: ryand52002
what is the difference between Windows 7 x64 and x84?
i never understood that and i recently ordered new parts to build a new computer so i was seeing which one is the better choice to install.

Um - x64 is 64bit and x84 doesn't exist ;)

Any chance you could link to what you thought x84 was?
 

JasonSix78

Platinum Member
Mar 5, 2005
2,050
1
0
I think he meant x86.

I guess one of the most notable things is that it can address more RAM. The x86 will support up to 3.5GB depending on hardware.
 

Absolution75

Senior member
Dec 3, 2007
983
3
81
I'm always surprised no one mentions windows patchguard (x64 only). Decreases the chances of rootkits significantly.
 

yusux

Banned
Aug 17, 2008
331
0
0
x64 supports up to 128gb of ram, x86 only 3.25gb of ram, x86 has better performance on most games and better driver/software compatability, but I would still recommend x64
 

Sylvanas

Diamond Member
Jan 20, 2004
3,752
0
0
Originally posted by: yusux
x64 supports up to 128gb of ram, x86 only 3.25gb of ram, x86 has better performance on most games and better driver/software compatability, but I would still recommend x64

They both have the same driver / software compatibility. Anything that is 'Vista ready' or Windows 7 'ready' is required to have both 32bit and 64bit drivers. Some software is not native 64bit but it'll run just fine on a 64bit OS. Performance in games is debatable as they are usually the same or better / worse, sometimes X64 is faster sometimes X86 is faster it depends on the game, the engine and the specific setup. It's been like this for years now.
 

Gamingphreek

Lifer
Mar 31, 2003
11,679
0
81
Originally posted by: yusux
x64 supports up to 128gb of ram, x86 only 3.25gb of ram, x86 has better performance on most games and better driver/software compatability, but I would still recommend x64

Sorry but no, thats not even a little bit right.

x86 supports 4GB of RAM; however, 2GB is reserved for kernel space applications/programs. Thus, you have 2GB available for user space programs and drivers (For instance, Graphics and Sound Drivers, starting with Vista, were moved to the User Space).

There are registry modifications that will allow you to decrease the Kernel Space allocation to 1GB; however, these are very bad ideas given that your Virtual Page Table is then messed around with.

With this in mind, without the FILE_LARGE registry modification, a single process is limited to 2GB of memory. With the modification, this increases to 3GB per process.

x86 and x64 have the same compatibility and, in general the same performance.

x64 will rarely be more than a few percentage points slower in general applications due to the Larger Pointer Size (4 bytes on x86 and 8 bytes on x86-64); however, in applications where the larger memory address space, and particularly computation intensive applications are used, x64 can offer a sizeable performance increase.

As for drivers, it is rare to find a manufacturer who has not provided 64bit drivers for their device today.

Video codecs are; however, a weak spot still given that a 32bit codec will not be recognized by a 64bit application (and vice versa).

-Kevin
 

Nothinman

Elite Member
Sep 14, 2001
30,672
0
0
x86 supports 4GB of RAM; however, 2GB is reserved for kernel space applications/programs. Thus, you have 2GB available for user space programs and drivers (For instance, Graphics and Sound Drivers, starting with Vista, were moved to the User Space).

The 2/2G split is virtual, not physical. The physical limit is 4G but there's some addresses stolen by the hardware that lower what the OS actually sees. If your hardware only needs 100M of I/O addresses then you'll get 3.9G.

There are registry modifications that will allow you to decrease the Kernel Space allocation to 1GB; however, these are very bad ideas given that your Virtual Page Table is then messed around with.

With this in mind, without the FILE_LARGE registry modification, a single process is limited to 2GB of memory. With the modification, this increases to 3GB per process.

It's a combination of a kernel switch (/3GB) and the LargeAddressAware setting on the executable itself, not in the registry. On a 64-bit Windows system the LargeAddressAware bit will give a 32-bit process 4G of VM instead of the 3G you get on a 32-bit system.
 

Gamingphreek

Lifer
Mar 31, 2003
11,679
0
81
Originally posted by: Nothinman
x86 supports 4GB of RAM; however, 2GB is reserved for kernel space applications/programs. Thus, you have 2GB available for user space programs and drivers (For instance, Graphics and Sound Drivers, starting with Vista, were moved to the User Space).

The 2/2G split is virtual, not physical. The physical limit is 4G but there's some addresses stolen by the hardware that lower what the OS actually sees. If your hardware only needs 100M of I/O addresses then you'll get 3.9G.

There are registry modifications that will allow you to decrease the Kernel Space allocation to 1GB; however, these are very bad ideas given that your Virtual Page Table is then messed around with.

With this in mind, without the FILE_LARGE registry modification, a single process is limited to 2GB of memory. With the modification, this increases to 3GB per process.

It's a combination of a kernel switch (/3GB) and the LargeAddressAware setting on the executable itself, not in the registry. On a 64-bit Windows system the LargeAddressAware bit will give a 32-bit process 4G of VM instead of the 3G you get on a 32-bit system.

So it is split on the Page Table then right?

Also, the 100M is the legacy MMIO section correct?

-Kevin
 

Nothinman

Elite Member
Sep 14, 2001
30,672
0
0
So it is split on the Page Table then right?

Well the page table just holds which virtual addresses map to which physical addresses. So with a 2/2 split 2G will always point to kernel addresses while the other 2G will be per-process.

Also, the 100M is the legacy MMIO section correct?

I just picked 100M randomly out of the air because the amount of address space stolen is dependent on the hardware. I don't know if there's an absolutely, bare minimum required by every motherboard or not.