私は学期の終わりの試験のために勉強していて、次の質問と混同しています。CPUに16ビットアドレスバスと8ビットワードがある場合、KB単位のメモリ容量はどれくらいですか?私の理解では、64KBに対応できることがわかりますが、これを行うには2 ^ 16 = 65,536を使用しました。その計算では実際に8ビットワードが考慮されなかったため、それが正しいかどうかはわかりません。また、8ビットワードとはどういう意味ですか?
乾杯
私は学期の終わりの試験のために勉強していて、次の質問と混同しています。CPUに16ビットアドレスバスと8ビットワードがある場合、KB単位のメモリ容量はどれくらいですか?私の理解では、64KBに対応できることがわかりますが、これを行うには2 ^ 16 = 65,536を使用しました。その計算では実際に8ビットワードが考慮されなかったため、それが正しいかどうかはわかりません。また、8ビットワードとはどういう意味ですか?
乾杯
回答:
大多数のアーキテクチャでは、ワードは、1回の操作でワーキングメモリとの間で転送できるデータの最大部分です。
メモリ内の場所を指定するために使用される可能な最大アドレスサイズは、通常、ハードウェアワードと呼ばれます。
そのため、CPUは64KB(2 ^ 16)をアドレス指定できますが、8ビットの単一操作でしか転送できません。
マシンワード、または一般的に単なるワードは、CPUが一般的な命令を使用して全体として操作できるデータの最大単位です。これは、メモリのアドレス指定とは関係ありません。
重要なのはアドレス解決の単位です。これは一般に16/32/64ビットアーキテクチャでも8ビットバイトです。マシンのワードサイズと同じである必要はありませんが、おそらくあなたの場合です。
16ビットのアドレスバスと組み合わせた8ビットのアドレス指定可能なユニットは、CPUがアドレス指定できる64KiBのRAMになります。
また、8ビットワードとはどういう意味ですか?
コンテキストでは、ワードサイズはメモリバスを説明するためにアドレスサイズと一緒になります。64ビットの場所を選択できるように、メモリには16ビットがグリーアウトされています。次に、各場所には8ビットが含まれます。
ここでのワードサイズは、CPU計算ユニットのサイズと一致する場合と一致しない場合があり、これはアドレス指定の論理的な粒度と一致する場合と一致しない場合があります。
たとえば、CPUは16ビットバスをアドバタイズする場合があります(この目的のため)。命令で16ビットアドレスを使用し、例のように64kiがあります。ただし、15ビットのアドレスバスと16ビットのデータバスがあります。32kiのアドレスのみが必要で、各場所で常に2バイトを取得します。(命令が1バイトを必要とする場合、欠落している最小ビットでアドレスをディスパッチし、そのステップで両方のバイトをフェッチしてから、目的のアドレスの最小ビットを見て、使用する半分を決定します。)
他の人が言及したバンクスイッチング、PAEなどはここでは関係ないことに注意してください。メモリ管理ユニットは16ビットアドレスを使用し、20ビットのハードウェアアドレスを持っている場合があるため、CPUは、アドレス可能なRAMチップの実際の20ビットアドレス範囲を利用するために、物事を切り替えてマッピングする必要があります。
回答には必ず単位を指定してください。 「64ki」。なにかの?8ビットワードで、(まだ)64ki バイトのアドレス可能なRAMになります。そのステップは混乱を取り除き、このような些細な問題を作ります。
計算にもワードサイズを使用する必要があります。答えは64 KBです。
2 ^ 16ワードをアドレス指定でき、各ワードは8ビット(= 1バイト)です。したがって、64 KBです。
ワードサイズが16ビットの場合。答えは128 KBです。
これには2つの側面があります。インストラクターがあなたに伝えたいことと、現実とは何ですか。
まず、あなたのインストラクターがあなたに彼に伝えたいと思われるもの。
「16ビットは2 ^ 16個のメモリロケーションをアドレス指定でき、各ロケーションは8ビットです。したがって、524288ビット(65536オクテット)メモリをアドレス指定できます。」
ただし、これはかなり単純化された世界観を反映しています。現実はより複雑で、決定的な答えを出すには、より多くの情報が必要です。実際のシステムがこれよりも複雑になる方法には、次のものがあります。