日記: なぜ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で管理されているようです
8bitCPUだからメモリは256byteって訳じゃないのか...
メモリの位置を指定するのに2回命令しなきゃいけないのかな【・・?】
遅くならないのかな【・・?】
64bitCPUで32bitOSを動かしているときはアドレスパスは64bitにならないの【・_・?】
色々気になるけど老後にマイコンクラブを立ち上げてから調べます(ノ´д`)
*1:正式にはKiB キビバイト - Wikipedia