(57)【要約】  本発明の課題は、書き換え可能な回数が限られているメモリを複数備えるデータ処理システムにおいて、特定のメモリにデータの書き換え処理が集中することにより生じるシステム全体のパフォーマンスの低下を抑制する手段を提供することである。本発明の一実施形態にかかるデータ処理システム１は、管理装置１１と複数のデータ処理装置１２を備えている。データ処理装置１２は各々、ＮＡＮＤ型フラッシュメモリであるメモリ１０３を備えている。データ処理装置１２の各々は自装置のメモリ１０３におけるデータの書き換え回数の多少を示す状態データを管理装置１１に送信する。管理装置１１は、受信した状態データが示すデータの書き換え回数が最小であるデータ処理装置１２にデータ処理を割り当てる。
2015087651.tif 000002
【特許請求の範囲】
【請求項１】
各々が、メモリと、当該メモリにおけるデータの読み書きを制御し当該メモリにおけるデータの書き換え回数の多少を含む当該メモリの状態を示す状態データを生成するメモリコントローラと、データ処理を行うプロセッサと、を備える複数のデータ処理装置の各々から、当該データ処理装置の前記メモリコントローラが生成した前記状態データを取得する状態取得手段と、
データの書き換えを伴うデータ処理の要求を取得する要求取得手段と、
前記状態取得手段が前記複数のデータ処理装置の各々から取得した前記状態データに基づき、予め定められた規則に従い、前記複数のデータ処理装置の中から一のデータ処理装置を選択する選択手段と、
前記要求取得手段が取得した前記データ処理の要求を、前記選択手段が選択した前記一のデータ処理装置に対し出力する出力手段と
を備える装置。
【請求項２】
前記選択手段は、前記状態取得手段が前記複数のデータ処理装置の各々から取得した前記状態データに基づき、予め定められた規則に従い、前記複数のデータ処理装置の中からデータの移動元のデータ処理装置とデータの移動先のデータ処理装置とを選択し、
前記出力手段は、前記選択手段が選択した前記移動元のデータ処理装置および前記移動先のデータ処理装置の少なくとも一方に対し、前記移動元のデータ処理装置から前記移動先のデータ処理装置へのデータの移動の要求を出力する
請求項１に記載の装置。
【請求項３】
メモリと、
前記メモリにおけるデータの読み書きを制御し、前記メモリにおけるデータの書き換え回数の多少を含む前記メモリの状態を示す状態データを生成するメモリコントローラと、
前記メモリコントローラが生成した前記状態データを一の装置に対し出力する出力手段と、
前記一の装置から前記メモリにおけるデータの書き換えを伴うデータ処理の要求を取得する取得手段と、
前記取得手段が取得した前記要求に応じたデータ処理を行うプロセッサと
を備える装置。
【請求項４】
各々が、メモリと、当該メモリにおけるデータの読み書きを制御し当該メモリにおけるデータの書き換え回数の多少を含む当該メモリの状態を示す状態データを生成するメモリコントローラと、を備える複数のデータ記憶装置の各々から、当該データ記憶装置の前記メモリコントローラが生成した前記状態データを取得する状態取得手段と、
データの書き換え処理の要求を取得する要求取得手段と、
前記状態取得手段が前記複数のデータ記憶装置の各々から取得した前記状態データに基づき、予め定められた規則に従い、前記複数のデータ記憶装置の中から一のデータ記憶装置を選択する選択手段と、
前記要求取得手段が取得した前記データの書き換え処理の要求を、前記選択手段が選択した前記一のデータ記憶装置に対し出力する出力手段と
を備える装置。
【請求項５】
メモリと、
前記メモリにおけるデータの読み書きを制御し、前記メモリにおけるデータの書き換え回数の多少を含む前記メモリの状態を示す状態データを生成するメモリコントローラと、
前記メモリコントローラが生成した前記状態データを一の装置に対し出力する出力手段と、
前記一の装置から前記メモリにおけるデータの書き換え処理の要求を取得する取得手段と
を備え、
前記メモリコントローラは、前記取得手段が取得した前記要求に応じたデータの書き換え処理を前記メモリに実行させる
装置。
【請求項６】
前記メモリコントローラは、前記メモリにデータの書き換え処理を実行させる場合、前記状態データに基づき、予め定められた規則に従い、前記メモリが有する複数の記憶領域の中から一の記憶領域を選択し、前記メモリに前記一の記憶領域において当該データの書き換え処理を実行させる
請求項３または５に記載の装置。
【請求項７】
複数のメモリと、
前記複数のメモリの各々に対応して設けられ、対応するメモリにおけるデータの読み書きを制御し、当該対応するメモリにおけるデータの書き換え回数の多少を含む当該対応するメモリの状態を示す状態データを生成する、複数のメモリコントローラと、
データの書き換え処理の要求を取得する取得手段と、
前記複数のメモリコントローラの各々が生成した前記状態データに基づき、予め定められた規則に従い、前記複数のメモリの中から一のメモリを選択する選択手段と
を備え、
前記選択手段が選択した前記一のメモリに対応する前記メモリコントローラは、前記取得手段が取得した要求に応じたデータの書き換え処理を前記一のメモリに実行させる
装置。
【請求項８】
前記複数のメモリコントローラの各々は、当該メモリコントローラに対応するメモリにデータの書き換え処理を実行させる場合、当該メモリコントローラが生成した前記状態データに基づき、予め定められた規則に従い、前記対応するメモリが有する複数の記憶領域の中から一の記憶領域を選択し、前記対応するメモリに前記一の記憶領域において当該データの書き換え処理を実行させる
請求項７に記載の装置。
【請求項９】
コンピュータに、
各々が、メモリと、当該メモリにおけるデータの読み書きを制御し当該メモリにおけるデータの書き換え回数の多少を含む当該メモリの状態を示す状態データを生成するメモリコントローラと、データ処理を行うプロセッサと、を備える複数のデータ処理装置の各々から、当該データ処理装置の前記メモリコントローラが生成した前記状態データを取得する処理と、
データの書き換えを伴うデータ処理の要求を取得する処理と、
前記複数のデータ処理装置の各々から取得した前記状態データに基づき、予め定められた規則に従い、前記複数のデータ処理装置の中から一のデータ処理装置を選択する処理と、
前記データ処理の要求を、前記一のデータ処理装置に対し出力する処理と
を実行させるためのプログラム。
【請求項１０】
コンピュータに、
各々が、メモリと、当該メモリにおけるデータの読み書きを制御し当該メモリにおけるデータの書き換え回数の多少を含む当該メモリの状態を示す状態データを生成するメモリコントローラと、を備える複数のデータ記憶装置の各々から、当該データ記憶装置の前記メモリコントローラが生成した前記状態データを取得する処理と、
データの書き換え処理の要求を取得する処理と、
前記複数のデータ記憶装置の各々から取得した前記状態データに基づき、予め定められた規則に従い、前記複数のデータ記憶装置の中から一のデータ記憶装置を選択する処理と、
前記データの書き換え処理の要求を、前記一のデータ記憶装置に対し出力する処理と
を実行させるためのプログラム。
【請求項１１】
請求項９または請求項１０に記載のプログラムを持続的に記録するコンピュータ読み取り可能な記録媒体。
【請求項１２】
一の装置が、各々が、メモリと、当該メモリにおけるデータの読み書きを制御し当該メモリにおけるデータの書き換え回数の多少を含む当該メモリの状態を示す状態データを生成するメモリコントローラと、データ処理を行うプロセッサと、を備える複数のデータ処理装置の各々から、当該データ処理装置の前記メモリコントローラが生成した前記状態データを取得するステップと、
前記一の装置が、データの書き換えを伴うデータ処理の要求を取得するステップと、
前記一の装置が、前記複数のデータ処理装置の各々から取得した前記状態データに基づき、予め定められた規則に従い、前記複数のデータ処理装置の中から一のデータ処理装置を選択するステップと、
前記一の装置が、前記データ処理の要求を、前記一のデータ処理装置に対し出力するステップと
を備える方法。
【請求項１３】
一の装置が、各々が、メモリと、当該メモリにおけるデータの読み書きを制御し当該メモリにおけるデータの書き換え回数の多少を含む当該メモリの状態を示す状態データを生成するメモリコントローラと、を備える複数のデータ記憶装置の各々から、当該データ記憶装置の前記メモリコントローラが生成した前記状態データを取得するステップと、
前記一の装置が、データの書き換え処理の要求を取得するステップと、
前記一の装置が、前記複数のデータ記憶装置の各々から取得した前記状態データに基づき、予め定められた規則に従い、前記複数のデータ記憶装置の中から一のデータ記憶装置を選択するステップと、
前記一の装置が、前記データの書き換え処理の要求を、前記一のデータ記憶装置に対し出力するステップと
を備える方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データの書き換え回数が限られているメモリの使用可能期間を延ばすための技術に関する。
【背景技術】
【０００２】
データの書き換え可能な回数が限られているメモリがある。例えば、現在普及の進んでいる２ビットのＭＬＣ（Multiple Level Cell）方式のＮＡＮＤ型フラッシュメモリの各記憶素子の書き換え可能な回数は実用上、数万回オーダーであることが知られている。なお、フラッシュメモリにおいてデータの書き換え可能な回数が限られる理由は、フラッシュメモリが備えるトンネル酸化膜がデータの書き換え時に通過する電子によって徐々に劣化するためである。【０００３】
書き換え可能な回数が限られる理由は異なるが、例えばＣＤ−ＲＷ（Compact Disc-ReWritable）、ＤＶＤ−ＲＷ（Digital Versatile Disc -ReWritable）等もデータの書き換え可能な回数が限られているメモリである。【０００４】
書き換え可能な回数が限られているメモリにおいて、特定の記憶領域にデータの書き換えを集中させると、多数の記憶領域の各々にデータの書き換えを分散させる場合と比較して、全体として書き換えるデータ量は同じであっても、早期に使用不可能な記憶領域が生じてしまい、その後のメモリの使用において有効な記憶容量が減少し、パフォーマンスが低下する、という不都合を生じる。【０００５】
上記の不都合を低減するための技術として、ウェアレベリングと呼ばれる技術がある。図１２〜図１４は従来技術にかかるウェアレベリングの仕組みの概要を、ＮＡＮＤ型フラッシュメモリの場合を例として説明するための図である。ＮＡＮＤ型フラッシュメモリにおいては、一般的に「ページ」と呼ばれる記憶領域の単位でデータの読み出しおよび書き込みが行われ、互いに隣接する複数のページの集まりである「ブロック」と呼ばれる記憶領域の単位でデータの消去が行われる。図１２に示すＮＡＮＤ型フラッシュメモリは、ｍ個のブロック（ブロック１〜ｍ）を備え、ブロック１〜ｍの各々はｎ個のページ（ページ１〜ｎ）を備えている。【０００６】
ＮＡＮＤ型フラッシュメモリにおけるデータの読み書きを制御するメモリコントローラは、図１３に示すようなメモリ管理テーブルを管理している。メモリ管理テーブルは、ＮＡＮＤ型フラッシュメモリが備えるページの各々に関し、ページを識別するデータを格納するデータフィールド「ページＩＤ」、ページにおけるデータの記憶の状態を示すデータを格納するデータフィールド「ステイタス」、ページが過去に書き換えられた回数を示すデータを格納するデータフィールド「書き換え回数」を備えている。なお、データフィールド「ステイタス」には、例えば、ページがデータを保持していないことを示す「未使用」、ページが保持すべきデータを保持していることを示す「使用中」、ページが消去してもよいデータを保持していることを示す「消去可」、ページが読み書き時にエラーを生じた等の理由により不良と判断され使用不可とされていることを示す「不良」のいずれかが格納される。【０００７】
さらに、メモリコントローラは、図１４に示すようなアドレス変換テーブルを管理している。アドレス変換テーブルは、データの読み書きを要求する要求元装置が記憶領域を識別するために用いる識別データであるアドレスを、ＮＡＮＤ型フラッシュメモリ内において記憶領域を識別するために用いる識別データであるページＩＤに変換するためのテーブルである。アドレス変換テーブルは、アドレスを格納するデータフィールド「アドレス」と、アドレスに対応するページＩＤを格納するデータフィールド「ページＩＤ」を備えている。以下、例として、ページＩＤは「（ブロック番号）−（ページ番号）」の形式に従うものとする。【０００８】
例えば、要求元装置がアドレス「ｘｘｘｘ」に格納されているデータＡを読み出して、データＡに対し処理を行い生成したデータＡ’をアドレス「ｘｘｘｘ」に書き込む指示をメモリコントローラに与えた場合、メモリコントローラは以下のような処理を行う。まず、メモリコントローラは、アドレス変換テーブル（図１４）に従い、アドレス「ｘｘｘｘ」に対応するページＩＤを特定する。以下、例として、ページＩＤ「１−４」が特定されたとする。【０００９】
続いて、メモリコントローラは、ページＩＤ「１−４」で識別されるブロック１のページ４から、データＡを読み出し、データバッファに一時的に記憶した後、プロセッサに引き渡す。続いて、プロセッサからデータＡ’を受け取りデータバッファに一時的に記憶した後、メモリ管理テーブル（図１３）に従い、データＡ’の書き込み先を選択する。その際、メモリコントローラは、「ステイタス」が未使用であり、「書き換え回数」が最も少ないページの中から、例えばランダムに１つのページを選択する。以下、例として、ページＩＤ「２−５」で識別されるブロック２のページ５が選択されたものとする。【００１０】
続いて、メモリコントローラは、データＡ’をブロック２のページ５に書き込む。続いて、メモリコントローラは、上記の処理に伴うメモリ管理テーブル（図１３）およびアドレス変換テーブル（図１４）の更新を行う。具体的には、まず、メモリコントローラは、メモリ管理テーブルのページＩＤ「１−４」に応じたデータレコードのデータフィールド「ステイタス」を「使用中」から「消去可」に変更する。また、メモリコントローラは、メモリ管理テーブルのページＩＤ「２−５」に応じたデータレコードのデータフィールド「ステイタス」を「未使用」から「使用中」に変更し、データフィールド「書き換え回数」の値を１だけ増加させる。また、メモリコントローラは、アドレス変換テーブルのアドレス「ｘｘｘｘ」に応じたデータレコードのデータフィールド「ページＩＤ」を「１−４」から「２−５」に変更する。【００１１】
上記のように、メモリコントローラがデータの書き換えにおいて、過去に書き換え回数が他のページと比較して少ないページにデータを書き込む処理を行うことにより、データの書き換え回数がページ間で平滑化される。以上が従来技術にかかるウェアレベリングの仕組みの概要である。【００１２】
なお、ウェアレベリングに関する技術を開示する文献として、例えば特許文献１がある。特許文献１には、書き換えを行わない物理アドレスブロックはそのまま放置しておくパッシブなウェアレベリングと、書き換えを行わない物理アドレスブロックも全ての物理アドレスブロックの書き換え回数が平均化されるように書き換えを行うアクティブなウェアレベリングとを、予め定められた条件に従って選択的に用いることが提案されている。特許文献１によれば、当該構成を採用することにより、頻繁に書き換えを行うデータ領域と殆ど書き換えを行わないデータ領域とが混在するデータがメモリに書き込まれている状態において、望ましいウェアレベリングが実現される、と述べられている。
【先行技術文献】
【特許文献】
【００１３】
【特許文献１】特開２０１２−０２２７２５号公報
【発明の概要】
【発明が解決しようとする課題】
【００１４】
近年、ＮＡＮＤ型フラッシュメモリ等の書き換え可能な回数が限られているメモリを備えるデータ記憶装置を多数備えるシステムが普及しつつある。例えば、ネットワークを介して他の装置との間でデータ通信可能なコンピュータ（以下、「ノードコンピュータ」という）を多数、集積したシステム（以下、「マルチノードコンピュータシステム」という）がある。マルチノードコンピュータシステムは、例えば、ｐ個のノードコンピュータが配置された基盤（カード）がｑ枚接続された筐体（シャーシ）をｒ個段積みした棚（ラック）の形態をとる。この場合、マルチノードコンピュータシステムは全部で（ｐ×ｑ×ｒ）個のノードコンピュータを備える。なお、各々のノードコンピュータは、例えばイーサネット（商標登録）等の汎用的な通信規格に従ったネットワークを介して互いにデータ通信可能である。上述したノードコンピュータが備えるメモリとして、近年、ＮＡＮＤ型フラッシュメモリ等の書き換え可能な回数が限られているメモリが採用される場合が増えている。【００１５】
上記のような、書き換え可能な回数が限られているメモリを備えるノードコンピュータを多数、集積した構成のマルチノードコンピュータシステムにおいて、特定のノードコンピュータがデータの書き換えを伴うデータ処理を集中して行うと、それらの特定のノードコンピュータのメモリが他のノードコンピュータのメモリと比較して早期に使用できなくなり、それらの特定のノードコンピュータのパフォーマンスが低下し、結果としてマルチノードコンピュータシステム全体のパフォーマンスが低下する。【００１６】
本発明は上述の背景に鑑みてなされたものであり、書き換え可能な回数が限られているメモリを複数備えるデータ処理システムにおいて、特定のメモリにデータの書き換え処理が集中することにより生じるシステム全体のパフォーマンスの低下を抑制する手段を提供することを目的とする。
【課題を解決するための手段】
【００１７】
上述した課題を解決するために、本発明は、一態様として、各々が、メモリと、当該メモリにおけるデータの読み書きを制御し当該メモリにおけるデータの書き換え回数の多少を含む当該メモリの状態を示す状態データを生成するメモリコントローラと、データ処理を行うプロセッサと、を備える複数のデータ処理装置の各々から、当該データ処理装置の前記メモリコントローラが生成した前記状態データを取得する状態取得手段と、データの書き換えを伴うデータ処理の要求を取得する要求取得手段と、前記状態取得手段が前記複数のデータ処理装置の各々から取得した前記状態データに基づき、予め定められた規則に従い、前記複数のデータ処理装置の中から一のデータ処理装置を選択する選択手段と、前記要求取得手段が取得した前記データ処理の要求を、前記選択手段が選択した前記一のデータ処理装置に対し出力する出力手段とを備える装置を提供する。【００１８】
上記の装置において、前記選択手段は、前記状態取得手段が前記複数のデータ処理装置の各々から取得した前記状態データに基づき、予め定められた規則に従い、前記複数のデータ処理装置の中からデータの移動元のデータ処理装置とデータの移動先のデータ処理装置とを選択し、前記出力手段は、前記選択手段が選択した前記移動元のデータ処理装置および前記移動先のデータ処理装置の少なくとも一方に対し、前記移動元のデータ処理装置から前記移動先のデータ処理装置へのデータの移動の要求を出力する、という構成が採用されてもよい。【００１９】
また、本発明は、一態様として、メモリと、前記メモリにおけるデータの読み書きを制御し、前記メモリにおけるデータの書き換え回数の多少を含む前記メモリの状態を示す状態データを生成するメモリコントローラと、前記メモリコントローラが生成した前記状態データを一の装置に対し出力する出力手段と、前記一の装置から前記メモリにおけるデータの書き換えを伴うデータ処理の要求を取得する取得手段と、前記取得手段が取得した前記要求に応じたデータ処理を行うプロセッサとを備える装置を提供する。【００２０】
また、本発明は、一態様として、各々が、メモリと、当該メモリにおけるデータの読み書きを制御し当該メモリにおけるデータの書き換え回数の多少を含む当該メモリの状態を示す状態データを生成するメモリコントローラと、を備える複数のデータ記憶装置の各々から、当該データ記憶装置の前記メモリコントローラが生成した前記状態データを取得する状態取得手段と、データの書き換え処理の要求を取得する要求取得手段と、前記状態取得手段が前記複数のデータ記憶装置の各々から取得した前記状態データに基づき、予め定められた規則に従い、前記複数のデータ記憶装置の中から一のデータ記憶装置を選択する選択手段と、前記要求取得手段が取得した前記データの書き換え処理の要求を、前記選択手段が選択した前記一のデータ記憶装置に対し出力する出力手段とを備える装置を提供する。【００２１】
また、本発明は、一態様として、メモリと、前記メモリにおけるデータの読み書きを制御し、前記メモリにおけるデータの書き換え回数の多少を含む前記メモリの状態を示す状態データを生成するメモリコントローラと、前記メモリコントローラが生成した前記状態データを一の装置に対し出力する出力手段と、前記一の装置から前記メモリにおけるデータの書き換え処理の要求を取得する取得手段とを備え、前記メモリコントローラは、前記取得手段が取得した前記要求に応じた前記メモリにおけるデータの書き換え処理を行う装置を提供する。【００２２】
メモリを備える上記の装置において、前記メモリコントローラは、前記メモリにデータの書き換え処理を実行させる場合、前記状態データに基づき、予め定められた規則に従い、前記メモリが有する複数の記憶領域の中から一の記憶領域を選択し、前記メモリに前記一の記憶領域において当該データの書き換え処理を実行させる、という構成が採用されてもよい。【００２３】
また、本発明は、一態様として、複数のメモリと、前記複数のメモリの各々に対応して設けられ、対応するメモリにおけるデータの読み書きを制御し、当該対応するメモリにおけるデータの書き換え回数の多少を含む当該対応するメモリの状態を示す状態データを生成する、複数のメモリコントローラと、データの書き換え処理の要求を取得する取得手段と、前記複数のメモリコントローラの各々が生成した前記状態データに基づき、予め定められた規則に従い、前記複数のメモリの中から一のメモリを選択する選択手段とを備え、前記選択手段が選択した前記一のメモリに対応する前記メモリコントローラは、前記取得手段が取得した要求に応じたデータの書き換え処理を前記一のメモリに実行させる装置を提供する。【００２４】
上記の装置において、前記複数のメモリコントローラの各々は、当該メモリコントローラに対応するメモリにデータの書き換え処理を実行させる場合、当該メモリコントローラが生成した前記状態データに基づき、予め定められた規則に従い、前記対応するメモリが有する複数の記憶領域の中から一の記憶領域を選択し、前記対応するメモリに前記一の記憶領域において当該データの書き換え処理を実行させる、という構成が採用されてもよい。【００２５】
また、本発明は、一態様として、コンピュータに、各々が、メモリと、当該メモリにおけるデータの読み書きを制御し当該メモリにおけるデータの書き換え回数の多少を含む当該メモリの状態を示す状態データを生成するメモリコントローラと、データ処理を行うプロセッサと、を備える複数のデータ処理装置の各々から、当該データ処理装置の前記メモリコントローラが生成した前記状態データを取得する処理と、データの書き換えを伴うデータ処理の要求を取得する処理と、前記複数のデータ処理装置の各々から取得した前記状態データに基づき、予め定められた規則に従い、前記複数のデータ処理装置の中から一のデータ処理装置を選択する処理と、前記データ処理の要求を、前記一のデータ処理装置に対し出力する処理とを実行させるためのプログラムを提供する。【００２６】
また、本発明は、一態様として、コンピュータに、各々が、メモリと、当該メモリにおけるデータの読み書きを制御し当該メモリにおけるデータの書き換え回数の多少を含む当該メモリの状態を示す状態データを生成するメモリコントローラと、を備える複数のデータ記憶装置の各々から、当該データ記憶装置の前記メモリコントローラが生成した前記状態データを取得する処理と、データの書き換え処理の要求を取得する処理と、前記複数のデータ記憶装置の各々から取得した前記状態データに基づき、予め定められた規則に従い、前記複数のデータ記憶装置の中から一のデータ記憶装置を選択する処理と、前記データの書き換え処理の要求を、前記一のデータ記憶装置に対し出力する処理とを実行させるためのプログラムを提供する。【００２７】
また、本発明は、一態様として、上記のプログラムを持続的に記録するコンピュータ読み取り可能な記録媒体を提供する。【００２８】
また、本発明は、一態様として、一の装置が、各々が、メモリと、当該メモリにおけるデータの読み書きを制御し当該メモリにおけるデータの書き換え回数の多少を含む当該メモリの状態を示す状態データを生成するメモリコントローラと、データ処理を行うプロセッサと、を備える複数のデータ処理装置の各々から、当該データ処理装置の前記メモリコントローラが生成した前記状態データを取得するステップと、前記一の装置が、データの書き換えを伴うデータ処理の要求を取得するステップと、前記一の装置が、前記複数のデータ処理装置の各々から取得した前記状態データに基づき、予め定められた規則に従い、前記複数のデータ処理装置の中から一のデータ処理装置を選択するステップと、前記一の装置が、前記データ処理の要求を、前記一のデータ処理装置に対し出力するステップとを備える方法を提供する。【００２９】
また、本発明は、一態様として、一の装置が、各々が、メモリと、当該メモリにおけるデータの読み書きを制御し当該メモリにおけるデータの書き換え回数の多少を含む当該メモリの状態を示す状態データを生成するメモリコントローラと、を備える複数のデータ記憶装置の各々から、当該データ記憶装置の前記メモリコントローラが生成した前記状態データを取得するステップと、前記一の装置が、データの書き換え処理の要求を取得するステップと、前記一の装置が、前記複数のデータ記憶装置の各々から取得した前記状態データに基づき、予め定められた規則に従い、前記複数のデータ記憶装置の中から一のデータ記憶装置を選択するステップと、前記一の装置が、前記データの書き換え処理の要求を、前記一のデータ記憶装置に対し出力するステップとを備える方法を提供する。
【発明の効果】
【００３０】
本発明によれば、複数のデータ処理装置またはデータ記憶装置の各々が備えるメモリにおけるデータ書き換えの回数の多少に基づき、データの書き換えを伴うデータ処理またはデータの書き換え処理が複数のデータ処理装置または複数のデータ記憶装置のいずれかに割り当てられるため、データの書き換えが複数のメモリ間において平滑化され得る。その結果、特定のメモリが他のメモリと比べ早期に使用できなくなる、という不都合が低減される。その結果、システム全体のパフォーマンスの低下が抑制される。
【図面の簡単な説明】
【００３１】
【図１】一実施形態にかかるデータ処理システムのハードウェアの外観を示した図である。
【図２】一実施形態にかかるデータ処理システムのハードウェア構成を示したブロック図である。
【図３】一実施形態にかかるデータ処理システムの機能構成を示したブロック図である。
【図４】一実施形態にかかるノード単位メモリ管理テーブルのデータの構成例を示した図である。
【図５】一実施形態にかかるファイル管理テーブルのデータの構成例を示した図である。
【図６】一変形例にかかるデータ処理システムのハードウェア構成を示したブロック図である。
【図７】一変形例にかかるデータ処理システムの機能構成を示したブロック図である。
【図８】一変形例にかかるデータ処理システムのハードウェア構成を示したブロック図である。
【図９】一変形例にかかるデータ処理システムの機能構成を示したブロック図である。
【図１０】一変形例にかかるデータ処理システムの構成を示したブロック図である。
【図１１】一変形例にかかるデータ処理システムの構成を示したブロック図である。
【図１２】従来技術にかかるウェアレベリングの仕組みの概要を説明するための図である。
【図１３】従来技術にかかるウェアレベリングに用いられるメモリ管理テーブルのデータの構成例を示した図である。
【図１４】従来技術にかかるウェアレベリングに用いられるアドレス変換テーブルのデータの構成例を示した図である。
【発明を実施するための形態】
【００３２】
［第１実施形態］
以下に本発明の一実施形態にかかるデータ処理システム１を説明する。図１は、データ処理システム１のハードウェアの外観を示した図である。また、図２は、データ処理システム１のハードウェア構成を示したブロック図である。
【００３３】
図１（ａ）は、コンピュータ１０が４つ配置されたカード９１の外観を示している。なお、図１（ａ）において、一番左のコンピュータ１０に関しては、表面に配置されているメモリモジュールが取り除かれた状態が示されている。コンピュータ１０の各々は、汎用的な各種演算処理を行うＣＰＵ等のプロセッサであるプロセッサ１０１と、プロセッサ１０１が主記憶装置として使用するＤＲＡＭ１０２と、プロセッサ１０１が補助記憶装置として使用するメモリ１０３と、メモリ１０３を制御するプロセッサであるメモリコントローラ１０４と、他の装置からデータを取得するとともに他の装置に対しデータを出力するインタフェースである入出力ＩＦ１０５を備えている。本実施形態において、入出力ＩＦ１０５はネットワーク１９を介して他の装置との間でデータの送受信を行う通信インタフェースである。
【００３４】
図１（ａ）に例示のコンピュータ１０において、プロセッサ１０１は、カード９１の表面と裏面の各々に配置された２個のプロセッサコアを備える。また、メモリ１０３は、カード９１の表面と裏面に各々８個（計１６個）配置されたＮＡＮＤ型フラッシュメモリのモジュールを備える。なお、図１（ａ）に示される端子群１０６は、プロセッサ１０１等のコンピュータ１０の構成部に対する電力供給のために使用される。
【００３５】
プロセッサ１０１と、メモリコントローラ１０４と、入出力ＩＦ１０５は、バス１０９により互いに接続されている。また、ＤＲＡＭ１０２はプロセッサ１０１に接続され、メモリ１０３はメモリコントローラ１０４に接続されている。
【００３６】
メモリコントローラ１０４は、図１２〜図１４を用いた従来技術と同様のウェアレベリングを行う。すなわち、メモリコントローラ１０４は同じコンピュータ１０のメモリ１０３に関するメモリ管理テーブル（図１３）およびアドレス変換テーブル（図１４）を管理し、これらのテーブルを用いて同じコンピュータ１０のメモリ１０３のウェアレベリングを行う。
【００３７】
図１（ｂ）は、カード９１が収容されたケースが１０個、水平方向に配置されたシャーシ９２の外観を示している。なお、１つのケースに収容されるカード９１は１枚であってもよいし、２枚以上であってもよい。図１（ｃ）は、シャーシ９２が１０個、垂直方向に段積みされたラック９３の外観を示している。ラック９３がデータ処理システム１のハードウェア全体となる。例えば、１つのシャーシ９２を構成するケースの各々にカード９１が２枚配置される場合、データ処理システム１は合計で８００個（４×２×１０×１０＝８００）のコンピュータ１０を備えることになる。
【００３８】
以下、データ処理システム１が備えるｋ個（ｋは自然数）のコンピュータ１０を各々区別する場合、図２に示すように、コンピュータ１０−１、コンピュータ１０−２、・・・、コンピュータ１０−ｋのように枝番を付すものとする。
【００３９】
データ処理システム１においては、ｋ個のコンピュータ１０のうち、１つのコンピュータ１０がデータ処理システム１の他のコンピュータ１０におけるメモリの書き換え回数を平滑化するための管理を行う管理装置１１の役割を果たす。一方、管理装置１１以外のコンピュータ１０は、各種データ処理を行うデータ処理装置１２の役割を果たす。以下、コンピュータ１０−１が管理装置１１の役割を果たすものとする。従って、コンピュータ１０−２、コンピュータ１０−３、・・・、コンピュータ１０−ｋがデータ処理装置１２の役割を果たす。それらの（ｋ−１）個のデータ処理装置１２を各々区別する場合、データ処理装置１２−２、データ処理装置１２−３、・・・、データ処理装置１２−ｋのように、コンピュータ１０の枝番と同じ枝番を付すものとする。
【００４０】
図３は、データ処理システム１の機能構成を示したブロック図である。コンピュータ１０−１は、自装置のメモリ１０３に記憶されている管理装置用のプログラムに従った処理を実行することにより、状態取得手段１１１と、要求取得手段１１２と、選択手段１１３と、出力手段１１４とを備える管理装置１１として機能する。
【００４１】
また、コンピュータ１０−２〜ｋの各々は、自装置のメモリ１０３に記憶されているデータ処理装置用のプログラムに従った処理を実行することにより、出力手段１２１と、取得手段１２２とを備えるデータ処理装置１２として機能する。なお、図３においてはデータ処理装置１２−２の機能構成のみを示しているが、データ処理装置１２−３〜ｋの機能構成も同様である。また、図３においては、データ処理装置１２の機能構成を示すにあたり、ハードウェア構成との関係を示すために、図２に示したプロセッサ１０１、メモリ１０３、メモリコントローラ１０４を併せて図示している。
【００４２】
以下に、データ処理装置１２の機能構成を説明する。出力手段１２１は、メモリコントローラ１０４が生成する状態データを管理装置１１に対し出力する。状態データとは、メモリ１０３の状態を示すデータであり、少なくとも、メモリ１０３におけるデータの書き換え回数の多少を示すデータである。また、本実施形態においては、状態データは、メモリ１０３におけるデータの書き換え回数の多少に加え、メモリ１０３におけるデータの読み書きのエラーの多少も示す。以下にメモリコントローラ１０４が状態データを生成する手順の一具体例を説明する。
【００４３】
メモリコントローラ１０４は、予めメモリ１０３の各記憶素子の書き換え可能回数を示す書き換え可能回数データを記憶している。メモリコントローラ１０４は、所定のタイミング（例えばメモリ管理テーブル（図１３）を更新したタイミングや、所定時間の経過毎のタイミング）で、メモリ管理テーブルに示される「ステイタス」が「不良」でないページの「書き換え回数」の平均値（平均書き換え回数）を、書き換え可能回数データが示す書き換え可能回数で除して、平均書き換え率を算出する。この平均書き換え率は、メモリ１０３におけるデータの書き換え回数の多少を示す指標の一例である。
【００４４】
また、メモリコントローラ１０４は、メモリ管理テーブルに示される「ステイタス」が「不良」であるページの数を全ページの数で除して、不良ページ率を算出する。この不良ページ率は、メモリ１０３におけるデータの読み書きのエラーの多少を示す指標の一例である。メモリコントローラ１０４は、上記のように算出した平均書き換え率と不良ページ率を示すデータを、状態データとして生成する。
【００４５】
出力手段１２１は、メモリコントローラ１０４が生成した状態データを管理装置１１に対し出力する。
【００４６】
取得手段１２２は、管理装置１１から不定期に送信されてくるデータ処理の要求を取得する。取得手段１２２が取得する要求の対象のデータ処理は、メモリ１０３におけるデータの書き換えを伴う場合がある。プロセッサ１０１は、取得手段１２２が取得した要求に応じて、要求されたデータ処理を行う。プロセッサ１０１は、要求に応じたデータ処理の実行に伴い、必要に応じてメモリ１０３におけるデータの書き換えをメモリコントローラ１０４に指示する。メモリコントローラ１０４は、この指示に従い、メモリ１０３にデータの書き換えを行わせるとともに、メモリ管理テーブルを更新する。なお、メモリコントローラ１０４がメモリ１０３にデータの書き換えを行わせる際、メモリコントローラ１０４は従来技術と同様のウェアレベリングを行う点は既述のとおりである。
【００４７】
続いて管理装置１１の機能構成を説明する。状態取得手段１１１は、データ処理装置１２の各々から出力される状態データを取得する。メモリ１０３には、状態取得手段１１１が取得する状態データを管理するためのノード単位メモリ管理テーブルが記憶されている。図４は、ノード単位メモリ管理テーブルのデータの構成例を示した図である。ノード単位メモリ管理テーブルは、データ処理装置１２の各々に応じたデータレコードの集まりであり、各データレコードはデータ処理装置１２の各々を識別する識別データであるノードＩＤを格納するデータフィールド「ノードＩＤ」、データ処理装置１２から取得された状態データが示す平均書き換え率を格納するデータフィールド「平均書き換え率」、データ処理装置１２から取得された状態データが示す不良ページ率を格納するデータフィールド「不良ページ率」を有している。ノード単位メモリ管理テーブルは、状態取得手段１１１により新たな状態データが取得される毎に、新たに取得された状態データに従い更新される。
【００４８】
要求取得手段１１２は、データ処理の要求を取得する。なお、要求取得手段１１２が取得するデータ処理の要求は、例えば、管理装置１１のプロセッサ１０１がメモリ１０３に記憶されているプログラムに従った処理に伴い生成された要求、いずれかのデータ処理装置１２から管理装置１１に対し出力された要求、管理装置１１およびデータ処理装置１２のいずれでもない他の装置から管理装置１１に対し出力された要求等のいずれであってもよい。
【００４９】
選択手段１１３は、要求取得手段１１２がデータの書き換えを伴うデータ処理の要求を取得すると、状態取得手段１１１が複数のデータ処理装置１２の各々から取得した状態データに基づき、予め定められた規則に従い、複数のデータ処理装置１２の中から、要求されたデータ処理を実行させるデータ処理装置１２を選択する。
【００５０】
以下に、選択手段１１３が、要求されたデータ処理を実行させるデータ処理装置１２を選択する手順の一具体例を説明する。選択手段１１３は、ノード単位メモリ管理テーブル（図４）をメモリ１０３から読み出し、ノード単位メモリ管理テーブルに含まれるデータを用いて、データ処理装置１２毎のメモリ１０３の劣化の程度を示す劣化指標を算出する。以下の式１は劣化指標の算出式の一例である。ただし、ｄｉはデータ処理装置１２−ｉの劣化指標であり、ｗｉはデータ処理装置１２−ｉの状態データが示す平均書き換え率であり、ｅｉはデータ処理装置１２−ｉの状態データが示す不良ページ率である。
【数１】
2015087651.tif 000003
【００５１】
選択手段１１３は、上記のように算出した劣化指標が最も小さいデータ処理装置１２を、要求されたデータ処理を実行させるデータ処理装置１２として選択する。
【００５２】
出力手段１１４は、選択手段１１３が選択したデータ処理装置１２に対し、要求取得手段１１２が取得したデータ処理の要求を出力する。
【００５３】
要求取得手段１１２が取得する要求の対象のデータ処理の中には、既にいずれかのデータ処理装置１２のメモリ１０３に記憶されているデータを利用するタイプのデータ処理が含まれる。そのようなタイプのデータ処理を選択手段１１３が選択したデータ処理装置１２に実行させるために、出力手段１１４はデータ処理の要求に、当該データ処理において必要となるデータを記憶しているデータ処理装置１２を識別するノードＩＤを含めた後、当該要求を出力する。
【００５４】
出力手段１１４が、出力する要求に含めるノードＩＤを特定するために、メモリ１０３には図５に示すような構成を備えるファイル管理テーブルが記憶されている。ファイル管理テーブルは、ファイルに応じたデータレコードの集まりであり、データレコードの各々は、ファイルを識別するファイル名を示すテキストデータを格納するデータフィールド「ファイル名」と、ファイルを記憶しているデータ処理装置１２を識別するノードＩＤを格納するデータフィールド「ノードＩＤ」を有している。
【００５５】
出力手段１１４は、ファイル管理テーブルに従い、データ処理において使用されるデータを記憶しているデータ処理装置１２のノードＩＤを特定し、特定したノードＩＤをファイル名とともにデータ処理の要求に含めた後、当該要求を選択手段１１３が選択したデータ処理装置１２に対し出力する。
【００５６】
以上がデータ処理システム１の説明である。データ処理システム１は、例えば１つのアプリケーションプログラムに従った一連のデータ処理の各々を複数のデータ処理装置１２のいずれかに順次割り当ててゆき、全体として当該一連のデータ処理を高速に処理する仕組みとして利用可能である。例えば、３Ｄ動画編集のためのアプリケーションプログラムをデータ処理システム１において実行する場合、レンダリング等のように必要とされる処理能力が高く、必要とされるメモリ容量が大きいデータ処理が分割されて複数のデータ処理装置１２の各々において分散処理される。その結果、例えば１台のコンピュータにより同じデータ処理が行われる場合と比較して、極めて高速にデータ処理が行われる。その際、個々のデータ処理装置１２のメモリ１０３におけるウェアレベリングに加え、データ処理装置１２間のウェアレベリングが行われるため、特定のデータ処理装置１２にデータの書き換えを伴うデータ処理が集中せず、特定のデータ処理装置１２のメモリ１０３が他のデータ処理装置１２のメモリ１０３と比べて早期に使用不能となる、という不都合が生じない。その結果、データ処理システム１の高いパフォーマンスが長期に渡り維持される。
【００５７】
［第２実施形態］
以下に本発明の他の一実施形態にかかるデータ処理システム２を説明する。データ処理システム２の構成は上述した第１実施形態にかかるデータ処理システム１の構成と多くの点で共通している。以下、データ処理システム２の構成のうちデータ処理システム１の構成と異なるものを中心に説明し、データ処理システム１の構成と共通するものに関しては適宜、その説明を省略する。また、データ処理システム２が備える構成部のうちデータ処理システム１が備える構成部と共通または対応するものには、データ処理システム１の説明において用いた符号と同じ符号を用いる。
【００５８】
図６は、データ処理システム２のハードウェア構成を示した図である。データ処理システム２は、コンピュータ１０と、ｈ個（ｈは２以上の自然数）のデータ記憶装置２０（データ記憶装置２０−１〜ｈ）を備える。なお、ｈ個のデータ記憶装置２０は、各々が個別の装置として構成されても、それらの全てもしくは一部が１つの装置として構成されてもよい。
【００５９】
データ処理システム２が備えるコンピュータ１０の構成は、データ処理システム１が備えるコンピュータ１０の構成と同様である。データ記憶装置２０の各々は、メモリ２０３と、メモリ２０３におけるデータの読み書きを制御するメモリコントローラ２０４と、コンピュータ１０および他のデータ記憶装置２０との間で各種データの入出力を行うインタフェースである入出力ＩＦ２０５とを備える。
【００６０】
メモリコントローラ２０４はメモリ２０３と入出力ＩＦ２０５の間に接続され、入出力ＩＦ２０５により取得されるデータの読み書きの要求に応じて、メモリ２０３に、データの読み書きを実行させる。メモリコントローラ２０４は、メモリ２０３におけるデータの書き換えにおいて、従来技術と同様のウェアレベリングを実行する。また、メモリコントローラ２０４は、データ処理システム１におけるデータ処理装置１２のメモリコントローラ１０４と同様に、メモリ２０３に関する状態データを生成する。
【００６１】
図７は、データ処理システム２の機能構成を示したブロック図である。コンピュータ１０は、メモリ１０３に記憶されている管理装置用のプログラムに従った処理を実行することにより、状態取得手段１１１と、要求取得手段１１２と、選択手段１１３と、出力手段１１４とを備える管理装置１１として機能する。データ処理システム２において、要求取得手段１１２が取得するデータ処理の要求は、データの書き換え処理の要求である。従って、データ処理システム２において、選択手段１１３は要求取得手段１１２が取得した要求の対象であるデータの書き換え処理を実行させるデータ記憶装置２０を、複数のデータ記憶装置２０の中から選択する。なお、データ処理システム２において選択手段１１３がデータ記憶装置２０を選択する手順は、データ処理システム１において選択手段１１３がデータ処理装置１２を選択する手順と同様である。データ処理システム２において、出力手段１１４は選択手段１１３により選択されたデータ記憶装置２０に対し、要求取得手段１１２が取得した要求を出力する。
【００６２】
データ記憶装置２０は、例えばメモリコントローラ２０４が備えるＥＰＲＯＭ等に記憶されているプログラムに従った処理を実行することにより、出力手段２０１と、取得手段２０２として機能する。出力手段２０１は、メモリコントローラ２０４が生成した状態データを管理装置１１に対し出力する。取得手段２０２は、不定期に管理装置１１から出力されるデータの書き換え処理の要求を取得する。メモリコントローラ２０４は、取得手段２０２が取得した要求に応じて、メモリ２０３にデータの書き換えを実行させる。
【００６３】
データ処理システム２によれば、コンピュータ１０は複数のデータ記憶装置２０が備えるメモリ２０３を外部記憶装置として使用することができる。複数のデータ記憶装置２０により構成される外部記憶装置においてデータの書き換えが行われる際、個々のデータ記憶装置２０のメモリ２０３におけるウェアレベリングに加え、データ記憶装置２０間のウェアレベリングが行われるため、特定のデータ記憶装置２０にデータの書き換え処理が集中せず、特定のデータ記憶装置２０のメモリ２０３が他のデータ記憶装置２０のメモリ２０３と比べて早期に使用不能となる、という不都合が生じない。その結果、データ処理システム２の高いパフォーマンスが長期に渡り維持される。
【００６４】
［第３実施形態］
以下に本発明の他の一実施形態にかかるデータ処理システム３を説明する。データ処理システム３の構成は上述した第１実施形態にかかるデータ処理システム１の構成と多くの点で共通している。以下、データ処理システム３の構成のうちデータ処理システム１の構成と異なるものを中心に説明し、データ処理システム１の構成と共通するものに関しては適宜、その説明を省略する。また、データ処理システム３が備える構成部のうちデータ処理システム１が備える構成部と共通または対応するものには、データ処理システム１の説明において用いた符号と同じ符号を用いる。
【００６５】
図８は、データ処理システム３のハードウェア構成を示した図である。データ処理システム３は、コンピュータ１０と、データ記憶装置３０を備える。
【００６６】
データ処理システム３が備えるコンピュータ１０の構成は、データ処理システム１が備えるコンピュータ１０の構成と同様である。データ記憶装置３０は、ｊ個（ｊは２以上の自然数）のメモリ３０３（メモリ３０３−１〜ｊ）と、メモリ３０３の各々に対応して設けられ対応するメモリ３０３におけるデータの読み書きを制御する複数のメモリコントローラ３０４（メモリコントローラ３０４−１〜ｊ）と、複数のメモリ３０３間のウェアレベリングのためのデータ処理を行うプロセッサ３０１と、コンピュータ１０との間で各種データの入出力を行うインタフェースである入出力ＩＦ３０５とを備える。プロセッサ３０１、複数のメモリコントローラ３０４の各々、入出力ＩＦ３０５は、バス３０９を介して互いに接続されている。
【００６７】
メモリコントローラ３０４の各々は、プロセッサ３０１により生成されるデータの読み書きの要求に応じて、対応するメモリ３０３にデータの読み書きを実行させる。メモリコントローラ３０４の各々は、対応するメモリ３０３におけるデータの書き換えにおいて、従来技術と同様のウェアレベリングを実行する。また、メモリコントローラ３０４の各々は、データ処理システム１におけるデータ処理装置１２のメモリコントローラ１０４と同様に、対応するメモリ３０３に関する状態データを生成する。
【００６８】
図９は、データ処理システム３の機能構成を示したブロック図である。ただし、データ処理システム３において、コンピュータ１０は一般的なコンピュータとして動作し、例えばメモリ１０３に記憶されている任意のプログラムに従った処理に伴い、データ記憶装置３０に対しデータの読み書きの要求を出力する。
【００６９】
データ記憶装置３０は、例えばプロセッサ３０１が備えるＥＰＲＯＭ等に記憶されているプログラムに従った処理を実行することにより、取得手段３１２と、選択手段３１３として機能する。取得手段３１２は、不定期にコンピュータ１０から出力されるデータの読み書き処理の要求を取得する。選択手段３１３は、取得手段３１２がデータの書き換え処理の要求を取得した場合、当該要求の対象であるデータの書き換え処理を実行させるメモリ３０３を複数のメモリ３０３の中から選択する。なお、データ処理システム３において選択手段３１３がメモリ３０３を選択する手順は、データ処理システム１において選択手段１１３がデータ処理装置１２を選択する手順と同様である。選択手段３１３は、選択したメモリ３０３に対応するメモリコントローラ３０４に対し、データの書き換え処理を要求する。メモリコントローラ３０４の各々は、選択手段３１３から不定期に引き渡されるデータの書き換え処理の要求に応じて、対応するメモリ３０３にデータの書き換えを実行させる。
【００７０】
データ処理システム３によれば、コンピュータ１０は複数のメモリ３０３を備えるデータ記憶装置３０を外部記憶装置として使用することができる。データ記憶装置３０においてデータの書き換えが行われる際、個々のメモリ３０３におけるウェアレベリングに加え、メモリ３０３間のウェアレベリングが行われるため、特定のメモリ３０３にデータの書き換え処理が集中せず、特定のメモリ３０３が他のメモリ３０３と比べて早期に使用不能となる、という不都合が生じない。その結果、データ処理システム３の高いパフォーマンスが長期に渡り維持される。
【００７１】
なお、プロセッサ３０１として、汎用的なデータ処理を実行可能なＣＰＵ等のプロセッサを採用し、プロセッサ３０１が、例えばいずれかのメモリ３０３に記憶されているプログラムに従った処理に伴い、データの書き換え処理の要求を生成する構成としてもよい。この場合、取得手段３１２はプロセッサ３０１により生成されるデータの書き換え処理の要求を取得する。
【００７２】
［変形例］
上述した実施形態の各々は本発明の技術的思想の範囲内において様々に変形可能である。以下にそれらの変形の例を示す。なお、上述した実施形態および以下に示す変形例のうちの２以上が適宜組み合わせられてもよい。
【００７３】
（１）上述した第１実施形態〜第３実施形態において、状態データはメモリ１０３（第１実施形態）、メモリ２０３（第２実施形態）、またはメモリ３０３（第３実施形態）（以下、メモリ１０３、メモリ２０３、およびメモリ３０３を総称して単に「メモリ」という）におけるデータの書き換え回数および不良ページ数を加工して得られる指標（平均書き換え率および不良ページ率はそれらの一例）を示す。これに代えて、状態データがメモリにおけるデータの書き換え回数および不良ページ数をそのまま示してもよい。その場合、例えばプロセッサ１０１（第１実施形態または第２実施形態）またはプロセッサ３０１（第３実施形態）（以下、プロセッサ１０１およびプロセッサ３０１を総称して単に「プロセッサ」という）が、状態データが示すデータの書き換え回数および不良ページ数を用いて、平均書き換え率および不良ページ率といった指標の算出を行い、算出されたこれらの指標を用いて、選択手段１１３（第１実施形態または第２実施形態）または選択手段３１３（第３実施形態）（以下、選択手段１１３および選択手段３１３を総称して単に「選択手段」という）によるデータ処理装置１２（第１実施形態）、データ記憶装置２０（第２実施形態）、またはメモリ３０３（第３実施形態）（以下、これらの装置を総称して「選択対象の装置」という）の選択が行われる構成としてもよい。
【００７４】
（２）上述した第１実施形態〜第３実施形態においては、メモリコントローラ１０４（第１実施形態）、メモリコントローラ２０４（第２実施形態）、またはメモリコントローラ３０４（第３実施形態）（以下、メモリコントローラ１０４、メモリコントローラ２０４、およびメモリコントローラ３０４を総称して単に「メモリコントローラ」という）により、各々のメモリにおけるウェアレベリングが行われる。これに代えて、メモリコントローラが各々のメモリにおけるウェアレベリングを行わない構成としてもよい。
【００７５】
（３）上述した第１実施形態〜第３実施形態において状態データが示す平均書き換え率および不良ページ率は、既述のとおり、メモリにおけるデータの書き換え回数の多少を示す指標およびデータの読み書きのエラーの多少を示す指標の一例であって、メモリの使用可能期間の残余の多少を示す他の指標が採用されてもよい。
【００７６】
例えば、各々のメモリの書き換え可能回数が全て同程度であれば、平均書き換え率に代えて平均書き換え回数が用いられてもよい。また、例えば、各々のメモリが有するページの数が全て同程度であれば、不良ページ率に代えて、不良ページ数が用いられてもよい。また、例えばメモリコントローラが、メモリ管理テーブル（図１３）において、まだ不良とは判定されていないが低い頻度で書き換えエラーを生じるページに関し、過去の所定期間におけるエラー発生率（例えば、書き換えエラー数を書き換え回数で除した値）を管理するように構成し、不良ページ率に代えて、もしくはそれに加えて、エラー発生率が用いられてもよい。
【００７７】
（４）上述した第１実施形態〜第３実施形態において、選択手段が選択対象の装置の選択を行う際、メモリの使用状態を示す状態データに加えて、メモリの使用状態以外のパラメータを用いる構成としてもよい。
【００７８】
例えば、第１実施形態において選択手段１１３がデータ処理装置１２を選択する際、処理能力の高いプロセッサ１０１を備えるデータ処理装置１２や、現在の処理負荷率（例えば、現在の処理負荷の量を最大処理能力で除した値）が低いプロセッサ１０１を備えるデータ処理装置１２を優先的に選択する構成が採用されてもよい。この場合、選択されたデータ処理装置における処理待ち時間が生じにくく、全体としてデータ処理が高速に行われることになる。
【００７９】
また、例えば、第１実施形態において選択手段１１３がデータ処理装置１２を選択する際、現在の通信帯域使用率が低い入出力ＩＦ１０５を備えるデータ処理装置１２を優先的に選択する構成や、第２実施形態において選択手段１１３が現在の通信帯域使用率が低い入出力ＩＦ２０５を備えるデータ記憶装置２０（第２実施形態）を優先的に選択する構成が採用されてもよい。この場合、管理装置１１とデータ処理装置１２またはデータ記憶装置２０との間のデータ通信における通信待ち時間が生じにくく、全体としてデータ処理が高速に行われることになる。
【００８０】
その他、メモリにおける未使用もしくは消去可のページ数の多少や、選択手段が最後に選択対象の装置を選択してからの経過時間の長短等の様々な種別のパラメータが、選択手段による選択対象の装置の選択において用いられ得る。
【００８１】
（５）上述した第１実施形態において、管理装置１１として機能するコンピュータ１０−１はデータ処理装置１２の役割は果たさない。これに代えて、管理装置１１として機能するコンピュータ１０−１がデータ処理装置１２の１つとしても機能する構成としてもよい。
【００８２】
（６）上述した第１実施形態の説明において、データ処理システム１の利用例として１つのアプリケーションプログラムに従った一連のデータ処理の各々を複数のデータ処理装置１２のいずれかに順次割り当ててゆき、全体として当該一連のデータ処理を高速に処理する、という利用例を示した。データ処理システム１の利用例はこれに限られず、例えば、データ処理システム１に含まれる個々のデータ処理装置１２を他のデータ処理装置１２からは独立したデータ処理装置として動作させる構成が採用されてもよい。
【００８３】
（７）上述した第１実施形態において、状態取得手段１１１がデータ処理装置１２の各々から取得した状態データに基づき、選択手段１１３が、予め定められた規則に従い、複数のデータ処理装置１２の中から、データの移動元のデータ処理装置１２と、データの移動先のデータ処理装置１２とを選択し、出力手段１１４が、選択手段１１３により選択された移動元のデータ処理装置１２および移動先のデータ処理装置１２の少なくとも一方に対し、移動元のデータ処理装置１２から移動先のデータ処理装置１２へのデータの移動の要求を出力する構成が採用されてもよい。
【００８４】
以下に、この変形例を、具体例を用いて説明する。例えば、データ処理装置１２−２がＷｅｂサーバ装置Ａとして機能しており、データ処理装置１２−３がＷｅｂサーバ装置Ｂとして機能しているとする。その状態で、Ｗｅｂサーバ装置Ａに対するアクセスが集中したとする。この場合、選択手段１１３は、例えばデータ処理装置１２−２の状態データが示すメモリ１０３の平均書き換え率が、例えば全てのデータ処理装置１２のメモリ１０３の平均書き換え率の平均値に比べ所定の閾値以上に上回ったことを検出する。この検出をトリガに、選択手段１１３は、データ処理装置１２−２をデータの移動元のデータ処理装置１２として選択するとともに、その時点で平均書き換え率が最小であるデータ処理装置１２（以下、データ処理装置１２−３とする）をデータの移動先のデータ処理装置１２として選択する。
【００８５】
出力手段１１４は、データ処理装置１２−２およびデータ処理装置１２−３（もしくはこれらのいずれか１つ）に対し、データ処理装置１２−２からデータ処理装置１２−３へのデータの移動処理の要求を出力する。データ処理装置１２−２とデータ処理装置１２−３は管理装置１１から出力される要求に応じて、データの移動を実行する。その後、データ処理装置１２−３がＷｅｂサーバ装置Ａの役割（の少なくとも一部）をデータ処理装置１２−２に代わって担うことになる。その結果、データ処理装置１２が有するメモリ１０３間におけるデータの書き換え処理が平滑化されることになる。
【００８６】
なお、この変形例において、移動元のデータ処理装置１２から移動先のデータ処理装置１２へ移動されるデータは、移動元のデータ処理装置１２のメモリ１０３に記憶されている移動可能な全てのデータであってもよいし、それらの一部であってもよい。また、移動対象のデータの種別は限定されず、例えばプログラムであってもよい。
【００８７】
（８）上記の第１実施形態〜第３実施形態において、選択対象の装置を複数毎にグループ化し、それらのグループ間のウェアレベリングを行う選択手段を設ける構成が採用されてもよい。
【００８８】
図１０は、第１実施形態にかかるデータ処理システム１の構成を２段階に採用することにより得られる本変形例にかかるデータ処理システムの構成を模式的に示した図である。図１０に示すデータ処理システムでは、コンピュータ１０−３〜７がデータ処理装置１２−３〜７として機能し、データ処理装置１２の第１グループを構成している。そして、コンピュータ１０−２が第１グループに属するデータ処理装置１２−３〜７の間のウェアレベリングを行う管理装置１１−２として機能する。また、コンピュータ１０−９〜１３がデータ処理装置１２−９〜１３として機能し、データ処理装置１２の第２グループを構成している。そして、コンピュータ１０−８が第２グループに属するデータ処理装置１２−９〜１３の間のウェアレベリングを行う管理装置１１−８として機能する。コンピュータ１０−１４以下も同様に、グループに属するデータ処理装置１２か、グループに属するデータ処理装置１２の間のウェアレベリングを行う管理装置１１のいずれかとして機能する。コンピュータ１０−１は、データ処理装置１２のグループ間のウェアレベリングを行う管理装置１１−１として機能する。
【００８９】
グループに属するデータ処理装置１２の間のウェアレベリングを行う管理装置１１−２、８、・・・は各々、自装置が管理するグループに属するデータ処理装置１２のメモリ１０３に関する状態データ（以下、「メモリ単位の状態データ」）を集約した状態データ（以下、「グループ単位の状態データ」）を生成する。管理装置１１−１は、管理装置１１−２、８、・・・の各々からグループ単位の状態データを取得し、これらのグループ単位の状態データに基づき、要求されたデータ処理を割り当てるグループの選択を行う。第２実施形態にかかるデータ処理システム２も、同様に２段階に構成することができる。
【００９０】
図１１は、第２実施形態にかかるデータ処理システム２の構成と第３実施形態にかかるデータ処理システム３の構成とを組み合わせて得られる本変形例にかかるデータ処理システムの構成を模式的に示した図である。図１１に示したデータ処理システムでは、データ処理システム２が備えるデータ記憶装置２０に代えて、データ処理システム３が備えるデータ記憶装置３０が用いられる。図１１に示すシステムでは、複数のデータ記憶装置３０の各々が備えるプロセッサ３０１は、自装置の複数のメモリコントローラ３０４の各々から取得したメモリ単位の状態データを集約してグループ単位の状態データを生成する。管理装置１１は複数のデータ記憶装置３０の各々からグループ単位の状態データを取得し、これらのグループ単位の状態データに基づき、要求されたデータの書き換え処理を割り当てるデータ記憶装置３０の選択を行う。
【００９１】
この変形例によれば、選択対象の装置間のウェアレベリングの処理が複数の選択手段に分散されるため、メモリの数を増加させても、データ処理システム全体のパフォーマンスが低下しない。
【００９２】
（９）上述した第１実施形態〜第３実施形態において、選択手段が選択対象の装置の選択において用いる劣化指標の算出式として式１を示したが、式１は劣化指標の算出式の例示であって、他の様々な算出式が劣化指標の算出式として採用され得る。
【００９３】
（１０）上述した第１実施形態および第２実施形態において、管理装置１１は汎用的なコンピュータ１０が管理装置用のプログラムに従った処理を実行することにより実現される。また、上述した第１実施形態においては、データ処理装置１２は汎用的なコンピュータ１０がデータ処理装置用のプログラムに従った処理を実行することにより実現される。これに代えて、管理装置１１およびデータ処理装置１２の少なくとも一方を、いわゆる専用機としてハードウェア的に実現する構成が採用されてもよい。
【００９４】
なお、上述した第１実施形態および第２実施形態にかかる管理装置用のプログラム、および第１実施形態にかかるデータ処理装置用のプログラムは、ネットワークを介してコンピュータ１０にダウンロードされる形態で提供されるほか、それらのプログラムを持続的に記録するコンピュータ読み取り可能な記録媒体の形態で配布され、当該記録媒体からコンピュータ１０により読み取られる形態で提供されてもよい。
【符号の説明】
【００９５】
１…データ処理システム、２…データ処理システム、３…データ処理システム、１０…コンピュータ、１１…管理装置、１２…データ処理装置、１９…ネットワーク、２０…データ記憶装置、３０…データ記憶装置、９１…カード、９２…シャーシ、９３…ラック、１０１…プロセッサ、１０２…ＤＲＡＭ、１０３…メモリ、１０４…メモリコントローラ、１０５…入出力ＩＦ、１０６…端子群、１０９…バス、１１１…状態取得手段、１１２…要求取得手段、１１３…選択手段、１１４…出力手段、１２１…出力手段、１２２…取得手段、２０１…出力手段、２０２…取得手段、２０３…メモリ、２０４…メモリコントローラ、２０５…入出力ＩＦ、３０１…プロセッサ、３０３…メモリ、３０４…メモリコントローラ、３０５…入出力ＩＦ、３０９…バス、３１２…取得手段、３１３…選択手段
【図１】
2015087651.tif 000004
【図２】
2015087651.tif 000005
【図３】
2015087651.tif 000006
【図４】
2015087651.tif 000007
【図５】
2015087651.tif 000008
【図６】
2015087651.tif 000009
【図７】
2015087651.tif 000010
【図８】
2015087651.tif 000011
【図９】
2015087651.tif 000012
【図１０】
2015087651.tif 000013
【図１１】
2015087651.tif 000014
【図１２】
2015087651.tif 000015
【図１３】
2015087651.tif 000016
【図１４】
2015087651.tif 000017
【国際調査報告】
2015087651.tif 000018
2015087651.tif 000019
2015087651.tif 000020
2015087651.tif 000021