x86およびメモリアドレッシング
-
21-09-2019 - |
質問
私が拾い、私は質問や2を持って組み立て帳にメモリモデルにまで読んできました。アドレスバスは32ラインを持っていることをみましょうと言うには、データ・バスは32本のラインを持っており、CPUは32ビット(簡略化のため)です。 CPUが読み出し要求を行い、32ビットのアドレスを送信しますが、8ビットだけを必要とする場合さて、全ての32ビットが、とにかく戻ってきますか?また、メモリ内のアドレスはまだバイトごとに正しい対処していますか?だから、フェッチ1バイトのアドレスに戻って0001 0000をもたらすだろう0000 0004?
解決
一般的に、はい。単語全体が読み込まれるので、バスからの単語の部分を読むことによって得られるものは何もありません。命令は、それらが実際にレジスタにロードまたはストアする必要がある単語の一部を指定します。
これは、これらの日メモリから直接読み取ることはまれだ、と述べました。 CPUは、あなたが時間の99%を相互作用するキャッシュを持っており、データがキャッシュにない場合には、全体のラインは(複数の単語)に持ち込まれ、その後、あなたはまだキャッシュから読み込まれます。
また、多くの現代のCPUは、実際に64ビットのバスを持っていることに注意します。
他のヒント
あなたは本当にこれをお読みください:何すべてのプログラマすることがわかっているメモリについての
所属していません StackOverflow