JP6711121B2 - 情報処理装置、キャッシュメモリ制御方法、およびキャッシュメモリ制御プログラム - Google Patents

情報処理装置、キャッシュメモリ制御方法、およびキャッシュメモリ制御プログラム Download PDF

Info

Publication number
JP6711121B2
JP6711121B2 JP2016094628A JP2016094628A JP6711121B2 JP 6711121 B2 JP6711121 B2 JP 6711121B2 JP 2016094628 A JP2016094628 A JP 2016094628A JP 2016094628 A JP2016094628 A JP 2016094628A JP 6711121 B2 JP6711121 B2 JP 6711121B2
Authority
JP
Japan
Prior art keywords
entry information
data
list
deleted
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
JP2016094628A
Other languages
English (en)
Other versions
JP2017204068A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2016094628A priority Critical patent/JP6711121B2/ja
Priority to US15/485,661 priority patent/US10296466B2/en
Publication of JP2017204068A publication Critical patent/JP2017204068A/ja
Application granted granted Critical
Publication of JP6711121B2 publication Critical patent/JP6711121B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0891Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/28Using a specific disk cache architecture
    • G06F2212/283Plural cache memories
    • G06F2212/284Plural cache memories being distributed
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/312In storage controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

本発明は、情報処理装置、キャッシュメモリ制御方法、およびキャッシュメモリ制御プログラムに関する。
従来、記憶装置より高速にアクセス可能なキャッシュメモリを用いて、記憶装置へのアクセス性能を向上させる技術がある。また、記憶装置への書き込み要求を受け付けた場合、キャッシュメモリにデータを書き込んでおき記憶装置には書き込まず、CPU(Central Processing Unit)の空き時間等に、キャッシュメモリ上の更新されたデータを記憶装置に書き込む、いわゆるライトバックと呼ばれる動作がある。また、キャッシュメモリに新たなデータを追加できない場合、今後最も必要とされないデータを予測し、予測したデータを削除して、代わりに新たなデータを追加する、キャッシュ置換方式と呼ばれる技術がある。
関連する先行技術として、例えば、二次データストレージキャッシュの現在の状態のキャッシング効率に従ってヒートメトリック閾値を調整し、そのヒートメトリックが閾値を下回る、二次データストレージキャッシュに提供された候補データを拒否するものがある。また、ディスク上の連続する複数のブロックを1つのグループとし、キャッシュメモリ上でのみ更新されているブロックを含むグループがあるときは、そのグループ内の連続する複数のブロックを1回のアクセスによりディスク上に書き戻す技術がある。
特表2014−535106号公報 特開平05−303528号公報
しかしながら、従来技術によれば、キャッシュメモリ上の更新されたデータを、いつライトバックすればよいのか決定することが困難である。例えば、ライトバックを行う間隔を長くすると、キャッシュ置換方式によって最も必要とされないと予測された更新されたデータの代わりに、更新されていないデータが削除されていき、キャッシュメモリのヒット率が低下する可能性がある。
1つの側面では、本発明は、キャッシュメモリ上の更新されたデータをライトバックする適切なタイミングを決定することができる情報処理装置、キャッシュメモリ制御方法、およびキャッシュメモリ制御プログラムを提供することを目的とする。
本発明の一側面によれば、記憶装置が記憶する複数のデータのうちのいずれかのデータといずれかのデータの記憶装置上における位置を示す情報とを含むエントリ情報を有する第1のリストと、第1のリストから追い出されたエントリ情報に含まれた削除済みのデータの記憶装置上における位置を示す情報を含むエントリ情報を有する第2のリストとを記憶するキャッシュメモリの第1のリストにおける所定のキャッシュ置換方式による優先度に基づいて決定される削除対象のエントリ情報のデータが更新されている場合、優先度に従った順序における削除対象のエントリ情報からデータが更新されているエントリ情報が連続する数を計数し、削除対象のエントリ情報から数分のエントリ情報へのアクセス回数の第1の合計よりも優先度に従った順序における第2のリストに最も後に追加されたエントリ情報から数分のエントリ情報へのアクセス回数の第2の合計が多い場合、削除対象のエントリ情報のデータを記憶装置に書き出して削除対象のエントリ情報のデータをキャッシュメモリから削除する情報処理装置、キャッシュメモリ制御方法、およびキャッシュメモリ制御プログラムが提案される。
本発明の一態様によれば、キャッシュメモリ上の更新されたデータをライトバックする適切なタイミングを決定することができるという効果を奏する。
図1は、本実施の形態にかかる情報処理装置101の動作例を示す説明図である。 図2は、ARCの動作例を示す説明図である。 図3は、ディスクアレイ装置300のハードウェア構成例を示す説明図である。 図4は、CM311のハードウェア構成例を示す説明図である。 図5は、CM311の機能構成例を示す説明図である。 図6は、読み出し時の動作例を示す説明図である。 図7は、書き込み時の動作例を示す説明図である。 図8は、ディスク313への書き込みの動作例を示す説明図である。 図9は、読み出し処理手順の一例を示すフローチャートである。 図10は、Watermark調整部505の処理手順の一例を示すフローチャートである。 図11は、キャッシュデータ管理部503の処理手順の一例を示すフローチャートである。
以下に図面を参照して、開示の情報処理装置、キャッシュメモリ制御方法、およびキャッシュメモリ制御プログラムの実施の形態を詳細に説明する。
図1は、本実施の形態にかかる情報処理装置101の動作例を示す説明図である。情報処理装置101は、キャッシュメモリを制御するコンピュータである。情報処理装置101は、複数のデータを記憶する記憶装置102と、キャッシュメモリ103とにアクセス可能である。情報処理装置101は、例えば、ディスクアレイ装置、サーバ、PC(Personal Computer)、タブレット端末、携帯端末、携帯電話等である。キャッシュメモリ103は、記憶装置102よりアクセス性能が高い記憶装置である。キャッシュメモリ103は、記憶装置102のデータを一時的に記憶する。情報処理装置101内のCPUがキャッシュメモリを用いてデータにアクセスすることにより、記憶装置102とCPUとの性能差を埋めることができる。
また、キャッシュメモリは、CPUとRAM(Random Access Memory)との間に設置され、RAMの一部のデータを記憶するが、このような使用形態に限られない。例えば、RAMをキャッシュメモリとみなし、RAMは、RAMより低速な記憶装置のデータを一時的に記憶してもよい。RAMより低速な記憶装置としては、例えば、SSD(Solid State Drive)、HDD(Hard Disk Drive)、光ディスクドライブ、磁気テープを有するテープドライブ等である。
また、キャッシュメモリは、記憶装置をページと呼ばれる一定のサイズのデータに分割して管理を行う。そして、キャッシュメモリには、複数のエントリ情報があり、複数のエントリ情報の各エントリ情報は、複数のページのいずれかのページと、いずれかのページのメタデータとを記憶する。メタデータには、いずれかのページの記憶装置上における位置を示す情報が含まれる。いずれかのページの記憶装置上における位置を示す情報は、例えば、いずれかのページが格納されるLUN(Logical Unit Number)、LBA(Logical Block Addressing)といった情報である。
また、キャッシュメモリのエントリ情報が新たに追加できない場合、キャッシュ置換方式による優先度に基づいて、削除対象のエントリ情報を決定する。具体的には、キャッシュ置換方式は、今後最も必要とされないエントリ情報を予測し、予測したエントリ情報を、削除対象のエントリ情報として決定する方式である。キャッシュ置換方式としては、LRU(Least Recently Used)方式、LFU(Least Frequently Used)方式、ARC(Adaptive Replacement Cache)方式等がある。
また、キャッシュメモリの動作方式の一つとして、ライトバックと呼ばれる動作がある。ライトバックは、記憶装置への書き込み要求を受け付けた場合、キャッシュメモリにデータを書き込んでおき記憶装置には書き込まず、CPUの空き時間等に、キャッシュメモリ上の更新されたページを記憶装置に書き込む方法である。以下、記憶装置にまだ書き込んでいない、キャッシュメモリ上の更新されたページを、「Dirtyページ」と呼称する。これに対し、キャッシュメモリ上のDirtyページ以外のページを、「Cleanページ」と呼称する。データの整合性を保つため、Dirtyページを削除する場合には、ライトバックを行ってからDirtyページを削除する。
ライトバックを採用することにより、キャッシュメモリが記憶装置よりも高速に記憶することができるという特性を活かすことができ、書き込み性能を高速化することができる。
しかしながら、ライトバックを採用すると、キャッシュメモリ上のDirtyページを、いつライトバックすればよいのか決定することが困難である。Dirtyページはライトバックしないと削除することができないため、キャッシュ置換方式によってDirtyページが最も必要とされないと予測された場合、そのDirtyページよりも必要とされると予測されたCleanページが削除されることになる。従って、例えば、ライトバックを行う間隔を長くすると、最も必要とされないと予測されたDirtyページの代わりにCleanページが削除されていき、キャッシュメモリのヒット率が低下する可能性がある。一方で、ライトバックを行う間隔を短くすると、ライトバックで得られる高速化の効果が低減することになる。具体的には、キャッシュメモリ上で上書きできれば、記憶装置への書き込み量を減らすことができるが、ライトバックを行う間隔を短くすると、キャッシュメモリ上で上書きできる機会を減らすことになる。また、記憶装置がSSDである場合、SSDには書き込み可能な最大回数がある。従って、頻繁にライトバックが行われると、SSDの寿命が短くなるため、ライトバックの回数を低減することが好ましい。
そこで、本実施の形態では、ARCで採用されているゴースト(Ghost)リストを活用する。具体的には、ARCでは、データとメタデータとを有するエントリ情報を有する通常のリストと、通常のリストにかつては入っていたが、データが削除され、削除済みデータのメタデータだけを含むエントリ情報を有するゴーストリストとを用いる。ARCの動作例については、図2で説明する。
本実施の形態では、通常のリストの本来の削除対象からDirtyページが連続する数分のエントリ情報よりも、ゴーストリストの先頭から前述の数分のエントリ情報が多くアクセスされていれば、本来の削除対象のページをライトバックする方法について説明する。以下の説明では、ARCを採用しているものとする。そして、採用するキャッシュ置換方式としてはどのようなものでもよいが、所定のキャッシュ置換方式としてLRUを採用し、削除対象は、LRUの優先度によって決められるものとする。また、通常のリストと、ゴーストリストとのアクセスの比較は、読み出しの回数で比較するものとする。
図1を用いて、情報処理装置101の動作例について説明する。キャッシュメモリ103は、通常のリストとなる第1のリストとしてリストT1と、ゴーストリストとなる第2のリストとしてリストB1とを記憶する。さらに、図1の例では、ARCを採用しているため、キャッシュメモリ103は、リストT2、B2を記憶する。図1、図2の例では、通常のリストを実線で示し、ゴーストリストを破線で示す。また、図1、図2の例では、リストT1、B1内のエントリ情報は、MRU(Most Recently Used)からLRUの順に並んでいるものとする。
リストT1、B1は、1回もヒットしていないエントリ情報を有する。また、リストT2、B2は、1回以上ヒットしたエントリ情報を有する。リストT1、B1に対して本実施の形態を実施することもできるし、リストT2、B2に対して本実施の形態を実施することもできるし、リストT1、B1と、リストT2、B2との両方に本実施の形態を実施することもできる。図1の例では、リストT1、B1を用いて説明する。
リストT1は、データとメタデータとを含むエントリ情報111_1〜Mを有する。また、リストB1は、メタデータを含むエントリ情報112_1〜Lを有する。また、エントリ情報111_1〜N、Mは、Dirtyページを有する。図1の例では、Dirtyページを有するエントリ情報111には、網掛けを付与する。
また、リストT1、B1は、MRUからLRUの順に並んでいるため、リストT1のMRUは、エントリ情報111_Mとなり、リストT1のLRUは、エントリ情報111_1となる。同様に、リストB1のMRUは、エントリ情報112_1となり、リストB1のLRUは、エントリ情報112_Lとなる。エントリ情報112_1は、エントリ情報112_1〜Lの中で最も後にリストB1に追加されたエントリ情報である。
情報処理装置101は、図1の(1)で示すように、リストT1の削除対象となるエントリ情報111_1がDirtyページである場合、LRUに従った順序におけるエントリ情報111_1からDirtyページが連続する数を計数する。図1の例では、Dirtyページが、エントリ情報111_1〜Nまで連続するため、情報処理装置101は、Nと計数する。
ここで、エントリ情報111_1〜Nは、本来ならばリストB1にあるべきものであるが、Dirtyページを有するため、リストT1に留まっている。そして、エントリ情報111_1〜Nと同数となるエントリ情報112_1〜Nは、本来ならばリストT1にあるべきものであるが、エントリ情報111_1〜NがリストT1に留まったため、代わりにリストT1を追い出されたものとなる。なお、エントリ情報111_N+1〜Mと、エントリ情報112_N+1〜Lとは、ARCの想定通りのリストに含まれている。
次に、情報処理装置101は、図1の(2)で示すように、第1の合計として、エントリ情報111_1からN分のエントリ情報への読み出し回数の合計と、第2の合計として、エントリ情報112_1からN分のエントリ情報への読み出し回数の合計とを比較する。例えば、情報処理装置101は、エントリ情報111_1〜M、112_1〜Lのそれぞれの読み出し回数をキャッシュメモリ103に記憶し、それぞれの読み出し回数から、第1の合計や第2の合計を算出してもよい。または、情報処理装置101は、第1の合計と第2の合計とをキャッシュメモリ103に記憶し、エントリ情報111_1〜Nに読み出した際に第1の合計を1増加させ、エントリ情報112_1〜Nに読み出した際に第2の合計を1増加させてもよい。
第1の合計が第2の合計以上である場合には、実はReadヒットが増えているケースであるため、ライトバックをすべきタイミングでなく、このままの状態とする。一方で、第1の合計よりも第2の合計が多い場合には、実はReadヒットが減っているケースであるため、Readヒット率を向上させるべく、Dirtyページをライトバックすべきタイミングとなる。
図1の例では、第1の合計よりも第2の合計が多い場合であるとする。この場合、情報処理装置101は、図1の(3)で示すように、エントリ情報111_1のDirtyページをライトバックする。そして、情報処理装置101は、図1の(4)で示すように、エントリ情報111_1のページをキャッシュメモリ103から削除する。エントリ情報111_1のページを削除することにより、エントリ情報111_1は、リストB1に追加されることになる。Dirtyページが減ることにより、Readヒット率が改善することになる。
また、Dirtyページの書き込みを、Watermarkモデルで管理しているのであれば、第1の合計よりも第2の合計が多い場合に、情報処理装置101は、Watermark値を変動し、Dirtyページの書き込みが行われるようにしてもよい。Watermarkモデルについては、図5で説明する。
以上により、情報処理装置101は、Readヒット率を向上できるライトバックの適切なタイミングが判る。次に、ARCの動作例について、図2を用いて説明する。
図2は、ARCの動作例を示す説明図である。ARCは、ゴーストリストを利用することにより、エントリを含むリストのサイズを調整し、ヒット率を最大化する方法である。また、ARCは、ストレージ製品でよく使用される。
ARCでは、図2に示すように、4つのLRUリストを管理する。1つ目のリストT1には、データと、メタデータとを記憶しており、一度アクセスされたエントリ情報が格納される。2つ目のリストB1には、リストT1から追い出されたエントリ情報であって、メタデータを記憶するエントリ情報が格納される。3つ目のリストT2には、リストT1にあるデータがヒットしたエントリ情報が格納される。リストT2に格納されるエントリ情報は、データと、メタデータとを記憶する。4つ目のリストB2には、リストT2から追い出されたエントリ情報であって、メタデータを記憶するエントリ情報が格納される。
以上により、リストT1、B1は、1回もヒットしていないデータのエントリ情報を有する。また、リストT2、B2は、1回以上ヒットしたデータのエントリ情報を有する。また、リストT1にあるエントリ情報が1回ヒットした場合、ヒットしたエントリ情報は、リストT2に移動する。また、リストB1のエントリ情報がヒットした場合には、リストT1のサイズを大きくする。一方で、リストB2のエントリ情報がヒットした場合には、リストT2のサイズを大きくする。
図2の例では、リストT1、B1には、エントリ情報1〜3が格納されており、リストT2、B2には、エントリ情報4〜6が格納されている。そして、エントリ情報1〜3のうち、エントリ情報3がMRUとなり、エントリ情報1がLRUとなる。また、エントリ情報1には、メタデータだけが格納されており、エントリ情報2、3は、データとメタデータとが格納される。また、エントリ情報4〜6のうち、エントリ情報6がMRUとなり、エントリ情報4がLRUとなる。また、エントリ情報4、5には、メタデータだけが格納されており、エントリ情報6は、データとメタデータとが格納される。
次に、情報処理装置101を、ディスクアレイ装置に適用した例を、図3を用いて説明する。
(ディスクアレイ装置300のハードウェア構成例)
図3は、ディスクアレイ装置300のハードウェア構成例を示す説明図である。ディスクアレイ装置300は、CE(Controller Enclosure)301と、DE(Drive Enclosure)302とを含む。また、ディスクアレイ装置300は、ホスト装置331に接続する。ホスト装置331は、例えば、サーバである。
そして、CE301は、CM(Controller Module)311と、CPSU(CE Power Supply Unit)312と、ディスク313とを有する。また、DE302は、IOM(I/O(Input/Output) Module)321と、DPSU(DE Power Supply Unit)322と、ディスク323とを含む。IOM321は、EXP(SAS(Serial Attached SCSI) Expander)324を含む。
CE301は、CM311〜ディスク313を含む筐体である。CM311は、ディスクアレイ装置300を制御する装置である。また、CM311は、CM間通信を行う。また、CM311は、ホスト装置331と接続する。CM311の内部のハードウェア構成は、図5で説明する。CPSU312は、CE301内部の装置に電源を供給するユニットである。ディスク313は、CM311が使用する記憶装置である。例えば、ディスク313は、SSDやHDDを採用することができる。
DE302は、IOM321〜ディスク323を含む筐体である。IOM321は、CM311とドライブ間とを制御するユニットである。DPSU322は、DE302内部の装置に電源を供給するユニットである。EXP324は、SAS接続用のexpanderチップである。図3に示すEXP324は、ディスク323のそれぞれと接続する。ディスク323は、CM311が使用する記憶装置である。例えば、ディスク323は、SSDやHDDを採用することができる。
図4は、CM311のハードウェア構成例を示す説明図である。CM311は、CPU401と、メモリ402と、不揮発性メモリ403と、IOC(I/O Controller)404と、CA(Channel Adapter)405と、EXP406と、SCU(System Capacitor Unit)407とを含む。
ここで、CM311が、図1に示した情報処理装置101に相当する。また、メモリ402が、図1で示したキャッシュメモリ103に相当する。また、ディスク313、323が、図1に示した記憶装置102に相当する。以下では、説明の簡略化のため、メモリ402が一時的に記憶するデータは、ディスク313のデータであるとする。
CPU401は、CM311の全体の制御を司る演算処理装置である。また、CPU401は、他のCM311のCPU401と接続する。メモリ402は、CPU401のワークエリアとして使用される揮発性メモリである。例えば、メモリ402は、DRAM(Dynamic Random Access Memory)等を採用することができる。不揮発性メモリ403は、本実施の形態におけるキャッシュメモリ制御プログラムを記憶する不揮発性メモリである。不揮発性メモリ403の記憶媒体としては、例えば、NORフラッシュメモリ、NANDフラッシュメモリを採用することができる。
IOC404は、CPU401からのI/Oを制御する。図4の例では、IOC404は、EXP406や、他のCM311のEXP406と接続し、CPU401からのディスク313、323へのI/Oを制御する。CA405は、ホスト装置331と通信する通信インターフェースである。EXP406は、SAS接続用のexpanderチップである。図4に示すEXP406は、ディスク313のそれぞれと、EXP324と接続する。SCU407は、停電時に、メモリ402のデータを、不揮発性メモリ403にバックアップするための電源を供給するユニットである。
(CM311の機能構成例)
図5は、CM311の機能構成例を示す説明図である。情報処理装置101は、制御部500を有する。制御部500は、I/O受け付け部501と、読み出し/書き込み判定部502と、キャッシュデータ管理部503と、読み出し監視部504と、Watermark調整部505とを含む。制御部500は、記憶装置に記憶されたプログラムをCPU401が実行することにより、各部の機能を実現する。記憶装置とは、具体的には、例えば、図4に示したメモリ402、不揮発性メモリ403や、図3に示したディスク313、323などである。また、各部の処理結果は、メモリ402、CPU401のレジスタ等に格納される。
I/O受け付け部501は、ホスト装置331からのアクセス要求を受け付ける。読み出し/書き込み判定部502は、I/O受け付け部501が受け付けたアクセス要求が、読み出し要求なのか書き込み要求なのかを判定する。
キャッシュデータ管理部503は、リストT1、B1、T2、B2を管理する。読み出し監視部504は、本来ならばリストT1、T2にあるべきページへのReadミスと、本来ならばリストB1、B2にあるべきDirtyページへのReadヒットとを監視する。Watermark調整部505は、読み出し監視部504からの情報をもとに、Watermark値を変更する。
より具体的なキャッシュデータ管理部503〜Watermark調整部505の機能について説明する。ここで、キャッシュデータ管理部503〜Watermark調整部505が行うリストT1、B1に対しての処理と、リストT2、B2に対しての処理とは同一であるため、説明の簡略化のため、リストT1、B1に対しての処理を用いて説明する。
読み出し監視部504は、リストT1のLRUエントリ情報がDirtyページを有する場合、LRUエントリ情報からDirtyページを有するエントリ情報が連続する数を計数する。これにより、本来ならばリストB1、B2にあるべきDirtyページを特定することができる。
そして、読み出し監視部504は、本来ならばリストB1、B2にあるべきDirtyページへのReadヒットの回数の第1の合計と、本来ならばリストT1、T2にあるべきページへのReadミスの回数の第2の合計とを比較する。ここで、ReadヒットやReadミスの回数を計数する期間は、どのような長さでもよく、例えば、ディスクアレイ装置300の管理者によって決められた期間である。読み出し監視部504は、第1の合計と第2の合計とを、メモリ402に記憶する。または、リストT1、B1の各エントリ情報が、各エントリ情報の読み出し回数を記憶していてもよい。
そして、第1の合計よりも第2の合計が多い場合、キャッシュデータ管理部503は、リストT1のLRUエントリ情報のDirtyページをライトバックし、リストT1のLRUエントリ情報のDirtyページを削除する。また、読み出し監視部504は、第1の合計と第2の合計とを管理するためのカウンタをメモリ402に記憶していてもよい。例えば、読み出し監視部504は、本来ならばリストB1、B2にあるべきDirtyページへのReadヒットがあればカウンタをデクリメントし、本来ならばリストT1、T2にあるべきページへのReadミスがあればカウンタをインクリメントする。そして、カウンタの正負により、キャッシュデータ管理部503は、第1の合計と第2の合計との比較結果を判断する。
また、Watermark調整部505が、閾値となるWatermark値を変更し、キャッシュデータ管理部503は、変更したWatermark値に基づいて、リストT1のLRUエントリ情報のDirtyページをライトバックしてもよい。ここで、Watermarkモデルについて説明する。
Watermarkモデルでは、Low Watermark値と、High Watermark値という2つのパラメータを使用する。そして、Low Watermark値≦High Watermark値という関係を有する。Watermarkモデルでのライトバックを行うタイミングは、リストT1内のDirtyページの割合と、Low Watermark値、High Watermark値との関係により、以下の3つのうちのいずれかに分類される。
1つ目の場合として、リストT1内のDirtyページの割合<Low Watermark値となる場合、Watermarkモデルでは、何も行わない。場合によっては、idle時にライトバックを行ってもよい。
2つ目の場合として、Low Watermark値≦リストT1内のDirtyページの割合≦High Watermark値となる場合、Watermarkモデルでは、処理を行うCPU等の判断に応じて、ライトバックを行ってもよいし行わなくてもよい。
3つ目の場合として、High Watermark値<リストT1内のDirtyページの割合となる場合、Watermarkモデルでは、ライトバックを行う。
本実施の形態では、説明の簡略化のため、Low Watermark値=High Watermark値とし、単純に、「Watermark値」と呼称する。従って、Watermark値は、リストT1内のDirtyページの割合と比較される閾値であって、閾値の方が小さければリストT1内のLRUエントリのDirtyページをライトバックして削除する閾値となる。また、Watermark値は、ページを有するエントリ情報を有するリストと、そのリストのページが削除されたエントリ情報を有するゴーストリストとの組ごとに存在する。従って、本実施の形態では、リストT1、B1との組に対応するWatermark値と、リストT2、B2との組に対応するWatermark値とが存在する。また、読み出し監視部504内のカウンタも、リストT1、B1との組に対応するものと、リストT2、B2との組に対応するものとが存在する。
Watermark調整部505は、第1の合計よりも第2の合計が多い場合、Watermark値を、現在の値より小さく設定する。また、Watermark調整部505は、第1の合計が第2の合計よりも多い場合、Watermark値を、現在の値より大きく設定する。Watermark値を小さくすると、Dirtyページのライトバックがされやすくなり、Watermark値を大きくすると、Dirtyページのライトバックがされにくくなる。
図6は、読み出し時の動作例を示す説明図である。ホスト装置331から読み出し要求が発行された場合、I/O受け付け部501、読み出し/書き込み判定部502、キャッシュデータ管理部503は、読み出し要求を処理して、ホスト装置331に、読み出したデータを送信する。また、読み出し監視部504は、読み出しの結果を監視する。
図7は、書き込み時の動作例を示す説明図である。ホスト装置331から書き込み要求が発行された場合、I/O受け付け部501、読み出し/書き込み判定部502、キャッシュデータ管理部503は、書き込み要求を処理する。このとき、キャッシュデータ管理部503は、データを、メモリ402といったキャッシュに書き込んで、ホスト装置331に書き込み完了通知を行う。キャッシュデータ管理部503は、ディスク313への書き込みを後で行う。
図8は、ディスク313への書き込みの動作例を示す説明図である。ディスク313への書き込み時に、Watermark調整部505は、Watermark値に基づいて、デステージ(destage)を決定する。ここで、デステージとは、キャッシュメモリとして使用されるメモリ402の内容を、ディスク313に書き込むことである。
次に、CM311が実行する処理を示すフローチャートを、図9〜図11を用いて説明する。ここで、本実施の形態におけるキャッシュメモリ制御方法は、リストT1、B1の組に対して行うこともできるし、リストT2、B2の組に対して行うこともできるし、リストT1、B1の組、リストT2、B2の組の両方に対して行うこともできる。図9〜図11では、本実施の形態にキャッシュメモリ制御方法を、リストT1、B1の組に対して行う例を用いて説明する。
図9は、読み出し処理手順の一例を示すフローチャートである。CM311は、ホスト装置からの読み出し要求を受け付ける(ステップS901)。次に、CM311は、リストT1におけるLRU側から数えたDirtyの連続数Nを計数する(ステップS902)。そして、CM311は、Readヒットしたか否かを判断する(ステップS903)。ここで、Readヒットとなる場合とは、読み出し要求の読み出し先のアドレスが、リストT1のいずれかのエントリ情報のアドレスに一致する場合である。以下、リストT1内のアドレスが一致したエントリ情報を、「Readヒットしたエントリ情報」と呼ぶ。
Readヒットした場合(ステップS903:Yes)、CM311は、続けて、Readヒットしたエントリ情報が、LRUからみてN以内か否かを判断する(ステップS904)。Readヒットしたエントリ情報がLRUからみてN以内である場合(ステップS904:Yes)、CM311は、読み出し監視部504内のカウンタをデクリメントする(ステップS905)。
ステップS905の処理終了後、または、Readヒットしたエントリ情報がLRUからみてN以内でない場合(ステップS904:No)、CM311は、通常のReadヒット処理を実行する(ステップS906)。通常のReadヒット処理としては、例えば、CM311は、リストT1内のReadヒットしたエントリ情報のページを読み出して、ホスト装置331に送信する。また、ARCの処理に従って、CM311は、リストT1内のReadヒットしたエントリ情報を、リストT2に移動させる。
一方、読み出し要求がReadヒットしていない場合(ステップS903:No)、CM311は、Ghostヒットしたか否かを判断する(ステップS907)。ここで、Ghostヒットとなる場合とは、読み出し要求の読み出し先のアドレスが、リストB1のいずれかのエントリ情報のアドレスに一致する場合である。リストB1内のアドレスが一致したエントリ情報を、「Ghostヒットしたエントリ情報」と呼ぶ。
Ghostヒットした場合(ステップS907:Yes)、CM311は、続けて、Ghostヒットしたエントリ情報が、GhostのMRUからみてN以内か否かを判断する(ステップS908)。Ghostヒットしたエントリ情報がGhostのMRUからみてN以内である場合(ステップS908:Yes)、CM311は、読み出し監視部504内のカウンタをインクリメントする(ステップS909)。
ステップS909の処理終了後、または、Ghostヒットしていない場合(ステップS907:No)、または、Ghostヒットしたエントリ情報がGhostのMRUからみてN以内でない場合(ステップS908:No)、CM311は、通常のreadミス処理を実行する(ステップS910)。通常のreadミス処理として、CM311は、ディスク313からデータを読み出して、ホスト装置331に送信する。また、ARCの処理に従って、CM311は、削除対象となったエントリ情報を削除し、読み出したデータをリストT1に追加する。
ステップS906、または、ステップS910の処理終了後、CM311は、読み出し処理を終了する。
図10は、Watermark調整部505の処理手順の一例を示すフローチャートである。Watermark調整部505は、読み出し監視部のカウンタが0以上か否かを判断する(ステップS1001)。読み出し監視部のカウンタが0以上である場合(ステップS1001:Yes)、Watermark調整部505は、Watermark値を、現在の値より小さく設定する(ステップS1002)。
一方、読み出し監視部のカウンタが0未満である場合(ステップS1001:No)、Watermark調整部505は、Watermark値を、現在の値より大きく設定する(ステップS1003)。
ステップS1002、または、ステップS1003の処理終了後、Watermark調整部505は、一定時間後にWatermark調整部505を再起動するように設定する(ステップS1004)。ステップS1004の処理終了後、Watermark調整部505は、一連の処理を終了する。
図11は、キャッシュデータ管理部503の処理手順の一例を示すフローチャートである。図11で示す一連の処理は、図10で示したステップS1002、S1003の処理終了後に行ってもよいし、定期的に行ってもよい。
キャッシュデータ管理部503は、Watarmark値がリストT1におけるDirtyページの割合以下かを判断する(ステップS1101)。Watarmark値がDirtyページの割合以下である場合(ステップS1101:Yes)、キャッシュデータ管理部503は、Dirtyページをディスク313に書き込む(ステップS1102)。具体的には、キャッシュデータ管理部503は、リストT1のLRUとなるエントリのDirtyページを、ディスク313に書き込む。また、書き込むDirtyページの数は、1つでもよいし、Watarmark値がDirtyページの割合以下となるまでの数でもよい。書き込むDirtyページの数が複数である場合、キャッシュデータ管理部503は、リストT1のLRUの方から順に、Dirtyページをディスク313に書き込む。
次に、キャッシュデータ管理部503は、書き込んだDirtyページを削除する(ステップS1103)。Dirtyページを削除したエントリ情報は、メタデータだけとなるため、リストB1に移動することになる。ステップS1103の処理終了後、または、Watarmark値がDirtyページの割合より大きい場合(ステップS1101:No)、キャッシュデータ管理部503は、一連の処理を終了する。
以上説明したように、CM311は、リストT1のLRUからDirtyページが連続する数分のエントリ情報よりも、リストB1の先頭から前述する数分のエントリ情報への読み出しが多ければ、リストT1のLRUのDirtyページをライトバックし削除する。これにより、CM311は、Readヒット率を向上できるライトバックの適切なタイミングが判る。また、上述した実施の形態では、リストT1、B1における読み出しの回数を比較していたが、書き込みの回数を比較してもよいし、読み出しの回数と書き込みの回数とを合わせたアクセス回数を比較してもよい。例えば、リストT1、B1の各エントリ情報が、各エントリ情報自身のアクセス回数を記憶していてもよい。
また、CM311は、Watermark値を調整することにより、Dirtyページのライトバックを調整してもよい。これにより、本実施の形態は、Watermarkモデルを採用している装置に対しても、容易に採用することができる。
また、本実施の形態では、通常のリストとなる第1のリストは、ディスク313のデータのうちの1回のアクセスがあったデータと、そのメタデータを有するエントリ情報としてもよい。また、第1のリストは、ディスク313のデータのうちの2回以上のアクセスがあったデータと、そのメタデータを有するエントリ情報としてもよい。これにより、本実施の形態は、ARCを採用する装置に対しても、容易に採用することができる。
また、本実施の形態は、ARCを採用していない、通常のリストだけしか有さない装置に対しても適用することができる。ここで、通常のリストは、所定のキャッシュ置換方式として、どのようなキャッシュ置換方式によるリストでもよく、例えば、LRUによるリストでもよいし、LFUによるリストでもよい。そして、通常のリストに対応するゴーストリストを用意することにより、ライトバックの適切なタイミングが判るようにすることができる。
なお、本実施の形態で説明したキャッシュメモリ制御方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本キャッシュメモリ制御プログラムは、ハードディスク、フレキシブルディスク、CD−ROM(Compact Disc−Read Only Memory)、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本キャッシュメモリ制御プログラムは、インターネット等のネットワークを介して配布してもよい。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)複数のデータを記憶する記憶装置と、
前記複数のデータのうちのいずれかのデータと前記いずれかのデータの前記記憶装置上における位置を示す情報とを含むエントリ情報を有する第1のリストと、前記第1のリストから追い出されたエントリ情報に含まれた削除済みのデータの前記記憶装置上における位置を示す情報を含むエントリ情報を有する第2のリストとを記憶するキャッシュメモリと、
前記第1のリストにおける所定のキャッシュ置換方式による優先度に基づいて決定される削除対象のエントリ情報のデータが更新されている場合、前記優先度に従った順序における前記削除対象のエントリ情報からデータが更新されているエントリ情報が連続する数を計数し、前記削除対象のエントリ情報から前記数分のエントリ情報へのアクセス回数の第1の合計よりも前記優先度に従った順序における前記第2のリストに最も後に追加されたエントリ情報から前記数分のエントリ情報へのアクセス回数の第2の合計が多い場合、前記削除対象のエントリ情報のデータを前記記憶装置に書き出して前記削除対象のエントリ情報のデータを前記キャッシュメモリから削除する制御部と、
を有することを特徴とする情報処理装置。
(付記2)前記制御部は、
前記第1の合計よりも前記第2の合計が多い場合、前記第1のリストに含まれるデータが更新されているエントリ情報の割合と比較される閾値であって前記閾値の方が小さければ前記削除対象のエントリ情報のデータを前記記憶装置に書き出して前記削除対象のエントリ情報のデータを削除する前記閾値を、現在の値より小さく設定し、
前記第1の合計が前記第2の合計よりも多い場合、前記閾値を現在の値より大きく設定する、
ことを特徴とする付記1に記載の情報処理装置。
(付記3)前記第1のリストは、前記複数のデータのうちの1回のアクセスがあったデータと前記データの前記記憶装置上における位置を示す情報とを有するエントリ情報を有するリストである、
ことを特徴とする付記1または2に記載の情報処理装置。
(付記4)前記第1のリストは、前記複数のデータのうちの2回以上のアクセスがあったデータと前記データの前記記憶装置上における位置を示す情報とを有するエントリ情報を有するリストである、
ことを特徴とする付記1〜3のいずれか一つに記載の情報処理装置。
(付記5)コンピュータが、
記憶装置が記憶する複数のデータのうちのいずれかのデータと前記いずれかのデータの前記記憶装置上における位置を示す情報とを含むエントリ情報を有する第1のリストおよび前記第1のリストから追い出されたエントリ情報に含まれた削除済みのデータの前記記憶装置上における位置を示す情報を含むエントリ情報を有する第2のリストを記憶するキャッシュメモリの前記第1のリストにおける所定のキャッシュ置換方式による優先度に基づいて決定される削除対象のエントリ情報のデータが更新されている場合、前記優先度に従った順序における前記削除対象のエントリ情報からデータが更新されているエントリ情報が連続する数を計数し、
前記削除対象のエントリ情報から前記数分のエントリ情報へのアクセス回数の第1の合計よりも前記優先度に従った順序における前記第2のリストに最も後に追加されたエントリ情報から前記数分のエントリ情報へのアクセス回数の第2の合計が多い場合、前記削除対象のエントリ情報のデータを前記記憶装置に書き出して前記削除対象のエントリ情報のデータを前記キャッシュメモリから削除する、
処理を実行することを特徴とするキャッシュメモリ制御方法。
(付記6)コンピュータに、
記憶装置が記憶する複数のデータのうちのいずれかのデータと前記いずれかのデータの前記記憶装置上における位置を示す情報とを含むエントリ情報を有する第1のリストおよび前記第1のリストから追い出されたエントリ情報に含まれた削除済みのデータの前記記憶装置上における位置を示す情報を含むエントリ情報を有する第2のリストを記憶するキャッシュメモリの前記第1のリストにおける所定のキャッシュ置換方式による優先度に基づいて決定される削除対象のエントリ情報のデータが更新されている場合、前記優先度に従った順序における前記削除対象のエントリ情報からデータが更新されているエントリ情報が連続する数を計数し、
前記削除対象のエントリ情報から前記数分のエントリ情報へのアクセス回数の第1の合計よりも前記優先度に従った順序における前記第2のリストに最も後に追加されたエントリ情報から前記数分のエントリ情報へのアクセス回数の第2の合計が多い場合、前記削除対象のエントリ情報のデータを前記記憶装置に書き出して前記削除対象のエントリ情報のデータを前記キャッシュメモリから削除する、
処理を実行させることを特徴とするキャッシュメモリ制御プログラム。
T1、T2、B1、B2 リスト
101 情報処理装置
102 記憶装置
103 キャッシュメモリ
111、112 エントリ情報
311 CM
500 制御部
501 I/O受け付け部
502 読み出し/書き込み判定部
503 キャッシュデータ管理部
504 読み出し監視部
505 Watermark調整部

