道草Web

SSD、RAMディスク、64ビットOS……と浦島太郎

追記 「メモ:TEMフォルダのトラブル 」 2012/03/01

友人が新しいパソコンを買うというので、いろいろ情報交換をした。結局、友人はレノボの一式6万程度のごく普通のPCを秋葉原で購入した。そのPCはデフォルトでWindows 7の64ビット版がインストールされていて、メモリは4ギガが標準装備だという。話を聞くと旧PCとは比較にならないほど速いともいう。32ビット版に比べるとメモリも食うので4ギガは確かに必要かも知れないなと思いながら、メモリ関係の規格や値段がどうなっているか調べてみた。

SSD

そうしたらRAMも以前に比べればバカ安になっているだけでなく、SSD(Solid State Disk)もずいぶん安くなっていることを知った。SSDはハードディスクを半導体メモリ(フラッシュ・メモリ、USBやSDの中身と同じ)で置き換える製品だ。120ギガが1万円少々である(つまり、1ギガ当たり100円。思い出すなあ、ハードディスクの価格が個人利用の可能な範囲まで下がったときは、笑っちゃうけど10メガ(ギガじゃないよ)のハードディスクが10万以上して、1メガが1万円といわれた)。120ギガあればWindows 7パソコンのシステム(C)ドライブに十分使える。

ところで、近頃あまり使わなくなったソリッド・ステートという言葉はわれわれ世代には実に懐かしい。昔は真空管に対して半導体を“石”と呼んでいた。まあ、ソリッド・ステートの別称と考えてもいいだろう。昔からデータの記録媒体はいずれすべて半導体に置き換わるとは思っていたが、ついに個人ベースでそのような時代が到来した感慨がある。

台湾ADATA製のSSD2.5インチ→3.5インチ取り付け器具

さっそくSSDを通販で取り寄せて、メインのPCをSSD化することにした。要はハードディスクの交換と同じだから、Windows 7のバックアップ機能でCドライブのイメージを作成しておき、それをSSDへクローンすればいい。特別なツールがなくてもWindows 7ならシステム・ツールだけで処理できる。しかし、問題が2点あった。いま使っているPCのCドライブはすでに150ギガほど使っていたことと、ハードディスクをRAID構成(ハードディスクを2台並列に使い高速化している)にしていたことだ。前者はドキュメント関係を別ドライブに移せば解決する。ユーザードキュメントをCドライブから別のドライブへ移す機能は昔からWindowsに備わっている。それにフラッシュ・メモリは書き込み回数が寿命に関係するので、そうでなくても書き込みの多発するドキュメント類をSSDに置いておくことは避けたい。

マイドキュメントをハードディスク(Dドライブ)へ移動

しかし、RAID構成はについてはどうか。これまでの経験では、RAID構成のクローンは単体のハードディスクでは動かないことが多いのだ。今回もその問題にぶちあたった。結局、クローン作戦は失敗して、SSDへはまっさらなWindows 7をインストールすることになった。相手がSSDだからハードディスクへのインストールに比べれば速い。とはいえ、この時間はひどく退屈する。いつも思うのは、わが人生の何パーセントの時間をWindowsのインストールに費やしてきただろうかということだ。さらにまたOSのインストールが終わればOfficeの他に20本ほどあるユーティリティ・ソフトをインストールして、その設定を一からやり直す必要がある。もちろんWindowsに移行用のツールはあるがサードパーティのソフトの設定まで面倒はみてくれない。使い慣れたソフトはだいたい環境設定のファイルがどこにあるかわかっている(Vista 以降は、users\ログオン名\AppData\Roaming\会社名\ソフト名の下が多いが、マイドキュメントへ書き込むソフトもある)ので、それをコピペすればすむこともある。

RAMディスク ---- 4ギガの壁

Windows 7インストール後のPCを再構成するかたわら、近頃のパソコン事情をいろいろ漁ってみた。これまで一番普及している32ビット版のWindowsでは、メモリ容量は4ギガは限界でそれ以上はOS自体では利用できない。ここで「32ビット」といっているのは、パソコンが処理するデータの単位長のことで、2進数で32桁の数値が32ビット版のOSの世界である。この32桁で表せる数値の限界が約4ギガになる。32ビット・パソコンのメモリは32桁の2進数を蓄える場所だが、その場所を識別するのも同じ32桁の2進数を使う。ということは、メモリとして識別できる最大の個数が約4ギガであることにもなる。つまり、OSから見るとそれ以上のメモリがあっても、識別不能なのだ。

