(57)【要約】【課題】フラッシュメモリを備えた記憶装置において性能が低下し、寿命が短くなる、ということを解決すること。【解決手段】本発明の記憶装置１００は、データを格納するフラッシュメモリ１０２と、当該フラッシュメモリへのデータの書き込みを制御する制御部１０１と、を備え、当該制御部１０１は、フラッシュメモリの予め設定された管理単位の容量を表す管理サイズと、書き込み要求データの容量を表す書き込みサイズと、を比較し、書き込みサイズが管理サイズよりも大きい場合に、書き込み要求データを管理サイズと同等のサイズに変換してフラッシュメモリ１０２に書き込む。【選択図】図６
2014186600.tif 000002
【特許請求の範囲】
【請求項１】
データを格納するフラッシュメモリと、当該フラッシュメモリへのデータの書き込みを制御する制御部と、を備え、
前記制御部は、
前記フラッシュメモリの予め設定された管理単位の容量を表す管理サイズと、書き込み要求データの容量を表す書き込みサイズと、を比較し、前記書き込みサイズが前記管理サイズよりも大きい場合に、前記書き込み要求データを前記管理サイズと同等のサイズに変換して前記フラッシュメモリに書き込む、
記憶装置。
【請求項２】
請求項１に記載の記憶装置であって、
前記制御部は、前記書き込みサイズが前記管理サイズよりも大きい場合に、前記書き込み要求データを分割して、当該書き込み要求データを前記管理サイズと同等のサイズに変換して前記フラッシュメモリに書き込む、
記憶装置。
【請求項３】
請求項２に記載の記憶装置であって、
前記制御部は、前記書き込みサイズが前記管理サイズよりも大きい場合に、前記書き込み要求データを分割することにより生成された分割データの容量が前記管理サイズと同等である場合には当該分割データをそのまま前記フラッシュメモリに書き込み、前記分割データが前記管理サイズよりも小さい場合には当該分割データを前記管理サイズと同等のサイズに変換して前記フラッシュメモリに書き込む、
記憶装置。
【請求項４】
請求項３に記載の記憶装置であって、
前記制御部は、前記書き込みサイズが前記管理サイズよりも大きい場合に、前記書き込み要求データを前記管理サイズと同等の容量となるよう分割して前記分割データを生成し、前記管理サイズと同様の容量に分割された前記分割データは、そのまま前記フラッシュメモリに書き込み、前記管理サイズと同等の容量に分割できなかった前記分割データは、当該分割データを前記管理サイズと同等のサイズに変換して前記フラッシュメモリに書き込む、
【請求項５】
請求項３又は４に記載の記憶装置であって、
前記制御部は、前記分割データが前記管理サイズよりも小さい場合には、当該分割データが前記管理サイズと同等のサイズになるよう当該分割データに空データを付加して前記フラッシュメモリに書き込む、
記憶装置。
【請求項６】
データを格納するフラッシュメモリと、当該フラッシュメモリへのデータの書き込みを制御する制御部と、を備えた記憶装置の前記制御部に、
前記フラッシュメモリの予め設定された管理単位の容量を表す管理サイズと、書き込み要求データの容量を表す書き込みサイズと、を比較し、前記書き込みサイズが前記管理サイズよりも大きい場合に、前記書き込み要求データを前記管理サイズと同等のサイズに変換して前記フラッシュメモリに書き込む処理を実行させるためのプログラム。
【請求項７】
請求項６に記載のプログラムであって、
前記制御部に、前記書き込みサイズが前記管理サイズよりも大きい場合に、前記書き込み要求データを分割して、当該書き込み要求データを前記管理サイズと同等のサイズに変換して前記フラッシュメモリに書き込む処理を実行させるためのプログラム。
【請求項８】
データを格納するフラッシュメモリと、当該フラッシュメモリへのデータの書き込みを制御する制御部と、を備えた記憶装置による書き込み方法であって、
前記フラッシュメモリの予め設定された管理単位の容量を表す管理サイズと、書き込み要求データの容量を表す書き込みサイズと、を比較し、前記書き込みサイズが前記管理サイズよりも大きい場合に、前記書き込み要求データを前記管理サイズと同等のサイズに変換して前記フラッシュメモリに書き込む、
書き込み方法。
【請求項９】
請求項８に記載の書き込み方法であって、
前記書き込みサイズが前記管理サイズよりも大きい場合に、前記書き込み要求データを分割して、当該書き込み要求データを前記管理サイズと同等のサイズに変換して前記フラッシュメモリに書き込む、
書き込み方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶装置にかかり、特に、記憶媒体としてフラッシュメモリを備えた記憶装置に関する。
【背景技術】
【０００２】
データの読み書きの高速化を図る記憶装置として、データをフラッシュメモリ（フラッシュロム）に記憶する回路構成を有するSSD (Solid State Drive)を備えたものが利用されている。SSDでは、図１に示すように、内部のフラッシュロムが予め設定された管理単位で制御されている。フラッシュロムは、一般的に、数キロバイト程度の管理単位で、データの消去、書き込み、読み込みを行う仕様となっている。
【０００３】
ここで、フラッシュロムは、書き込み回数の寿命が存在するため、SSDは、ホストから受領したデータを全てのフラッシュロムにできる限り効率的かつ均等に書き込むことが要求される。このため、SSDは、ウェアレベリングという機能を有している。ウェアレベリングは、ホストからのデータ書き込み、読み込み要求とは別に、SSDがバックグラウンドで動作を行う。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−２０９９７３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
図２は、ホストからSSDに対して、管理単位と異なる書き込み要求があった場合における書き込み時の様子を示す図である。ホストがSSDに対してフラッシュロムの管理サイズと異なるサイズの書き込みを要求すると、SSDは、フラッシュロムの管理サイズに満たない部分に一旦NULLデータを付加して、フラッシュロムに書き込む。その後、バックグラウンドのウェアレベリングで、無駄な部分のデータをまとめて管理サイズに整理しなおして保存する。なお、関連する技術として、特許文献１に開示のものがある。
【０００６】
上述したようにデータを格納する理由は、フラッシュロムを非効率な使用状態のままにすると作業領域が少なくなることや、一つのデータにアクセスする際に多数のフラッシュロムにアクセスすることになり、定常的な性能低下の原因となるためである。
【０００７】
しかしながら、その後のウェアレベリング処理中は、SSDに性能低下が発生する。また、フラッシュロムへの書き込みが増加するため、寿命も短くなる、という問題も生じる。
【０００８】
このため、本発明の目的は、上述した課題である、フラッシュメモリを備えた記憶装置において性能が低下し、寿命が短くなる、ということを解決することである。
【課題を解決するための手段】
【０００９】
本発明の一形態である記憶装置は、
データを格納するフラッシュメモリと、当該フラッシュメモリへのデータの書き込みを制御する制御部と、を備え、
前記制御部は、
前記フラッシュメモリの予め設定された管理単位の容量を表す管理サイズと、書き込み要求データの容量を表す書き込みサイズと、を比較し、前記書き込みサイズが前記管理サイズよりも大きい場合に、前記書き込み要求データを前記管理サイズと同等のサイズに変換して前記フラッシュメモリに書き込む、
という構成をとる。
【００１０】
また、本発明の他の形態であるプログラムは、
データを格納するフラッシュメモリと、当該フラッシュメモリへのデータの書き込みを制御する制御部と、を備えた記憶装置の前記制御部に、
前記フラッシュメモリの予め設定された管理単位の容量を表す管理サイズと、書き込み要求データの容量を表す書き込みサイズと、を比較し、前記書き込みサイズが前記管理サイズよりも大きい場合に、前記書き込み要求データを前記管理サイズと同等のサイズに変換して前記フラッシュメモリに書き込む処理を実行させるためのプログラムである。
【００１１】
また、本発明の他の形態である書き込みは、
データを格納するフラッシュメモリと、当該フラッシュメモリへのデータの書き込みを制御する制御部と、を備えた記憶装置による書き込み方法であって、
前記フラッシュメモリの予め設定された管理単位の容量を表す管理サイズと、書き込み要求データの容量を表す書き込みサイズと、を比較し、前記書き込みサイズが前記管理サイズよりも大きい場合に、前記書き込み要求データを前記管理サイズと同等のサイズに変換して前記フラッシュメモリに書き込む、
という構成をとる。
【発明の効果】
【００１２】
本発明は、以上のように構成されることにより、フラッシュメモリを備えた記憶装置における性能及び寿命の向上を図ることができる。
【図面の簡単な説明】
【００１３】
【図１】SSDの内部構成を示す図である。
【図２】本発明とは異なる関連技術においてSSDにデータを書き込んだときの様子を示す図である。
【図３】本発明の実施形態１におけるディスクアレイ装置の構成を示す図である。
【図４】図１に開示したディスクアレイ装置のデータ書き込み時の動作を示すフローチャートである。
【図５】図１に開示したディスクアレイ装置にデータを書き込んだときの様子を示す図である。
【図６】本発明の付記１における記憶装置の構成を示す図である。
【発明を実施するための形態】
【００１４】
＜実施形態１＞
本発明の第１の実施形態を、図３乃至図５を参照して説明する。図３は、本実施形態におけるディスクアレイ装置の構成を示すブロック図である。図４は、ディスクアレイ装置のデータ書き込み時の動作を示すフローチャートである。図５は、データを書き込んだ時のＳＳＤの様子を示す図である。
【００１５】
図３に示すように、本実施形態におけるディスクアレイ装置１０（記憶装置）は、データの書き込み要求を行うホスト１に接続されている。そして、ディスクアレイ装置１０は、記憶媒体として、データをフラッシュメモリ（フラッシュロム）に格納する回路構成を有する１つ又は複数のＳＳＤ（Solid State Drive）１２を備えると共に、当該ＳＳＤ１２に対するデータの記憶制御を行うディスクアレイコントローラ１１（制御部）を備えている。また、ディスクアレイ装置１０は、データを格納する際に利用される複数のテーブルを格納するテーブル群１３を備えている。なお、後述するディスクアレイコントローラ１１による処理は、ディスクアレイ装置１０に装備された演算装置にプログラムが組み込まれることによって実現される。以下、各構成について詳述する。
【００１６】
上記ＳＳＤ１２は、内部のフラッシュロムが予め設定された管理単位で制御されている。フラッシュロムは、一般的に、数キロバイト程度の管理単位で、データの消去、書き込み、読み込みを行う仕様となっており、当該管理単位の容量を表す管理サイズを記憶している。なお、この管理サイズをディスクアレイコントローラ１１が取得できるコマンドが、予めＳＳＤに設定されている。
【００１７】
また、ＳＳＤ１２は、ホストからのデータ書き込み、読み込み要求とは別に、SSDがバックグラウンドで動作を行うウェアレベリング機能を有している。
【００１８】
上記ディスクアレイコントローラ１１は、各ＳＳＤ１２から、当該ＳＳＤ１２に要求する書き込み単位を表す管理サイズを、Log pageコマンドより取得する。そして、ディスクアレイコントローラ１１は、取得した各ＳＳＤ１２の管理サイズを、予め設定されたテーブル群１３内のテーブル１に保存する（図４のステップＳ１）。なお、ディスクアレイコントローラ１１は、上記管理サイズを必ずしもＳＳＤ１２から取得することに限定されず、他の装置から取得してもよい。また、管理サイズは、予めテーブル群１３内のテーブル１に保存されていてもよい。
【００１９】
また、ディスクアレイコントローラ１１は、ホスト１から書き込み要求があった場合（図４のステップＳ２）、書き込み要求にかかる情報や受け取った書き込み要求データ自体から、当該書き込み要求データの容量を表す書き込みサイズを検出し、テーブル群１３内のテーブル２に保存する（図４のステップＳ３）。これに前後して、ディスクアレイコントローラ１１は、書き込み要求された書き込み要求データ自体を、テーブル群１３内のテーブル３に保存する（図４のステップＳ４）。
【００２０】
その後、ディスクアレイコントローラ１１は、テーブル１に保存したＳＳＤ１２の管理サイズと、テーブル２に保存した書き込み要求データの書き込みサイズと、を比較する（図４のステップＳ５）。このとき、テーブル２の値である書き込みサイズが、テーブル１の値であるＳＳＤ１２の管理サイズ以下である場合には（図４のステップＳ６：Ｎｏ）、テーブル３に保存されている書き込み要求データ自体にＮｕｌｌデータ（空データ）を付与して、当該書き込み要求データの容量がＳＳＤ１２の管理サイズと同等になるよう、当該書き込み要求データＳＳＤ１２に書き込む（図４のステップＳ８）。なお、書き込みサイズが管理サイズと同等である場合には、そのままＳＳＤ１２に書き込む。
【００２１】
一方、テーブル２の値である書き込みサイズが、テーブル１の値であるＳＳＤ１２の管理サイズよりも大きい場合には（図４のステップＳ６でＹｅｓ）、テーブル３に格納された書き込み要求データを、ＳＳＤ１２の管理サイズに変換して書き込む。具体的には、まず、書き込み要求データをＳＳＤ１２の管理サイズと同等のサイズに分割して、分割データを生成する。このとき、ＳＳＤ１２の管理サイズと同等のサイズに分割できた分割データについては、そのままＳＳＤ１２に書き込む。また、ＳＳＤ１２の管理サイズに満たない分割データには、Nullデータを付与し、ＳＳＤ１２の管理サイズと同等のサイズにして、ＳＳＤ１２に書き込む（図４のステップＳ７）。
【００２２】
ここで、上述したようにＳＳＤ１２にデータを格納したときの様子を、図５に示す。図５における四角形は、ＳＳＤ１２の管理サイズを示している。また、「Data」は、書き込み要求データを分割した分割データを示している。この図の例では、書き込み要求データを７つの分割データ「Data」に分割し、そのうち６つが管理サイズに分割でき、残りの１つが管理サイズに満たなかったため、Nullデータを付与して管理サイズとしている。
【００２３】
以上のように、本実施形態によると、書き込み要求データのサイズがＳＳＤ１２の管理サイズよりも大きい場合には、まず、分割によってＳＳＤ１２の管理サイズと同等のサイズの分割データを生成して書き込む。また、分割によって管理サイズに満たない端数のデータつまり残りのデータについては、Nullデータを付与して管理サイズとして、ＳＳＤ１２に書き込む。これにより、大部分の分割データは、そのままＳＳＤ１２に書き込みされると共に、Nullデータを付与して管理サイズとするデータの数を削減することができる。その結果、ウェアレベリングによるＳＳＤの性能低下を抑制でき、かつ、ＳＳＤの寿命が短くなることを抑制することができる。
【００２４】
なお、上記では、書き込み要求データを管理サイズに分割して当該管理サイズに分割できなかった残りのデータに対してのみ、Nullデータを付与することを例示したが、分割データのうち、いくつかにNullデータを付与して、管理サイズとなるようにしてもよい。
【００２５】
＜付記＞
上記実施形態の一部又は全部は、以下の付記のようにも記載されうる。以下、本発明における記憶装置（図６参照）、プログラム、書き込み方法の構成の概略を説明する。但し、本発明は、以下の構成に限定されない。
【００２６】
（付記１）
データを格納するフラッシュメモリ１０２と、当該フラッシュメモリへのデータの書き込みを制御する制御部１０１と、を備え、
前記制御部１０１は、
前記フラッシュメモリ１０２の予め設定された管理単位の容量を表す管理サイズと、書き込み要求データの容量を表す書き込みサイズと、を比較し、前記書き込みサイズが前記管理サイズよりも大きい場合に、前記書き込み要求データを前記管理サイズと同等のサイズに変換して前記フラッシュメモリ１０２に書き込む、
記憶装置１００。
【００２７】
（付記２）
付記１に記載の記憶装置であって、
前記制御部は、前記書き込みサイズが前記管理サイズよりも大きい場合に、前記書き込み要求データを分割して、当該書き込み要求データを前記管理サイズと同等のサイズに変換して前記フラッシュメモリに書き込む、
記憶装置。
【００２８】
（付記３）
付記２に記載の記憶装置であって、
前記制御部は、前記書き込みサイズが前記管理サイズよりも大きい場合に、前記書き込み要求データを分割することにより生成された分割データの容量が前記管理サイズと同等である場合には当該分割データをそのまま前記フラッシュメモリに書き込み、前記分割データが前記管理サイズよりも小さい場合には当該分割データを前記管理サイズと同等のサイズに変換して前記フラッシュメモリに書き込む、
記憶装置。
【００２９】
（付記４）
付記３に記載の記憶装置であって、
前記制御部は、前記書き込みサイズが前記管理サイズよりも大きい場合に、前記書き込み要求データを前記管理サイズと同等の容量となるよう分割して前記分割データを生成し、前記管理サイズと同様の容量に分割された前記分割データは、そのまま前記フラッシュメモリに書き込み、前記管理サイズと同等の容量に分割できなかった前記分割データは、当該分割データを前記管理サイズと同等のサイズに変換して前記フラッシュメモリに書き込む、
【００３０】
（付記５）
付記３又は４に記載の記憶装置であって、
前記制御部は、前記分割データが前記管理サイズよりも小さい場合には、当該分割データが前記管理サイズと同等のサイズになるよう当該分割データに空データを付加して前記フラッシュメモリに書き込む、
記憶装置。
【００３１】
（付記６）
データを格納するフラッシュメモリと、当該フラッシュメモリへのデータの書き込みを制御する制御部と、を備えた記憶装置の前記制御部に、
前記フラッシュメモリの予め設定された管理単位の容量を表す管理サイズと、書き込み要求データの容量を表す書き込みサイズと、を比較し、前記書き込みサイズが前記管理サイズよりも大きい場合に、前記書き込み要求データを前記管理サイズと同等のサイズに変換して前記フラッシュメモリに書き込む処理を実行させるためのプログラム。
【００３２】
（付記７）
付記６に記載のプログラムであって、
前記制御部に、前記書き込みサイズが前記管理サイズよりも大きい場合に、前記書き込み要求データを分割して、当該書き込み要求データを前記管理サイズと同等のサイズに変換して前記フラッシュメモリに書き込む処理を実行させるためのプログラム。
【００３３】
（付記８）
データを格納するフラッシュメモリと、当該フラッシュメモリへのデータの書き込みを制御する制御部と、を備えた記憶装置による書き込み方法であって、
前記フラッシュメモリの予め設定された管理単位の容量を表す管理サイズと、書き込み要求データの容量を表す書き込みサイズと、を比較し、前記書き込みサイズが前記管理サイズよりも大きい場合に、前記書き込み要求データを前記管理サイズと同等のサイズに変換して前記フラッシュメモリに書き込む、
書き込み方法。
【００３４】
（付記９）
付記８に記載の書き込み方法であって、
前記書き込みサイズが前記管理サイズよりも大きい場合に、前記書き込み要求データを分割して、当該書き込み要求データを前記管理サイズと同等のサイズに変換して前記フラッシュメモリに書き込む、
書き込み方法。
【００３５】
なお、上述したプログラムは、記憶装置に記憶されていたり、コンピュータが読み取り可能な記録媒体に記録されている。例えば、記録媒体は、フレキシブルディスク、光ディスク、光磁気ディスク、及び、半導体メモリ等の可搬性を有する媒体である。
【００３６】
以上、上記実施形態等を参照して本願発明を説明したが、本願発明は、上述した実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明の範囲内で当業者が理解しうる様々な変更をすることができる。
【符号の説明】
【００３７】
１  ホスト
１０  ディスクアレイ装置
１１  ディスクアレイコントローラ
１２  ＳＳＤ
１３  テーブル群
１００  記憶装置
１０１  制御部
１０２  フラッシュメモリ
【図１】
2014186600.tif 000003
【図２】
2014186600.tif 000004
【図３】
2014186600.tif 000005
【図４】
2014186600.tif 000006
【図５】
2014186600.tif 000007
【図６】
2014186600.tif 000008