x64, Explained.


 Share

Recommended Posts

Mindovermaster

x64 uses the full 4gb. x64 has no limit of ram.

I currently run Vista Ultimate x64.

Link to post
Share on other sites

hdood
I've got a question about 4GB RAM and x64.

Well,with 32bit and 4GB RAM, it only sees 3.25GB(round it to 3GB). Application that are used only use half of the available RAM, so that would be 1.5GB.

2.6GB is available on the task manager but the extra 1GB isn't used.

I'm not sure what you mean by only use half of the available RAM.

The issue in the 32-bit consumer versions of Windows is that the kernel has a 32-bit virtual address space (VAS). This is essentially a list of 2^32 = 4,294,967,296 (4GB) of numbers (addresses) that can point to anything. It is not a 1:1 map of the physical RAM, and something that takes up part of virtual address space is not necessarily using the same amount of physical RAM.

For performance reasons, all the hardware resources on the motherboard have to be mapped into this VAS so that the various components of Windows can access them directly by simply looking at a certain address in the VAS list. If Windows has to map 1GB of these resources into the VAS. That means that it now only has 3GB of addresses left that it can map to the addresses of the actual physical RAM. If you have 4GB of physical RAM, the last GB simply remains unused and ignored by the system.

Now, that was the kernel's VAS, but in addition to that each process (application) on the system gets assigned its own unique and private 4GB (32-bit) VAS, where the lower 2GB belong to the process and are dynamically mapped to various addresses in physical RAM as the process allocates memory, and the high 2GB which are fixed and map to various resources in the kernel (for performance reasons.)

In other word, the most memory a single application can use (without resorting to manual memory management) is 2GB. However, since the VAS is unique to the process, two processes could if they wanted to each allocate 1.5GB on a machine with 3GB available RAM.

And like I said, if a process requires it, it can request chunks of memory and do its own memory management, and thus allocate as much memory as it wants. In other words, there is no restriction that make applications only capable of using half the available RAM.

If 64bit was installed, how much RAM would be available for that one application?

If system uses 1GB ram, then would 3GB be used for the application or would it be the same?

With Vista, Home Basic can support 8GB of ram, Home Premium 16GB, and the other versions up to 128GB. As for the physical limit, on the AMD64 (x64) platform, memory addressing is 48-bit. Not that you'd have that much memory anyway, most chipsets support far less.

