• ベストアンサー

最大搭載メモリ

Pentiumなどの32bitCPUは、4GBまでしかメモリを扱えないと聞きました。 最近発売されたサーバ機のスペックを見ていると、Pentium や Celeron 搭載機(64bitCPUではないと思います)であっても最大メモリ容量が8GBとなっているものがあります。 Pentium や Celeron でも(OSが対応していれば)8GBものメインメモリを扱えるのか? 物理的に「搭載する」ことが可能というだけで、実際には4GBまでしか使えないのか? 32bitCPUのメモリの限界は4GBではなく正しくは8GB(もしくはそれ以上)なのか? 不思議です。

質問者が選んだベストアンサー

  • ベストアンサー
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.6

補足: 念の為ですが, Pentium は 4GB までのはずです. ちょっと探せてませんが. 例えば PentiumPRO~Pentium4 (EM64T なし) では物理アドレスとして 36bit (64GB) ありますが 1セグメントは 32bit (4GB) しかありません. つまり, 4GB を超えるメモリを使うためには複数のセグメントをうまくやりくりしなければなりません (逆にいえば, うまくやりくりできれば 1プロセスで 4GB を超えるメモリを使うことも可能). これに対し, EM64T 対応のプロセッサではレジスタが 64ビットになったこともあって 1セグメント 64bit (かなり誇張あり) まで使えるようになります (というかセグメントはほとんど無視してリニアアドレッシングになってますが). で, 「セグメント」を意識せずに (フラットに) アクセスできるメモリが増えるのでデータベースのような「大量のデータを記憶する」応用にも使いやすくなるわけです. この関係は 80286/80386 と基本的に同じなので, その時代を知っている人には理解しやすいかも. なお, CPU がメモリ量を制限する例としては CoreDuo + 975X + Linux の組合せが考えられます. この場合 CoreDuo は 4GB, 975X は 8GB, Linux は 64GB まで (は) アクセスできるので, CPU (CoreDuo) の 4GB が上限となります. そもそも「CPU のビット数」という, 何を指しているのかわからない謎の代物と物理アドレスをリンクさせるのが無理.

その他の回答 (5)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.5

使えるメモリ量については, CPU/チップセット/OS の全てが関係します. まず CPU ですが, 基本的にはアドレスバスの本数を超える容量は使えません (外部でうまくやれば使えますが). で, PentiumPRO 以降の「Pentium なんちゃら」と呼ばれる CPU は基本的に 36ビットのアドレスバスを持つので 64GB までは扱えます. 但し, EM64T に対応していないと 1セグメントが 4GB までに制限されるため使い勝手が悪いんですが. 今の CPU だと Core Solo/Duo は 32ビット (4GB), PentiumD/XE, Xeon が 36ビット (64GB), XeonMP が 40ビット (1TB). 次に, Intel の CPU ではメモリに直接アクセスするわけではなく, チップセット (ノースブリッジあるいは MCH) が介在するためこちらの制限も影響します. 例えば PentiumIII の時代だと 440BX は 1GB, 440GX は 2GB, ServerSet 3 LE で 4GB, ServerSet 3 WS だと 8GB (133MHz FSB だと 6GB). 最後に, OS の影響もあります. もちろん 64bit OS なら 32bit OS より広い領域を使うことができますが, 32bit OS でも「4GB までしか使えない」という制限があるものもありますしそのような制限のないものもあります. 32bit の WindowsXP だと 4GB までしか認識できませんが, Linux なら 64GB まで使えます. ちなみに手元のシステムだと PentiumIII 1GHz, ServerSet 3 WS, Linux の組合せで 6GB のメモリを積んでます. 1プロセスで 2GB までしか使えない (これは Linux の制限) ですが, 複数プロセスを使えば全メモリを使い果たすことも可能.

haru44
質問者

補足

