dポイントプレゼントキャンペーン実施中!

64ビットCPUとRAMメモリの関係について教えて下さい。

(A) 64ビットCPU:一度に処理出来るデータの量が、64ビットであるCPU のこと。

(B) 64ビットOS:64ビットCPUに対応したOS

(c) 64ビットOS利用:RAMメモリに一度にアクセス出来る量が、2の64乗、即ち128GB迄。

(A)も(B)も理解出来ます。(C)も言ってることは理解出来るのですが、何故、(A)、(B)から(C)を導くことが出来るのでしょうか?
それとも64ビットCPUとRAMメモリは直接関係ないのでしょうか?
何方かお詳しい方教えて頂ければ幸いです。

A 回答 (3件)

厳密には、CPUが64ビットだから、物理アドレス空間(メモリ空間)の大きさを決定するアドレスバスの幅も64ビットである、という決まりはありません。

64ビットCPUというのは、一度に取り扱えるデータが64ビット幅だというだけで、メモリ空間の大きさはそれを実現するためのコストによって決まります。よって、(A)(B)から(C)はすんなりとは導けません。

事実、もう10年以上前の製品ですが、Pentium Proという主にサーバ用などで使われた32ビットCPUがあり、これは36ビットのアドレスバスを持っていました。つまり、32ビットCPUでありながら、64GBのメモリを扱えるわけです。この流れを受け継いだXeonでも同様に、64ビット化される前から4GBよりも多いメモリを使用できました。当然ながら、OSがこれをサポートしていなければ無意味ですけど。

取り扱えるデータ幅とアドレスバスの幅が一致しないのは、昔からよくあることです。16ビットCPUである8086のアドレスバスは20ビット幅ですし、さらに時代をさかのぼって8ビットCPUのアドレスバスは16ビット幅が主流でした。

ということで、(C)を決定するのは技術的と言うよりも、大人の事情(笑)によるものが大きいですね。
    • good
    • 0

64bitCPU、64bit版OSなので


2の64乗なのですが、WINDOWSが44乗に制限しているそうです。

なので、2の44乗で論理アドレス空間は16TBのようです。
    • good
    • 0
この回答へのお礼

御指摘有難うございます。
下記記載のとおり、これは完全に当方の勘違いです。
失礼致しました。

お礼日時:2008/11/22 13:48

> 64ビットOS利用:RAMメモリに一度にアクセス出来る量が、2の64乗、即ち128GB迄。


2の64乗でたった128GBってことは無いでしょう。
計算すれば16EiB(エクスビバイト)になりませんか?

なお、EiBっていうのはこういう単位↓
エクスビバイト - Wikipedia
http://ja.wikipedia.org/wiki/%E3%82%A8%E3%82%AF% …


64ビットのデータが扱えると言うことは64ビットのアドレス情報も扱えると言うこと。
(アドレス情報だってデータ。)
普通メモリアドレスはバイト単位で割り振りますから、
32bitのアドレスでは
0バイト目から「2の32乗-1」バイト目までの4GiB分しか
アドレッシングできません。

64ビットアドレッシングとは 【64-bit addressing】 - 意味・解説 : IT用語辞典
http://e-words.jp/w/64E38393E38383E38388E382A2E3 …

この回答への補足

早速の御回答ありがとうございます。
また、非常にわかりやすいお答えを頂き、深謝致します。

尚、

>64ビットOS利用:RAMメモリに一度にアクセス出来る量が、2の64乗、
>即ち128GB迄。

これに関しましては、完全に当方の勘違いです。失礼致しました。

補足日時:2008/11/22 13:42
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!