web-dev-qa-db-ja.com

CPUが16ビットアドレスバスと8ビットワードを持っている場合、それはどこのくらいのメモリをアドレス指定できますか?

私は学期末試験のために勉強していて、次の質問と混同しています。 CPUに16ビットアドレスバスと8ビットワードがある場合、KB単位でどれだけのメモリをアドレス指定できますか?私の理解はそれが64KBを扱うことができると私に言うでしょう、しかしこれをするために私は2 ^ 16 = 65,536を使いました。その計算は実際には8ビットワードを考慮に入れていないので、それが正しいかどうかわからない。 8ビットワードとはどういう意味ですか?

乾杯

23
eZ_Harry

Wordは、大多数のアーキテクチャで、1回の操作で作業メモリとの間でやり取りできる最大のデータです。

メモリ内の場所を指定するために使用される最大可能アドレスサイズは、通常、ハードウェアワードと呼ばれます。

そのため、あなたのCPUは64KB(2 ^ 16)をアドレス指定できますが、8ビットの単一操作でしか転送できません。

38
Overmind

機械語Word、または一般的に単なるWordは、一般的な命令を使用してCPUが全体として操作できるデータの最大単位です。これはメモリアドレス指定とは関係ありません。

重要なのは、 アドレス解決の単位 です。これは、16/32/64ビットアーキテクチャでも一般的に8ビットバイトです。マシンのWordサイズと同じである必要はありませんが、おそらくあなたの場合です。

16ビットアドレスバスと組み合わされた8ビットアドレス指定可能ユニットは、CPUがアドレス指定できる64KiBのRAMになります。

21

8ビットワードとはどういう意味ですか?

文脈では、ワードサイズはメモリバスを記述するためのアドレスサイズと一緒になります。それが64kiの場所を選ぶことができるようにメモリに飛び出す16ビットがあります。それから、各ロケーションは8ビットを含みます。

ここでのワードサイズは、CPU計算ユニットサイズと一致してもしなくてもよく、これはアドレス指定における論理的粒度と一致してもしなくてもよい。

たとえば、CPUが(この目的のために)16ビットバスをアドバタイズすることがあります。それはその命令で16ビットアドレスを使い、あなたの例が64kiを持っているように。しかし、それは15ビットのアドレスバスと16ビットのデータバスを持っています。それは32kiアドレスだけを必要とし、常に各ロケーションで2バイトを取得します。 (命令が1バイトを必要としていた場合、最下位ビットが欠落しているアドレスをディスパッチし、そのステップで両方のバイトをフェッチしてから、必要なアドレスの最下位ビットを調べてどちらを使用するかを決めます。)

他の人が言及した銀行の切り替え、PAEなどはここでは関係ありません。メモリ管理ユニットは16ビットアドレスを使用し、20ビットハードウェアアドレスを使用する可能性があるので、CPUは実際の20ビットアドレス範囲のRAMチップを使用するために物を切り替えてマップする必要があります。対処しました。

答えには必ず単位を指定してください“ 64ki”。なにかの? 8ビットワードで、64Kバイトバイトのアドレス可能なRAMになります。そのステップは混乱を取り除き、このような問題を些細なものにします。

1
JDługosz

計算にはWordサイズも使用する必要があります。答えは64 KBです。

2 ^ 16ワードをアドレス指定でき、各ワードは8ビット(= 1バイト)です。したがって、64 KBです。

Wordのサイズが16ビットの場合答えは128 KBになります。

0
Nuri Tasdemir

これには2つの側面があります。あなたの講師があなたに彼に伝えてほしいと思うことと現実は何なのかということです。

まずあなたのインストラクターがあなたに彼に言うことをおそらく望んでいるもの。

「16ビットで2 ^ 16のメモリ位置をアドレス指定でき、各位置は8ビットです。したがって、524288ビット(65536オクテット)のメモリをアドレス指定できます。」

しかしながら、これはかなり単純化された世界観を反映しています。現実はもっと複雑で、決定的な答えを出すにはより多くの情報が必要です。実際のシステムがこれよりも複雑になる可能性がある方法のいくつかには以下が含まれます。

  • 多くのプロセッサには専用のIOマップがないため、メモリアドレス空間の一部をメモリ以外のものに使用する必要があります。
  • プロセッサの「ワードサイズ」は、必ずしもメモリデータバスの幅またはメモリの最小アドレス指定可能単位の幅と同じではない。
  • バスによっては、さまざまなサイズのデータ​​ユニットを移動できます。これはさらなるアドレス指定を必要とし、それは主アドレスバスのビットによって処理されてもされなくてもよい。
  • いくつかのバスは同じラインに異なる信号を多重化します。例えば、SDRAMは、「行アドレス」と「列アドレス」を送信するために同じアドレスラインを2回使用する。
  • 多くのシステムは、プロセッサが本来的にアドレス指定できるよりも多くのメモリにプログラムがアクセスできるようにするために、バンク切り替えアプローチを使用していました。
0
plugwash