2010年1月22日金曜日

SATA LPMの設定方法

今回は、SATA LPMの設定方法について説明します。
SATA LPMがどのような機能なのかについては、前回の記事を参照してください。

まず、SATA LPMを使用するための環境ですが、前回も書いた通り、一般的にはSATAの動作モードが「AHCI」に設定されていることが前提となります。DIPMであれば、IDEモードでも使用できますが、その場合は、BIOSレベルでの特殊対応が必須です。この対応は、個人では分からないので、制御しようがありません。

また、AHCIで使用してもLPMが動作していないことがあるという点にも注意が必要です。ノートPCなどのIntelのモバイル向けのチップセットを使用しているPCなら基本的にLPMの機能がオンに設定されていることが一般的ですが、デスクトップの場合は、BIOSレベルで機能が無効に設定されている場合があります。BIOSレベルで無効にされているかどうかは、ユーザーレベルでは判断できません。このため、デスクトップの場合は、設定を行ってもLPMが動作していない可能性があります。

それでは、設定方法を説明します。
まず、WindowsVista/7に標準添付されているMS純正ドライバ(msahci.sys)は、標準でHIPMをサポートしています。初期値は、「オン」に設定されており、HIPM対応の機器を接続すると自動的にHIPMが使用されます。

DIPMを使用する場合は、レジストリを変更します。
レジストリエディタを開き、「HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\msahci」と開き、「Controller0」という「キー」を作成し、「DipmEnabled」という名称のキーを「バイナリ値」で作成して、データの値に「01」を設定します。これで、DIPMがオンに設定されます。データの値を「00」に設定すると、DIPMは「オフ」になります。

DIPMをオンにする場合のレジストリの設定
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\msahci\Controller0]
"DipmEnabled"=hex:01

なお、HIPMをオフに設定することもできます。その場合は、「HipmDisabled」という名称のキーを作成し、データの値に「01」を設定すればよかったと思います。(うろ覚えですので、間違っている可能性もあります)

Intel製のドライバ(IaStor.sys)を使用している場合もMS製ドライバ同様にレジストリで設定を行います。MS製ドライバの場合は、コントローラ単位での設定でしたが、Intel製ドライバの場合は、ポート単位で設定が行えます。たとえば、Port0とPort1は、LPMを使用するが、残りは使用しないという設定が可能です。

Intel製のドライバの設定は、レジストリエディタを開き、「HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\iaStor\Parameters」を開いて、設定したい「Port」を選択すると、「DIPM」、「LPM」、「LPMSATE」、「LPMDSTATE」などのキーがありますので、これらの値を変更することで設定します。なお、IntelのICHシリーズでRAIDを組む場合、OS標準のドライバ(iaStorV.sys)を使用することもできますが、これも同じ設定でLPMの設定が行えます。
設定内容は、下の表を参考にしてください。

インテル製ドライバのレジストリ設定一覧

機能設定値
DIPMDIPMの有効無効を設定Enable:1、Disable:0
LPMHIPMの有効無効を設定Enable:1、Disable:0
LPMSTATEHIPMで要求するLPMの状態Slumber:1、Partial:0
LPMDSTATEDSATE時のLPMの状態Slumber:1、Partial:0
ANAsynchronous Notifyの設定Enable:1、Disable:0

最後に、SATA LPMを使用した場合の省電力効果が、どの程度得られるかは不明です。ひとつ言えるのは、ノートPCの場合、LPMをオンにすることでバッテリー動作時間が長くなることはあっても短くなることはありません。また、SSDやHDDの場合、LPMをオフにすると、LPMのオンオフが知らないところで頻繁に行われていることもあり、少なくとも復帰までにかかるレイテンシ分、パフォーマンスが向上することになります。

また、Intelドライバの設定項目にある「AN(Asynchronous Notify)」については、機会を改めて説明したいと思います。

20130626追記
本設定は、Intel製ドライバー V11.5以前のバージョン向けの設定です。V11.5以降のドライバーを使用している場合のSATA LPMの設定方法はこちらをご参照ください

0 件のコメント:

コメントを投稿