JP6384151B2 - 記憶装置、制御装置、記憶装置の制御方法、及びプログラム - Google Patents

記憶装置、制御装置、記憶装置の制御方法、及びプログラム Download PDF

Info

Publication number
JP6384151B2
JP6384151B2 JP2014136609A JP2014136609A JP6384151B2 JP 6384151 B2 JP6384151 B2 JP 6384151B2 JP 2014136609 A JP2014136609 A JP 2014136609A JP 2014136609 A JP2014136609 A JP 2014136609A JP 6384151 B2 JP6384151 B2 JP 6384151B2
Authority
JP
Japan
Prior art keywords
cache
pointer
cache tag
data
storage device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2014136609A
Other languages
English (en)
Other versions
JP2016015012A (ja
Inventor
賀洋 長谷部
賀洋 長谷部
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2014136609A priority Critical patent/JP6384151B2/ja
Publication of JP2016015012A publication Critical patent/JP2016015012A/ja
Application granted granted Critical
Publication of JP6384151B2 publication Critical patent/JP6384151B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

本発明は、記憶装置、制御装置、記憶装置の制御方法、及びプログラムに関する。
ストレージシステム等におけるデータの読み書きにおいて、過去に読み出し(リード)されたデータ等を、所謂キャッシュメモリに記憶しておき、データのアクセス性能を向上させる技術が利用されている。その場合、キャッシュメモリとしては、DRAM(Dynamic Random Access Memory)等、揮発メモリが用いられることが多い。しかし、キャッシュメモリとして、揮発メモリを用いると、不意の電源断時に、揮発メモリに書き込まれたデータが消失してしまう。
ここで、特許文献1においては、不揮発メモリをキャッシュメモリとして用いる技術が開示されている。
特開2004−506256号公報
なお、上記先行技術文献の開示を、本書に引用をもって繰り込むものとする。以下の分析は、本発明の観点からなされたものである。
キャッシュメモリにおいては、データが格納されている領域のアドレスを記憶し、当該アドレスに基づいて、データにアクセスする場合が多い。そのようなキャッシュメモリにおいては、データを書き換える時、データが格納されている領域のアドレスも書き換える必要がある。しかし、不揮発メモリにおいて、データの書き込み回数が多いほど、不揮発メモリの寿命が低下する。
ここで、特許文献1に開示された技術においては、書き込み回数を低減する技術に関しては開示されていない。
そこで、本発明は、不揮発メモリにおいて書き込み回数を低減することに貢献する記憶装置、制御装置、記憶装置の制御方法、及びプログラムを提供することを目的とする。
本発明の第1の視点によれば、不揮発メモリの記憶装置であって、複数のエントリと、複数のキャッシュタグと、を備え、前記複数のエントリにおける各エントリは、前記複数のキャッシュタグのうち、一のキャッシュタグを示すポインタと、データのアドレスに対応する識別子を格納する領域とを含み、当該キャッシュタグを示すポインタを用いて、キャッシュタグのリンクを構成し、前記複数のキャッシュタグにおける各キャッシュタグは、前方参照する第1のポインタと、後方参照する第2のポインタと、キャッシュデータ格納領域とを含み、前記第1のポインタと、前記第2のポインタと、前記キャッシュデータ格納領域とを、連続したアドレスに配置する、記憶装置が提供される。
本発明の第2の視点によれば、第1の記憶装置と、データの読み書きのリクエストを受け付けるコマンド制御部と、前記コマンド制御部が前記リクエストを受け付けた場合、前記第1の記憶装置にアクセスするプロセッサと、を備え、前記第1の記憶装置は、不揮発メモリであって、複数のエントリと、複数のキャッシュタグと、を備え、前記複数のエントリにおける各エントリは、前記複数のキャッシュタグのうち、一のキャッシュタグを示すポインタと、データのアドレスに対応する識別子を格納する領域とを含み、キャッシュタグのリンクを構成し、前記複数のキャッシュタグにおける各キャッシュタグは、前方参照する第1のポインタと、後方参照する第2のポインタと、キャッシュデータ格納領域とを含み、前記第1のポインタと、前記第2のポインタと、前記キャッシュデータ格納領域とを、連続したアドレスに配置する、制御装置が提供される。
本発明の第3の視点によれば、不揮発メモリであって、複数のエントリと、複数のキャッシュタグと、を備え、前記複数のエントリにおける各エントリは、前記複数のキャッシュタグのうち、一のキャッシュタグを示すポインタと、データのアドレスに対応する識別子を格納する領域とを含む記憶装置の制御方法であって、前記複数のエントリにおける各エントリに対して、前記複数のキャッシュタグのうち、一のキャッシュタグを示すポインタを用いて、キャッシュタグのリンクを構成する工程と、前記複数のキャッシュタグにおける各キャッシュタグにおいて、前方参照する第1のポインタと、後方参照する第2のポインタと、キャッシュデータ格納領域とを、連続したアドレスに配置する工程と、を含む記憶装置の制御方法が提供される。
なお、本方法は、不揮発メモリという、特定の装置に結び付けられている。
本発明の第4の視点によれば、不揮発メモリであって、複数のエントリと、複数のキャッシュタグと、を備え、前記複数のエントリにおける各エントリは、前記複数のキャッシュタグのうち、一のキャッシュタグを示すポインタと、データのアドレスに対応する識別子を格納する領域とを含む記憶装置を制御するコンピュータに実行させるプログラムであって、前記複数のエントリにおける各エントリに対して、前記複数のキャッシュタグのうち、一のキャッシュタグを示すポインタを用いて、キャッシュタグのリンクを構成する処理と、前記複数のキャッシュタグにおける各キャッシュタグにおいて、前方参照する第1のポインタと、後方参照する第2のポインタと、キャッシュデータ格納領域とを、連続したアドレスに配置する処理と、を実行するプログラムが提供される。
なお、本プログラムは、コンピュータが読み取り可能な記憶媒体に記録することができる。記憶媒体は、半導体メモリ、ハードディスク、磁気記録媒体、光記録媒体等の非トランジェント(non-transient)なものとすることができる。本発明は、コンピュータプログラム製品として具現することも可能である。
本発明の各視点によれば、不揮発メモリにおいて書き込み回数を低減することに貢献する記憶装置、制御装置、記憶装置の制御方法、及びプログラムが提供される。
一実施形態の概要を説明するための図である。 制御装置の内部構成の一例を示すブロック図である。 本実施形態に係るキャッシュタグの一例を示す図である。 本実施形態に係るキャッシュ記憶部の一例を示す図である。 比較例のキャッシュ記憶部の一例を示す図である。 本実施形態に係るキャッシュ記憶部の一例を示す図である。 比較例のキャッシュ記憶部の一例を示す図である。 本実施形態に係る制御装置の動作の一例を示すフローチャートである。 本実施形態に係る制御装置の動作の一例を示すフローチャートである。 本実施形態に係るキャッシュタグのリンクの一例を示す図である。 比較例のキャッシュタグのリンクの一例を示す図である。
初めに、図1を用いて一実施形態の概要について説明する。なお、この概要に付記した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、この概要の記載はなんらの限定を意図するものではない。
上述の通り、不揮発メモリにおいて書き込み回数を低減することが望まれる。
そこで、一例として、図1に示す記憶装置1000を提供する。記憶装置1000は、不揮発メモリである。そして、記憶装置1000は、複数のエントリ1001−1〜1001−M(Mは1以上の自然数)と、複数のキャッシュタグ1002−1〜1002−K(KはM以上の自然数)と、を備える。
複数のエントリ1001−1〜1001−Mにおける各エントリは、複数のキャッシュタグ1002−1〜1002−Kのうち、一のキャッシュタグを示すポインタを含み、当該キャッシュタグを示すポインタを用いて、キャッシュタグのリンクを構成する。
また、複数のキャッシュタグ1002−1〜1002−Kにおける各キャッシュタグは、前方参照する第1のポインタ1003−1〜1003−Kと、後方参照する第2のポインタ1004−1〜1004−Kと、キャッシュデータ格納領域1005−1〜1005−Kとを含む。なお、以下の説明では、第1のポインタ1003−1〜1003−Kを、第1のポインタ1003と呼ぶ。また、以下の説明では、第2のポインタ1004−1〜1004−Kを、第2のポインタ1004と呼ぶ。また、以下の説明では、キャッシュデータ格納領域1005−1〜1005−Kを、キャッシュデータ格納領域1005と呼ぶ。
そして、複数のキャッシュタグ1002−1〜1002−Kにおける各キャッシュタグは、第1のポインタ1003と、第2のポインタ1004と、キャッシュデータ格納領域1005とを、連続したアドレスに配置する。
記憶装置1000は、キャッシュデータ格納領域1005を備えることで、記憶装置1000の外部に、データを格納する場合より、書き込み回数を低減できる。また、記憶装置1000は、第1のポインタ1003と、第2のポインタ1004と、キャッシュデータ格納領域1005とを、連続したアドレスに配置することで、データへのアクセス効率を向上する。従って、記憶装置1000は、不揮発メモリにおいて書き込み回数を低減することに貢献する。
[第1の実施形態]
第1の実施形態について、図面を用いてより詳細に説明する。
図2は、制御装置100の内部構成の一例を示すブロック図である。制御装置100は、コマンド処理部101と、プロセッサ102と、ディスク制御部103と、第1の記憶装置(図2に示すキャッシュ記憶部104)とを含んで構成される。図2は、本実施形態に係る制御装置100に関係するモジュールを主に記載する。
図2に示すモジュールは、制御装置100に搭載されたコンピュータに、そのハードウェアを用いて、制御装置100に動作を実行させるコンピュータプログラムにより実現しても良い。
コマンド処理部101は、データの読み書きのリクエストを受け付ける。具体的には、コマンド処理部101は、ホストからのリード(読み出し)、又はライト(書き込み)のリクエストに対して、当該リクエストの内容を受信する。そして、コマンド処理部101は、受信したリクエストの内容を、プロセッサ102に送信する。以下、コマンド処理部101が受信したリクエストの内容を、受信コマンドと呼ぶ。
プロセッサ102は、プログラム制御により動作する。具体的には、プロセッサ102は、コマンド処理部101がリクエストを受け付けた場合、キャッシュ記憶部104にアクセスする。なお、以下の説明では、リード(読み出し)のリクエストを、リードリクエストと呼ぶ。また、以下の説明では、ライト(書き込み)のリクエストを、ライトリクエストと呼ぶ。プロセッサ102が読み出すデータを、リードデータと呼ぶ。また、以下の説明では、プロセッサ102が書き込むデータを、ライトデータと呼ぶ。
ディスク制御部103は、制御装置100の外部に配置された、第2の記憶装置(図2に示すストレージ装置10)にアクセスする。具体的には、ディスク制御部103は、プロセッサ102からの要求に応じて、ディスクインターフェイス105を通じで、ストレージ装置10にアクセスする。ストレージ装置10は、例えば、HDD(Hard Disk Drive)等の記録装置である。
以下、プロセッサ102について、より詳細に説明する。
プロセッサ102は、コマンド処理部101がリードリクエストを受け付けた場合、当該リクエストに対応する識別子に応じたデータが、キャッシュ記憶部104に格納されているか否か、キャッシュ記憶部104を検索する。そして、プロセッサ102、当該データがキャッシュ記憶部104に存在した場合、当該データをキャッシュ記憶部104から読み出す。リクエストに対応する識別子とは、受信コマンドで示されるアドレス、及び/又はファイル等を識別するための情報である。
ここで、受信コマンドがリードリクエストである場合について、詳細に説明する。
受信コマンドがリードリクエストであり、当該受信コマンドで示されるアドレス、及び/又はファイル等に対応する識別子が、キャッシュ記憶部104に存在する、とプロセッサ102が判断したとする。その場合、プロセッサ102は、キャッシュ記憶部104から、当該識別子に対応するデータを、リードデータとして読み出す。そして、プロセッサ102は、リードデータを、ホストインターフェイス106を通じて、ホストにリードデータを転送する。
一方、プロセッサ102は、コマンド処理部101がリードリクエストを受け付けた際に、当該リクエストに対応する識別子に応じたデータが、キャッシュ記憶部104に格納されていないと判断したとする。その場合、プロセッサ102は、ストレージ装置10から当該データを読み出し、当該識別子に対応するキャッシュデータ格納領域に書き込む。
具体的には、プロセッサ102は、ディスク制御部103に対して、ストレージ装置10にアクセスするように指示する。そして、ディスク制御部103は、ディスクインターフェイス105を通じて、ストレージ装置10から、受信コマンドに応じたデータを、リードデータとして読み出す。そして、ディスク制御部103は、ストレージ装置10から読み出したリードデータを、キャッシュ記憶部104に格納する。そして、プロセッサ102は、ホストインターフェイス106を通じて、ホストにリードデータを転送する。
次に、受信コマンドがライトリクエストである場合について、詳細に説明する。
プロセッサ102は、コマンド処理部101がライトリクエストを受け付けた場合、当該リクエストに対応する識別子が、キャッシュ記憶部104に格納されている場合、当該識別子に対応するキャッシュデータ格納領域に、ライトデータを書き込む。一方、プロセッサ102は、当該リクエストに対応する識別子が、キャッシュ記憶部104に格納されていない場合、キャッシュタグをキャッシュ記憶部104に追加し、当該追加されたキャッシュタグにライトデータを書き込む。
具体的には、受信コマンドがライトリクエストであり、当該受信コマンドで示されるアドレス、及び/又はファイル等に対応する識別子が、キャッシュ記憶部104に存在する、とプロセッサ102が判断したとする。その場合、プロセッサ102は、キャッシュ記憶部104にライトデータを上書きする。
一方、受信コマンドがライトリクエストであり、当該受信コマンドで示されるアドレス、及び/又はファイル等に対応する識別子が、キャッシュ記憶部104に存在しない、とプロセッサ102が判断したとする。その場合、プロセッサ102は、キャッシュ記憶部104に新たな領域を確保する。そして、プロセッサ102は、当該新たな領域に、ライトデータを格納する。
次に、キャッシュ記憶部104について詳細に説明する。
キャッシュ記憶部104は、不揮発メモリである。例えば、キャッシュ記憶部104は、SSD(Solid State Drive)であっても良い。そして、キャッシュ記憶部104は、エントリテーブルと、1又は2以上のキャッシュタグとを含んで構成される。エントリテーブルは、1又は2以上のエントリを含んで構成される。各エントリは、キャッシュタグへのポインタを有する。ここで、キャッシュタグへのポインタは、キャッシュタグのアドレスを示す。また、各エントリは、データのアドレスに対応する識別子を格納する領域を含む。
各キャッシュタグは、キャッシュタグのリンクにおいて前方参照する第1のポインタと、後方参照する第2のポインタと、キャッシュデータ格納領域とを含む。そして、各キャッシュタグは、キャッシュタグのリンクを構成する情報と、キャッシュデータ格納領域とを、連続したアドレスに配置する。
具体的には、各キャッシュタグは、当該キャッシュタグとは異なるキャッシュタグを示すポインタ、又はエントリを示すポインタを含む。その結果、キャッシュ記憶部104は、各エントリを起点とする、キャッシュタグのリンクを構成する。そして、各キャッシュタグは、双方向リンクの構造を有する。キャッシュタグが双方向リンクの構造を有することで、キャッシュ記憶部104は、キャッシュタグの取り出し、削除等の処理を容易に実現できる。
つまり、第1のポインタは、キャッシュタグのリンクにおいて、前方のキャッシュタグ、又はエントリを示すポインタである。また、第2のポインタは、キャッシュタグのリンクにおいて、後方のキャッシュタグを示すポインタである。
プロセッサ102は、受信コマンドが示すアドレス、又はファイル等の識別子に基づいて、当該識別子を格納するエントリを決定する。その際、例えば、プロセッサ102は、ハッシュ関数等を用いて、エントリを決定しても良い。
なお、キャッシュタグのリンクにおいて、最後のキャッシュタグは、第2のポインタに、所定の符号を格納することが好ましい。以下の説明では、最後のキャッシュタグを示す符号として、「NULL」を用いて説明する。ただし、これは、最後のキャッシュタグを示す符号を、「NULL」に限定する趣旨ではない。
ここで、図3を参照しながら、本実施形態に係るキャッシュタグについて詳細に説明する。
図3に示すキャッシュタグ251は、キャッシュデータ格納領域252と、第1のポインタ253と、第2のポインタ254とを含んで構成される。
上述の通り、本実施形態に係るキャッシュタグ251は、前方参照する第1のポインタ253と、後方参照する第2のポインタ254と、キャッシュ格納領域252とを含んで構成される。そして、本実施形態に係るキャッシュ記憶部104は、第1のポインタ253と、第2のポインタ254と、キャッシュデータ格納領域252とを、連続したアドレスに配置することが好ましい。その場合、前方参照する第1のポインタと、後方参照する第2のポインタと、キャッシュデータ格納領域と、が不連続なアドレスに配置される場合に比べ、本実施形態に係るキャッシュ記憶部104は、効率的にデータのアクセスを実現できる。
なお、以下の説明では、キャッシュデータ格納領域に格納される、キャッシュデータの内容に意味がない場合、キャッシュタグは、「空きキャッシュタグ」であると表現する。また、以下の説明では、内容に意味がないキャッシュデータが格納された、キャッシュデータ格納領域は、「空」であると表現する。
図4は、本実施形態に係るキャッシュ記憶部104の一例を示す図である。図4に示すキャッシュ記憶部104は、エントリテーブル201と、キャッシュデータ格納領域220〜223とを含んで構成される。そして、エントリテーブル201は、エントリ202−1〜202−N(Nは、1以上の自然数)を含む。
各エントリ202−1〜202−Nは、キャッシュタグへのポインタ203−1〜203−Nを有する。例えば、エントリ202−1は、キャッシュタグへのポインタ203−1を有する。そして、キャッシュタグへのポインタ203−1は、キャッシュタグ204を示すポインタである。キャッシュタグ204は、キャッシュデータ格納領域220と、第1のポインタ210と、第2のポインタ211とを含んで構成される。
キャッシュデータ格納領域220は、Data_01を格納する。また、第1のポインタ210は、エントリ202−1を示す。また、第2のポインタ211は「NULL」である。そのため、エントリ202−1を起点とするキャッシュタグのリンクにおいて、キャッシュタグ204は、最後のキャッシュタグである。
また、エントリ202−2は、キャッシュタグへのポインタ203−2を有する。そして、キャッシュタグへのポインタ203−2は、キャッシュタグ205を示すポインタである。キャッシュタグ205は、キャッシュデータ格納領域221と、第1のポインタ212と、第2のポインタ213とを含んで構成される。キャッシュデータ格納領域221は、Data_02を格納する。また、第1のポインタ212は、エントリ202−2を示す。また、第2のポインタ213は、キャッシュタグ206を示す。
キャッシュタグ206は、キャッシュデータ格納領域222と、第1のポインタ214と、第2のポインタ215とを含んで構成される。第1のポインタ214は、キャッシュタグ205を示す。また、第2のポインタ215は、「NULL」である。また、キャッシュデータ格納領域222は、「空」である。そのため、エントリ202−2を起点とするキャッシュタグのリンクにおいて、空きキャッシュタグであるキャッシュタグ206が、最後のキャッシュタグである。
また、エントリ202−Nは、キャッシュタグへのポインタ203−Nを有する。そして、キャッシュタグへのポインタ203−Nは、キャッシュタグ207を示すポインタである。キャッシュタグ207は、キャッシュデータ格納領域223と、第1のポインタ216と、第2のポインタ217とを含んで構成される。第1のポインタ216は、エントリ202−Nを示す。また、第2のポインタ217は、「NULL」である。また、キャッシュ格納領域223は、「空」である。このように、キャッシュタグのリンクは、空きキャッシュタグから構成されても良い。
ここで、比較例として、図5に示すキャッシュタグのリンクについて説明する。なお、図5の説明において、図4の説明と重複する内容は、適宜省略する。また、以下の説明において、キャッシュ記憶部104以外の構成は、本実施形態と、比較例とにおいて同一であるものとして説明する。
エントリテーブル301は、エントリ302−1〜302−N(Nは、1以上の自然数)を含んで構成される。エントリ302−1〜302−Nは、キャッシュタグへのポインタ303−1〜303−Nを含んで構成される。
図5に示す比較例のキャッシュタグ304〜307は、キャッシュデータ格納領域へのポインタ320〜323と、第1のポインタ310〜313と、第2のポインタ314〜317とを含んで構成される。
ここで、キャッシュデータ格納領域へのポインタとは、キャッシュデータが格納された領域へのポインタである。図5に示す比較例のキャッシュタグのリンクにおいては、キャッシュ記憶部104は、キャッシュデータにアクセス(リード、及び/又はライト)するためには、キャッシュデータ格納領域へのポインタを用いて、データ格納領域にアクセスする必要がある。さらに、図5に示す比較例のキャッシュタグ304〜307のアドレスと、キャッシュデータのアドレスとは、不連続となる。
一方、本実施形態に係るキャッシュタグは、キャッシュデータ格納領域を含んで構成される。そして、本実施形態に係るキャッシュタグにおいては、キャッシュデータ格納領域と、第1のポインタと、第2のポインタとを、連続したアドレスに配置する。従って、本実施形態に係るキャッシュタグは、図5に示す比較例のキャッシュタグのリンクに比べ、データの効率的なアクセスを実現できる。
次に、本実施形態に係る制御装置100の動作について説明する。なお、以下の説明において、キャッシュタグへのポインタ、第1のポインタ、第2のポインタ、キャッシュデータ格納領域へのポインタを、夫々、区別しない場合、単に、「ポインタ」とも呼ぶ。上述の通り、キャッシュ記憶部104以外の構成は、本実施形態と、比較例とにおいて同一であるものとして説明する。
まず、本実施形態に係るキャッシュ記憶部104の構成の一例を、図6に示す。図6に示すキャッシュタグは、第1のポインタと、第2のポインタと、キャッシュデータ格納領域とを含んで構成されるものとする。
図6に示すキャッシュ記憶部104は、エントリテーブル650を含んで構成される。エントリテーブル650は、エントリ600と、エントリ610とを含んで構成される。エントリ600のキャッシュタグへのポインタ601は、キャッシュタグ602を示す。また、エントリ610のキャッシュタグへのポインタ611は、エントリ612を示す。
キャッシュタグ602は、第1のポインタ603と、第2のポインタ604と、キャッシュデータ格納領域605とを含んで構成される。第1のポインタ603は、エントリ600を示す。そして。第2のポインタ604は、「NULL」であるとする。さらに、キャッシュデータ格納領域605は、Data_10を格納するとする。
キャッシュタグ612の第1のポインタ613は、エントリ610を示す。そして、キャッシュタグ612の第2のポインタ614は、キャッシュタグ616を示す。そして、
キャッシュタグ612のキャッシュデータ格納領域615は、「空」であるとする。
また、キャッシュタグ616の第1のポインタ617は、キャッシュタグ612を示す。そして、キャッシュタグ616の第2のポインタ618は、「NULL」であるとする。そして、キャッシュタグ616のキャッシュデータ格納領域619は、「空」であるとする。つまり、キャッシュタグ612、及びキャッシュタグ616は、空きキャッシュタグであるとする。
一方、比較例のキャッシュ記憶部70の構成の一例を、図7に示す。図7に示す各キャッシュタグは、第1のポインタと、第2のポインタと、キャッシュデータ格納領域へのポインタとを含んで構成されるものとする。
図7に示す比較例のキャッシュ記憶部70は、エントリテーブル750を含んで構成される。エントリテーブル750は、エントリ700と、エントリ710とを含んで構成される。エントリ700のキャッシュタグへのポインタ701は、キャッシュタグ702を示す。また、エントリ710のキャッシュタグへのポインタ711は、キャッシュタグ712を示す。
キャッシュタグ702は、第1のポインタ703と、第2のポインタ704と、キャッシュデータ格納領域へのポインタ705とを含んで構成される。第1のポインタ703は、エントリ700を示す。そして、第2のポインタ704は、「NULL」であるとする。さらに、キャッシュデータ格納領域へのポインタ705は、所定のデータのアドレスを示すとする。
キャッシュタグ712の第1のポインタ713は、エントリ710を示す。そして、キャッシュタグ712の第2のポインタ714は、キャッシュタグ715を示す。キャッシュタグ715の第1のポインタ716は、キャッシュタグ712を示す。そして、キャッシュタグ715の第2のポインタ717は、「NULL」であるとする。そして、キャッシュタグ712、715は、空きキャッシュタグであるとする。
上記の図6、及び図7に示す状態において、ホストからリードリクエストが発行された場合の動作について、説明する。
図8は、本実施形態に係る制御装置100のデータ読み出し動作の一例を示すフローチャートである。
ステップS1において、リードリクエストが発行されたか否かを、コマンド処理部101は判断する。コマンド処理部101がリードリクエストを受信した場合(ステップS1のYes分岐)には、プロセッサ102は、キャッシュ記憶部104の検索を開始する(ステップS2)。具体的には、プロセッサ102は、キャッシュ記憶部104のキャッシュディレクトリの検索を開始する。一方、リードリクエストが発行されていない場合(ステップS1のNo分岐)には、データ読み出し動作を終了する。
ステップS3において、リードリクエストで示されるアドレス、及び/又はファイルに対応する識別子が、キャッシュ記憶部104に存在するか否かを、プロセッサ102は判断する。当該識別子がキャッシュ記憶部104に存在する場合(ステップS3のYes分岐)には、プロセッサ102は、当該識別子に基づいて、エントリを特定する(ステップS4)。例えば、プロセッサ102は、当該識別子に基づいて、ハッシュ関数等を用いて、エントリを特定しても良い。そして、ステップS5に遷移する。一方、当該識別子がキャッシュ記憶部104に存在しない場合(ステップS3のNo分岐)には、ステップS8に遷移する。
ステップS5において、プロセッサ102は、特定されたエントリのポインタを辿り、キャッシュタグを特定する。
ここで、図6に示す本実施形態に係るキャッシュ記憶部104の場合に、ステップS4の処理において、プロセッサ102は、エントリ600を特定したとする。その場合、プロセッサ102は、エントリ600のポインタ601を辿り、キャッシュタグ602を特定する。
一方、図7に示す比較例のキャッシュ記憶部70の場合、ステップS4の処理において、プロセッサ102は、エントリ700を特定したとする。その場合、プロセッサ102は、エントリ700のポインタ701を辿り、キャッシュタグ702を特定する。
ステップS6において、特定されたキャッシュタグに登録されている識別子と、ホストから指定された識別子と、が一致するか否かを、プロセッサ102は判断する。特定されたキャッシュタグに登録されている識別子と、ホストから指定された識別子と、が一致する場合(ステップS6のYes分岐)には、当該キャッシュタグから、データをリードデータとして読み出す(ステップS10)。そして、ステップS11に遷移する。
ここで、図6に示す本実施形態に係るキャッシュ記憶部104の場合に、ステップS5の処理において、プロセッサ102が、キャッシュタグ602を特定したとする。その場合、キャッシュタグ602に登録されている識別子と、ホストから指定された識別子と、が一致するか否かを、プロセッサ102は判断する。
そして、キャッシュタグ602に登録されている識別子と、ホストから指定された識別子と、が一致した場合には、プロセッサ102は、キャッシュデータ格納領域605から、データをリードデータとして読み出す。
一方、図7に示す比較例のキャッシュ記憶部70の場合に、ステップS5の処理において、プロセッサ102がキャッシュタグ702を特定したとする。その場合、キャッシュタグ702に登録されている識別子と、ホストから指定された識別子と、が一致するか否かを、プロセッサ102は判断する。
そして、キャッシュタグ702に登録されている識別子と、ホストから指定された識別子と、が一致した場合には、プロセッサ102は、キャッシュデータ格納領域へのポインタ705が示すアドレスを参照する。そして、プロセッサ102は、キャッシュデータ格納領域へのポインタ705が示すアドレスのデータを、リードデータとして読み出す。
本実施形態に係るキャッシュ記憶部104は、本実施形態に係るキャッシュタグ602が、キャッシュデータ格納領域605を有するので、比較例のキャッシュ記憶部70より、効率的にデータにアクセスできる。
一方、特定されたキャッシュタグに登録されている識別子と、ホストから指定された識別子と、が一致しない場合(ステップS6のNo分岐)には、ステップS7に遷移する。
ステップS7において、プロセッサ102は、特定されたエントリのポイントからなる、リンクの最後に、空きキャッシュタグを追加する。そして、ステップS8に遷移する。空きキャッシュタグを追加する処理の詳細は、後述する。
そして、ステップS8において、ディスク制御部103は、ストレージ装置10にアクセスする。そして、ステップS9において、ディスク制御部103は、ホストから指定される識別子に基づいて、ストレージ装置から、データをリードデータとして読み出す。そして、ステップS11に遷移する。
ステップS11において、コマンド処理部101は、リードリクエストの発信元のホストに、リードデータを転送する。
次に、空きキャッシュタグを追加する処理について、詳細に説明する。
図9は、空きキャッシュタグを追加する処理の一例を示すフローチャートである。
ステップS101において、プロセッサ102は、空きキャッシュタグが示すエントリを特定する。
ステップS102において、プロセッサ102は、ステップS101において特定されたエントリから、ポインタがNULLになるまで、ポインタを辿る。
ステップS103において、プロセッサ102は、ポインタがNULLであるキャッシュタグを、最後の空きキャッシュタグであると判断する。そして、ステップS104に遷移する。
図6に示す本実施形態に係るキャッシュ記憶部104の場合には、空きキャッシュタグは、キャッシュタグ612、及びキャッシュタグ616である。そのため、ステップS101において、プロセッサ102は、空きキャッシュタグが示すエントリとして、エントリ610を特定する。そして、ステップS102において、エントリ610から、ポインタが「NULL」にまるまで、ポインタを辿る。ここで、ポインタが「NULL」であるキャッシュタグは、キャッシュタグ616である。そのため、プロセッサ102は、キャッシュタグ616を最後の空きキャッシュタグであると判断する。
または、制御装置100が、キャッシュ記憶部104とは異なる、第3の記憶装置61を備えるとする。その場合、第3の記憶装置61に、最後の空きキャッシュタグを示すポインタ621を格納しても良い。そして、プロセッサ102は、最後の空きキャッシュタグを示すポインタ621を参照して、最後の空きキャッシュタグを特定しても良い。例えば、第3の記憶装置61は、DRAMを用いて実現しても良い。
一方、図7に示す比較例キャッシュ記憶部70の場合には、空きキャッシュタグは、キャッシュタグ712、及びキャッシュタグ715である。そのため、ステップS101において、プロセッサ102は、空きキャッシュタグが示すエントリとして、エントリ710を特定する。そして、ステップS102において、エントリ710から、ポインタが「NULL」になるまで、ポインタを辿る。ここで、ポインタが「NULL」であるキャッシュタグは、キャッシュタグ715である。そのため、プロセッサ102は、キャッシュタグ715を最後の空きキャッシュタグであると判断する。
ここで、本実施形態に係るキャッシュ記憶部104の場合には、キャッシュタグが、キャッシュデータ格納領域を有する。そのため、プロセッサ102は、キャッシュデータ格納領域615、及び619を参照すれば、キャッシュタグ612、キャッシュタグ616が空きキャッシュタグであるか否かを、容易に判断できる。また、キャッシュタグがキャッシュデータ格納領域を有する場合、前方参照する第1のポインタと、後方参照する第2のポインタと、キャッシュデータ格納領域とを、連続したアドレスに配置することを、容易に実現できる。
一方、図7に示す比較例のキャッシュ記憶部70の場合には、プロセッサ102は、キャッシュデータ格納領域へのポインタが示すアドレスを参照しなくては、キャッシュタグ712、及びキャッシュタグ715が空きキャッシュタグであるか否かを判断できない。さらに、前方参照する第1のポインタと、後方参照する第2のポインタと、キャッシュデータ格納領域と、が不連続なアドレスに配置されるとする。その場合には、比較例のキャッシュ記憶部70は、本実施形態に係るキャッシュ記憶部104より、データのアクセス効率が低下する。
ステップS104において、プロセッサ102は、図8に示すステップS4において特定されたエントリを起点とする、キャッシュタグのリンクの最後に、ステップS103において特定された、最後の空きキャッシュタグを追加する。
図6に示す本実施形態に係るキャッシュ記憶部104の場合には、プロセッサ102は、エントリ600を起点とする、キャッシュタグのリンクの最後に、キャッシュタグ616を追加する。
ここで、本実施形態に係るキャッシュ記憶部104における、キャッシュタグのリンクの最後に、最後の空きキャッシュタグを追加する処理について、詳細に説明する。
まず、プロセッサ102は、最後の空きキャッシュタグである、キャッシュタグ616の第1のポインタ617が示す、キャッシュタグ612を特定する。そして、キャッシュタグ612の第2のポインタの内容を、「NULL」に変更する(本実施形態における1回目の書き込み処理)。
次に、プロセッサ102は、キャッシュタグ616の第1のポインタ617の内容を、キャッシュタグ602のアドレスに変更すると共に、キャッシュタグ616のキャッシュデータ格納領域619に、ストレージ装置10から読み出した内容を書き込む(本実施形態における2回目の書き込み処理)。なお、ここで、図6に示す通り、キャッシュタグ602は、図8に示すステップS5において特定された、キャッシュタグである。
本実施形態に係るキャッシュ記憶部104においては、前方参照する第1のポインタと、後方参照する第2のポインタと、キャッシュデータ格納領域とが、連続したアドレスに配置されるため、上記の2回目の書き込み処理の処理を実現できる。
次に、プロセッサ102は、キャッシュタグ602の第2のポインタ604の内容を、キャッシュタグ616のアドレスに変更する(本実施形態における3回目の書き込み処理)。
その結果、図10に示す通り、キャッシュタグ616を追加した、エントリ600を起点とする、キャッシュタグのリンクが構成される。図10に示す通り、キャッシュタグ602の第2のポインタ604は、キャッシュタグ616を示す。そして、キャッシュタグ616の第1のポインタ617は、キャッシュタグ602を示す。
一方、図7に示す比較例のキャッシュタグ70の場合には、プロセッサ102は、エントリ700を起点とする、キャッシュタグのリンクの最後に、キャッシュタグ715を追加する。
ここで、比較例のキャッシュ記憶部70における、キャッシュタグのリンクの最後に、最後の空きキャッシュタグを追加する処理について、詳細に説明する。
まず、プロセッサ102は、最後の空きキャッシュタグである、キャッシュタグ715の第1のポインタ716が示す、キャッシュタグ712を特定する。そして、キャッシュタグ712の第2のポインタ714の内容を、「NULL」に変更する(比較例における1回目の書き込み処理)。
次に、プロセッサ102は、キャッシュタグ715の第1のポインタ716の内容を、キャッシュタグ702のアドレスに変更する(比較例における2回目の書き込み処理)。
次に、プロセッサ102は、キャッシュタグ702の第2のポインタ704の内容を、キャッシュタグ715のアドレスに変更する(比較例における3回目の書き込み処理)。
次に、プロセッサ102は、ストレージ装置10から読み出したデータを、キャッシュタグ702のキャッシュデータ格納領域へのポインタ705を用いて、データ格納領域に書き込む(比較例における4回目の書き込み処理)。
その結果、図11に示す通り、キャッシュタグ715を追加した、エントリ700を起点とする、キャッシュタグのリンクが構成される。図11において、キャッシュタグ702の第2のポインタ704は、キャッシュタグ715を示す。そして、キャッシュタグ715の第1のポインタ716は、キャッシュタグ702を示す。
本実施形態における空きキャッシュタグの追加処理と、比較例における空きキャッシュタグの追加処理とを比較すると、本実施形態における書き込み回数は、比較例における書き込み回数より少ない。なぜなら、上述の通り、本実施形態の場合、プロセッサ102は、ポインタの内容の変更と、キャッシュデータ格納領域のデータの書き換えとを1回のライトで実行できるからである。
一方、比較例の場合、プロセッサ102は、ポインタの内容を変更するライトを実行後に、キャッシュデータ格納領域へのポインタを用いて、データ格納領域を特定する必要がある。そして、比較例の場合、プロセッサ102は、キャッシュデータ格納領域へのポインタを用いて、データ格納領域を特定後に、データを書き換える、ライトを実行する必要がある。そのため、本実施形態に係るキャッシュタグの場合、比較例のキャッシュタグより、効率的に、ストレージ装置10からデータを読み出すことができる。
なお、制御装置100が、ホストからライトリクエストを受信した場合についても、本実施形態に係るキャッシュ記憶部104は、比較例のキャッシュ記憶部70より効率的に、ストレージ装置10にアクセスできる。キャッシュタグのリンク、及びストレージ装置10へのアクセスについて上述の通りであるため、詳細な説明は省略する。
以上のように、本実施形態に係るキャッシュタグは、キャッシュデータ格納領域を含んで構成される。そのため、本実施形態に係るキャッシュタグにおいては、前方参照する第1のポインタと、後方参照する第2のポインタと、キャッシュデータ格納領域とが、連続したアドレスに配置される。その結果、本実施形態に係るキャッシュ記憶部104は、不揮発メモリにおいて書き込み回数を低減することに貢献する。
上述の実施形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限られない。
(付記1)上記第1の視点に係る記憶装置の通りである。
(付記2)前記各エントリは、データのアドレスに対応する識別子を格納する領域を、さらに含む、付記1に記載の記憶装置。
(付記3)上記第2の視点に係る制御装置の通りである。
(付記4)前記各エントリは、データのアドレスに対応する識別子を格納する領域を、さらに含む、付記3に記載の制御装置。
(付記5)前記プロセッサは、前記コマンド制御部が読み出しのリクエストを受け付けた場合、当該リクエストに対応する前記識別子に応じたデータが、前記第1の記憶装置に格納されているか否か、前記第1の記憶装置を検索し、当該データが前記第1の記憶装置に存在した場合、当該データを前記第1の記憶装置から読み出す、付記4に記載の制御装置。
(付記6)前記制御装置の外部に配置された、第2の記憶装置にアクセスする、ディスク制御部をさらに備え、前記プロセッサは、前記コマンド制御部が読み出しのリクエストを受け付けた際に、当該リクエストに対応する前記識別子に応じたデータが、前記第1の記憶装置に格納されていない場合、前記第2の記憶装置から当該データを読み出し、前記識別子に対応する前記キャッシュデータ格納領域に書き込む、付記5に記載の制御装置。
(付記7)前記プロセッサは、前記コマンド制御部が書き込みのリクエストを受け付けた場合、当該リクエストに対応する前記識別子が、前記第1の記憶装置に格納されている場合、前記識別子に対応する前記キャッシュデータ格納領域に、データを書き込み、当該リクエストに対応する前記識別子が、前記第1の記憶装置に格納されていない場合、キャッシュタグを前記第1の記憶装置に追加し、当該追加されたキャッシュタグにデータを書き込む、付記4乃至6のいずれか一に記載の制御装置。
(付記8)揮発メモリである第3の記憶装置をさらに備え、前記第3の記憶装置は、空きキャッシュタグのリンクにおける、最後のキャッシュタグを示すポインタを含み、前記プロセッサは、前記最後のキャッシュタグを示すポインタに基づいて、前記最後のキャッシュタグを特定する、付記3乃至6のいずれか一に記載の制御装置。
(付記9)上記第3の視点に係る記憶装置の制御方法の通りである。
(付記10)上記第4の視点に係るプログラムの通りである。
なお、上記の特許文献の開示を、本書に引用をもって繰り込むものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態の変更・調整が可能である。また、本発明の全開示の枠内において種々の開示要素(各請求項の各要素、各実施形態の各要素、各図面の各要素等を含む)の多様な組み合わせ、ないし、選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。
10 ストレージ装置
61 第3の記憶装置
70 比較例のキャッシュ記憶部
100 制御装置
101 コマンド処理部
102 プロセッサ
103 ディスク制御部
104 キャッシュ記憶部
105 ディスクインターフェイス
106 ホストインターフェイス
201、301、650、750 エントリテーブル
202−1〜202−N、302−1〜302−N、600、610、700、710、1001−1〜1001−M エントリ
203−1〜203−N、303−1〜303−N、601、611、701、711 キャッシュタグへのポインタ
204〜207、251、304〜307、602、612、616、702、712、715、1002−1〜1002−K キャッシュタグ
210、212、214、216、253、310〜313、603、613、617、703、713、716 第1のポインタ
211、213、215、217、254、314〜317、604、614、618、704、714、717 第2のポインタ
220〜223、252、605、615、619、1005−1〜1005−K キャッシュデータ格納領域
320〜323、705 キャッシュデータ格納領域へのポインタ
621 ポインタ
1000 記憶装置
1003−1〜1003−K 第1のポインタ
1004−1〜1004−K 第2のポインタ

Claims (8)

  1. 不揮発メモリの記憶装置であって、
    複数のエントリと、
    複数のキャッシュタグと、
    を備え、
    前記複数のエントリにおける各エントリは、前記複数のキャッシュタグのうち、一のキャッシュタグを示すポインタと、データのアドレスに対応する識別子を格納する領域とを含み、当該キャッシュタグを示すポインタを用いて、キャッシュタグのリンクを構成し、
    前記複数のキャッシュタグにおける各キャッシュタグは、前方参照する第1のポインタと、後方参照する第2のポインタと、キャッシュデータ格納領域とを含み、前記第1のポインタと、前記第2のポインタと、前記キャッシュデータ格納領域とを、連続したアドレスに配置する、記憶装置。
  2. 第1の記憶装置と、
    データの読み書きのリクエストを受け付けるコマンド制御部と、
    前記コマンド制御部が前記リクエストを受け付けた場合、前記第1の記憶装置にアクセスするプロセッサと、を備え、
    前記第1の記憶装置は、不揮発メモリであって、
    複数のエントリと、
    複数のキャッシュタグと、
    を備え、
    前記複数のエントリにおける各エントリは、前記複数のキャッシュタグのうち、一のキャッシュタグを示すポインタと、データのアドレスに対応する識別子を格納する領域とを含み、キャッシュタグのリンクを構成し、
    前記複数のキャッシュタグにおける各キャッシュタグは、前方参照する第1のポインタと、後方参照する第2のポインタと、キャッシュデータ格納領域とを含み、前記第1のポインタと、前記第2のポインタと、前記キャッシュデータ格納領域とを、連続したアドレスに配置する、制御装置。
  3. 前記プロセッサは、前記コマンド制御部が読み出しのリクエストを受け付けた場合、当該リクエストに対応する前記識別子に応じたデータが、前記第1の記憶装置に格納されているか否か、前記第1の記憶装置を検索し、当該データが前記第1の記憶装置に存在した場合、当該データを前記第1の記憶装置から読み出す、請求項に記載の制御装置。
  4. 前記制御装置の外部に配置された、第2の記憶装置にアクセスする、ディスク制御部をさらに備え、前記プロセッサは、前記コマンド制御部が読み出しのリクエストを受け付けた際に、当該リクエストに対応する前記識別子に応じたデータが、前記第1の記憶装置に格納されていない場合、前記第2の記憶装置から当該データを読み出し、前記識別子に対応する前記キャッシュデータ格納領域に書き込む、請求項に記載の制御装置。
  5. 前記プロセッサは、前記コマンド制御部が書き込みのリクエストを受け付けた場合、当該リクエストに対応する前記識別子が、前記第1の記憶装置に格納されている場合、前記識別子に対応する前記キャッシュデータ格納領域に、データを書き込み、当該リクエストに対応する前記識別子が、前記第1の記憶装置に格納されていない場合、キャッシュタグを前記第1の記憶装置に追加し、当該追加されたキャッシュタグにデータを書き込む、請求項乃至のいずれか一に記載の制御装置。
  6. 揮発メモリである第3の記憶装置をさらに備え、
    前記第3の記憶装置は、空きキャッシュタグのリンクにおける、最後のキャッシュタグを示すポインタを含み、
    前記プロセッサは、前記最後のキャッシュタグを示すポインタに基づいて、前記最後のキャッシュタグを特定する、請求項乃至のいずれか一に記載の制御装置。
  7. 不揮発メモリであって、複数のエントリと、複数のキャッシュタグと、を備え、前記複数のエントリにおける各エントリは、前記複数のキャッシュタグのうち、一のキャッシュタグを示すポインタと、データのアドレスに対応する識別子を格納する領域とを含む記憶装置の制御方法であって、
    前記複数のエントリにおける各エントリに対して、前記複数のキャッシュタグのうち、一のキャッシュタグを示すポインタを用いて、キャッシュタグのリンクを構成する工程と、
    前記複数のキャッシュタグにおける各キャッシュタグにおいて、前方参照する第1のポインタと、後方参照する第2のポインタと、キャッシュデータ格納領域とを、連続したアドレスに配置する工程と、
    を含む記憶装置の制御方法。
  8. 不揮発メモリであって、複数のエントリと、複数のキャッシュタグと、を備え、前記複数のエントリにおける各エントリは、前記複数のキャッシュタグのうち、一のキャッシュタグを示すポインタと、データのアドレスに対応する識別子を格納する領域とを含む記憶装置を制御するコンピュータに実行させるプログラムであって、
    前記複数のエントリにおける各エントリに対して、前記複数のキャッシュタグのうち、一のキャッシュタグを示すポインタを用いて、キャッシュタグのリンクを構成する処理と、
    前記複数のキャッシュタグにおける各キャッシュタグにおいて、前方参照する第1のポインタと、後方参照する第2のポインタと、キャッシュデータ格納領域とを、連続したアドレスに配置する処理と、
    を実行するプログラム。
JP2014136609A 2014-07-02 2014-07-02 記憶装置、制御装置、記憶装置の制御方法、及びプログラム Active JP6384151B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014136609A JP6384151B2 (ja) 2014-07-02 2014-07-02 記憶装置、制御装置、記憶装置の制御方法、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014136609A JP6384151B2 (ja) 2014-07-02 2014-07-02 記憶装置、制御装置、記憶装置の制御方法、及びプログラム

Publications (2)

Publication Number Publication Date
JP2016015012A JP2016015012A (ja) 2016-01-28
JP6384151B2 true JP6384151B2 (ja) 2018-09-05

Family

ID=55231149

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014136609A Active JP6384151B2 (ja) 2014-07-02 2014-07-02 記憶装置、制御装置、記憶装置の制御方法、及びプログラム

Country Status (1)

Country Link
JP (1) JP6384151B2 (ja)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5751990A (en) * 1994-04-26 1998-05-12 International Business Machines Corporation Abridged virtual address cache directory
JP2006164218A (ja) * 2004-11-11 2006-06-22 Nec Corp ストレージシステム及びそのキャッシュ制御方法
WO2008056593A1 (fr) * 2006-11-06 2008-05-15 Panasonic Corporation Dispositif d'enregistrement
JP2010152747A (ja) * 2008-12-25 2010-07-08 Nec Corp ストレージシステム、ストレージのキャッシュ制御方法、及びキャッシュ制御プログラム
JP5674613B2 (ja) * 2011-09-22 2015-02-25 株式会社東芝 制御システム、制御方法およびプログラム

Also Published As

Publication number Publication date
JP2016015012A (ja) 2016-01-28

Similar Documents

Publication Publication Date Title
CN108874301B (zh) 数据储存装置以及其操作方法
US9053019B2 (en) Non-volatile memory device, a data processing device using the same, and a swapping method used by the data processing and non-volatile memory devices
US9262500B2 (en) Memory system including key-value store
CN109085997A (zh) 用于非易失性存储器的存储器高效持续键值储存
US10628303B2 (en) Storage device that maintains a plurality of layers of address mapping
US20150169465A1 (en) Method and system for dynamic compression of address tables in a memory
US20150113230A1 (en) Directory storage method and query method, and node controller
JP6398102B2 (ja) メモリシステム
US20130067147A1 (en) Storage device, controller, and read command executing method
JP2010157129A (ja) 半導体記憶装置
US20160070648A1 (en) Data storage system and operation method thereof
US9934100B2 (en) Method of controlling memory swap operation and data processing system using same
US9858204B2 (en) Cache device, cache system, and cache method
US9720922B2 (en) Recording medium and method for file access
CN111026678A (zh) 基于固态硬盘的缓存设计方法、装置及计算机设备
JP6384151B2 (ja) 記憶装置、制御装置、記憶装置の制御方法、及びプログラム
US9501414B2 (en) Storage control device and storage control method for cache processing according to time zones
US10430287B2 (en) Computer
CN116738510A (zh) 有效地获得存储在地址空间中的信息的系统和方法
US11461225B2 (en) Storage device, control method of storage device, and storage medium
JP5992577B2 (ja) メモリ、データ処理方法、及びメモリシステム
US20090055574A1 (en) NAND Flash Memory Device And Related Method Thereof
JPWO2017082323A1 (ja) 分散処理システム、分散処理装置、分散処理方法およびプログラム
JP2009199384A (ja) データ処理装置
KR101318420B1 (ko) 메타데이터의 위치를 검색하기 위한 방법, 시스템 및 컴퓨터 판독 가능 기록 매체

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170602

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180214

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180220

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180420

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180710

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180723

R150 Certificate of patent or registration of utility model

Ref document number: 6384151

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150