だから、メモリがいくら安くなっても4ギガ以上は搭載する意味がない。そこで復活したのがRAMディスクである。メイン・メモリの一部をドライブに再構成して利用する手段だ。16ビットOS時代はメイン・メモリの理論的限界をカバーするためによく使われていた。いまも同様の意味はあるが、むしろ余ったメモリの活用手段というわけだ。ハードディスクはもちろんSSDに比べても、メイン・メモリを利用しているRAMドライブのI/Oは高速である。

5ギガ積んでも32ビットOSは3.5ギガしか使えないい

この時代だからRAMディスクも無償ソフトで出ているはずと思い、探ってみるといくつかあった。そのなかで一番評判のいいのが、Gavotte RamDiskだった。内容は古いしあまりメンテしていないようだがWikiページまで作られている。なお、「RAMディスク導入ガイド」も少し古いが参考になる。とはいいながら、作者不明(中国?)、ソフトの置き場不明で、ネットを検索して探し出すしかない。最新バージョンを見つけてダウンロードし、通常の手順でsetup.exeを実行して、インストールしてみたがうまくいかない。RAMディスクの設定ソフトは起動するが、RAMディスクのインストールで“fail”してしまうのである。さらにWebを漁ってみると、まずレジストリでWindowsの拡張メモリ機能を有効にする必要があることがわかった。そのレジストリ変更手順はダウンロードしたなかに含まれていたので実行したが、結果はやはりfailしてしまう。またまた、次の方法を探してみると、そもそもWindows Visata以降は拡張メモリ機能が変更されて、コマンドプロンプトから設定する必要があることがわかった。早速やってみたが、やはりダメだった。数日放置しておいたが、なおもしつこく検索してみた結果、「Vista x64でGavotte Ramdiskを使う (その1)」に遭遇した。実に丁寧に説明がある。どうやら、デバイスマネージャでRAMディスクのドライバをインストールしておく必要があったのだ。このための.infファイルもGavotteに含まれていた。メインのPCでは手持ちのメモリで5ギガほど確保できるので、1.5ギガほどRAMディスクとして利用してみることにした。

RAMディスクの設定ツール

※この画面はインストール後のもの。インストールするときは多めにサイズを切っておくと、OSの使い残しのメモリをすべてRAMディスクに構成するようだ。

RAMディスクはvolatileなメモリだから再起動すれば内容は消えてしまう。用途としてはWindowsやIE関係の一時ファイルのフォルダ(TempやTmp)をRAMディスクに設定するというのが一般的である。そのためには起動時にバッチ処理でフォルダ定義のコマンドを走らせる必要がある。しかし、Gavotteはあらかじめそれを想定しているかのように、起動時にTEMPフォルダが作られているのである。これを使わない手はない。実際にWindows、IE、メーラーなどの環境設定でこのフォルダを指定してみると、通常使用している状態で20〜30メガの作業ファイルが作られている。その分、動作が機敏になっていることは間違いなかろう。試していないがGavotteのramdiskツールにあるSaveImage、LoadImageボタンは、RAMディスクをイメージとして丸ごとハードディスクから出し入れする機能のようだ。これを使えば、ブラウザなどをRAMへインストールして、そのイメージをハードディスクに保存しておけば、次回Windowsを起動したときにはそのイメージをロードすればRAMディスクからブラウザを実行できることになる。Gavotteにはそのためのユーティリティもあるようだ。

メモ:TEMPフォルダのトラブル  2012/03/01

このフォルダをRAMディスクに割当てた状態で、TEMPフォルダが壊れたことがあった。理由は不明だがフォルダ名が文字化けして、一時ファイルをそこに置いたはずのアプリ側から読めなくなったようである。そうすると予想外の事態がいろいろ発生する。とくに驚いたのはWordがテンプレート・ファイル(Normal.dot)を読めなくて立ち往生してしまうことだ。こうなると再起動しかない。なぜRAMディスクのフォルダが壊れるのか謎だが、あまり頻繁におきるとRAMディスクを使う意味がない。

追記の追記

