2011-10-30 25 views
0

私は64ビットx86プロセッサ(Intel)上で32bit ubuntuを実行しています。この場合のサイズは64ビットですが、私は32ビットOSについて少し混乱しています。 私はメモリ帯域幅を計算する間に、データバスの幅64行が使用され、64ビットOSと同じ性能を発揮すると仮定しますか?私は、アーキテクチャの幅にOSの幅の関係をよりよく理解したいと思います。64ビットアーキテクチャの32ビットOS

たとえば、64ビット幅のメモリバスで64ビットオペランドをシングルショットで読み取ることができます。これには64ビットOSのサポートが必要ですか? 32ビットOSでは、64ビットオペランドを読み込むために2回読み込み(毎回32ビット)しますか?

ありがとうございます!

答えて

0

これは心配しないでください。 OS 32ビット対64ビットは、メモリアドレッシングでのみ選択可能です。 64ビットでは、より多くのアドレスを割り当てることができます。

メモリからのデータ読み込みはOSとは無関係です。プロセッサアーキテクチャによって異なります。 プロセッサの方が、1つのメモリ負荷で128ビット、256ビットをロードする可能性があります。

これは最短の説明であり、このOSで動作するプログラムの99.9%に当てはまるはずです。 0,1%プログラムのために予約されている場合、データにアクセスする際のメモリのアライメントは気にしません。しかし、この問題は、プロセッサキャッシュによって次の99.9%で対処される可能性があります。

要約 - すべてのプログラムを実行するのに十分なメモリがOSにあるかどうかを心配する必要はありません。

0

32ビットOS用にコンパイルされたアプリケーションでは、バスが64ビットであることも分かりません。最初の32ビットのみを使用します。

プロセッサが64ビットモードで実行されていないため、64ビットデータはバスの最初の32ビットを使用して同じ番号の2つの異なる部分を読み取る2つの異なるレジスタ(EAX:EDXなど)に格納されます。

関連する問題