(57)【要約】【課題】利便性の高いメモリシステムを提供すること。【解決手段】メモリシステムは、ホストに接続可能である。メモリシステムは、不揮発性の第１メモリと、算出部と、を備える。算出部は、ホストからアクセスパターンおよびスループットが通知される。算出部は、予測消費電力を少なくとも通知されたアクセスパターンおよびスループットと容量情報とに基づいて算出する。予測消費電力は、通知されたアクセスパターンによるアクセスを通知されたスループットで処理するための消費電力である。容量情報は、第１メモリのうちのユーザデータの記憶に利用可能な全記憶容量と表記容量との関係を示す指標である。【選択図】図９
2018036795.tif 000002
【特許請求の範囲】
【請求項１】
ホストに接続可能なメモリシステムであって、
不揮発性の第１メモリと、
前記ホストからアクセスパターンおよびスループットが通知され、予測消費電力を少なくとも前記通知されたアクセスパターンおよびスループットと容量情報とに基づいて算出する算出部と、
を備え、
前記予測消費電力は、前記通知されたアクセスパターンによるアクセスを前記通知されたスループットで処理するための消費電力であり、
前記容量情報は、前記第１メモリのうちのユーザデータの記憶に利用可能な全記憶容量と表記容量との関係を示す指標である、
ことを特徴とするメモリシステム。
【請求項２】
温度センサをさらに備え、
前記算出部は、さらに前記温度センサの検出値に基づいて前記予測消費電力を算出する、
ことを特徴とする請求項１に記載のメモリシステム。
【請求項３】
データを一時的に記憶する揮発性の第２メモリをさらに備え、
前記算出部は、前記温度センサの検出値から前記第２メモリのジャンクション温度を算出し、前記第２メモリのジャンクション温度に基づいて前記予測消費電力を算出する、
ことを特徴とする請求項２に記載のメモリシステム。
【請求項４】
前記第１メモリに書き込まれるユーザデータを符号化する符号化部をさらに備え、
前記算出部は、さらに符号化情報に基づいて前記予測消費電力を算出し、
前記符号化情報は、符号化前のユーザデータのサイズと符号化後のユーザデータのサイズとの関係を示す指標である、
ことを特徴とする請求項１に記載のメモリシステム。
【請求項５】
前記第１メモリに単位サイズのデータを書き込ませるライトコマンドを前記第１メモリに送信するコントローラをさらに備え、
前記算出部は、さらにライトコマンド実行時間に基づいて前記予測消費電力を算出し、
前記ライトコマンド実行時間は、前記第１メモリが前記ライトコマンドの実行に費やす時間である、
ことを特徴とする請求項１に記載のメモリシステム。
【請求項６】
前記算出部は、さらに疲弊情報に基づいて前記予測消費電力を算出し、
前記疲弊情報は前記第１メモリの疲弊の進行状況を示す指標である、
ことを特徴とする請求項１に記載のメモリシステム。
【請求項７】
対応情報を記憶する第３メモリをさらに備え、
前記対応情報は少なくともアクセスパターン、スループット、および消費電力の間の関係を記録した情報であり、
前記算出部は、前記対応情報を用いることによって前記予測消費電力を算出する、
ことを特徴とする請求項１に記載のメモリシステム。
【請求項８】
前記対応情報は、前記メモリシステムの製造時に前記メモリシステムに対する測定に基づいて生成される、
ことを特徴とする請求項７に記載のメモリシステム。
【請求項９】
前記アクセスパターンは、リードとライトとの比率、または、前記ホストが前記メモリシステムにマッピングするアドレス空間内におけるアクセス位置の連続性、である、
ことを特徴とする請求項１に記載のメモリシステム。
【請求項１０】
前記算出部は、許容消費電力で実行可能なスループットを算出する、
ことを特徴とする請求項１に記載のメモリシステム。
【請求項１１】
前記算出部は、前記許容消費電力を前記ホストから受信する、
ことを特徴とする請求項１０に記載のメモリシステム。
【請求項１２】
前記算出部は、前記ホストからアクセスパターンおよびスループットが通知され、前記通知されたアクセスパターンおよびスループットに基づいて前記予測消費電力を算出し、前記算出した予測消費電力を前記ホストに通知する、
ことを特徴とする請求項１に記載のメモリシステム。
【請求項１３】
前記算出部は、前記算出した予測消費電力を前記ホストに通知した後、前記ホストから許容消費電力が通知され、前記通知された許容消費電力で実行可能なスループットを算出する、
ことを特徴とする請求項１２に記載のメモリシステム。
【請求項１４】
前記算出されたスループットで動作する請求項１３に記載のメモリシステム。
【請求項１５】
ホストに接続可能なメモリシステムであって、
不揮発性の第１メモリと、
前記ホストからスループットが通知され、前記通知されたスループットを実現するための消費電力を前記第１メモリのうちのユーザデータの記憶に利用可能な全記憶容量と表記容量との関係を示す指標である容量情報に基づいて算出する算出部と、
を備える、
ことを特徴とするメモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本実施形態は、メモリシステムに関する。
【背景技術】
【０００２】
例えば、ディスクアレイには複数のメモリシステムが実装される。各ディスクアレイは、制限された電力を用いて動作することが求められる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１３−２００７２６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
一つの実施形態は、利便性の高いメモリシステムを提供することを目的とする。
【課題を解決するための手段】
【０００５】
一つの実施形態によれば、メモリシステムは、ホストに接続可能である。メモリシステムは、不揮発性の第１メモリと、算出部と、を備える。算出部は、ホストからアクセスパターンおよびスループットが通知される。算出部は、予測消費電力を少なくとも通知されたアクセスパターンおよびスループットと容量情報とに基づいて算出する。予測消費電力は、通知されたアクセスパターンによるアクセスを通知されたスループットで処理するための消費電力である。容量情報は、第１メモリのうちのユーザデータの記憶に利用可能な全記憶容量と表記容量との関係を示す指標である。
【図面の簡単な説明】
【０００６】
【図１】図１は、第１の実施形態に係るメモリシステムの構成例を示す図である。
【図２】図２は、並列動作資源の一例を説明するためのＮＡＮＤメモリの構成例を示す図である。
【図３】図３は、アクセスの種別の割合と、消費電力と、性能と、の関係の一例を示すグラフである。
【図４】図４は、アクセスの連続性と、消費電力と、性能と、の関係の一例を示すグラフである。
【図５】図５は、t_progと、消費電力と、性能と、の関係の一例を示すグラフである。
【図６】図６は、コードレートと消費電力との関係の一例を示すグラフである。
【図７】図７は、コードレートと、消費電力と、性能と、の関係の一例を示すグラフである。
【図８】図８は、ギア比と余裕率との関係の一例を示すグラフである。
【図９】図９は、余裕率と、消費電力と、性能と、の関係の一例を示すグラフである。
【図１０】図１０は、ジャンクション温度と、消費電力と、性能と、の関係の一例を示すグラフである。
【図１１】図１１は、ジャンクション温度と、消費電力と、性能と、の関係の一例を示すグラフである。
【図１２】図１２は、消費電力と性能との間の関係の他の例を示すグラフである。
【図１３】図１３は、第１の実施形態のメモリシステムの動作を説明するシーケンス図である。
【図１４】図１４は、メモリシステムの実装例を示す図である。
【発明を実施するための形態】
【０００７】
以下に添付図面を参照して、実施形態にかかるメモリシステムを詳細に説明する。なお、これらの実施形態により本発明が限定されるものではない。
【０００８】
（第１の実施形態）
図１は、第１の実施形態に係るメモリシステムの構成例を示す図である。メモリシステム１は、ホスト２および電源装置３に接続されている。電源装置３は、メモリシステム１に電力を供給する。メモリシステム１は、電源装置３から供給される電力によって駆動される。ホスト２はコンピュータである。コンピュータは、例えば、パーソナルコンピュータ、ポータブルコンピュータ、携帯通信機器、またはサーバを含む。メモリシステム１は、ホスト２に接続されている。メモリシステム１とホスト２とを接続する通信路のインタフェース規格としては任意の規格が採用可能である。ホスト２は、メモリシステム１に、アクセスコマンドを送信することができる。また、ホスト２は、メモリシステム１に対してアクセス予告の通知（以降、予告通知と表記）を送信することができる。また、ホスト２は、メモリシステム１に対し、許容される最大の消費電力を設定することができる。許容される最大の消費電力を、許容消費電力と表記する。
【０００９】
アクセスコマンドは、リードコマンドまたはライトコマンドを含む。アクセスコマンドは、アクセスの種別およびアクセス位置を少なくとも備える。アクセスの種別は、リードまたはライトである。アクセス位置は、論理的なアドレス情報によって指定される。論理的なアドレス情報とは、ホスト２がメモリシステム１にマッピングしたアドレス空間における位置を示す情報である。アクセス位置は、一例としては、LBA（Logical  Block  Addressing）の形式で指定される。以降、ホスト２がメモリシステム１にマッピングしたアドレス空間は、論理アドレス空間と表記される。論理アドレス空間における位置を示す情報は、論理アドレスと表記される。
【００１０】
予告通知は、スループットおよびアクセスパターンを含む。スループットとは、帯域、IOPS（Input  Output  Per  Second）、またはMB／s（Mega  byte  per  second）、を含む。即ち、スループットは、メモリシステム１の性能を意味する。IOPSは、ＮＡＮＤメモリ１１（後述する）に対して１秒あたりに書き込みできる回数である。なお、単位時間あたりに可能な書き込みの回数であれば、単位時間は１秒でなくてもスループットとして採用可能である。また、MB／sは、ホスト２とＮＡＮＤメモリ１１との間の通信速度である。アクセスパターンは、アクセスの種別、論理アドレス空間におけるアクセス位置の連続性、またはアクセスの各種別の割合、を含む。論理アドレス空間におけるアクセス位置が連続するように複数のアクセスコマンドが発行される場合のパターンは、例えば、シーケンシャルアクセスと表記される。シーケンシャルアクセスのパターンでリードが行われる場合、そのパターンは、シーケンシャルリードと表記される。シーケンシャルアクセスのパターンでライトが行われる場合、そのパターンは、シーケンシャルライトと表記される。論理アドレス空間におけるアクセス位置が連続しないように複数のアクセスコマンドが発行される場合のパターンは、例えば、ランダムアクセスと表記される。ランダムアクセスのパターンでリードが行われる場合、そのパターンは、ランダムリードと表記される。ランダムアクセスのパターンでライトが行われる場合、そのパターンは、ランダムライトと表記される。論理アドレス空間におけるアクセス位置の連続性は、以降、アクセスの連続性、と表記される。
【００１１】
メモリシステム１は、予告通知によって通知された性能を実現するための消費電力を演算する。即ち、メモリシステム１は、消費電力を予測する。演算された消費電力を、予測消費電力と表記する。また、メモリシステム１は、予測消費電力を使って、ホスト２と消費電力の交渉を実行する。ここでは一例として、ホスト２は、予測消費電力とメモリシステム１に割り当てる消費電力とを比較し、予測消費電力とメモリシステム１に割り当てる消費電力とのうちの小さいほうを許容消費電力としてメモリシステム１に送信する。メモリシステム１は、許容消費電力によって実現可能な性能のうちのできるだけ大きい性能で動作する。
【００１２】
メモリシステム１は、コントローラ１０とＮＡＮＤメモリ１１と電源回路１２とを備えている。
【００１３】
電源回路１２は、電源装置３から供給された電力を、変換し、またはそのまま、コントローラ１０およびＮＡＮＤメモリ１１に供給する。ここでは一例として、電源装置３から直流の電力が供給される。電源回路１２はＤＣ−ＤＣコンバータ１２１を備える。電源回路１２は、電源装置３からの直流の電力の電圧を、ＤＣ−ＤＣコンバータ１２１によって、コントローラ１０およびＮＡＮＤメモリ１１を駆動できる電圧に変換する。
【００１４】
ＮＡＮＤメモリ１１は、ストレージとして機能するメモリである。ＮＡＮＤメモリ１１は、電源回路１２から供給される電力を用いることによって動作する。ストレージとしては、不揮発性のメモリであればＮＡＮＤメモリ以外の任意の種類のメモリを採用可能である。例えばＮＯＲ型のフラッシュメモリがストレージとして採用可能である。
【００１５】
ＮＡＮＤメモリ１１は、ＮＡＮＤ型のメモリセルアレイ、を夫々備えた１以上のメモリチップによって構成される。メモリセルアレイは、複数のブロックを備える。ブロックは、メモリセルアレイに対するイレース処理の最小単位である。また、各ブロックは、複数のページを備える。ページは、メモリセルアレイに対するリード処理およびライト処理の最小単位である。
【００１６】
コントローラ１０は、ホスト２からのコマンドに従って、ＮＡＮＤメモリ１１へのデータのライト、またはＮＡＮＤメモリ１１からのデータのリード、などを行う。コントローラ１０は、性能制御ＩＦ１０１と、資源制御部１０２と、情報記憶部１０３と、算出部１０４と、温度センサ１０５とを備えている。また、コントローラ１０は、ＣＰＵ５１と、メモリ５２と、符号化部５３と、復号化部５４とを備えている。
【００１７】
図１では図示していないが、ＣＰＵ５１は、算出部１０４、性能制御ＩＦ１０１、資源制御部１０２、情報記憶部１０３およびメモリ５２に接続されている。したがって、性能制御ＩＦ１０１は、ＣＰＵ５１を介して情報記憶部１０３に接続されている。また、性能制御ＩＦ１０１は、ホスト２および算出部１０４に接続されている。また、資源制御部１０２は、並列動作資源５０および情報記憶部１０３に接続されている。
【００１８】
メモリ５２は、例えば揮発性のメモリである。メモリ５２は、ホスト２からのデータがＮＡＮＤメモリ１１にライトされる際に一時的にそのデータが格納されるライトバッファとして機能できる。また、メモリ５２は、メモリシステム１に関する管理情報を記憶するための記憶領域として機能する。管理情報は、メモリ５２上で更新される。また、メモリ５２は、ＮＡＮＤメモリ１１からリードされたデータが一時的に格納される記憶領域として機能できる。また、メモリ５２は、ＣＰＵ５１が実行するプログラムが不揮発性のメモリ（例えばＮＡＮＤメモリ１１）からロードされる記憶領域として機能できる。例えば、ＣＰＵ５１は、メモリ５２にロードされたプログラムに基づいて制御を実行する。
【００１９】
ＣＰＵ５１は、コントローラ１０を統括的に制御する。ＣＰＵ５１は、例えば、論理アドレスを物理アドレスに変換する処理（翻訳処理）、ガベージコレクションの制御、バッドブロックの管理、または、余裕容量の管理、などを実行する。ガベージコレクション、バッドブロック、および余裕容量については後述する。
【００２０】
メモリセルに対する電子の注入と電子の引き抜きとが繰り返されるに応じて、メモリセルに対する電子の注入と電子の流出がより容易になる。メモリセルに対する電子の注入と電子の引き抜きとが繰り返されるに応じて生じるメモリセルの変化を、（メモリセル、メモリセルアレイ、ブロック、メモリチップ、またはＮＡＮＤメモリ１１の）疲弊、と表記する。メモリセルが疲弊するに応じて、当該メモリセルに格納されたデータが、ライト時とリード時とで異なる事象が発生する。この事象をエラーと表記する。符号化部５３は、ＮＡＮＤメモリ１１にライトされるユーザデータを、エラー訂正のために符号化する。即ち、ホスト２から送られてきたユーザデータは、符号化の後、ＮＡＮＤメモリ１１にライトされる。符号化のアルゴリズムとしては、可変長符号化が採用される。可変長符号化によれば、コードレートが可変である。可変長符号化によれば、コードレートを小さくなるように変更することによって、訂正能力を強めることが可能である。コードレートとは、フレームのサイズ、に対する、フレーム内のユーザデータのサイズ、の割合である。フレームとは、エラー訂正が実行される単位のデータをいう。訂正能力とは、例えば訂正が可能なビット数である。訂正能力が固定されている場合には、メモリセルアレイが疲弊するにしたがって、エラービットレートが増加し、エラービットレートが訂正能力を超えると、ユーザデータは読み出し不可能な状態になる。ＣＰＵ５１は、メモリセルアレイが疲弊するに応じてコードレートを減少させることによって、エラービットレートが訂正能力を超えないように制御する。
【００２１】
復号化部５４は、ＮＡＮＤメモリ１１からリードされたユーザデータの復号化を実行する。復号化部５４は、復号化によって、ＮＡＮＤメモリ１１からリードされたユーザデータに含まれるエラーの検出および訂正を実行する。復号化部５４は、エラービットレートをＣＰＵ５１に報告する。ＣＰＵ５１は、エラービットレートの報告に基づいてコードレートを変更する。
【００２２】
なお、符号化部５３または復号化部５４の機能は、ＣＰＵ５１がファームウェアを実行することによって実現されてもよい。また、符号化部５３は複数種のアルゴリズムの符号化が可能に構成され、復号化部５４は複数種のアルゴリズムの復号化が可能に構成されてもよい。
【００２３】
コントローラ１０は、メモリシステム１の性能を調整する。第１の実施形態においては、コントローラ１０は、並列に動作せしめられることが可能な複数の資源（並列動作資源５０）を備えている。資源制御部１０２が複数の並列動作資源５０のうちの並列に動作せしめられる並列動作資源５０の数（並列動作数）を変化させることによって、性能が調整される。
【００２４】
並列動作資源５０は、メモリシステム１を構成する部品、または、ソフトウエアを構成するプログラム、などである。並列動作資源５０は、例えば、下記の（１）〜（４）などである。
（１）メモリシステム１とホスト２との間で情報処理を行う部品またはプログラム
（２）コントローラ１０とＮＡＮＤメモリ１１との間で情報処理を行う部品またはプログラム
（３）コントローラ１０内で情報処理を行う部品またはプログラム
（４）ＮＡＮＤメモリ１１内で情報処理を行う部品またはプログラム
【００２５】
本実施形態では、並列動作資源５０は、ＣＰＵ５１、メモリ５２、符号化部５３、復号化部５４、または、ＮＡＮＤメモリ１１、などであるとして説明する。並列動作資源５０の各例について具体的に説明する。
【００２６】
図２は、並列動作資源５０の一例を説明するための第１の実施形態のＮＡＮＤメモリ１１の構成例を示す図である。ＮＡＮＤメモリ１１は、８つのチャネル（８ｃｈ：ｃｈ０〜ｃｈ７）を介してコントローラ１０に並列に接続されている。メモリシステム１は、各チャネルを並列に制御することによって、８つのチャネル要素１１ａ〜１１ｈを並列に動作させることが可能である。なお、ＮＡＮＤメモリ１１内のチャネルの数は８に限定されない。各チャネルは、並列動作資源５０に該当する。コントローラ１０は、並列に動作せしめられるチャネル要素の数を、並列動作数として制御することができる。なお、例えば、符号化部５３は、ユーザデータの符号化をチャネル要素毎に独立に実行するように構成されてもよい。即ち、符号化部５３は、ライト先のチャネル要素が異なる複数のユーザデータの符号化を同時に実行する。また、復号化部５４は、ユーザデータの復号化をチャネル要素毎に独立に実行するように構成されてもよい。即ち、復号化部５４は、リード元のチャネル要素が異なる複数のユーザデータの復号化を同時に実行する。
【００２７】
各チャネル要素１１ａ〜１１ｈは、複数のバンク（この場合、４バンク、Ｂａｎｋ０〜Ｂａｎｋ３）を備える。各バンクは、複数のメモリチップ（この場合、２メモリチップ、Ｃｈｉｐ０、Ｃｈｉｐ１）を備える。コントローラ１０は、最大で４つのバンクをバンクインターリーブの方式で動作させることが可能である。バンクインターリーブとは、１つのバンクに属する１以上のメモリチップがメモリセルアレイにアクセスしている最中にコントローラ１０が別のバンクへアクセスコマンドを発行する手法である。バンクインターリーブによって、ＮＡＮＤメモリ１１とコントローラ１０との間のトータルの処理時間を短縮することができる。各バンクは、並列動作資源５０に該当する。コントローラ１０は、バンクインターリーブの方式で動作せしめられるバンクの数を、並列動作数として制御することができる。
【００２８】
各メモリチップのメモリセルアレイは、例えば、プレーン０、プレーン１の合計で２つの領域（District）に分割されている。プレーン０およびプレーン１はそれぞれ複数のブロックを備える。プレーン０およびプレーン１は、互いに独立した周辺回路（例えば、ロウデコーダ、カラムデコーダ、ページバッファ、データキャッシュ等）を備える。コントローラ１０は、各プレーンに対して同時にイレース処理／ライト処理／リード処理を実行することができる。即ち、コントローラ１０は、プレーン０およびプレーン１を並列に動作させることが可能である。なお、各メモリチップのメモリセルアレイは、３以上のDistrictに分割されてもよいし、まったく分割されていなくてもよい。各プレーンは、並列動作資源５０に該当する。コントローラ１０は、同時に動作せしめられるプレーンの数を、並列動作数として制御することができる。
【００２９】
ＣＰＵ５１は、例えば複数のプロセッサによって構成されてもよい。その場合には、各プロセッサは夫々並列動作資源５０に該当する。コントローラ１０は、同時に動作せしめられるプロセッサの数を、並列動作数として制御することができる。
【００３０】
また、ＣＰＵ５１は、翻訳処理を、複数のプロセスの夫々において独立に実行することができる。プロセスとは、プログラムに基づいて実現する処理の単位である。プロセスは、タスクと表現されることもある。例えば、ＣＰＵ５１は、論理アドレス空間を複数に分割し、分割された夫々の論理アドレス空間の部分にかかる翻訳処理を、夫々異なるプロセスに実行させることができる。翻訳処理を実行する各プロセスは、並列動作資源５０に該当する。コントローラ１０は、同時に動作せしめられるプロセスの数を、並列動作数として制御することができる。なお、翻訳処理以外の処理が複数のプロセスの夫々において実行されてもよい。
【００３１】
また、メモリ５２は、夫々電源が個別に供給／供給停止されることが可能に構成された複数の単位領域を備えていてもよい。各単位領域は、並列動作資源５０に該当する。コントローラ１０は、電源が供給されている単位領域の数を、並列動作数として制御することができる。
【００３２】
なお、並列動作数は、以上に述べた一部または全部の例の組み合わせであってもよい。例えば、並列に動作せしめられるチャネルの数、バンクインターリーブの方式で動作せしめられるバンクの数、および同時に動作せしめられるプレーンの数、の組み合わせが、並列動作数として制御されてもよい。組み合わせとは、例えば、任意の演算による解である。例えば、演算は、乗算である。また、並列動作数は、以上に述べた一部または全部の例の夫々を要素として備える数列で表記されてもよい。並列動作数が数列で表記される場合において、並列動作数を変更するとは、並列動作数の数列を構成する１以上の要素のうちの一部または全部の値を変更することである。具体的には、並列動作数が数列で表記される場合において、並列動作数を増加させるとは、並列動作数の数列を構成する１以上の要素のうちの一部または全部の値を性能が向上する方向に変更することである。並列動作数が数列で表記される場合において、並列動作数を減少させるとは、並列動作数の数列を構成する１以上の要素のうちの一部または全部の値を性能が低下する方向に変更することである。
【００３３】
性能制御ＩＦ１０１は、ホスト２から送られてくる予告通知を受付ける。性能制御ＩＦ１０１は、ホスト２から受信した予告通知を、算出部１０４に送る。即ち、算出部１０４はホスト２からアクセス予告が性能制御ＩＦ１０１を介して通知される。また、性能制御ＩＦ１０１は、ホスト２から送られてくる許容消費電力を受付ける。性能制御ＩＦ１０１は、ホスト２から受信した許容消費電力を、情報記憶部１０３に許容消費電力２０１として格納する。許容消費電力２０１は、算出部１０４によって読み出される。即ち、算出部１０４は、ホスト２から許容消費電力が性能制御ＩＦ１０１および情報記憶部１０３を介して通知される。
【００３４】
算出部１０４は、許容消費電力２０１と予告通知と対応情報２０２とに基づいて並列動作設定数を算出する。並列動作設定数は、並列動作数の設定値である。算出部１０４は、算出された並列動作設定数を情報記憶部１０３に並列動作設定数２０３として格納する。資源制御部１０２は、並列動作数が並列動作設定数２０３に等しくなるように、並列動作資源５０を制御する。
【００３５】
対応情報２０２は、少なくとも性能と消費電力との間の対応関係を規定する情報である。対応情報２０２は、性能と消費電力との他に、１以上の変数を含む。対応情報２０２のデータ構造としては任意のデータ構造が採用可能である。対応情報２０２のデータ構造は、例えば、テーブル、関数、またはこれらの組み合わせである。以下に、対応情報２０２の変数の各例と特性の各例とを説明する。
【００３６】
例えば、アクセスの種別の割合が対応情報２０２の変数として用意される。図３は、対応情報２０２によって規定される、アクセスの種別の割合と、消費電力と、性能と、の関係の一例を示すグラフである。本図では、アクセスの種別の割合、消費電力、および性能、以外の変数には所定値が夫々設定されていることとする。この例によれば、性能が増大するに応じて、消費電力が増大する。ライトの割合が１００％であった場合、リードの割合が１００％である場合に比べて、性能の増大量に対する消費電力の増大量が大きい。アクセスの種別の割合は、例えば予告通知としてホスト２から送信される。また、コントローラ１０は、過去のアクセスからアクセスの種別の割合を測定し、算出部１０４は、測定によって得られた割合を使用してもよい。アクセスの種別の割合が性能と消費電力との関係に与える影響は図３の例に限定されない。
【００３７】
例えば、アクセスの連続性が対応情報２０２の変数として用意される。図４は、対応情報２０２によって規定される、アクセスの連続性と、消費電力と、性能と、の関係の一例を示すグラフである。本図では、アクセスの連続性、消費電力、および性能、以外の変数には所定値が夫々設定されていることとする。ランダムライト（ＲＷ）、ランダムリード（ＲＲ）、シーケンシャルライト（ＳＷ）、およびシーケンシャルリード（ＳＲ）のうち、性能の増大量に対する消費電力の増大量の割合は、ランダムライトの場合に最も大きく、シーケンシャルリードの場合に最も小さい。また、シーケンシャルライトの場合、ランダムリードの場合に比べて、性能の増大量に対する消費電力の増大量の割合が大きい。アクセスの連続性は、例えば予告通知としてホスト２から送信される。また、コントローラ１０は、過去のアクセスからアクセスの連続性を測定し、算出部１０４は、測定によって得られたアクセスの連続性を使用してもよい。なお、アクセスの連続性が性能と消費電力との関係に与える影響は図４の例に限定されない。
【００３８】
例えば、メモリセルアレイに対するライト処理にかかる時間（t_prog）が対応情報２０２の変数として用意される。コントローラ１０は、ユーザデータをＮＡＮＤメモリ１１にライトする際、メモリセルアレイに単位サイズのデータを書き込ませるライトコマンドをメモリチップに送信する。メモリチップはコントローラ１０からライトコマンドを受信すると、メモリチップの状態はレディー状態からビジー状態に遷移する。メモリチップがデータをメモリセルアレイにライトする（プログラムする、とも言われる）間、メモリチップの状態はビジー状態を維持する。メモリセルアレイへのデータのプログラムが完了すると、メモリチップの状態はビジー状態からレディー状態に遷移する。メモリチップの状態がビジー状態であるかレディー状態であるかは、チャネルに含まれるレディービジー信号線を介してコントローラ１０に通知される。t_progは、１つのメモリチップがライトコマンドに応じてビジー状態を維持する間の時間を意味する。言い換えると、t_progは、１つのメモリチップがライトコマンドの実行に費やす時間である。図５は、対応情報２０２によって規定される、t_progと、消費電力と、性能と、の関係の一例を示すグラフである。本図では、t_prog、消費電力、および性能、以外の変数には所定値が夫々設定されていることとする。例えば、t_progの減少に応じて、１ページのデータをメモリセルアレイにプログラムするために要する時間が減少する。１ページのデータのプログラムに要する消費電力は、t_prog以外の条件が同一である場合には、t_progの値にかかわらず一定である。したがって、t_progが第１の値である場合、t_progが第１の値より小さい第２の値である場合に比べて、性能の増大量に対する消費電力の増大量が大きい。t_progが性能と消費電力との関係に与える影響は例えば、測定または計算により予め求められ、求められた影響に基づいて対応情報２０２が生成される。コントローラ１０は、レディービジー信号を監視することによってt_progを測定することができる。例えば、コントローラ１０は、t_progを測定し、算出部１０４は、測定によって得られたt_progを使用してもよい。
【００３９】
メモリセルが疲弊するにしたがって、t_progが減少する傾向がある。メモリセルへの電子の注入がより容易になるからである。この傾向を利用して、t_progの代わりにメモリセルの疲弊の進行状況を示す指標が変数として使用されてもよい。メモリセルの疲弊の進行状況を示す指標としては、例えば、イレースの実行回数、積算通電時間（power  on  hours  count）、メモリシステム１へのデータの総書き込み量、または、ＮＡＮＤメモリ１１へのデータの総書き込み量、などが使用可能である。イレースの実行回数、積算通電時間、メモリシステム１へのデータの総書き込み量、または、ＮＡＮＤメモリ１１へのデータの総書き込み量は、例えば、コントローラ１０によって統計情報として記録される。算出部１０４は、記録されたイレースの実行回数、積算通電時間、メモリシステム１へのデータの総書き込み量、または、ＮＡＮＤメモリ１１へのデータの総書き込み量を取得して使用することができる。メモリセルの疲弊の程度を示す指標は、任意の単位毎に使用される。例えば、メモリセルの疲弊の程度を示す指標は、ページ、ブロック、メモリチップ、またはＮＡＮＤメモリ１１の単位で使用される。なお、t_progが性能と消費電力との関係に与える影響は図５の例に限定されない。
【００４０】
例えば、コードレートが対応情報２０２の変数として用意される。図６は、対応情報２０２によって規定される、コードレートと消費電力との関係の一例を示すグラフである。図６では、コードレートおよび消費電力、以外の変数には所定値が夫々設定されていることとする。コードレートＲは、０より大きく、かつ、１以下の値を取り得る。コードレートＲが１である場合に消費電力が最小である。コードレートＲが０に近いほど、消費電力が増加する。図７は、対応情報２０２によって規定される、コードレートと、消費電力と、性能と、の関係の一例を示すグラフである。図７では、コードレート、消費電力、および性能、以外の変数には所定値が夫々設定されていることとする。コードレートが第３の値である場合、コードレートが第３の値より大きい第４の値である場合に比べて、性能の増大量に対する消費電力の増大量が大きい。コードレートが性能と消費電力との関係に与える影響は例えば、測定または計算により予め求められ、求められた影響に基づいて対応情報２０２が生成される。コントローラ１０は、コードレートを制御し、算出部１０４は、コードレートを取得して使用する。なお、コードレートが性能と消費電力との関係に与える影響は図６および図７の例に限定されない。
【００４１】
例えば、余裕率が対応情報２０２の変数として用意される。余裕率は、ＮＡＮＤメモリ１１のうちのユーザデータの記憶に利用可能な全記憶容量と表記容量との関係を示す指標の１つである。具体的には、余裕率は、余裕容量を表記容量で除算して得られる。余裕容量は、ユーザデータの記憶に利用可能な領域の合計の容量から表記容量を減算して得られる値である。ユーザデータの記憶に利用可能な領域は、ここではavailable領域と表記される。ユーザデータとは、ホスト２から送られてきたデータである。なお、available領域に記憶されているユーザデータの状態は、有効な状態と無効な状態とのうちの何れかである。ＮＡＮＤメモリ１１に第１のユーザデータが格納されている状態でホスト２から第１のユーザデータと同一の論理アドレスを指定して第２のユーザデータが送られてきた場合、コントローラ１０は、空のページを有するブロックに第２のユーザデータを書き込み、第１のユーザデータを無効なユーザデータとして管理する。「空の」状態とは、ここでは、無効なデータおよび有効なデータの何れも記憶されていない状態をいう。空のページは、データが書き込み可能な空き領域である。このような手法でＮＡＮＤメモリ１１に対するライトが行われるため、各ブロックには、無効なユーザデータと有効なユーザデータとが記憶される。データが有効とは、そのデータが最新の状態であることをいう。同一の論理アドレスが指定された複数のユーザデータがＮＡＮＤメモリ１１に格納される場合において、最新の状態とは、その複数のユーザデータのうちのホスト２が最後に書き込んだユーザデータの状態をいう。無効なデータとは、前記複数のユーザデータのうちの、ホスト２が最後に書き込んだユーザデータ以外のユーザデータをいう。
【００４２】
余裕率は動的に変動し得る。例えば、バッドブロックの増加によって、余裕率が減少する。バッドブロックとは、ＮＡＮＤメモリ１１が備えるブロックのうち、使用不可と判定されたブロックをいう。使用不可の判断基準は任意である。例えばコントローラ１０は、あるブロックに格納されたユーザデータのエラービットレートが所定値を超える場合、そのブロックは使用不可のブロック（即ちバッドブロック）として管理する。また、例えば、コードレートの減少によって、余裕率が減少する。コードレートが減少することによって、ユーザデータがライトできる領域の正味のサイズ（言い換えるとavailable領域のサイズ）が減少するからである。
【００４３】
余裕率は、ガベージコレクションの実行に影響する。ガベージコレクションとは、一つのブロックから有効なデータを他のブロックの空き領域に移動（コピー）し、その後、移動元のブロックに格納されている全データを無効なデータとして管理する、処理をいう。移動元のブロックは、ガベージコレクションの後、フリーブロックとして管理される。なお、フリーブロックの集合を、フリーブロックプールと表記する。各フリーブロックは、イレースが実行されることによって、何もデータを記憶していない状態になる。
【００４４】
ホスト２から送られてきたユーザデータのＮＡＮＤメモリ１１へのライトを続けるうちに、無効なユーザデータの量が増えるとともにフリーブロックが枯渇する。ＣＰＵ５１は、フリーブロックを生成するために、ガベージコレクションを実行する。即ち、ユーザデータのＮＡＮＤメモリ１１に対するライトには、概略的には、２種類のライトが存在する。２種類のライトのうちの一は、ホスト２から送られてきたユーザデータのライト（以降、ホストライトと表記する）である。２種類のライトのうちの他は、ガベージコレクションに基づくライト（以降、ガベージコレクションライトと表記する）である。ホストライトによってＮＡＮＤメモリ１１にライトされるデータ量と、ガベージコレクションライトによってＮＡＮＤメモリ１１によってライトされるデータ量と、の比は、余裕率に応じてＣＰＵ５１によって制御される。一例として、ガベージコレクションライトによってＮＡＮＤメモリ１１によってライトされるデータ量をホストライトによってＮＡＮＤメモリ１１にライトされるデータ量で除算して得られる値は、ギア比と表記される。ＣＰＵ５１は、余裕率に応じてギア比を制御する。ＣＰＵ５１は、ギア比と、ホストライトによってＮＡＮＤメモリ１１にライトされるデータ量と、に応じてガベージコレクションの実行を制御する。具体的には、例えば、ＣＰＵ５１は、余裕率に応じたギア比を演算する。そして、ＣＰＵ５１は、ホストライトによってＮＡＮＤメモリ１１にライトされたデータ量とギア比とから、ガベージコレクションによってＮＡＮＤメモリ１１にライトすべき目標のデータ量を演算する。そして、ＣＰＵ５１は、演算によって得られた目標のデータ量に至るまでガベージコレクションを実行する。
【００４５】
図８は、ギア比と余裕率との関係の一例を示すグラフである。図示するように、ＣＰＵ５１は、余裕率が減少するに応じてギア比を増加させる。即ち、ＣＰＵ５１は、余裕率が減少するに応じて、ホストライトによってメモリシステム１に送られてくるデータ量に対する、実際にＮＡＮＤメモリ１１にライトされる合計のデータ量、の割合を、増加させる。したがって、消費電力および余裕率、以外の条件が同一である場合においては、余裕率が減少するに応じて消費電力が増加する。
【００４６】
図９は、対応情報２０２によって規定される、余裕率と、消費電力と、性能と、の関係の一例を示すグラフである。図９では、余裕率、消費電力、および性能、以外の変数には所定値が夫々設定されていることとする。余裕率が第５の値である場合、余裕率が第５の値よりも大きい第６の値である場合に比べて、性能の増大量に対する消費電力の増大量が大きい。余裕率が性能と消費電力との関係に与える影響は例えば、測定または計算により予め求められ、求められた影響に基づいて対応情報２０２が生成される。ＣＰＵ５１は、余裕率を制御し、算出部１０４は、余裕率を取得して使用する。なお、余裕率が性能と消費電力との関係に与える影響は図９の例に限定されない。
【００４７】
なお、余裕率が消費電力と性能との関係に与える影響の大きさは、アクセスの連続性に依存する。例えば、ランダムライトの場合、シーケンシャルライトの場合に比べて、余裕率が消費電力と性能との関係に与える影響が大きい。シーケンシャルライトの場合、ランダムライトの場合に比べて、より効率的にフリーブロックが生成できるからである。余裕率とアクセスの連続性とが対応情報２０２の変数として用意されていてもよい。
【００４８】
なお、ホストライトによってメモリシステム１に送られてくるデータ量に対する、実際にＮＡＮＤメモリ１１にライトされる合計のデータ量、の割合を、書き込み倍率（Write  Amplification  Factor  :  WAF）と表記する。対応情報２０２は余裕率の代わりにWAFを変数として備えていてもよい。WAFは、余裕率のほか、コードレートによっても影響される。コードレートが小さくなるに応じてWAFが増加する。算出部１０４は、計算または測定によりWAFを取得し、取得したWAFを使用してもよい。
【００４９】
例えば、温度情報が対応情報２０２の変数として用意される。消費電力は、リークパワーとダイナミックパワーとの合算によって得られる。リークパワーとは、メモリ５２に発生するリーク電流によってロスする電力である。リーク電流は、電源を供給中において発生し、電源の供給が停止中において発生しない。リークパワーは、メモリ５２を構成する回路のジャンクション温度に応じて変化する。ダイナミックパワーは、メモリシステム１内のデータの転送によって消費される電力である。ダイナミックパワーは、各メモリチップにおけるイレース、リード、およびライトによって消費される電力を含むものとする。即ち、ダイナミックパワーは、パフォーマンスが高い時ほど大きくなる傾向がある。
【００５０】
図１０および図１１は、対応情報２０２によって規定される、ジャンクション温度と、消費電力と、性能と、の関係の一例を示すグラフである。図１０および図１１に示すように、ジャンクション温度が同一である場合には、性能が高い場合の消費電力は、性能が低い場合の消費電力よりも大きい。性能が同一である場合には、ジャンクション温度が高い場合の消費電力はジャンクション温度が低い場合の消費電力よりも大きい。
【００５１】
例えば、温度センサ１０５はメモリ５２の近傍に配設されている。算出部１０４は、温度センサ１０５の検出値を所定の演算によって補正することによってジャンクション温度を演算してもよい。算出部１０４は、温度センサ１０５がメモリ５２から離れた位置（例えばメモリシステム１内においてコントローラ１０から離れた位置）に配設される場合には、予め設定された関係式と温度センサ１０５の検出値とに基づいて、ジャンクション温度を推定してもよい。メモリシステム１は、外部（例えばメモリシステム１が実装されているコンピュータの筐体など）から温度が入力されてもよい。算出部１０４は、例えば、外部から入力された温度に基づいてジャンクション温度を推定してもよい。また、例えばジャンクション温度の代わりに温度センサ１０５の検出値が対応情報２０２の変数として用意されてもよい。上述のように温度センサ１０５の検出値からジャンクション温度を簡単に導出することが可能だからである。なお、ジャンクション温度が性能と消費電力との関係に与える影響は図１０および図１１の例に限定されない。
【００５２】
なお、以上の例では、消費電力と性能との間の関係は、消費電力および性能の他の条件が同一であれば、リニアであることとして説明した。例えば、ＤＣ−ＤＣコンバータ１２１は、負荷の増加に応じて効率が向上する性質を有している。ＤＣ−ＤＣコンバータ１２１のこの性質を考慮すると、消費電力と性能との間の関係は、例えば図１２のグラフに示すように、性能が高くなるに応じて、性能の増大量に対する消費電力の増大量の割合が低下する。このように、消費電力と性能との間の関係はリニアでなくてもよい。
【００５３】
各種変数が性能と消費電力との関係に与える影響は例えば製造時に測定または演算により求められ、求められた影響に基づいて対応情報２０２が生成される。各種変数が性能と消費電力との関係に与える影響はメモリシステム１毎に個別に測定されてもよい。これにより、メモリシステム１の製造ばらつきに依存しない消費電力の制御が可能となる。各種変数が性能と消費電力との関係に与える影響は複数個のメモリシステム１毎（例えばメモリシステム１のロット毎）に測定されてもよい。
【００５４】
図１３は、第１の実施形態の、メモリシステム１の動作を説明するシーケンス図である。まず、ホスト２はメモリシステム１に予告通知を送信する（Ｓ１０１）。メモリシステム１においては、予告通知の受信に応じて、算出部１０４は対応情報２０２の各種変数に設定される値を取得する（Ｓ１０２）。算出部１０４は、取得した各値と対応情報２０２とに基づいて、予告通知によって通知された性能を実現する場合の消費電力（即ち予測消費電力）を算出する（Ｓ１０３）。
【００５５】
なお、取得とは、演算、参照、および推定を含む。参照とは、予め設定された値の参照、および、状態値の参照を含む。対応情報２０２の１以上の変数のうち予測性能の演算のための固定値が予め設定されている変数がある場合には、算出部１０４は、当該固定値を参照する。また、算出部１０４は、予告通知を参照し、アクセスパターンを読み出す。また、例えば余裕率は、状態値として所定の記憶領域（例えばメモリ５２）に記録され、動作状況に応じて更新される。算出部１０４は、所定の記憶領域に記録されている余裕率を参照する。例えば、算出部１０４は、温度センサ１０５の検出値に基づいてジャンクション温度を演算したり推定したりする。このように、算出部１０４は、変数の種類に応じて、対応情報２０２の変数に設定すべき値を、演算したり、参照したり、推定したりする。
【００５６】
Ｓ１０３の処理においては、算出部１０４は、例えば、対応情報２０２の複数の変数のうち消費電力を除く全ての変数に値を設定する。そして、算出部１０４は、対応情報２０２と、各変数に設定された値と、から決まる消費電力を、予測消費電力として扱う。
【００５７】
ＣＰＵ５１は、算出部１０４によって算出された予測消費電力をホスト２に送信する（Ｓ１０４）。ホスト２は、予測消費電力に基づいて許容消費電力を決定する（Ｓ１０５）。
【００５８】
Ｓ１０５の処理の方法は、任意に設計可能である。例えば、ホスト２は、全体の消費電力のバランスに基づいて、メモリシステム１に割り当てる消費電力を演算する。または、ホスト２は、メモリシステム１が放出する熱量を考慮しながら、メモリシステム１に割り当てる消費電力を決定する。ホスト２は、予測消費電力がメモリシステム１に割り当てる消費電力を超えない場合には、予測消費電力を許容消費電力に設定する。ホスト２は、予測消費電力がメモリシステム１に割り当てる消費電力を超える場合には、メモリシステム１に割り当てる消費電力を許容消費電力に設定する。
【００５９】
ホスト２は、許容消費電力をメモリシステム１に送信する（Ｓ１０６）。メモリシステム１が許容消費電力を受信すると、性能制御ＩＦ１０１は、受信した許容消費電力を許容消費電力２０１として情報記憶部１０３に格納する。算出部１０４は、許容消費電力２０１で実現可能な最大の性能を算出する（Ｓ１０７）。Ｓ１０７の処理においては、算出部１０４は、例えば、対応情報２０２の複数の変数のうち性能を除く全ての変数に値を設定する。
【００６０】
算出部１０４は、Ｓ１０７の処理によって得られた性能に基づいて、並列動作設定数を算出する（Ｓ１０８）。性能と並列動作数との関係は、予めメモリシステム１に設定されている。例えば、性能と並列動作数との関係を規定した情報（例えばテーブルまたは関数）は、予め所定の記憶領域（例えばＮＡＮＤメモリ１１）に格納されている。算出部１０４は、例えば、当該情報と演算された性能とを用いることによって並列動作設定数２０３を演算する。算出部１０４は、演算された並列動作設定数２０３を情報記憶部１０３に格納する。
【００６１】
資源制御部１０２は、並列動作数を更新する（Ｓ１０９）。具体的には、資源制御部１０２は、並列動作数が並列動作設定数２０３に等しくなるように、並列動作資源５０を制御する。
【００６２】
なお、図１３の説明においては、ホスト２は許容消費電力を決定し、メモリシステム１に通知する、として説明した。ホスト２は、メモリシステム１に割り当てる消費電力が予測消費電力よりも大きい場合には、Ｓ１０６の処理において、許可通知を送信してもよい。性能制御ＩＦ１０１は、許可通知を受信すると、送信済みの予測消費電力を許容消費電力２０１として情報記憶部１０３に格納する。
【００６３】
また、算出部１０４はＳ１０７の処理において、許容消費電力２０１で実現可能な最大の性能を算出する、として説明した。算出部１０４は、許容消費電力２０１で実現可能な性能であれば、必ずしも最大の性能を算出しなくてもよい。
【００６４】
なお、以上の説明においては、資源制御部１０２は、並列動作数を変化させることによって性能を調整した。性能の調整の方法は、並列動作数の制御による方法だけに限定されない。例えば、資源制御部１０２は、ホスト２に対する応答に待ち時間を挿入することによって性能を調整し得る。応答は、リードコマンドに応じてＮＡＮＤメモリ１１から読み出されたデータを含む。また、応答は、ホスト２からのコマンドに対応する、実行完了通知であってもよい。応答が複数のパケットに分割されて送信される場合、資源制御部１０２は、パケット間に待ち時間を挿入してもよい。資源制御部１０２は、待ち時間の大きさを、Ｓ１０８の演算によって得られた性能に応じて演算する。
【００６５】
また、メモリシステム１とホスト２との間の交渉の方法は任意である。例えば、ホスト２は予告通知と許容消費電力とをメモリシステム１に送信し、メモリシステム１は、予測消費電力を予告通知に基づいて算出し、予測消費電力と許容消費電力とのうちの大きい方の消費電力を用いて実現可能な最大の性能で動作してもよい。例えば、ホスト２は許容消費電力をメモリシステム１に送信し、メモリシステム１は、受信した許容消費電力を用いて実現可能な最大の性能で動作してもよい。
【００６６】
以上述べたように、第１の実施形態においては、メモリシステム１は、ホスト２からアクセスパターンおよび性能が通知され、予測消費電力をアクセスパターンおよび性能と余裕率とに基づいて算出する算出部１０４を備える。アクセスパターン、性能、および余裕率は、動的に変化しうる要素である。算出部１０４はこれらの動的に変化しうる要素に基づいて消費電力を予測するので、高い精度で消費電力を予測することが可能となる。メモリシステム１は、高い精度で消費電力を予測できるので、利便性が高い。
【００６７】
また、アクセスパターンによる性能と消費電力との関係への影響は、以上に述べた他の変数による影響に比べて大きい。算出部１０４は、アクセスパターンを用いて消費電力を予測するので、予測の精度が向上する。また、余裕率による影響は、アクセスの連続性に応じて変化する。例えばランダムライトの場合、シーケンシャルライトに比べて余裕率による影響が大きくなる。算出部１０４は、アクセスパターンと余裕率とを用いて消費電力を予測するので、予測の精度が向上する。なお、ＮＡＮＤメモリ１１のうちのユーザデータの記憶に利用可能な全記憶容量と表記容量との関係を示す指標であれば、余裕率以外の指標が変数として使用可能である。
【００６８】
なお、算出部１０４は、余裕率と性能のみに基づいて予測消費電力を算出してもよい。算出部１０４が余裕率と性能のみに基づいて予測消費電力を算出するように構成される場合、対応情報２０２にはランダムライトの場合を想定して性能と消費電力との関係が規定されてもよい。
【００６９】
また、メモリシステム１は温度センサ１０５をさらに備える。算出部１０４は、温度センサ１０５の検出値をさらに用いることによって消費電力を予測する。上述したように、メモリ５２のリークパワーはジャンクション温度に応じて変化する。ジャンクション温度も、動的に変化しうる要素である。ジャンクション温度の影響を考慮して消費電力を予測することが可能であるので、予測の精度が向上する。なお、算出部１０４は、温度センサ１０５の検出値からジャンクション温度を演算してもよい。対応情報２０２の変数として温度センサ１０５の検出値が用意されていてもよい。
【００７０】
また、算出部１０４は、コードレートをさらに用いることによって消費電力を予測する。コードレートも、動的に変化しうる要素である。算出部１０４はコードレートを用いて消費電力を予測するので、予測の精度が向上する。なお、コードレートは、符号化前のユーザデータのサイズと符号化後のユーザデータのサイズとの関係を示す指標のひとつである。符号化前のユーザデータのサイズと符号化後のユーザデータのサイズとの関係を示す指標であれば、コードレート以外の指標が変数として使用可能である。
【００７１】
また、算出部１０４は、t_progをさらに用いることによって消費電力を予測する。t_progは、メモリセルの疲弊に応じて小さくなる。即ちt_progも動的に変化しうる要素である。算出部１０４は、t_progを用いて消費電力を予測するので、予測の精度が向上する。なお、t_progの代わりにメモリセルの疲弊の進行状況を示す指標が使用可能である。
【００７２】
また、算出部１０４は、許容消費電力で実行可能なスループットを算出する。これにより、メモリシステム１は許容消費電力を超えない消費電力で動作することが可能となる。なお、許容消費電力は、ホスト２から通知される。許容消費電力は予め決められていてもよい。
【００７３】
（第２の実施形態）
図１４は、メモリシステム１の実装例を示す図である。メモリシステム１は、例えばサーバシステム１０００に実装される。サーバシステム１０００は、ディスクアレイ２０００とラックマウントサーバ３０００とが通信インタフェース４０００によって接続されて構成される。通信インタフェース４０００の規格としては任意の規格が採用可能である。ラックマウントサーバ３０００は、サーバラックを備え、サーバラックに１以上のホスト２がマウントされる。また、ディスクアレイ２０００は、サーバラックを備え、サーバラックに１以上のメモリシステム１がマウントされる。なお、ディスクアレイ２０００のサーバラックにＨＤＤなど他のユニットがマウントされてもよい。ディスクアレイ２０００は、電源装置３を備える。電源装置３からの電力は、ディスクアレイ２０００にマウントされた各ユニットに、図示しないバックプレーンを介して供給される。なお、ディスクアレイ２０００に複数のメモリシステム１が具備される場合、当該複数のメモリシステム１はＲＡＩＤを構成してもよい。
【００７４】
ホスト２は、ディスクアレイ２０００内の温度が所定値を超えないようにメモリシステム１毎の許容消費電力を演算してもよい。また、ホスト２は、電源装置３による電力の供給能力とディスクアレイ２０００が備えるメモリシステム１の数とに基づいてメモリシステム１毎の許容消費電力を演算してもよい。各メモリシステム１は、第１の実施形態にて説明した構成を有しているので、夫々、許容消費電力で実現できる最大の性能を発揮することができる。
【００７５】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００７６】
１  メモリシステム、２  ホスト、３  電源装置、１０  コントローラ、１１  ＮＡＮＤメモリ、１２  電源回路、３１  算出部、５０  並列動作資源、５２  メモリ、５３  符号化部、５４  復号化部、１０１  性能制御ＩＦ、１０２  資源制御部、１０３  情報記憶部、１０４  算出部、１０５  温度センサ、１２１  ＤＣ−ＤＣコンバータ、２０１  許容消費電力、２０２  対応情報、２０３  並列動作設定数、１０００  サーバシステム、２０００  ディスクアレイ、３０００  ラックマウントサーバ、４０００  通信インタフェース。
【図１】
2018036795.tif 000003
【図２】
2018036795.tif 000004
【図３】
2018036795.tif 000005
【図４】
2018036795.tif 000006
【図５】
2018036795.tif 000007
【図６】
2018036795.tif 000008
【図７】
2018036795.tif 000009
【図８】
2018036795.tif 000010
【図９】
2018036795.tif 000011
【図１０】
2018036795.tif 000012
【図１１】
2018036795.tif 000013
【図１２】
2018036795.tif 000014
【図１３】
2018036795.tif 000015
【図１４】
2018036795.tif 000016