Claims (4)

  1. 複数のデータを記憶する記憶装置と、
    前記複数のデータのうちのいずれかのデータと前記いずれかのデータの前記記憶装置上における位置を示す情報とを含むエントリ情報を有する第1のリストと、前記第1のリストから追い出されたエントリ情報に含まれた削除済みのデータの前記記憶装置上における位置を示す情報を含むエントリ情報を有する第2のリストとを記憶するキャッシュメモリと、
    前記第1のリストにおける所定のキャッシュ置換方式による優先度に基づいて決定される削除対象のエントリ情報のデータが更新されている場合、前記優先度に従った順序における前記削除対象のエントリ情報からデータが更新されているエントリ情報が連続する数を計数し、前記削除対象のエントリ情報から前記数分のエントリ情報へのアクセス回数の第1の合計よりも前記優先度に従った順序における前記第2のリストに最も後に追加されたエントリ情報から前記数分のエントリ情報へのアクセス回数の第2の合計が多い場合、前記削除対象のエントリ情報のデータを前記記憶装置に書き出して前記削除対象のエントリ情報のデータを前記キャッシュメモリから削除することにより前記削除対象のエントリ情報のデータの前記記憶装置上における位置を示す情報を含むエントリ情報を前記第2のリストに追加する制御部と、
    を有することを特徴とする情報処理装置。
  2. 複数のデータを記憶する記憶装置と、
    前記複数のデータのうちのいずれかのデータと前記いずれかのデータの前記記憶装置上における位置を示す情報とを含むエントリ情報を有する第1のリストと、前記第1のリストから追い出されたエントリ情報に含まれた削除済みのデータの前記記憶装置上における位置を示す情報を含むエントリ情報を有する第2のリストとを記憶するキャッシュメモリと、
    前記第1のリストにおける所定のキャッシュ置換方式による優先度に基づいて決定される削除対象のエントリ情報のデータが更新されている場合、前記優先度に従った順序における前記削除対象のエントリ情報からデータが更新されているエントリ情報が連続する数を計数し、前記削除対象のエントリ情報から前記数分のエントリ情報へのアクセス回数の第1の合計よりも前記優先度に従った順序における前記第2のリストに最も後に追加されたエントリ情報から前記数分のエントリ情報へのアクセス回数の第2の合計が多い場合、前記第1のリストに含まれるデータが更新されているエントリ情報の割合と比較される閾値であって前記閾値の方が小さければ前記削除対象のエントリ情報のデータを前記記憶装置に書き出して前記削除対象のエントリ情報のデータを削除する前記閾値を、現在の値より小さく設定し、前記第1の合計が前記第2の合計よりも多い場合、前記閾値を現在の値より大きく設定し、前記割合よりも前記閾値の方が小さい場合、前記削除対象のエントリ情報のデータを前記記憶装置に書き出して前記削除対象のエントリ情報のデータを前記キャッシュメモリから削除することにより前記削除対象のエントリ情報のデータの前記記憶装置上における位置を示す情報を含むエントリ情報を前記第2のリストに追加する制御部と、
    を有することを特徴とする情報処理装置。
  3. コンピュータが、
    記憶装置が記憶する複数のデータのうちのいずれかのデータと前記いずれかのデータの前記記憶装置上における位置を示す情報とを含むエントリ情報を有する第1のリストおよび前記第1のリストから追い出されたエントリ情報に含まれた削除済みのデータの前記記憶装置上における位置を示す情報を含むエントリ情報を有する第2のリストを記憶するキャッシュメモリの前記第1のリストにおける所定のキャッシュ置換方式による優先度に基づいて決定される削除対象のエントリ情報のデータが更新されている場合、前記優先度に従った順序における前記削除対象のエントリ情報からデータが更新されているエントリ情報が連続する数を計数し、
    前記削除対象のエントリ情報から前記数分のエントリ情報へのアクセス回数の第1の合計よりも前記優先度に従った順序における前記第2のリストに最も後に追加されたエントリ情報から前記数分のエントリ情報へのアクセス回数の第2の合計が多い場合、前記削除対象のエントリ情報のデータを前記記憶装置に書き出して前記削除対象のエントリ情報のデータを前記キャッシュメモリから削除することにより前記削除対象のエントリ情報のデータの前記記憶装置上における位置を示す情報を含むエントリ情報を前記第2のリストに追加する、
    処理を実行することを特徴とするキャッシュメモリ制御方法。
  4. コンピュータに、
    記憶装置が記憶する複数のデータのうちのいずれかのデータと前記いずれかのデータの前記記憶装置上における位置を示す情報とを含むエントリ情報を有する第1のリストおよび前記第1のリストから追い出されたエントリ情報に含まれた削除済みのデータの前記記憶装置上における位置を示す情報を含むエントリ情報を有する第2のリストを記憶するキャッシュメモリの前記第1のリストにおける所定のキャッシュ置換方式による優先度に基づいて決定される削除対象のエントリ情報のデータが更新されている場合、前記優先度に従った順序における前記削除対象のエントリ情報からデータが更新されているエントリ情報が連続する数を計数し、
    前記削除対象のエントリ情報から前記数分のエントリ情報へのアクセス回数の第1の合計よりも前記優先度に従った順序における前記第2のリストに最も後に追加されたエントリ情報から前記数分のエントリ情報へのアクセス回数の第2の合計が多い場合、前記削除対象のエントリ情報のデータを前記記憶装置に書き出して前記削除対象のエントリ情報のデータを前記キャッシュメモリから削除することにより前記削除対象のエントリ情報のデータの前記記憶装置上における位置を示す情報を含むエントリ情報を前記第2のリストに追加する、
    処理を実行させることを特徴とするキャッシュメモリ制御プログラム。
