(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】6844895
(24)【登録日】2021年3月1日
(45)【発行日】2021年3月17日
(54)【発明の名称】ストレージ装置およびストレージ方法
(51)【国際特許分類】
G06F 12/0871 20160101AFI20210308BHJP
G06F 12/0866 20160101ALI20210308BHJP
G06F 3/06 20060101ALI20210308BHJP
G06F 3/08 20060101ALI20210308BHJP
【FI】
G06F12/0871
G06F12/0866 100
G06F3/06 302A
G06F3/08 H
【請求項の数】8
【全頁数】10
(21)【出願番号】特願2019-176799(P2019-176799)
(22)【出願日】2019年9月27日
【審査請求日】2019年9月27日
(73)【特許権者】
【識別番号】000227205
【氏名又は名称】NECプラットフォームズ株式会社
(74)【代理人】
【識別番号】100103894
【弁理士】
【氏名又は名称】家入 健
(72)【発明者】
【氏名】藤原 武人
【審査官】
後藤 彰
(56)【参考文献】
【文献】
特開2003−330792(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 12/0871
G06F 12/0866
G06F 3/06
G06F 3/08
(57)【特許請求の範囲】
【請求項1】
不揮発性メモリと、
前記不揮発性メモリに記憶されるデータを一時的に格納するキャッシュと、
前記キャッシュを専用エリアと共用エリアとに静的に分割し、第2データよりもアクセス頻度の高い第1データを前記専用エリアに格納し、前記第2データを前記共用エリアに格納する制御手段と、
を備え、
前記第1データは情報処理のシーケンスを示すデータであり、前記第2データは前記情報処理に用いられるデータである、ストレージ装置。
【請求項2】
前記不揮発性メモリは、フラッシュメモリである請求項1に記載のストレージ装置。
【請求項3】
前記制御手段は、前記専用エリアのサイズを、前記第1データのサイズとする、請求項1または2に記載のストレージ装置。
【請求項4】
前記制御手段は、前記キャッシュに格納されたデータを前記キャッシュから退避させる際に、前記不揮発性メモリにデータを格納する、請求項1から3のいずれか1項に記載のストレージ装置。
【請求項5】
不揮発性メモリと、
前記不揮発性メモリに記憶されるデータを一時的に格納するキャッシュと、を備えるストレージ装置が行うストレージ方法であって、
前記キャッシュを専用エリアと共用エリアとに静的に分割し、第2データよりもアクセス頻度の高い第1データを前記専用エリアに格納し、前記第2データを前記共用エリアに格納する、
前記第1データは情報処理のシーケンスを示すデータであり、前記第2データは前記情報処理に用いられるデータである、ストレージ方法。
【請求項6】
前記不揮発性メモリは、フラッシュメモリである、請求項5に記載のストレージ方法。
【請求項7】
前記専用エリアのサイズを、前記第1データのサイズとする、請求項5または6に記載のストレージ方法。
【請求項8】
前記キャッシュに格納されたデータを前記キャッシュから退避させる際に、前記不揮発性メモリにデータを格納する、請求項5から7のいずれか1項に記載のストレージ方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ストレージ装置およびストレージ方法に関する。
【背景技術】
【0002】
キャッシュを備えるストレージ装置が存在する。キャッシュとは、不揮発性メモリ等が記憶するデータを一次的に格納するためのメモリである。キャッシュに格納されているデータは、不揮発性メモリ等にアクセスせずに、高速に読み出しを行うことができる。
【0003】
ストレージ装置に新たなデータを保存する際に、データがキャッシュから追い出される場合がある。アクセス頻度の高い特定のデータがキャッシュから追い出された場合、アクセスの遅れにつながる可能性がある。
【0004】
一方で、ストレージ装置ではなく、メインメモリが、キャッシュを備える場合がある。メインメモリにキャッシュを設けることで、メモリアクセスの時間を短縮し、CPU(Central Processing Unit)の性能を向上させることが可能となる。特許文献1は、メインメモリのキャッシュを専用領域と共用領域とに動的に分割する技術を開示している。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2015−036873号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
上記の様に、ストレージ装置が備えるキャッシュからアクセス頻度の高い特定のデータが追い出される場合に、アクセスの遅延を生じるという問題が生じていた。
【0007】
本開示は上記課題を解決するためにされたものであって、アクセス頻度が高い特定のデータをキャッシュ内部の専用エリアに格納することが可能なストレージ装置およびストレージ方法を提供することを目的とする。
【課題を解決するための手段】
【0008】
本開示にかかるストレージ装置は、不揮発性メモリと、前記不揮発性メモリに記憶されるデータを一時的に格納するキャッシュと、前記キャッシュを専用エリアと共用エリアとに静的に分割し、第2データよりもアクセス頻度の高い第1データを前記専用エリアに格納し、前記第2データを前記共用エリアに格納する制御手段と、を備えるものである。
【0009】
本開示にかかるストレージ方法は、不揮発性メモリと、前記不揮発性メモリに記憶されるデータを一時的に格納するキャッシュと、を備えるストレージ装置が行うストレージ方法であって、前記キャッシュを専用エリアと共用エリアとに静的に分割し、第2データよりもアクセス頻度の高い第1データを前記専用エリアに格納し、前記第2データを前記共用エリアに格納する、ものである。
【発明の効果】
【0010】
本開示によれば、アクセス頻度が高い特定のデータをキャッシュ内部の専用エリアに格納することが可能なストレージ装置およびストレージ方法を提供することができる。
【図面の簡単な説明】
【0011】
【
図1】実施の形態1にかかるストレージ装置を含む情報処理システムの概要を示す構成図である。
【
図2】実施の形態1にかかるストレージ装置の構成を示す構成図である。
【
図3】実施の形態1にかかるストレージ装置の動作を示すフローチャートである。
【
図4】実施の形態2にかかるストレージ装置の構成を示す構成図である。
【
図5】実施の形態2にかかるストレージ装置の動作を示すシーケンス図である。
【発明を実施するための形態】
【0012】
<実施の形態1>
図1は、本実施の形態にかかるストレージ装置100を含む情報処理システム200の構成例を示す構成図である。情報処理システム200は、ストレージ装置100および情報処理装置300を備える。
【0013】
情報処理装置300は、情報処理を行い、ストレージ装置100に対してデータの書き込み指示、あるいは読み出し指示を行う。つまり、情報処理装置300は、ストレージ装置100を利用するホスト計算機である。
【0014】
情報処理装置300が使用するデータは、第2データよりも使用頻度が高い第1データと第2データとに分けることができる。すなわち、第1データは使用頻度が高いデータであり、第2デーダは使用頻度が低いデータである。例えば、第1データは情報処理の進行状況を示すデータであり、第2データは情報処理の対象となるデータである。情報処理の進行状況を示すデータとは、例えば、処理のシーケンス番号である。第1データは、特定のデータに対してアクセスしていることを示すフラグであってもよい。
【0015】
図2は、本実施の形態にかかるストレージ装置100の構成を示す構成図である。ストレージ装置100は、不揮発性メモリ110、キャッシュ120、及び制御部130を備える。
【0016】
不揮発性メモリ110は、情報処理装置300が使用するデータを記憶する。不揮発性メモリ110は、電源を供給しなくても記憶を保持可能なメモリであり、例えば、NAND型フラッシュメモリである。
【0017】
キャッシュ120は、不揮発性メモリ110に記憶されるデータを一時的に格納するキャッシュである。キャッシュ120は、例えば、DRAM(Dynamic Random Access Memory)で構成される。
【0018】
キャッシュ120は、不揮発性メモリ110よりも高速にデータの書き込みおよび読み出しを行うことが可能である。読み出しデータがキャッシュ120に存在する場合、キャッシュ120から読み出しを行えるため、処理の遅延が小さい。読み出しデータがキャッシュ120に存在しない場合、不揮発性メモリ110から読み出しを行わなければならないため処理の遅延が大きい。
【0019】
また、キャッシュの空き領域にデータを書き込むことにより、書き込み処理の遅延を小さくすることができる。キャッシュに格納されたデータは、後述する制御部130が、適当なタイミングで不揮発性メモリ110に格納する。キャッシュ120に空き領域が存在しない場合、キャッシュ120のデータを不揮発性メモリ110に退避するために処理の遅延が発生する場合がある。
【0020】
制御部130は、情報処理装置300の指示に基づいて、不揮発性メモリ110およびキャッシュ120に対するデータの書き込みおよび読み出しの制御を行う。制御部130は、キャッシュ120の一部を専用エリアに設定する。制御部130は、専用エリアと専用エリア以外のエリアとを個別に制御することが可能である。以下では、キャッシュ120のうち、専用エリア以外を共用エリアと呼ぶ。
【0021】
制御部130は、キャッシュ120を専用エリアと共用エリアとに静的に分割し、第1データを専用エリアに格納し、第2データを共用エリアに格納する。本実施の形態では、キャッシュ120を静的に分割するため、特許文献1の技術をストレージ装置に適用した場合とは異なり、ストレージ装置100が複雑な演算を行う機能を備える必要はない。
【0022】
図3は、本実施の形態にかかるストレージ装置100の動作を示すシーケンス図である。ストレージ装置100が、データの書き込み指示を受信し、第1データの読み出し指示を受信する場合について説明する。まず、制御部130は、情報処理装置300からデータ書き込み指示を受信する(ステップS1)。書き込み指示は、例えば、書き込みデータとデータを格納するアドレスが指定される。
【0023】
アドレスは、不揮発性メモリ110の物理アドレスではなく、情報処理装置300が用いる論理アドレスであってもよい。このような場合、制御部130は、物理アドレスと論理アドレスとの変換を行う。変換は、物理アドレスと論理アドレスとの対応付けを示す表に基づいて行われてもよい。
【0024】
次に、制御部130は、書き込みを行うデータが第1データであるかどうかを判断する(ステップS2)。第1データか否かは、例えば、書き込み指示に含まれるアドレスに基づいて判断される。制御部130は、第1データとなるデータのアドレスを、情報処理装置300からあらかじめ受信しておいてもよい。
【0025】
書き込みを行うデータが第1データの場合には、制御部130は、キャッシュ120の専用エリアにデータを格納するように制御を行う(ステップS3)。なお、キャッシュ120には、データと共にアドレスが格納されてもよい。
【0026】
書き込みを行うデータが第2データの場合には、制御部130は、共用エリアにデータを格納するように制御を行う(ステップS4)。
【0027】
キャッシュ格納後、キャッシュに格納されたデータは、不揮発性メモリ110に格納される(ステップS5)。不揮発性メモリ110にデータを格納するタイミングは任意であり、例えば、キャッシュ120からデータが追い出される場合に、データを不揮発性メモリ110に格納してもよい。
【0028】
次に、制御部130は、情報処理装置300から、アクセス頻度の高い第1データの読み出し指示を受信する(ステップS6)。読み出し指示は、例えば、データが格納されているアドレスとデータサイズが指定される。制御部130は、データがキャッシュ120に存在するか否かを判断する。キャッシュ120に、データとデータの論理アドレスとが格納されており、読み出しを行う論理アドレスが含まれているかを確認することにより判断を行ってもよい。第1データは専用エリアに格納されているため、制御部130は、キャッシュ120に格納された第1データを情報処理装置300に送信する(ステップS7)
【0029】
本実施の形態によれば、第2データを書き込む場合に、第1データがキャッシュから追い払われることがない。したがって、アクセス頻度の高い第1データは、キャッシュに存在することとなり、読み出し処理の遅延が小さくなる。
【0030】
<実施の形態2>
図4は、本実施の形態に係るSSD(Solid State Drive)であるSSD(ストレージ装置)100を含む情報処理システム200の構成を示す構成図である。情報処理システム200は、情報処理装置300およびSSD100を備える。情報処理装置300は、汎用の情報処理を行う計算機であり、SSD100を使用するホスト計算機である。
【0031】
情報処理装置300は、SSD100にアクセス可能である。情報処理装置300は、SSD100に対してデータの書き込み指示および読み出し指示を行う。情報処理装置300が行うデータアクセスは、SSD100が記憶する通常のデータへのアクセスと、情報処理(コマンド)の進行状況を示す特定のデータへのアクセスとを含む。以下、特定のデータのことを第1データと呼び、通常のデータを第2データと呼ぶ。
【0032】
SSD100は、データを格納している。SSD100は、情報処理装置300の指示に基づいて、データの書き出し処理および読み出し処理を行う。SSD100は、不揮発性メモリ110、キャッシュ120、及び制御部130を備える。
【0033】
不揮発性メモリ110は、情報処理装置300が使用するデータを格納する。不揮発性メモリ110は、NAND113〜118を備える。NAND113〜118は、NAND型フラッシュメモリである。NAND型フラッシュメモリとは、不揮発性メモリの一種である。データは、一次的にはキャッシュ120に格納されるが、制御部130の制御により最終的にはNAND113〜118に格納される。
【0034】
キャッシュ120は、書き込みデータを一次的に格納する。キャッシュ120は、専用エリア121を備えている。専用エリア121は、キャッシュ120内に個別に確保されたエリアであり、第1データを一次的に格納する。専用エリア121以外の領域は、第2データを一次的に格納する共用エリアである。専用エリア121は、機能的には通常のキャッシュと同様に動作する。専用エリア121は、後述する制御部130の制御により、共用エリアの動作の影響を受けず、独立して動作させることが可能である。
【0035】
制御部130は、SSD100を制御するコントローラである。制御部130は、専用エリア121を、共用エリアとは別個に制御する。
【0036】
図5は、本実施の形態の動作を示すシーケンス図である。一例として、第1データの書き込みを行い、第2データの書き込みを行い、データの読み出しを行う場合について説明する。
【0037】
ステップS101〜ステップS104は、第1データの書き込みの動作を示す。
まず、制御部130は、キャッシュ120の内部に第1データを格納可能な専用エリアを確保する(ステップS101)。専用エリアのサイズは、第1データのサイズに基づいて定められても良い。例えば、専用エリアのサイズを、第1データのサイズとした場合、キャッシュ120を効率的に利用することが可能となる。
【0038】
次に、情報処理装置300は、第1データの書き込み指示を行う(ステップS102)。書き込みデータは、SSD100に転送される。
【0039】
次に、制御部130は、書き込みデータが第1データであるか否かを判断し、キャッシュ120にデータを格納する制御を行う。すなわち、制御部130は、書き込みデータが第1データであれば専用エリア121に格納し、それ以外であれば共用エリアに格納する。したがって、今回の場合、制御部130は、書き込みデータを専用エリア121に格納する(ステップS103)。
【0040】
最後に、制御部130は、書き込み完了を情報処理装置300に通知する(ステップS104)。書き込み完了を受信した情報処理装置300は、情報処理を再開する。
【0041】
なお、キャッシュ120のデータを、NAND113〜118の該当するエリアに書き込む処理は、情報処理装置300のアクセス処理とは同期しなくてもよい。すなわち、キャッシュ120からデータが追い出される際に、NAND113〜118へのデータの書き込みを行ってもよい。
【0042】
ステップS201〜ステップS204は、第2データの書き込み動作を示す。
まず、情報処理装置300は、第2データの書き込み指示を行う(ステップS201)。書き込みデータは、SSD100に転送される。
【0043】
以下、第2データをキャッシュに書き込む際に、キャッシュ内のデータを退避しなければならないケースについて説明する。特に、書き込みデータがキャッシュ120のサイズより大きい場合等には、データ退避が必要となる。
なお、キャッシュ内のデータを退避しなくても良いケースも考えられる。制御部130が、データをキャッシュに格納後、速やかにNAND113〜118にデータを格納する場合等である。
【0044】
次に、制御部130は、キャッシュ120から追い出されるデータをNAND113〜118に格納する(ステップS202)。次に、制御部130は、書き込みデータをキャッシュ120の共用エリアに格納する(ステップS203)。
【0045】
関連する技術を用いた場合、第1データもキャッシュ120から追い出され、NAND113〜118に格納される可能性がある。しかし、本実施の形態では、キャッシュ120に専用エリア121を確保している。したがって、第1データは、通常データの影響を受けずにキャッシュ120に継続して格納される。よって、本実施の形態にかかるSSD100は、後続の第1データへのアクセスに対して、専用エリア121を用いて動作を継続することが可能となる。
【0046】
最後に、制御部130は、書き込み完了を情報処理装置300に通知する(ステップS204)。情報処理装置300は、情報処理を再開する。
【0047】
ステップS301〜ステップ303は、データの読み出しの動作を示す。
まず、情報処理装置300は、制御部130に読み出しの指示を行う(ステップS301)。制御部130は、読み出しデータがキャッシュ120に存在する場合には、キャッシュ120からデータを読み出し、情報処理装置300ヘデータを送信するように制御を行う(ステップS302)。制御部130は、読み出しデータがキャッシュ120に存在しない場合には、該当するNAND113〜118から対象のデータを読み出し、情報処理装置300へデータを送信するように制御を行う(ステップS303)。
【0048】
本実施の形態においては、第1データは専用エリア121に格納されているため、キャッシュから第1データを送信することが可能となる。
【0049】
以下、本実施の形態の効果について説明する。
情報処理装置が、情報処理の進行状況を逐次データとしてストレージに書き込む場合がある。障害発生時等に、進行状況から問題発生シーケンスを確認し、情報処理における問題発生箇所を特定するためである。
【0050】
進行状況を格納するデータは、情報処理装置が処理するデータ量がキャッシュ容量を越えた場合、キャッシュから追い出されることとなる。したがって、キャッシュに格納されたデータをNAND素子に書き戻す処理が、発生する。
【0051】
進行状況を示すデータは、処理のシーケンスをトレースできる様に頻繁に更新される。したがって、他の処理データの影響を受けてキャッシュから追い出されないようにする必要がある。書き込みデータによってキャッシュに格納されたデータの全てが書き換えられると、処理の進行状況に関するデータが、高速アクセス可能なキャッシュから追い出されてしまう。
【0052】
このような場合、NAND素子までアクセスすることにより、アクセスの遅延が発生してしまう。しかし、本実施の形態では、処理の進行状況に関するデータを格納するための専用エリアを確保することにより、他のデータに対する処理とは関係なくキャッシュを使用することが出来て、高速アクセスが可能となる。
【0053】
また、本実施の形態により第1データをNANDに退避する回数を減らすことができる。NAND型フラッシュメモリ等のフラッシュメモリは、書き込み回数に制限がある場合が多いため、使用期間を延ばすことが可能となる。なお、フラッシュメモリとは、浮遊ゲートに電子を格納することによってデータを記憶する素子である。
【0054】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
【符号の説明】
【0055】
100 ストレージ装置、SSD
110 不揮発性メモリ
120 キャッシュ
130 制御部
200 情報処理システム
121 専用エリア
113、114、115、116、117、118 NAND
300 情報処理装置
【要約】
【課題】アクセス頻度が高い特定のデータをキャッシュ内部の専用エリアに格納することが可能なストレージ装置およびストレージ方法を提供する
【解決手段】本発明にかかるストレージ装置100は、不揮発性メモリ110と、不揮発性メモリ110に記憶されるデータを一時的に格納するキャッシュ120と、キャッシュ120を専用エリアと共用エリアとに静的に分割し、第2データよりもアクセス頻度の高い第1データを専用エリアに格納し、前記第2データを共用エリアに格納する制御部130と、を備える。
【選択図】
図2