umi_umiの動画作成術! >
パソコン弄り日記 >
RAMディスク作成
【RAMディスク作成】
【はじめに】
32bitOSでは、メモリを4GB積むとBIOS上ではちゃんと4GB認識されていてもOSが起動すると最大で3GB程度しかメモリを認識しません。
32bitOSで4GB以上のメモリを積んでいる場合は、約1GBを全く使用せずに遊んでしまう事に成ります。
この遊んでいる部分をRAMディスクとする事で有効活用しよう!って事です。
【何故32bitOSは3GB強しかメモリを認識しないか?】
32bitで表現できる数字の最大値は、0xFFFFFFFF(4G)です。(10進数で表すると”4294967295”)
(1024=0x3FF=1K/1024K=0xFFFFF=1M/1024M=0x3FFFFFFF=1G)
つまり、
32bitOSでアクセス出来る範囲(アドレス空間)は0x00000000〜0xFFFFFFFF(4G)の間と成ります。
これだと、4GBフルに使用出来る様な気がしますが違いますw
32bitOSの場合は0x00000000〜0xFFFFFFFFのアドレス空間内に各デバイスへのアクセスエリアやOSのカーネルをマッピング(約1GB程度)しますので、
残りのアドレス空間(約3GB程度)を使用してメインメモリへのアクセスが可能と成り
OSの管理下になります。
※ 画像はクリックすると大きく表示されます。
【ちょっと補足】
Pentiumの前身i486時代にとある装置のファームウェア(ハードよりのソフト)を設計&プログラミングしていましたが、この時には既に
セグメントと言う概念が有り実際には0xFFFFFFFFのアドレス空間よりも大きな空間にアクセス可能でした。
OSやソフト・マザーボード(&チップセット)?が対応していたら32bitOSでも4GB以上のメモリ認識も可能?
【RAMディスクとは?】
メインメモリの1部をディスク(HDDやSSD、SDカード等)の様にに見せる事で、そのメインメモリの1部をディスクの様にアクセス出来る様になる。
この仮想ディスクを
RAMディスクと言います
※ 画像はクリックすると大きく表示されます。
HDDやSSD、SDカード・USBメモリ等のディスクに比べると
超高速にアクセス出来ます。
2チャネルDDR2-800 : 12.8GB/s
HDD/SSD(SATAU) : 300MB/s
理論値ですが、
約42倍のスピード差と成ります。
【RAMディスクの作成】
フリーソフトや安価なソフトで簡単に作成出来ます。
umi_umiの場合は、有料ですが
RamPhantom3を使用していますが、フリーソフトでは
Gavotte RAMDiskも有名かつ高機能みたいですネ。
どちらにしても
OS管理域以外にRAMディスクを作成しないと余っているメインメモリを使用する事に成らないのでご注意下さい。
(OS管理域にしかRAMディスクを作成出来ないソフトも有るので注意しましょう。)
今回は
RamPhantom3でのRAMディスク作成方法を説明します。
(2010/02/12現在、Gavotte RAMDiskを使用してますw)
@RamPhantom3を購入・インストールします。
ARamPhantom3を立ち上げます。
B以下の図が
RamPhantom3を立ち上げた時の画面
※ 画像はクリックすると大きく表示されます。
Cプロパティをクリックすると各種設定が出来ます。
※ 画像はクリックすると大きく表示されます。
オプションの”起動時にRAMディスクを有効にする”にチェックを入れておけばPC立ち上げと同時にRAMディスクを作成してくれます。
【RAMディスクの使用例】
RAMディスクの使用用途としては、サイズを必要としないけど速度が出ると便利な事に使用すると良いと思います。
また、再起動すると消えてしまいますのでHDDに余分なゴミを溜め込まなく成ります
(しかしながらシステムが不安定に成るという話も有りますので自己責任で)
思いつく例をいくつか紹介します。
Internet Explorerの一時ファイル
※ 画像はクリックすると大きく表示されます。
@:Internet Explorerのプルダウンメニュー【ツール】→【インターネットオプション】を選択します。
A:(上左図):インターネットオプションの【閲覧の履歴】の【設定】をクリック
B:(上右図):【フォルダーの移動】をクリックして一時ファイルを保存したいフォルダを選択
一時ファイルに保存されている画像等をHDDから出なくメモリから読み込むので
Internet Explorerのページ表示速度が劇的Up
但し、大きなファイルサイズ(大きな動画等)を一時的にダウンロードする処理を行う時にはサイズが足りなく成らない様にRAM Diskのサイズを大きくしておく必要が有ります。
仮想メモリ領域(ページングファイル)
仮想メモリ(ページングファイル)を使用する場合、仮想メモリ(ページングファイル)のアクセスに遅いHDDへのアクセスを回避
Windowsは仮想メモリをCドライブ直下に『pagefile.sys』と言うページファイル用のファイルを数GB作成します。
PC起動時に毎回アクセスされますし、物理メモリで足りない場合にもアクセスされます。
Cドライブに置いておくとサイズも大きいしアクセス頻度からもフラグメント(断片化)が起こり易く成るかと思います。
やはり、メモリ容量が許すならRAM Dickに置く事をお勧めします。
方法としては、、、、、まず、
(下左図):【コンピュータ】の
【プロパティ】を開き
【システムの詳細設定】をクリック
→ 下右図が出てきます
※ 画像はクリックすると大きく表示されます。
(上右図):【詳細設定】タブを開き
【パフォーマンス】の
【設定】をクリック
→ 下左図が出てきます
※ 画像はクリックすると大きく表示されます。
(上左図):【詳細設定】タブで
【仮想メモリ】の
【変更】をクリック
→ 上右図が出てきます
(上右図):【ドライブ[ボリュームラベル]】の
【C】ドライブが
【登録されるシステム】に成っている&
【システム管理サイズ】にチェックが有る事を確認
※ 画像はクリックすると大きく表示されます。
(上右図):【ドライブ[ボリュームラベル]】の
【C】ドライブを選択し
【ページングファイルなし】にチェックを入れて
【設定】をクリック
→ 続行の確認されますが
【はい】でw
(上左図):【ドライブ[ボリュームラベル]】の
【C】ドライブのページングファイルのサイズが
【なし】に成っている事を確認
※ 画像はクリックすると大きく表示されます。
(上左図):【ドライブ[ボリュームラベル]】の
【R】(RAM Diskのドライブ)ドライブを指定
(上右図):【カスタムサイズ】にチェックを入れて
【初期サイズ】&
【最大サイズ】を入力し
【設定】をクリック
→ 最大でも実際のRAM Diskよりも100MB程度少な目の方が良いみたいです
|
(左図):設定した値が【ページングファイルのサイズ】に反映されているか確認
設定が反映させる為に再起動が必要()
|
OS(システム)の一時ファイル
Windowsは一時ファイルをC:\Users配下に沢山のテンポラリィーファイル(一時ファイル)を作成します。
仮想メモリ同様にフラグメント(断片化)が起きるのは勿論の事ゴミとして沢山のファイルが溜まっていきます。
なので、RAM Disk上に置く事を強くお勧めします。
方法としては、、、、、仮想メモリと同様に
【コンピュータ】の
【プロパティ】を開き【システムの詳細設定】をクリック
(下右図):が出てきたら
【環境変数】ボタンをクリック
※ 画像はクリックすると大きく表示されます。
(下左図):【●□※○☆のユーザー環境変数】の
【TEMP】と
【TMP】の
【値】を変える為、
【編集】ボタンをクリック
(下右図):【TEMP】と
【TMP】の
【値】を
RAM Diskに変更
※ 画像はクリックすると大きく表示されます。
重たいソフトの作業領域
処理の重いソフトでは、稀に作業領域・作業フォルダ・一時ファイルなどと呼ばれるインプット・アウトプットファイルに関係無く作業する上で一時的に作業する(頻繁にアクセスされる)ドライブやフォルダを指定出来るソフトが有ります。
このエリア(作業領域)をRAM Disk上に置くだけで体感で感じれる程のサクサク感が得られると思います
代表的なソフトではフォトショップが有ります。
まとめ
RAM Disk使用例としてはこんな感じでしょうか
また、恩恵を受けるのは処理速度だけでは有りません。
RAM Diskだと再起動でDisk内のファイルが全部削除されてしまいます。(但し、RamPhantom3ではHDDへデータを回避し再起動時に復旧する機能が有ります)
つまり、
一時ファイルのゴミがHDDに溜まっていかないと言う事です
また、システムドライブに
SSDを使用されてる場合は、一時ファイル・ページングファイルの置き場所はRAM DiskかHDDに対比した方が
SSDの寿命が延びるでしょう
ちょっとした豆知識
● 32bit(0xFFFFFFFF)とは? (一応、初心者向けサイトなので)
1bitとは、"0"か"1"どちらかの情報を1つだけ保持出来る領域です。
この1bitが32個集まって32bitと成り、"0"か"1"を32個並べた状態となり2進数の32桁と考えられます。
32個"1"を並べた状態(11111111111111111111111111111111)を16進数で表記すると0xFFFFFFFFと成ります。
つまり、32bitで表現出来る最大値は"0xFFFFFFFF"で有り"4294967295"で有り"4G"なのです。
● 各デバイスへのアクセスエリア
私メ・・・Pentiumの前身CPUi486時代、実際に各デバイスへのアクセスエリアをアドレス空間にマッピングしてコーディング(プログラミング)してましたので、いったいどういった事なのか? をかるく紹介。
例えばCPUにEtherコントロールチップに割り当てられている割込み(IRQ)が入ったとします。
割込み先のEtherコントロールチップに何の割込みだったのかを調べる為に、Etherコントロールチップ内に有るレジスタにアクセスする必要が有ります
このEtherコントロールチップのレジスタが0x00000000〜0xFFFFFFFFのアドレス空間の0xE9310000番地に割付けされているならば、OSは何も考えずに0xE9310000番地へアクセスすればEtherコントロールチップのレジスタへアクセスする事に成ります。
で、レジスタの内容を読み取る事でEtherコントロールチップのハード的な故障だったりケーブルが抜けた・刺さった等の通知だったりと割込みの原因を調べる事が出来ます。
実際にはWindowsが自動でやってくれてしてデバイスマネージャで確認が可能です。(右図参照)
|
※ 画像はクリックすると大きく表示されます。
|
|
HDキャプチャ環境 〜 Intensity Proの取り付けと設定