The VAS each process is assigned on AMD64 Windows is divided 50/50 between allocatable memory and mapping to kernel resources just like on 32-bit, except instead of 2/2 GB (32-bit), it is 8/8 TB (43-bit). This can be gradually extended towards the full 64-bit in the future as/if it becomes necessary (it isn't done at present for performance reasons).

In other words, if you are running Home Premium 64-bit, an application can, without any extra work, allocate 8 TB of memory, where up to 16GB (128 for Ultimate) can be physical RAM and the rest swap on disk. That basically means all your RAM.

Sorry if this was a little too technical.

Link to post
Share on other sites

Mindovermaster

Umm, hdood, that was... :p

In another words, do not worry about it..

Link to post
Share on other sites

jelli

Wow thats really in depth hdood, good summary (Y)

Link to post
Share on other sites

  • 3 weeks later...
noroom

Is there a reason to use a 64-bit OS on a laptop with 2 GB RAM (that won't ever be upgraded)?

Link to post
Share on other sites

Mindovermaster

other than safer surfing, no.

32-bit drivers do not penetrate 64-bit operating systems.

Link to post
Share on other sites

noroom

How will it bring safer surfing, and what do the drivers have to do with it? o_0

Link to post
Share on other sites

Mindovermaster

sorry, i meant viruses, not drivers. I had to leave quick, didn't have time to read over.

Link to post
Share on other sites

  • 1 month later...
rafter109

It should be noted that most consumer 32-bit operating systems limit memory usage to 4GB and hardware may limit this further. 64-bit versions of Windows XP and Windows Vista have memory limits of 128GB with the exception of Vista Home Premium and Vista Home Basic which have limits of 16GB and 8GB respectively. Vista Starter and XP Starter have no 64-bit versions and are limited to 1GB and 512MB respectively.

Each 32-bit process on a 64-bit operating system can use up to 2GB of RAM

Note: This can be increased by setting IMAGE_FILE_LARGE_ADDRESS_AWARE

Each 64-bit process on a 64-bit operating system can use up to 8TB of RAM

Link to post
Share on other sites

rafter109
other than safer surfing, no.

32-bit drivers do not penetrate 64-bit operating systems.

That is a common misconception. Most browsers are still 32-bit, thus any browser extensions are still 32-bit. Very few virus or spyware attacks use system drivers and usually rely on installing services, start-up items and BHO's which could care less if the operating system is 32 or 64-bit.

Anti-virus applications are another story altogether. All of the major anti-virus vendors rely heavily on drivers thus must be specifically designed for a 64-bit operating system. Most of the vendors have already addressed this and have products on the market that are compatible. Users will find that with most of these, there will be increased scanning speeds on the 64-bit varieties versus the 32-bit counterparts.

When buying software for Windows Vista, look for the logo, it ensures that the vendor has met compatibility standards for both 32 and 64-bit.

Link to post
Share on other sites

thealexweb

Yah, I'm about to move to Vista Ultimate x64!

Link to post
Share on other sites

hdood
It should be noted that most consumer 32-bit operating systems limit memory usage to 4GB and hardware may limit this further.

You mean most versions of Windows. Other modern 32-bit OSes generally have no such restriction as long as the hardware supports more. Mac OS X is an example of this (and I suppose the only other OS that qualifies as "consumer").

Also, your numbers aren't really correct. What you are describing is the size of the default virtual address space, not the most memory a process can use (which is any amount up to the available physical/virtual amount available).

Link to post
Share on other sites

Digitalx

It could have been a bit more simple. If you plan on having/have more then 3GB of RAM use a 64-bit operating system.

Outside of that, beyond rumors etc 2 or 3GB or lower with 64 bit operating system will not actually be any faster or anything in real world use or anything.

Link to post
Share on other sites

rafter109
You mean most versions of Windows. Other modern 32-bit OSes generally have no such restriction as long as the hardware supports more. Mac OS X is an example of this (and I suppose the only other OS that qualifies as "consumer").

Also, your numbers aren't really correct. What you are describing is the size of the default virtual address space, not the most memory a process can use (which is any amount up to the available physical/virtual amount available).

I stand corrected. OSX does not have the 4GB limit that 32-bit Windows had although the applications had a 4GB limit prior to Tiger. It should be noted though that this thread is generally refering to Windows although I was ambiguous in my post.

Please cite your source regarding process memory usage.

It could have been a bit more simple. If you plan on having/have more then 3GB of RAM use a 64-bit operating system.

Outside of that, beyond rumors etc 2 or 3GB or lower with 64 bit operating system will not actually be any faster or anything in real world use or anything.

I have used Vista Home Premium 32-bit and 64-bit on the same hardware with 2GB of ram and in some applications I have noticed significant performance improvements. It is all dependant on whether the application was optimized for 64-bit calculations

Link to post
Share on other sites

rafter109

Your source does not provide proof of your rebuttal. If I am wrong on my information I would like to know but thus far you have not shown me that 32-processes can use more than 2GB of memory without IMAGE_FILE_LARGE_ADDRESS_AWARE being set.

Link to post
Share on other sites

hdood

Did you look at it, because it's purpose is to allocate any amount of memory you want (up to the physical limit). Similar mechanisms exist on all modern operating systems, it's nothing special.

Link to post
Share on other sites

rafter109
Did you look at it, because it's purpose is to allocate any amount of memory you want (up to the physical limit). Similar mechanisms exist on all modern operating systems, it's nothing special.

Understood, but unless the flag is set in the OS, it is irrelevant what the programmer did. Windows will still limit memory allocation to 2GB per process.

Link to post
Share on other sites

Eric
anyone knows a good x64 defragmenter (my pc definitely needs one)

JkDefrag Free, awesome, Scientology-free. :)

Link to post
Share on other sites

hdood
Understood, but unless the flag is set in the OS, it is irrelevant what the programmer did. Windows will still limit memory allocation to 2GB per process.

Uh, no. 2GB (3GB with 4GT and 4GB on WOW64 if large address aware) is the size of the virtual address space. No more, no less. The function I linked to allocates any number of pages (as long as they're available) which you can then map as you wish.

Link to post
Share on other sites

rafter109
Uh, no. 2GB (3GB with 4GT and 4GB on WOW64 if large address aware) is the size of the virtual address space. No more, no less. The function I linked to allocates any number of pages (as long as they're available) which you can then map as you wish.

We're just going to have to agree to disagree. I have yet to see an application that can use more than 2GB on a 32-bit desktop Windows operating system.

Link to post
Share on other sites

hdood

No offence dude, but you're basically claiming that the earth is flat -- even after having been shown conclusive evidence that it is not. SQL Server is one example of a product that uses said API to support large amounts of RAM, so you can't have looked very far. There's no reason why you can't give it 60GB if you have it and an OS edition that is licensed to support that much RAM (i.e Datacenter).

Whether it's a desktop or server OS has no relevance, they both work the exact same way.

This is just a silly discussion.

Link to post
Share on other sites

rafter109
No offence dude, but you're basically claiming that the earth is flat -- even after having been shown conclusive evidence that it is not. SQL Server is one example of a product that uses said API to support large amounts of RAM, so you can't have looked very far. There's no reason why you can't give it 60GB if you have it and an OS edition that is licensed to support that much RAM (i.e Datacenter).

Whether it's a desktop or server OS has no relevance, they both work the exact same way.

This is just a silly discussion.

Hrmm.... after some more reading, I stand corrected. It seems that you are correct about applications being able to use more than 2GB of ram. Aside from SQL Server, there seems to be little use of this so for all intensive purposes, this debate seems to be a moot point as there is little documented use of said API in applications that the average user would encounter on their home or office workstation. Considering that the 32-bit OS memory limit is 4GB it would stand to reason that anyone needing more than 2GB for any one application would be best to move to a 64-bit OS anyway to allow further memory expansion and to gain a mathematical advantage as such applications usually benefit noticeably from 64-bit operating systems

Link to post
Share on other sites

  • 2 months later...
+Gary7

I currently have 3.0 Gb of some off brand memory that I never heard of. My machine is capable of running 64 bit. I am going to install the 64 bit version of Windows 7 RC1. My question is. Memory is pretty cheap right now and I can get 8GB of Crucial Ballistix Ram for around $98.00.

Will that much ram generate allot of heat and is it over kill?

Link to post
Share on other sites

The_Decryptor

Can't see it generating much heat, and I wouldn't say it's overkill.

I might be biased though, since I'm buying 8GB of RAM sometime :p

Link to post
Share on other sites

This topic is now closed to further replies.
 Share

  • Recently Browsing   0 members

    No registered users viewing this page.