メモリ要件が急速に増大するにつれて、今日、ますます多くのシステムがさらに大きなRAMにアクセスするために64ビットマシンを必要としています。
386プロテクトモードのFWIKでは、メモリポインタは2つの部分で構成されます。セグメントセレクタによって指定されたベースアドレス(32ビット)と、ベースアドレスに追加されたオフセットアドレス(32ビット)です。
すべてのプログラムを64ビットで再コンパイルするには、多くの作業が必要です。たとえば、C / C ++プログラムの場合、マシンに依存する `int'タイプ(32ビットマシンでは32ビット、64ビット)です。 64ビットマシンの場合)正しく使用しないと問題が発生します。問題なく再構築されている場合でも、メモリ要件が継続的に増大するにつれて、たとえば、いつか128ビットマシンを使用するようになり、新しいワードサイズに準拠するためにすべてのプログラムを再構築する必要がありますか?
ベースアドレスを64ビットに拡張してRAM全体に4GBウィンドウのようなセグメントを作成すれば、64ビットOSもまったく必要ありませんね。ほとんどのアプリケーション/プロセスはサーバー側で4G+メモリにアクセスする必要はありません。たとえば、ファイルサーバーがキャッシュ目的で20GB RAMを使用する場合、アクセスごとに2GBの10プロセスに分割される可能性があるため、32ビットポインタは足りる。そして、20GBのメモリをカバーするためにそれぞれを異なるセグメントに配置します。
セグメント制限の拡張は上位層プログラムに対して透過的です。Linuxが異なる64ビットセグメントにメモリを割り当てることをサポートできる場合は、CPUとOSについてのみ実行する必要があります(現在、セグメントのベースアドレスは32ビットですが)それでも)、32ビットマシンで1TBのRAMを簡単に利用できますね。
私は正しいですか?