RAMディスクの内容が壊れた原因をひとつ思いついた。スリープ中にPCの電源を完全に切ったからかもしれない。スリープ状態では電源は切れている様にみえてもメモリの内容を保持するために微弱な電流を送っている。それはUSBに接続した機器の場合でも同じだ。だから、完全に電源をきるときはPCの前面のボタンを押してもダメで、ACアウトレットとの接続を切る必要がある。裏側のスイッチで切るか電源ケーブルを抜く。思い当たるのはあのとき普通スリープでは切らない電源を完全に切った。そうするとスリープから復帰するときは、ハードディスクにバックアップしたメモリのイメージを読み出して、電源オン後のPCメモリに展開する。多分、このときにRAMディスクの内容が壊れたのではないか。

インストールされたRAMディスク ドライブR

※ドライブの名前でわかるだろうが、SSDとHDDのデュアル・ブート構成にして、HDDから起動すると移行前のOSへ戻れるようにしてある。どちらのOSを起動しても、DATAドライブのドキュメント類は共通になる。

64ビットOSと浦島太郎

これまでの一連の作業で、ひさびさに独り冷や汗をかく思いをした。その顛末。

また32ビット、64ビットの話になる。処理データの単位長が倍の64ビットになるというのは桁数が倍になるわけで、4ギガの2倍ではなく4ギガの4ギガ倍になる。もうそうなれば理屈のうえではメモリの制限はないに等しい。…………というと、昔も似たような議論があったことをおもいだす。パソコンのメモリは8ビット→16ビット→32ビット→64ビットと拡大してきた。そのたびに、実は同じような話を聞かされた。例えば、16ビットOSから32ビットOSへ移行する時点は4ギガなどというメモリは天文学的な量だった。最近になってテラという単位(正確には単位の接頭辞)が使われだしたように、あのころはまだパソコンの世界は「キロ」が限界で「メガ」がちらついてきたころだったのだ(同じことはIPv4→IPv6に見られるようにインターネットの世界でも起きている)。いずれテラがペタのと騒ぎ出すだろう。

処理単位が32ビットから64ビットになるということは、車に例えれば、32人乗りが64人になるようなものだ。処理速度が同じだとしても、処理できるデータ量は倍になるから、インプットが同じ量なら処理時間は半分になる。ただ、32人乗りと64人乗りでは使用するリソースも多くなるだろう。車自体が大きくなったぶん部品の数も重量も増えるからガソリンを食う。これはパソコンとて同じことで、32ビットが64ビットになれば電子回路が複雑になり消費電力を喰う。例えば、1人しか乗客がいなくても64人乗りが走行するわけだからそのぶんオーバーヘッドも増える。

昔からコンピュータというかパソコンに馴染んでいた人間には32ビット時代が長く続き、64ビット版はOSもCPUも対応ソフトも高価につくという固定観念があった。家庭用のパソコンというより、ワークステーションやサーバー向けの位置づけである。近頃64ビット対応の話がちらほらするとは感じていたが、自分が使うことになるという発想がなかった。

話を戻そう。友達はそれまで使っていたパソコンが不要になったというので、それを貰うことにして宅急便で送ってもらった。ところが、到着した段ボールの箱に64ビットの文字が躍っている。5年くらい前のAMDのCPUを使ったパソコンだったから、Windowsは当然32ビット版である。しかし、またしても64ビットが出てきたので、あれ?と思って調べてみた。すぐに判ったのだが、5年ほど前からCPUの中身は64ビット処理に移行し、レガシーとの互換性を保つために32ビット処理をサポートしているというのが現実だったのだ。

5年前のPCのケースすでにデュアルコアの64ビットであった

だったら、友人のお古のパソコンでも64ビットOSが動くはずである。早速、TechNetライセンスのWindows 7の64ビット版をインストールしてみると、なんなく動いてしまった。長らく32ビットと64ビットは別世界と思い込んでいた自分は、突如、「浦島太郎」状態になったわけである。人前でえらそうに「32ビットPCと64ビットPCはまったく別物」なんて言わなくてよかった。冷や汗三斗である。

しかし、となると、SSD化してRAMディスクまで設定したメインのパソコン(これも他の友人のお下がり)もIntelのCore2 Duoだから、旧世代とはいえいつでも64ビットへ移行できるわけだ。ただし、Windowsでは32ビット→64ビットはアップグレード・パスはないから、またSSD化に費やしたばかりの索漠とした時間を繰り返さなければならない。

あのウンザリ感が薄れるまで、もう少し、32ビットで行こうっと。

現在の閲覧者数:
inserted by FC2 system