読者です 読者をやめる 読者になる 読者になる

Best effort JavaScript

×article ○weblog

日記: なぜ32bitOSだとメモリを4GBまでしか認識出来ないのか

プログラマなのに咄嗟に説明出来ず( ゚д゚)ポカーン
となるのはいかんという事で記録σ^_^;

前提

  • 32bitの表現数は4,294,967,296通り
  • メモリ8bit毎に1つメモリアドレスが割り当てられる
    (1byteにつき1つメモリアドレスが割り当てらる)
  • 2進数では1KB = 1,024byte 1GB = 1,073,741,824byte*1

32bitOSは4,294,967,296通りのメモリアドレスを識別出来るので、
4,294,967,296byteのメモリを認識出来る

1GB = 1,073,741,824byteなので249~の端数は切られ
4,294,967,296byte = 4GBという事になりまする(〃・・〃)

ちなみにゲームボーイは8bitCPUですが、64KBのRAMが搭載されているそうな...

何故に((((;゜Д゜)))

実は8bitCPUはアドレスパスについては16bitで管理されているようです

8ビット - Wikipedia

8bitCPUだからメモリは256byteって訳じゃないのか...

メモリの位置を指定するのに2回命令しなきゃいけないのかな【・・?】
遅くならないのかな【・
・?】
64bitCPUで32bitOSを動かしているときはアドレスパスは64bitにならないの【・_・?】

色々気になるけど老後にマイコンクラブを立ち上げてから調べます(ノ´д`)