Hatena::ブログ(Diary)

東洋黒客は勇者である このページをアンテナに追加 RSSフィード Twitter


 | 

2007-03-07 Vista自作 Vistaにメモリ4GBを搭載する 〜3GBの壁を超えろ!編〜 このエントリーを含むブックマーク このエントリーのブックマークコメント

thk2007-03-07

システム構成

CPU:Core 2 Duo E6600

M/B:ASUS P5B Deluxe (チップセット P965 Express)

Memory:PC2-4200 ELPIDA 1GBx2 + PSC 1GBx2 <全部BUFFALOの箱メモリ D2/533>[計4GB]


さて無事にメモリを4GB搭載できVista(x86)上のcpuzで4GBと認識しDualチャンネルにもなってる

しかしシステムモニターで見ると・・・


f:id:thk:20070307035811p:image:w360


>物理メモリ(MB) 合計 3006

>物理メモリ(MB) 合計 3006

>物理メモリ(MB) 合計 3006


       /: : : :ハ  ,>: :/: : :/:/      `l\
.      /  . : l|__丁 :、/; : :/'/       | : l、
       l. : : : :.l: : : : :ゝl:l: 7メ、          l| :|_ゝ
.      l: : : : :.l:.:.:.. :ゝ !|/ __\       _,.l: lィ
     l : : :.:.:l:.:.:.:.:ゝ  /´ィ::::ーl`   ニ´、 N:.|     ━━┓┃┃
     |: : :.:l:.l:.:/ニヽ  ′弋zノ     |:`|∨: : !.        ┃   ━━━━━━━━
     |: : :.:l:l、l   i  U:.:.:        ー' l: : :|        ┃               ┃┃┃   
     l: : :.:l:| \ `          '   :.:|: : :|                           ┛
       l : :.:l:|    下、    ゝ'゚     ≦ 三 ゚。 
        l : :l:|    |  、 。≧       三 ==-
.      ヽ:N,.z==、<    ` -ァ,        ≧=- 。
        /ヽ  L:\ _   イレ,、       >三  。゚ ・ ゚
         ,ム〜〜〜Y: \` ≦`Vヾ       ヾ ≧
       {: : : : : : : : :l : : ;.ニ。゚ /。・イハ 、、    `ミ 。 ゚ 。 ・
       |: : : : : : : : :|: : : 、  ノノ「| l  l | |


まず常識問題としてx86システム(32bit OS)はメモリを4GB搭載しても3GBまでしかユーザー空間は使えない

(残りの1GBはシステム空間)。しかしPAEやAWEといった技術で3GBを超えたり4GBを超えてメモリを使う

ことは可能である(WindowsLinuxも)WindowsはWindows2000などでもPAEは使えるようになっていた。

これについては宇宙最強のバイブルである「Windows インサイド」に嫌というほど

詳しくかいてあるので読んで見よう。(自分が持ってるのは第3版 =「アーキテクチャ徹底詳細 Windows 2000

で、メモリに関しては上巻にのってた)


メモリを多く認識したい手としてPAE有効化はひとつの手だろうが

しかしPAEはSQLサーバーなどの1アプリがメモリを2GBなどを超えて扱うしくみであり

一般のOS使用ではあまり意味のない機能なのだ。


またVista 全エディション(x86)はメモリ4GB搭載までOKと「Windows Vista Ultimate購入ガイド」に書いてある。

WHDCのパワーポイントのWindows メモリ管理の資料

(The Memory Manager in Windows Server 2003 and Windows Vista)にもVistaはメモリの制限はありま

せんみたいなニュアンスで書いてある

f:id:thk:20070307035909j:image:w360

だからてっきりあっさりメモリ4GB認識はいけるとふんでいたのに・・・


ページファイルはもともとメモリ2GB搭載してたので4GBだったが

自動で3GBの2倍の6GBに増えた。

C:\pagefile.sys 3.22 GB (3,467,247,616 バイト)

C:\hiberfil.sys 2.93 GB (3,153,317,888 バイト)

というかXPではページサイズはユーザーが調整できるようになってたがVistaではできなくなってる。




苦肉の策 メモリスロットを差し替る

万が一、メモリを4枚さしているための相性問題や整合性エラーかもしれないのでまたアホな作業をしないといけない。

メモリをさしてテストして抜いて差し替えてテストしてという労力のいる作業だ。

今回使う4枚のメモリはチップメーカーが違う(ELPIDA & PSC)とは言え提携してるメーカーどうしであり

cpuzのSPD項目のCAS# LatencyやRAS# to CAS#の値もすべて同一なのでどの位置にさしてもデュアルチャンネルになる。

結果 無駄でしたil||li('A`)il||i

