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