アドレス指定とメモリを理解しようとしています。 「組み込みLinux入門」という本ではこう述べています。
helloというプロセスは、256MB境界(0x10000418)より高いRAMのどこかで実行されていると思います。また、スタックアドレスは32ビットアドレス空間の約半分で、256MB RAM(0x7ff8ebb0)をはるかに超えています。どうやって?このようなシステムでは、DRAMは通常連続している。一般的な観察者には、ほぼ2 GBのDRAMを使用できるようです。これらの仮想アドレスはカーネルによって割り当てられ、Yosemiteマザーボードの利用可能なメモリ256 MB内の物理RAMによってサポートされています。
上記の記述に関連するコードと出力を添付しました。
32ビットアドレス指定がどのように2GBのメモリに変換されるかを知りたいです。各アドレスが4ビットメモリで構成されている場合、0〜0xFFFFFFFFは2GBメモリに変換されます。
計算: 0XFFFFFFFF は 10 進数で 4294967295 です。アドレスあたり4ビット。つまり、(4294967295*4)/8 = 2147483647.5バイト= 2.1GBです。
- 各アドレスは4ビットのメモリを保持できます。そうですか?
- アドレスあたりのビット数はどのように決定されますか?
ありがとう