LPデジタル化計画 2009年04月20日 10:53   編集
シリアルATAの拡張機能にAHCIというのがあるらしい。(Advanced Host Controller Interfaceの略) ハードディスクのアクセスを高速化するNCQ(Native Command Queuing)や、電源を入れたままコネクタの抜き差しができるホットプラグの機能をサポートするらしい。シリアルATAのハードディスクをインストールしても、初期設定ではパラレルATAとも互換性のあるIDEモードになっているが、シリアルATAの長所をフルに発揮するにはAHCIモードにしないといけないようだ。

せっかくだから長所を生かしてみようと、変更してみたのだが、けっこうややこしい。うまくいったのかどうかもよくわからない状態だが、今後のために整理しておく。

AHCIに変更するにはいろいろ条件がある。
  • まず、OSがVistaでなければならない。これはVistaでないと標準でAHCIのドライバがインストールされていないためだが、AHCIのドライバをインストールすればXPでも可能らしい。
  • 次にチップセットがRAIDをサポートしていること。ICH7RとかICH8Rとか、RがついているのがRAIDをサポートするチップセットで、ICH7やICH8はRAIDをサポートしていない。しかし、ICH8のチップセットでも裏技でAHCIのドライバがインストール可能のようだ。
  • そしてハードディスクがAHCIに対応していなければならない。シリアルATA Ⅱ以降がAHCIに対応しているらしい。
このEpro@P180改めP5B_D@P180はOSはVista、チップセットはICH8R、OSをインストールしたHDDもシリアルATA Ⅱということで、一応上記の条件は満たしているが、すでにIDEモードでOSをインストールしてしまっている。
通常はOSをインストールする前にBIOSでIDEモードをAHCIにしておかないといけないらしい。IDEモードでOSをインストールした状態でBIOSのIDEモードを変更すると、OSが起動しないからだ。OSをインストールした後、AHCIに変更するには、BIOSでAHCIモードに変更した後、OSを修復インストールするというのが一般的らしい。しかし、修復インストールといっても、現在の環境がかなり変更されてしまうので、面倒だなと思っていたら、修復インストールせずにAHCIに変更する方法もあるようだ。

Windows上でAHCIドライバをインストールし、次に再起動するときにBIOSのIDEモードをAHCIに変更するというものだ。BIOSだけAHCIに変えたのでは、OSにAHCIのドライバがなくて起動できないので、先に入れておこうということだろう。BIOSがIDEモードの時にAHCIドライバに変えてしまって大丈夫なのだろうかという気もするが、変更したドライバが有効になるのは、次の起動時なので、OSを終了するまでは大丈夫ということかもしれない。
この方法を試してみることにする。

AHCIドライバをインストール


デバイスマネージャーのIDE/ATA/ATAPIコントローラを見ると、「標準デュアルチャンネルPCI IDEコントローラ」「SATA IDEコントローラ」とか中にいろいろある。「SATA IDEコントローラ」は2個ある。これのどれを変更すればいいのかわからない。適当に「標準デュアルチャンネルPCI IDEコントローラ」の方を変更することにする。
そして、「ドライバソフトウェアの更新」→「コンピュータ上のデバイスドライバの一覧から選択」→「互換性のあるハードウェアを表示」をチェックオフ
すると、ドライバのプルダウンリストに「標準AHCI 1.0 シリアルATAコントローラ」というのが出てくるので、これを選んでインストール。「再起動しますか」と聞いてくるので再起動する。
再起動時にBIOSでIDEモードをIDEからAHCIに変更。
すると無事にVistaが起動。「新しいハードウェアが検出されました。」ということでしばらくほっておくと、「インストールが終了しました。再起動してください。」と出る。仰せに従い、もう一度再起動する。
再起動してデバイスマネージャーを確認すると、「標準デュアルチャンネルPCI IDEコントローラ」と、2個の「SATA IDEコントローラ」がなくなって、代わりに「標準AHCI 1.0 シリアルATAコントローラ」が2個ある。いやな予感がしてマイコンピュータを開くと、IDE接続のHDD2個が見えなくなっている。IDEのHDDがあるのに、デバイスマネージャーからIDE関係と思われるドライバが見あたらなくなってしまったのが、原因と思い、2個の「標準AHCI 1.0 シリアルATAコントローラ」のうち、片方を「ドライバのロールバック」することにする。どちらをロールバックするべきか迷ったが、2個のうち上に表示されているコントローラはロールバックがディムになっていて使えない。選択肢がないので、ロールバックできる方を戻してみると、その場でIDEのHDDが復活した。
AHCIドライバをインストールするときに「標準デュアルチャンネルPCI IDEコントローラ」を選んだので、パラレルATAのHDDのコントローラの方も変更してしまったのだろう。シリアルATA、パラレルATAが混在している場合は「SATA IDEコントローラ」の片方だけにインストールすれば良かったのだろうが、どちらがどちらかわからないという問題もあるので、結果オーライだったのかもしれない。

マトリクス・ストレージ・マネージャー インストール


ベンチマークソフトでHDDアクセススピードをテストしてみるが、あまり早くなったという感じではない。それとNCQが有効になっているのか、転送速度3.0Gbpsが有効になっているのかわからない。これはチップセットを作っているIntelが公開しているマトリクス・ストレージ・マネージャーというのを入れるとわかるようになるらしいということで、インストールしてみる。
  • http://www.intel.co.jp/jp/support/chipsets/imsm/index.htm
