2017-02-08 9 views
0

メモリアクセスの仕組みを正しく理解していることを確認しています。32ビットアドレスを使用したメモリアクセス

私は64ビットワードのワードアドレス可能なメモリシステムを持っています。 32ビットアドレスを使用してどのくらいのメモリにアクセスできますか?

64ビットワードは8バイトなので、8バイトワードを扱います。 8バイトのワードは2^8(256)まで保持できます。

私たちは32ビットのアドレスを持っているとしますが、2^32ですが、各ワードは256のうちの256を占めているので、(2^32)/ 256 = 1677216バイトです。

私たちは2^24 =(2^4)*(2^20)= 16Mbです。

これは正しい方法ですか?私は答えを確認する方法がなく、このようないくつかの質問を静かにしてください。私はジャンクを提出していないことを確認したい!

+0

値はアドレス空間を「占有」しません。 2^32のメールボックスがあり、それぞれに64個のオン/オフスイッチが格納されています。合計で何台のスイッチを持っていますか? – doynax

答えて

1

32ビットアドレスは、4,294,967,296の可能なアドレスを提供します。アドレス指定可能な最小要素が64ビット== 8バイトのワード(バイトに対して)である場合、アドレス可能なスペースの総量は4,294,967,296×8 = 34,359,738,368バイト= 34GBとなる。

8バイトワードの容量は、2^8 = 256バイトではなく8バイトです。

注意古いコンピュータの中には、単語のみを扱う基本的なアドレッシングシステムがありました。バイトアドレスに必要なバイトインデックスまたはオフセットをアクセスするバイト。私は現在のコンピュータがそのような計画を使用しているとは思わない。

+0

ああ、私も近くにいませんでした。 – Podo

+0

これは別の質問で、あなたが逆に言っていたことを理解しているかどうかを確認するだけです。 したがって、各単語が64ビットの場合、512 Mbにはいくつのアドレスビットが必要ですか? 512MB = 2^29なので、2^29/8 = 2^26ビット必要ですか? – Podo

+0

@ JeffreyDilley - MBは通常メガビットを意味し、MBメガバイトを意味しましたか? 512MBの場合は512MB/8 = 2^9(512)×2^20(メガバイト)/ 2^3(1ワードあたり8バイト)= 2 ^(9 + 20 -3)= 2^26 = 67,108,864アドレス、または26ビットアドレス。 – rcgldr

1

あなたは32ビットアドレスを取っていますが、2^32ビットを扱うことができますが、いくつのバイトがアドレス可能なのかを知りたい場合は、1バイトに8ビットがあるので2^32/8 = 2^29のように分割してください。 1ワードに8バイトが含まれているため、2^26/8ワードを扱うことができるので、2^29/8のどれくらいのワードを扱うことができればいいですか?

1ワードは8バイトなので、(2^26)* 8バイトをアドレス指定できます。 お役に立てば幸いです!

関連する問題