沢山のご回答ありがとうございます。 まとめレスになってしまいますがご容赦ください。 私の解釈のなかで、「32bitCPU」「Pentium」「32bit環境」「32bitOS」を混同していたようです。CPUではなく、チップセットやOSによって最大メモリ容量が決まってくるわけですね。Pentium自身は64GBまで扱えるようになっているがチップセットやOSが対応していないということですね。 「オンメモリデータベース」というものを調べていて、メインメモリの最大容量が重要なポイントになりましたので調査していました。 オンメモリデータベースの解説に出てくる話では「テラバイト級のデータをメインメモリに読み込んでおき瞬時に検索結果を返すことが可能」などと書かれていました。 現時点で、PentiumCPUを搭載したシステムで8GBを超えるメインメモリを搭載して稼動させる(アプリケーションから利用する)ことが可能な環境(チップセット、OS)がないとすれば、巨大メモリを搭載して使うためには64bitCPUを使わざるを得ないわけですね。

  • char2nd
  • ベストアンサー率34% (2685/7757)
回答No.4

 メモリモジュールの搭載可能容量や規格は、チップセットとOSによって決まります。CPUではありません。  最近のチップセットなら8GBも可能でしょう。逆にチップセットやマザーボードが対応していても、OSが9x系なら最大搭載量(認識できる容量)は512MBになります(それを越えて搭載すると、OSが起動しなくなる)。 http://www15.ocn.ne.jp/~kuromasa/pc/build/chipset/chipmem.html

haru44
質問者

補足

沢山の回答をいただき、ありがとうございます。 まとめレスその2です。 下記のサイトに書かれている記事から、32bit環境では4GBが限界、と解釈していました。矢印の後に書いたような認識に改めました。 ○ITmedia エンタープライズ:あなたホントに64ビットを説明できますか? (2/2) http://www.itmedia.co.jp/enterprise/articles/0506/08/news003_2.html 一般的な32ビットコンピュータでは、4Gバイト以上のメモリを直接(物理的に)アクセスすることはできません。 →Pentiumはアドレスバスが36ビットなので、4Gバイトを超えるメモリにアクセスすることが可能。 ○用語検索 - ZDNet Japan http://japan.zdnet.com/glossary/exp/0,2000059343,00007678,00.htm 企業ユーザーから見た32ビットと64ビットの一番大きな違いは、64ビット化により、32ビットのメモリアドレス空間の最大値である4Gバイトの壁を超えられる点である。 →ひとくちに32bitCPUといっても、アドレスバスが32ビットのもの、36ビットのもの、40ビットのものがあるので、32bitCPUすべてに4Gバイトの壁があるわけではない。(むしろ4Gバイトの壁がある32bitCPUの方が少ない?) ○【特集】ギガメモリ時代のXPチューニング - RAMディスクで快適Windows生活 (2) メモリチューニングで快適さを手に入れよう (MYCOMジャーナル) http://journal.mycom.co.jp/special/2003/gigamemory/001.html 通常の我々が使うWindows XPが認識するメモリは最大4GBということになる。 →32bit版(普通の)Windows XP は、Pentiumの最大メモリ容量よりずっと低い、最大4GBまで扱える。

  • php504
  • ベストアンサー率42% (926/2160)
回答No.3

リニアに使える最大メモリはCPUのアドレスバスの本数で決まるんじゃないでしょうか 昔の8ビットCPUはアドレスバスが16本で64KB 8086は20本に増えて1MB 今のCPUが何本アドレスバスがあるのか知りませんが32本なら4GBまでと思います。

  • pagedown
  • ベストアンサー率44% (162/368)
回答No.2

32bitCPUだから4GBが上限、というのは誤りです。 下記サイト等を参考にしてみてください。

参考URL:
http://mag.autumn.org/Content.modf?id=20050119154552
回答No.1

?? 補足質問です。どなたか答えてください。 CPUで、メモリの容量が制限されるのですか? 私はてっきり、チップセットの機能だと思っていましたので、4G説には少々驚いています。 よろしくお願いします