アクセス効率を上げるためには、メモリ内でデータを適切に配置する必要があるとよく耳にします。CPU はワード境界でメモリにアクセスします。
したがって、次のシナリオでは、CPU は 1 つの単語を取得するために 2 つのメモリ アクセスを行う必要があります。
Supposing: 1 word = 4 bytes
("|" stands for word boundary. "o" stands for byte boundary)
|----o----o----o----|----o----o----o----| (The word boundary in CPU's eye)
----o----o----o---- (What I want to read from memory)
なぜこれが起こる必要がありますか?CPU がワード境界でしか読み取れない根本的な原因は何ですか?
CPU が 4 バイト ワード境界でしかアクセスできない場合、アドレス ラインは 32 ビット幅ではなく 30 ビットだけでよいはずです。CPU の目には、最後の 2 ビットが常に 0 であることが原因です。
追加 1
さらに、CPU がワード境界で読み取らなければならないことを認めた場合、境界を読み取りたい場所から開始できないのはなぜでしょうか? CPUの目には境界が固定されているようです。
追加 2
AnTによると、バウンダリ設定はハードウェア化されており、メモリ アクセス ハードウェアによってハードウェア化されているようです。これに関する限り、CPUは無実です。