2005年01月19日
川俣晶の縁側IT都市伝説total 40822 count

32bit CPUはメモリを4GBしか使うことができない

Written By: 川俣 晶連絡先

 誰が言い出したのか、まことしやかに流布される謎の解釈。

 今回のIT都市伝説はこれだ!

32bit CPUはメモリを4GBしか使うことができない §

 32bit CPUは4GB(ギガバイト)のメモリ空間しか持っていません。

 ですから、4GB以上のメモリを接続することはできず、それを使うこともできません。

なんてことはないのだ、実は §

 実際には、32bit CPUであっても、4GBよりも大きなメモリを扱えるケースが多くあります。

 32bit CPUが4GBより大きなメモリを扱えないというのは、アーキテクチャに関するまったくの不勉強そのもの、と言えます。OSや開発ツールが見せかけている構造と、実際の構造の相違を混同している、と表現しても良いでしょう。

物理メモリ空間と論理メモリ空間 §

 物理的にCPUに接続できるメモリのメモリ空間は、主にCPUからアドレスバスが何本出ているかで決まります。(物理メモリ空間)

 それに対して、プログラムがアクセス可能なメモリ空間は、CPUの論理的なアーキテクチャで決まります。(論理メモリ空間)

 通常、仮想メモリの技術を使うことで、物理的に存在する容量を超えて、プログラムはメモリを使うことができます。

 ですので、両者の関係は"論理メモリ空間 >= 物理メモリ空間"となると容易に予測できます。

 32bit CPUでアクセスできる論理メモリ空間は32bitをフルに使っても4GBにしかならず、それゆえに利用可能な物理メモリ空間も4GB以上になり得ない、という予測が立てられるでしょう。

 この結論を肯定するなら「32bit CPUはメモリを4GBしか使うことができない」という主張は正しいことになります。

いにしえの386ですらメモリ空間のサイズは4GBではなかった! §

 しかし、ここには1つの罠があります。

 32bit CPUの論理メモリ空間は4GBという前提そのものが、実は誤りです。

 大半のプログラマは、32bit CPUの論理メモリ空間にアクセスするために(明示的にか暗黙的にか)32bitのポインターを使うことを前提にしていると思います。

 しかし、それはOSのアーキテクチャが、ユーザーには32bitのメモリ空間しか使わせないという前提と取ったために起こった状況でしかありません。それはCPUの能力の限界と同じではないのです。

 具体的に言えば、32bitのx86アーキテクチャは、48bitの論理メモリ空間を持ちます。いにしえの386の時代から48bitなのです。より具体的に言えば、16bitのセレクタ+32bitのオフセット値からなるアドレス指定が使われます。これは、8086の16bitセグメント値+16bitオフセット値からなるアドレッシングの順当な進化形であると言えます。

物理メモリはどうだ!? §

 4GB超えるの論理メモリ空間があることは、4GBを超える物理メモリを実装できる根拠になりません。実際、386は4GBの物理メモリ空間しかありません。

 では、最近のCPUではどうでしょうか。

 以下の資料をちらっと見てみました。

 ピン配置を見ると、アドレスバスはA3からA35まで存在します。つまり、36bitの物理メモリアドレスを扱う機能があることを意味します。(ちなみに、64bit単位でデータをやり取りするので、A0~A2に相当するピンはない)。

 これは、64GBの物理メモリを扱うことが可能であることを意味します。

仮想メモリ空間は物理メモリを共有しないかもしれない §

 単純にCPUのハード的なアーキテクチャだけの話をすれば、ある32bitポインタが指し示す物理的なメモリ(ページ)が、全てのプロセスで同じである必然性はありません。

 たとえば、8GBの物理メモリがあって、2GBのメモリを確保する4つのプロセスが実行されている時、各々のプロセスは異なる物理的な2GBのメモリを所有している形態が考えられます。この場合、個々のプロセスは、32bitポインタがあれば自分が所有するメモリにすべてアクセスできます。しかし、それにも関わらず、4GBを超えたメモリがフル活用されています。

 これは机上の空論として書いた事例ですが、このようなアーキテクチャは(実際にあるかどうかは分かりませんが)、実現不可能ではないと思います。

 少なくとも、仮に物理メモリが2GBや4GBに制限されたOSがあったとしても、その理由は特定のOSやCPUのアーキテクチャにある可能性はあっても、一般論として「32bit CPUだから」とは言えない、と言っても良いような気がします。

Facebook

トラックバック一覧

2006年11月06日快適フォトレタッチ環境に最適なのは?From: コスプレ衣装をメモするブログ

HDDがかなり切迫してきたので内蔵の新しいのを買い足そうかなーと思ったのですが、なんだか新しい規格がいろいろ出てるみたいですね。SATAというのとSATAの2とウルトラATAというのが増えてました。とっくの昔に出てたのかもしれませんが。速度はSATA2 > SATA > ウルトラATA 続きを読む

2005年01月24日Windowsでのメモリアドレッシングにまつわるお話From: 屋根裏部屋別館blog@WebryBlog

x86系のIA-32アーキテクチャのCPUでは1プロセスでアクセスできるアドレスは4GBまでという認識が割と支配的だが、実はそうではない。川俣さんのIT都市伝説「32bit CPUはメモリを4GBまでしか使うことができない?」にあるように、(CPU以外の)ハードウェアの仕様、OSの仕様、開発ツールの仕様などによって制限されていることが多い。たとえば、デスクトップ用のチップセットでは2GB以下しかメモリが積めないことも珍しくない(私が使っているi815チップセットでは最大512MBだ)。 ... 続きを読む

キーワード【 川俣晶の縁側IT都市伝説
【IT都市伝説】の次のコンテンツ
2005年
05月
13日
1bit CPU? そんなものは無い! 酒の席での馬鹿話のネタだよ!!
3days 0 count
total 12040 count
【IT都市伝説】の前のコンテンツ
2004年
06月
21日
Windows 1.0は単なる画面分割しかできず、オーバーラップウィンドウはできなかった
3days 0 count
total 5704 count

このコンテンツを書いた川俣 晶へメッセージを送る

[メッセージ送信フォームを利用する]

メッセージ送信フォームを利用することで、川俣 晶に対してメッセージを送ることができます。

この機能は、100%確実に川俣 晶へメッセージを伝達するものではなく、また、確実に川俣 晶よりの返事を得られるものではないことにご注意ください。

このコンテンツへトラックバックするためのURL

http://mag.autumn.org/tb.aspx/20050119154552
サイトの表紙【IT都市伝説】の表紙【IT都市伝説】のコンテンツ全リスト 【IT都市伝説】の入手全リスト 【IT都市伝説】のRSS1.0形式の情報このサイトの全キーワードリスト 印刷用ページ

管理者: 川俣 晶連絡先

Powered by MagSite2 Version 0.34 (Alpha-Test) Copyright (c) 2004-2018 Pie Dey.Co.,Ltd.