BCDEdit /set increaseuserva Megabytes (replaces /3GB and /USERVA)
BCDEdit /set pae [ Default | ForceEnable | ForceDisable ] (replaces /PAE)
Note that the addressspace is limited to 4GB by design even if /PAE is enabled, only use for PAE switch is AWE bankswitching
**** Not sure whether /PAE isn’t supported. But because addressspace is limited to 4GB there is no use of /PAE anyway, except for use of AWE bankswitching from an application.
Boot.ini options:
/3GB enable that applications can use a virtual address space of 3GB. The system only uses the upper 1GB range for system calls instead of 2GB.
/3GB on “Windows 2000 Professional” and “Windows 2000 Server” has the effect of reducing kernel size to 1 GB while the application address-space stays 2 GB.
Application must have IMAGE_FILE_LARGE_ADDRESS_AWARE in its header to get an 3GB address-space. This is for backward compatibility with old programs which compare pointers (pointers are signed)
Some DLL’s load at 2GB boundary (0x7FFFFFFF and below). This makes it impossible to have an continues address-space above 2GB. A VirtualAlloc above 2GB will fail therefore.
It looks like anno 2011 Microsoft calls 3GB, 4GT instead (4-gigabyte tuning)
/PAE Enable enhanced adressing mode (36bit physical addressing mode, max 64GB theoretically)
Minimum processor for PAE: Intel Pentium Pro (AMD x64)
/USERVA: reduce the user-address-space from 3GB downto 2GB to leave more memory for the kernel
Why less than 4GB is seen by 32-bit Windows XP (and other 32-bit OS which support max 4GB and no PAE)
An Intel-architecture processor (AMD included) maps I/O ports onto memory addresses. In the design of the PC the PCI/AGP I/O is started from address 0xFFFFFFFF and lower addresses. The 0xFFFFFFFF is the max address of 32bit (4GB). The size of this I/O address range is depends on the detailed design of the motherbord, BIOS and of the present PCI/AGP cards.
Memory at these I/O address range cannot be addressed. Modern motherboards have a remapping option so the memory located at the I/O addresses is moved to addresses above the 0xFFFFFFFF (4GB) address. Unfortunately 4GB-32bit-Windows versions (like XP) is not able to address memory located above the 4GB boundary, now for another reason as the kernel uses 32bit words for addressing.. With PAE (uses 36bit adresses) addressing is possible but PEA is not supported by the 4GB-versions of Windows.
Take for example a ASUS M2N motherboard with 8GB memory with a Geforce 8500 PCI-e card and 3 SATA x4 controllers.
The remapping option can be found at BIOS->Advanced->Chipset->Memory controller->Memory configuration->Memory hole remapping.
The I/O on this motherbord is located from 0x9FF49000 to 0xFFFFFFFF. Only the first 2683604992 bytes of memory can addressed below the 4GB boundary. The remapping option remaps the memory between 0x9FF49000-0xFFFFFFFF to the addresses 0x100000000-0x1600B7000. We see the following:
|
Disabled remapping
|
Enable remapping
|
Memory reported by BIOS
|
6656MB
|
8192MB
|
Memory reported by Windows XP
|
2559MB (2683604992 byte)
|
2559MB (2683604992 byte)
|
Memory reported by 64bit (or 32bit-with-PAE)
|
6654MB (6977695744 byte)
|
8190MB (8588308480 byte)
|
-
Without remapping 1536MB of memory is not seen by the BIOS as it is located at I/O addresses
-
Remapping makes no difference for 4GB-32bit Windows as the remapped memory is out of reach. Always 1536MB is unused.
-
On 64bit Windows or 32bit Windows with PAE the remaping results in 8GB of available memory (ca. 2MB less because of resevered kernel and BIOS memory).
Methods of using large memory from within an 32 application:
1 – Specify /3GB in boot.ini and link application with IMAGE_FILE_LARGE_ADDRESS_AWARE. Use Windows versions which support PAE (Windows 2003 or equivalent). Then the virtual address spaces is increased from 2GB to theoretically 3GB. Practical you end up with two separate address ranges. Below address 0x8000000 you have about 1.5 GB and above it about 1 GB. In total 2.5 GB. Spanning your tasks over multiple processes and using interprocess communication you can use as much memory as possible. Note that the overhead for LDT’s with 4KB page size wastes a lot of memory (hundreds of MB).
2 – Use of AWE is very slow because it takes a lot of time to reload the LDT tables while switching the bank. (page size is only 4GB).
Misc background information:
-
Europe Vista versions do not have media player and media API’s (and that last one makes them unusable of course)
-
A 64bit application’ virtual addressspace is 8TB (althrough 64bit could address 16777216 TB = 16 EB). Microsoft only reserves a “small” part of the total possible addressspace for applications, because it is so “unbelievable” large… well, the future will tell…
-
There is no 32bit version of Windows Compute Cluster Server 2003
-
There are no 64bit versions of Windows 2003 Small Business Server, Windows 2003 Server Web Edition, Windows 2003 Storage Server, Windows 2003 Storage Server Enterprise Edition
Availability of AWE API (bankswitching from within an application in combination with PAE, AWE is useless without PAE)
Windows Version
|
AWE API
|
PAE support
|
|
|
|
|
|
|
Windows NT4 Workstation
|
N
|
N
|
Windows NT4 Server
|
N
|
N
|
Windows NT4 Enterprise
|
N
|
N
|
|
|
|
Windows 2000 Professional
|
Y
|
N
|
Windows 2000 Server
|
Y
|
N
|
Windows 2000 Advanced Server
|
Y
|
Y
|
Windows 2000 DataCenter
|
Y
|
Y
|
|
|
|
Windows XP Home Edition
|
Y
|
N
|
Windows XP Professional
|
Y
|
N
|
|
|
|
Windows 2003 Server Standard
|
Y
|
N
|
Windows 2003 Server Enterprise
|
Y
|
Y
|
Windows 2003 Server DataCenter
|
Y
|
Y
|
|
|
|
Version numbers (via GetVersionEx with OSVERSIONINFOEX)
Windows. 3.1 with WIN32s
|
3.01
|
VER_PLATFORM_WIN32s
|
|
Windows. 3.11 with WIN32s
|
3.11
|
VER_PLATFORM_WIN32s
|
|
|
|
|
|
Windows 95
|
4.00
|
VER_PLATFORM_WIN32_WINDOWS
|
|
Windows 98
|
4.10
|
VER_PLATFORM_WIN32_WINDOWS
|
|
Windows Me
|
5,00
|
VER_PLATFORM_WIN32_WINDOWS
|
|
|
|
|
|
Windows NT 3.1
|
3.01
|
VER_PLATFORM_WIN32_NT
|
|
Windows NT 3.51
|
3.51
|
VER_PLATFORM_WIN32_NT
|
|
Windows NT 4.0
|
4.00
|
VER_PLATFORM_WIN32_NT
|
|
Windows 2000
|
5.00
|
VER_PLATFORM_WIN32_NT
|
|
Windows XP
|
5.01
|
VER_PLATFORM_WIN32_NT
|
|
Windows Server 2003
|
5.02
|
VER_PLATFORM_WIN32_NT
|
GetSystemMetrics(SM_SERVERR2) == 0
|
Windows Server 2003 R2
|
5.02
|
VER_PLATFORM_WIN32_NT
|
GetSystemMetrics(SM_SERVERR2) != 0
|
Windows Vista
|
6.00
|
VER_PLATFORM_WIN32_NT
|
OSVERSIONINFOEX.wProductType != VER_NT_WORKSTATION
|
Windows Server 2008
|
6.00
|
VER_PLATFORM_WIN32_NT
|
OSVERSIONINFOEX.wProductType == VER_NT_WORKSTATION
|
-
GetNativeSystemInfo indicates x86/x64: PROCESSOR_ARCHITECTURE_INTEL, PROCESSOR_ARCHITECTURE_AMD64, PROCESSOR_ARCHITECTURE_IA64, PROCESSOR_ARCHITECTURE_MIPS, PROCESSOR_ARCHITECTURE_ALPHA, PROCESSOR_ARCHITECTURE_PPC, PROCESSOR_ARCHITECTURE_UNKNOWN
-
GetProductInfo indicates: PRODUCT_BUSINESS, PRODUCT_BUSINESS_N, PRODUCT_CLUSTER_SERVER, PRODUCT_DATACENTER_SERVER, PRODUCT_DATACENTER_SERVER_CORE, PRODUCT_DATACENTER_SERVER_CORE_V, PRODUCT_DATACENTER_SERVER_V, PRODUCT_ENTERPRISE, PRODUCT_ENTERPRISE_N, PRODUCT_ENTERPRISE_SERVER, PRODUCT_ENTERPRISE_SERVER_CORE, PRODUCT_ENTERPRISE_SERVER_CORE_V, PRODUCT_ENTERPRISE_SERVER_IA64, PRODUCT_ENTERPRISE_SERVER_V, PRODUCT_HOME_BASIC, PRODUCT_HOME_BASIC_N, PRODUCT_HOME_PREMIUM, PRODUCT_HOME_PREMIUM_N, PRODUCT_HOME_SERVER, PRODUCT_HYPERV, PRODUCT_MEDIUMBUSINESS_SERVER_MANAGEMENT, PRODUCT_MEDIUMBUSINESS_SERVER_MESSAGING, PRODUCT_MEDIUMBUSINESS_SERVER_SECURITY, PRODUCT_SERVER_FOR_SMALLBUSINESS, PRODUCT_SERVER_FOR_SMALLBUSINESS_V, PRODUCT_SMALLBUSINESS_SERVER, PRODUCT_STANDARD_SERVER, PRODUCT_STANDARD_SERVER_CORE, PRODUCT_STANDARD_SERVER_CORE_V, PRODUCT_STANDARD_SERVER_V, PRODUCT_STARTER, PRODUCT_STORAGE_ENTERPRISE_SERVER, PRODUCT_STORAGE_EXPRESS_SERVER, PRODUCT_STORAGE_STANDARD_SERVER, PRODUCT_STORAGE_WORKGROUP_SERVER, PRODUCT_UNDEFINED, PRODUCT_ULTIMATE, PRODUCT_ULTIMATE_N, PRODUCT_WEB_SERVER, PRODUCT_WEB_SERVER_CORE, PRODUCT_UNLICENSED
-
GetSystemMetrics indicates SM_MEDIACENTER, SM_STARTER, SM_TABLETPC, SM_SERVERR2
-
OSVERSIONINFOEX.wProductType indicates VER_NT_WORKSTATION,VER_NT_SERVER,VER_NT_DOMAIN_CONTROLLER
-
OSVERSIONINFOEX.wSuiteMask indicates bitmask: VER_SUITE_BACKOFFICE, VER_SUITE_BLADE, VER_SUITE_COMPUTE_SERVER, VER_SUITE_DATACENTER, VER_SUITE_ENTERPRISE, VER_SUITE_EMBEDDEDNT, VER_SUITE_PERSONAL, VER_SUITE_SINGLEUSERTS, VER_SUITE_SMALLBUSINESS, VER_SUITE_SMALLBUSINESS_RESTRICTED, VER_SUITE_STORAGE_SERVER, VER_SUITE_TERMINAL, VER_SUITE_WH_SERVER
Determine usable Vista version (64bit)
Version
|
Max Memory
|
Remote desktop
|
Home Basic / Premium
|
8GB/16GB
|
No
|
Business
|
128GB
|
Yes
|
Enterprise
|
128GB
|
Yes
|
Ultimate
|
128GB
|
Yes
|
Remote desktop is a must in order to reach you computer when not at home. There is no advantage of Enterprice/Ultimate on top of Business, except perhaps for Virtual PC support, MediaCenter and MUA support (on-the-flight change of display language, which does not realy change everything anyway). The N-versions are ofcourse in any way unusable.
So the best choice is Vista Business.
References
KB283037: /3GB option
KB810371: /USERVA option, exchange server
KB171793: /3GB option
KB316739: /USERVA option
KB294418: Comparison of 32-bit and 64-bit memory architecture for 64-bit editions of Windows XP and Windows Server 2003
Inside SQL Server 2000's Memory Management Facilities
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnsqldev/html/sqldev_01262004.asp
The following references are included in this document:
PAE, WHDC: Memory Support and Windows Operating Systemss
http://www.microsoft.com/whdc/system/platform/server/PAE/PAEmem.mspx
KB294418: Comparison of 32-bit and 64-bit memory architecture for 64-bit editions of Windows XP and Windows Server 2003
http://support.microsoft.com/kb/294418
3GB boot.ini option
http://msdn.microsoft.com/en-us/library/ms791558.aspx
BCDEdit Vista boot parameters tool
http://msdn.microsoft.com/en-us/library/aa906211.aspx
Memory Limits for Windows Releases
http://msdn.microsoft.com/en-us/library/aa366778.aspx
Windows Vista Starter Fact Sheet
http://www.microsoft.com/presspass/newsroom/windows/factsheets/WinVistaStarterFS.mspx
Vista versions
http://windowsitpro.com/article/articleid/47669/pre-pdc-exclusive-windows-vista-processor-and-memory-support-revealed.html
Share with your friends: |