BIOS画面

f:id:thk:20070307045227j:image:w320

3008MB OK ってOKじゃねーよヴォケ



苦肉の策 x64 Vistaでみてみる

f:id:thk:20070307045440p:image:w320

結果やっぱり3GB認識 il||li(つω-`。)il||li




苦肉の策 BIOSのバージョンを上げる

本当はBIOSのバージョンはあげたくないのだ。

なぜならいままでとったVistaベンチマーク値との比較ができなくなるからだ。

BIOSをあげたところでスコアは微々たる変化だろうが変わることは事実だし。

またROMなので仕方ないがBIOSのバージョンをあげるとBIOS設定がリセットされるのもいやん

f:id:thk:20070307045717p:image:w320

ASUSのマザーボード(というか最近のは全部そうだろうが)はWindowsからBIOSの更新ができるようになってる。

こういうのはやはりWindowsの利点なのだ。Linuxだとこういうツールをメーカーが出してくれない。

今回はP5B Deluxeのバージョンを 0804(2006/10/20)から1004(2007/01/22)に上げる。


結果BIOSあげても意味なかった




苦肉の策 BIOSの設定をいじる

BIOSの設定 PCIメモリ リマッピングの有効化 [Memory Remmaping Feature(Enable)]

f:id:thk:20070307045841j:image:w320

64bit OS を使用するさいはここをEnableにせよとマザーボードの説明書に書いてあった。

BIOSは4GB認識

f:id:thk:20070307045916j:image

キター ( ゚∀゚)

x64 Vistaでも4GB認識

f:id:thk:20070307045949p:image:w320

                        -‐ '´ ̄ ̄`ヽ、
                       / /" `ヽ ヽ  \
   ┏┓  ┏━━┓        //, '/     ヽハ  、 ヽ.              ┏┓┏┓
 ┏┛┗┓ ┃┏┓┃     _ 〃 {_{ノ    `ヽリ| l │_i|.            ┃┃┃┃
 ┗┓┏┛ ┃┗┛┃┏━く ● >小l●    ● 从く ● >.━━━━━┓  ┃┃┃┃
 ┏┛┗┓ ┃┏┓┃┃   \/ ヽ|l⊃ 、_,、_, ⊂⊃ \/'           ┃  ┃┃┃┃
 ┗┓┏┛ ┗┛┃┃┗━━/⌒ヽ__|ヘ   ゝ._)   j /⌒i ! ━━━━━━┛  ┗┛┗┛
   ┃┃      ┃┃     \ /:::::| l>,、 __, イァ/  /│'              ┏┓┏┓
   ┗┛      ┗┛      /:::::/| | ヾ:::|三/::{ヘ、__∧ |'             ┗┛┗┛
                   `ヽ< | |  ヾ∨:::/ヾ:::彡' |               

リマッピングONの状態でx86 Vistaを起動すると・・

→ なぜか2GB認識


             -‐ '´ ̄ ̄`ヽ、
             / /" `ヽ ヽ  \
         //, '/     ヽハ  、 ヽ
         〃 {_{       リ| l.│ i|  に
         レ!小lノ    `ヽ 从 |、i|  ょ
          ヽ|l ●   ●  | .|ノ│  ろ
            |ヘ⊃ 、_,、_,⊂⊃j  | , |.  l
          | /⌒l,、 __, イァト |/ |  ん
.          | /  /::|三/:://  ヽ |
          | |  l ヾ∨:::/ ヒ::::彡, |




苦肉の策 x86 VistaでPCIリマッピングをOFFにしてPAEを有効化してみる

結果 やっぱり3GB認識



苦肉の策ΑVistaが糞で馬鹿なのか判断しかねるのでLinux(Knoppix 5.1.1 EN x86)でもやってみる

PCIメモリ リマッピングなしだと3GB認識PCIメモリ リマッピングありだと2GB認識
f:id:thk:20070307050414p:image:w320f:id:thk:20070307050440p:image:w320



               , . -─z=`―-<レ'ヘ
                   /.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.`ヽ\
              /.: /.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:\.:.:.`くZ
      ‐-、     /:::::::/:::::::::::::::::::::::::ヽ:::::::::::ハ :::::::ヽ
         X⌒Y:!:::::: l :::::::: /::::::ハ:::::ト:::::::::::::|:::::::::iハ
.        / \ハl::::::::|::::::::厶-:/  '.:┼\- /! :::::::|/l
          ,′  l::|::::::::|:::: / ∨   ∨  ∨:|:::::::::|/|
.        i    l::|::::::::|:::/ _,二    二,_ :::::::|/l
              ヾ|::::::::検で::) `   ´で::)ヾ|:::::::::lV
               j :::::::|  -‐=      =‐- |:::::::::|ハ
           (| :::::::|       '     │:::::::|.ノ
               | :::::::|      r─-、    |:::::::::|        終わった・・・
               | :::::::lヽ     `ー‐‐'    |:::::::::|
               |:::ハ:::! > 、 _______, イ | ::::::,′
               V ヾl ( /V     ∨\j::::::/
              r-‐'´  \     /   レく
              ,イ|         \/      `¨7
            /  ∨ ̄ ̄`⌒><⌒´ ̄ ̄∨ ヽ
             /  │     |  │     /  ∧
             |l)  ∧      |  │    .∧/ 入
            /'´ ∨ヽゝ、___/ ̄l ̄l\__,/__!   |{:ハ
          /´  │ ∨  │  |  |  ∨  |   \}
         /\   l  く     |  |  |    〉 :l    ヘ
         {    ̄ l   \_,l  |  |_/   |___ノ^l
          \__〉  |     |     |   〈.      |
          /   }   |     |    〈  /__, イ

マザーの制限か、P965チップセットの制限かしらんが3GBで使うしかないのか・・・

おそらくCore 2 Duoのx86モードでのチップの制限だろうが(EM64Tではメモリ4GB認識するし)

リマッピングをONにしてx64 Vistaでは4GB認識するがこの不安定OSを使う気にはさらさらならない。。

なんせx64 VistaはMS純正ツールである(正確にはSysinternalだが)Process Explorerすらクラッシュするという

とんでもないOSだ。Vix 2.22β1もクラッシュ頻度がx86 Vistaに比べ10倍になる。

私としてはProcess ExplorerとViXが使えないOSはその時点でゴミクズなのだ。



MSサポート情報に相変わらずの糞な翻訳で情報がのってた

「RAM が 4 GB インストールされるのが必要だより、 Windows Vista での情報システム ダイアログ ボックスで報告されるシステム メモリが小さいです。」

http://support.microsoft.com/kb/929605/ja

>>ただし、通常 3.12 GBが Windows Vista の32 ビット バージョンで使用可能な最大メモリです。

>>ただし、通常 3.12 GBが Windows Vista の32 ビット バージョンで使用可能な最大メモリです。

>>ただし、通常 3.12 GBが Windows Vista の32 ビット バージョンで使用可能な最大メモリです。


こうしてVistaは嘘をつく

ようするにVistaになっても32bit版は3GBがとりあえずの限界か


結果を表にまとめてみる

OSリマッピングOFFリマッピングONPAE ON
P5B Deluxe BIOS 10043GB4GB
Windows Vista x86 Ultimate3GB2GB3GB
Windows Vista x64 Ultimate3GB4GB
Knoppix 5.1.1 (x86) EN CD版3GB2GB


リンク

Physical Address Extension - PAE の設計 http://www.microsoft.com/japan/whdc/system/platform/server/PAE/default.mspx

入出力、プロセッサ、およびメモリ http://www.microsoft.com/japan/whdc/system/cec/default.mspx


Windows Vista(x86)にメモリ3GBを搭載しての使用感

2.4GBもログオン時にキャッシュするようになった

Windowsを起動してからスーパーフェッチは起動してるようだがかなり時間をかけてゴリゴリHDDを言わせてる。

時間がたつとキャッシュ済みメモリは1.6GBぐらいまでさがる。

f:id:thk:20070307050716p:image:w320



[補足]Windows VistaでのBoot.iniの消失とbcdedit.exe(ブート構成データ エディタ

Windows VistaはBoot.iniが廃止されたのでfastdetectやら/3GスイッチなどのPAEオプション

メモ帳で手軽に書き換えられなくなった。Vistaからはbcdedit.exeでbcdedit.iniを書き換える作業が

必要になる。bcdedit.iniはバイナリファイルなのでテキストエティタでは書き換えられない。

msconfigで変更できるブート項目も減ってる。基本はbcdeditでしろってことだろう。


PAEの有効化

C:\Users\Mikuru>bcdedit /set pae forceenable

これだと現在実行してるOSがPAE ENABLEになる。

別のOSを指定したい場合は/setのあとにOSのidentifierを指定する

identifierはコマンドラインでbcdeditを引数なして起動すると表示される。


MBRのブートメニューコンフィグ

私のVista C2Dマシンはひとつのドライブに XP x86,x86 Vista,x64 Vistaの3つのOSをプライマリパーティション

にインストールしている。OSも上の順でいれてるのでMBRはx64 Vistaがマスターになってる。

この構成だとふたつのVistaが存在してるのでブート画面で困ったことになるのだ。



f:id:thk:20070307053313j:image:w320

[Windows の OS選択画面]

--------------------------------

以前のバージョンの Windows

Microsoft Windows Vista

Microsott Windows Vista

--------------------------------

これじゃどっちがx86かx64かわからない。

いったん覚えればいいがうっかり忘れたりトラブッタりするとき困るので

しるしをつけておこう。


C:\Users\Nagato>bcdedit /set {OSのidentifier} description "Vista x86"

C:\Users\Nagato>bcdedit /set {00000000-0000-0000-0000-000000000000} description "Vista x64"


なお"Vista x86"とせず Vista x86とすると空白で認識が終わってしまうので"Vista"となってしまう。


指定し終わったあとの私のbededit.ini

Windows ブート マネージャ

--------------------------------

identifier {bootmgr}

device partition=D:

description Windows Boot Manager

locale ja-JP

inherit {globalsettings}

default {current}

displayorder {ntldr}

{00000000-0000-0000-0000-000000000000}

{current}

toolsdisplayorder {memdiag}

timeout 15


Windows レガシ OS ローダー

--------------------------------

identifier {ntldr}

device partition=D:

path \ntldr

description 以前のバージョンの Windows


Windows ブート ローダー

--------------------------------

identifier {00000000-0000-0000-0000-000000000000}

device partition=F:

path \Windows\system32\winload.exe

description Vista x64

locale ja-JP

inherit {bootloadersettings}

osdevice partition=F:

systemroot \Windows

resumeobject {00000000-0000-0000-0000-000000000000}

nx OptIn


Windows ブート ローダー

--------------------------------

identifier {current}

device partition=C:

path \Windows\system32\winload.exe

description Vista x86

locale ja-JP

inherit {bootloadersettings}

osdevice partition=C:

systemroot \Windows

resumeobject {00000000-0000-0000-0000-000000000000}

nx OptIn

pae Default


○ブート構成データ エディタについてよく寄せられる質問

http://www.microsoft.com/japan/technet/windowsvista/library/85cd5efe-c349-427c-b035-c2719d4af778.mspx

通りすがり通りすがり 2007/03/11 18:28 >しかしPAEはSQLサーバーなどの1アプリがメモリを2GBなどを超えて扱うしくみであり
AWEは、では?(もしくは4GB RAM Tuning)
PAEそのものはプロセスのメモリ空間に関与しませんし

遅れてきた通りすがり遅れてきた通りすがり 2007/11/16 17:49 P5B Deluxeの日本語版マニュアル(2-14頁)に、32bitOSを使用した時に認識できるメモリ容量とその理由について記載されていますが、敢えて挑戦されたのですね。

ちょっと通りますよちょっと通りますよ 2007/11/17 22:06 ttp://www.microsoft.com/whdc/system/platform/server/PAE/pae_os.mspx 32bit版PC用OSは/PAEスイッチを指定してもアドレスは0xffffffff(4GB)まででありMMIOのため利用できるRAMは4GBに満たない。32bit版Server用OSはStandard Editionでも4GB RAM可(/PAEスイッチ使用時)。
1アプリがメモリを2GBなどを超えて扱う→/LARGEADDRESSAWARE リンカーオプション + /3GBスイッチで実現する。
AWE (Address Windowing Extensions)→たとえるとMS-DOSのExpanded Memory Specification(EMS)のWin32版。 ttp://msdn2.microsoft.com/en-us/library/aa366527.aspx
PAE (Physical Address Extension)→4GB以上のアドレス空間を扱うためのCPUの機能。
/PAEスイッチと/3GBスイッチ→ ttp://support.microsoft.com/kb/291988/
http://support.microsoft.com/kb/929605/ja MMIOはデバイスマネージャで表示→リソース(種類別)でメモリを見ればわかる。Intelデスクトップチップセットはおよそ1GBのアドレスを使う。
ttp://www.intel.co.jp/jp/support/motherboards/desktop/4gb_memory_issue.htm

通りすがって通りすがって 2008/05/17 11:37 Windows Vista Service Pack 1 (SP1) における主要な変更内容より抜粋
SP1 をインストールすると、OS が使用できるシステム メモリの容量ではなく、搭載されたシステムメモリの容量が報告されるようになります。
したがって、4 GB の RAM を搭載した 32 ビット システムでは、OS 全体の多くの場所 (システム コントロール パネルなど) で、4 GB すべてが報告されます。
ただし、この動作は、互換 BIOS があるかどうかで決まるので、すべてのユーザーがこの変更に気付くとは限りません。
http://www.microsoft.com/japan/technet/windowsvista/library/005f921e-f706-401e-abb5-eec42ea0a03e.mspx

通り通り 2009/01/08 00:19 コントロールパネル>システム
システムの詳細設定(A)
以下WinXPと同じ

 | 


itimonzi@gmail.com
プロフィール

thk

thk

にこ&花丸&ルビィ推し@東洋黒客


彼はヒーローじゃない、沈黙の守護者 我々の監視者 暗黒の騎士だ

カレンダー
<< 2007/03 >>
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

日記の検索




MY Site

GitHub
プロジェクト:ドラグノフ
Orient Hacker Labs
東洋黒客の呟き
Picasa 秋葉の写真とか適当に
ニュース速報 アーカイバプロジェクト
WEOX/HDPV Official Website
DataCutter Foundations
Windows Vista SnapShot
C# 1.1 プログラム
Vector登録ソフト