(57)【要約】【課題】ストレージデバイスの消費電力を柔軟に制御することができる情報処理装置を実現する。【解決手段】実施形態によれば、情報処理装置は、性能を優先する第１の電力スロットリングモードにおけるリンクレート毎の最大消費電力と電力消費効率との対応関係と、ピーク電力の低減を優先する第２の電力スロットリングモードにおけるリンクレート毎の最大消費電力と電力消費効率との対応関係とを示す第１の情報と、性能を優先する第１モード、消費電力の低減を優先する第２モード、およびピーク電力の抑制を優先する第３モードの中からユーザによって指定されたモードとに基づいて、ユーザによって指定されたモードに適合する電力スロットリングモードを決定する。【選択図】図２
2019125111.tif 000002
【特許請求の範囲】
【請求項１】
複数のリンクレートをサポートするシリアルインタフェースを介してストレージデバイスに接続可能な情報処理装置であって、
前記シリアルインタフェースを介して前記ストレージデバイスを制御するコントローラを具備し、前記コントローラは、
前記ストレージデバイスが性能を優先する第１の電力スロットリングモードに設定された場合における前記ストレージデバイスのリンクレート毎の最大消費電力と電力消費効率との対応関係と、前記ストレージデバイスがピーク電力の低減を優先する第２の電力スロットリングモードに設定された場合における前記ストレージデバイスのリンクレート毎の最大消費電力と電力消費効率との対応関係とを示す第１の情報を取得し、前記電力消費効率は１ワット当たり１秒当たりのＩ／Ｏ数を示し、
性能を優先する第１モード、消費電力の低減を優先する第２モード、およびピーク電力の抑制を優先する第３モードの中からユーザによって指定されたモードと、前記取得された第１の情報とに基づいて、前記第１の電力スロットリングモードおよび前記第２の電力スロットリングモードの内、前記ユーザによって指定されたモードに適合する電力スロットリングモードを決定し、
前記ストレージデバイスの最大消費電力を制限するための電力スロットリング動作を前記決定された電力スロットリングモードで実行すべきことを前記ストレージデバイスに指示するように構成されている、情報処理装置。
【請求項２】
前記コントローラは、
前記ユーザによって指定されたモードと前記取得された情報とに基づいて、前記ユーザによって指定されたモードに適合するリンクレートを決定し、
前記決定されたリンクレートで前記情報処理装置と前記ストレージデバイスとの間のリンクを確立すべきことを前記ストレージデバイスに指示するように構成されている請求項１記載の情報処理装置。
【請求項３】
前記コントローラは、前記第２モードが前記ユーザによって指定された場合、前記第１の電力スロットリングモードおよび前記第２の電力スロットリングモードの内、電力消費効率が高い電力スロットリングモードを、前記ユーザによって指定されたモードに適合する電力スロットリングモードとして決定するように構成されている請求項１記載の情報処理装置。
【請求項４】
前記コントローラは、
前記第１の電力スロットリングモードが前記第２の電力スロットリングモードよりも電力消費効率が高い場合、前記情報処理装置内のキューに蓄積されている処理すべきＩ／Ｏ数と、前記取得した情報とに基づいて、前記第１の電力スロットリングモードおよび前記第２の電力スロットリングモードの内、前記処理すべきＩ／Ｏ数に対して必要とされる総消費電力が小さい電力スロットリングモードを特定し、
前記特定した電力スロットリングモードを、前記ユーザによって指定されたモードに適合する電力スロットリングモードとして決定するように構成されている請求項１記載の情報処理装置。
【請求項５】
前記コントローラは、前記第２モードが前記ユーザによって指定された場合、前記情報処理装置内のキューに現在蓄積されている処理すべきＩ／Ｏ数に基づいて、前記ユーザによって指定されたモードに適合する電力スロットリングモードを定期的に再決定するように構成されている請求項４記載の情報処理装置。
【請求項６】
前記コントローラは、前記ストレージデバイスの初期化シーケンスのタイミング、または前記情報処理装置と前記ストレージデバイスとの間のリンクを確立するリセットシーケンスのタイミングで、前記ストレージデバイスにその電力スロットリングモードを前記指示した電力スロットリングモードに変更させる請求項１記載の情報処理装置。
【請求項７】
複数のリンクレートをサポートするシリアルインタフェースを介してストレージデバイスに接続可能な情報処理装置であって、
前記シリアルインタフェースを介して前記ストレージデバイスを制御するコントローラを具備し、前記コントローラは、
前記ストレージデバイスが性能を優先する第１の電力スロットリングモードに設定された場合における前記ストレージデバイスのリンクレート毎の最大消費電力と電力消費効率との対応関係と、前記ストレージデバイスがピーク電力の低減を優先する第２の電力スロットリングモードに設定された場合における前記ストレージデバイスのリンクレート毎の最大消費電力と電力消費効率との対応関係とを示す第１の情報を取得し、前記電力消費効率は１ワット当たり１秒当たりのＩ／Ｏ数を示し、
性能を優先する第１モード、消費電力の低減を優先する第２モード、およびピーク電力の抑制を優先する第３モードの中からユーザによって指定されたモードと、前記取得された第１の情報とに基づいて、前記第１の電力スロットリングモードおよび前記第２の電力スロットリングモードの内、前記ユーザによって指定されたモードに適合する電力スロットリングモードを決定し、
前記ストレージデバイスの最大消費電力を制限するための電力スロットリング動作を前記決定された電力スロットリングモードで実行すべきことを前記ストレージデバイスに指示するように構成され、
前記コントローラは、
前記ユーザによって指定されたモードが前記第１モードである場合、前記第１の電力スロットリングモードを前記ユーザによって指定されたモードに適合するリンクレートとして決定し、
前記ユーザによって指定されたモードが前記第３モードである場合、前記第１の電力スロットリングモードを前記ユーザによって指定されたモードに適合するリンクレートとして決定し、
前記ユーザによって指定されたモードが前記第２モードである場合、前記第１の電力スロットリングモードおよび前記第２の電力スロットリングモードの内、電力消費効率が高い電力スロットリングモードを前記ユーザによって指定されたモードに適合する電力スロットリングモードとして決定する、情報処理装置。
【請求項８】
複数のリンクレートをサポートするシリアルインタフェースを介してホストシステムに接続されるストレージデバイスであって、
性能を優先する第１の電力スロットリングモードおよびピーク電力の低減を優先する第２の電力スロットリングモードを有し、前記第１の電力スロットリングモードまたは前記第２の電力スロットリングモードで前記ストレージデバイスの動作を制御するように構成されたコントローラを具備し、
前記コントローラは、
前記第１の電力スロットリングモードにおける前記ストレージデバイスのリンクレート毎の最大消費電力と電力消費効率との対応関係と前記第２の電力スロットリングモードにおける前記ストレージデバイスのリンクレート毎の最大消費電力と電力消費効率との対応関係とを示す第１の情報と、性能を優先する第１モード、消費電力の低減を優先する第２モード、およびピーク電力の抑制を優先する第３モードの中からユーザによって指定されるモードとに基づいて前記ホストシステムによって決定される電力スロットリングモードを指定するモード指定情報を前記ホストシステムから受信し、前記電力消費効率は１ワット当たり１秒当たりのＩ／Ｏ数を示し、
前記ストレージデバイスの最大消費電力を、前記決定された電力スロットリングモードに対応する最大消費電力に制限するように構成されている、ストレージデバイス。
【請求項９】
前記コントローラは、
前記ユーザによって指定されたモードに適合するリンクレートを指定するリンクレート指定情報を前記ホストシステムから受信し、前記ユーザによって指定されたモードに適合する前記リンクレートは、前記ユーザによって指定されたモードと前記第１の情報とに基づいて前記ホストシステムによって決定され、
前記ストレージデバイスの最大消費電力を、前記受信されたリンクレート指定情報によって指定されるリンクレートと前記受信されたモード指定情報によって指定される電力スロットリングモードとの組み合わせに対応する最大消費電力に制限するように構成されている請求項８記載のストレージデバイス。
【請求項１０】
前記コントローラは、
前記ストレージデバイスがサポートする複数のリンクレートを示す複数のビットを含むデフォルトの能力情報を保持し、
前記デフォルトの能力情報内の前記複数のビットの内、前記ホストシステムからのリンク指定情報によって指定される最小リンクレートと最大リンクレートとによって規定される範囲に属するビット群を除く他のビットそれぞれをマスクし、
前記ホストシステムと前記ストレージデバイスとの間のリンクを確立する場合に、前記他のビットそれぞれをマスクすることによって得られる第１のビット群を含む新たな能力情報を前記ホストシステムに送信するように構成されている請求項８記載のストレージデバイス。
【請求項１１】
前記コントローラは、
前記新たな能力情報に“１”のスタートビットを挿入し、
前記新たな能力情報に含まれる“１”のビット数が偶数か奇数かを判定し、
前記ビット数が奇数と判定された場合に前記新たな能力情報に“１”のパリティを付加する請求項１０記載のストレージデバイス。
【請求項１２】
前記コントローラは、
前記新たな能力情報に含まれる“１”にセットされたビット数が偶数か奇数かを判定する前に、信号の周波数拡散を行うか否かを示す情報に基づいて信号の周波数拡散を行うか否かを決定し、信号の周波数拡散を行わない場合は、前記第１のビット群のうち、信号の周波数拡散を実行する能力を有すること示すビットをマスクすることによって、前記第１のビット群を更新するように構成され、
前記新たな能力情報は前記更新された第１のビット群を含む請求項１１記載のストレージデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、情報処理装置およびこの情報処理装置にシリアルインタフェースを介して接続されるストレージデバイスに関する。
【背景技術】
【０００２】
近年、ハードディスクドライブ（ＨＤＤ）、ソリッドステートドライブ（ＳＳＤ）のような様々なストレージデバイスが広く普及している。最近では、その消費電力を抑制する機能を有するストレージデバイスも開発されている。
【０００３】
ところで、近年では、サーバコンピュータのような情報処理装置を中心に、Ｓｅｒｉａｌ  Ａｔｔａｃｈｅｄ  ＳＣＳＩ（ＳＡＳ）、Ｓｅｒｉａｌ  ＡＴＡ（ＳＡＴＡ）、ＰＣＩ  Ｅｘｐｒｅｓｓ（ＰＣＩｅ）（登録商標）といったシリアルインタフェースを備えるストレージデバイスが利用されている。
【０００４】
このようなシリアルインタフェースの多くは、データ転送速度が互いに異なる複数のリンクレートをサポートしている。
【０００５】
ストレージデバイスにおいては、その性能の観点等から、最速のリンクレートのために必要とされる電力が、ストレージデバイスに許容される最大消費電力として固定的に使用される場合がある。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】米国特許出願公開第２０１６／０３２０９９５号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかし、この場合には、最速のリンクレートのような速いリンクレートを必要としないケースでは、電力が無駄に消費される可能性がある。
【０００８】
本発明が解決しようとする課題は、ストレージデバイスの消費電力を柔軟に制御することができる情報処理装置およびストレージデバイスを提供することである。
【課題を解決するための手段】
【０００９】
実施形態によれば、複数のリンクレートをサポートするシリアルインタフェースを介してストレージデバイスに接続可能な情報処理装置は、前記シリアルインタフェースを介して前記ストレージデバイスを制御するコントローラを具備する。前記コントローラは、前記ストレージデバイスが性能を優先する第１の電力スロットリングモードに設定された場合における前記ストレージデバイスのリンクレート毎の最大消費電力と電力消費効率との対応関係と、前記ストレージデバイスがピーク電力の低減を優先する第２の電力スロットリングモードに設定された場合における前記ストレージデバイスのリンクレート毎の最大消費電力と電力消費効率との対応関係とを示す第１の情報を取得する。前記電力消費効率は１ワット当たり１秒当たりのＩ／Ｏ数を示す。前記コントローラは、性能を優先する第１モード、消費電力の低減を優先する第２モード、およびピーク電力の抑制を優先する第３モードの中からユーザによって指定されたモードと、前記取得された第１の情報とに基づいて、前記第１の電力スロットリングモードおよび前記第２の電力スロットリングモードの内、前記ユーザによって指定されたモードに適合する電力スロットリングモードを決定する。前記コントローラは、前記ストレージデバイスの最大消費電力を抑制するための電力スロットリング動作を前記決定された電力スロットリングモードで実行すべきことを前記ストレージデバイスに指示する。
【図面の簡単な説明】
【００１０】
【図１】ホストシステム（情報処理装置）およびストレージデバイスそれぞれの構成例を示すブロック図。
【図２】電力スロットリングモードおよびリンクレートを決定する処理の手順の概要を示すシーケンス図。
【図３】ユーザによって指定可能な、性能を優先する第１モード、消費電力の低減を優先する第２モード、ピーク電力の抑制を優先する第３モードを説明するための図。
【図４】ストレージデバイスが第１の電力スロットリングモード（Power_Level_Mode (A)）に設定された場合におけるリンクレートと最大消費電力と電力消費効率との対応関係と、ストレージデバイスが第２の電力スロットリングモード（Power_Level_Mode (B)）に設定された場合におけるリンクレートと最大消費電力と電力消費効率との対応関係とを示す情報を示す図。
【図５】ホストシステムによって実行される電力スロットリングモード決定処理の手順を示すフローチャート。
【図６】ホストシステムによって実行される電力スロットリングモード決定処理の別の手順を示すフローチャート。
【図７】ホストシステムによって実行されるリンクレート決定処理の手順を示すフローチャート。
【図８】決定された電力スロットリングモードをストレージデバイスに設定するために使用されるモードページの例を示す図。
【図９】ホストシステムがストレージデバイスに電力スロットリングモードを設定してからストレージデバイスがこの電力スロットリングモードに対応する電力設定を実行するまでの処理の手順を示すシーケンス図。
【図１０】ストレージデバイスの初期化シーケンスにおいて実行される電力設定処理の手順を示すシーケンス図。
【図１１】ホストシステムとストレージデバイスとによって実行されるリンクリセットシーケンス内で行われる電力設定処理の手順を示すシーケンス図。
【図１２】ストレージデバイスによって実行されるPhy capabilities制御処理の手順を示すフローチャート。
【図１３】各ポートの最小／最大リンクレートを含むモードページ情報（Mode Page 19h (Subpage01h)）を示す図。
【図１４】Phy capabilitiesの詳細を示す図。
【図１５】省電力を優先する第２モードに適合した電力スロットリングモードおよびリンクレートを定期的に再決定する処理の手順を示すフローチャート。
【発明を実施するための形態】
【００１１】
以下、図面を参照して、実施形態を説明する。  
【００１２】
まず、図１を参照して、ホストシステム１およびストレージデバイス３それぞれの構成を説明する。
【００１３】
このホストシステム１は、サーバコンピュータ、パーソナルコンピュータ、他の様々な電子機器といった情報処理装置であり、シリアルインタフェース２を介してストレージデバイス３に接続される。ホストシステム１は、ストレージデバイス３にデータを書き込み、データをストレージデバイス３から読み出すように構成されている。
【００１４】
シリアルインタフェース２の例には、Ｓｅｒｉａｌ  Ａｔｔａｃｈｅｄ  ＳＣＳＩ（ＳＡＳ）、Ｓｅｒｉａｌ  ＡＴＡ（ＳＡＴＡ）、ＰＣＩ  Ｅｘｐｒｅｓｓ（ＰＣＩｅ）（登録商標）等が含まれる。
【００１５】
シリアルインタフェース２は一つ以上のポート（Port）を含む。各ポートは、受信用の差動信号線ペアと、送信用の差動信号線ペアとを含んでいてもよい。ホストシステム１とストレージデバイス３との間のデータ転送はこれら一つ以上のポートを介して実行される。なお、ＰＣＩｅ等においては、このポートはレーンとも称される。
【００１６】
図１においては、シリアルインタフェース２が４つのポート、つまりPort A, Port B, Port C, Port Dを含む場合が例示されている。
【００１７】
例えば、SAS規格においては、現状、1.5Gbps (Gigabits per second), 3Gbps, 6Gbps, 12Gbpsの４種類のリンクレートが定められている。また、ＰＣＩｅを使用するＮＶＭ  Ｅｘｐｒｅｓｓ（ＮＶＭｅ）（登録商標）規格においては、現状、Gen1 (2.5GT/s (GigaTransfers per second)), Gen2 (5GT/s), Gen3 (8GT/s), Gen4 (16GT/s) の４種類のリンクレートが定められている。ここで、リンクレートとは、シリアルインタフェース２を介して実行されるビットレート（データ転送速度）を意味する。通常、使用されるリンクレートが高速になるほど、Ｉ／Ｏ性能が高くなるが、ストレージデバイスによって消費される電力は増加する。
【００１８】
ホストシステム１は、ストレージデバイス３に適用すべき最適な電力スロットリングモードを決定し、ストレージデバイス３の最大消費電力を制限する電力スロットリング動作をこの決定した最適な電力スロットリングモードで実行すべきことをストレージデバイス３に指示するように構成されている。また、ホストシステム１は、最適な電力スロットリングモードのみならず、ストレージデバイス３に適用すべき最適なリンクレートも決定することができ、決定したリンクレートと決定した電力スロットリングモードの双方をストレージデバイス３に指示することができる。
【００１９】
ストレージデバイス３は、最大消費電力が異なる複数種の電力スロットリングモードをサポートしており、ストレージデバイス３の最大消費電力を制限する電力スロットリング動作を、ホストシステム１からのモード指定情報によって指定される電力スロットリングモードを使用して実行する。より詳しくは、ストレージデバイス３は、ストレージデバイス３の最大消費電力を、ホストシステム１からのモード指定情報によって指定される電力スロットリングモードに対応する最大消費電力に制限する。
【００２０】
本実施形態においては、ストレージデバイス３は、性能を優先する第１の電力スロットリングモードと、ピーク電力の低減を優先する第２の電力スロットリングモードとを有している。第１の電力スロットリングモードに適用される最大消費電力と第２の電力スロットリングモードに適用される最大消費電力の設定値は互いに異なっている。基本的には、ピーク電力の低減を優先する第２の電力スロットリングモードにおいては、第１の電力スロットリングモードに対応する最大消費電力よりも小さい最大消費電力が適用される。
【００２１】
したがって、ストレージデバイス３が第２の電力スロットリングモードで電力スロットリング動作を実行した場合、つまりストレージデバイス３の最大消費電力を第２の電力スロットリングモードに対応する低い最大消費電力に制限した場合には、ストレージデバイス３の最大消費電力（ピーク電力）は、第１の電力スロットリングモードよりも低い値に抑えられる。
【００２２】
電力スロットリング動作は、ストレージデバイス３によって消費される電力を制御／調整するための動作を含んでいてもよい。第１の電力スロットリングモードがホストシステム１によって指定された場合には、ストレージデバイス３は、ストレージデバイス３の最大消費電力がこの第１の電力スロットリングモードに対応する最大消費電力以下に制限されるように、ストレージデバイス３によって消費される電力を制御／調整する。一方、第２の電力スロットリングモードがホストシステム１によって指定された場合には、ストレージデバイス３は、最大消費電力（ピーク電力）がこの第２の電力スロットリングモードに対応する最大消費電力以下に制限されるように、ストレージデバイス３によって消費される電力を制御／調整する。
【００２３】
ストレージデバイス３によって消費される電力を制御／調整する処理の例には、ストレージデバイス３内のハードウェア回路の特定の一部または全てに供給されるクロック信号それぞれの周波数を変更する動作が含まれてもよいし、最大消費電力を或る値までに抑えることが可能な他の様々な電力制限動作が含まれてもよい。
【００２４】
ホストシステム１は、ＣＰＵ１１、メインメモリ１２、周辺制御部１３、デバイスインタフェース１４、電源回路１５、等を含む。これらＣＰＵ１１、メインメモリ１２、周辺制御部１３、デバイスインタフェース１４は、バス１０を介して相互接続される。
【００２５】
ＣＰＵ１１は、ホストシステム１の様々なコンポーネントを制御するプロセッサである。このＣＰＵ１１は、メインメモリ１２にロードされた様々なプログラムを実行する。これらプログラムには、アプリケーションプログラム群１２１、オペレーティングシステム（ＯＳ）１２２、ファイルシステム１２３、デバイスドライバ１２４等が含まれる。
【００２６】
アプリケーションプログラム群１２１には、設定アプリケーションプログラム１２１Ａが含まれる。この設定アプリケーションプログラム１２１Ａは、ストレージデバイス３の電力設定をユーザがカスタマイズすることを可能にするためのユーザインタフェース（グラフィカルユーザインタフェース（ＧＵＩ）またはキャラクターユーザインタフェース（ＣＵＩ）をユーザに提示することができる。
【００２７】
本実施形態では、設定アプリケーションプログラム１２１Ａは、性能を優先する第１モード、消費電力の低減を優先する第２モード、ピーク電力の抑制を優先する第３モードの中のいずれか一つをユーザに選択させるための処理を実行する。
【００２８】
性能を優先する第１モードは、ストレージデバイス３の性能（Ｉ／Ｏ性能）を最優先するためのモードとして利用される。消費電力の低減を優先する第２モードは、ストレージデバイス３の総消費電力の低減を最優先するためのモードとして利用される。最大消費電力（ピーク電力）の抑制を優先する第３モードは、最大消費電力（ピーク電力）をできるだけ低く抑えるためのモードとして利用される。
【００２９】
デバイスドライバ１２４は、シリアルインタフェース２を介してストレージデバイス３を制御するためのデバイスドライバプログラムである。このデバイスドライバ１２４は、ライトコマンド、リードコマンド、および各種制御用コマンドをシリアルインタフェース２を介してストレージデバイス３に送信することができる。また、このデバイスドライバ１２４は、電力スロットリングモード設定モジュール１２４Ａを含む。
【００３０】
電力スロットリングモード設定モジュール１２４Ａは、ストレージデバイス３に適用すべき最適な電力スロットリングモードおよび最適なリンクレートを決定する処理、および決定した電力スロットリングモードを指定するモード指定情報および決定したリンクレートを指定するリンクレート指定情報をストレージデバイス３に送出する処理を実行する。リンクレート指定情報をストレージデバイス３に送出することにより、決定したリンクレートで、ホストシステム１とストレージデバイス３との間のリンクを確立すべきことをストレージデバイス３に指示することができる。
【００３１】
電力スロットリングモード設定モジュール１２４Ａは、ユーザによって指定されたモード（第１モード、第２モード、または第３モード）を設定アプリケーションプログラム１２１Ａから受信する。また、電力スロットリングモード設定モジュール１２４Ａは、ストレージデバイス３が第１の電力スロットリングモードに設定された場合におけるストレージデバイス３のリンクレート毎の最大消費電力と電力消費効率との対応関係と、ストレージデバイス３が第２の電力スロットリングモードに設定された場合におけるストレージデバイス３のリンクレート毎の最大消費電力と電力消費効率との対応関係とを示す情報（以下、リンクレート／最大消費電力／電力消費効率の対応関係情報と称する）を取得する。ここで、電力消費効率とは、１ワット当たり１秒当たりのＩ／Ｏ数、つまりIOPS/Wを意味する。
【００３２】
電力スロットリングモード設定モジュール１２４Ａは、リンクレート／最大消費電力／電力消費効率の対応関係情報に基づいて、ユーザによって指定されたモード（第１モード、第２モード、または第３モード）に適合する電力スロットリングモードを決定する。電力スロットリングモードの決定に際しては、電力スロットリングモード設定モジュール１２４Ａは、Ｉ／Ｏキュー１２４Ｂに蓄積されている、処理すべきＩ／Ｏの数を考慮することもできる。Ｉ／Ｏキュー１２４Ｂは、ストレージデバイス３に送出すべきＩ／Ｏ要求を格納するためのコマンド発行キューである。
【００３３】
リンクレート／最大消費電力／電力消費効率の対応関係情報はストレージデバイス３内に予め保持されていてもよい。この場合、電力スロットリングモード設定モジュール１２４Ａは、SAS においてはMode Pageを使用することによって上述のリンクレート／最大消費電力／電力消費効率の対応関係情報をストレージデバイス３からリードしてもよいし、NVMeにおいてはGet Featureを使用することによって上述のリンクレート／最大消費電力／電力消費効率の対応関係情報をストレージデバイス３からリードしてもよい。あるいは、電力スロットリングモード設定モジュール１２４Ａは、ストレージデバイス３のリンクレート、最大消費電力、電力消費効率を計測し、この計測によって上述のリンクレート／最大消費電力／電力消費効率の対応関係情報を取得してもよい。
【００３４】
電力スロットリングモード設定モジュール１２４ＡはＣＰＵ１１によって実行されるので、ＣＰＵ１１は、ユーザによって指定されたモードに応じてストレージデバイス３の振る舞いが動的に変更されるようにストレージデバイス３を制御するコントローラとして機能する。
【００３５】
あるいは、電力スロットリングモード設定モジュール１２４Ａの機能を実行する回路を内蔵した専用のハードウェアが上述のコントローラとして利用されてもよい。
【００３６】
つまり、上述のコントローラは、ＣＰＵ１１のようなプロセッサ、他の様々なハードウェア回路といった、処理回路によって実現することができる。
【００３７】
周辺制御部１３は、ディスプレイ、入力デバイスといった周辺デバイスを制御する。デバイスインタフェース１４は、シリアルインタフェース２を制御する物理層として機能する。このデバイスインタフェース１４は、Port A, Port B, Port C, Port Dにそれぞれ対応する４つの物理層回路（Phy 0, Phy 1, Phy 2, Phy 3）１４１を含む。電源回路１５は、ホストシステム１内のコンポーネントに供給すべき動作電力VCC1、ストレージデバイス３に供給すべき動作電力VCC2を生成する。
【００３８】
ストレージデバイス３は、ホストシステムからのライトコマンドに応じてデータを不揮発性記憶メディアにライトし、ホストシステムからのリードコマンドに応じてデータを不揮発性記憶メディアからリードするように構成されている。ストレージデバイス３はハードディスクドライブ（ＨＤＤ）／ソリッドステートドライブ（ＳＳＤ）のいずれであってもよいが、以下では、ストレージデバイス３がソリッドステートドライブ（ＳＳＤ）として実現されている場合を想定する。
【００３９】
ストレージデバイス３は、Ｓｙｓｔｅｍ−ｏｎ−ａ−ｃｈｉｐ（ＳｏＣ）のようなコントローラ４と、ＮＡＮＤ型フラッシュメモリ５と、ダイナミックＲＡＭ（ＤＲＡＭ）６Ａ、６Ｂを含んでいてもよい。
【００４０】
コントローラ４は、ホストシステム１とのインタフェースに関する動作を実行するフロントエンドと、ＮＡＮＤ型フラッシュメモリ５の制御に関する動作を実行するバックエンドとを含む。
【００４１】
フロントエンドは、ホストインタフェース２１、ＣＰＵ２２、バッファマネージャ２３、ＤＲＡＭコントローラ２４、レジスタ２５等を含む。これらホストインタフェース２１、ＣＰＵ２２、バッファマネージャ２３、レジスタ２５はバス２０を介して相互接続される。
【００４２】
ホストインタフェース２１は、ホストシステム１から様々なコマンド、データ等を受信し、ホストシステム１にコマンド完了レスポンス、データ等を返送するように構成された回路であるホストインタフェース２１は、Port A, Port B, Port C, Port Dにそれぞれ対応する４つの物理層回路（Phy 0, Phy 1, Phy 2, Phy 3）２１１を含む。また、ホストインタフェース２１は、SASコントローラ２１２、ＰＣＩｅコントローラ２１３の双方を含んでいてもよい。ストレージデバイス３がSAS規格に準拠するSASデバイスとして実現されている場合には、SASコントローラ２１２がイネーブルされる。一方、ストレージデバイス３がＰＣＩｅ規格に準拠するＰＣＩｅデバイスとして実現されている場合には、ＰＣＩｅコントローラ２１３がイネーブルされる。
【００４３】
ＣＰＵ２２は、フロントエンド側のコンポーネントの動作を制御するプロセッサである。バッファマネージャ２３は、ＤＲＡＭコントローラ２４を介してバッファとしてのＤＲＡＭ６Ａを制御する。
【００４４】
レジスタ２５は、ストレージデバイス３がサポートしている幾つかのリンクレートを示す能力情報を保持する。例えばSAS規格においては、この能力情報はPhy Capabilitiesと称される。レジスタ２５に格納されている能力情報は、この能力情報をシリアルインタフェース２を介してホストシステム１に送信するために使用される。
【００４５】
バックエンドは、ＮＡＮＤコントローラ３１、ＣＰＵ３２、バッファマネージャ３３、ＤＲＡＭコントローラ３４、ＮＡＮＤインタフェース制御回路（NAND Phy）３５等を含む。これらＮＡＮＤコントローラ３１、ＣＰＵ３２、バッファマネージャ３３は上述のバス２０を介して相互接続される。ＣＰＵ３２は、バックエンド側のコンポーネントの動作を制御するプロセッサである。バッファマネージャ３３は、ＤＲＡＭコントローラ３４を介してバッファとしてのＤＲＡＭ６Ｂを制御する。なお、一つのＤＲＡＭがフロントエンドとバックエンドとによって共有されてもよい。
【００４６】
ＮＡＮＤコントローラ３１は、ＮＡＮＤインタフェース制御回路（NAND Phy）３５を介してＮＡＮＤ型フラッシュメモリ５を制御する。
【００４７】
図２に示されるシーケンス図は、電力スロットリングモードおよびリンクレートを決定する処理の手順の概要を示す。図２のシーケンス図では、SASを例にして、電力スロットリングモードおよびリンクレートを決定する処理の手順の概要が示されている。
【００４８】
ホストシステム１は、ストレージデバイス３に動作電力を供給してストレージデバイス３をパワーオンする（ステップＳ１０）。ストレージデバイス３がパワーオンされると、ストレージデバイス３のコントローラ４は、ＮＡＮＤ型フラッシュメモリ５を動作可能にするために各種準備処理、ホストインタフェース２１を動作可能にするために必要な各種準備処理等を含む初期化シーケンスを実行する（ステップＳ１１）。従来では、最大消費電力の設定契機は、この初期化シーケンスのみであるのが一般的であると考えられる。ストレージデバイス３に許容される最大消費電力が固定されている従来のケースにおいては、例えば、SASの場合では、最も大きな最大消費電力を要する最も速い12Gbpsのリンクレートに合わせた電力設定が初期化シーケンスで行われる。例えば、最も速い12Gbpsのリンクレートに対応する最も大きな最大消費電力が12Wであるならば、ストレージデバイス３の最大消費電力の値は常に12Wに設定される。
【００４９】
本実施形態では、前回のパワーサイクル等においてホストシステム１によってユーザ指定のモードに適した特定の電力スロットリングモードが既に指定されていたならば、コントローラ４は、この特定の電力スロットリングモードに合致（マッチ）する最大消費電力を、ストレージデバイス３の最大消費電力として設定してもよい。これにより、初期化シーケンスにおいて、ストレージデバイス３の最大消費電力は、現在のユーザ指定モードに適した電力スロットリングモードに対応する最大消費電力に制限される。
【００５０】
ホストシステム１は、シリアルインタフェースを介してホストシステム１とストレージデバイス３との間のリンク（接続）を確立するためのリンクリセットシーケンス（Link Reset Sequence）を、ストレージデバイス３と協同して実行する。なお、リンクリセットシーケンスは、ＮＶＭｅのトレーニングフェーズ（Training Phase）に相当する。
【００５１】
本実施形態では、前回のパワーサイクル等においてホストシステム１によって電力スロットリングモードが既に指定されていたならば、この指定された電力スロットリングモードにマッチする最大消費電力がこのリンクリセットシーケンスで設定されてもよい。これにより、ストレージデバイス３の最大消費電力は、現在のユーザ指定モードに適した電力スロットリングモードに対応する最大消費電力に制限される。
【００５２】
また、前回のパワーサイクル等においてホストシステム１によってリンクレートが既に指定されていたならば、使用すべきリンクレートをこの指定されたリンクレートに変更する処理がリンクリセットシーケンスで行われるともに、この指定されたリンクレートとこの指定された電力スロットリングモードの組み合わせにマッチする最大消費電力が、このリンクリセットシーケンスで設定されてもよい。これにより、ストレージデバイス３の最大消費電力を、この指定されたリンクレートとこの指定された電力スロットリングモードとの組み合わせに対応する最大消費電力に制限することが可能となる。
【００５３】
ホストシステム１は、必要に応じて、電力スロットリングモードパラメータ決定処理を実行する（ステップＳ１３）。この電力スロットリングモードパラメータ決定処理では、ホストシステム１は、ユーザによって指定されたモードと、リンクレート／最大消費電力／電力消費効率の対応関係情報とに基づいて、ユーザによって指定されたモードに適合する電力スロットリングモードを決定する。
【００５４】
この電力スロットリングモードパラメータ決定処理では、ホストシステム１は、電力スロットリングモードのみならず、ユーザによって指定されたモードと、リンクレート／最大消費電力／電力消費効率の対応関係情報とに基づいて、ユーザによって指定されたモードに適合するリンクレートをさらに決定することもできる。
【００５５】
電力スロットリングモードパラメータ決定処理を実行した後、ホストシステム１は、ストレージデバイス３と共同して、電力スロットリングシーケンスを実行して、ストレージデバイス３に、この決定した電力スロットリングモードに対応する電力スロットリング動作を実行すべきことを指示する（ステップＳ１４）。
【００５６】
電力スロットリングシーケンスでは、ホストシステム１は、決定された電力スロットリングモードを指定するモード指定情報をストレージデバイス３に送出する。この場合、例えばSASにおいては、ホストシステム１は、ストレージデバイス３に保持されている特定のMode Page（例えば、ベンダーユニークな特定のMode Page）を更新することによって、決定された電力スロットリングモードをストレージデバイス３に指示してもよい。
【００５７】
なお、ホストシステム１は、ストレージデバイス３がその電力スロットリングモードをホストシステム１によって指定された電力スロットリングモードに変更するタイミングとして、初期化シーケンスのタイミング、またはリセットシーケンスのタイミングのどちらかを指定することもできる。この場合、ホストシステム１は、この特定のMode Pageに、２つのフラグをさらに設定してもよい。
【００５８】
２つのフラグの一方は、この特定のMode Pageの内容に基づく電力スロットリング動作を初期化シーケンスのタイミングで実行するか否かを示す。２つのフラグの他方は、この特定のMode Pageの内容に基づく電力スロットリング動作をリセットシーケンスのタイミングで実行するか否かを示す。ホストシステム１は、これらフラグを設定することにより、ストレージデバイス３に、初期化シーケンスのタイミングまたはリセットシーケンスのタイミングで、その電力スロットリング動作を、ホストシステム１から指示された電力スロットリングモードで実行させることができる。
【００５９】
電力スロットリングシーケンスでは、ホストシステム１は、モード指定情報のみならず、決定されたリンクレートを指定するリンクレート指定情報もストレージデバイス３に送出してもよい。例えばSASにおいては、ホストシステム１は、ストレージデバイス３に保持されているMode Page 19h (Subpage 01h)を変更するためのMode Select コマンドを使用して、決定されたリンクレートをストレージデバイス３に通知してもよい。
【００６０】
Mode Page 19h (Subpage 01h)においては、最小リンクレート（Minimum Link Rate）と最大リンクレート（Maximum Link Rate）とを規定する情報（SAS phy mode descriptor list）が存在する。最大リンクレート（Maximum Link Rate）は、ストレージデバイス３がサポートしている複数種のリンクレートの内で、ストレージデバイス３にその使用が許可されているリンクレートの最大値を示す。最小リンクレート（Minimum Link Rate）は、ストレージデバイス３がサポートしている複数種のリンクレートの内で、ストレージデバイス３にその使用が許可されるリンクレートの最小値を示す。
【００６１】
例えば、決定されたリンクレートが、Mode Page 19h (Subpage 01h)に現在設定されている最大リンクレートよりも低いリンクレートであるならば、ホストシステム１は、Mode Select コマンドを使用して、最大リンクレートを、決定されたリンクレートに変更してもよい。あるいは、ホストシステム１は、決定されたリンクレートに基づいて、現在の最小リンクレートと現在の最大リンクレートの双方を変更してもよい。
【００６２】
図３は、ユーザによって指定可能なモードの例を示す。
【００６３】
ユーザは、設定アプリケーションプログラム１２１Ａによってディスプレイに表示されるユーザインタフェースを通じて、パフォーマンスモード（Performance Mode）、消費電力削減モード（Power Consumption Reduction Mode）、ピーク電力削減モード（Peak Power Reduction Mode）のいずれかを指定することができる。
【００６４】
パフォーマンスモード（Performance Mode）は、性能を優先する上述の第１モードである。パフォーマンスモード（Performance Mode）がユーザによって指定されたならば、ホストシステム１は、ストレージデバイス３のリンクレート／最大消費電力／電力消費効率の対応関係情報に基づいて、ストレージデバイス３がサポートしている電力スロットリングモードの内で、性能を最優先する電力スロットリングモード（上述の第１の電力スロットリングモード）を、パフォーマンスモード（Performance Mode）に適合する電力スロットリングモードとして選択する。
【００６５】
消費電力削減モード（Power Consumption Reduction Mode）は、消費電力の低減を優先する上述の第２モードである。消費電力削減モード（Power Consumption Reduction Mode）がユーザによって指定されたならば、ホストシステム１は、ストレージデバイス３のリンクレート／最大消費電力／電力消費効率の対応関係情報に基づいて、ストレージデバイス３がサポートしている電力スロットリングモードの内で、電力消費効率が優れている電力スロットリングモード、より詳しくは総消費電力が最も少なくなる電力スロットリングモードを、消費電力削減モード（Power Consumption Reduction Mode）に適合する電力スロットリングモードとして選択する。
【００６６】
ピーク電力削減モード（Peak Power Reduction Mode）は、ピーク電力の抑制を優先する上述の第３のモードである。ピーク電力削減モード（Peak Power Reduction Mode）は、ピーク電力が一定以上の値にならないようにするために使用される。ピーク電力削減モード（Peak Power Reduction Mode）がユーザによって指定された場合には、有効範囲内で、ピーク電力の上限をユーザにさらに指定させてもよい。
【００６７】
ピーク電力削減モード（Peak Power Reduction Mode）がユーザによって指定された場合には、ホストシステム１は、ストレージデバイス３のリンクレート／最大消費電力／電力消費効率の対応関係情報に基づいて、ストレージデバイス３がサポートしている電力スロットリングモードの内で、ピーク電力の低減を優先する電力スロットリングモード（上述の第２の電力スロットリングモード）を、ピーク電力削減モード（Peak Power Reduction Mode）に適合する電力スロットリングモードとして選択する。
【００６８】
図４は、ストレージデバイス３のリンクレート／最大消費電力／電力消費効率の対応関係情報の例を示す。
【００６９】
この情報は、ストレージデバイス３が第１の電力スロットリングモード（Power_Level_Mode (A)）に設定された場合におけるリンクレートと最大消費電力と電力消費効率との対応関係と、ストレージデバイス３が第２の電力スロットリングモード（Power_Level_Mode (B)）に設定された場合におけるリンクレートと最大消費電力と電力消費効率との対応関係とを示す。
【００７０】
図４では、一例として、シリアルインタフェース２が２つのポート（Port A, Port B）を含む場合が示されている。上述したように、図４の対応関係情報は、ホストシステム１がストレージデバイス３のリンクレートおよび消費電力等を計測することによって取得してもよいし、ホストシステム１が、Mode PageまたはGet Featureのようなストレージデバイス３のインタフェースを介して、ストレージデバイス３から取得してもよい。
【００７１】
図４の各欄に示した設定値は一例である。図４の例においては，性能を優先する第１の電力スロットリングモード（Power_Level_Mode (A)）とピーク電力低減を優先する第２の電力スロットリングモード（Power_Level_Mode (B)）とでは、性能を優先するか、ピーク電力の低減を優先するかで、12Gbpsのリンクレートが含まれた場合の電力スロットリング設定値（最大消費電力）が異なっている。
【００７２】
図４の上部に示されているように、性能を優先する第１の電力スロットリングモード（Power_Level_Mode (A)）に対応する対応関係情報においては、２つのポート（Port A, Port B）のリンクレートの組み合わせ毎に、電力スロットリング設定値（最大消費電力）と、電力消費効率（IOPS/W）と、性能比との対応関係が規定されている。
【００７３】
図４の下部に示されているように、ピーク電力低減を優先する第２の電力スロットリングモード（Power_Level_Mode (B)）に対応する対応関係情報においても、２つのポート（Port A, Port B）のリンクレートの組み合わせ毎に、電力スロットリング設定値（最大消費電力）と、電力消費効率（IOPS/W）と、性能比との対応関係が規定されている。
【００７４】
性能を優先する第１の電力スロットリングモード（Power_Level_Mode (A)）では、Port A, Port Bがそれぞれ6Gbps, 6Gbpsのリンクレートでは、最大消費電力は9Wに設定される。この場合の電力消費効率（IOPS/W）は、ある値“Ａ”である。Port A, Port Bの一方が6Gbpsのリンクレートで, 他方が12Gbpsのリンクレートの組み合わせにおいては、最大消費電力は12Wに設定される。この場合の電力消費効率（IOPS/W）は、ある値“Ｂ”である。Port A, Port Bがそれぞれ12Gbps, 12Gbpsのリンクレートの組み合わせでは、最大消費電力は12Wに設定される。この場合の電力消費効率（IOPS/W）は、ある値“Ｄ”である。
【００７５】
ピーク電力低減を優先する第２の電力スロットリングモード（Power_Level_Mode (B)）では、Port A, Port Bがそれぞれ6Gbps, 6Gbpsのリンクレートでは、最大消費電力は9Wに設定される。この場合の電力消費効率（IOPS/W）は、値“Ａ”である。Port A, Port Bの一方が6Gbpsのリンクレートで, 他方が12Gbpsのリンクレートでは、最大消費電力は9Wに設定される。この場合の電力消費効率（IOPS/W）は、ある値“Ｃ”である。Port A, Port Bがそれぞれ12Gbps, 12Gbpsのリンクレートの組み合わせでは、最大消費電力は9Wに設定される。この場合の電力消費効率（IOPS/W）は、ある値“E”である。
【００７６】
図４では、電力消費効率Ａ，Ｂ，Ｃ，Ｄ，Ｅの大小関係は、Ａ＜Ｂ＜Ｃ＜Ｄ＜Ｅである場合が想定されている。しかし、この大小関係はあくまで一例であり、もし、たとえば、12Gbps, 12Gbps, 9Wの組み合わせが使用された場合に、ストレージデバイス３の性能が著しく低下されたならば、12Gbps, 12Gbps, 9Wの組み合わせに対応する電力消費効率（IOPS/W）は、12Gbps, 12Gbps, 12Wの組み合わせに対応する電力消費効率（IOPS/W）よりも低下される可能性がある。この場合、図４において括弧内に示されているように、12Gbps, 12Gbps, 9Wの組み合わせに対応する電力消費効率（IOPS/W）が“Ｄ”となり、12Gbps, 12Gbps, 12Wの組み合わせに対応する電力消費効率（IOPS/W）が“E”となる。
【００７７】
このように、リンクレートと最大消費電力との複数の組み合わせにそれぞれ対応する電力消費効率（IOPS/W）は、ストレージデバイス３として利用されるストレージデバイスの機種毎に異なる。
【００７８】
ストレージデバイス３の消費電力を削減するためには、電力スロットリング設定値（最大消費電力）だけでなく、電力消費効率も考慮することが好ましい。単純に第１の電力スロットリングモード（Power_Level_Mode (A)）よりも第２の電力スロットリングモード（Power_Level_Mode (B)）のほうが電力消費効率が良ければ、ユーザからPower Consumption Reduction Modeを指定されている場合に単純に第２の電力スロットリングモード（Power_Level_Mode (B)）を選択すれば良い。しかし、そうでない場合（性能優先の方が電力消費効率の面では良い場合）もあり得る。したがって、第１の電力スロットリングモード（Power_Level_Mode (A)）と第２の電力スロットリングモード（Power_Level_Mode (B)）の中から、電力消費効率が優れている電力スロットリングモードを選択することが必要となる。
【００７９】
また、Power Consumption Reduction Modeに適合した電力スロットリングモードをより精度よく選択できるようにするために、Ｉ／Ｏキュー１２４Ｂに蓄積されている、処理すべきＩ／Ｏの数を考慮してもよい。
【００８０】
ここで、処理すべきＩ／Ｏの数とは、ストレージデバイス３に送出されるべきＩ／Ｏ（Ｉ／Ｏ要求）の数を意味する。たとえば、処理すべきＩ／Ｏの数が比較的少ない場合には、ストレージデバイス３の最大消費電力を第１の電力スロットリングモード（Power_Level_Mode (A)）に対応する比較的高い最大消費電力に制限した方が、処理すべきＩ／Ｏ数に対して必要とされる総消費電力を削減できる場合もある。したがって、処理すべきＩ／Ｏの数を考慮することにより、Power Consumption Reduction Modeに適合した電力スロットリングモードをより精度よく選択することが可能となる。
【００８１】
図５のフローチャートは、ホストシステム１によって実行される電力スロットリングモード決定処理の手順を示す。
【００８２】
上述したように、ホストシステム１のＣＰＵ１１は、ストレージデバイス３の振る舞いを制御するコントローラとして機能する。このＣＰＵ１１は、電力スロットリングモード設定モジュール１２４Ａを実行することによって、以下の電力スロットリングモード決定処理を行う。この電力スロットリングモード決定処理は、図３に示したモードのいずれかがユーザからホストシステム１に対して指定されている事、図４に示した対応関係情報を計測もしくはストレージデバイス３からの取得によりホストシステム１が取得している事が前提となる。
【００８３】
ＣＰＵ１１は、ユーザによって指定されたモード（消費電力モード）が、パフォーマンスモード（Performance Mode）、消費電力削減モード（Power Consumption Reduction Mode）、またはピーク電力削減モード（Peak Power Reduction Mode）のいずれであるかを判定する（ステップＳ２１）。
【００８４】
ユーザによって指定されたモードがパフォーマンスモード（Performance Mode）であるならば、ＣＰＵ１１は、図４に示した対応関係情報に基づいて、最大消費電力がより大きい電力スロットリングモード、つまり性能優先で電力スロットリングする第１の電力スロットリングモード（ここでは、Power_Level_Mode (A)）を、ユーザによって指定されたモード（Performance Mode）に適合する電力スロットリングモードとして決定する（ステップＳ２２）。
【００８５】
ユーザによって指定されたモードがピーク電力削減モード（Peak Power Reduction Mode）であるならば、ＣＰＵ１１は、図４に示した対応関係情報に基づいて、最大消費電力がより小さい電力スロットリングモード、つまりピーク電力低減優先で電力スロットリングする第２の電力スロットリングモード（Power_Level_Mode (B)）を、ユーザによって指定されたモード（ここでは、Peak Power Reduction Mode）に適合する電力スロットリングモードとして決定する（ステップＳ２３）。
【００８６】
このように、ユーザ指定のモードがPerformance Modeであれば性能優先で電力スロットリングするPower_Level_Mode (A)を、Peak Power Reduction Modeであればピーク電力低減優先で電力スロットリングするPower_Level_Mode (B)を選択すれば良いが、ユーザによってPower Consumption Reduction Modeが指定された場合は、電力スロットリングの設定値（最大消費電力）だけでなく、電力消費効率も考慮に入れることが好ましい。なぜなら、たとえ使用される最大消費電力が十分に低い場合であっても、もしこれによってストレージ性能が著しく低下したならば、ストレージデバイス３の電力消費効率が低下し、結果的にストレージデバイス３の総消費電力を削減できなくなる場合があるからである。
【００８７】
このため、ユーザによってPower Consumption Reduction Modeが指定された場合は、ＣＰＵ１１は、図４に示した対応関係情報に基づいて、Power_Level_Mode (A)、Power_Level_Mode (B)の内、電力消費効率が高い電力スロットリングモードを、ユーザによって指定されたモード（ここでは、Power Consumption Reduction Mode）に適合する電力スロットリングモードとして決定する。
【００８８】
より詳しくは、ＣＰＵ１１は、図４の対応関係情報に基づいて、Power_Level_Mode (B)の方がPower_Level_Mode (A)よりも電力消費効率が優れているか否かを判定する（ステップＳ２４）。ステップＳ２４では、ＣＰＵ１１は、リンクレートと最大消費電力との全ての組み合わせの中から、最も電力消費効率（IOPS/W）が高い組み合わせを選択し、この選択した組み合わせが属している電力スロットリングモードを、電力消費効率が優れている電力スロットリングモードとして決定してもよい。
【００８９】
例えば、図４に示されているように、もしPower_Level_Mode (A)に属する（12Gbps, 12Gbps, 12W）の組み合わせに対応する電力消費効率がＤで、Power_Level_Mode (B)に属する（12Gbps, 12Gbps, 9W）の組み合わせに対応する電力消費効率がＥ（＞Ｄ）であるならば、ＣＰＵ１１は、Power_Level_Mode (B)の方が電力消費効率が優れていると判定する。
【００９０】
しかし、ストレージデバイス３として使用されるストレージデバイスの機種によっては、（12Gbps, 12Gbps, 9W）の組み合わせを使用した場合に性能が著しく低下し、これによって、図４の括弧内に記載されているように、Power_Level_Mode (A)に属する（12Gbps, 12Gbps, 12W）の組み合わせに対応する電力消費効率がＥで、Power_Level_Mode (B)に属する（12Gbps, 12Gbps, 9W）の組み合わせに対応する電力消費効率がＤとなる場合がある。この場合、ＣＰＵ１１は、使用される最大電力が大きいPower_Level_Mode (A)の方が電力消費効率が優れていると判定する。
【００９１】
もしPower_Level_Mode (B)の方がPower_Level_Mode (A)よりも電力消費効率が優れているならば（ステップＳ２４のＹｅｓ）、ＣＰＵ１１は、ピーク電力低減優先で電力スロットリングするPower_Level_Mode (B)）を、ユーザによって指定されたモード（ここでは、Power Consumption Reduction Mode）に適合する電力スロットリングモードとして決定する（ステップＳ２３）。
【００９２】
一方、もしPower_Level_Mode (B)の方がPower_Level_Mode (A)よりも電力消費効率が優れていない、つまりPower_Level_Mode (A)の方がPower_Level_Mode (B)よりも電力消費効率が優れているならば（ステップＳ２４のＮｏ）、ＣＰＵ１１は、性能優先で電力スロットリングするPower_Level_Mode (A)）を、ユーザによって指定されたモード（ここでは、Power Consumption Reduction Mode）に適合する電力スロットリングモードとして決定する（ステップＳ２２）。
【００９３】
図６のフローチャートは、ホストシステム１によって実行される電力スロットリングモード決定処理の別の手順を示す。
【００９４】
図６のフローチャートでは、電力消費効率のみならず、Ｉ／Ｏキュー１２４Ｂに蓄積されている処理すべきＩ／Ｏ数も考慮して、使用すべき電力スロットリングモードが決定される。図６のフローチャートでは、図５のステップＳ２４の処理の後に、ステップＳ２５の処理が追加されている。
【００９５】
もしPower_Level_Mode (B)の方がPower_Level_Mode (A)よりも電力消費効率が優れているならば（ステップＳ２４のＹｅｓ）、ＣＰＵ１１は、ピーク電力低減優先で電力スロットリングするPower_Level_Mode (B)）を、ユーザによって指定されたモード（ここでは、Power Consumption Reduction Mode）に適合する電力スロットリングモードとして決定する（ステップＳ２３）。
【００９６】
一方、もしPower_Level_Mode (B)の方がPower_Level_Mode (A)よりも電力消費効率が優れていない、つまりPower_Level_Mode (A)の方がPower_Level_Mode (B)よりも電力消費効率が優れているならば（ステップＳ２４のＮｏ）、ＣＰＵ１１は、処理すべきＩ／Ｏ数とPower_Level_Mode (A)の電力消費効率とPower_Level_Mode (B)の電力消費効率とに基づいて、Power_Level_Mode (A)で一時的に動作した方が、処理すべきＩ／Ｏ数に対して必要とされる総消費電力を抑えられるか否かを判定する（ステップＳ２５）。
【００９７】
ステップＳ２５では、Power_Level_Mode (A)、Power_Level_Mode (B)の各々について、ＣＰＵ１１は、［処理すべきＩ／Ｏ数］÷［電力消費効率(IOPS/W)］から、処理すべきＩ／Ｏ数に対して必要となる総消費電力を計算し、処理すべきＩ／Ｏ数に対して必要とされる総消費電力が小さい電力スロットリングモードを特定する。
【００９８】
もしPower_Level_Mode (A)を使用した方が処理すべきＩ／Ｏ数に対して必要とされる総消費電力が小さいならば（ステップＳ２５のＹｅｓ）、性能優先で電力スロットリングするPower_Level_Mode (A)）を、ユーザによって指定されたモード（ここでは、Power Consumption Reduction Mode）に適合する電力スロットリングモードとして決定する（ステップＳ２２）。
【００９９】
一方、もしPower_Level_Mode (B)を使用した方が処理すべきＩ／Ｏ数に対して必要とされる総消費電力が小さいならば（ステップＳ２５のＮｏ）、ピーク電力低減優先で電力スロットリングするPower_Level_Mode (B)）を、ユーザによって指定されたモード（ここでは、Power Consumption Reduction Mode）に適合する電力スロットリングモードとして決定する（ステップＳ２３）。
【０１００】
なお、図５、図６で説明したステップＳ２２、Ｓ２３では、ユーザ指定のモードと、図４の対応関係情報とに基づいて、ＣＰＵ１１は、使用すべき電力スロットリングモードのみならず、使用すべきリンクレートも決定してもよい。例えば、ユーザによって指定されたモードがPower Consumption Reduction Modeの場合には、ＣＰＵ１１は、リンクレートと最大消費電力との全ての組み合わせうち、最も電力消費効率が高い組み合わせに含まれるリンクレートを、使用すべきリンクレートとして決定してもよい。ユーザによって指定されたモードがPerformance Modeの場合には、ＣＰＵ１１は、リンクレートと最大消費電力との全ての組み合わせうち、最も性能の高い組み合わせに含まれるリンクレートを、使用すべきリンクレートとして決定してもよい。ユーザによって指定されたモードがPeak Power Reduction Modeの場合には、ＣＰＵ１１は、リンクレートと最大消費電力との全ての組み合わせうち、最も低く制限された最大消費電力を有する組み合わせに対応するリンクレートを、使用すべきリンクレートとして決定してもよい。
【０１０１】
図７のフローチャートは、ホストシステム１によって実行されるリンクレート決定処理の手順を示す。
【０１０２】
図７では、一例として、Power Consumption Reduction Modeがユーザによって指定された場合のリンクレート決定処理の手順が示されている。
【０１０３】
ＣＰＵ１１は、図４の対応関係情報に基づいて、最も電力消費効率がリンクレートを決定する（ステップＳ２７）。ステップＳ２７では、例えば、ＣＰＵ１１は、リンクレートと最大消費電力との全ての組み合わせのうち、最も電力消費効率が高い組み合わせを選択し、選択した組み合わせに含まれるリンクレートを最も電力消費効率がリンクレートとして決定する。ＣＰＵ１１は、決定されたリンクレートを指定するリンクレート指定情報をストレージデバイス３に通知する。
【０１０４】
この場合、決定されたリンクレートとストレージデバイス３に保持されている現在の最大リンクレート（Maximum Link Rate）とが異なる場合にのみ、ＣＰＵ１１は、決定されたリンクレートを指定するリンクレート指定情報をストレージデバイス３に送出して、現在の最大リンクレートを変更してもよい。
【０１０５】
例えば、SASを例にとると、決定されたリンクレートが現在の最大リンクレート（Maximum Link Rate）とが異なるならば（ステップＳ２８のＮｏ）、ＣＰＵ１１は、Mode Select コマンドを使用して、Mode Page 19h (Subpage 01h)に現在設定されている最大リンクレートを、決定されたリンクレートに変更する（ステップＳ２９）。ステップＳ２９では、ＣＰＵ１１は、最小リンクレートおよび最大リンクレートの双方を指定するリンクレート指定情報を含むMode Select コマンドをストレージデバイス３に送出してもよい。リンクレート指定情報によって指定される最大リンクレートは、上述の決定されたリンクレートを示す。リンクレート指定情報によって指定される最小リンクレートは、Mode Page 19h (Subpage 01h)に現在設定されている最小リンクレートと同じリンクレートであってもよい。
【０１０６】
図８は、決定された電力スロットリングモードをストレージデバイス３に設定するために使用されるモードページの例を示す。
【０１０７】
ここでは、SASを例に、電力スロットリングモードの設定のためのインタフェースの例を説明する。SASでは、Mode Selectコマンドでストレージデバイス３の様々な動作をチューニングする実装が一般的で、本実施形態における電力スロットリングモードの設定においても、電力スロットリングモードの設定のためのインタフェースとして、ベンダーユニークなPAGE CODE を有するモードページが使用される。図８では、例として、PAGE CODE (36h)を有するベンダーユニークなモードページが示されている。
【０１０８】
様々なモードページがストレージデバイス３の例えばＤＲＡＭ等に保持されている。図８に示すPAGE CODE (36h)のモードページはこれらモードページの一つである。
【０１０９】
このPAGE CODE (36h)のモードページにおいては、例えば、バイト２のビット７が「Init_Set_En」ビットとして使用され、バイト２のビット６が「LR_Set_En」ビットとして使用され、バイト２のビット５−ビット０が「Power_Level_Mode」の指定に使用される。
【０１１０】
「Init_Set_En」ビットは、本Pageの「Power_Level_Mode」によって指定される電力スロットリングを初期化シーケンスで実行するか否かを指定する。「Init_Set_En」ビットの値（0bまたは1b）は以下を示す。
【０１１１】
0b: 初期化シーケンスで本Pageの「Power_Level_Mode」によって指定される電力スロットリングを実行しない。
【０１１２】
1b : 初期化シーケンスで本Pageの「Power_Level_Mode」によって指定される電力スロットリングを実行する。
【０１１３】
「LR_Set_En」ビットは、本Pageの「Power_Level_Mode」によって指定される電力スロットリングをリンクリセットシーケンスで実行するか否かを指定する。「LR_Set_En」ビットの値（0bまたは1b）は以下を示す。
【０１１４】
0b : リンクリセットシーケンスで本Pageの「Power_Level_Mode」によって指定される電力スロットリングを実行しない。
【０１１５】
1b : リンクリセットシーケンスで本Pageの「Power_Level_Mode」によって指定される電力スロットリングを実行する。
【０１１６】
ストレージデバイス３が、動作中の電力設定の変更が難しいハードウェアを使用している機種であるケースについては、ＣＰＵ１１は、Init_Set_En=1b, LR_Set_En=0bに設定し、そしてストレージデバイス３をパワーオフした後に再度パワーオンするパワーサイクルを実行し、これによって初期化シーケンスにおいて本Pageをストレージデバイス３に参照させる。これにより、ストレージデバイス３の初期化シーケンスのタイミングで、ストレージデバイス３にその電力スロットリングモードを、「Power_Level_Mode」によって指定された電力スロットリングに変更させることができる。
【０１１７】
パワーオンされている状態でストレージデバイス３の電力設定を変更したいケースにおいては、ＣＰＵ１１は、LR_Set_En=1bに設定する。これにより、リンクリセットシーケンスのタイミングで、ストレージデバイス３にその電力スロットリングモードを、「Power_Level_Mode」によって指定された電力スロットリングに変更させることができる。
【０１１８】
「Power_Level_Mode」は、上述のPower_Level_Mode (A)またはPower_Level_Mode (B)を指定する。
【０１１９】
「Init_Set_En」、「LR_Set_En」、「Power_Level_Mode」の内容はMode selectコマンドによって変更することができる。
【０１２０】
図９は、ホストシステム１がストレージデバイス３に電力スロットリングモードを設定してからストレージデバイス３がこの電力スロットリングモードに対応する電力設定を実行するまでの処理の手順を示す。
【０１２１】
図９のシーケンス図は、図２のステップＳ１４で説明した電力スロットリングシーケンス内の処理を示す。
【０１２２】
ホストシステム１のＣＰＵ１１は、「Init_Set_En」、「LR_Set_En」の設定に基づき、電力スロットリング変更シーケンスの実施の要否を判定する（ステップＳ３０）。「Init_Set_En」=1bまたは「LR_Set_En」=1bに設定されているならば、ホストシステム１のＣＰＵ１１とストレージデバイス３内のコントローラ４とによって以下の処理が実行される。
【０１２３】
ＣＰＵ１１は、PAGE CODE (36h)のモードページの「Power_Level_Mode」フィールドに、決定された電力スロットリングモード（Power_Level_Mode (A)またはPower_Level_Mode (B)）を設定して、この決定された電力スロットリングモードで動作すべきことをストレージデバイス３に指示する（ステップＳ３１）。ストレージデバイス３のコントローラ４は、応答をホストシステム１に返す（ステップＳ３２）。
【０１２４】
決定されたリンクレートとストレージデバイス３に保持されている現在の最大リンクレート（Maximum Link Rate）とが異なる場合、ＣＰＵ１１は、Select コマンドを使用して、Mode Page 19h (Subpage 01h)に現在設定されている最大リンクレートを決定されたリンクレートに変更する（ステップＳ３３）。ストレージデバイス３のコントローラ４は、応答をホストシステム１に返す（ステップＳ３４）。
【０１２５】
次いで、ＣＰＵ１１は、ストレージデバイス３の電力設定の変更を初期化シーケンスまたはリンクリセットシーケンスのいずれのタイミングで行うかを判定する（ステップＳ４０）。
【０１２６】
ストレージデバイス３の電力設定の変更を初期化シーケンスで実行する場合、つまり「LR_Set_En」=0bの場合は、ＣＰＵ１１は、ストレージデバイス３をパワーオフした後に再度パワーオンするパワーサイクルを実行する（ステップＳ４１）。ストレージデバイス３がパワーオンされると、ストレージデバイス３のコントローラ４は、初期化シーケンスを開始する（ステップＳ４２）。
【０１２７】
この初期化シーケンスでは、図１０に示されているように、コントローラ４は、PAGE CODE (36h)のモードページ（つまり、モードページ36h）の「Init_Set_En」を参照して、「Init_Set_En」が0bまたは1bのいずれであるかを判定する（ステップＳ４２）。
【０１２８】
「Init_Set_En」=0bならば、コントローラ４は、ストレージデバイス３に許容される最大消費電力を、Mode Page 19h (Subpage 01h)に現在設定されている最大リンクレートに合致する最大消費電力に設定する（ステップＳ６１）。ステップＳ６１では、もしデフォルトの電力スロットリングモードがPower_Level_Mode (A)であるならば、コントローラ４は、Power_Level_Mode (A)で使用可能な幾つかの最大消費電力の中から現在の最大リンクレートに合致する最大消費電力を選択し、ストレージデバイス３に許容される最大消費電力を、この選択した最大消費電力に設定してもよい。
【０１２９】
「Init_Set_En」=1bならば、コントローラ４は、ストレージデバイス３に許容される最大消費電力を、Mode Page 19h (Subpage 01h)に現在設定されている最大リンクレートとモードページ36 hで指定された電力スロットリングモードとの組み合わせに合致する最大消費電力に設定する（ステップＳ６２）。そして、以降、コントローラ４は、Mode Page 19h (Subpage 01h)に現在設定されている最大リンクレートとモードページ36 hで指定された電力スロットリングモードとを使用して、ストレージデバイス３の動作を制御する。
【０１３０】
次に、図９に戻り、ストレージデバイス３の電力設定の変更をリンクリセットシーケンスで実行する場合、つまり「LR_Set_En」=1bの場合は、ＣＰＵ１１は、シリアルインタフェース２を介したホストシステム１とストレージデバイス３との間のリンクを再確立するために、リンクリセットシーケンスを再度開始する（ステップＳ５０）。ステップＳ５０では、ストレージデバイス３のコントローラ４は、ストレージデバイス３に許容される最大消費電力を、Mode Page 19h (Subpage 01h)に現在設定されている最大リンクレートとモードページ36 hで指定された電力スロットリングモードとの組み合わせに合致する最大消費電力に設定する（ステップＳ６２）。そして、以降、コントローラ４は、Mode Page 19h (Subpage 01h)に現在設定されている最大リンクレートとモードページ36hで指定された電力スロットリングモードとを使用して、ストレージデバイス３の動作を制御する。
【０１３１】
なお、Init_Set_En」=0b且つLR_Set_En」=0bに設定されているならば、ホストシステム１のＣＰＵ１１は電力設定に関する処理を何も実行しない（ステップＳ４０）。
【０１３２】
図１１は、ホストシステム１とストレージデバイス３とによって実行されるリセットシーケンス内で行われる電力設定処理の手順を示す。
【０１３３】
図１１では、SASのリンクリセットシーケンス内のどの契機で電力スロットリングが実行されるべきかを示している。図１１では、Identify交換によってリンクが確立される直前の何もパケットが交換されない安定しているタイミングで、電力の設定を変更する流れを示している。
【０１３４】
まず、ホストシステム１のＣＰＵ１１は、相手デバイスが存在するか否かを確認するための信号（COMINT）をシリアルインタフェース２を介して送信する（ステップＳ７１）。シリアルインタフェース２にストレージデバイス３が接続されているならば、ストレージデバイス３のコントローラ４は、ストレージデバイス３が存在することをホストシステム１に通知するために、信号（COMINT）をシリアルインタフェース２を介してホストシステム１に返す（ステップＳ７２）。
【０１３５】
次いで、ＣＰＵ１１は、相手デバイスがSASデバイスであるか否かを確認するための信号（COMSAS）をシリアルインタフェース２を介して送信する（ステップＳ７３）。ストレージデバイス３がSASデバイスであるならば、ストレージデバイス３のコントローラ４は、ストレージデバイス３がSASデバイスであることをホストシステム１に通知するために、信号（COMSAS）をシリアルインタフェース２を介してホストシステム１に返す（ステップＳ７４）。
【０１３６】
次いで、ＣＰＵ１１は、使用すべきリンクレートを決定するためのスピードネゴシエーションを、ストレージデバイス３と共同して実行する（ステップＳ７５）。スピードネゴシエーションの処理では、ストレージデバイス３のコントローラ４は、ストレージデバイス３の最小リンクレートおよび最大リンクレートを示す能力情報（Phy Capabilities）をホストシステム１に送出するPhy Capability通知処理を行う。スピードネゴシエーションの処理では、例えば、データ転送が正常に実行可能か否かを確認する動作が、ストレージデバイス３の最小リンクレートから最大リンクレートまでリンクレートを段階的にアップしながら実行されてもよい。この場合、データ転送が正常に実行可能であることが確認された最も速いリンクレートが、ホストシステム１とストレージデバイス３との間のデータ転送に使用すべきリンクレートが決定される。これにより、使用すべきリンクレートは、ストレージデバイス３の最大リンクレートまでに制限できる。本実施形態では、図９で説明したように、Mode Page 19h (Subpage 01h)に設定されている最大リンクレートをユーザ指定のモードに適合するリンクレートに変更することができるので、ユーザ指定のモードに適合する最大リンクレートを示す能力情報（Phy Capabilities）をストレージデバイス３からホストシステム１に送ることができる。よって、ユーザ指定のモードに適合するリンクレートを使用することが可能となる。
【０１３７】
スピードネゴシエーションの終了からIdentify交換までの期間は何もパケットが交換されない。この安定しているタイミングで、ストレージデバイス３のコントローラ４は、電力設定の変更を行うことができる。
【０１３８】
すなわち、コントローラ４は、まず、モードページ36hのLR_Set_Enを参照して、消費電力設定の要否を判定する（ステップＳ７６）。
【０１３９】
LR_Set_En=0bであれば、コントローラ４は、電力設定に関する処理を何も実行しない（ステップＳ７７）。
【０１４０】
LR_Set_En=1bであれば、コントローラ４は、ストレージデバイス３に許容される最大消費電力を、スピードネゴシエーションによって決定されたリンクレートとモードページ36hの「Power_Level_Mode」によって指定される電力スロットリングモードの組み合わせに適合する最大消費電力に設定する（ステップＳ７８）。
【０１４１】
この後、ホストシステム１を一意に識別可能な識別子およびストレージデバイス３を一意に識別可能な識別子がホストシステム１とストレージデバイス３との間で交換され（ステップＳ７９、Ｓ８０）、これによってホストシステム１とストレージデバイス３との間の接続（リンク）が確立される。
【０１４２】
図１２のフローチャートは、ストレージデバイス３によって実行されるPhy capabilities制御処理の手順を示す。
【０１４３】
このPhy capabilities制御処理は、Mode Page 19h (Subpage 01h)に設定されている最大／最小リンクレートを考慮して、適切な能力情報（Phy Capabilities）を作成するために実行される。
【０１４４】
ストレージデバイス３のコントローラ４は、まず、Phy Capabilities作成用のワーク領域をＤＲＡＭ６Ａのようなメモリ上に確保する（ステップＳ１０１）。
【０１４５】
次いで、コントローラ４は、各Portの最小リンクレートおよび最大リンクレートをMode Page 19h (Subpage 01h)を通じて参照する（ステップＳ１０２）。図１３に示されているように、Mode Page 19h (Subpage 01h)においては、各ポートの最小リンクレート（Minimum Link Rate）と最大リンクレート（Maximum Link Rate）とを規定する情報（SAS phy mode descriptor list）が存在する。SAS phy mode descriptor list において、SAS phy mode descriptor list (first)は、最初のPort 1（例えば、図４のPort A）の最小リンクレート（Minimum Link Rate）と最大リンクレート（Maximum Link Rate）とを示す。同様に、SAS phy mode descriptor list (Last)は、最後のPort n（例えば、図４のPort B）の最小リンクレート（Minimum Link Rate）と最大リンクレート（Maximum Link Rate）とを示す。
【０１４６】
コントローラ４は、処理対象のリンクレートを最小リンクレートから最大リンクレートまでリンクレートを段階的に更新しながらデフォルトの能力情報（Phy Capabilities）を更新していくループ処理を実行する（ステップＳ１０３）。
【０１４７】
デフォルトの能力情報（Phy Capabilities）は、ストレージデバイス３のハードウェアがサポートしている複数のリンクレートを示す。SASにおいては、図１４に示す能力情報（Phy Capabilities）が規定されている。「G1 WITHOUT SSC」、「G1 WITH SSC」は、世代1(G1)に対応する1.5Gbpsのリンクレートに関する能力ビットである。「G2 WITHOUT SSC」、「G2 WITH SSC」は、世代2(G2)に対応する3Gbpsのリンクレートに関する能力ビットである。「G3 WITHOUT SSC」、「G3 WITH SSC」は、世代3(G3)に対応する6Gbpsのリンクレートに関する能力ビットである。「G4 WITHOUT SSC」、「G4 WITH SSC」は、世代4(G4)に対応する12Gbpsのリンクレートに関する能力ビットである。ここで、WITHOUT SSCは、信号の周波数拡散（SSC: Spread Spectrum Clocking）を行う能力が無いことを表し、WITH SSCは、信号の周波数拡散（SSC: Spread Spectrum Clocking）を行う能力があることを表している。
【０１４８】
例えば、ストレージデバイス３が、1.5Gbps, 3Gbps, 6Gbps, 12Gbpsの４種類のリンクレートの全てをサポートし、且つ全てのリンクレートで信号の周波数拡散を行う能力を有しているならば、デフォルトの能力情報（Phy Capabilities）においては、「G1 WITHOUT SSC」、「G1 WITH SSC」、「G2 WITHOUT SSC」、「G2 WITH SSC」、「G3 WITHOUT SSC」、「G3 WITH SSC」、「G4 WITHOUT SSC」、「G4 WITH SSC」にそれぞれ対応する８つの能力ビットは１に設定される。
【０１４９】
ステップＳ１０３のループ処理では、コントローラ４は、デフォルトの能力情報（Phy Capabilities）内の８つの能力ビットの内、最小リンクレートと最大リンクレートとによって規定される範囲に属する能力ビットを除く他のビットそれぞれをマスクする処理を実行する。例えば、ホストシステム１からのリンクレート指定情報によって最大リンクレートが6Gbpsに変更されている場合には、コントローラ４は、「G4 WITHOUT SSC」、「G4 WITH SSC」にそれぞれ対応する２つの能力ビットをマスクして、これら各能力ビットを０に設定する。
【０１５０】
ステップＳ１０３のループ処理は、ステップＳ２０１、Ｓ２０２、Ｓ２０３、Ｓ２０４の処理を繰り返すことによって実行される。
【０１５１】
ステップＳ２０１では、コントローラ４は、処理対象のリンクレートに対応する能力ビット（WITH SSC、WITHOUT SSCそれぞれに対応する2bit）をデフォルトの能力情報（Phy Capabilities）から抜き出す。ステップＳ２０２では、コントローラ４は、ベンダーユニークなモードページ（例えば、Mode Page 19E5）に保持されているSSC ON/OFF制限パラメータに基づいて、処理対象のリンクレートに対するSSCのON/OFF制限が必要か否か、つまり信号の周波数拡散を行うか否かを決定する（ステップＳ２０２）。SSC ON/OFF制限パラメータは、信号を周波数拡散を行うか否かを示すための情報である。信号の周波数拡散を行わない場合は、ステップＳ２０３で、コントローラ４は、抜き出した２つの能力ビット（WITH SSC、WITHOUT SSC）の内、WITH SSCに対応する能力ビットをマスクして、この能力ビットを０に設定する。つまり、コントローラ４は、信号の周波数拡散を実行する能力を有すること示すビット（WITH SSCに対応する能力ビット）をマスクして、抜き出した２つの能力ビット（WITH SSC、WITHOUT SSC）を更新する。信号の周波数拡散を行う場合は、ステップＳ２０３の処理はスキップされる。
【０１５２】
そして、ステップＳ２０４で、コントローラ４は、マスク結果に基づいて、ワーク領域の内容を更新する。
【０１５３】
ステップＳ２０１、Ｓ２０２、Ｓ２０３、Ｓ２０４の処理が繰り返されることによって、ワーク領域上に新たな能力情報が作成される。
【０１５４】
ステップＳ１０３のループ処理が完了すると、コントローラ４は、図１４の能力情報（Phy Capabilities）のフォーマットに従って、ワーク領域に“１”のスタートビットを立てる（ステップＳ１０４）。換言すれば、コントローラ４は、ワーク領域上の新たな能力情報の先頭に “１”のスタートビットを挿入する。
【０１５５】
そして、コントローラ４は、ワーク領域上の新たな能力情報に含まれる“１”のビット数、つまりワーク領域に含まれる“１”のビット数が偶数か奇数かを判定する（ステップＳ１０５）。ワーク領域に含まれる“１”のビット数が奇数であるならば、コントローラ４は、図１４の能力情報（Phy Capabilities）のフォーマットに従って、新たな能力情報の末尾に “１”のパリティを付加する（ステップＳ１０６）。そして、コントローラ４は、ワーク領域上の新たな能力情報を、ストレージデバイス３の能力情報（Phy Capabilities）として図１のレジスタ２５に設定する（ステップＳ１０７）。レジスタ２５に設定された能力情報（Phy Capabilities）は、スピードネゴシエーションにおいてホストシステム１に送信される。
【０１５６】
図１５のフローチャートは、消費電力の低減を優先する消費電力削減モード（Power Consumption Reduction Mode）に適合した電力スロットリングモードおよびリンクレートを定期的に再決定する処理の手順を示す。
【０１５７】
ユーザによってPower Consumption Reduction Modeが指定されたケースにおいては、ホストシステム１のＣＰＵ１１は、図６のフローチャートで説明したように、電力消費効率と処理すべきＩ／Ｏ数の双方を考慮して、Power Consumption Reduction Modeに適合するリンクレートと電力スロットリングモードとを決定する。そして、ＣＰＵ１１は、この決定されたリンクレートを指定するリンクレート指定情報およびこの決定された電力スロットリングモードを指定するモード指定情報をストレージデバイス３に送出して、ストレージデバイス３の最大消費電力を制限するための電力スロットリング動作を、決定された電力スロットリングモードで実行すべきことを、ストレージデバイス３に指示する。
【０１５８】
ストレージデバイス３のコントローラ４は、ストレージデバイス３の最大消費電力を、受信されたリンクレート指定情報によって指定されるリンクレートと受信されたモード指定情報によって指定される電力スロットリングモードとの組み合わせに対応する最大消費電力に制限する電力スロットリング動作を実行する。さらに、コントローラ４は、リンクレート指定情報によって指定されるリンクレートでホストシステム１とストレージデバイス３との間のリンクが確立されるように、リンクレート指定情報によって指定されるリンクレートを最大リンクレートとして含む新たな能力情報（Phy Capabilities）を生成し、ホストシステム１とストレージデバイス３との間のリンクを確立する際に、この生成した新たな能力情報（Phy Capabilities）をホストシステム１に送信する。
【０１５９】
このように、処理すべきＩ／Ｏの数を考慮することにより、Power Consumption Reduction Modeに適合した電力スロットリングモードをより精度よく選択することが可能となる。
【０１６０】
しかし、処理すべきＩ／Ｏ数は、時間の経過とともに変動しうる。このため、ユーザによってPower Consumption Reduction Modeが指定されたケースにおいては、ＣＰＵ１１は、Power Consumption Reduction Modeに適合した電力スロットリングモードおよびリンクレートを定期的に再決定してもよい。これにより、処理すべきＩ／Ｏ数の変動に応じて、使用すべき電力スロットリングおよび使用すべきリンクレートを動的に変更することが可能となる。
【０１６１】
まず、ＣＰＵ１１は、図６のフローチャートで説明した手順と同じ手順で、Power Consumption Reduction Modeに適合した電力スロットリングモードおよびリンクレートを決定する（ステップＳ３０１）。ステップＳ３０１では、ＣＰＵ１１は、この決定されたリンクレートを指定するリンクレート指定情報およびこの決定された電力スロットリングモードを指定するモード指定情報をストレージデバイス３に送出する。
【０１６２】
再決定のための条件が満たされた場合（例えば、前回の決定から一定時間が経過した場合）（ステップＳ３０２のＹｅｓ）、ＣＰＵ１１は、ステップＳ３０１の処理に進み、電力消費効率と現在の処理すべきＩ／Ｏ数の双方を考慮して、Power Consumption Reduction Modeに適合するリンクレートと電力スロットリングモードとを再決定する（ステップＳ３０１）。前回決定されたリンクレートと電力スロットリングモードと今回決定されたリンクレートと電力スロットリングモードとが異なるならば、ＣＰＵ１１は、この再決定されたリンクレートを指定するリンクレート指定情報およびこの再決定された電力スロットリングモードを指定するモード指定情報をストレージデバイス３に送出する。なお、前回決定されたリンクレートと電力スロットリングモードと今回決定されたリンクレートと電力スロットリングモードとが異なるか否かにかかわらず、ＣＰＵ１１は、この再決定されたリンクレートを指定するリンクレート指定情報およびこの再決定された電力スロットリングモードを指定するモード指定情報をストレージデバイス３に送出してもよい。
【０１６３】
以上説明したように、本実施形態によれば、ホストシステム１は、性能を優先する第１の電力スロットリングモードに設定された場合におけるストレージデバイス３のリンクレート毎の最大消費電力と電力消費効率との対応関係と、ストレージデバイス３がピーク電力の低減を優先する第２の電力スロットリングモードに設定された場合におけるストレージデバイス３のリンクレート毎の最大消費電力と電力消費効率との対応関係とを示す情報と、性能を優先する第１モード、消費電力の低減を優先する第２モード、およびピーク電力の抑制を優先する第３モードの中からユーザによって指定されたモードとに基づいて、第１の電力スロットリングモードおよび第２の電力スロットリングモードの内、ユーザによって指定されたモードに適合する電力スロットリングモードを決定する。そして、ホストシステム１は、ストレージデバイス３の最大消費電力を制限する電力スロットリング動作を、決定された電力スロットリングモードで実行すべきことをストレージデバイス３に指示する。この場合、ホストシステム１は、決定された電力スロットリングモードを指定するモード指定情報をストレージデバイス３に送出することによって、決定された電力スロットリングモードで実行すべきことをストレージデバイス３に指示する。
【０１６４】
よって、ユーザによってどのモードが指定されるかに応じて、性能を優先する第１の電力スロットリングモード、またはピーク電力の低減を優先する第２の電力スロットリングモードで、ストレージデバイス３に電力スロットリング動作を実行させることが可能となり、ストレージデバイス３の消費電力を柔軟に制御することが可能となる。
【０１６５】
また、本実施形態では、ホストシステム１では、ユーザによって指定されたモードに適合するリンクレートがさらに決定され、決定されたリンクレートと決定された電力スロットリングモードの双方がストレージデバイス３に指示される。したがって、ユーザによってどのモードが指定されるかに応じて、リンクレートと最大消費電力の双方を柔軟に制御することが可能となる。
【０１６６】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１６７】
１…ホストシステム（情報処理装置）、２…シリアルインタフェース、３…ストレージデバイス、４…コントローラ、５…ＮＡＮＤ型フラッシュメモリ、１１…ＣＰＵ、１４…デバイスインタフェース、２１…ホストインタフェース。
【図１】
2019125111.tif 000003
【図２】
2019125111.tif 000004
【図３】
2019125111.tif 000005
【図４】
2019125111.tif 000006
【図５】
2019125111.tif 000007
【図６】
2019125111.tif 000008
【図７】
2019125111.tif 000009
【図８】
2019125111.tif 000010
【図９】
2019125111.tif 000011
【図１０】
2019125111.tif 000012
【図１１】
2019125111.tif 000013
【図１２】
2019125111.tif 000014
【図１３】
2019125111.tif 000015
【図１４】
2019125111.tif 000016
【図１５】
2019125111.tif 000017