メモリ モジュールには、128 ビット幅のデータ バスがあります。モジュールが 4GB (2^31 バイト) を保持する場合、いくつのアドレス ビットが冗長になりますか?
アドレスバスを見つけるために使用できるある種の式(式ではない場合は論理手順)があり、そこからアドレスビットの冗長数を見つけることができると思います。アドレスバス、バス幅、データバスなど、これらがどのように関連しているかについての基本的な考えはありません。
メモリ モジュールには、128 ビット幅のデータ バスがあります。モジュールが 4GB (2^31 バイト) を保持する場合、いくつのアドレス ビットが冗長になりますか?
アドレスバスを見つけるために使用できるある種の式(式ではない場合は論理手順)があり、そこからアドレスビットの冗長数を見つけることができると思います。アドレスバス、バス幅、データバスなど、これらがどのように関連しているかについての基本的な考えはありません。
これらのパラレル バスの 1 つの上の各ラインは、1 ビットの情報を表します。これが、バスを構成するライン数がビット幅で表される理由です。
アドレス バスは、メモリ モジュールから読み書きするアドレスを送信するために使用されます。各ラインは 1 ビットのみを「転送」できるため、複数のラインが並行して使用されます。
たとえば、メモリ内の 256 の異なる場所をアドレス指定できるようにするには、アドレス バスに (少なくとも) 8 ラインが必要です (2^8 = 256 であるため)。したがって、これらの 40 億のメモリ ロケーションには、アドレス バス上に 32 のバス ラインが必要です。アドレス バスは 32 ビット幅です。
上記で「メモリ位置」という単語を使用したことに注意してください。これは、メモリ モジュールに送信されるアドレスが、バイトまたは「ワード」(2 バイト) や「ダブルワード」(4 バイト) などの他のストレージ単位を参照する場合があるためです。または、他の何か。
直接アドレス指定できるストレージの最小単位の大きさは、メモリ モジュールとその内部構造によって異なります。
データバスのバス幅が 128 ビットのメモリモジュールは、128 ビット = 16 バイトを同時に送受信できます。この種のメモリの場合、アドレス指定可能な最小単位は128 ビットである可能性があるため、通常はこのブロック サイズの倍数で整列される 16 バイトのブロックでのみアクセスできます。
その場合、16 バイトの最初のブロックはアドレス 0 によってアドレス指定され、メモリの最初の 16 バイトを占有します。次に、アドレス 1 が次のブロックになり、バイト #16 から始まります。アドレス 2 は、バイト #32 から 16 バイトを与えます。
そのため、アドレス バス上の各アドレスを使用して 16 バイトを同時にアドレス指定すると、バイト単位のアドレス指定と比較して、メモリ全体にアクセスするために必要なアドレスが少なくなります。
これらの 4GB の各バイトを個別にアドレス指定できるようにするには、アドレス バスは 32 ビット幅 (2^32 バイト = 4GB) である必要があります。ただし、16 バイトのブロック全体のみを個別にアドレス指定できる場合は、メモリ全体をアドレス指定するために (2^32)/16 の異なるアドレスを指定するだけで済みます。16 = 2^4 なので、(2^32)/(2^4) = 2^28 です。-> 16 バイト (=128 ビット) の各ブロック全体をアドレス指定するには 28 ビットが必要であり、アドレス バスの幅は 28 ラインに削減される可能性があります。