JP6983670B2 - 情報処理装置およびストレージデバイス - Google Patents

情報処理装置およびストレージデバイス Download PDF

Info

Publication number
JP6983670B2
JP6983670B2 JP2018004459A JP2018004459A JP6983670B2 JP 6983670 B2 JP6983670 B2 JP 6983670B2 JP 2018004459 A JP2018004459 A JP 2018004459A JP 2018004459 A JP2018004459 A JP 2018004459A JP 6983670 B2 JP6983670 B2 JP 6983670B2
Authority
JP
Japan
Prior art keywords
mode
power
storage device
power consumption
link rate
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2018004459A
Other languages
English (en)
Other versions
JP2019125111A (ja
Inventor
將吉 佐藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kioxia Corp
Original Assignee
Kioxia Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Kioxia Corp filed Critical Kioxia Corp
Priority to JP2018004459A priority Critical patent/JP6983670B2/ja
Priority to US16/034,961 priority patent/US10895904B2/en
Publication of JP2019125111A publication Critical patent/JP2019125111A/ja
Application granted granted Critical
Publication of JP6983670B2 publication Critical patent/JP6983670B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/324Power saving characterised by the action undertaken by lowering clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/28Supervision thereof, e.g. detecting power-supply failure by out of limits supervision
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3215Monitoring of peripheral devices
    • G06F1/3225Monitoring of peripheral devices of memory devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3268Power saving in hard disk drive
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3278Power saving in modem or I/O interface
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Sources (AREA)

Description

本発明の実施形態は、情報処理装置およびこの情報処理装置にシリアルインタフェースを介して接続されるストレージデバイスに関する。
近年、ハードディスクドライブ(HDD)、ソリッドステートドライブ(SSD)のような様々なストレージデバイスが広く普及している。最近では、その消費電力を抑制する機能を有するストレージデバイスも開発されている。
ところで、近年では、サーバコンピュータのような情報処理装置を中心に、Serial Attached SCSI(SAS)、Serial ATA(SATA)、PCI Express(PCIe)(登録商標)といったシリアルインタフェースを備えるストレージデバイスが利用されている。
このようなシリアルインタフェースの多くは、データ転送速度が互いに異なる複数のリンクレートをサポートしている。
ストレージデバイスにおいては、その性能の観点等から、最速のリンクレートのために必要とされる電力が、ストレージデバイスに許容される最大消費電力として固定的に使用される場合がある。
米国特許出願公開第2016/0320995号明細書
しかし、この場合には、最速のリンクレートのような速いリンクレートを必要としないケースでは、電力が無駄に消費される可能性がある。
本発明が解決しようとする課題は、ストレージデバイスの消費電力を柔軟に制御することができる情報処理装置およびストレージデバイスを提供することである。
実施形態によれば、複数のリンクレートをサポートするシリアルインタフェースを介してストレージデバイスに接続可能な情報処理装置は、前記シリアルインタフェースを介して前記ストレージデバイスを制御するコントローラを具備する。前記コントローラは、前記ストレージデバイスが性能を優先する第1の電力スロットリングモードに設定された場合における前記ストレージデバイスのリンクレート毎の最大消費電力と電力消費効率との対応関係と、前記ストレージデバイスがピーク電力の低減を優先する第2の電力スロットリングモードに設定された場合における前記ストレージデバイスのリンクレート毎の最大消費電力と電力消費効率との対応関係とを示す第1の情報を取得する。前記電力消費効率は1ワット当たり1秒当たりのI/O数を示す。前記コントローラは、性能を優先する第1モード、消費電力の低減を優先する第2モード、およびピーク電力の抑制を優先する第3モードの中からユーザによって指定されたモードと、前記取得された第1の情報とに基づいて、前記第1の電力スロットリングモードおよび前記第2の電力スロットリングモードの内、前記ユーザによって指定されたモードに適合する電力スロットリングモードを決定する。前記コントローラは、前記ストレージデバイスの最大消費電力を抑制するための電力スロットリング動作を前記決定された電力スロットリングモードで実行すべきことを前記ストレージデバイスに指示する。
ホストシステム(情報処理装置)およびストレージデバイスそれぞれの構成例を示すブロック図。 電力スロットリングモードおよびリンクレートを決定する処理の手順の概要を示すシーケンス図。 ユーザによって指定可能な、性能を優先する第1モード、消費電力の低減を優先する第2モード、ピーク電力の抑制を優先する第3モードを説明するための図。 ストレージデバイスが第1の電力スロットリングモード(Power_Level_Mode (A))に設定された場合におけるリンクレートと最大消費電力と電力消費効率との対応関係と、ストレージデバイスが第2の電力スロットリングモード(Power_Level_Mode (B))に設定された場合におけるリンクレートと最大消費電力と電力消費効率との対応関係とを示す情報を示す図。 ホストシステムによって実行される電力スロットリングモード決定処理の手順を示すフローチャート。 ホストシステムによって実行される電力スロットリングモード決定処理の別の手順を示すフローチャート。 ホストシステムによって実行されるリンクレート決定処理の手順を示すフローチャート。 決定された電力スロットリングモードをストレージデバイスに設定するために使用されるモードページの例を示す図。 ホストシステムがストレージデバイスに電力スロットリングモードを設定してからストレージデバイスがこの電力スロットリングモードに対応する電力設定を実行するまでの処理の手順を示すシーケンス図。 ストレージデバイスの初期化シーケンスにおいて実行される電力設定処理の手順を示すシーケンス図。 ホストシステムとストレージデバイスとによって実行されるリンクリセットシーケンス内で行われる電力設定処理の手順を示すシーケンス図。 ストレージデバイスによって実行されるPhy capabilities制御処理の手順を示すフローチャート。 各ポートの最小/最大リンクレートを含むモードページ情報(Mode Page 19h (Subpage01h))を示す図。 Phy capabilitiesの詳細を示す図。 省電力を優先する第2モードに適合した電力スロットリングモードおよびリンクレートを定期的に再決定する処理の手順を示すフローチャート。
以下、図面を参照して、実施形態を説明する。
まず、図1を参照して、ホストシステム1およびストレージデバイス3それぞれの構成を説明する。
このホストシステム1は、サーバコンピュータ、パーソナルコンピュータ、他の様々な電子機器といった情報処理装置であり、シリアルインタフェース2を介してストレージデバイス3に接続される。ホストシステム1は、ストレージデバイス3にデータを書き込み、データをストレージデバイス3から読み出すように構成されている。
シリアルインタフェース2の例には、Serial Attached SCSI(SAS)、Serial ATA(SATA)、PCI Express(PCIe)(登録商標)等が含まれる。
シリアルインタフェース2は一つ以上のポート(Port)を含む。各ポートは、受信用の差動信号線ペアと、送信用の差動信号線ペアとを含んでいてもよい。ホストシステム1とストレージデバイス3との間のデータ転送はこれら一つ以上のポートを介して実行される。なお、PCIe等においては、このポートはレーンとも称される。
図1においては、シリアルインタフェース2が4つのポート、つまりPort A, Port B, Port C, Port Dを含む場合が例示されている。
例えば、SAS規格においては、現状、1.5Gbps (Gigabits per second), 3Gbps, 6Gbps, 12Gbpsの4種類のリンクレートが定められている。また、PCIeを使用するNVM Express(NVMe)(登録商標)規格においては、現状、Gen1 (2.5GT/s (GigaTransfers per second)), Gen2 (5GT/s), Gen3 (8GT/s), Gen4 (16GT/s) の4種類のリンクレートが定められている。ここで、リンクレートとは、シリアルインタフェース2を介して実行されるビットレート(データ転送速度)を意味する。通常、使用されるリンクレートが高速になるほど、I/O性能が高くなるが、ストレージデバイスによって消費される電力は増加する。
ホストシステム1は、ストレージデバイス3に適用すべき最適な電力スロットリングモードを決定し、ストレージデバイス3の最大消費電力を制限する電力スロットリング動作をこの決定した最適な電力スロットリングモードで実行すべきことをストレージデバイス3に指示するように構成されている。また、ホストシステム1は、最適な電力スロットリングモードのみならず、ストレージデバイス3に適用すべき最適なリンクレートも決定することができ、決定したリンクレートと決定した電力スロットリングモードの双方をストレージデバイス3に指示することができる。
ストレージデバイス3は、最大消費電力が異なる複数種の電力スロットリングモードをサポートしており、ストレージデバイス3の最大消費電力を制限する電力スロットリング動作を、ホストシステム1からのモード指定情報によって指定される電力スロットリングモードを使用して実行する。より詳しくは、ストレージデバイス3は、ストレージデバイス3の最大消費電力を、ホストシステム1からのモード指定情報によって指定される電力スロットリングモードに対応する最大消費電力に制限する。
本実施形態においては、ストレージデバイス3は、性能を優先する第1の電力スロットリングモードと、ピーク電力の低減を優先する第2の電力スロットリングモードとを有している。第1の電力スロットリングモードに適用される最大消費電力と第2の電力スロットリングモードに適用される最大消費電力の設定値は互いに異なっている。基本的には、ピーク電力の低減を優先する第2の電力スロットリングモードにおいては、第1の電力スロットリングモードに対応する最大消費電力よりも小さい最大消費電力が適用される。
したがって、ストレージデバイス3が第2の電力スロットリングモードで電力スロットリング動作を実行した場合、つまりストレージデバイス3の最大消費電力を第2の電力スロットリングモードに対応する低い最大消費電力に制限した場合には、ストレージデバイス3の最大消費電力(ピーク電力)は、第1の電力スロットリングモードよりも低い値に抑えられる。
電力スロットリング動作は、ストレージデバイス3によって消費される電力を制御/調整するための動作を含んでいてもよい。第1の電力スロットリングモードがホストシステム1によって指定された場合には、ストレージデバイス3は、ストレージデバイス3の最大消費電力がこの第1の電力スロットリングモードに対応する最大消費電力以下に制限されるように、ストレージデバイス3によって消費される電力を制御/調整する。一方、第2の電力スロットリングモードがホストシステム1によって指定された場合には、ストレージデバイス3は、最大消費電力(ピーク電力)がこの第2の電力スロットリングモードに対応する最大消費電力以下に制限されるように、ストレージデバイス3によって消費される電力を制御/調整する。
ストレージデバイス3によって消費される電力を制御/調整する処理の例には、ストレージデバイス3内のハードウェア回路の特定の一部または全てに供給されるクロック信号それぞれの周波数を変更する動作が含まれてもよいし、最大消費電力を或る値までに抑えることが可能な他の様々な電力制限動作が含まれてもよい。
ホストシステム1は、CPU11、メインメモリ12、周辺制御部13、デバイスインタフェース14、電源回路15、等を含む。これらCPU11、メインメモリ12、周辺制御部13、デバイスインタフェース14は、バス10を介して相互接続される。
CPU11は、ホストシステム1の様々なコンポーネントを制御するプロセッサである。このCPU11は、メインメモリ12にロードされた様々なプログラムを実行する。これらプログラムには、アプリケーションプログラム群121、オペレーティングシステム(OS)122、ファイルシステム123、デバイスドライバ124等が含まれる。
アプリケーションプログラム群121には、設定アプリケーションプログラム121Aが含まれる。この設定アプリケーションプログラム121Aは、ストレージデバイス3の電力設定をユーザがカスタマイズすることを可能にするためのユーザインタフェース(グラフィカルユーザインタフェース(GUI)またはキャラクターユーザインタフェース(CUI)をユーザに提示することができる。
本実施形態では、設定アプリケーションプログラム121Aは、性能を優先する第1モード、消費電力の低減を優先する第2モード、ピーク電力の抑制を優先する第3モードの中のいずれか一つをユーザに選択させるための処理を実行する。
性能を優先する第1モードは、ストレージデバイス3の性能(I/O性能)を最優先するためのモードとして利用される。消費電力の低減を優先する第2モードは、ストレージデバイス3の総消費電力の低減を最優先するためのモードとして利用される。最大消費電力(ピーク電力)の抑制を優先する第3モードは、最大消費電力(ピーク電力)をできるだけ低く抑えるためのモードとして利用される。
デバイスドライバ124は、シリアルインタフェース2を介してストレージデバイス3を制御するためのデバイスドライバプログラムである。このデバイスドライバ124は、ライトコマンド、リードコマンド、および各種制御用コマンドをシリアルインタフェース2を介してストレージデバイス3に送信することができる。また、このデバイスドライバ124は、電力スロットリングモード設定モジュール124Aを含む。
電力スロットリングモード設定モジュール124Aは、ストレージデバイス3に適用すべき最適な電力スロットリングモードおよび最適なリンクレートを決定する処理、および決定した電力スロットリングモードを指定するモード指定情報および決定したリンクレートを指定するリンクレート指定情報をストレージデバイス3に送出する処理を実行する。リンクレート指定情報をストレージデバイス3に送出することにより、決定したリンクレートで、ホストシステム1とストレージデバイス3との間のリンクを確立すべきことをストレージデバイス3に指示することができる。
電力スロットリングモード設定モジュール124Aは、ユーザによって指定されたモード(第1モード、第2モード、または第3モード)を設定アプリケーションプログラム121Aから受信する。また、電力スロットリングモード設定モジュール124Aは、ストレージデバイス3が第1の電力スロットリングモードに設定された場合におけるストレージデバイス3のリンクレート毎の最大消費電力と電力消費効率との対応関係と、ストレージデバイス3が第2の電力スロットリングモードに設定された場合におけるストレージデバイス3のリンクレート毎の最大消費電力と電力消費効率との対応関係とを示す情報(以下、リンクレート/最大消費電力/電力消費効率の対応関係情報と称する)を取得する。ここで、電力消費効率とは、1ワット当たり1秒当たりのI/O数、つまりIOPS/Wを意味する。
電力スロットリングモード設定モジュール124Aは、リンクレート/最大消費電力/電力消費効率の対応関係情報に基づいて、ユーザによって指定されたモード(第1モード、第2モード、または第3モード)に適合する電力スロットリングモードを決定する。電力スロットリングモードの決定に際しては、電力スロットリングモード設定モジュール124Aは、I/Oキュー124Bに蓄積されている、処理すべきI/Oの数を考慮することもできる。I/Oキュー124Bは、ストレージデバイス3に送出すべきI/O要求を格納するためのコマンド発行キューである。
リンクレート/最大消費電力/電力消費効率の対応関係情報はストレージデバイス3内に予め保持されていてもよい。この場合、電力スロットリングモード設定モジュール124Aは、SAS においてはMode Pageを使用することによって上述のリンクレート/最大消費電力/電力消費効率の対応関係情報をストレージデバイス3からリードしてもよいし、NVMeにおいてはGet Featureを使用することによって上述のリンクレート/最大消費電力/電力消費効率の対応関係情報をストレージデバイス3からリードしてもよい。あるいは、電力スロットリングモード設定モジュール124Aは、ストレージデバイス3のリンクレート、最大消費電力、電力消費効率を計測し、この計測によって上述のリンクレート/最大消費電力/電力消費効率の対応関係情報を取得してもよい。
電力スロットリングモード設定モジュール124AはCPU11によって実行されるので、CPU11は、ユーザによって指定されたモードに応じてストレージデバイス3の振る舞いが動的に変更されるようにストレージデバイス3を制御するコントローラとして機能する。
あるいは、電力スロットリングモード設定モジュール124Aの機能を実行する回路を内蔵した専用のハードウェアが上述のコントローラとして利用されてもよい。
つまり、上述のコントローラは、CPU11のようなプロセッサ、他の様々なハードウェア回路といった、処理回路によって実現することができる。
周辺制御部13は、ディスプレイ、入力デバイスといった周辺デバイスを制御する。デバイスインタフェース14は、シリアルインタフェース2を制御する物理層として機能する。このデバイスインタフェース14は、Port A, Port B, Port C, Port Dにそれぞれ対応する4つの物理層回路(Phy 0, Phy 1, Phy 2, Phy 3)141を含む。電源回路15は、ホストシステム1内のコンポーネントに供給すべき動作電力VCC1、ストレージデバイス3に供給すべき動作電力VCC2を生成する。
ストレージデバイス3は、ホストシステムからのライトコマンドに応じてデータを不揮発性記憶メディアにライトし、ホストシステムからのリードコマンドに応じてデータを不揮発性記憶メディアからリードするように構成されている。ストレージデバイス3はハードディスクドライブ(HDD)/ソリッドステートドライブ(SSD)のいずれであってもよいが、以下では、ストレージデバイス3がソリッドステートドライブ(SSD)として実現されている場合を想定する。
ストレージデバイス3は、System−on−a−chip(SoC)のようなコントローラ4と、NAND型フラッシュメモリ5と、ダイナミックRAM(DRAM)6A、6Bを含んでいてもよい。
コントローラ4は、ホストシステム1とのインタフェースに関する動作を実行するフロントエンドと、NAND型フラッシュメモリ5の制御に関する動作を実行するバックエンドとを含む。
フロントエンドは、ホストインタフェース21、CPU22、バッファマネージャ23、DRAMコントローラ24、レジスタ25等を含む。これらホストインタフェース21、CPU22、バッファマネージャ23、レジスタ25はバス20を介して相互接続される。
ホストインタフェース21は、ホストシステム1から様々なコマンド、データ等を受信し、ホストシステム1にコマンド完了レスポンス、データ等を返送するように構成された回路であるホストインタフェース21は、Port A, Port B, Port C, Port Dにそれぞれ対応する4つの物理層回路(Phy 0, Phy 1, Phy 2, Phy 3)211を含む。また、ホストインタフェース21は、SASコントローラ212、PCIeコントローラ213の双方を含んでいてもよい。ストレージデバイス3がSAS規格に準拠するSASデバイスとして実現されている場合には、SASコントローラ212がイネーブルされる。一方、ストレージデバイス3がPCIe規格に準拠するPCIeデバイスとして実現されている場合には、PCIeコントローラ213がイネーブルされる。
CPU22は、フロントエンド側のコンポーネントの動作を制御するプロセッサである。バッファマネージャ23は、DRAMコントローラ24を介してバッファとしてのDRAM6Aを制御する。
レジスタ25は、ストレージデバイス3がサポートしている幾つかのリンクレートを示す能力情報を保持する。例えばSAS規格においては、この能力情報はPhy Capabilitiesと称される。レジスタ25に格納されている能力情報は、この能力情報をシリアルインタフェース2を介してホストシステム1に送信するために使用される。
バックエンドは、NANDコントローラ31、CPU32、バッファマネージャ33、DRAMコントローラ34、NANDインタフェース制御回路(NAND Phy)35等を含む。これらNANDコントローラ31、CPU32、バッファマネージャ33は上述のバス20を介して相互接続される。CPU32は、バックエンド側のコンポーネントの動作を制御するプロセッサである。バッファマネージャ33は、DRAMコントローラ34を介してバッファとしてのDRAM6Bを制御する。なお、一つのDRAMがフロントエンドとバックエンドとによって共有されてもよい。
NANDコントローラ31は、NANDインタフェース制御回路(NAND Phy)35を介してNAND型フラッシュメモリ5を制御する。
図2に示されるシーケンス図は、電力スロットリングモードおよびリンクレートを決定する処理の手順の概要を示す。図2のシーケンス図では、SASを例にして、電力スロットリングモードおよびリンクレートを決定する処理の手順の概要が示されている。
ホストシステム1は、ストレージデバイス3に動作電力を供給してストレージデバイス3をパワーオンする(ステップS10)。ストレージデバイス3がパワーオンされると、ストレージデバイス3のコントローラ4は、NAND型フラッシュメモリ5を動作可能にするために各種準備処理、ホストインタフェース21を動作可能にするために必要な各種準備処理等を含む初期化シーケンスを実行する(ステップS11)。従来では、最大消費電力の設定契機は、この初期化シーケンスのみであるのが一般的であると考えられる。ストレージデバイス3に許容される最大消費電力が固定されている従来のケースにおいては、例えば、SASの場合では、最も大きな最大消費電力を要する最も速い12Gbpsのリンクレートに合わせた電力設定が初期化シーケンスで行われる。例えば、最も速い12Gbpsのリンクレートに対応する最も大きな最大消費電力が12Wであるならば、ストレージデバイス3の最大消費電力の値は常に12Wに設定される。
本実施形態では、前回のパワーサイクル等においてホストシステム1によってユーザ指定のモードに適した特定の電力スロットリングモードが既に指定されていたならば、コントローラ4は、この特定の電力スロットリングモードに合致(マッチ)する最大消費電力を、ストレージデバイス3の最大消費電力として設定してもよい。これにより、初期化シーケンスにおいて、ストレージデバイス3の最大消費電力は、現在のユーザ指定モードに適した電力スロットリングモードに対応する最大消費電力に制限される。
ホストシステム1は、シリアルインタフェースを介してホストシステム1とストレージデバイス3との間のリンク(接続)を確立するためのリンクリセットシーケンス(Link Reset Sequence)を、ストレージデバイス3と協同して実行する。なお、リンクリセットシーケンスは、NVMeのトレーニングフェーズ(Training Phase)に相当する。
本実施形態では、前回のパワーサイクル等においてホストシステム1によって電力スロットリングモードが既に指定されていたならば、この指定された電力スロットリングモードにマッチする最大消費電力がこのリンクリセットシーケンスで設定されてもよい。これにより、ストレージデバイス3の最大消費電力は、現在のユーザ指定モードに適した電力スロットリングモードに対応する最大消費電力に制限される。
また、前回のパワーサイクル等においてホストシステム1によってリンクレートが既に指定されていたならば、使用すべきリンクレートをこの指定されたリンクレートに変更する処理がリンクリセットシーケンスで行われるともに、この指定されたリンクレートとこの指定された電力スロットリングモードの組み合わせにマッチする最大消費電力が、このリンクリセットシーケンスで設定されてもよい。これにより、ストレージデバイス3の最大消費電力を、この指定されたリンクレートとこの指定された電力スロットリングモードとの組み合わせに対応する最大消費電力に制限することが可能となる。
ホストシステム1は、必要に応じて、電力スロットリングモードパラメータ決定処理を実行する(ステップS13)。この電力スロットリングモードパラメータ決定処理では、ホストシステム1は、ユーザによって指定されたモードと、リンクレート/最大消費電力/電力消費効率の対応関係情報とに基づいて、ユーザによって指定されたモードに適合する電力スロットリングモードを決定する。
この電力スロットリングモードパラメータ決定処理では、ホストシステム1は、電力スロットリングモードのみならず、ユーザによって指定されたモードと、リンクレート/最大消費電力/電力消費効率の対応関係情報とに基づいて、ユーザによって指定されたモードに適合するリンクレートをさらに決定することもできる。
電力スロットリングモードパラメータ決定処理を実行した後、ホストシステム1は、ストレージデバイス3と共同して、電力スロットリングシーケンスを実行して、ストレージデバイス3に、この決定した電力スロットリングモードに対応する電力スロットリング動作を実行すべきことを指示する(ステップS14)。
電力スロットリングシーケンスでは、ホストシステム1は、決定された電力スロットリングモードを指定するモード指定情報をストレージデバイス3に送出する。この場合、例えばSASにおいては、ホストシステム1は、ストレージデバイス3に保持されている特定のMode Page(例えば、ベンダーユニークな特定のMode Page)を更新することによって、決定された電力スロットリングモードをストレージデバイス3に指示してもよい。
なお、ホストシステム1は、ストレージデバイス3がその電力スロットリングモードをホストシステム1によって指定された電力スロットリングモードに変更するタイミングとして、初期化シーケンスのタイミング、またはリセットシーケンスのタイミングのどちらかを指定することもできる。この場合、ホストシステム1は、この特定のMode Pageに、2つのフラグをさらに設定してもよい。
2つのフラグの一方は、この特定のMode Pageの内容に基づく電力スロットリング動作を初期化シーケンスのタイミングで実行するか否かを示す。2つのフラグの他方は、この特定のMode Pageの内容に基づく電力スロットリング動作をリセットシーケンスのタイミングで実行するか否かを示す。ホストシステム1は、これらフラグを設定することにより、ストレージデバイス3に、初期化シーケンスのタイミングまたはリセットシーケンスのタイミングで、その電力スロットリング動作を、ホストシステム1から指示された電力スロットリングモードで実行させることができる。
電力スロットリングシーケンスでは、ホストシステム1は、モード指定情報のみならず、決定されたリンクレートを指定するリンクレート指定情報もストレージデバイス3に送出してもよい。例えばSASにおいては、ホストシステム1は、ストレージデバイス3に保持されているMode Page 19h (Subpage 01h)を変更するためのMode Select コマンドを使用して、決定されたリンクレートをストレージデバイス3に通知してもよい。
Mode Page 19h (Subpage 01h)においては、最小リンクレート(Minimum Link Rate)と最大リンクレート(Maximum Link Rate)とを規定する情報(SAS phy mode descriptor list)が存在する。最大リンクレート(Maximum Link Rate)は、ストレージデバイス3がサポートしている複数種のリンクレートの内で、ストレージデバイス3にその使用が許可されているリンクレートの最大値を示す。最小リンクレート(Minimum Link Rate)は、ストレージデバイス3がサポートしている複数種のリンクレートの内で、ストレージデバイス3にその使用が許可されるリンクレートの最小値を示す。
例えば、決定されたリンクレートが、Mode Page 19h (Subpage 01h)に現在設定されている最大リンクレートよりも低いリンクレートであるならば、ホストシステム1は、Mode Select コマンドを使用して、最大リンクレートを、決定されたリンクレートに変更してもよい。あるいは、ホストシステム1は、決定されたリンクレートに基づいて、現在の最小リンクレートと現在の最大リンクレートの双方を変更してもよい。
図3は、ユーザによって指定可能なモードの例を示す。
ユーザは、設定アプリケーションプログラム121Aによってディスプレイに表示されるユーザインタフェースを通じて、パフォーマンスモード(Performance Mode)、消費電力削減モード(Power Consumption Reduction Mode)、ピーク電力削減モード(Peak Power Reduction Mode)のいずれかを指定することができる。
パフォーマンスモード(Performance Mode)は、性能を優先する上述の第1モードである。パフォーマンスモード(Performance Mode)がユーザによって指定されたならば、ホストシステム1は、ストレージデバイス3のリンクレート/最大消費電力/電力消費効率の対応関係情報に基づいて、ストレージデバイス3がサポートしている電力スロットリングモードの内で、性能を最優先する電力スロットリングモード(上述の第1の電力スロットリングモード)を、パフォーマンスモード(Performance Mode)に適合する電力スロットリングモードとして選択する。
消費電力削減モード(Power Consumption Reduction Mode)は、消費電力の低減を優先する上述の第2モードである。消費電力削減モード(Power Consumption Reduction Mode)がユーザによって指定されたならば、ホストシステム1は、ストレージデバイス3のリンクレート/最大消費電力/電力消費効率の対応関係情報に基づいて、ストレージデバイス3がサポートしている電力スロットリングモードの内で、電力消費効率が優れている電力スロットリングモード、より詳しくは総消費電力が最も少なくなる電力スロットリングモードを、消費電力削減モード(Power Consumption Reduction Mode)に適合する電力スロットリングモードとして選択する。
ピーク電力削減モード(Peak Power Reduction Mode)は、ピーク電力の抑制を優先する上述の第3のモードである。ピーク電力削減モード(Peak Power Reduction Mode)は、ピーク電力が一定以上の値にならないようにするために使用される。ピーク電力削減モード(Peak Power Reduction Mode)がユーザによって指定された場合には、有効範囲内で、ピーク電力の上限をユーザにさらに指定させてもよい。
ピーク電力削減モード(Peak Power Reduction Mode)がユーザによって指定された場合には、ホストシステム1は、ストレージデバイス3のリンクレート/最大消費電力/電力消費効率の対応関係情報に基づいて、ストレージデバイス3がサポートしている電力スロットリングモードの内で、ピーク電力の低減を優先する電力スロットリングモード(上述の第2の電力スロットリングモード)を、ピーク電力削減モード(Peak Power Reduction Mode)に適合する電力スロットリングモードとして選択する。
図4は、ストレージデバイス3のリンクレート/最大消費電力/電力消費効率の対応関係情報の例を示す。
この情報は、ストレージデバイス3が第1の電力スロットリングモード(Power_Level_Mode (A))に設定された場合におけるリンクレートと最大消費電力と電力消費効率との対応関係と、ストレージデバイス3が第2の電力スロットリングモード(Power_Level_Mode (B))に設定された場合におけるリンクレートと最大消費電力と電力消費効率との対応関係とを示す。
図4では、一例として、シリアルインタフェース2が2つのポート(Port A, Port B)を含む場合が示されている。上述したように、図4の対応関係情報は、ホストシステム1がストレージデバイス3のリンクレートおよび消費電力等を計測することによって取得してもよいし、ホストシステム1が、Mode PageまたはGet Featureのようなストレージデバイス3のインタフェースを介して、ストレージデバイス3から取得してもよい。
図4の各欄に示した設定値は一例である。図4の例においては,性能を優先する第1の電力スロットリングモード(Power_Level_Mode (A))とピーク電力低減を優先する第2の電力スロットリングモード(Power_Level_Mode (B))とでは、性能を優先するか、ピーク電力の低減を優先するかで、12Gbpsのリンクレートが含まれた場合の電力スロットリング設定値(最大消費電力)が異なっている。
図4の上部に示されているように、性能を優先する第1の電力スロットリングモード(Power_Level_Mode (A))に対応する対応関係情報においては、2つのポート(Port A, Port B)のリンクレートの組み合わせ毎に、電力スロットリング設定値(最大消費電力)と、電力消費効率(IOPS/W)と、性能比との対応関係が規定されている。
図4の下部に示されているように、ピーク電力低減を優先する第2の電力スロットリングモード(Power_Level_Mode (B))に対応する対応関係情報においても、2つのポート(Port A, Port B)のリンクレートの組み合わせ毎に、電力スロットリング設定値(最大消費電力)と、電力消費効率(IOPS/W)と、性能比との対応関係が規定されている。
性能を優先する第1の電力スロットリングモード(Power_Level_Mode (A))では、Port A, Port Bがそれぞれ6Gbps, 6Gbpsのリンクレートでは、最大消費電力は9Wに設定される。この場合の電力消費効率(IOPS/W)は、ある値“A”である。Port A, Port Bの一方が6Gbpsのリンクレートで, 他方が12Gbpsのリンクレートの組み合わせにおいては、最大消費電力は12Wに設定される。この場合の電力消費効率(IOPS/W)は、ある値“B”である。Port A, Port Bがそれぞれ12Gbps, 12Gbpsのリンクレートの組み合わせでは、最大消費電力は12Wに設定される。この場合の電力消費効率(IOPS/W)は、ある値“D”である。
ピーク電力低減を優先する第2の電力スロットリングモード(Power_Level_Mode (B))では、Port A, Port Bがそれぞれ6Gbps, 6Gbpsのリンクレートでは、最大消費電力は9Wに設定される。この場合の電力消費効率(IOPS/W)は、値“A”である。Port A, Port Bの一方が6Gbpsのリンクレートで, 他方が12Gbpsのリンクレートでは、最大消費電力は9Wに設定される。この場合の電力消費効率(IOPS/W)は、ある値“C”である。Port A, Port Bがそれぞれ12Gbps, 12Gbpsのリンクレートの組み合わせでは、最大消費電力は9Wに設定される。この場合の電力消費効率(IOPS/W)は、ある値“E”である。
図4では、電力消費効率A,B,C,D,Eの大小関係は、A<B<C<D<Eである場合が想定されている。しかし、この大小関係はあくまで一例であり、もし、たとえば、12Gbps, 12Gbps, 9Wの組み合わせが使用された場合に、ストレージデバイス3の性能が著しく低下されたならば、12Gbps, 12Gbps, 9Wの組み合わせに対応する電力消費効率(IOPS/W)は、12Gbps, 12Gbps, 12Wの組み合わせに対応する電力消費効率(IOPS/W)よりも低下される可能性がある。この場合、図4において括弧内に示されているように、12Gbps, 12Gbps, 9Wの組み合わせに対応する電力消費効率(IOPS/W)が“D”となり、12Gbps, 12Gbps, 12Wの組み合わせに対応する電力消費効率(IOPS/W)が“E”となる。
このように、リンクレートと最大消費電力との複数の組み合わせにそれぞれ対応する電力消費効率(IOPS/W)は、ストレージデバイス3として利用されるストレージデバイスの機種毎に異なる。
ストレージデバイス3の消費電力を削減するためには、電力スロットリング設定値(最大消費電力)だけでなく、電力消費効率も考慮することが好ましい。単純に第1の電力スロットリングモード(Power_Level_Mode (A))よりも第2の電力スロットリングモード(Power_Level_Mode (B))のほうが電力消費効率が良ければ、ユーザからPower Consumption Reduction Modeを指定されている場合に単純に第2の電力スロットリングモード(Power_Level_Mode (B))を選択すれば良い。しかし、そうでない場合(性能優先の方が電力消費効率の面では良い場合)もあり得る。したがって、第1の電力スロットリングモード(Power_Level_Mode (A))と第2の電力スロットリングモード(Power_Level_Mode (B))の中から、電力消費効率が優れている電力スロットリングモードを選択することが必要となる。
また、Power Consumption Reduction Modeに適合した電力スロットリングモードをより精度よく選択できるようにするために、I/Oキュー124Bに蓄積されている、処理すべきI/Oの数を考慮してもよい。
ここで、処理すべきI/Oの数とは、ストレージデバイス3に送出されるべきI/O(I/O要求)の数を意味する。たとえば、処理すべきI/Oの数が比較的少ない場合には、ストレージデバイス3の最大消費電力を第1の電力スロットリングモード(Power_Level_Mode (A))に対応する比較的高い最大消費電力に制限した方が、処理すべきI/O数に対して必要とされる総消費電力を削減できる場合もある。したがって、処理すべきI/Oの数を考慮することにより、Power Consumption Reduction Modeに適合した電力スロットリングモードをより精度よく選択することが可能となる。
図5のフローチャートは、ホストシステム1によって実行される電力スロットリングモード決定処理の手順を示す。
上述したように、ホストシステム1のCPU11は、ストレージデバイス3の振る舞いを制御するコントローラとして機能する。このCPU11は、電力スロットリングモード設定モジュール124Aを実行することによって、以下の電力スロットリングモード決定処理を行う。この電力スロットリングモード決定処理は、図3に示したモードのいずれかがユーザからホストシステム1に対して指定されている事、図4に示した対応関係情報を計測もしくはストレージデバイス3からの取得によりホストシステム1が取得している事が前提となる。
CPU11は、ユーザによって指定されたモード(消費電力モード)が、パフォーマンスモード(Performance Mode)、消費電力削減モード(Power Consumption Reduction Mode)、またはピーク電力削減モード(Peak Power Reduction Mode)のいずれであるかを判定する(ステップS21)。
ユーザによって指定されたモードがパフォーマンスモード(Performance Mode)であるならば、CPU11は、図4に示した対応関係情報に基づいて、最大消費電力がより大きい電力スロットリングモード、つまり性能優先で電力スロットリングする第1の電力スロットリングモード(ここでは、Power_Level_Mode (A))を、ユーザによって指定されたモード(Performance Mode)に適合する電力スロットリングモードとして決定する(ステップS22)。
ユーザによって指定されたモードがピーク電力削減モード(Peak Power Reduction Mode)であるならば、CPU11は、図4に示した対応関係情報に基づいて、最大消費電力がより小さい電力スロットリングモード、つまりピーク電力低減優先で電力スロットリングする第2の電力スロットリングモード(Power_Level_Mode (B))を、ユーザによって指定されたモード(ここでは、Peak Power Reduction Mode)に適合する電力スロットリングモードとして決定する(ステップS23)。
このように、ユーザ指定のモードがPerformance Modeであれば性能優先で電力スロットリングするPower_Level_Mode (A)を、Peak Power Reduction Modeであればピーク電力低減優先で電力スロットリングするPower_Level_Mode (B)を選択すれば良いが、ユーザによってPower Consumption Reduction Modeが指定された場合は、電力スロットリングの設定値(最大消費電力)だけでなく、電力消費効率も考慮に入れることが好ましい。なぜなら、たとえ使用される最大消費電力が十分に低い場合であっても、もしこれによってストレージ性能が著しく低下したならば、ストレージデバイス3の電力消費効率が低下し、結果的にストレージデバイス3の総消費電力を削減できなくなる場合があるからである。
このため、ユーザによってPower Consumption Reduction Modeが指定された場合は、CPU11は、図4に示した対応関係情報に基づいて、Power_Level_Mode (A)、Power_Level_Mode (B)の内、電力消費効率が高い電力スロットリングモードを、ユーザによって指定されたモード(ここでは、Power Consumption Reduction Mode)に適合する電力スロットリングモードとして決定する。
より詳しくは、CPU11は、図4の対応関係情報に基づいて、Power_Level_Mode (B)の方がPower_Level_Mode (A)よりも電力消費効率が優れているか否かを判定する(ステップS24)。ステップS24では、CPU11は、リンクレートと最大消費電力との全ての組み合わせの中から、最も電力消費効率(IOPS/W)が高い組み合わせを選択し、この選択した組み合わせが属している電力スロットリングモードを、電力消費効率が優れている電力スロットリングモードとして決定してもよい。
例えば、図4に示されているように、もしPower_Level_Mode (A)に属する(12Gbps, 12Gbps, 12W)の組み合わせに対応する電力消費効率がDで、Power_Level_Mode (B)に属する(12Gbps, 12Gbps, 9W)の組み合わせに対応する電力消費効率がE(>D)であるならば、CPU11は、Power_Level_Mode (B)の方が電力消費効率が優れていると判定する。
しかし、ストレージデバイス3として使用されるストレージデバイスの機種によっては、(12Gbps, 12Gbps, 9W)の組み合わせを使用した場合に性能が著しく低下し、これによって、図4の括弧内に記載されているように、Power_Level_Mode (A)に属する(12Gbps, 12Gbps, 12W)の組み合わせに対応する電力消費効率がEで、Power_Level_Mode (B)に属する(12Gbps, 12Gbps, 9W)の組み合わせに対応する電力消費効率がDとなる場合がある。この場合、CPU11は、使用される最大電力が大きいPower_Level_Mode (A)の方が電力消費効率が優れていると判定する。
もしPower_Level_Mode (B)の方がPower_Level_Mode (A)よりも電力消費効率が優れているならば(ステップS24のYes)、CPU11は、ピーク電力低減優先で電力スロットリングするPower_Level_Mode (B))を、ユーザによって指定されたモード(ここでは、Power Consumption Reduction Mode)に適合する電力スロットリングモードとして決定する(ステップS23)。
一方、もしPower_Level_Mode (B)の方がPower_Level_Mode (A)よりも電力消費効率が優れていない、つまりPower_Level_Mode (A)の方がPower_Level_Mode (B)よりも電力消費効率が優れているならば(ステップS24のNo)、CPU11は、性能優先で電力スロットリングするPower_Level_Mode (A))を、ユーザによって指定されたモード(ここでは、Power Consumption Reduction Mode)に適合する電力スロットリングモードとして決定する(ステップS22)。
図6のフローチャートは、ホストシステム1によって実行される電力スロットリングモード決定処理の別の手順を示す。
図6のフローチャートでは、電力消費効率のみならず、I/Oキュー124Bに蓄積されている処理すべきI/O数も考慮して、使用すべき電力スロットリングモードが決定される。図6のフローチャートでは、図5のステップS24の処理の後に、ステップS25の処理が追加されている。
もしPower_Level_Mode (B)の方がPower_Level_Mode (A)よりも電力消費効率が優れているならば(ステップS24のYes)、CPU11は、ピーク電力低減優先で電力スロットリングするPower_Level_Mode (B))を、ユーザによって指定されたモード(ここでは、Power Consumption Reduction Mode)に適合する電力スロットリングモードとして決定する(ステップS23)。
一方、もしPower_Level_Mode (B)の方がPower_Level_Mode (A)よりも電力消費効率が優れていない、つまりPower_Level_Mode (A)の方がPower_Level_Mode (B)よりも電力消費効率が優れているならば(ステップS24のNo)、CPU11は、処理すべきI/O数とPower_Level_Mode (A)の電力消費効率とPower_Level_Mode (B)の電力消費効率とに基づいて、Power_Level_Mode (A)で一時的に動作した方が、処理すべきI/O数に対して必要とされる総消費電力を抑えられるか否かを判定する(ステップS25)。
ステップS25では、Power_Level_Mode (A)、Power_Level_Mode (B)の各々について、CPU11は、[処理すべきI/O数]÷[電力消費効率(IOPS/W)]から、処理すべきI/O数に対して必要となる総消費電力を計算し、処理すべきI/O数に対して必要とされる総消費電力が小さい電力スロットリングモードを特定する。
もしPower_Level_Mode (A)を使用した方が処理すべきI/O数に対して必要とされる総消費電力が小さいならば(ステップS25のYes)、性能優先で電力スロットリングするPower_Level_Mode (A))を、ユーザによって指定されたモード(ここでは、Power Consumption Reduction Mode)に適合する電力スロットリングモードとして決定する(ステップS22)。
一方、もしPower_Level_Mode (B)を使用した方が処理すべきI/O数に対して必要とされる総消費電力が小さいならば(ステップS25のNo)、ピーク電力低減優先で電力スロットリングするPower_Level_Mode (B))を、ユーザによって指定されたモード(ここでは、Power Consumption Reduction Mode)に適合する電力スロットリングモードとして決定する(ステップS23)。
なお、図5、図6で説明したステップS22、S23では、ユーザ指定のモードと、図4の対応関係情報とに基づいて、CPU11は、使用すべき電力スロットリングモードのみならず、使用すべきリンクレートも決定してもよい。例えば、ユーザによって指定されたモードがPower Consumption Reduction Modeの場合には、CPU11は、リンクレートと最大消費電力との全ての組み合わせうち、最も電力消費効率が高い組み合わせに含まれるリンクレートを、使用すべきリンクレートとして決定してもよい。ユーザによって指定されたモードがPerformance Modeの場合には、CPU11は、リンクレートと最大消費電力との全ての組み合わせうち、最も性能の高い組み合わせに含まれるリンクレートを、使用すべきリンクレートとして決定してもよい。ユーザによって指定されたモードがPeak Power Reduction Modeの場合には、CPU11は、リンクレートと最大消費電力との全ての組み合わせうち、最も低く制限された最大消費電力を有する組み合わせに対応するリンクレートを、使用すべきリンクレートとして決定してもよい。
図7のフローチャートは、ホストシステム1によって実行されるリンクレート決定処理の手順を示す。
図7では、一例として、Power Consumption Reduction Modeがユーザによって指定された場合のリンクレート決定処理の手順が示されている。
CPU11は、図4の対応関係情報に基づいて、最も電力消費効率がリンクレートを決定する(ステップS27)。ステップS27では、例えば、CPU11は、リンクレートと最大消費電力との全ての組み合わせのうち、最も電力消費効率が高い組み合わせを選択し、選択した組み合わせに含まれるリンクレートを最も電力消費効率がリンクレートとして決定する。CPU11は、決定されたリンクレートを指定するリンクレート指定情報をストレージデバイス3に通知する。
この場合、決定されたリンクレートとストレージデバイス3に保持されている現在の最大リンクレート(Maximum Link Rate)とが異なる場合にのみ、CPU11は、決定されたリンクレートを指定するリンクレート指定情報をストレージデバイス3に送出して、現在の最大リンクレートを変更してもよい。
例えば、SASを例にとると、決定されたリンクレートが現在の最大リンクレート(Maximum Link Rate)とが異なるならば(ステップS28のNo)、CPU11は、Mode Select コマンドを使用して、Mode Page 19h (Subpage 01h)に現在設定されている最大リンクレートを、決定されたリンクレートに変更する(ステップS29)。ステップS29では、CPU11は、最小リンクレートおよび最大リンクレートの双方を指定するリンクレート指定情報を含むMode Select コマンドをストレージデバイス3に送出してもよい。リンクレート指定情報によって指定される最大リンクレートは、上述の決定されたリンクレートを示す。リンクレート指定情報によって指定される最小リンクレートは、Mode Page 19h (Subpage 01h)に現在設定されている最小リンクレートと同じリンクレートであってもよい。
図8は、決定された電力スロットリングモードをストレージデバイス3に設定するために使用されるモードページの例を示す。
ここでは、SASを例に、電力スロットリングモードの設定のためのインタフェースの例を説明する。SASでは、Mode Selectコマンドでストレージデバイス3の様々な動作をチューニングする実装が一般的で、本実施形態における電力スロットリングモードの設定においても、電力スロットリングモードの設定のためのインタフェースとして、ベンダーユニークなPAGE CODE を有するモードページが使用される。図8では、例として、PAGE CODE (36h)を有するベンダーユニークなモードページが示されている。
様々なモードページがストレージデバイス3の例えばDRAM等に保持されている。図8に示すPAGE CODE (36h)のモードページはこれらモードページの一つである。
このPAGE CODE (36h)のモードページにおいては、例えば、バイト2のビット7が「Init_Set_En」ビットとして使用され、バイト2のビット6が「LR_Set_En」ビットとして使用され、バイト2のビット5−ビット0が「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」によって指定される電力スロットリングを実行する。
ストレージデバイス3が、動作中の電力設定の変更が難しいハードウェアを使用している機種であるケースについては、CPU11は、Init_Set_En=1b, LR_Set_En=0bに設定し、そしてストレージデバイス3をパワーオフした後に再度パワーオンするパワーサイクルを実行し、これによって初期化シーケンスにおいて本Pageをストレージデバイス3に参照させる。これにより、ストレージデバイス3の初期化シーケンスのタイミングで、ストレージデバイス3にその電力スロットリングモードを、「Power_Level_Mode」によって指定された電力スロットリングに変更させることができる。
パワーオンされている状態でストレージデバイス3の電力設定を変更したいケースにおいては、CPU11は、LR_Set_En=1bに設定する。これにより、リンクリセットシーケンスのタイミングで、ストレージデバイス3にその電力スロットリングモードを、「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コマンドによって変更することができる。
図9は、ホストシステム1がストレージデバイス3に電力スロットリングモードを設定してからストレージデバイス3がこの電力スロットリングモードに対応する電力設定を実行するまでの処理の手順を示す。
図9のシーケンス図は、図2のステップS14で説明した電力スロットリングシーケンス内の処理を示す。
ホストシステム1のCPU11は、「Init_Set_En」、「LR_Set_En」の設定に基づき、電力スロットリング変更シーケンスの実施の要否を判定する(ステップS30)。「Init_Set_En」=1bまたは「LR_Set_En」=1bに設定されているならば、ホストシステム1のCPU11とストレージデバイス3内のコントローラ4とによって以下の処理が実行される。
CPU11は、PAGE CODE (36h)のモードページの「Power_Level_Mode」フィールドに、決定された電力スロットリングモード(Power_Level_Mode (A)またはPower_Level_Mode (B))を設定して、この決定された電力スロットリングモードで動作すべきことをストレージデバイス3に指示する(ステップS31)。ストレージデバイス3のコントローラ4は、応答をホストシステム1に返す(ステップS32)。
決定されたリンクレートとストレージデバイス3に保持されている現在の最大リンクレート(Maximum Link Rate)とが異なる場合、CPU11は、Select コマンドを使用して、Mode Page 19h (Subpage 01h)に現在設定されている最大リンクレートを決定されたリンクレートに変更する(ステップS33)。ストレージデバイス3のコントローラ4は、応答をホストシステム1に返す(ステップS34)。
次いで、CPU11は、ストレージデバイス3の電力設定の変更を初期化シーケンスまたはリンクリセットシーケンスのいずれのタイミングで行うかを判定する(ステップS40)。
ストレージデバイス3の電力設定の変更を初期化シーケンスで実行する場合、つまり「LR_Set_En」=0bの場合は、CPU11は、ストレージデバイス3をパワーオフした後に再度パワーオンするパワーサイクルを実行する(ステップS41)。ストレージデバイス3がパワーオンされると、ストレージデバイス3のコントローラ4は、初期化シーケンスを開始する(ステップS42)。
この初期化シーケンスでは、図10に示されているように、コントローラ4は、PAGE CODE (36h)のモードページ(つまり、モードページ36h)の「Init_Set_En」を参照して、「Init_Set_En」が0bまたは1bのいずれであるかを判定する(ステップS42)。
「Init_Set_En」=0bならば、コントローラ4は、ストレージデバイス3に許容される最大消費電力を、Mode Page 19h (Subpage 01h)に現在設定されている最大リンクレートに合致する最大消費電力に設定する(ステップS61)。ステップS61では、もしデフォルトの電力スロットリングモードがPower_Level_Mode (A)であるならば、コントローラ4は、Power_Level_Mode (A)で使用可能な幾つかの最大消費電力の中から現在の最大リンクレートに合致する最大消費電力を選択し、ストレージデバイス3に許容される最大消費電力を、この選択した最大消費電力に設定してもよい。
「Init_Set_En」=1bならば、コントローラ4は、ストレージデバイス3に許容される最大消費電力を、Mode Page 19h (Subpage 01h)に現在設定されている最大リンクレートとモードページ36 hで指定された電力スロットリングモードとの組み合わせに合致する最大消費電力に設定する(ステップS62)。そして、以降、コントローラ4は、Mode Page 19h (Subpage 01h)に現在設定されている最大リンクレートとモードページ36 hで指定された電力スロットリングモードとを使用して、ストレージデバイス3の動作を制御する。
次に、図9に戻り、ストレージデバイス3の電力設定の変更をリンクリセットシーケンスで実行する場合、つまり「LR_Set_En」=1bの場合は、CPU11は、シリアルインタフェース2を介したホストシステム1とストレージデバイス3との間のリンクを再確立するために、リンクリセットシーケンスを再度開始する(ステップS50)。ステップS50では、ストレージデバイス3のコントローラ4は、ストレージデバイス3に許容される最大消費電力を、Mode Page 19h (Subpage 01h)に現在設定されている最大リンクレートとモードページ36 hで指定された電力スロットリングモードとの組み合わせに合致する最大消費電力に設定する(ステップS62)。そして、以降、コントローラ4は、Mode Page 19h (Subpage 01h)に現在設定されている最大リンクレートとモードページ36hで指定された電力スロットリングモードとを使用して、ストレージデバイス3の動作を制御する。
なお、Init_Set_En」=0b且つLR_Set_En」=0bに設定されているならば、ホストシステム1のCPU11は電力設定に関する処理を何も実行しない(ステップS40)。
図11は、ホストシステム1とストレージデバイス3とによって実行されるリセットシーケンス内で行われる電力設定処理の手順を示す。
図11では、SASのリンクリセットシーケンス内のどの契機で電力スロットリングが実行されるべきかを示している。図11では、Identify交換によってリンクが確立される直前の何もパケットが交換されない安定しているタイミングで、電力の設定を変更する流れを示している。
まず、ホストシステム1のCPU11は、相手デバイスが存在するか否かを確認するための信号(COMINT)をシリアルインタフェース2を介して送信する(ステップS71)。シリアルインタフェース2にストレージデバイス3が接続されているならば、ストレージデバイス3のコントローラ4は、ストレージデバイス3が存在することをホストシステム1に通知するために、信号(COMINT)をシリアルインタフェース2を介してホストシステム1に返す(ステップS72)。
次いで、CPU11は、相手デバイスがSASデバイスであるか否かを確認するための信号(COMSAS)をシリアルインタフェース2を介して送信する(ステップS73)。ストレージデバイス3がSASデバイスであるならば、ストレージデバイス3のコントローラ4は、ストレージデバイス3がSASデバイスであることをホストシステム1に通知するために、信号(COMSAS)をシリアルインタフェース2を介してホストシステム1に返す(ステップS74)。
次いで、CPU11は、使用すべきリンクレートを決定するためのスピードネゴシエーションを、ストレージデバイス3と共同して実行する(ステップS75)。スピードネゴシエーションの処理では、ストレージデバイス3のコントローラ4は、ストレージデバイス3の最小リンクレートおよび最大リンクレートを示す能力情報(Phy Capabilities)をホストシステム1に送出するPhy Capability通知処理を行う。スピードネゴシエーションの処理では、例えば、データ転送が正常に実行可能か否かを確認する動作が、ストレージデバイス3の最小リンクレートから最大リンクレートまでリンクレートを段階的にアップしながら実行されてもよい。この場合、データ転送が正常に実行可能であることが確認された最も速いリンクレートが、ホストシステム1とストレージデバイス3との間のデータ転送に使用すべきリンクレートが決定される。これにより、使用すべきリンクレートは、ストレージデバイス3の最大リンクレートまでに制限できる。本実施形態では、図9で説明したように、Mode Page 19h (Subpage 01h)に設定されている最大リンクレートをユーザ指定のモードに適合するリンクレートに変更することができるので、ユーザ指定のモードに適合する最大リンクレートを示す能力情報(Phy Capabilities)をストレージデバイス3からホストシステム1に送ることができる。よって、ユーザ指定のモードに適合するリンクレートを使用することが可能となる。
スピードネゴシエーションの終了からIdentify交換までの期間は何もパケットが交換されない。この安定しているタイミングで、ストレージデバイス3のコントローラ4は、電力設定の変更を行うことができる。
すなわち、コントローラ4は、まず、モードページ36hのLR_Set_Enを参照して、消費電力設定の要否を判定する(ステップS76)。
LR_Set_En=0bであれば、コントローラ4は、電力設定に関する処理を何も実行しない(ステップS77)。
LR_Set_En=1bであれば、コントローラ4は、ストレージデバイス3に許容される最大消費電力を、スピードネゴシエーションによって決定されたリンクレートとモードページ36hの「Power_Level_Mode」によって指定される電力スロットリングモードの組み合わせに適合する最大消費電力に設定する(ステップS78)。
この後、ホストシステム1を一意に識別可能な識別子およびストレージデバイス3を一意に識別可能な識別子がホストシステム1とストレージデバイス3との間で交換され(ステップS79、S80)、これによってホストシステム1とストレージデバイス3との間の接続(リンク)が確立される。
図12のフローチャートは、ストレージデバイス3によって実行されるPhy capabilities制御処理の手順を示す。
このPhy capabilities制御処理は、Mode Page 19h (Subpage 01h)に設定されている最大/最小リンクレートを考慮して、適切な能力情報(Phy Capabilities)を作成するために実行される。
ストレージデバイス3のコントローラ4は、まず、Phy Capabilities作成用のワーク領域をDRAM6Aのようなメモリ上に確保する(ステップS101)。
次いで、コントローラ4は、各Portの最小リンクレートおよび最大リンクレートをMode Page 19h (Subpage 01h)を通じて参照する(ステップS102)。図13に示されているように、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(例えば、図4のPort A)の最小リンクレート(Minimum Link Rate)と最大リンクレート(Maximum Link Rate)とを示す。同様に、SAS phy mode descriptor list (Last)は、最後のPort n(例えば、図4のPort B)の最小リンクレート(Minimum Link Rate)と最大リンクレート(Maximum Link Rate)とを示す。
コントローラ4は、処理対象のリンクレートを最小リンクレートから最大リンクレートまでリンクレートを段階的に更新しながらデフォルトの能力情報(Phy Capabilities)を更新していくループ処理を実行する(ステップS103)。
デフォルトの能力情報(Phy Capabilities)は、ストレージデバイス3のハードウェアがサポートしている複数のリンクレートを示す。SASにおいては、図14に示す能力情報(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)を行う能力があることを表している。
例えば、ストレージデバイス3が、1.5Gbps, 3Gbps, 6Gbps, 12Gbpsの4種類のリンクレートの全てをサポートし、且つ全てのリンクレートで信号の周波数拡散を行う能力を有しているならば、デフォルトの能力情報(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」にそれぞれ対応する8つの能力ビットは1に設定される。
ステップS103のループ処理では、コントローラ4は、デフォルトの能力情報(Phy Capabilities)内の8つの能力ビットの内、最小リンクレートと最大リンクレートとによって規定される範囲に属する能力ビットを除く他のビットそれぞれをマスクする処理を実行する。例えば、ホストシステム1からのリンクレート指定情報によって最大リンクレートが6Gbpsに変更されている場合には、コントローラ4は、「G4 WITHOUT SSC」、「G4 WITH SSC」にそれぞれ対応する2つの能力ビットをマスクして、これら各能力ビットを0に設定する。
ステップS103のループ処理は、ステップS201、S202、S203、S204の処理を繰り返すことによって実行される。
ステップS201では、コントローラ4は、処理対象のリンクレートに対応する能力ビット(WITH SSC、WITHOUT SSCそれぞれに対応する2bit)をデフォルトの能力情報(Phy Capabilities)から抜き出す。ステップS202では、コントローラ4は、ベンダーユニークなモードページ(例えば、Mode Page 19E5)に保持されているSSC ON/OFF制限パラメータに基づいて、処理対象のリンクレートに対するSSCのON/OFF制限が必要か否か、つまり信号の周波数拡散を行うか否かを決定する(ステップS202)。SSC ON/OFF制限パラメータは、信号を周波数拡散を行うか否かを示すための情報である。信号の周波数拡散を行わない場合は、ステップS203で、コントローラ4は、抜き出した2つの能力ビット(WITH SSC、WITHOUT SSC)の内、WITH SSCに対応する能力ビットをマスクして、この能力ビットを0に設定する。つまり、コントローラ4は、信号の周波数拡散を実行する能力を有すること示すビット(WITH SSCに対応する能力ビット)をマスクして、抜き出した2つの能力ビット(WITH SSC、WITHOUT SSC)を更新する。信号の周波数拡散を行う場合は、ステップS203の処理はスキップされる。
そして、ステップS204で、コントローラ4は、マスク結果に基づいて、ワーク領域の内容を更新する。
ステップS201、S202、S203、S204の処理が繰り返されることによって、ワーク領域上に新たな能力情報が作成される。
ステップS103のループ処理が完了すると、コントローラ4は、図14の能力情報(Phy Capabilities)のフォーマットに従って、ワーク領域に“1”のスタートビットを立てる(ステップS104)。換言すれば、コントローラ4は、ワーク領域上の新たな能力情報の先頭に “1”のスタートビットを挿入する。
そして、コントローラ4は、ワーク領域上の新たな能力情報に含まれる“1”のビット数、つまりワーク領域に含まれる“1”のビット数が偶数か奇数かを判定する(ステップS105)。ワーク領域に含まれる“1”のビット数が奇数であるならば、コントローラ4は、図14の能力情報(Phy Capabilities)のフォーマットに従って、新たな能力情報の末尾に “1”のパリティを付加する(ステップS106)。そして、コントローラ4は、ワーク領域上の新たな能力情報を、ストレージデバイス3の能力情報(Phy Capabilities)として図1のレジスタ25に設定する(ステップS107)。レジスタ25に設定された能力情報(Phy Capabilities)は、スピードネゴシエーションにおいてホストシステム1に送信される。
図15のフローチャートは、消費電力の低減を優先する消費電力削減モード(Power Consumption Reduction Mode)に適合した電力スロットリングモードおよびリンクレートを定期的に再決定する処理の手順を示す。
ユーザによってPower Consumption Reduction Modeが指定されたケースにおいては、ホストシステム1のCPU11は、図6のフローチャートで説明したように、電力消費効率と処理すべきI/O数の双方を考慮して、Power Consumption Reduction Modeに適合するリンクレートと電力スロットリングモードとを決定する。そして、CPU11は、この決定されたリンクレートを指定するリンクレート指定情報およびこの決定された電力スロットリングモードを指定するモード指定情報をストレージデバイス3に送出して、ストレージデバイス3の最大消費電力を制限するための電力スロットリング動作を、決定された電力スロットリングモードで実行すべきことを、ストレージデバイス3に指示する。
ストレージデバイス3のコントローラ4は、ストレージデバイス3の最大消費電力を、受信されたリンクレート指定情報によって指定されるリンクレートと受信されたモード指定情報によって指定される電力スロットリングモードとの組み合わせに対応する最大消費電力に制限する電力スロットリング動作を実行する。さらに、コントローラ4は、リンクレート指定情報によって指定されるリンクレートでホストシステム1とストレージデバイス3との間のリンクが確立されるように、リンクレート指定情報によって指定されるリンクレートを最大リンクレートとして含む新たな能力情報(Phy Capabilities)を生成し、ホストシステム1とストレージデバイス3との間のリンクを確立する際に、この生成した新たな能力情報(Phy Capabilities)をホストシステム1に送信する。
このように、処理すべきI/Oの数を考慮することにより、Power Consumption Reduction Modeに適合した電力スロットリングモードをより精度よく選択することが可能となる。
しかし、処理すべきI/O数は、時間の経過とともに変動しうる。このため、ユーザによってPower Consumption Reduction Modeが指定されたケースにおいては、CPU11は、Power Consumption Reduction Modeに適合した電力スロットリングモードおよびリンクレートを定期的に再決定してもよい。これにより、処理すべきI/O数の変動に応じて、使用すべき電力スロットリングおよび使用すべきリンクレートを動的に変更することが可能となる。
まず、CPU11は、図6のフローチャートで説明した手順と同じ手順で、Power Consumption Reduction Modeに適合した電力スロットリングモードおよびリンクレートを決定する(ステップS301)。ステップS301では、CPU11は、この決定されたリンクレートを指定するリンクレート指定情報およびこの決定された電力スロットリングモードを指定するモード指定情報をストレージデバイス3に送出する。
再決定のための条件が満たされた場合(例えば、前回の決定から一定時間が経過した場合)(ステップS302のYes)、CPU11は、ステップS301の処理に進み、電力消費効率と現在の処理すべきI/O数の双方を考慮して、Power Consumption Reduction Modeに適合するリンクレートと電力スロットリングモードとを再決定する(ステップS301)。前回決定されたリンクレートと電力スロットリングモードと今回決定されたリンクレートと電力スロットリングモードとが異なるならば、CPU11は、この再決定されたリンクレートを指定するリンクレート指定情報およびこの再決定された電力スロットリングモードを指定するモード指定情報をストレージデバイス3に送出する。なお、前回決定されたリンクレートと電力スロットリングモードと今回決定されたリンクレートと電力スロットリングモードとが異なるか否かにかかわらず、CPU11は、この再決定されたリンクレートを指定するリンクレート指定情報およびこの再決定された電力スロットリングモードを指定するモード指定情報をストレージデバイス3に送出してもよい。
以上説明したように、本実施形態によれば、ホストシステム1は、性能を優先する第1の電力スロットリングモードに設定された場合におけるストレージデバイス3のリンクレート毎の最大消費電力と電力消費効率との対応関係と、ストレージデバイス3がピーク電力の低減を優先する第2の電力スロットリングモードに設定された場合におけるストレージデバイス3のリンクレート毎の最大消費電力と電力消費効率との対応関係とを示す情報と、性能を優先する第1モード、消費電力の低減を優先する第2モード、およびピーク電力の抑制を優先する第3モードの中からユーザによって指定されたモードとに基づいて、第1の電力スロットリングモードおよび第2の電力スロットリングモードの内、ユーザによって指定されたモードに適合する電力スロットリングモードを決定する。そして、ホストシステム1は、ストレージデバイス3の最大消費電力を制限する電力スロットリング動作を、決定された電力スロットリングモードで実行すべきことをストレージデバイス3に指示する。この場合、ホストシステム1は、決定された電力スロットリングモードを指定するモード指定情報をストレージデバイス3に送出することによって、決定された電力スロットリングモードで実行すべきことをストレージデバイス3に指示する。
よって、ユーザによってどのモードが指定されるかに応じて、性能を優先する第1の電力スロットリングモード、またはピーク電力の低減を優先する第2の電力スロットリングモードで、ストレージデバイス3に電力スロットリング動作を実行させることが可能となり、ストレージデバイス3の消費電力を柔軟に制御することが可能となる。
また、本実施形態では、ホストシステム1では、ユーザによって指定されたモードに適合するリンクレートがさらに決定され、決定されたリンクレートと決定された電力スロットリングモードの双方がストレージデバイス3に指示される。したがって、ユーザによってどのモードが指定されるかに応じて、リンクレートと最大消費電力の双方を柔軟に制御することが可能となる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1…ホストシステム(情報処理装置)、2…シリアルインタフェース、3…ストレージデバイス、4…コントローラ、5…NAND型フラッシュメモリ、11…CPU、14…デバイスインタフェース、21…ホストインタフェース。

Claims (12)

  1. 複数のリンクレートをサポートするシリアルインタフェースを介してストレージデバイスに接続可能な情報処理装置であって、
    前記シリアルインタフェースを介して前記ストレージデバイスを制御するコントローラを具備し、前記コントローラは、
    前記ストレージデバイスが性能を優先する第1の電力スロットリングモードに設定された場合における前記ストレージデバイスのリンクレート毎の最大消費電力と電力消費効率との対応関係と、前記ストレージデバイスがピーク電力の低減を優先する第2の電力スロットリングモードに設定された場合における前記ストレージデバイスのリンクレート毎の最大消費電力と電力消費効率との対応関係とを示す第1の情報を取得し、前記電力消費効率は1ワット当たり1秒当たりのI/O数を示し、
    性能を優先する第1モード、消費電力の低減を優先する第2モード、およびピーク電力の抑制を優先する第3モードの中からユーザによって指定されたモードと、前記取得された第1の情報とに基づいて、前記第1の電力スロットリングモードおよび前記第2の電力スロットリングモードの内、前記ユーザによって指定されたモードに適合する電力スロットリングモードを決定し、
    前記ストレージデバイスの最大消費電力を制限するための電力スロットリング動作を前記決定された電力スロットリングモードで実行すべきことを前記ストレージデバイスに指示するように構成されている、情報処理装置。
  2. 前記コントローラは、
    前記ユーザによって指定されたモードと前記取得された情報とに基づいて、前記ユーザによって指定されたモードに適合するリンクレートを決定し、
    前記決定されたリンクレートで前記情報処理装置と前記ストレージデバイスとの間のリンクを確立すべきことを前記ストレージデバイスに指示するように構成されている請求項1記載の情報処理装置。
  3. 前記コントローラは、前記第2モードが前記ユーザによって指定された場合、前記第1の電力スロットリングモードおよび前記第2の電力スロットリングモードの内、電力消費効率が高い電力スロットリングモードを、前記ユーザによって指定されたモードに適合する電力スロットリングモードとして決定するように構成されている請求項1記載の情報処理装置。
  4. 前記コントローラは、
    前記第1の電力スロットリングモードが前記第2の電力スロットリングモードよりも電力消費効率が高い場合、前記情報処理装置内のキューに蓄積されている処理すべきI/O数と、前記取得した情報とに基づいて、前記第1の電力スロットリングモードおよび前記第2の電力スロットリングモードの内、前記処理すべきI/O数に対して必要とされる総消費電力が小さい電力スロットリングモードを特定し、
    前記特定した電力スロットリングモードを、前記ユーザによって指定されたモードに適合する電力スロットリングモードとして決定するように構成されている請求項1記載の情報処理装置。
  5. 前記コントローラは、前記第2モードが前記ユーザによって指定された場合、前記情報処理装置内のキューに現在蓄積されている処理すべきI/O数に基づいて、前記ユーザによって指定されたモードに適合する電力スロットリングモードを定期的に再決定するように構成されている請求項4記載の情報処理装置。
  6. 前記コントローラは、前記ストレージデバイスの初期化シーケンスのタイミング、または前記情報処理装置と前記ストレージデバイスとの間のリンクを確立するリセットシーケンスのタイミングで、前記ストレージデバイスにその電力スロットリングモードを前記指示した電力スロットリングモードに変更させる請求項1記載の情報処理装置。
  7. 複数のリンクレートをサポートするシリアルインタフェースを介してストレージデバイスに接続可能な情報処理装置であって、
    前記シリアルインタフェースを介して前記ストレージデバイスを制御するコントローラを具備し、前記コントローラは、
    前記ストレージデバイスが性能を優先する第1の電力スロットリングモードに設定された場合における前記ストレージデバイスのリンクレート毎の最大消費電力と電力消費効率との対応関係と、前記ストレージデバイスがピーク電力の低減を優先する第2の電力スロットリングモードに設定された場合における前記ストレージデバイスのリンクレート毎の最大消費電力と電力消費効率との対応関係とを示す第1の情報を取得し、前記電力消費効率は1ワット当たり1秒当たりのI/O数を示し、
    性能を優先する第1モード、消費電力の低減を優先する第2モード、およびピーク電力の抑制を優先する第3モードの中からユーザによって指定されたモードと、前記取得された第1の情報とに基づいて、前記第1の電力スロットリングモードおよび前記第2の電力スロットリングモードの内、前記ユーザによって指定されたモードに適合する電力スロットリングモードを決定し、
    前記ストレージデバイスの最大消費電力を制限するための電力スロットリング動作を前記決定された電力スロットリングモードで実行すべきことを前記ストレージデバイスに指示するように構成され、
    前記コントローラは、
    前記ユーザによって指定されたモードが前記第1モードである場合、前記第1の電力スロットリングモードを前記ユーザによって指定されたモードに適合する電力スロットリングモードとして決定し、
    前記ユーザによって指定されたモードが前記第3モードである場合、前記第の電力スロットリングモードを前記ユーザによって指定されたモードに適合する電力スロットリングモードとして決定し、
    前記ユーザによって指定されたモードが前記第2モードである場合、前記第1の電力スロットリングモードおよび前記第2の電力スロットリングモードの内、電力消費効率が高い電力スロットリングモードを前記ユーザによって指定されたモードに適合する電力スロットリングモードとして決定する、情報処理装置。
  8. 複数のリンクレートをサポートするシリアルインタフェースを介してホストシステムに接続されるストレージデバイスであって、
    性能を優先する第1の電力スロットリングモードおよびピーク電力の低減を優先する第2の電力スロットリングモードを有し、前記第1の電力スロットリングモードまたは前記第2の電力スロットリングモードで前記ストレージデバイスの動作を制御するように構成されたコントローラを具備し、
    前記コントローラは、
    前記第1の電力スロットリングモードにおける前記ストレージデバイスのリンクレート毎の最大消費電力と電力消費効率との対応関係と前記第2の電力スロットリングモードにおける前記ストレージデバイスのリンクレート毎の最大消費電力と電力消費効率との対応関係とを示す第1の情報と、性能を優先する第1モード、消費電力の低減を優先する第2モード、およびピーク電力の抑制を優先する第3モードの中からユーザによって指定されるモードとに基づいて前記ホストシステムによって決定される電力スロットリングモードを指定するモード指定情報を前記ホストシステムから受信し、前記電力消費効率は1ワット当たり1秒当たりのI/O数を示し、
    前記ストレージデバイスの最大消費電力を、前記決定された電力スロットリングモードに対応する最大消費電力に制限するように構成されている、ストレージデバイス。
  9. 前記コントローラは、
    前記ユーザによって指定されたモードに適合するリンクレートを指定するリンクレート指定情報を前記ホストシステムから受信し、前記ユーザによって指定されたモードに適合する前記リンクレートは、前記ユーザによって指定されたモードと前記第1の情報とに基づいて前記ホストシステムによって決定され、
    前記ストレージデバイスの最大消費電力を、前記受信されたリンクレート指定情報によって指定されるリンクレートと前記受信されたモード指定情報によって指定される電力スロットリングモードとの組み合わせに対応する最大消費電力に制限するように構成されている請求項8記載のストレージデバイス。
  10. 前記コントローラは、
    前記ストレージデバイスがサポートする複数のリンクレートを示す複数のビットを含むデフォルトの能力情報を保持し、
    前記デフォルトの能力情報内の前記複数のビットの内、前記ホストシステムからのリンク指定情報によって指定される最小リンクレートと最大リンクレートとによって規定される範囲に属するビット群を除く他のビットそれぞれをマスクし、
    前記ホストシステムと前記ストレージデバイスとの間のリンクを確立する場合に、前記他のビットそれぞれをマスクすることによって得られる第1のビット群を含む新たな能力情報を前記ホストシステムに送信するように構成されている請求項8記載のストレージデバイス。
  11. 前記コントローラは、
    前記新たな能力情報に“1”のスタートビットを挿入し、
    前記新たな能力情報に含まれる“1”のビット数が偶数か奇数かを判定し、
    前記ビット数が奇数と判定された場合に前記新たな能力情報に“1”のパリティを付加する請求項10記載のストレージデバイス。
  12. 前記コントローラは、
    前記新たな能力情報に含まれる“1”にセットされたビット数が偶数か奇数かを判定する前に、信号の周波数拡散を行うか否かを示す情報に基づいて信号の周波数拡散を行うか否かを決定し、信号の周波数拡散を行わない場合は、前記第1のビット群のうち、信号の周波数拡散を実行する能力を有すること示すビットをマスクすることによって、前記第1のビット群を更新するように構成され、
    前記新たな能力情報は前記更新された第1のビット群を含む請求項11記載のストレージデバイス。
JP2018004459A 2018-01-15 2018-01-15 情報処理装置およびストレージデバイス Active JP6983670B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018004459A JP6983670B2 (ja) 2018-01-15 2018-01-15 情報処理装置およびストレージデバイス
US16/034,961 US10895904B2 (en) 2018-01-15 2018-07-13 Information processing apparatus, storage device, and method performed by host system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018004459A JP6983670B2 (ja) 2018-01-15 2018-01-15 情報処理装置およびストレージデバイス

Publications (2)

Publication Number Publication Date
JP2019125111A JP2019125111A (ja) 2019-07-25
JP6983670B2 true JP6983670B2 (ja) 2021-12-17

Family

ID=67212453

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018004459A Active JP6983670B2 (ja) 2018-01-15 2018-01-15 情報処理装置およびストレージデバイス

Country Status (2)

Country Link
US (1) US10895904B2 (ja)
JP (1) JP6983670B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7266628B2 (ja) * 2021-03-19 2023-04-28 株式会社日立製作所 ストレージ装置、ストレージ装置制御方法
JP7566676B2 (ja) 2021-03-22 2024-10-15 キオクシア株式会社 メモリシステム、および情報処理システム
CN114706803B (zh) * 2022-03-29 2023-11-10 深圳市广和通科技有限公司 多速率适配方法及PCIe设备

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5471353A (en) * 1992-12-18 1995-11-28 Western Digital (Sea), Pte., Ltd. Disk drive employing multi-mode spindle drive system
US6170028B1 (en) * 1997-05-13 2001-01-02 Micron Electronics, Inc. Method for hot swapping a programmable network adapter by using a programmable processor to selectively disabling and enabling power thereto upon receiving respective control signals
USRE40866E1 (en) * 2000-09-27 2009-08-04 Huron Ip Llc System, method, and architecture for dynamic server power management and dynamic workload management for multiserver environment
US6859886B1 (en) * 2001-10-02 2005-02-22 Lsi Logic Corporation IO based embedded processor clock speed control
JP3690665B2 (ja) * 2001-10-30 2005-08-31 インターナショナル・ビジネス・マシーンズ・コーポレーション 電気機器、コンピュータ装置、および電力供給方法
US6710578B1 (en) * 2002-08-27 2004-03-23 Motorola, Inc. Power resource management in a portable communication device
US7136953B1 (en) * 2003-05-07 2006-11-14 Nvidia Corporation Apparatus, system, and method for bus link width optimization
US7356756B1 (en) * 2004-08-20 2008-04-08 Altera Corporation Serial communications data path with optional features
TW200805047A (en) * 2005-12-23 2008-01-16 Koninkl Philips Electronics Nv Performance analysis based system level power management
US8358273B2 (en) * 2006-05-23 2013-01-22 Apple Inc. Portable media device with power-managed display
US7734941B2 (en) * 2006-08-31 2010-06-08 Ati Technologies Ulc Power management scheme employing an indicator of a current device operating configuration that requires a minimum processing power
US9824773B1 (en) * 2008-05-29 2017-11-21 Microsemi Storage Solutions, Inc. Apparatus and method to adjust power and performance of integrated circuits
US9176860B2 (en) * 2009-02-12 2015-11-03 Hewlett-Packard Development Company, L.P. Database join optimized for flash storage
US8478928B2 (en) * 2009-04-23 2013-07-02 Samsung Electronics Co., Ltd. Data storage device and information processing system incorporating data storage device
JP2011022752A (ja) * 2009-07-15 2011-02-03 Fujitsu Semiconductor Ltd 記憶制御装置及び制御方法
US8886974B2 (en) * 2009-10-06 2014-11-11 Hewlett-Packard Development Company, L.P. Controller
US20120026197A1 (en) * 2010-07-27 2012-02-02 Qualcomm Innovation Center, Inc. Method and Apparatus for Viewing Content on a Mobile Computing Device
US8966293B1 (en) * 2011-12-23 2015-02-24 Emc Corporation Method and apparatus for allocation of power consumption of a computer storage system to its tenants
BR112014013999A2 (pt) * 2011-12-29 2017-06-13 Intel Corp estrangulamento térmico adaptável com capacidade de configuração do usuário
JP5924087B2 (ja) * 2012-04-06 2016-05-25 富士通株式会社 情報処理装置、制御方法、及び制御プログラム
US8793518B2 (en) * 2012-06-13 2014-07-29 Dell Products Lp Systems and methods for providing supplemental power to battery powered information handling systems
US9405355B2 (en) * 2012-08-21 2016-08-02 Micron Technology, Inc. Memory operation power management by data transfer time adjustment
US9195294B2 (en) * 2012-11-13 2015-11-24 International Business Machines Corporation Cooperatively managing enforcement of energy related policies between virtual machine and application runtime
US9317212B2 (en) * 2012-12-18 2016-04-19 Intel Corporation Method and apparatus for controlling a storage device
US9075538B2 (en) * 2013-06-24 2015-07-07 Seagate Technology Llc Performance and power management for rotating data storage device
US9244519B1 (en) * 2013-06-25 2016-01-26 Smart Storage Systems. Inc. Storage system with data transfer rate adjustment for power throttling
KR102145420B1 (ko) * 2013-07-25 2020-08-18 삼성전자주식회사 데이터 전송 속도를 변경하는 스토리지 시스템 및 그것의 데이터 전송 속도 변경 방법
US9819424B2 (en) * 2013-09-09 2017-11-14 Apple Inc. Method and apparatus to mitigate interference between hardware circuitry and wireless circuitry in a wireless communication device
US9494998B2 (en) * 2013-12-17 2016-11-15 Intel Corporation Rescheduling workloads to enforce and maintain a duty cycle
US10417149B2 (en) * 2014-06-06 2019-09-17 Intel Corporation Self-aligning a processor duty cycle with interrupts
US9946481B2 (en) * 2015-05-01 2018-04-17 Toshiba Memory Corporation Dynamic power throttling in solid state drives
US10198061B2 (en) * 2015-09-01 2019-02-05 Toshiba Memory Corporation Storage and storage system
US20190018600A1 (en) * 2016-01-13 2019-01-17 Hewlett Packard Enterprise Development Lp Restructured input/output requests
US10324519B2 (en) * 2016-06-23 2019-06-18 Intel Corporation Controlling forced idle state operation in a processor
US10591383B2 (en) * 2016-08-26 2020-03-17 Oracle International Corporation Characterizing the I/O-performance-per-watt of a computing device across a range of vibrational operating environments

Also Published As

Publication number Publication date
US10895904B2 (en) 2021-01-19
JP2019125111A (ja) 2019-07-25
US20190220082A1 (en) 2019-07-18

Similar Documents

Publication Publication Date Title
US7206875B2 (en) Expander device capable of persistent reservations and persistent affiliations
JP4988678B2 (ja) Pciエキスプレス帯域幅を動的に平衡化するためのシステム
US7660925B2 (en) Balancing PCI-express bandwidth
US6633956B1 (en) Memory card with task registers storing physical addresses
JP6983670B2 (ja) 情報処理装置およびストレージデバイス
US8762679B2 (en) Systems and methods of allocating storage regions to virtual regions
JP4900760B2 (ja) Osイメージのデプロイメントマシン及び方法
US8635386B2 (en) Communication control device, data communication method and program
US20050223181A1 (en) Integrated circuit capable of copy management
TWI764417B (zh) 符合擴展式串列周邊介面規格的裝置與系統
CN110888520B (zh) 操作频率调整方法及装置
USRE45457E1 (en) Memory reuse for multiple endpoints in USB device
WO2024103829A1 (zh) 一种端口配置方法、组件及硬盘扩展装置
JP2003242470A (ja) 外部接続機器及びホスト機器
JP2012063817A (ja) 通信装置
US11625084B2 (en) Method of optimizing device power and efficiency based on host-controlled hints prior to low-power entry for blocks and components on a PCI express device
JP2003241908A (ja) 外部接続機器及びホスト機器
US7607579B2 (en) Information processing apparatus
TW200917040A (en) Bus width arbitration
CN108205478B (zh) 智能序列式小型计算机系统接口物理层功率管理
WO2023082622A1 (zh) 一种主从设备兼容的通信模块设计方法及装置
US10853255B2 (en) Apparatus and method of optimizing memory transactions to persistent memory using an architectural data mover
US20090019211A1 (en) Establishing A Redundant Array Of Inexpensive Drives
US10216421B2 (en) Method of operating storage device using serial interface and method of operating data processing system including the same
JP2000132494A (ja) コンピュータシステムおよび同システムにおけるオーディオ出力制御方法

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20180830

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200915

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210528

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210608

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210803

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20211026

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211124

R150 Certificate of patent or registration of utility model

Ref document number: 6983670

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150