web-dev-qa-db-ja.com

コンピュータの1つのメモリ位置にどのくらいのデータが格納されていますか?

32ビットOSを想定します。

  1. コンピュータの1つのメモリ位置にどのくらいのデータが格納されていますか?

  2. コンピュータのメモリストレージの基本単位は何ですか?

  3. たとえば、整数を格納するには、必要なメモリアドレスは何ですか?基本単位がBYTEの場合、整数には4バイトが必要です。したがって、バイトを格納する必要がある場合、メモリ位置0001に最初のバイトを入れ始めると、整数は0003メモリ位置で終了しますか?

間違っていたら訂正してください。

22
AKh

最も一般的には、最新のシステムは「バイトアクセス可能」と呼ばれるものです。これは次のことを意味します。

  1. 1つのメモリ位置に1バイト(8ビット)が格納されます。
  2. メモリの基本的なストレージユニットは1バイトです。
  3. 4バイトを格納し、最初のバイトを0001に配置する必要がある場合、最後のバイトは0004になります。これは、0001、0002、0003、および0004のそれぞれに1バイトです。

システムのCPUワードサイズは異なりますが(32ビットシステムには32ビットまたは4バイトのワードがあります)、メモリは通常バイト単位でアドレス指定されます。算術演算で使用されるCPUのレジスタは4バイトですが、データストレージに使用する「メモリ」プログラマはバイト単位でアドレス指定されます。

X86システムでは、多くのメモリアクセス命令では、メモリ内の値を、ワールドサイズで均等に割り切れるアドレスに「整列」させる必要があります。例えば0x ??? 0、0x ??? 4、0x ??? 8、0x ??? C。したがって、intを0001に格納することは、ほとんどのシステムでは発生しません。数値以外のデータ型は通常、任意のアドレスで見つけることができます。

ウィキペディアを参照してください: 配置ワード(コンピューティング)メモリアドレス

25
ProdigySim

コンピュータの1つのメモリ位置にどれだけのデータが格納されていますか?

コンピュータによって異なります。 メモリ位置は、CPUが直接アドレス指定できるメモリの一部を意味します。

コンピュータのメモリストレージの基本単位は何ですか?

Bit 、次に Byte ですが、CPUが異なれば、words のメモリをアドレス指定する方が快適です。 特定のサイズ。

たとえば、整数を格納するには、必要なメモリアドレスは何ですか?基本単位がBYTEの場合、整数には4バイトが必要です。

数学では、整数は無限大であるため、それらのすべて/いずれかを表すには無限のメモリが必要です。整数を表すために使用するメモリの量についてコンピュータアーキテクチャが行う選択は任意です。結局、整数がどのように表現され操作されるかについての論理は、たとえそれがファームウェアに埋め込まれていても、ソフトウェアにあります。プログラミング言語Pythonには、整数の無制限の表現があります(ただし、 googol を試さないでください)。

結局、すべてのコンピュータアーキテクチャでは、なんらかの方法で Byte または Bit レベルまでアドレス指定できますが、通常はビットサイズと一致するワードサイズのアドレスで最適に動作します。 CPUレジスタの。

データの量や整数のサイズではなく、コンピュータが使用できるメモリアドレスの数です。

32ビットには4GiBアドレス(バイト用)があります。 4GiBを超えるRAMを搭載したマシンのクラスターを管理するには、各システムでより大きなアドレスを管理する必要があります。

繰り返しますが、それはすべてアドレス可能なメモリ空間に関するものであり、整数のサイズに関するものではありません。 CPUが8ビットのワードアドレス指定を優先する場合でも、64ビットの整数がありました。

2
Apalala
  1. アーキテクチャによって異なります。 32ビットの場合は32ビット。 64ビットの場合は64ビット。
  2. 通常、それは「単語」と呼ばれます
  3. ほとんどの値は整列する必要があるため、アドレスは0 48またはCで終わります
1
Edward Z. Yang