このページでは、Windowsの64ビット版および32ビット版アーキテクチャの違いについて説明するとともに、特定のNIソフトウェアを使用する場合に最適な推奨アーキテクチャを紹介します。
64ビットアーキテクチャには、いくつかのメリットがあります。中でも重要なのは、より多くのコンピュータメモリを使用できる点です。32ビット版Microsoft Windowsが搭載されたコンピュータでは、使用できるRAMは最大で4 GBです。64ビット版Windowsのメモリ上限は、オペレーティングシステムのバージョン (Home、Professional、Enterprise) により、8 GB~2 TBとなっています。Windowsのさまざまなバージョンにおけるメモリ上限については、Microsoft社のWebサイトにある「Memory Limits for Windows Releases」のページをご覧ください。
64ビットアーキテクチャでは、32ビットシステムに比べより多くの物理メモリを使用できるため、64ビットハードウェアでアプリケーションを実行する際のパフォーマンスが向上します。使用できるメモリが増えることで、物理メモリやキャッシュに比べはるかに低速なメモリストレージデバイスであるハードドライブに保存されたページファイルでのプロセスのスワップインやスワップアウトが不要となるため、システムのパフォーマンスが向上します。
物理メモリの増加だけでなく、64ビットプロセッサではレジスタも追加されているため、アプリケーションの実行速度が向上する場合もあります。
64ビットオペレーティングシステムを使用するメリットはありますが、現在使用できるソフトウェアのほとんどが32ビットシステム用であるとしたら、64ビットシステムへの移行は、現実的あるいは適切ではない可能性があります。64ビットアーキテクチャでは異なるWindowsカーネルが実行されるため、インストールするドライバもすべて64ビットアーキテクチャに対応していることが必要になります。 NIのほとんどのソフトウェアとドライバは、64ビットに対応しています。 ただし、64ビットオペレーティングシステムと互換性があるということと、64ビットのネイティブサポートとの違いを理解しておくことは重要です。ネイティブサポートの場合、アーキテクチャと利用可能なメモリをフルに活用することができます。
こうした違いを明確にするために、NIドライバは、ユーザモードとカーネルモードの2つの異なるコンポーネントに分けることができます。ドライバに関するカーネルモードコンポーネントのアーキテクチャは、オペレーティングシステムのアーキテクチャと同じになります。ただし、ユーザモードコンポーネントのアーキテクチャは、オペレーティングシステムのアーキテクチャと同じでなくてもかまいません。そのため、ユーザモードで実行しているソフトウェアは、32ビット用としても64ビット用としても開発できます。 ほとんどのNIドライバのカーネルモードコンポーネントは、64ビットと32ビットのいずれかのオペレーティングシステムで実行可能です。ただし、NIのドライバの中で64ビットユーザモードコンポーネントがあるのは一部の製品のみです。そのため、64ビット版のWindowsで実行可能なドライバでも、64ビットアーキテクチャのメリットを十分に活用できない場合があります。
ドライバが使用しているユーザモードのアーキテクチャがカーネルモードのアーキテクチャと異なる場合、ソフトウェア層は32ビットアーキテクチャを64ビットに変換します。 この変換では、処理の時間とリソースが必要になります。64ビット版Windowsでは、オペレーティングシステムに含まれているWindows-on-Windows (WOW64) というサブシステムに、そのようなソフトウェア層があります。このサブシステムを使用すると、パフォーマンスは低下しますが、32ビットアプリケーションを64ビット環境で実行することが可能となります。
Windows-on-Windowsサブシステムは、32ビット版Windowsのアプリケーションを64ビット環境用に変換するよう設計されたものです。このサブシステムは、オペレーティングシステムのアーキテクチャの違いに起因するさまざまな構造上の変更に対処します。WOW64の主な目的は、32ビット版Windows用アプリケーションを修正せずに64ビットシステム上で実行可能にするためのインタフェースを備えた32ビット環境を作成することです。WOW64はWindowsオペレーティングシステムの中では比較的負荷の軽い層ですが、それでも多少はパフォーマンスが低下する可能性があります。したがって、32ビットアプリケーションは32ビット版オペレーティングシステムで実行した方がより効率的となります。これは、Windows-on-Windowsでの変換が不要になるためです。
ほとんどのNIドライバは、32ビットと64ビットのどちらのアーキテクチャもサポートしています。また、LabVIEW 2009のリリース以降、32ビット版と64ビット版のソフトウェアがそれぞれ提供されています。これらの各バージョンは、LabVIEWベースパッケージ、開発システム、プロフェッショナル開発システムの英語版のみで利用することができ、LabVIEWのモジュールとツールキットをサポートしています。 LabVIEW NXGおよび互換性のあるすべてのドライバは、64ビットシステムのみに対応しています。
2011年以降、NIソフトウェアのすべての新しいバージョンでは、64ビット版Windowsおよび64ビット版LabVIEWとの互換性に関する情報がReadmeファイルに記載されています。NIでは、引き続きお客様のニーズを注視し、今後他の製品でもこうした移行を優先的に行うよう計画しています。
互換性のあるソフトウェアをまとめた一覧については、以下を参照してください。
アプリケーションのパフォーマンスを最適化するために最も適したWindowsアーキテクチャを見つけるには、以下の図を参照してください。