JP2016094628A 2016-05-10 2016-05-10 情報処理装置、キャッシュメモリ制御方法、およびキャッシュメモリ制御プログラム Active JP6711121B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016094628A JP6711121B2 (ja) 2016-05-10 2016-05-10 情報処理装置、キャッシュメモリ制御方法、およびキャッシュメモリ制御プログラム
US15/485,661 US10296466B2 (en) 2016-05-10 2017-04-12 Information processing device, method of controlling a cache memory, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016094628A JP6711121B2 (ja) 2016-05-10 2016-05-10 情報処理装置、キャッシュメモリ制御方法、およびキャッシュメモリ制御プログラム

Publications (2)

Publication Number Publication Date
JP2017204068A JP2017204068A (ja) 2017-11-16
JP6711121B2 true JP6711121B2 (ja) 2020-06-17

Family

ID=60295185

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016094628A Active JP6711121B2 (ja) 2016-05-10 2016-05-10 情報処理装置、キャッシュメモリ制御方法、およびキャッシュメモリ制御プログラム

Country Status (2)

Country Link
US (1) US10296466B2 (ja)
JP (1) JP6711121B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11294821B1 (en) 2020-09-11 2022-04-05 Kabushiki Kaisha Toshiba Write-back cache device

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6711121B2 (ja) * 2016-05-10 2020-06-17 富士通株式会社 情報処理装置、キャッシュメモリ制御方法、およびキャッシュメモリ制御プログラム
CN109359063B (zh) * 2018-10-15 2021-10-29 郑州云海信息技术有限公司 面向存储系统软件的缓存置换方法、存储设备及存储介质
JP7474061B2 (ja) 2019-03-01 2024-04-24 キヤノン株式会社 インタフェース装置、データ処理装置、キャッシュ制御方法、及びプログラム
JP7367470B2 (ja) * 2019-11-05 2023-10-24 富士通株式会社 情報処理装置およびキャッシュ制御プログラム
US11281594B2 (en) 2020-02-22 2022-03-22 International Business Machines Corporation Maintaining ghost cache statistics for demoted data elements
US11182307B2 (en) 2020-02-22 2021-11-23 International Business Machines Corporation Demoting data elements from cache using ghost cache statistics
US11550732B2 (en) 2020-02-22 2023-01-10 International Business Machines Corporation Calculating and adjusting ghost cache size based on data access frequency

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05303528A (ja) 1992-04-27 1993-11-16 Oki Electric Ind Co Ltd ライトバック式ディスクキャッシュ装置
US6493801B2 (en) * 2001-01-26 2002-12-10 Compaq Computer Corporation Adaptive dirty-block purging
US6996676B2 (en) * 2002-11-14 2006-02-07 International Business Machines Corporation System and method for implementing an adaptive replacement cache policy
US8161241B2 (en) * 2010-01-12 2012-04-17 International Business Machines Corporation Temperature-aware buffered caching for solid state storage
US8972661B2 (en) * 2011-10-31 2015-03-03 International Business Machines Corporation Dynamically adjusted threshold for population of secondary cache
US20130242425A1 (en) * 2012-03-16 2013-09-19 Toshiba America Electronics Components, Inc. Write reordering in a hybrid disk drive
US8930612B2 (en) * 2012-05-31 2015-01-06 Seagate Technology Llc Background deduplication of data sets in a memory
CN106201348B (zh) * 2012-06-20 2019-08-20 华为技术有限公司 非易失性存储设备的缓存管理方法及装置
US20140115260A1 (en) * 2012-10-18 2014-04-24 Oracle International Corporation System and method for prioritizing data in a cache
US9772949B2 (en) * 2012-10-18 2017-09-26 Oracle International Corporation Apparatus, system and method for providing a persistent level-two cache
JP6711121B2 (ja) * 2016-05-10 2020-06-17 富士通株式会社 情報処理装置、キャッシュメモリ制御方法、およびキャッシュメモリ制御プログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11294821B1 (en) 2020-09-11 2022-04-05 Kabushiki Kaisha Toshiba Write-back cache device

