(57)【特許請求の範囲】
【請求項１】
不揮発性メモリと、
前記不揮発性メモリに記憶されるデータを一時的に格納するキャッシュと、
前記キャッシュを専用エリアと共用エリアとに静的に分割し、第２データよりもアクセス頻度の高い第１データを前記専用エリアに格納し、前記第２データを前記共用エリアに格納する制御手段と、
を備え、
前記第１データは情報処理のシーケンスを示すデータであり、前記第２データは前記情報処理に用いられるデータである、ストレージ装置。
【請求項２】
前記不揮発性メモリは、フラッシュメモリである請求項１に記載のストレージ装置。
【請求項３】
前記制御手段は、前記専用エリアのサイズを、前記第１データのサイズとする、請求項１または２に記載のストレージ装置。
【請求項４】
前記制御手段は、前記キャッシュに格納されたデータを前記キャッシュから退避させる際に、前記不揮発性メモリにデータを格納する、請求項１から３のいずれか１項に記載のストレージ装置。
【請求項５】
不揮発性メモリと、
前記不揮発性メモリに記憶されるデータを一時的に格納するキャッシュと、を備えるストレージ装置が行うストレージ方法であって、
前記キャッシュを専用エリアと共用エリアとに静的に分割し、第２データよりもアクセス頻度の高い第１データを前記専用エリアに格納し、前記第２データを前記共用エリアに格納する、
前記第１データは情報処理のシーケンスを示すデータであり、前記第２データは前記情報処理に用いられるデータである、ストレージ方法。
【請求項６】
前記不揮発性メモリは、フラッシュメモリである、請求項５に記載のストレージ方法。
【請求項７】
前記専用エリアのサイズを、前記第１データのサイズとする、請求項５または６に記載のストレージ方法。
【請求項８】
前記キャッシュに格納されたデータを前記キャッシュから退避させる際に、前記不揮発性メモリにデータを格納する、請求項５から７のいずれか１項に記載のストレージ方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ装置およびストレージ方法に関する。
【背景技術】
【０００２】
キャッシュを備えるストレージ装置が存在する。キャッシュとは、不揮発性メモリ等が記憶するデータを一次的に格納するためのメモリである。キャッシュに格納されているデータは、不揮発性メモリ等にアクセスせずに、高速に読み出しを行うことができる。
【０００３】
ストレージ装置に新たなデータを保存する際に、データがキャッシュから追い出される場合がある。アクセス頻度の高い特定のデータがキャッシュから追い出された場合、アクセスの遅れにつながる可能性がある。
【０００４】
一方で、ストレージ装置ではなく、メインメモリが、キャッシュを備える場合がある。メインメモリにキャッシュを設けることで、メモリアクセスの時間を短縮し、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）の性能を向上させることが可能となる。特許文献１は、メインメモリのキャッシュを専用領域と共用領域とに動的に分割する技術を開示している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１５−０３６８７３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上記の様に、ストレージ装置が備えるキャッシュからアクセス頻度の高い特定のデータが追い出される場合に、アクセスの遅延を生じるという問題が生じていた。
【０００７】
本開示は上記課題を解決するためにされたものであって、アクセス頻度が高い特定のデータをキャッシュ内部の専用エリアに格納することが可能なストレージ装置およびストレージ方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本開示にかかるストレージ装置は、不揮発性メモリと、前記不揮発性メモリに記憶されるデータを一時的に格納するキャッシュと、前記キャッシュを専用エリアと共用エリアとに静的に分割し、第２データよりもアクセス頻度の高い第１データを前記専用エリアに格納し、前記第２データを前記共用エリアに格納する制御手段と、を備えるものである。
【０００９】
本開示にかかるストレージ方法は、不揮発性メモリと、前記不揮発性メモリに記憶されるデータを一時的に格納するキャッシュと、を備えるストレージ装置が行うストレージ方法であって、前記キャッシュを専用エリアと共用エリアとに静的に分割し、第２データよりもアクセス頻度の高い第１データを前記専用エリアに格納し、前記第２データを前記共用エリアに格納する、ものである。
【発明の効果】
【００１０】
本開示によれば、アクセス頻度が高い特定のデータをキャッシュ内部の専用エリアに格納することが可能なストレージ装置およびストレージ方法を提供することができる。
【図面の簡単な説明】
【００１１】
【図１】実施の形態１にかかるストレージ装置を含む情報処理システムの概要を示す構成図である。
【図２】実施の形態１にかかるストレージ装置の構成を示す構成図である。
【図３】実施の形態１にかかるストレージ装置の動作を示すフローチャートである。
【図４】実施の形態２にかかるストレージ装置の構成を示す構成図である。
【図５】実施の形態２にかかるストレージ装置の動作を示すシーケンス図である。
【発明を実施するための形態】
【００１２】
＜実施の形態１＞
図１は、本実施の形態にかかるストレージ装置１００を含む情報処理システム２００の構成例を示す構成図である。情報処理システム２００は、ストレージ装置１００および情報処理装置３００を備える。
【００１３】
情報処理装置３００は、情報処理を行い、ストレージ装置１００に対してデータの書き込み指示、あるいは読み出し指示を行う。つまり、情報処理装置３００は、ストレージ装置１００を利用するホスト計算機である。
【００１４】
情報処理装置３００が使用するデータは、第２データよりも使用頻度が高い第１データと第２データとに分けることができる。すなわち、第１データは使用頻度が高いデータであり、第２デーダは使用頻度が低いデータである。例えば、第１データは情報処理の進行状況を示すデータであり、第２データは情報処理の対象となるデータである。情報処理の進行状況を示すデータとは、例えば、処理のシーケンス番号である。第１データは、特定のデータに対してアクセスしていることを示すフラグであってもよい。
【００１５】
図２は、本実施の形態にかかるストレージ装置１００の構成を示す構成図である。ストレージ装置１００は、不揮発性メモリ１１０、キャッシュ１２０、及び制御部１３０を備える。
【００１６】
不揮発性メモリ１１０は、情報処理装置３００が使用するデータを記憶する。不揮発性メモリ１１０は、電源を供給しなくても記憶を保持可能なメモリであり、例えば、ＮＡＮＤ型フラッシュメモリである。
【００１７】
キャッシュ１２０は、不揮発性メモリ１１０に記憶されるデータを一時的に格納するキャッシュである。キャッシュ１２０は、例えば、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）で構成される。
【００１８】
キャッシュ１２０は、不揮発性メモリ１１０よりも高速にデータの書き込みおよび読み出しを行うことが可能である。読み出しデータがキャッシュ１２０に存在する場合、キャッシュ１２０から読み出しを行えるため、処理の遅延が小さい。読み出しデータがキャッシュ１２０に存在しない場合、不揮発性メモリ１１０から読み出しを行わなければならないため処理の遅延が大きい。
【００１９】
また、キャッシュの空き領域にデータを書き込むことにより、書き込み処理の遅延を小さくすることができる。キャッシュに格納されたデータは、後述する制御部１３０が、適当なタイミングで不揮発性メモリ１１０に格納する。キャッシュ１２０に空き領域が存在しない場合、キャッシュ１２０のデータを不揮発性メモリ１１０に退避するために処理の遅延が発生する場合がある。
【００２０】
制御部１３０は、情報処理装置３００の指示に基づいて、不揮発性メモリ１１０およびキャッシュ１２０に対するデータの書き込みおよび読み出しの制御を行う。制御部１３０は、キャッシュ１２０の一部を専用エリアに設定する。制御部１３０は、専用エリアと専用エリア以外のエリアとを個別に制御することが可能である。以下では、キャッシュ１２０のうち、専用エリア以外を共用エリアと呼ぶ。
【００２１】
制御部１３０は、キャッシュ１２０を専用エリアと共用エリアとに静的に分割し、第１データを専用エリアに格納し、第２データを共用エリアに格納する。本実施の形態では、キャッシュ１２０を静的に分割するため、特許文献１の技術をストレージ装置に適用した場合とは異なり、ストレージ装置１００が複雑な演算を行う機能を備える必要はない。
【００２２】
図３は、本実施の形態にかかるストレージ装置１００の動作を示すシーケンス図である。ストレージ装置１００が、データの書き込み指示を受信し、第１データの読み出し指示を受信する場合について説明する。まず、制御部１３０は、情報処理装置３００からデータ書き込み指示を受信する（ステップＳ１）。書き込み指示は、例えば、書き込みデータとデータを格納するアドレスが指定される。
【００２３】
アドレスは、不揮発性メモリ１１０の物理アドレスではなく、情報処理装置３００が用いる論理アドレスであってもよい。このような場合、制御部１３０は、物理アドレスと論理アドレスとの変換を行う。変換は、物理アドレスと論理アドレスとの対応付けを示す表に基づいて行われてもよい。
【００２４】
次に、制御部１３０は、書き込みを行うデータが第１データであるかどうかを判断する（ステップＳ２）。第１データか否かは、例えば、書き込み指示に含まれるアドレスに基づいて判断される。制御部１３０は、第１データとなるデータのアドレスを、情報処理装置３００からあらかじめ受信しておいてもよい。
【００２５】
書き込みを行うデータが第１データの場合には、制御部１３０は、キャッシュ１２０の専用エリアにデータを格納するように制御を行う（ステップＳ３）。なお、キャッシュ１２０には、データと共にアドレスが格納されてもよい。
【００２６】
書き込みを行うデータが第２データの場合には、制御部１３０は、共用エリアにデータを格納するように制御を行う（ステップＳ４）。
【００２７】
キャッシュ格納後、キャッシュに格納されたデータは、不揮発性メモリ１１０に格納される（ステップＳ５）。不揮発性メモリ１１０にデータを格納するタイミングは任意であり、例えば、キャッシュ１２０からデータが追い出される場合に、データを不揮発性メモリ１１０に格納してもよい。
【００２８】
次に、制御部１３０は、情報処理装置３００から、アクセス頻度の高い第１データの読み出し指示を受信する（ステップＳ６）。読み出し指示は、例えば、データが格納されているアドレスとデータサイズが指定される。制御部１３０は、データがキャッシュ１２０に存在するか否かを判断する。キャッシュ１２０に、データとデータの論理アドレスとが格納されており、読み出しを行う論理アドレスが含まれているかを確認することにより判断を行ってもよい。第１データは専用エリアに格納されているため、制御部１３０は、キャッシュ１２０に格納された第１データを情報処理装置３００に送信する（ステップＳ７）
【００２９】
本実施の形態によれば、第２データを書き込む場合に、第１データがキャッシュから追い払われることがない。したがって、アクセス頻度の高い第１データは、キャッシュに存在することとなり、読み出し処理の遅延が小さくなる。
【００３０】
＜実施の形態２＞
図４は、本実施の形態に係るＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）であるＳＳＤ（ストレージ装置）１００を含む情報処理システム２００の構成を示す構成図である。情報処理システム２００は、情報処理装置３００およびＳＳＤ１００を備える。情報処理装置３００は、汎用の情報処理を行う計算機であり、ＳＳＤ１００を使用するホスト計算機である。
【００３１】
情報処理装置３００は、ＳＳＤ１００にアクセス可能である。情報処理装置３００は、ＳＳＤ１００に対してデータの書き込み指示および読み出し指示を行う。情報処理装置３００が行うデータアクセスは、ＳＳＤ１００が記憶する通常のデータへのアクセスと、情報処理（コマンド）の進行状況を示す特定のデータへのアクセスとを含む。以下、特定のデータのことを第１データと呼び、通常のデータを第２データと呼ぶ。
【００３２】
ＳＳＤ１００は、データを格納している。ＳＳＤ１００は、情報処理装置３００の指示に基づいて、データの書き出し処理および読み出し処理を行う。ＳＳＤ１００は、不揮発性メモリ１１０、キャッシュ１２０、及び制御部１３０を備える。
【００３３】
不揮発性メモリ１１０は、情報処理装置３００が使用するデータを格納する。不揮発性メモリ１１０は、ＮＡＮＤ１１３〜１１８を備える。ＮＡＮＤ１１３〜１１８は、ＮＡＮＤ型フラッシュメモリである。ＮＡＮＤ型フラッシュメモリとは、不揮発性メモリの一種である。データは、一次的にはキャッシュ１２０に格納されるが、制御部１３０の制御により最終的にはＮＡＮＤ１１３〜１１８に格納される。
【００３４】
キャッシュ１２０は、書き込みデータを一次的に格納する。キャッシュ１２０は、専用エリア１２１を備えている。専用エリア１２１は、キャッシュ１２０内に個別に確保されたエリアであり、第１データを一次的に格納する。専用エリア１２１以外の領域は、第２データを一次的に格納する共用エリアである。専用エリア１２１は、機能的には通常のキャッシュと同様に動作する。専用エリア１２１は、後述する制御部１３０の制御により、共用エリアの動作の影響を受けず、独立して動作させることが可能である。
【００３５】
制御部１３０は、ＳＳＤ１００を制御するコントローラである。制御部１３０は、専用エリア１２１を、共用エリアとは別個に制御する。
【００３６】
図５は、本実施の形態の動作を示すシーケンス図である。一例として、第１データの書き込みを行い、第２データの書き込みを行い、データの読み出しを行う場合について説明する。
【００３７】
ステップＳ１０１〜ステップＳ１０４は、第１データの書き込みの動作を示す。
まず、制御部１３０は、キャッシュ１２０の内部に第１データを格納可能な専用エリアを確保する（ステップＳ１０１）。専用エリアのサイズは、第１データのサイズに基づいて定められても良い。例えば、専用エリアのサイズを、第１データのサイズとした場合、キャッシュ１２０を効率的に利用することが可能となる。
【００３８】
次に、情報処理装置３００は、第１データの書き込み指示を行う（ステップＳ１０２）。書き込みデータは、ＳＳＤ１００に転送される。
【００３９】
次に、制御部１３０は、書き込みデータが第１データであるか否かを判断し、キャッシュ１２０にデータを格納する制御を行う。すなわち、制御部１３０は、書き込みデータが第１データであれば専用エリア１２１に格納し、それ以外であれば共用エリアに格納する。したがって、今回の場合、制御部１３０は、書き込みデータを専用エリア１２１に格納する（ステップＳ１０３）。
【００４０】
最後に、制御部１３０は、書き込み完了を情報処理装置３００に通知する（ステップＳ１０４）。書き込み完了を受信した情報処理装置３００は、情報処理を再開する。
【００４１】
なお、キャッシュ１２０のデータを、ＮＡＮＤ１１３〜１１８の該当するエリアに書き込む処理は、情報処理装置３００のアクセス処理とは同期しなくてもよい。すなわち、キャッシュ１２０からデータが追い出される際に、ＮＡＮＤ１１３〜１１８へのデータの書き込みを行ってもよい。
【００４２】
ステップＳ２０１〜ステップＳ２０４は、第２データの書き込み動作を示す。
まず、情報処理装置３００は、第２データの書き込み指示を行う（ステップＳ２０１）。書き込みデータは、ＳＳＤ１００に転送される。
【００４３】
以下、第２データをキャッシュに書き込む際に、キャッシュ内のデータを退避しなければならないケースについて説明する。特に、書き込みデータがキャッシュ１２０のサイズより大きい場合等には、データ退避が必要となる。
なお、キャッシュ内のデータを退避しなくても良いケースも考えられる。制御部１３０が、データをキャッシュに格納後、速やかにＮＡＮＤ１１３〜１１８にデータを格納する場合等である。
【００４４】
次に、制御部１３０は、キャッシュ１２０から追い出されるデータをＮＡＮＤ１１３〜１１８に格納する（ステップＳ２０２）。次に、制御部１３０は、書き込みデータをキャッシュ１２０の共用エリアに格納する（ステップＳ２０３）。
【００４５】
関連する技術を用いた場合、第１データもキャッシュ１２０から追い出され、ＮＡＮＤ１１３〜１１８に格納される可能性がある。しかし、本実施の形態では、キャッシュ１２０に専用エリア１２１を確保している。したがって、第１データは、通常データの影響を受けずにキャッシュ１２０に継続して格納される。よって、本実施の形態にかかるＳＳＤ１００は、後続の第１データへのアクセスに対して、専用エリア１２１を用いて動作を継続することが可能となる。
【００４６】
最後に、制御部１３０は、書き込み完了を情報処理装置３００に通知する（ステップＳ２０４）。情報処理装置３００は、情報処理を再開する。
【００４７】
ステップＳ３０１〜ステップ３０３は、データの読み出しの動作を示す。
まず、情報処理装置３００は、制御部１３０に読み出しの指示を行う(ステップＳ３０１)。制御部１３０は、読み出しデータがキャッシュ１２０に存在する場合には、キャッシュ１２０からデータを読み出し、情報処理装置３００ヘデータを送信するように制御を行う（ステップＳ３０２）。制御部１３０は、読み出しデータがキャッシュ１２０に存在しない場合には、該当するＮＡＮＤ１１３〜１１８から対象のデータを読み出し、情報処理装置３００へデータを送信するように制御を行う（ステップＳ３０３）。
【００４８】
本実施の形態においては、第１データは専用エリア１２１に格納されているため、キャッシュから第１データを送信することが可能となる。
【００４９】
以下、本実施の形態の効果について説明する。
情報処理装置が、情報処理の進行状況を逐次データとしてストレージに書き込む場合がある。障害発生時等に、進行状況から問題発生シーケンスを確認し、情報処理における問題発生箇所を特定するためである。
【００５０】
進行状況を格納するデータは、情報処理装置が処理するデータ量がキャッシュ容量を越えた場合、キャッシュから追い出されることとなる。したがって、キャッシュに格納されたデータをＮＡＮＤ素子に書き戻す処理が、発生する。
【００５１】
進行状況を示すデータは、処理のシーケンスをトレースできる様に頻繁に更新される。したがって、他の処理データの影響を受けてキャッシュから追い出されないようにする必要がある。書き込みデータによってキャッシュに格納されたデータの全てが書き換えられると、処理の進行状況に関するデータが、高速アクセス可能なキャッシュから追い出されてしまう。
【００５２】
このような場合、ＮＡＮＤ素子までアクセスすることにより、アクセスの遅延が発生してしまう。しかし、本実施の形態では、処理の進行状況に関するデータを格納するための専用エリアを確保することにより、他のデータに対する処理とは関係なくキャッシュを使用することが出来て、高速アクセスが可能となる。
【００５３】
また、本実施の形態により第１データをＮＡＮＤに退避する回数を減らすことができる。ＮＡＮＤ型フラッシュメモリ等のフラッシュメモリは、書き込み回数に制限がある場合が多いため、使用期間を延ばすことが可能となる。なお、フラッシュメモリとは、浮遊ゲートに電子を格納することによってデータを記憶する素子である。
【００５４】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
【符号の説明】
【００５５】
１００  ストレージ装置、ＳＳＤ
１１０  不揮発性メモリ
１２０  キャッシュ
１３０  制御部
２００  情報処理システム
１２１  専用エリア
１１３、１１４、１１５、１１６、１１７、１１８  ＮＡＮＤ
３００  情報処理装置
【要約】
【課題】アクセス頻度が高い特定のデータをキャッシュ内部の専用エリアに格納することが可能なストレージ装置およびストレージ方法を提供する
【解決手段】本発明にかかるストレージ装置１００は、不揮発性メモリ１１０と、不揮発性メモリ１１０に記憶されるデータを一時的に格納するキャッシュ１２０と、キャッシュ１２０を専用エリアと共用エリアとに静的に分割し、第２データよりもアクセス頻度の高い第１データを専用エリアに格納し、前記第２データを共用エリアに格納する制御部１３０と、を備える。
【選択図】図２【図１】
0006844895.tif 000002
【図２】
0006844895.tif 000003
【図３】
0006844895.tif 000004
【図４】
0006844895.tif 000005
【図５】
0006844895.tif 000006