インストールすると、再起動が促される。再起動すると、また、「新しいハードウェアが検出されました」という表示が出て、インストールが完了すると、再び再起動が求められる。
再起動すると、マトリクス・ストレージ・マネージャーがインストールされている。起動すると、AHCIで接続したHDDの情報が表示されている。
1.gif

NCQは「ネイティブ コマンド キュー サポート」が「はい」になっている、つまり有効になっているようだが、転送速度は「現在のシリアルATA転送速度」が生成1となっている。これは1.5Gbpsということのようだ。
それと、AHCIコントローラがいつのまにか「標準AHCI 1.0 シリアルATAコントローラ」から「82801HR/HH/HO SATA AHCI Controller」に変わっているようだ。
マトリクス・ストレージ・マネージャーで「現在のシリアルATA転送速度」を3.0Gbpsに変更することはできないようだ。これを変更するにはハードディスクメーカーが出しているメンテナンスツールを使う必要があるようだ。

Feature Tool


シリアルATAのHDDは2個ともHitachi製だ。Hitachiの場合はFeature Toolというのを使って設定を変更できるようだ。Hitachiのサイトからファイルをダウンロードする。

  • http://www.hgst.com/hdd/support/download.htm
しかし、Hitachiって日本の企業のはずなのに、ハードディスク関係のサイトはなんで英語しかないんだ?!
このFeature ToolはWindows上ではなく、OS起動前にフロッピーから実行する。CD-ROM起動版も公開されている。
ダウンロードしたファイルを実行して指示通りに進めると、Feature Toolを実行するフロッピーが作られる。
ここでまたフロッピー作成中にエラーが出てストップしてしまうという問題が発生。前から調子が悪かったのだが、フロッピードライブの問題だろうか。このフロッピードライブにVistaのライセンスがあるので他のフロッピードライブに変えてしまうというわけにもいかないし。仕方がないので、Feature Tool起動フロッピーの作成は他のPCで行い、できたフロッピーをP5B-D@P180に入れて起動。
P5B-V@SOLOでは、このFeature Toolがうまく起動できないという問題があった。原因をいろいろ調べたら、DVDドライブに原因があることがわかった。どっちが悪いのかわからないが、DVDドライブをはずすとうまく起動した。今回は内蔵DVDドライブはつながっていないので、そういう問題はないだろうなと思っていたら別の問題が発生した。Feature Toolを起動してみると、SATAのHDDを認識しないのだ。IDEのHDDは認識している。P5B-V@SOLOでFeature Toolを使ったときはもちろんSATAのHDDも認識していたのになぜ?
違うのはBIOSのIDEモードがAHCIになったことぐらいだ。試しにBIOSのIDEモードをIDEに戻してからFeature Toolを起動してみると、みごとSATAドライブも認識。Feature ToolはAHCIには対応していないということか。

Feature ToolのFeaturesメニューからChange SATA Settingsを選び、Max Transfer Speedを「Up to 1.5GB/s」から「Up to 3.0GB/s」に変更する。「Spread Spectrum Clocking」も選べといわれるので、「Disable」にしておく。
「変更を有効にするためにはシステムをパワーオフしろ」というようなメッセージが現れるので、いったん電源を落とす。再起動では変更が反映されないようだ。
シャットダウン後、起動してマトリクスマネージャーを見てみると、「現在のシリアルATA転送速度」が生成2に変わっていた。3.0Gbpsになったということだろう。

再起動する前に、BIOSのIDEモードをAHCIに戻さなければならないのだが、一度これを忘れてIDEのまま起動してしまった。ところがOSは普通に立ち上がった。
IDEコントローラがIDE BIOSがAHCIの時は起動しなかったのだが、逆に
IDEコントローラがAHCI BIOSがIDEの場合はOKということなのだろうか。

速くなったのか


これで、やるべきことは一通りやったので、アクセススピードが速くなったかなと思ってベンチマークソフトを走らせてみる。

ところが、ほとんど変わっていない。アクセススピードは50MB/秒からせいぜい60MB/秒ぐらいだ。3Gbpsをバイトに換算すると、300MB/秒だが*1、それとはほど遠い。
これじゃ意味ないじゃないかと思ったが、調べてみるとそんなものらしい。1.5Gbpsとか3.0Gbpsとかいっているのは、あくまでもハードディスクと外部とをつなぐインターフェイスの最大速度で、ハードディスク内部での転送速度がそのスピードに及んでいないため、外部転送速度だけをあげても、アクセススピードは内部転送速度で頭打ちになるということのようだ。今後ハードディスクそのものの改善によって内部転送速度も速くなるだろうが、現時点ではパラレルATAの最大速度133MB/sにも達していないらしい。
・・・ということはシリアルATAに変えたらアクセスが速くなるというのは、ウソじゃないか。

さんざん苦労してAHCIに設定した結果がこういうオチというのも疲れる話だが、またひとつ勉強になった。

*1 シリアルATAの場合は、信号処理の関係で、1バイト = 8ビットではなく、1バイト = 10ビットとなるらしい
counter:3,072