The following document addresses some of the differences between the Windows 64-bit and 32-bit architectures and provides recommendations on the best architecture when using certain NI software.
A 64-bit architecture offers several benefits. The primary advantage is the ability to make use of additional computer memory. A computer running a 32-bit version of Microsoft Windows is limited to using a maximum of 4 GB of RAM, while 64-bit versions of Windows have a maximum memory limit of between 8 and 2 TB, depending on the operating system edition (Home, Professional, Enterprise). For more information about memory limitations for different versions of Windows, refer to the Memory Limits for Windows Releases document on the Microsoft web site.
A 64-bit architecture provides performance improvements for users running applications on 64-bit hardware because the operating system can take advantage of more physical memory than a 32-bit system is capable of doing. More available memory can increase system performance by eliminating the need to swap processes in and out of page files stored on hard drives, which is a much slower memory storage device than physical memory and cache.
In addition to increased physical memory, additional registers on a 64-bit processor can increase execution speed of applications.
Although there are benefits to using a 64-bit operating system, it might not be feasible or optimal to make the transition to a 64-bit system if much of the current software available is intended for use on 32-bit systems. A move to a 64-bit architecture means running a different Windows kernel and thus any driver installed must be compatible with the 64-bit architecture. The majority of NI software and drivers are 64-bit compatible. However, it is important to understand the difference between compatibility with a 64-bit operating system and native 64-bit support that can take full advantage of the architecture and available memory.
In order to clarify the difference, NI drivers can be broken down into two different components: User-Mode and Kernel-Mode. The architecture of the Kernel-Mode component of the driver matches the architecture of the operating system. The architecture of the User-Mode component of the driver does not have to match the operating system. Therefore, any software running in User-Mode can be developed as 32-bit or 64-bit. The Kernel-Mode component of most NI drivers is capable of running on either a 64-bit or 32-bit operating system. However, only certain NI drivers have a 64-bit User-Mode component to the driver. Therefore, even though a driver can operate on a 64-bit version of Windows, the driver might not fully take advantage of the 64-bit architecture.
When a driver uses a different User-Mode architecture than Kernel-Mode architecture, a software layer converts the 32-bit architecture to 64-bit. This conversion requires processing time and resources. 64-bit Windows provides this software layer in a subsystem called Windows-on-Windows (WOW64) included in the operating system. This subsystem allows 32-bit applications to run on the 64-bit environment at the expense of performance.
The Windows-on-Windows subsystem is designed to allow the conversion of 32-bit Windows applications to the 64-bit environment. This subsystem handles many of the structural changes that must take place because of differences in the operating system architectures. The primary purpose of WOW64 is to create a 32-bit environment that provides the interfaces required to allow 32-bit Windows applications to run unmodified on the 64-bit system. Even though this is a relatively light-weight layer within the Windows operating system, it can cause some performance degradation. Therefore, it is more efficient to use 32-bit applications on a 32-bit operating system, as this does not require the Windows-on-Windows conversion.
Most NI drivers support both 32-bit and 64-bit architectures. Additionally, beginning with the release of LabVIEW 2009, separate 32-bit and 64-bit software versions are available. These separate versions are only available for the English version of LabVIEW Base, Full, or Professional software and support a subset of LabVIEW Modules and Toolkits. LabVIEW NXG and all compatible drivers are only compatible with 64-bit systems.
Beginning in 2011, all new versions of NI software document their compatibility with 64-bit Windows and 64-bit LabVIEW in their Readme files. NI plans to continue to monitor demand and prioritize this migration for other products in the future.
To see a consolidated list of compatible software, please refer to:
Use the following illustration to determine the best Windows architecture to optimize the performance of your applications.