• ベストアンサー

32bitOS、デュアルコアでメモリ2G*2を使用した場合…

32bitOSではメモリを3Gまでしか認識しないようですが、 [PC-01] OS: Windows XP x32 CPU: Dual Core メモリ: 2GB x2 [PC-02] OS: Windows XP x32 CPU: Dual Core メモリ: 1.5GB x2 (仮に一枚1.5GBのメモリが存在するとした場合です。) この2つの並列処理の速度は同じなのでしょうか?違うのでしょうか? なぜこんな仮定の状態の質問をしたかといいますと、OSがメモリを3GBまでしか認識しない状態では、CPUがメモリ2枚をどのように使っているのか疑問に思ったからです。 フル稼働したとして、 ・メモリを1.5Gずつ使用するのか ・片方を2Gフルで、もう片方を1G使用するのか (←これは無いと思いますが 汗)

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

  • ベストアンサー
  • Zhuravlik
  • ベストアンサー率55% (121/217)
回答No.2

デュアルチャンネル動作かシングルチャンネル動作かで違います。 処理速度の単位はbpsとします。 シングルチャンネルの場合に1クロックで扱えるデータ量は64bitです。 デュアルチャンネルは128bit、クアッドチャンネルは256bitになります。 シングルチャンネルに対する実際の処理速度はデュアルチャンネルで1.2~1.8倍程度、クアッドチャンネルで2~3倍程度になると思われます。 優先順位に従って各メモリの先頭アドレスからアクセスすることにします。 デュアルチャンネルの場合はペアになっているメモリの対になっている領域に同時にアクセスします。 デュアルチャンネルとシングルチャンネルが混在している場合はアクセスする領域によって処理速度が変化します。 デュアルチャンネルの場合 RAM1:1.5GB(DUAL) RAM2:1.5GB(DUAL) 処理速度:128bit×クロック周波数 ※2つのメモリはペアなのでこのように認識されます。 シングルチャンネルの場合 RAM1:2GB RAM2:1GB 処理速度:64bit×クロック周波数 ※優先順位の高いメモリはフルに認識されます。 非対称デュアルチャンネル(実容量2GB+1GB)の場合(参考) RAM1:2GB(先頭アドレスから1GBのみDUAL) RAM2:1GB(DUAL) 最高処理速度:128bit×クロック周波数←低負荷時の速度 最低処理速度:64bit×クロック周波数 平均処理速度:(2×128bit+64bit)÷3×クロック周波数 ※平均処理速度はデュアル:シングル=2:1の割合でアクセスした場合 メモリ使用量2GBまでならば、高速に動作します。 メモリが4枚、最大4GB(1GBx4)で3.2GBまでしか認識しない場合を考察してみます。 デュアルチャンネルの場合 RAM1:1GB(DUAL1) RAM2:0.6GB(DUAL2) RAM3:1GB(DUAL1) RAM4:0.6GB(DUAL2) 処理速度:128bit×クロック周波数 ※RAM1とRAM3、RAM2とRAM4がペアの場合です。 RAM1とRAM3のペアの優先順位が高いとこうなります。 シングルチャンネルの場合 RAM1:1GB RAM2:1GB RAM3:1GB RAM4:0.2GB 処理速度:64bit×クロック周波数 ※RAM4の優先順位が最下位だとこうなります。 1つのペアのみデュアルチャンネルの場合(その1) RAM1:1GB(DUAL) RAM2:1GB RAM3:1GB(DUAL) RAM4:0.2GB 最高処理速度:128bit×クロック周波数←低負荷時の速度 最低処理速度:64bit×クロック周波数 平均処理速度:(2×128bit+1.2×64bit)÷3.2×クロック周波数 ※RAM1とRAM3のペアがデュアルチャンネル動作した場合です。 メモリ使用量2GBまでならば、高速に動作します。 1つのペアのみデュアルチャンネルの場合(その2) RAM1:1GB RAM2:0.6GB(DUAL) RAM3:1GB RAM4:0.6GB(DUAL) 最高処理速度:128bit×クロック周波数 最低処理速度:64bit×クロック周波数←低負荷時の速度 平均処理速度:(1.2×128bit+2×64bit)÷3.2×クロック周波数 ※RAM3の優先順位がRAM2とRAM4のペアよりも高い場合。 メモリ使用量2GBまでの動作は低速になります。 クアッドチャンネルの場合(参考) RAM1:0.8GB(QUAD) RAM2:0.8GB(QUAD) RAM3:0.8GB(QUAD) RAM4:0.8GB(QUAD) 処理速度:256bit×クロック周波数

tgenstake
質問者

お礼

デュアルチャンネルは50/50に認識するだろうと思っていましたが シングルチャンネルではプライオリティーの高いものをフルで読み込むのですね。 なんだか考えるうちにデュアルとシングルでゴッチャになっていました。 疑問に思っていたことを教えていただいた上に、なんとクアッドチャンネルについてまで知ることができて感激です!! ありがとうございました!!

その他の回答 (1)

  • ZAZAN
  • ベストアンサー率38% (287/748)
回答No.1

デュアルコアというかデュアルチャンネルと間違われていると思いますが、完全に2本とも並列処理します。 3Gしか認識しないということですが、これは電気的に認識しないということではなくWindowsが3Gを超える部分のアドレスをハードウェアのI/Oのために予約してしまっているために起こる現象です。 ですので厳密には3Gではなくハードウェアの構成にもよりますが3.2G~3.5Gの認識になります。 これはPCのしくみでして、昔のPCは低速だったためI/Oを全てBIOSに問い合わせていたのですが、高速化のためにそれにアドレスを割り当てたということですね。この仕組みが出来たころには「いくらなんでもメモリーが4Gも乗ることなんてないだろー」と余裕を持って決めていたのです(笑) ですので実際のデュアルチャンネルは4Gフルに動作します。ただ、Windowsがその一部を利用できない、ということなんです。 まあですので3G搭載と4G搭載では200~500M分の差がパフォーマンスに出ることはあるかもしれませんね。まあほとんどないでしょうけども。

tgenstake
質問者

お礼

> ですので実際のデュアルチャンネルは4Gフルに動作します。 僕が疑問に思ったきっかけをずばり当てられてしまいました(笑 3.5G程度まで認識するのは知っていたのですが、 「2G*2積んだらフルで処理できるんじゃないか?」 「でも3Gまでしか読まないならおのおのは1.5が限度か?」 等と、無い頭で悩み質問させていただきました。 専門的な意見、ありがとうございます!!!

関連するQ&A

専門家に質問してみよう