7

手に取ったアセンブリ ブックでメモリ モデルについて読んでいて、1 つまたは 2 つの質問があります。アドレスバスには 32 本のラインがあり、データバスには 32 本のラインがあり、CPU は (簡単にするために) 32 ビットであるとします。CPU が読み取り要求を出して 32 ビット アドレスを送信するが、8 ビットしか必要としない場合、とにかく 32 ビットすべてが戻ってくるのでしょうか? また、メモリ内のアドレスは依然としてバイト単位でアドレス指定されていますか? では、1 バイトをフェッチすると、アドレス 0000 0004 に 0000 0001 が返されるのでしょうか?

4

1 に答える 1

8

一般的に、はい。バスから単語の一部を読み取っても何も得られないため、単語全体が読み取られます。命令は、実際にレジスタにロードまたは格納する必要があるワードの部分を指定します。

とはいえ、最近ではメモリから直接読み取ることはほとんどありません。CPU には 99% の時間対話するキャッシュがあり、データがキャッシュにない場合、行全体 (複数の単語) が取り込まれ、キャッシュから読み取られます。

また、最新の CPU の多くは実際には 64 ビット バスを備えていることにも注意してください。

于 2010-03-21T18:04:48.153 に答える