Also Published As

Publication number Publication date
JP2017204068A (ja) 2017-11-16
US20170329721A1 (en) 2017-11-16
US10296466B2 (en) 2019-05-21

Similar Documents

Publication Publication Date Title
JP6711121B2 (ja) 情報処理装置、キャッシュメモリ制御方法、およびキャッシュメモリ制御プログラム
EP3210121B1 (en) Cache optimization technique for large working data sets
US9235508B2 (en) Buffer management strategies for flash-based storage systems
US9411742B2 (en) Use of differing granularity heat maps for caching and migration
US9417808B2 (en) Promotion of partial data segments in flash cache
JP6613375B2 (ja) プロファイリングキャッシュ置換
US20140115261A1 (en) Apparatus, system and method for managing a level-two cache of a storage appliance
KR20100021868A (ko) 플래시 메모리 장치를 위한 버퍼 캐쉬 관리 방법
KR101297442B1 (ko) 공간 지역성을 고려한 요구 기반 플래시 메모리 변환 계층을 포함하는 낸드 플래시 메모리 시스템
KR101507093B1 (ko) 정전에서 지속 가능한 읽기 및 쓰기 캐시 장치 및 방법
US11693570B2 (en) Machine learning to improve caching efficiency in a storage system
Gu et al. Hotis: A hot data identification scheme to optimize garbage collection of ssds
US10579541B2 (en) Control device, storage system and method
JP6928247B2 (ja) ストレージ制御装置およびストレージ制御プログラム
KR20090076265A (ko) 컴퓨터 저장장치에서의 프리페칭 데이터 관리 방법
KR101373613B1 (ko) 환형 구조의 비휘발성 메모리 캐쉬를 포함하는 하이브리드 스토리지 장치
US20210263648A1 (en) Method for managing performance of logical disk and storage array
Ou et al. Performance and power evaluation of flash-aware buffer algorithms
Li A Hotness-aware Write Buffer Management Scheme for the Lifetime Extension of Flash-based Solid State Drives
Fan Improving Storage Performance with Non-Volatile Memory-based Caching Systems
CN115048056A (zh) 基于页面替换代价的固态硬盘缓冲区管理方法
KR101353968B1 (ko) 환형 구조의 비휘발성 메모리 캐쉬에 기록된 데이터를 교체 및 가비지 콜렉션하기 위한 데이터 처리방법
Kim Buffer Management Techniques

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190212

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190823

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190924

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191122

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: 20200428

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200511

R150 Certificate of patent or registration of utility model

Ref document number: 6711121

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150