(57)【要約】【課題】安定した動作を実現できる情報処理装置およびストレージデバイスを実現する。【解決手段】実施形態によれば、情報処理装置は、ストレージデバイスが接続されるコネクタであって、１本以上の電源ピンと複数の信号ピンとを含む複数のピンを有するコネクタと、前記ストレージデバイスに前記１本以上の電源ピンを介して電力を供給する電源回路とを含む。前記複数のピンは、前記電源回路の電力供給能力にしたがって第１の電位またはオープン状態に設定される第１のピンを含む。前記第１の電位に設定されている前記第１のピンの状態は、前記コネクタの前記１本以上の電源ピンを介して前記電源回路から前記ストレージデバイスへ供給される最大電力が第１の電力であること示す。前記オープン状態に設定される前記第１のピンの状態は、前記最大電力が第２の電力であること示す。【選択図】図１
2019149045.tif 000002
【特許請求の範囲】
【請求項１】
ストレージデバイスが接続されるコネクタであって、１本以上の電源ピンと複数の信号ピンとを含む複数のピンを有するコネクタと、
前記ストレージデバイスに前記１本以上の電源ピンを介して電力を供給する電源回路とを具備し、
前記複数のピンは、前記電源回路の電力供給能力にしたがって第１の電位またはオープン状態に設定される第１のピンを含んでおり、
前記第１の電位に設定されている前記第１のピンの状態は、前記コネクタの前記１本以上の電源ピンを介して前記電源回路から前記ストレージデバイスへ供給される最大電力が第１の電力であること示し、
前記オープン状態に設定される前記第１のピンの状態は、前記コネクタの前記１本以上の電源ピンを介して前記電源回路から前記ストレージデバイスへ供給される前記最大電力が前記第１の電力と異なる第２の電力であること示す、情報処理装置。
【請求項２】
前記第１の電力は前記第２の電力よりも大きい請求項１記載の情報処理装置。
【請求項３】
前記第１の電力に対応する最大電流は、電源ピン当たりに供給可能な第１の電流量に前記電源ピンの総数を乗じることによって得られる第１の最大電流であり、
前記第２の電力に対応する最大電流は、前記第１の最大電流よりも少ない請求項１記載の情報処理装置。
【請求項４】
前記複数のピンは未接続ピンとして規定されたピン群を含み、
前記第１のピンは、前記未接続ピンとして規定された前記ピン群内の一つピンである請求項１記載の情報処理装置。
【請求項５】
ホストのコネクタに接続可能なストレージデバイスであって、前記コネクタは１本以上の電源ピンと複数の信号ピンとを含む複数のピンを有しており、
不揮発性半導体メモリと、
前記不揮発性半導体メモリを制御するコントローラとを具備し、
前記コントローラは、前記複数のピンの第１のピンが第１の電位に設定されている場合、前記ストレージデバイスによって消費される最大電力を第１の電力以下に制限し、前記第１のピンがオープン状態である場合、前記ストレージデバイスによって消費される前記最大電力を前記第１の電力と異なる第２の電力以下に制限するように構成されている、ストレージデバイス。
【請求項６】
前記第１の電力は前記第２の電力よりも大きい請求項５記載のストレージデバイス。
【請求項７】
前記第１の電力に対応する最大電流は、電源ピン当たりに供給可能な第１の電流量に前記電源ピンの総数を乗じることによって得られる第１の最大電流であり、
前記第２の電力に対応する最大電流は、前記第１の最大電流よりも少ない請求項５記載のストレージデバイス。
【請求項８】
前記複数のピンは未接続ピンとして規定されたピン群を含み、
前記第１のピンは、前記未接続ピンとして規定された前記ピン群内の一つピンである請求項５記載のストレージデバイス。
【請求項９】
前記コントローラは、
前記第１のピンが前記第１の電位に設定されている場合、前記ホストからのライト要求およびリード要求に基づいて前記不揮発性半導体メモリに対するデータ書き込み動作およびデータ読み出し動作を実行し、
前記第１のピンが前記オープン状態である場合、前記ホストからの前記ライト要求および前記リード要求に基づいて前記不揮発性半導体メモリに対する前記データ書き込み動作および前記データ読み出し動作を実行せずに、前記ライト要求および前記リード要求に対するレスポンスとして前記ホストにエラーを返すように構成されている請求項５記載のストレージデバイス。
【請求項１０】
前記コントローラは、互いに電力消費量が異なる複数の動作モードの任意の一つを使用して、前記不揮発性半導体メモリに対するデータ書き込み動作およびデータ読み出し動作を実行するように構成され、
前記コントローラは、前記第１のピンが前記第１の電位に設定されている場合、前記複数の動作モードのうちの第１の動作モードを使用して前記不揮発性半導体メモリに対するデータ書き込み動作およびデータ読み出し動作を実行し、前記第１のピンが前記オープン状態である場合、前記複数の動作モードのうちの第２の動作モードを使用して前記不揮発性半導体メモリに対するデータ書き込み動作およびデータ読み出し動作を実行するように構成されている請求項５記載のストレージデバイス。
【請求項１１】
前記コントローラは、前記ホストからの問い合わせコマンドに応答して、前記コネクタの電力供給能力を識別可能な情報を前記ホストに通知するように構成されている請求項５記載のストレージデバイス。
【請求項１２】
前記コントローラは、前記ホストからの問い合わせコマンドに応答して、前記第１のピンが前記第１の電位または前記オープン状態のいずれに設定されているかを示す情報を前記ホストに通知するように構成されている請求項５記載のストレージデバイス。
【請求項１３】
前記コントローラは、前記第１のピンが前記第１の電位に設定されている場合、前記ホストからの問い合わせコマンドに応答して、前記コネクタが供給可能な最大電力または最大電流が前記第１の電力または前記第１の電力に対応する第１の電流であることを示す情報を前記ホストに通知し、前記第１のピンが前記オープン状態である場合、前記ホストからの前記問い合わせコマンドに応答して、前記コネクタが供給可能な最大電力または最大電流が前記第２の電力または前記第２の電力に対応する第２の電流であることを示す情報を前記ホストに通知するように構成されている請求項５記載のストレージデバイス。
【請求項１４】
前記コントローラは、前記第１のピンが前記第１の電位に設定されている場合、前記ホストからの問い合わせコマンドに応答して、前記第１の電力以下で動作可能な動作モードの中で最も電力消費量の大きい動作モードを示す情報を前記ホストに通知し、前記第１のピンが前記オープン状態である場合、前記ホストからの前記問い合わせコマンドに応答して、前記第２の電力で動作可能な動作モードの中で最も電力消費量の大きい動作モードを示す情報を前記ホストに通知するように構成されている請求項１０記載のストレージデバイス。
【請求項１５】
ホストのコネクタに接続可能なストレージデバイスであって、前記コネクタは１本以上の電源ピンと複数の信号ピンとを含む複数のピンを有しており、
不揮発性半導体メモリと、
前記不揮発性半導体メモリを制御するコントローラとを具備し、
前記コントローラは、互いに電力消費量が異なる複数の動作モードの任意の一つを使用して、前記不揮発性半導体メモリに対するデータ書き込み動作およびデータ読み出し動作を実行するように構成され、
前記コントローラは、前記複数のピンの第１のピンが第１の電位に設定されている場合、前記複数の動作モードのうち、最大消費電力が第１の電力以下である第１の動作モードを使用して前記不揮発性半導体メモリに対するデータ書き込み動作およびデータ読み出し動作を実行し、前記第１のピンがオープン状態である場合、前記複数の動作モードのうち、最大消費電力が第２の電力以下である第２の動作モードを使用して前記不揮発性半導体メモリに対するデータ書き込み動作およびデータ読み出し動作を実行するように構成されている、ストレージデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、ストレージデバイスの電力消費を制御する技術に関する。
【背景技術】
【０００２】
近年、不揮発性メモリを備えるストレージデバイスが広く普及している。
【０００３】
このようなストレージデバイスの一つとして、ＮＡＮＤ型フラッシュメモリを備えるソリッドステートドライブ（ＳＳＤ）が知られている。ＳＳＤは、その低電力消費、高性能という特徴から、パーソナルコンピュータ、サーバコンピュータといった様々な情報処理装置のストレージとして利用されている。これら情報処理装置はＳＳＤのホストとして機能する。
【０００４】
ホストにおいては、ＳＳＤは、このホスト内のコネクタ（ソケットとも云う）に接続され、このホストから供給される電力によって動作する。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】PCI Express M.2 Specification Revision 1.1, December 9, 2016
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明が解決しようとする課題は、安定した動作を実現できる情報処理装置およびストレージデバイスを提供することである。
【課題を解決するための手段】
【０００７】
実施形態によれば、情報処理装置は、ストレージデバイスが接続されるコネクタであって、１本以上の電源ピンと複数の信号ピンとを含む複数のピンを有するコネクタと、前記ストレージデバイスに前記１本以上の電源ピンを介して電力を供給する電源回路とを具備する。前記複数のピンは、前記電源回路の電力供給能力にしたがって第１の電位またはオープン状態に設定される第１のピンを含む。前記第１の電位に設定されている前記第１のピンの状態は、前記コネクタの前記１本以上の電源ピンを介して前記電源回路から前記ストレージデバイスへ供給される最大電力が第１の電力であること示す。前記オープン状態に設定される前記第１のピンの状態は、前記コネクタの前記１本以上の電源ピンを介して前記電源回路から前記ストレージデバイスへ供給される前記最大電力が前記第１の電力と異なる第２の電力であること示す。
【図面の簡単な説明】
【０００８】
【図１】実施形態に係る情報処理装置（ホスト）の構成例を示すブロック図。
【図２】複数のキャリアを備える、同実施形態の情報処理装置の筐体の構造の例を示す斜視図。
【図３】キャリアの構成例を示すブロック図。
【図４】実施形態に係るストレージデバイスの構造の例を示す図。
【図５】同実施形態の情報処理装置内のコネクタ（ソケット）のピン配置の例を示す図。
【図６】同実施形態のストレージデバイスの構成例を示すブロック図。
【図７】同実施形態のストレージデバイスによってサポートされる複数のパワーステートの例を示す図。
【図８】同実施形態のストレージデバイスが複数のパワーステートを有する場合に同実施形態のストレージデバイスによって実行される電力消費制限処理の手順を示すフローチャート。
【図９】同実施形態のストレージデバイスによって実行される、問い合わせコマンドに対する処理の手順を示すシーケンス図。
【図１０】同実施形態のストレージデバイスがコネクタの最大電流をホストに報告するために使用されるデータ構造の例を示す図。
【図１１】同実施形態のストレージデバイスがコネクタの最大電流をホストに報告するために使用されるデータ構造の別の例を示す図。
【図１２】同実施形態のストレージデバイスがコネクタの最大電力をホストに報告するために使用されるデータ構造の例を示す図。
【図１３】同実施形態のストレージデバイスがコネクタの最大電力をホストに報告するために使用されるデータ構造の別の例を示す図。
【図１４】同実施形態のストレージデバイスが接続されているコネクタを用いて利用可能なパワーステートの最小番号を同実施形態のストレージデバイスからホストに報告するために使用されるデータ構造の例を示す図。
【図１５】同実施形態のストレージデバイスがコネクタの特定ピンの状態をホストに報告するために使用されるデータ構造の例を示す図。
【図１６】同実施形態のストレージデバイスがコネクタのタイプをホストに報告するために使用されるデータ構造の例を示す図。
【図１７】同実施形態のストレージデバイスによってサポートされる単一のパワーステートの例を示す図。
【図１８】同実施形態のストレージデバイスが単一のパワーステートのみを有する場合に同実施形態のストレージデバイスによって実行される電力消費制限処理の手順を示すフローチャート。
【図１９】同実施形態のストレージデバイスによって実行される、電力制御システムＯｆｆコマンドに対する処理の手順を示すシーケンス図。
【図２０】同実施形態のストレージデバイスによって実行される電力制御処理の手順を示すフローチャート。
【発明を実施するための形態】
【０００９】
以下、図面を参照して、実施形態を説明する。  
【００１０】
まず、図１を参照して、実施形態に係るホスト（ホストシステム）２の構成を説明する。
【００１１】
このホスト２は、パーソナルコンピュータ、サーバコンピュータのような情報処理装置（コンピューティングデバイスとも云う）であり、ホスト２に接続されたストレージデバイスであるソリッドステートドライブ（ＳＳＤ）３に対してデータの書き込み、データの読み出し等を要求するように構成されている。
【００１２】
ホスト２は、プロセッサ（ＣＰＵ）１０１、メインメモリ１０２、電源コントローラ１０３、電源回路１０４、複数のコネクタ１０５、等を含む。
【００１３】
プロセッサ１０１は、この情報処理装置の各コンポーネントの動作を制御するように構成されたＣＰＵである。このプロセッサ１０１は、複数のＳＳＤ３のいずれか１つからメインメモリ１０２にロードされる様々なプログラムを実行することができる。なお、複数のＳＳＤ３によってＲＡＩＤ１（ストライピング）が構成されている場合においては、これらプログラムは、ＲＡＩＤ１（ストライピング）を構成するこれらＳＳＤ３からロードされる。メインメモリ１０２は、ＤＲＡＭのようなランダムアクセスメモリから構成される。
【００１４】
プロセッサ１０１によって実行されるプログラム（ホストソフトウェア）は、アプリケーションプログラム、オペーティングシステム、ファイルシステム、デバイスドライバ、等を含む。さらに、ホストソフトウェアは、各ＳＳＤ３のパワーマネージメントに関する処理を実行するストレージ管理プログラム１００を含んでもいてもよい。
【００１５】
各ＳＳＤ３は少なくとも一つの動作モードをサポートし、ある動作モードを使用して不揮発性半導体メモリに対するデータ書き込み動作およびデータ読み出し動作を実行する。
複数の動作モードをサポートするＳＳＤ３においては、これら動作モードにおける電力消費量は互い異なる。このため、これら動作モードはパワーステートとも称される。
【００１６】
各ＳＳＤ３は最大３２の動作モード（最大３２のパワーステート）までサポートしてもよい。各ＳＳＤ３においては、パワーステートは０から始まる連続する番号によって識別されてもよい。
【００１７】
例えば、あるＳＳＤが、３つの動作モード、つまりパワーステート０、パワーステート１、パワーステート２をサポートする場合、パワーステート０は最も電力消費量が大きいパワーステートを示してもよい。
【００１８】
ストレージ管理プログラム１００は、各ＳＳＤ３からパワーステートに関する情報を含むデータ構造を取得することによって、各ＳＳＤ３によってサポートされているパワーステートを知ることができる。
【００１９】
各ＳＳＤ３から取得される上述のデータ構造には、各パワーステートに対応する最大消費電力を示す値、各パワーステートに対応する性能を示す値が含まれてもよい。あるパワーステートに対応する最大消費電力は、このパワーステートにおいてＳＳＤ３によって消費される最大電力を示す。あるパワーステートに対応する性能は、このパワーステートにおいて不揮発性半導体メモリに対してデータ読み出し動作およびデータ書き込み動作を行った場合のリード／ライト性能を示す。リード／ライト性能は、例えば、ライトスループット、ライトレイテンシ、リードスループット、リードレイテンシ、等によって表されてもよい。
【００２０】
電源コントローラ１０３は、ホスト２の電力管理を実行するように構成されたシステムコントローラとして機能する。電源コントローラ１０３は、ユーザによる電源スイッチの操作に応じてホスト２をパワーオンおよびパワーオフする。電源回路１０４は、ホスト２内の各コンポーネントに電力を供給するとともに、各コネクタ１０５に接続されたＳＳＤ３にも電力を供給する。
【００２１】
各コネクタ１０５は、ＳＳＤ３が接続可能に構成されている。各コネクタ１０５は、ソケットと称されることもある。各コネクタ１０５は、複数のピンを有する。これらピンは、１本以上の電源ピン（パワーピン）、シリアルインタフェース用の複数の信号ピン、等を含む。電源回路１０４は、コネクタ１０５の１本以上の電源ピンを介してＳＳＤ３に電力を供給する。シリアルインタフェース用の複数の信号ピンは、複数のレーン、例えば４レーン、のシリアルインタフェースをサポートしてもよい。各レーンは、送信用の差動信号線ペアと、受信用の差動信号線ペアとを含む。
【００２２】
コネクタ１０５は、PCI Express（登録商標）（PCIe）規格のようなシリアルインタフェース用のコネクタであってもよい。以下では、コネクタ１０５が、PCI Express M.2 Specificationで規定されたコネクタ（M.2コネクタ）として実現されている場合を例示する。
【００２３】
コネクタ１０５がM.2コネクタである場合、ＳＳＤ３はこのコネクタ１０５に取り付け可能なPCI Express M.2 デバイスとして実現される。PCI Express M.2 デバイスは、面積および体積の双方においてより小さいフォームファクタを有するアドイン・カードデバイスである。M.2コネクタとして実現されるコネクタ１０５においては、シリアルインタフェース用の複数の信号ピンに加え、９つの電源ピン（９つの３．３Ｖピン）が規定されている。
【００２４】
シリアルインタフェース用の複数の信号ピンは、複数の差動信号ペアをホスト２とＳＳＤ３との間で伝送するために使用される。ホスト２においては、これら複数の信号ピンは、PCI Expressバスを介して、例えばプロセッサ１０１のPCI Expressポートに接続されてもよい。あるいは、シリアルインタフェース用の複数の信号ピンは、PCI Expressバススイッチを介してプロセッサ１０１のPCI Expressポートに接続されてもよい。
【００２５】
PCI Express M.2 Specificationでは、コネクタ１０５を介してＳＳＤ３に供給可能な最大電流は２．５Ａである。
【００２６】
一本の３．３Ｖピン当たりの最大電流は、０．５Ａ（３．３Ｖ時に８．２５Ｗ、実際の電源電圧範囲は３．１３５〜３．４６５Ｖであるので、ワーストケースで７．８３７５Ｗ）であるので、本来は、３．３Ｖピンが５本あれば、最大電流２．５Ａ（最大電力８．２５Ｗ）を実現できる。このコネクタ１０５においては、４本の３．３Ｖピンが追加されることによって上述したように計９つの電源ピンが設けられている。余分の４本の３．３Ｖピン（エクストラパワーピン）は、ＳＳＤ３に供給可能な最大電力（または最大電流）を増やすことを意図したものではなく、電源電圧（３．３Ｖ）の電圧降下を低減する目的で使われている。
【００２７】
ところが、最近では、サーバコンピュータのような高性能な情報処理装置向けに、このコネクタを用いた高性能ＳＳＤの実現が望まれている。そのため前述の余分な４本の３．３Ｖピンにも０．５Ａを流すことで、最大４．５Ａ（３．３Ｖ時に最大１４．８５Ｗ、３．１３５Ｖ時に最大１４．１０７５Ｗ）を供給可能なコネクタ（ハイパワーコネクタ）を実現すること、および最大４．５Ａ（３．３Ｖ時に最大１４．８５Ｗ。３．１３５Ｖ時に最大１４．１０７５Ｗ）の電力消費を必要とする高性能ＳＳＤを実現することが望まれるようになっている。
【００２８】
しかし、もしこのような大消費電力を必要とする高性能ＳＳＤを既存の、２．５Ａしか供給しないホストのコネクタに誤って挿入すると、ホストにとって予期せぬ大きな電流が流れることになる。
【００２９】
この結果、ホストにおいては、過電流防止回路の動作、過電流防止用のヒューズの切断等のトラブルが発生する場合がある。あるいは、電力供給過剰によって電源電圧の電圧降下が発生し、これによって信号のレベルも下がる。この結果、例えば、負論理のリセット信号がアサートされてしまう場合もある。この場合、ホストまたはＳＳＤにおいては、システム回路が予期せずにリセットされてしまうことによって動作異常が引き起こされる場合がある。
【００３０】
また、このような現象が起きた場合、ユーザは大消費電力を必要とするＳＳＤを十分な電力供給能力のないコネクタに無意識のうちに接続しているため、その原因を調べるのに多くの時間が必要とされる場合もある。
【００３１】
そのため、本実施形態では、従来、NC（No Connect：電気的にどこにも接続されていないピン。つまり、オープン状態のピン）であったコネクタ１０５のピン群の特定の一つのピンがホスト側２でGNDに接続されていることを、ＳＳＤ３が確認することにより、最大４．５Ａ（３．３Ｖ時に最大１４．８５Ｗ）を供給可能なコネクタに接続されていることをＳＳＤ３が認識できるようにした。以下では、この特定のピンをＰＬ（Power Level）と呼ぶ。
【００３２】
換言すれば、ホスト１においては、コネクタ１０５の複数のピンは、電源回路１０４の電力供給能力にしたがって第１の電位（例えばＧＮＤ）またはオープン状態のいずれかに設定される第１のピン（つまりピン（ＰＬ））を含む。
【００３３】
第１の電位に設定されているピン（ＰＬ）の状態は、コネクタ１０５の複数の電源ピン（ここでは、９つの３．３Ｖピン）を介して電源回路１０４からＳＳＤ３へ供給される最大電力が第１の電力であること示す。
【００３４】
オープン状態に設定されるピン（ＰＬ）の状態は、コネクタ１０５の複数の電源ピン（ここでは、９つの３．３Ｖピン）を介して電源回路１０４からＳＳＤ３へ供給される最大電力が第１の電力と異なる第２の電力であること示す。
【００３５】
ここで、第１の電力と第２電力の関係は、第１の電力＞第２電力であってもよい。この場合、第１電力は１４．８５Ｗ（＝４．５Ａ）であり、第２電力は８．２５Ｗ（＝２．５Ａ）である。つまり、第１の電力に対応する最大電流は、１本の３．３Ｖピン当たりに供給可能な第１の電流量（ここでは０．５Ａ）に、複数の３．３Ｖピンの総数（ここでは９）を乗じることによって得られる第１の最大電流（ここでは、４．５Ａ）であり、第２の電力に対応する最大電流は、第１の最大電流よりも少ない第２の最大電流（ここでは、２．５Ａ）である。
【００３６】
電源回路１０４がコネクタ１０５を介してＳＳＤ３に供給可能な最大電力が第１の電力である場合においては、ホスト２においては、ピン（ＰＬ）はＧＮＤに接続される。図１においては、電源回路１０４が、２つのコネクタ１０５を介して２つのＳＳＤ３に第１の電力をそれぞれ供給可能な電力供給能力を有している場合、つまり２つのコネクタ１０５の各々の最大電力が１４．８５Ｗ（＝４．５Ａ）である場合が想定されている。この場合、２つのコネクタ１０５の各々においては、上述のピン（ＰＬ）はＧＮＤに接続される。
【００３７】
なお、一方のコネクタ１０５の最大電力が１４．８５Ｗ（＝４．５Ａ）で、他方のコネクタの最大電力が８．２５Ｗ（＝２．５Ａ）である場合には、一方のコネクタ１０５のピン（ＰＬ）のみがＧＮＤに接続され、他方のコネクタ１０５のピン（ＰＬ）はどこにも接続されないオープン状態に設定される。
【００３８】
なお、図１では、コネクタ１０５の最大電力が１４．８５Ｗ（＝４．５Ａ）である場合に、このコネクタ１０５のピン（ＰＬ）がＧＮＤに直接的に接続されている場合が例示されているが、このピン（ＰＬ）は、制御信号によってオン／オフされるように構成されたスイッチ回路を介してＧＮＤに接続されていてもよい。
【００３９】
このスイッチ回路の一例としては、MOSFETから構成されるオープンドレイン回路が挙げられる。この場合、ホスト２側では、ピン（ＰＬ）は、オープンドレイン回路を介してＧＮＤに接続される。このオープンドレイン回路のオン/オフにより、ピン（ＰＬ）は、ハイインピーダンス状態（MOSFET=off）またはローインピーダンス状態（MOSFET=on）でＧＮＤに接続される。ＳＳＤ３側では、ピン（ＰＬ）をプルアップすることにより、ピン（ＰＬ）の状態（ローインピーダンス状態でＧＮＤに接続されるか、またはハイインピーダンス状態でＧＮＤに接続される）に応じたLowレベルまたはHighレベルの電圧を検知することができる。
【００４０】
また、ＳＳＤ３は、ホスト２として機能する情報処理装置に挿入可能なキャリア内に搭載されてもよい。
【００４１】
図２は、複数のキャリアを備えるホスト（情報処理装置）２の筐体の構造の例を示す。
【００４２】
このホスト（情報処理装置）２は、ラックに収容可能な薄い箱形の筐体２０１を備える。複数のキャリア３００は、例えば、筐体２０１の前面２０１Ａ側に収容されている。これら各キャリア３００は、必要に応じて、筐体２０１から取り外すことができる。各キャリア３００は、１つ以上のＳＳＤを搭載することができる。
【００４３】
システムボード（マザーボード）２０２は筐体２０１内に配置される。システムボード（マザーボード）２０２上においては、ＣＰＵ１０１、メモリ１０２、電源コントローラ１０３等を含む様々な電子部品が実装されている。
【００４４】
図３は、キャリア３００の構成例を示す。
【００４５】
図３は、２つのＳＳＤ３を搭載するように構成されたキャリア３００の構成が例示されている。このキャリア３００は、プリント回路基板（ＰＣＢ）３０１を含む。このプリント回路基板（ＰＣＢ）３０１には、ＳＳＤ３がそれぞれ取り付けられる２つのコネクタ１０５が配置されている。これら２つのコネクタ１０５は上述のＭ．２コネクタとして実現されている。
【００４６】
これら２つのコネクタ１０５は、プリント回路基板（ＰＣＢ）３０１に配置された別のコネクタ３０２を介して、システムボード（マザーボード）２０２上のPCI Expressバスに接続されてもよい。あるいは、２つのコネクタ１０５とコネクタ３０２との間にPCI Expressバススイッチが配置されていてもよい。
【００４７】
図４は、ＳＳＤ３の構造の例を示す。
【００４８】
ＳＳＤ３は、大消費電力を必要とする上述の高性能ＳＳＤとして実現されていてもよい。このＳＳＤ３がPCI Express M.2 デバイスとして実現されるケースにおいては、ＳＳＤ３は、プリント回路基板（ＰＣＢ）４００を含む。プリント回路基板（ＰＣＢ）４００上には、コントローラ４と、不揮発性半導体メモリである一つ以上のＮＡＮＤ型フラッシュメモリチップ５−１、５−２…が配置される。また、プリント回路基板（ＰＣＢ）４００の一端は、カードエッジ型のコネクタ４０１を含む。カードエッジ型のコネクタ４０１は、コネクタ１０５と同じピン配置を有する複数のピンを含む。プリント回路基板（ＰＣＢ）４００の一端がコネクタ１０５に挿入されることにより、ＳＳＤ３がコネクタ１０５に取り付けられる。
【００４９】
コントローラ４は、ＮＡＮＤ型フラッシュメモリチップ５−１、５−２を制御するように構成されている。
【００５０】
このコントローラ４は、ＧＮＤ／オープン判定機能、電力消費制限機能、問い合わせコマンド処理機能を実行するように構成されている。ＧＮＤ／オープン判定機能は、ＳＳＤ３が取り付けられたコネクタ１０５の特定のピン（ＰＬ）が第１の電位（ＧＮＤ）またはオープン状態のいずれに設定されているかに応じて、このコネクタ１０５の電力供給能力を判定する機能である。このオープン状態の態様には、ピン（ＰＬ）がどこにも接続されていない状態と、ハイインピーダンス状態でＧＮＤに接続されている状態とが含まれる。
【００５１】
電力消費制限機能は、ピン（ＰＬ）が第１の電位（ＧＮＤ）に設定されている場合、ＳＳＤ３によって消費される最大電力を上述の第１の電力以下に制限し、ピン（ＰＬ）がオープン状態である場合、ＳＳＤ３によって消費される最大電力を第１の電力と異なる第２の電力以下に制限する機能である。
【００５２】
問い合わせコマンド処理機能は、ホスト２からの問い合わせコマンドに応じて、ＳＳＤ３が取り付けられたコネクタ１０５の電力供給能力を識別可能な情報をホスト２に通知する機能である。ここで、問い合わせコマンドとは、ＳＳＤ３の状態またはＳＳＤ３の各種設定情報を報告するようにホスト２がＳＳＤ３に要求するコマンドの一つである。
【００５３】
コネクタ１０５の電力供給能力を識別可能な情報の例としては、限定されないが、以下か挙げられる。
（１）ＳＳＤ３が取り付けられているコネクタ１０５のピン（ＰＬ）が第１の電位（ＧＮＤ）またはオープン状態のいずれに設定されているかを示す情報
（２）ＳＳＤ３が取り付けられているコネクタ１０５を用いて利用可能な最大電力（または最大電流）を示す情報（つまり、このコネクタが供給可能な最大電力（または最大電流）が、１４．８５Ｗ（＝４．５Ａ）、または８．２５Ｗ（＝２．５Ａ）のいずれであるかを示す情報）
（３）ＳＳＤ３が取り付けられているコネクタ１０５を用いて利用可能な一番電力消費量が高い動作モードを示す情報
（４）ＳＳＤ３が取り付けられているコネクタ１０５がハイパワーのＭ．２コネクタまたは通常パワーのＭ．２コネクタのいずれであるかを示す情報
ハイパワーのＭ．２コネクタは、第１の電力（１４．８５Ｗ）を供給可能なＭ．２コネクタを意味する。通常パワーのＭ．２コネクタは、第２の電力（８．２５Ｗ）まで供給可能なＭ．２コネクタを意味する。
【００５４】
なお、ＳＳＤ３の他の構造の例としては、NAND型フラッシュメモリとコントローラを単一パッケージに収めたBGA SSDもある。
【００５５】
図５は、コネクタ１０５のピン配置の例を示す。
【００５６】
図５において、「ＰＥＲｐ０」、「ＰＥＲｎ０」はレーン０の受信用差動信号ペアを示し、「ＰＥＴｐ０」、「ＰＥＴｎ０」はレーン０の送信用差動信号ペアを示す。「ＰＥＲｐ１」、「ＰＥＲｎ１」はレーン１の受信用差動信号ペアを示し、「ＰＥＴｐ１」、「ＰＥＴｎ１」はレーン１の送信用差動信号ペアを示す。「ＰＥＲｐ２」、「ＰＥＲｎ２」はレーン２の受信用差動信号ペアを示し、「ＰＥＴｐ２」、「ＰＥＴｎ２」はレーン２の送信用差動信号ペアを示す。「ＰＥＲｐ３」、「ＰＥＲｎ３」はレーン３の受信用差動信号ペアを示し、「ＰＥＴｐ３」、「ＰＥＴｎ３」はレーン３の送信用差動信号ペアを示す。
【００５７】
「３．３Ｖ」は電源ピンを示し、「ＧＮＤ」はＧＮＤピンを示す。「ＰＥＲＳＴ＃」は負論理のリセット信号を示す。このリセット信号はＳＳＤ３内の回路をリセットするために使用される。「ＮＣ」は未接続ピンを示す。本実施形態では、未接続ピンの１つ（例えばＰｉｎ３０）が上述の特定のピン（ＰＬ）として使用される。
【００５８】
図６は、ＳＳＤ３の構成例を示す。
【００５９】
ＳＳＤ３は、コントローラ４および不揮発性半導体メモリ（ＮＡＮＤ型フラッシュメモリ）５を備える。ＮＡＮＤ型フラッシュメモリ５は、複数のＮＡＮＤ型フラッシュメモリチップを含んでいてもよい。コントローラ４は、ＮＡＮＤ型フラッシュメモリ５に電気的に接続され、ＮＡＮＤ型フラッシュメモリ５を制御し、ＮＡＮＤ型フラッシュメモリ５に対するデータ書き込み動作およびデータ読み出し動作を実行するように構成されたメモリコントローラとして動作する。このコントローラ４は、Ｓｙｓｔｅｍ−ｏｎ−ａ−ｃｈｉｐ（ＳｏＣ）のような回路によって実現されてもよい。
【００６０】
ＳＳＤ３は、ランダムアクセスメモリ、例えば、ＤＲＡＭ６も備えていてもよい。
【００６１】
ＮＡＮＤ型フラッシュメモリ５は、マトリクス状に配置された複数のメモリセルを含むメモリセルアレイを含む。ＮＡＮＤ型フラッシュメモリ５は、２次元構造のＮＡＮＤ型フラッシュメモリであってもよいし、３次元構造のフラッシュメモリであってもよい。
【００６２】
ＮＡＮＤ型フラッシュメモリ５のメモリセルアレイは、複数のブロックＢＬＫ０〜ＢＬＫｍ−１を含む。ブロックＢＬＫ０〜ＢＬＫｍ−１の各々は複数のページ（ここではページＰ０〜Ｐｎ−１）を含む。ブロックＢＬＫ０〜ＢＬＫｍ−１は、消去単位として機能する。ページＰ０〜Ｐｎ−１の各々は、同一ワード線に接続された複数のメモリセルを含む。ページＰ０〜Ｐｎ−１は、データ書き込み動作およびデータ読み込み動作の単位である。
【００６３】
コントローラ４は、ホストインタフェース１１、ＣＰＵ１２、ＮＡＮＤインタフェース１３、ＤＲＡＭインタフェース１４等を含んでもよい。これらＣＰＵ１２、ＮＡＮＤインタフェース１３、ＤＲＡＭインタフェース１４は、バス１０を介して相互接続されていてもよい。
【００６４】
ホストインタフェース１１は、ホスト２から様々なコマンド（例えば、ライトコマンド、リードコマンド、ＳＳＤ３の状態または各種設定を報告するように要求するコマンド（問い合わせコマンド）、等）を受信する。
【００６５】
ＣＰＵ１２は、ホストインタフェース１１、ＮＡＮＤインタフェース１３、およびＤＲＡＭインタフェース１４を制御するように構成されたプロセッサである。ＣＰＵ１２は、ＳＳＤ３の電源オンに応答して、ＮＡＮＤ型フラッシュメモリ５または図示しないＲＯＭに格納されている制御プログラム（ファームウェア）をＤＲＡＭ６上にロードし、このファームウェアを実行することによって様々な処理を行う。ＣＰＵ１２の動作は、ＣＰＵ１２によって実行される上述のファームウェアによって制御される。
【００６６】
ＣＰＵ１２は、上述のファームウェアを実行することによって、ＧＮＤ／Ｏｐｅｎ判定部２１、電力消費制限制御部２２、問い合わせコマンド処理部２３として機能することができる。なお、これらＧＮＤ／Ｏｐｅｎ判定部２１、電力消費制限制御部２２、問い合わせコマンド処理部２３の一部または全ては、コントローラ４内のハードウェアによって実現されていてもよい。
【００６７】
ＧＮＤ／Ｏｐｅｎ判定部２１は、ホストインタフェース１１と共同して、ＳＳＤ３が取り付けられているコネクタ１０５内のピン（ＰＬ）（例えばＰｉｎ３０）が第１の電位（ＧＮＤ）またはオープン状態のいずれに設定されているかを判定する。
【００６８】
電力消費制限制御部２２は、ピン（ＰＬ）が第１の電位（ＧＮＤ）に設定されている場合、ＳＳＤ３によって消費される最大電力を第１の電力以下に制限し、ピン（ＰＬ）がオープン状態である場合、ＳＳＤ３によって消費される最大電力を第１の電力と異なる第２の電力以下に制限する。
【００６９】
例えば、コントローラ４が、互いに電力消費量が異なる複数の動作モード（複数のパワーステート）を有しており、これらパワーステートの任意の一つを使用してＮＡＮＤ型フラッシュメモリ５に対するデータ書き込み動作およびデータ読み出し動作を実行するように構成されているケースにおいては、電力消費制限制御部２２は、ピン（ＰＬ）（例えばＰｉｎ３０）が第１の電位（ＧＮＤ）またはオープン状態のいずれに設定されているかに応じて、コントローラ４によって使用される動作モードを変更してもよい。
【００７０】
この場合、ピン（ＰＬ）が第１の電位（ＧＮＤ）に設定されているならば、コントローラ４は、複数の動作モードのうち、最大消費電力が第１の電力以下である第１の動作モードを使用してＮＡＮＤ型フラッシュメモリ５に対するデータ書き込み動作およびデータ読み出し動作を実行してもよい。一方、ピン（ＰＬ）がオープン状態であるならば、コントローラ４は、複数の動作モードのうち、最大消費電力が第２の電力以下である第２の動作モードを使用してＮＡＮＤ型フラッシュメモリ５に対するデータ書き込み動作およびデータ読み出し動作を実行してもよい。
【００７１】
第２の動作モードは、並列アクセスされるＮＡＮＤ型フラッシュメモリチップの数が第１の動作モードよりも少ない動作モードであってもよい。
【００７２】
コントローラ４が第１の電力を消費することが必要とされる一つの動作モード（一つのパワーステート）のみをサポートする構成であるケースにおいては、電力消費制限制御部２２は、ピン（ＰＬ）が第１の電位（ＧＮＤ）またはオープン状態のいずれに設定されているかに応じて、ＮＡＮＤ型フラッシュメモリ５に対するデータ書き込み動作およびデータ読み出し動作の実行を許可または禁止してもよい。
【００７３】
この場合、ピン（ＰＬ）が第１の電位（ＧＮＤ）に設定されているならば、コントローラ４は、ホスト２からのライト要求（ライトコマンド）およびリード要求（リードコマンド）に基づいてＮＡＮＤ型フラッシュメモリ５に対するデータ書き込み動作およびデータ読み出し動作を実行する。一方、ピン（ＰＬ）がオープン状態に設定されているならば、コントローラ４は、ホスト２からのライト要求（ライトコマンド）およびリード要求（リードコマンド）に基づいて、ＮＡＮＤ型フラッシュメモリ５に対するデータ書き込み動作およびデータ読み出し動作を実行せずに、ライト要求およびリード要求に対するレスポンスとしてホスト２にエラーを返す。
【００７４】
問い合わせコマンド処理部２３は、ホスト２からの問い合わせコマンドに応じて、ＳＳＤ３が取り付けられたコネクタ１０５の電力供給能力等を識別可能な情報をホスト２に通知する。この場合、問い合わせコマンド処理部２３は、ＳＳＤ３が取り付けられているコネクタ１０５のピン（ＰＬ）の状態、またはＳＳＤ３が取り付けられているコネクタ１０５の最大電力または最大電流、またはＳＳＤ３が取り付けられているコネクタ１０５を用いて利用可能な動作モード（パワーステート）の中で最も電力消費が大きい動作モード（パワーステート）、等をホスト２に通知してもよい。
【００７５】
ここで、コネクタ１０５の最大電力または最大電流を通知するケースについて説明する。
【００７６】
コネクタ１０５のピン（ＰＬ）が第１の電位（例えばＧＮＤ）に設定されている場合、問い合わせコマンド処理部２３は、ホスト２からの問い合わせコマンドに応答して、ＳＳＤ３が取り付けられているコネクタ１０５が供給可能な最大電力または最大電流が上述の第１の電力（１４．８５Ｗ）または上述の第１の電力に対応する第１の電流（４．５Ａ）であることを示す情報をホスト２に通知する。
【００７７】
コネクタ１０５のピン（ＰＬ）がオープン状態に設定されている場合、問い合わせコマンド処理部２３は、ホスト２からの問い合わせコマンドに応答して、ＳＳＤ３が取り付けられているコネクタ１０５が供給可能な最大電力または最大電流が上述の第２の電力（８．２５Ｗ）または上述の第２の電力に対応する第２の電流（２．５Ａ）であることを示す情報をホスト２に通知する。
【００７８】
コネクタ１０５を用いて利用可能なパワーステートの中で最も電力消費が大きいパワーステートを通知するケースでは、問い合わせコマンド処理部２３は、以下の処理を実行する。
【００７９】
コネクタ１０５のピン（ＰＬ）が第１の電位（例えばＧＮＤ）に設定されている場合、問い合わせコマンド処理部２３は、ホスト２からの問い合わせコマンドに応答して、上述の第１の電力で動作可能なパワーステートの中で最も電力消費量の大きいパワーステートを示す情報をホスト２に通知する。
【００８０】
コネクタ１０５のピン（ＰＬ）がオープン状態に設定されている場合、問い合わせコマンド処理部２３は、ホスト２からの問い合わせコマンドに応答して、上述の第２の電力で動作可能なパワーステートの中で最も電力消費量の大きい動作モードを示す情報をホスト２に通知する。
【００８１】
図７は、ＳＳＤ３によってサポートされる複数の動作モード（パワーステート）の例を示す。
【００８２】
図７では、ＳＳＤ３が、必要とされる電力消費量が互いに異なる４つのパワーステートをサポートしている場合が例示されている。これらパワーステートはこれらパワーステートに割り当てられた異なる番号によって識別される。ここでは、パワーステートに割り当てられた番号が小さいほど、そのパワーステートの最大消費電力が大きく、パワーステートに割り当てられた番号が大きいほど、そのパワーステートの最大消費電力が小さい場合を想定する。また、最大消費電力が大きいパワーステートほど、例えば、ＮＡＮＤ型フラッシュメモリ５に対する読み出し速度および書き込み速度が速くなり、単位時間あたりに処理できるコマンド数が多くなるなど、性能が上がる。
【００８３】
パワーステート０の最大消費電力は、例えば、１４Ｗである。パワーステート１の最大消費電力は、例えば、１１Ｗである。パワーステート２の最大消費電力は、例えば、８Ｗである。パワーステート３の最大消費電力は、例えば、５Ｗである。
【００８４】
このＳＳＤ３では、Ｐｉｎ３０がＧＮＤに接続されている場合には、全パワーステートを使用することができる。しかし、Ｐｉｎ３０がオープン状態に設定されている場合には、パワーステート２またはパワーステート３のみが使用可能である。したがって、Ｐｉｎ３０がオープン状態に設定されている場合には、コントローラ４は、使用すべきパワーステートを自動的にパワーステート２に設定する。これによって、ＳＳＤ３は、コネクタ１０５が安定して供給可能な電力の範囲内で動作することができる。
【００８５】
図８のフローチャートは、ＳＳＤ３が複数のパワーステートを有する場合にこのＳＳＤ３によって実行される電力消費制限処理の手順を示す。
【００８６】
ＳＳＤ３がパワーオンされた時、ＳＳＤ３のコントローラ４は、例えば、パワーステート２で動作を開始して、初期設定処理を実行する（ステップＳ１１）。初期設定処理では、コントローラ４は、まず、ＮＡＮＤ型フラッシュメモリ５の初期化を行い、ＧＮＤ／Ｏｐｅｎ判定部２１を動作させるのに必要なファームウェアをＮＡＮＤ型フラッシュメモリ５から読み込み、ＧＮＤ／Ｏｐｅｎ判定機能を有効にする。
【００８７】
そして、コントローラ４は、ＧＮＤ／Ｏｐｅｎ判定機能によって、Ｐｉｎ３０がＧＮＤに接続されているか、オープン状態であるかを判定する（ステップＳ１２）。
【００８８】
Ｐｉｎ３０がＧＮＤに接続されているならば、コントローラ４は、使用すべきパワーステートをパワーステート０に切り替える（ステップＳ１３）。
【００８９】
Ｐｉｎ３０がオープン状態であるならば、コントローラ４は、使用すべきパワーステートをパワーステート２に維持する（ステップＳ１４）。
【００９０】
この後、コントローラ４は、設定されたパワーステートを使用してＮＡＮＤ型フラッシュメモリ５の制御を実行することによって、例えば、論理物理アドレス変換テーブル、各種設定情報等を、ＮＡＮＤ型フラッシュメモリ５からＤＲＡＭ６にロードする。
【００９１】
このように、本実施形態では、たとえＳＳＤ３が、電力供給能力が不十分なコネクタに接続されても、システムが破壊されたり、システムの安定性が損なわれたりすることがなく、性能は低下するものの、安定して動作することができる。
【００９２】
図９のシーケンス図は、ＳＳＤ３によって実行される、ホスト２からの問い合わせコマンドに対する処理の手順を示す。
【００９３】
ホスト２は、必要に応じて、ＳＳＤ３の状態またはＳＳＤ３の各種設定情報を取得するためのコマンドである問い合わせコマンドをＳＳＤ３に送出する。
【００９４】
コントローラ４が問い合わせコマンドをホスト２から受信した時、コントローラ４は、ＳＳＤ３が取り付けられているコネクタ１０５の状態（コネクタ１０５の電力供給能力を識別可能な情報等）を、問い合わせコマンドに対する返り値としてホスト２に報告する（ステップＳ２１）。ステップＳ２１では、コントローラ４は、ＳＳＤ３が取り付けられているコネクタ１０５の最大電力または最大電流を示す情報を、コネクタ１０５の電力供給能力を識別可能な情報としてホスト２に報告してもよい。あるいは、コントローラ４は、Ｐｉｎ３０のＧＮＤ／オープンを示す情報を、コネクタ１０５の電力供給能力を識別可能な情報としてホスト２に報告してもよい。あるいは、コントローラ４は、ＳＳＤ３が取り付けられているコネクタ１０５を用いて利用可能なパワーステートの中で最も電力消費量の大きいパワーステートを、コネクタ１０５の電力供給能力を識別可能な情報としてホスト２に報告してもよい。
【００９５】
ホスト２は、例えば、あるＳＳＤ３の性能（リード／ライト性能）が期待される性能よりも低い場合、問い合わせコマンドを発行することによって、性能が低下している理由が、ＳＳＤ３が取り付けられているコネクタからの電力供給不足であるか否かを知ることができる。
【００９６】
次に、図１０〜図１６を参照して、コネクタ１０５の状態をホスト２に報告する動作の例を説明する。図１０〜図１６において、記号Ｏは任意実装可能な要件（OPTION）を示し、記号Ｍは、実装が必須の要件（MANDATORY）を示す。
【００９７】
ＳＳＤ３は、ＳＳＤ３の状態および各種設定情報をホスト２に報告するためのデータ構造を含む。このデータ構造には、図１０に示す情報が含まれていてもよい。
【００９８】
図１０に示す情報は、ＳＳＤ３が取り付けられたコネクタ１０５の最大供給電流を示す。図１０に示されているように、特定の１バイト（例えばバイト８００）のフィールドは、ＳＳＤ３が取り付けられたコネクタ１０５の最大供給電流を報告するために使用される。
【００９９】
図１０に示されているように、このフィールドの上位６ビット［７：２］はリザーブ値である。このフィールドの下位２ビット［１：０］によって表現される値は、以下を示す。
【０１００】
００ｂ：  ００ｂは、最大電流が報告されないことを示す。  
【０１０１】
０１ｂ：  ０１ｂは、コネクタ１０５が供給可能な最大電流（最大供給電流）が２．５Ａであることを示す。  
【０１０２】
１０ｂ：  １０ｂは、コネクタ１０５が供給可能な最大電流（最大供給電流）が４．５Ａであることを示す。  
【０１０３】
１１ｂ：  １１ｂは、未定義のリザーブ値である。
【０１０４】
図１０で説明した情報は、図１１のような形態で表現することもできる。図１１では、状態を示すビットとサポートビットとが分離されている。
【０１０５】
図１１において、上述の特定の１バイト（例えばバイト８００）のフィールドのＢｉｔ１，Ｂｉｔ０は、以下を示す。
【０１０６】
Ｂｉｔ１：  Ｂｉｔ１が１に設定されているならば、コネクタ１０５から供給可能な最大電流は４．５Ａである。Ｂｉｔ１が０にクリアされているならば、コネクタ１０５から供給可能な最大電流は２．５Ａである。  
【０１０７】
Ｂｉｔ０：  Ｂｉｔ０が１に設定されているならば、このフィールドはサポートされている。Ｂｉｔ１が０にクリアされているならば、このフィールドはサポートされていない。
【０１０８】
ＳＳＤ３の状態および各種設定情報をＳＳＤ３がホスト２に報告するための上述のデータ構造には、図１２に示す情報が含まれていてもよい。
【０１０９】
図１２に示す情報は、ＳＳＤ３が取り付けられたコネクタ１０５が供給可能な最大電力（最大供給電力）を示す。ここでは、電源電圧が公称値（Ｎｏｍｉｎａｌ）である３．３Ｖである場合における最大電力（Ｎｏｍｉｎａｌ  Ｐｏｗｅｒ）を報告する場合を想定する。
【０１１０】
特定の１バイト（例えばバイト８１０）のフィールドは、ＳＳＤ３が取り付けられたコネクタ１０５の最大供給電力（最大ｎｏｍｉｎａｌ  ｐｏｗｅｒ）を報告するために使用される。
【０１１１】
図１２に示されているように、このフィールドの上位６ビット［７：２］はリザーブ値である。このフィールドの下位２ビット［１：０］によって表現される値は、以下を示す。
【０１１２】
００ｂ：  ００ｂは、最大電力が報告されないことを示す。  
【０１１３】
０１ｂ：  ０１ｂは、コネクタ１０５が供給可能な最大電力が８．２５Ｗであることを示す。  
【０１１４】
１０ｂ：  １０ｂは、コネクタ１０５が供給可能な最大電力が１４．８５Ｗであることを示す。  
【０１１５】
１１ｂ：  １１ｂは、リザーブ値である。
【０１１６】
なお、図１３に示すように、最大電力の値そのものを直接的に表す値がＳＳＤ３からホスト２に報告されてもよい。
【０１１７】
図１３では、最大電力の値が、２バイトのサイズ（バイト８２１、８２０）を有するフィールドによって１６進数で表される場合が想定されている。このフィールドのスケールは例えば０．０１ワットである。値０ｈは、最大電力が報告されないことを示す。
【０１１８】
ＳＳＤ３の状態および各種設定情報をＳＳＤ３がホスト２に報告するための上述のデータ構造には、図１４に示す情報が含まれていてもよい。
【０１１９】
図１４に示す情報は、ＳＳＤ３が取り付けられたコネクタを用いて利用できるパワーステートの最小番号を示す。このパワーステート最小番号は、ＳＳＤ３が取り付けられたコネクタを用いて利用できるパワーステートの中で最も電力消費量の大きい（最も高性能の）パワーステートの番号、または利用できるパワーステートがなければその旨を示す。
【０１２０】
特定の１バイト（例えば、バイト８３０）のフィールドは、ＳＳＤ３が取り付けられたコネクタを用いて利用できるパワーステートの最小番号を報告するために使用される。
【０１２１】
図１４に示されているように、このフィールドの上位１ビット［７］はリザーブ値である。
【０１２２】
このフィールドの中位５ビット［６：２］によって表現される値は、ＳＳＤ３が取り付けられたコネクタを用いて利用できるパワーステートの最小番号を示す。
【０１２３】
このフィールドの中位１ビット［１］によって表現される値は、ＳＳＤ３が取り付けられたコネクタを用いて利用できるパワーステートの有無を示す。
【０１２４】
このフィールドの最下位ビット［０］が１に設定されたならば、このフィールドはサポートされている。このフィールドの最下位ビット［０］が０に設定されたならば、このフィールドはサポートされていない。
【０１２５】
最小のパワーステート番号は０であるが、中位５ビット［６：２］が、利用できるパワーステートの最小番号を示し、最下位ビット［０］が、このフィールドのサポートの有無を示しているので、利用できるパワーステートの最小番号を報告できないケースと、利用できるパワーステートの最小番号が０であるケースとを互いに区別することができる。
【０１２６】
ＳＳＤ３の状態および各種設定情報をＳＳＤ３がホスト２に報告するための上述のデータ構造には、図１５に示す情報が含まれていてもよい。
【０１２７】
図１５に示す情報は、ＳＳＤ３が取り付けられたコネクタ１０５のＰｉｎ３０の状態を示す。
【０１２８】
図１５において、特定の１バイト（例えばバイト８４０）のフィールドは、ＳＳＤ３が取り付けられたコネクタ１０５のＰｉｎ３０の状態を報告するために使用される。
【０１２９】
図１５に示されているように、このフィールドの上位６ビット［７：２］はリザーブ値である。このフィールドのＢｉｔ１，Ｂｉｔ０は、以下を示す。
【０１３０】
Ｂｉｔ１：  Ｂｉｔ１が１に設定されているならば、Ｐｉｎ３０がオープン状態である。Ｂｉｔ１が０にクリアされているならば、Ｐｉｎ３０がＧＮＤに接続されている。  
【０１３１】
Ｂｉｔ０：  Ｂｉｔ０が１に設定されているならば、このフィールドはサポートされている。Ｂｉｔ１が０にクリアされているならば、このフィールドはサポートされていない。
【０１３２】
ＳＳＤ３の状態および各種設定情報をＳＳＤ３がホスト２に報告するための上述のデータ構造には、図１６に示す情報が含まれていてもよい。
【０１３３】
図１６に示す情報は、ＳＳＤ３が取り付けられたコネクタ１０５のタイプを示す。
【０１３４】
図１６において、特定の１バイト（例えばバイト８５０）のフィールドは、ＳＳＤ３が取り付けられたコネクタ１０５のタイプを報告するために使用される。
【０１３５】
図１６に示されているように、このフィールドの上位６ビット［７：２］はリザーブ値である。このフィールドのＢｉｔ１，Ｂｉｔ０は、以下を示す。
【０１３６】
Ｂｉｔ１：  Ｂｉｔ１が１に設定されているならば、ＳＳＤ３がハイパワーのＭ．２コネクタに接続されている。Ｂｉｔ１が０にクリアされているならば、ＳＳＤ３が通常パワーのＭ．２コネクタに接続されている。  
【０１３７】
Ｂｉｔ０：  Ｂｉｔ０が１に設定されているならば、このフィールドはサポートされている。Ｂｉｔ１が０にクリアされているならば、このフィールドはサポートされていない。
【０１３８】
以上の説明では、ＳＳＤ３が複数のパワーステートを有し、ＳＳＤ３が取り付けられているコネクタ１０５の電力供給能力に応じて、使用するパワーステートを切り替える場合を説明したが、これら複数のパワーステートは、ＳＳＤ３の温度が許容最大温度を超えないよう制御するためにも使用される。つまり、ＳＳＤ３のコントローラ４は、ＳＳＤ３内の温度センサによって検知される温度がある閾値に達した場合、使用すべきパワーステートを、電力消費量の低いパワーステートに切り替える。例えば、ＳＳＤ３の温度がある閾値以上に上がった場合は、たとえ、Ｐｏｎ３０がＧＮＤに接続されていても、コントローラ４は、パワーステート３を使うことでさらなる温度上昇を抑える。
【０１３９】
なお、ＳＳＤ３は、一つのパワーステートのみをサポートするように構成されていてもよい。
【０１４０】
図１７は、ＳＳＤ３によってサポートされる単一のパワーステートの例を示す。
【０１４１】
ＳＳＤ３は、パワーステート０のみをサポートする。したがって、ＳＳＤ３は、常にパワーステート０を使用して、ＮＡＮＤ型フラッシュメモリ５に対するデータ書き込み動作およびデータ読み出し動作を実行する。パワーステート０の最大消費電力は、例えば、１４Ｗである。
【０１４２】
このように、ＳＳＤ３のパワーステートが一つしかない場合、Ｐｉｎ３０がＧＮＤに接続されている場合は、ＳＳＤ３のコントローラ４は、ホスト２からライトコマンドまたはリードコマンドに応じて、ＮＡＮＤ型フラッシュメモリ５に対するデータ書き込み動作およびデータ読み出し動作を通常通りに実行する。
【０１４３】
一方、Ｐｉｎ３０がオープン状態である場合は、コントローラ４は、ＮＡＮＤ型フラッシュメモリ５に対するデータ書き込み動作およびデータ読み出し動作を行わず、２．５Ａ以下の消費電流で動作できることしか行わない。すなわち、ＳＳＤ３のコントローラ４は、ホスト２からライトコマンドまたはリードコマンドを受信すると、データ書き込み動作およびデータ読み出し動作を実行せずに、これらライトコマンドまたはリードコマンドに対するレスポンスとして、エラーをホスト２に返す。
【０１４４】
２．５Ａ以下の消費電流で実行可能な動作には、上述の問い合わせコマンドの処理が含まれる。ＳＳＤ３は、ホスト２からの問い合わせコマンドに応答して、Ｐｉｎ３０がオープン状態であり、電源不足によって動作できないこと等をホスト２に通知することができる。
【０１４５】
図１８のフローチャートは、単一のパワーステート０のみを有するＳＳＤ３によって実行される電力消費制限処理の手順を示す。
【０１４６】
この電力消費制限処理は、Ｐｉｎ３０がオープン状態である場合に実行される。
【０１４７】
ＳＳＤ３のコントローラ４は、ホストから受信されたコマンドがリード要求（リードコマンド）またはライト要求（ライトコマンド）であるならば（ステップＳ３１のＹＥＳ）、コマンド処理（つまり、ＮＡＮＤ型フラッシュメモリ５に対するデータ読み出し動作、データ書き込み動作）を実行せずに、この受信したコマンドに対するレスポンスとしてホスト２にエラーを返す（ステップＳ３２）。
【０１４８】
ホストから受信されたコマンドが上述の問い合わせコマンドであるならば（ステップＳ３３のＹＥＳ）、コントローラ４は、コマンド処理を実行し、ＳＳＤ３が取り付けられているコネクタ１０５の状態等をこの受信した問い合わせコマンドに対するレスポンスとしてホスト２に返す（ステップＳ３３）。
【０１４９】
このように、たとえＳＳＤ３が電力不足によってＮＡＮＤ型フラッシュメモリ５に対するデータ読み出し動作およびデータ書き込み動作を実行できない場合であっても、ホスト２は、問い合わせコマンドを発行することによって、ＳＳＤ３が動作しない原因を容易に把握できる。
【０１５０】
なお、ホスト２の改造等によって電源回路１０４の電力供給能力が後に増えたケースや、ホスト２の電源回路１０４が全てのコネクタに対して十分に高い電力を供給可能な能力を予め有しているケースにそなえ、電力消費制限処理を実行するように構成された、ＳＳＤ３の電力制御システムが動作しないように、ホスト２から指示できるコマンド（電力制御システムＯｆｆコマンド）を用意してもよい。
【０１５１】
図１９のシーケンス図は、ＳＳＤ３によって実行される、電力制御システムＯｆｆコマンドに対する処理の手順を示す。
【０１５２】
ホスト２は必要に応じてＳＳＤ３に電力制御システムＯｆｆコマンドを送信する。電力制御システムＯｆｆコマンドをホスト２かに受信した場合、ＳＳＤ３のコントローラ４は、電力制御システム（上述の電力消費制限機能）を無効にする（ステップＳ４１）。
【０１５３】
図２０のフローチャートは、ＳＳＤ３によって実行される電力制御処理の手順を示す。
【０１５４】
ＳＳＤ３のコントローラ４は、電力制御システムが有効か否かを判定する（ステップＳ５１）。電力制御システムが有効であるならば（ステップＳ５１のＹＥＳ）、コントローラ４は、ＳＳＤ３が取り付けられているコネクタ１０５のＰｉｎ３０がＧＮＤまたはオープン状態のいずれに設定されているかを判定し（ステップＳ５２）、この判定結果に応じて、最大消費電流を伴う動作モード（パワーステート０）で動作するか（ステップＳ５５）、あるいはＳＳＤ３の電力消費を制限する処理を実行する（ステップＳ５５）。
【０１５５】
一方、電力制御システムが無効であるならば（ステップＳ５１のＮＯ）、コントローラ４は、ＳＳＤ３が取り付けられているコネクタ１０５のＰｉｎ３０の状態に関係なく、最大消費電流を伴う動作モード（パワーステート０）で動作する（ステップＳ５５）。
【０１５６】
なお、ＳＳＤ３の温度が許容最大温度を超えないよう制御するための電力消費制限処理は、電力制御システムの有効／無効にかかわらず、適宜実行されればよい。
【０１５７】
以上説明したように、本実施形態によれば、ＳＳＤ３が接続されるコネクタ１０５の特定のピン（ＰＬ）を第１の電位またはオープン状態に設定することにより、コネクタ１０５を介して供給可能な電力をホスト（情報処理装置）２からＳＳＤ３に伝えることができる。よって、ＳＳＤ３は、この供給可能な電力（または電流）の範囲内で動作するか、あるいは動作不能であれば動作しないことで、システムの故障やホスト２またはＳＳＤ３の誤動作等を引き起こすことなく、安定した動作を実現できる。よって、システム全体の信頼性および安全性を向上することができる。
【０１５８】
なお、まったく別の通知方法として、差動信号線を介して伝送されるデータの一種をコネクタの電力供給能力を示す情報としてホストからＳＳＤに送信するという方法も考えられる。しかし、この方法は、ホストとＳＳＤとを相互接続するインタフェースに大きく依存するため、実装が難しい場合がある。本実施形態では、簡便な方法によってコネクタの電力供給能力を示す情報をホストからＳＳＤに容易に伝えることができる。
【０１５９】
また、本実施形態では、ホスト２は、問い合わせコマンドをＳＳＤ３に送ることで、ＳＳＤ３が接続されたコネクタ１０５の最大供給電力（または電流）を知ることができ、あるいは最大供給電力が不足しているためＳＳＤ３が消費電力を抑えるモードで動作していること、それによって、ＳＳＤ３の性能（リード／ライト性能）が低下していること、あるいは、データのリード／ライトができなくなっていることを知ることができる。よって、システム全体が不安定になることなく、ＳＳＤ３の性能（リード／ライト性能）が低下していること、あるいは、データのリード／ライトができなくなっていることの原因を迅速に把握することが可能となる。
【０１６０】
なお、本実施形態では、コネクタ１０５が複数本の電源ピンを有する構成である場合を中心に説明したが、原理的には、電源ピンの数が１本であっても、電源回路１０４がこの１本の電源ピンを介して供給可能な最大電力（または最大電流）の違いによってハイパワーコネクタ/通常パワーコネクタを実現できる。この場合、ハイパワーコネクタの１本の電源ピンを介して供給可能な最大電流は、通常パワーコネクタの１本の電源ピンを介して供給可能な最大電流よりも大きい。したがって、ハイパワーコネクタの１本の電源ピンを介して供給可能な最大電力も、通常パワーコネクタの１本の電源ピンを介して供給可能な最大電力よりも大きくなる。
【０１６１】
このように、本実施形態は、１本以上の電源ピンを有するタイプのコネクタに適用可能である。この場合、ピン（ＰＬ）が第１の電位（ＧＮＤ）に設定されている状態は、コネクタ１０５の１本以上の電源ピンを介して電源回路１０４からＳＳＤ３へ供給される最大電力が第１の電力であること示し、ピン（ＰＬ）がオープン状態に設定されている状態は、コネクタ１０５の１本以上の電源ピンを介して電源回路１０４からＳＳＤ３へ供給される最大電力が第２の電力であること示す。
【０１６２】
なお、本実施形態では、不揮発性メモリとしてＮＡＮＤ型フラッシュメモリを例示した。しかし、各実施形態の機能は、例えば、ＭＲＡＭ（Ｍａｇｎｅｔｏｒｅｓｉｓｔｉｖｅ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＰＲＡＭ（Ｐｈａｓｅ  ｃｈａｎｇｅ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＲｅＲＡＭ（Ｒｅｓｉｓｔｉｖｅ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、又は、ＦｅＲＡＭ（Ｆｅｒｒｏｅｌｅｃｔｒｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）のような他の様々な不揮発性メモリにも適用できる。
【０１６３】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１６４】
２…ホスト（情報処理装置）、３…ＳＳＤ（ストレージデバイス）、４…コントローラ４…ＮＡＮＤ型フラッシュメモリ、１０５…コネクタ、２１…ＧＮＤ／Ｏｐｅｎ判定部、２２…電力消費制限制御部、２３…問い合わせコマンド処理部。
【図１】
2019149045.tif 000003
【図２】
2019149045.tif 000004
【図３】
2019149045.tif 000005
【図４】
2019149045.tif 000006
【図５】
2019149045.tif 000007
【図６】
2019149045.tif 000008
【図７】
2019149045.tif 000009
【図８】
2019149045.tif 000010
【図９】
2019149045.tif 000011
【図１０】
2019149045.tif 000012
【図１１】
2019149045.tif 000013
【図１２】
2019149045.tif 000014
【図１３】
2019149045.tif 000015
【図１４】
2019149045.tif 000016
【図１５】
2019149045.tif 000017
【図１６】
2019149045.tif 000018
【図１７】
2019149045.tif 000019
【図１８】
2019149045.tif 000020
【図１９】
2019149045.tif 000021
【図２０】
2019149045.tif 000022