JP2013222434A - キャッシュ制御装置、キャッシュ制御方法、及びそのプログラム - Google Patents

キャッシュ制御装置、キャッシュ制御方法、及びそのプログラム Download PDF

Info

Publication number
JP2013222434A
JP2013222434A JP2012095558A JP2012095558A JP2013222434A JP 2013222434 A JP2013222434 A JP 2013222434A JP 2012095558 A JP2012095558 A JP 2012095558A JP 2012095558 A JP2012095558 A JP 2012095558A JP 2013222434 A JP2013222434 A JP 2013222434A
Authority
JP
Japan
Prior art keywords
data
cache
management information
bank
l2unit
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.)
Pending
Application number
JP2012095558A
Other languages
English (en)
Inventor
Tadashi Orihara
直史 織原
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 JP2012095558A priority Critical patent/JP2013222434A/ja
Priority to US13/865,670 priority patent/US9268700B2/en
Publication of JP2013222434A publication Critical patent/JP2013222434A/ja
Pending legal-status Critical Current

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/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/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
    • 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/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
    • 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/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】管理情報L2UNITの増大を防止して二次キャッシュ20を大容量とすること。
【解決手段】データセクタ22のデータL2DATA及び管理情報L2UNITを有する二次キャッシュ20と、データDATAのアドレスから算出される要約値DGST及び二次の管理情報L2UNITを有する一次キャッシュ18とを備え、コントローラ16が、データDATAの読み出しに際して当該データDATAの要約値DGSTを計算する要約値計算部30と、要約値DGSTから一次キャッシュ18中の管理情報L2UNITを探索する管理情報探索部32と、管理情報L2UNITから二次キャッシュ20のデータセクタ22を特定して当該データL2DATAを読み出す読出制御部34とを備えた。
【選択図】図1

Description

本発明は、キャッシュ制御装置、キャッシュ制御方法、及びそのプログラムに関し、特に、容量の大きい二次キャッシュを使用したキャッシュ制御装置、キャッシュ制御方法とプログラムに関する。
コンピュータシステムの外部記憶装置としてハードディスクドライブ(HDD)が使用されており、複数台のHDDを組み合わせて高速化や二重化などのサービスを提供するディスクアレイ装置も使用されている。
ディスク装置やディスクアレイ装置では、これら外部記憶装置に搭載されるメモリの一部をディスクキャッシュとして利用すると、I/O(input /output)の性能を向上させることができる。そして、このディスクキャッシュ容量を増加させて利用度を高めると、ディスクアレイ装置等の性能を向上させることができる。
しかし、ディスクアレイ装置等に搭載されるメモリはディスクアレイ装置等で管理するHDDの総容量と比較して少量であり、メモリ増設を行う場合にも物理的に搭載できるポートの制限などもあり、高容量化には限界がある。
近年、ディスクキャッシュ容量を増加させる手段として、メモリよりも安価で大容量かつHDDよりも高速な記憶媒体(例えば、SSD:solid state disk)などを利用したI/O制御による性能向上方法に注目が集まっている。
また、SSDは一般に4KB 単位でデータ管理され、256KB 単位で消去(Erase )処理が必要になるなどの特性を有する。SSDをディスクキャッシュに使用するために、これらの特性に適したキャッシュ制御方法が検討されている。
キャッシュ制御に関連して、次のような技術文献1乃至4が知られている。
特許文献1には、複数のキャッシュラインに対してN個のタグを設けたNウェイセットアソシアティブ制御をする手法(段落〔0003〕〜〔0007〕)が開示されている。又、二次キャッシュのデータの置き換え時に一次キャッシュに対する無効化処理を省略することで、キャッシュの制御動作を簡略化して性能向上を図る手法(段落〔0018〕〔0010〕のノン・インクルーシブ)が開示されている。
特許文献2には、キャッシュラインの状態に応じてプリフェッチ(予測読み出し)を効果的に実行することを目的として、主記憶から共有キャッシュ(二次キャッシュ)にデータを先読みさせておく手法(段落〔0024〕)が開示されている。また、二次キャッシュメモリの記憶の状態とプリフェッチ要求とを管理する二次キャッシュ管理テーブルを二次キャッシュではなくプリフェッチ制御部に格納しておく構成例(段落〔0046〕〔0047〕図1)が開示されている。
特許文献3には、SSDなどのフラッシュメモリを大容量のキャッシュとして使用する際にアドレス変換等の管理テーブルの容量をできるだけ小容量化する(段落〔0010〕)ために、タグをクラスタ単位で管理する手法(段落〔0070〕図11)が開示されている。
特許文献4には、二次キャッシュ等のデータがHDDに書き込まれていなくともクラッシュ後にHDDに復旧することを目的として、SSD等の二次キャッシュに格納されている一方、HDDに格納されていないデータを修復ツールにて復帰させる手法(図5、段落0043から0045等)が開示されている。又、この例ではメインメモリに二次キャッシュの管理情報を格納する構成例(段落〔0023〕〔0035〕図1)が開示されている。
特開2007-58349号公報 特開2008-059057 号公報 特開2009-211226 号公報 特開2012-14435号公報
しかしながら、上記各文献には、大容量(増設なども含む)に伴う二次キャッシュの管理情報の増大を防ぎ大容量本来の性能を発揮させるための技術的な手法は、何ら開示されていない。
即ち、上記特許文献1から4及びこれらを組み合わせた技術では、大容量の二次キャッシュを高速に管理することができない、という不都合があった。
特に、SSDなどHDDより高速ではあるが、メモリよりは低速である記憶媒体を二次キャッシュにする際には、アクセス頻度が性能を左右するため、上記先行する関連技術では、性能を確保しつつ容量を増大させていくことが困難である。
(発明の目的)
本発明の目的は、メモリより低速でディスク部(HDD等)より高速な中程度の速度を有する記憶媒体を二次キャッシュとして使用する際に、その管理情報の増大を抑制することで、二次キャッシュを大容量とすることができるキャッシュ制御装置、キャッシュ制御方法とプログラムを提供することにある。
上記目的を達成するため、本発明に係るキャッシュ制御装置は、データを格納するディスク部の一次キャッシュを有するメモリと、一次キャッシュに対する二次キャッシュを有しメモリより大容量で低速な記憶媒体と、一次キャッシュ及び二次キャッシュを使用したデータの転送を制御するコントローラとを備えている。
二次キャッシュは、予め定められた容量のセクタを単位としてデータを記憶するデータセクタと、複数のデータセクタのアドレスを含む管理情報を記憶する管理情報セクタとを備えている。そして、一次キャッシュが、データのアドレスから算出される要約値と、当該データをキャッシュした二次キャッシュ中のデータセクタのアドレスを含む管理情報とを接続させて記憶している。
更に、コントローラが、データを読み出す際に当該データの要約値を計算する要約値計算部と、要約値から一次キャッシュ中の管理情報を探索する管理情報探索部と、管理情報から二次キャッシュのデータセクタを特定して当該データを読み出す読出制御部とを備えたことを特徴としている。
上記目的を達成するため、本発明に係るキャッシュ制御方法は、上記キャッシュ制御装置を使用してキャッシュを制御するキャッシュ制御方法であって、まず、データを読み出す際に当該データの要約値をコントローラの要約値計算部が計算する。次に、要約値から一次キャッシュ中の管理情報を管理情報探索部が探索して読出制御部に与える。そして、読出制御部が、管理情報から二次キャッシュのデータセクタを特定して当該データを読み出す、ことを特徴としている。
上記目的を達成するため、本発明に係るキャッシュ制御用プログラムは、上記キャッシュ制御装置のコントローラに、データを読み出す際に当該データの要約値を計算する要約値計算手順と、要約値から一次キャッシュ中の管理情報を探索する管理情報探索手順と、管理情報から二次キャッシュのデータセクタを特定して当該データを読み出す読出制御手順とを実行させる、ことを特徴としている。
本発明は以上のように構成され機能するので、これによると、データを読み出す際に当該データの要約値を計算し、要約値から一次キャッシュ中の管理情報を探索するため、二次キャッシュにアクセスせずに二次キャッシュに格納されたデータの管理情報の有無及び内容にアクセスし当該データを読み出すようにしたので、要約値と管理情報のみの簡易な情報で二次キャッシュのデータを管理することができ、従って、二次キャッシュを大容量化しても管理情報の増大を防止することができ、これによりキャッシュの性能を向上させることができる、という優れたキャッシュ制御装置、キャッシュ制御方法とプログラムを提供することができる。
本発明の実施形態1の構成例を示すブロック図である。 要約値と管理情報との関係例を示す説明図である。 管理情報を一次キャッシュにキャッシュする情報処理の一例を示す説明図である。 二次キャッシュのデータを管理番号とバンク番号とで特定する情報処理の一例を示す説明図である。 管理情報のデータ構造の一例を示す説明図である。 二次キャッシュを4ウェイセットアソシアティブ方式とした例を示す説明図である。 本実施例1でのデータの取り出し処理の一例を示すフローチャートである。 本発明の実施形態2の構成例を示すブロック図である。 二次キャッシュを動的増設する例を示す説明図である。 本実施形態2でディスク及びキャッシュを二重化した場合の他の例を示す説明図である。
以下、本発明のキャッシュ制御装置にかかる実施形態1を図1乃至図7に基づいて説明する。最初に全体的な構成の概要を説明し、その後に具体的な実施形態を説明する。
(全体的な構成)
まず、本実施形態1によるキャッシュ制御装置101は、多くの場合、ディスクアレイ装置10などの外部記憶装置(ディスク部10)に使用される。
この場合、ディスクアレイ装置10は、コンピュータ等の上位装置50から送信されるデータDATAを記憶し、上位装置50からの要求に応じたデータDATAを当該上位装置50に送信する。ディスクアレイ装置10は、ハードディスクドライブ(HDD)にデータDATAを格納する。
ここで、HDDへのI/ Oは、上位装置50の情報処理速度と比較して低速であるため、より高速にデータDATAの転送が可能なメモリ12をキャッシュとして使用すると、上位装置50のI/ O待機時間を低減させることができる。
キャッシュ制御装置101は、データDATAを格納するディスク部10の一次キャッシュ18を有するメモリ12と、前記一次キャッシュ18に対する二次キャッシュ20を有し前記メモリ12より大容量で低速な記憶媒体14と、前記一次キャッシュ18及び前記二次キャッシュ20を使用した前記データDATAの転送を制御するコントローラ16とを備えている。又、二次キャッシュ20は、予め定められた容量のセクタを単位として前記データDATAを記憶するデータセクタ22と、複数の前記データセクタ22のアドレスを含む管理情報L2UNITを記憶する管理情報セクタ24とを備えてる。
そして、一次キャッシュ18は、前記データDATAのアドレスから算出される要約値DGST(Hash情報)と、当該データDATAをキャッシュした前記二次キャッシュ20中の前記データセクタ22のアドレスを含む前記管理情報L2UNITとを接続させた状態で、これを記憶している。
又、コントローラ16は、前記データDATAを読み出す際に当該データDATAの要約値DGSTを計算する要約値計算部30と、前記要約値DGSTから前記一次キャッシュ18中の前記管理情報L2UNITを探索する管理情報探索部32と、前記管理情報L2UNITから前記二次キャッシュ20の前記データセクタ22を特定して当該データL2DATAを読み出す読出制御部34とを備えている。
これにより、二次キャッシュ20の管理情報L2UNITを一次キャッシュ18に記録するため、二次キャッシュ20が大容量であっても、管理情報L2UNITを一次キャッシュ18にて高速に探索することができる。従って、大容量の二次キャッシュ20を高速に管理することができる。
又、前述したコントローラ16は、前記二次キャッシュ20の管理情報L2UNITをキャッシュ制御の対象として前記一次キャッシュ18にキャッシュさせる管理情報キャッシュ制御部36を備えている。これにより、二次キャッシュ20へのアクセス頻度を低減させることができる。
更に、管理情報キャッシュ制御部36は、前記データDATAの読み出しに際して前記管理情報L2UNITが前記一次キャッシュ18にキャッシュされていない際には当該管理情報L2UNITを前記二次キャッシュ20から読み出すと共に当該管理情報L2UNITを前記要約値DGSTに接続させて前記一次キャッシュ18に格納する格納制御機能36aと、前記一次キャッシュ18の容量に応じて古い前記管理情報L2UNITを新しい管理情報L2UNITに入れ替える入替制御機能36bとを備えている。
これにより、データDATAのアドレスから要約値DGSTを算出し、二次キャッシュ20の管理情報L2UNITと接続するため、転送対象のデータDATAのアドレスから二次キャッシュ20のデータDATAの有無を直接的に計算することができる。
又、上記要約値DGSTは前記データDATAのアドレスのハッシュ値HASHであり、管理情報キャッシュ制御部36は、前述した複数のデータL2DATA及び管理情報L2UNITの複数組を1つのバンクBANKとして当該バンクBANK単位に当該管理情報L2UNITの前記一次キャッシュ18へとキャッシュを制御するバンク管理機能36cと、前記ハッシュ値HASHが競合する際にバンクBANKのバンク番号を使用して前記バンクBANK毎に当該ハッシュ値HASHと対応させるハッシュ値管理機能36dとを備えている。
これにより、ハッシュ値HASHとバンク番号との組み合わせで管理情報L2UNITへのポインタの競合を回避することで、二次キャッシュ20を大容量化しても、データDATAのアドレスから二次キャッシュ20のヒット・ミスヒットを判定することができる。
更に、前述した管理情報L2UNITは、複数の前記データセクタ22のそれぞれ対応したページL2PAGEを備えており、当該ページL2PAGEは、前記データDATAのアドレスとなる論理ディスク番号LDN 及び論理セクタ番号LSN と、当該キャッシュ対象の入替制御で参照される世代GEN とを有し、当該ダーティー又はクリーンを特定する属性範囲情報を有さない構成となっている。このため、属性範囲情報を有さないことで、管理情報L2UNITへのアクセス数が低減される
又、前述した二次キャッシュ20は前記バンク毎の複数ウェイのセクタ群を有し、
管理情報キャッシュ制御部36は、前記複数ウェイのセクタ群を対象としたセットアソシアティブ制御をする複数ウェイ制御機能36eを備えている。
これにより、複数のウェイを対象としたセットアソシアティブ制御をする。又、スラッシング(ページL2PAGE置き換えの頻発)が生じる確率を低下させることができる。
以下、これを更に詳述する。
(一次キャッシュ18と管理情報L2UNIT)
本実施形態1によるキャッシュ制御装置101は、高速なメモリ12による一次キャッシュ18と、メモリ12により低速であるが大容量な記憶媒体14による二次キャッシュ20とを使用して、高性能なI/Oを上位装置50に提供する。
図1に示すように、キャッシュ制御装置101は、ディスクアレイ装置10に接続されている。ディスクアレイ装置10(又は単体のディスク装置10)は、ユーザボリューム26にデータDATAを格納する。このデータDATAがキャッシュ制御の対象となる。
キャッシュ制御装置101は、前述したように、メモリ12と、記憶媒体14と、コントローラ16と、一次キャッシュ18と、二次キャッシュ20とを有する。
メモリ12は、データDATAを格納するディスクアレイ装置10の一次キャッシュ18を有する。このメモリ12はRAM等の半導体メモリ12である。
記憶媒体14は、一次キャッシュ18に対する二次キャッシュ20を有する。そして、メモリ12より大容量であるがメモリ12よりも低速である。このような記憶媒体14としては、例えばSSDがある。
コントローラ16は、一次キャッシュ18及び二次キャッシュ20を使用したデータDATAの転送を制御する。
二次キャッシュ20は、予め定められた容量のセクタを単位としてデータDATAを記憶するデータセクタ22と、複数のデータセクタ22のアドレスを含む管理情報L2UNITを記憶する管理情報セクタ24とを備えている。
そして、一次キャッシュ18が、データDATAのアドレスから算出される要約値DGSTと、当該データDATAをキャッシュした二次キャッシュ20中のデータセクタ22のアドレスを含む管理情報L2UNITとを接続させて記憶する。
又、本実施形態1では、コントローラ16が、要約値計算部30と、管理情報探索部32と、読出制御部34とを備える。
この内、要約値計算部30は、データDATAを読み出す際に当該データDATAの要約値DGSTを計算する。要約値DGSTは、データDATAのアドレスのダイジェストであり、この例では、ダイジェストからアドレスを復元できなくとも、異なるデータDATAのアドレスについて異なるダイジェストを計算できれば良い。
従って、要約値DGSTは、アドレスを一方向関数で計算した値とすると良く、例えばハッシュ値HASHを使用することができる。
データDATAのアドレスは例えばユーザボリューム26の論理ディスク番号LDN 及び論理セクタ番号LSN 等の番号である。
管理情報探索部32は、要約値DGSTから一次キャッシュ18中の管理情報L2UNITを探索する。二次キャッシュ20に格納されたデータL2DATAのユーザボリューム26でのアドレスは、管理情報L2UNITに記録されており、この管理情報L2UNITは、一次キャッシュ18に格納されている。このため、管理情報探索部32は、二次キャッシュ20にアクセスしなくとも、二次キャッシュ20の管理情報L2UNITに高速にアクセスすることができる。
読出制御部34は、管理情報L2UNITから二次キャッシュ20のデータセクタ22を特定して当該データL2DATAを読み出す。一次キャッシュ18に管理情報L2UNITが格納されていれば、この管理情報L2UNITを参照して二次キャッシュ20からデータL2DATAを読み出す。一次キャッシュ18に管理情報L2UNITが格納されていなければ、二次キャッシュ20から管理情報L2UNITを読み出してこの管理情報L2UNITを参照して二次キャッシュ20からデータL2DATAを読み出す。
読出制御部34は、一次キャッシュ18及び二次キャッシュ20に管理情報L2UNITが格納されていない際には、ユーザボリューム26からデータDATAを読み出す。
本実施形態1は、要約値DGSTと管理情報L2UNITのみの簡易な情報で二次キャッシュ20のデータDATAを管理するため、二次キャッシュ20を大容量化しても管理情報L2UNITの増大を防止することができる。さらに、二次キャッシュ20の管理情報L2UNITを一次キャッシュ18に記録することで、二次キャッシュ20が大容量であっても、管理情報L2UNITについては一次キャッシュ18にて高速に探索することができる。
このような構成を採用することで、本実施形態1によるキャッシュ制御装置101は、管理情報L2UNITの増大を防止しつつ、管理情報L2UNITへのアクセスを高速とすることができる。従って、二次キャッシュ20の容量が大容量となっても、容量に応じたキャッシュの性能を確保することができる。キャッシュ制御方法及びキャッシュ制御用プログラムについても同様である。
以下、これを更に詳細に説明する。
(管理情報L2UNITをキャッシュ制御)
本実施形態1では、好ましくは、前述したコントローラ16が、管理情報キャッシュ制御部36を備える。管理情報キャッシュ制御部36は、二次キャッシュ20の管理情報L2UNITをキャッシュ制御の対象として一次キャッシュ18にキャッシュさせる。
管理情報L2UNITをキャッシュ制御の対象として、二次キャッシュ20の全ての管理情報L2UNITではなく、上位装置50からのアクセス経過に応じたデータDATAについての管理情報L2UNITを一次キャッシュ18に格納しておく。
これにより、二次キャッシュ20が大容量となってもメモリ12上の管理情報L2UNITを小容量とし、管理情報L2UNITへ高速にアクセスする確率を高め、同時に、二次キャッシュ20へのアクセス頻度を低減することができる。
又、図2に示すように、メモリ12の一次キャッシュ18は、二次キャッシュ20の全ての管理情報L2UNITの内の一部の管理情報L2UNITをキャッシングする領域を有する。すなわち、一次キャッシュ18は、一部の管理情報L2UNITを記憶する。また、メモリ12に、データDATAのアドレスから管理情報L2UNITを検索するための要約値DGST(例えば、Hashリスト情報)を用意する。
そして、SSD等の記憶媒体14上に管理情報L2UNITとデータL2DATAをマッピングし、これを二次キャッシュ20とする。二次キャッシュ20のデータDATAはセクタ単位で管理する。二次キャッシュ20は、データDATAを格納するデータセクタ22と、管理情報L2UNITを格納する管理情報セクタ24とを有する。
要約値計算部30は、データDATAのアドレスから要約値DGSTを計算し、要約値DGSTの1つを特定する。特定した要約値DGSTは管理情報L2UNITと接続されている。この管理情報L2UNITの特定により、アドレスから二次キャッシュ20のデータL2DATAにアクセスすることができる。
このように、データDATAのアドレスから要約値DGSTを算出し、二次キャッシュ20の管理情報L2UNITと接続することで、転送対象のデータDATAのアドレスから二次キャッシュ20のデータDATAの有無を判定することができる。
図3に示す例では、管理情報L2UNIT自体をキャッシュ制御の対象として、管理情報L2UNITを一次キャッシュ18にキャッシング制御する。すなわち、データアクセスの局所性により、二次キャッシュ20に格納されたデータDATAのうちのさらに一部のデータが読み出される可能性が高いため、管理情報キャッシュ制御部36は、この可能性の高いデータDATAの管理情報L2UNITを一次キャッシュ18にキャッシュするように制御する。
この例では、管理情報キャッシュ制御部36は、格納制御機能36aと、入替制御機能36bとを備える。
格納制御機能36aは、データDATAの読み出しに際して、管理情報L2UNITが一次キャッシュ18にキャッシュされていない際には、当該管理情報L2UNITを二次キャッシュ20から読み出すと共に、当該管理情報L2UNITを要約値DGSTに接続させて一次キャッシュ18に格納する。これにより、以後、同一のデータDATAへのアクセスがされた際には、管理情報探索部32が一次キャッシュ18にて管理情報L2UNITを探索し、二次キャッシュ20に格納されたデータDATAを高速に転送することができる。
また、入替制御機能36bは、一次キャッシュ18の容量に応じて古い管理情報L2UNITを新しい管理情報L2UNITに入れ替える(入替処理)。入替制御機能36bは、定期的にこの入替処理を実行しても良いし、格納制御機能36aが管理情報L2UNITを一次キャッシュ18に格納しようとした際に、空き領域が発見できない時点で当該入替処理を実行しても良い。管理情報L2UNITの新旧は、管理情報L2UNITの世代や、最終アクセス時刻などの情報で管理することができる。
管理情報キャッシュ制御部36が、格納制御機能36aと入替制御機能36bとを備え、二次キャッシュ20の管理情報L2UNITを一次キャッシュ18にキャッシュし、管理情報L2UNITの新旧により管理情報L2UNITを入れ替える制御をするため、キャッシュ制御について大容量の二次キャッシュ20へのアクセスを一次キャッシュ18へのアクセスと同程度の処理時間で管理することができる。
本実施形態1では、更に、図3及び図4に示すように、バンクBANKとハッシュ値HASHとを使用することで、より大容量の二次キャッシュ20を高性能で使用することができる。この例では、要約値DGSTとしてハッシュ値HASHを採用する。管理情報キャッシュ制御部36は、バンク管理機能36cと、ハッシュ値管理機能36dとを備える。ハッシュ値HASHは、データDATAのアドレスから求めるハッシュ値HASHである。
バンク管理機能36cは、複数のデータL2DATA及び管理情報L2UNITの複数組を1つのバンクBANK(図3,図4)として当該バンクBANK単位に当該管理情報L2UNITの一次キャッシュ18へとキャッシュを制御する。例えば、管理情報L2UNITの世代GEN をバンク単位で管理し、管理情報L2UNITの入替処理をバンク単位とする。バンク単位でキャッシュ制御することで、データDATAの記憶位置を分散させ、その結果、SSD等の記憶媒体14の消去回数も削減することができる。
また、ハッシュ値管理機能36dは、ハッシュ値HASHが競合する際にバンクBANKのバンク番号を使用してバンクBANK毎に当該ハッシュ値HASHを対応させる。これにより、ハッシュ値HASHの競合を解消することができる。
図4に示すように、本実施形態1では、二次キャッシュ20のデータDATAを管理番号とバンク番号とで次のように特定する。
(1).LDN/LSN 番号から、Hash番号を算出し、このハッシュ値HASHと接続しているバンクBANK中、当該LDN/LSN 番号を有するBANK番号を探索する。
(2).ハッシュ値HASHにリンクしてあるメモリ12の一次キャッシュ18上の管理情報L2UNIT#rを検索し、LDN/LSN 番号に該当するデータDATAがリンクされているか否かをチェックする。ここでは、管理番号L2UNIT#rと、BANK#0とを特定する。
(3).リンクされていればその情報を元に、リンクされていなければ読み出す先の情報から読みに行く。
このように、ハッシュ値HASHとバンク番号との組み合わせにより、管理情報L2UNITへのポインタの競合を回避することができる。そして、二次キャッシュ20を大容量化してもデータDATAのアドレスから二次キャッシュ20のヒット・ミスヒットの判定を可能とする。
図5に、少ない管理情報L2UNITで大きい容量の二次キャッシュ20を管理するのに適した管理情報L2UNITのデータ構造の一例を示す。管理情報L2UNIT( 例えば512byte)は、複数のページL2PAGE( 例えば16byte) を有する。ページL2PAGEは、以下の情報を扱い複数のデータL2DATAのデータセクタ22をまとめた管理用の情報として定義する。管理情報L2UNITは、これらページL2PAGE0 から31( 計32) の集合体として定義する。
論理ディスク(LDN) : ユーザボリューム26の論理ディスク番号LDN
状態(State ): 状態値( なしNull/ ダーティーDirty/ クリーンClean)
世代( Gen) : LRU 制御用の世代情報
予約(Rsv) : 予約Reserved
論理セクタ(LSN) : ユーザボリューム26の論理セクタ番号LSN (データDATAの先頭セクタアドレス)
例えば:データL2DATAの2048セクタを管理情報L2UNITの1 セクタで管理すると、ページL2PAGEは64セクタ分の情報として扱うことになる。
なお、実施例によっては、個々のページL2PAGEの状態(State )は使用せず、管理情報L2UNIT又はバンクBANK単位でダーティー/クリーン等の状態を管理する。個々のページL2PAGE単位ではこの状態(State ,属性範囲情報)を有さない構成とすると、管理情報L2UNITへのアクセス数を低減することができる。
このように、管理情報L2UNITは、複数のデータセクタ22のそれぞれ対応したページL2PAGEを有する。このページL2PAGEは、データDATAのアドレスとなる論理ディスク番号LDN
及び論理セクタ番号LSN と、当該キャッシュ対象の入替制御で参照される世代GEN とを有する。状態(state,属性範囲情報) については、好ましい実施例では、データDATA項目に含めない。
図6に示すように、二次キャッシュ20を4ウェイ・セットアソシアティブ方式とすることができる。この例では、二次キャッシュ20が、バンクBANK毎の複数ウェイのセクタ群を有する。そして、管理情報キャッシュ制御部36の複数ウェイ制御機能36eが、複数ウェイのセクタ群を対象としたセットアソシアティブ制御をする。本実施例のセットアソシアティブ制御では、ハッシュ値HASHの競合を回避するために、次のような分散化をすると良い。
・第一分散化例
ユーザボリューム26のLDN/LSN からハッシュ計算を行うため、LDN/LSN の組み合わせ次第で、異なるアドレスのハッシュ値HASHが同一のHash番号となる。この同一Hash番号となるデータDATA群は一般のプロセッサで言うところのキャッシュラインに相当する。本実施例1では、同一Hash番号となった場合にさらにBANK番号を加味して二次キャッシュ20内に分散配置(n-way) することでハッシュ競合状態を回避させる。
・第二分散化例
それでも同一Hash/BANK/SubBANK 番号となるケースが存在することを考慮した場合には、該当LDN/LSN のデータDATAを置けるL2UNITを複数区画分(n-way) 割り付けるようにして制御すると良い。
図6に示すように、一次キャッシュ18の個々のバンクBANKにて、4-way 内はLRU 制御で該当位置を入替ると良い。例えば、図6に示す例では管理情報L2UNIT#sについてはウェイ=2(way#2 )の管理情報L2UNITのみ一次キャッシュ18に格納されている。
BANK/SubBANKが0だったとすると、論理セクタ番号LSN = 0 となる。該当する管理情報L2UNIT#sの位置はPage内オフセット(Offset)換算した場合には5 セクタ目となる。
また、一次キャッシュ18内の管理情報L2UNITのキャッシュ区画は4 セクタ分で常に管理する。
このように、バンクBANKという大きめの容量を単位とし、複数のウェイを対象としたセットアソシアティブ制御をすることで、スラッシング(ページL2PAGEや管理情報L2UNITの置き換え)の発生確率を下げることができる。
(データ読出し動作)
次に、本実施形態1のキャッシュ制御装置101によるデータDATAの読み出し(取り出し)処理の一例を、図7のフローチャートを参照して説明する。ここで、これらの各動作工程は、前述したコントローラ16が実行する。
即ち、まず、前記データDATAを読み出す際に当該データDATAの要約値DGSTを前記コントローラ16の要約値計算部30が計算する。
次に、前記要約値DGSTから前記一次キャッシュ18中の前記管理情報L2UNITを管理情報探索部32が探索する。
そして、この探索した結果を、前記読出制御部34が、前記管理情報L2UNITから前記二次キャッシュ20の前記データセクタ22を特定して当該データL2DATAを読み出す。
以下、これを更に詳述する。
まず、SSD等の記憶媒体14に管理情報L2UNIT及びデータL2DATAを配置する。そして、上位装置50(ホスト)からあるアドレス(LDN/LSN )に対するI/O が発行され、一次キャッシュ18にヒットしない場合に、図7に示す処理を行う。
まず、アドレス(LDN/LSN )からハッシュ計算し(図7:ステップS1)、Hash番号とBANK番号を特定する(図7:ステップS2)。次に、メモリ12上のHash番号にリンクされている管理情報L2UNITを検索し(図7:ステップS3)、メモリ12上に当該管理情報L2UNITがキャッシングされているかどうかをチェックする(図7:ステップS4)。
このステップ4にて、キャッシングされていなければ図7のステップS5へ、キャッシングされておれば図7のステップS7に処理を移す。
そして、管理情報L2UNITを、二次キャッシュ20である記憶媒体14から読み出し(図7:ステップS5)、メモリ12上に格納しHash番号に接続する(図7:ステップS6)。この管理情報L2UNITとHash番号との接続により、メモリ12上にてアドレス(LDN/LSN
)から管理情報L2UNITを特定することができる。
続いて、管理情報L2UNITを確認し(図7:ステップS7)、LDN/LSN に該当するデータDATAがあるかどうかを確認する(図7:ステップS8)。
このステップS8にて、該当データDATAが有る場合は、ステップS9(二次キャッシュ20ヒット)へ、該当データDATAが無い場合はステップS10(二次キャッシュ20ミス)へ処理を移行する。
そして、ステップS9(二次キャッシュ20ヒット)では、二次キャッシュ20にデータDATAが有ると判断して、管理情報L2UNITに対応するデータL2DATAの中から情報を取り出す(図7:ステップS9)。そして、取り出されたデータDATAを利用する(図7:ステップS11)。
一方、ステップS10[ 二次キャッシュ20ミス] では、二次キャッシュ20にデータDATAが無いと判断し、ディスクアレイ装置10(HDD)のユーザボリューム26から情報を取り出す(図7:ステップS10)。そして、取り出されたデータDATAを利用する(図7:ステップS11)。
上述したように、本実施形態1によると、次の効果を奏する。
(1).二次キャッシュ20としてSSD等の記憶媒体14を利用することでHDDからの読み出しを行わずに高速な記憶媒体14からの読み書きが可能となる。
(2).一部の管理情報L2UNITをメモリ12上にキャッシングすることで記憶媒体14へのアクセスを削減することができる。
(3).管理情報L2UNITとデータL2DATAの容量比に自由度があり大容量の二次キャッシュ20であっても管理情報L2UNIT容量が増大しない。
(4).管理情報L2UNITとデータL2DATAのペア群をBANKとして管理し分散させるためSSD等の記憶媒体14は消去(ERASE )実施確率を低下させ寿命を伸ばしかつ均質にすることができる。
〔実施形態2〕
次に、実施形態2を図8乃至図9に基づいて説明する。
ここで、前述した実施形態1と同一構成部材については同一の符号を東風いるものとする。
図8に示すように、本実施形態2におけるキャッシュ制御装置102は、記憶媒体14Aによる二次キャッシュ20の動作中に、新たな記憶媒体14Bを動的に増設する。
この動的増設に対応するため、キャッシュ制御装置102は、前述した実施形態1の構成に加えて、コントローラ16が、動的追加制御部38を備えている。
その他の構成は前述した実施形態1と同様である。
この場合、新設され動的追加制御部38は、二次キャッシュ20の容量がバンクBANK単位に動的に追加された際に、ハッシュ値HASHの状態が容量の追加前の旧バンク数、移行期又は新バンク数のいずれかであるかに応じて読み出し対象のバンクBANKを選別する機能を備えている。
このように、ハッシュ値HASHとバンク数とを管理することで、二次キャッシュ20を動的に増設することができる。
この動的追加制御部38は、好ましい例では、全てのハッシュ値HASHが新バンク数に切り替わるまで管理情報L2UNITのキャッシュ制御をすることでバンク数の移行を制御する移行制御機能38aを備えると良い。このように、管理情報L2UNITをキャッシュ制御することで二次キャッシュ20の容量を動的に拡張することができる。
図9に示すように、動的追加制御部38は、LDN/LSN からHash番号を特定しハッシュ状態が「旧バンク数」「移行期」「新バンク数」なのかをチェックして読み出すBANK位置を変更する。この増設はハッシュ単位で行う。ディスクを追加して二次キャッシュ20容量を拡張するとバンク数がM →N に増加する。
ハッシュ値HASHにヒット/ ミスヒットを含めて有効情報を含む管理情報L2UNITが接続しているかどうかを監視し、つながっているものが全て新バンク数に切り替わるのを待つ(移行制御機能38a)。
このように、本実施形態2によると、前述した実施形態1における作用効果に加えて、下記の効果を奏する。
(1).ハッシュ計算時にBANK単位に世代チェックを行うことで容量の動的拡張が可能となる。
(実施形態1,2の利点)
以下、本実施形態の特徴的な技術とその組み合わせによる利点をまとめると、以下のようになる。
特徴1) :メモリ12より安価でHDDより高速な大容量記憶媒体14( 例えばSSDなど) の利用
ディスクアレイ装置10に搭載可能な大容量記憶媒体14( SSDやフラッシュメモリなど) をディスクキャッシュに対する補助キャッシュ( 二次キャッシュ20) として使用する。
特徴2) :記憶媒体14の特性に依存しないデータDATA配置。
データアクセス単位をセクタ( 一般的には512Byte)単位とし記憶媒体14内にデータDATAの内容を示す管理情報セクタ24( 管理情報L2UNIT) とデータDATAそのものを格納するセクタ(L2DATA)に分類して配置する(図1、図3)。
特徴3) :記憶媒体14へのアクセス頻度を考慮したデータDATA管理。
ディスクアレイ装置10に搭載されるメモリ12上に管理情報L2UNITの一部をキャッシングしLRU 制御で管理する(図4)ことで記憶媒体14へのアクセス頻度を低減させる。
管理情報L2UNIT複数分を1つのデータDATA単位としてキャッシングするように制御することでn-way セットアソシアティブ制御でき(図6)、これによりスラッシング確率を下げてアクセス頻度を低減する。
特徴4) :アクセス効率・容量効率を考慮した管理情報L2UNIT。
管理情報L2UNITはデータL2DATAの複数セクタを管理するための情報として定義する。
管理情報L2UNITはページL2PAGEの集合データとし、ページL2PAGEはデータアクセス効率を向上させるため頻繁に更新が必要となるデータ範囲情報や属性範囲情報を省略した情報とする。
L2UNITセクタが管理するL2DATAセクタ数を増やすことで容量効率が向上する。
属性範囲情報は、Dirty(HDD未書き込み) /Clean(HDD書き込み済み) /Null( 未使用) 。
特徴5) :記憶媒体14の動的拡張( 容量追加など)
管理情報L2UNITとデータL2DATAのペアを複数集めたものをバンクBANKとして定義し記憶媒体14上に複数配置(図3)。
バンクBANK×n 単位に増設させることで、動作中に二次キャッシュ20の容量を拡張可能とする(図9)。
バンクBANKとして分散させることで記憶媒体14特有の消去(ERASE )処理などが行われる回数も結果として削減が可能となっている。
ここで、上記特徴3) 及び特徴4) により、管理情報L2UNITの更新頻度が下がり記憶媒体14へのアクセス頻度が改善される。
又、上記特徴4) により、大容量構成の管理情報L2UNIT増加がメモリ12上及び記憶媒体14上ともに抑えられる。
更に、上記特徴2) 及び特徴5) により、より二次キャッシュ20の大容量化が可能となる。
〔その他の例〕
次に、図10に、ディスクアレイ装置10に対して二系統のキャッシュ制御装置101,102を配置した例を示す。また、図10に示すディスクアレイ装置10は、コントローラ16内のメモリ12に一次キャッシュ18を搭載している。このディスクアレイ装置10に、HDDより高性能な記憶媒体14( SSDなど) を二次キャッシュ20として追加する。上記の記憶媒体14上に本実施形態で説明する情報を配置し二次キャッシュ20として管理する。
ここで、上記実施形態1及び実施形態2のキャッシュ制御装置101,102に共通する動作について説明する。
本実施形態1,2のキャッシュ制御方法は、キャッシュ制御装置101,102を使用する。キャッシュ制御装置は、上述したように、一次キャッシュ18を有するメモリ12と、二次キャッシュ20を有する記憶媒体14と、コントローラ16とを備えている。二次キャッシュ20は、データDATAを記憶するデータセクタ22と、管理情報L2UNITを記憶する管理情報セクタ24とを備えている。一次キャッシュ18は、アドレスの要約値DGSTと管理情報L2UNITとを接続させて記憶している。
そして、キャッシュ制御方法では、図7に示すように、データDATAを読み出す際に当該データDATAの要約値DGSTをコントローラ16の要約値計算部30が計算する(図7:ステップS1/要約値DGST計算手順)。
そして、要約値DGSTから一次キャッシュ18中の管理情報L2UNITを管理情報探索部32が探索して読出制御部34に与える(図7:ステップS7/管理情報L2UNIT探索手順)。さらに、読出制御部34が、管理情報L2UNITから二次キャッシュ20のデータセクタ22を特定して当該データL2DATAを読み出す(図7:ステップS9/読出制御手順)。
ここで、上述した各構成の動作部分における動作内容(特に図7における各動作ステップ)については、これをコンピュータで実行可能にプログラム化し、前述した各ステップ(手順)を実行するコントローラ16に実行させるようにしても良い。
この場合、プログラム化した各プログラムについては、不揮発性の記録媒体、例えば、ハードディスク、DVDやCD、又はフラッシュメモリなどに記録させても良い。その場合、本プログラムは、これら記録媒体からコンピュータによって読み出され、実行される。
また、プログラムの実行による他、論理回路の集積により実現することもできる。
上述した各々の実施形態について、その新規な技術内容の要点をまとめると、以下のようになる。なお、上記実施形態の一部又は全部は、新規な技術としては以下のようにまとめられるが、本発明は必ずしもこれに限定されるものではない。
(付記1:図1)
データDATAを格納するディスク部10の一次キャッシュ18を有するメモリ12と、前記一次キャッシュ18に対する二次キャッシュ20を有し前記メモリ12より大容量で低速な記憶媒体14と、前記一次キャッシュ18及び前記二次キャッシュ20を使用した前記データDATAの転送を制御するコントローラ16とを備え、
前記二次キャッシュ20が、予め定められた容量のセクタを単位として前記データDATAを記憶するデータセクタ22と、複数の前記データセクタ22のアドレスを含む管理情報L2UNITを記憶する管理情報セクタ24とを備え、
前記一次キャッシュ18が、前記データDATAのアドレスから算出される要約値DGST(Hash情報)と、当該データDATAをキャッシュした前記二次キャッシュ20中の前記データセクタ22のアドレスを含む前記管理情報L2UNITとを接続させて記憶し、
前記コントローラ16が、
前記データDATAを読み出す際に当該データDATAの要約値DGSTを計算する要約値計算部30と、
前記要約値DGSTから前記一次キャッシュ18中の前記管理情報L2UNITを探索する管理情報探索部32と、
前記管理情報L2UNITから前記二次キャッシュ20の前記データセクタ22を特定して当該データL2DATAを読み出す読出制御部34とを備えたことを特徴とするキャッシュ制御装置。
この付記1では、二次キャッシュ20の管理情報L2UNITを一次キャッシュ18に記録するため、二次キャッシュ20が大容量であっても、管理情報L2UNITを一次キャッシュ18にて高速に探索することができる。従って、大容量の二次キャッシュ20を高速に管理することができる。
(付記2:図1)
前記コントローラ16が、
前記二次キャッシュ20の管理情報L2UNITをキャッシュ制御の対象として前記一次キャッシュ18にキャッシュさせる管理情報キャッシュ制御部36を備えたことを特徴とする付記1記載のキャッシュ制御装置。これにより、二次キャッシュ20へのアクセス頻度を低減させることができる。
(付記3:図1、図2、図3)
前記管理情報キャッシュ制御部36が、
前記データDATAの読み出しに際して前記管理情報L2UNITが前記一次キャッシュ18にキャッシュされていない際には当該管理情報L2UNITを前記二次キャッシュ20から読み出すと共に当該管理情報L2UNITを前記要約値DGSTに接続させて前記一次キャッシュ18に格納する格納制御機能36aと、
前記一次キャッシュ18の容量に応じて古い前記管理情報L2UNITを新しい管理情報L2UNITに入れ替える入替制御機能36bとを備えたことを特徴とする付記2記載のキャッシュ制御装置。
この付記3では、データDATAのアドレスから要約値DGSTを算出し、二次キャッシュ20の管理情報L2UNITと接続するため、転送対象のデータDATAのアドレスから二次キャッシュ20のデータDATAの有無を直接的に計算することができる。
(付記4:図1、図4)
前記要約値DGSTが前記データDATAのアドレスのハッシュ値HASHであり、
前記管理情報キャッシュ制御部36が、
前記複数のデータL2DATA及び管理情報L2UNITの複数組を1つのバンクBANKとして当該バンクBANK単位に当該管理情報L2UNITの前記一次キャッシュ18へとキャッシュを制御するバンク管理機能36cと、
前記ハッシュ値HASHが競合する際にバンクBANKのバンク番号を使用して前記バンクBANK毎に当該ハッシュ値HASHと対応させるハッシュ値管理機能36dとを備えたことを特徴とする付記3記載のキャッシュ制御装置。
付記4では、ハッシュ値HASHとバンク番号との組み合わせで管理情報L2UNITへのポインタの競合を回避することで、二次キャッシュ20を大容量化しても、データDATAのアドレスから二次キャッシュ20のヒット・ミスヒットを判定することができる。
(付記5:図1、図5)
前記管理情報L2UNITは、複数の前記データセクタ22のそれぞれ対応したページL2PAGEを有し、
当該ページL2PAGEは、前記データDATAのアドレスとなる論理ディスク番号LDN 及び論理セクタ番号LSN と、当該キャッシュ対象の入替制御で参照される世代GEN とを有し、当該ダーティー又はクリーンを特定する属性範囲情報を有さない、ことを特徴とする付記1,2,3又は4記載のキャッシュ制御装置。
付記5では、属性範囲情報を有さないことで、管理情報L2UNITへのアクセス数が低減する。
(付記6:図1、図6)
前記二次キャッシュ20が、前記バンク毎の複数ウェイのセクタ群を有し、
管理情報キャッシュ制御部36が、前記複数ウェイのセクタ群を対象としたセットアソシアティブ制御をする複数ウェイ制御機能36eを備えたことを特徴とする付記4又は5記載のキャッシュ制御装置。
付記6では、複数のウェイを対象としたセットアソシアティブ制御をする。これにより、スラッシング(ページL2PAGE置き換えの頻発)が生じる確率を低下させることができる。
(付記7:図1、図8)
前記コントローラ16が、前記二次キャッシュ20の容量が前記バンクBANK単位に動的に追加された際に、前記ハッシュ値HASHの状態が前記容量の追加前の旧バンク数、移行期又は新バンク数のいずれかであるかに応じて読み出し対象の前記バンクBANKを選別する動的追加制御部38を備えたことを特徴とする付記3,4,5又は6記載のキャッシュ制御装置。
付記7では、ハッシュ値HASHとバンク数との管理で二次キャッシュ20を動的に増設することができる。
(付記8:図8)
前記動的追加制御部38が、全てのハッシュ値HASHが新バンク数に切り替わるまで前記管理情報L2UNITのキャッシュ制御をすることで前記バンク数の移行を制御する移行制御機能38aを備えた、ことを特徴とする請求項7記載のキャッシュ制御装置。
付記8では、管理情報L2UNITをキャッシュ制御することで二次キャッシュ20を動的に自動増設することができる。
(付記9:図1、図7)
データDATAを格納するディスク部10の一次キャッシュ18を有するメモリ12と、前記一次キャッシュ18に対する二次キャッシュ20を有し前記メモリ12より大容量で低速な記憶媒体14と、前記一次キャッシュ18及び前記二次キャッシュ20を使用した前記データDATAの転送を制御するコントローラ16とを備え、
前記二次キャッシュ20が、予め定められた容量のセクタを単位として前記データDATAを記憶するデータセクタ22と、複数の前記データセクタ22のアドレスを含む管理情報L2UNITを記憶する管理情報セクタ24とを備え、
前記一次キャッシュ18が、前記データDATAのアドレスから算出される要約値DGST(Hash情報)と、当該データDATAをキャッシュした前記二次キャッシュ20中の前記データセクタ22のアドレスを含む前記管理情報L2UNITとを接続させて記憶したキャッシュ制御装置を使用してキャッシュを制御するキャッシュ制御方法であって、
前記データDATAを読み出す際に当該データDATAの要約値DGSTを前記コントローラ16の要約値計算部30が計算し、
前記要約値DGSTから前記一次キャッシュ18中の前記管理情報L2UNITを管理情報探索部32が探索して読出制御部34に与え、
前記読出制御部34が、前記管理情報L2UNITから前記二次キャッシュ20の前記データセクタ22を特定して当該データL2DATAを読み出す、ことを特徴とするキャッシュ制御方法。
(付記10:図1、図7)
データDATAを格納するディスク部10の一次キャッシュ18を有するメモリ12と、前記一次キャッシュ18に対する二次キャッシュ20を有し前記メモリ12より大容量で低速な記憶媒体14と、前記一次キャッシュ18及び前記二次キャッシュ20を使用した前記データDATAの転送を制御するコントローラ16とを備え、
前記二次キャッシュ20が、予め定められた容量のセクタを単位として前記データDATAを記憶するデータセクタ22と複数の前記データセクタ22のアドレスを含む管理情報L2UNITを記憶する管理情報セクタ24とを備え、
前記一次キャッシュ18が、前記データDATAのアドレスから算出される要約値DGST(Hash情報)と当該データDATAをキャッシュした前記二次キャッシュ20中の前記データセクタ22のアドレスを含む前記管理情報L2UNITとを接続させて記憶したキャッシュ制御装置にあって、
前記データDATAを読み出す際に当該データDATAの要約値DGSTを計算する要約値DGST計算手順(符号30対応)、
前記要約値DGSTから前記一次キャッシュ18中の前記管理情報L2UNITを探索する管理情報L2UNIT探索手順(符号32対応)、
および前記管理情報L2UNITから前記二次キャッシュ20の前記データセクタ22を特定して当該データL2DATAを読み出す読出制御手順(符号34対応)、
を設け、これらを前記コントローラ16に実現させるようにしたことを特徴とするキャッシュ制御用プログラム。
(付記11:図1、図3)
前記コントローラ16に、前記二次キャッシュ20の管理情報L2UNITをキャッシュ制御の対象として前記一次キャッシュ18にキャッシュさせる管理情報キャッシュ制御手順(符号36対応)をさらに実現させるようにしたことを特徴とする付記10記載のキャッシュ制御用プログラム。
(付記12:図8、図9)
前記コントローラ16に、
前記複数のデータ及び管理情報の複数組を1つのバンクBANKとして当該バンクBANK単位に当該管理情報の前記一次キャッシュへとキャッシュを制御するバンク管理手順(符号36c対応)、
前記ハッシュ値HASHが競合する際にバンクBANKのバンク番号を使用して前記バンクBANK毎に当該ハッシュ値HASHと対応させるハッシュ値管理手順(符号36d対応)、
および前記二次キャッシュ20の容量が前記バンクBANK単位に動的に追加された際に、前記ハッシュ値HASHの状態が前記容量の追加前の旧バンク数、移行期又は新バンク数のいずれかであるかに応じて読み出し対象の前記バンクBANKを選別する動的追加制御手順(符号38対応)を、
更に実現させるようにしたことを特徴とする付記11記載のキャッシュ制御用プログラム。
本発明は、キャッシュを利用する全ての外部記憶装置に対して適用可能である。
特にディスク装置やディスクアレイ装置10の場合に、本発明はその効果を顕著に発揮しうる。
10 ディスク部、ディスクアレイ装置
12 メモリ
14 記憶媒体
16 コントローラ
18 一次キャッシュ
20 二次キャッシュ
22 データセクタ
24 管理情報セクタ
30 要約値計算部
32 管理情報探索部
34 読出制御部
36 管理情報キャッシュ制御部
36a 格納制御機能
36b 入替制御機能
36c バンク管理機能
36d ハッシュ値管理機能
36e 複数ウェイ制御機能
38 動的追加制御部
38a 移行制御機能

Claims (10)

  1. データを格納するディスク部の一次キャッシュを有するメモリと、前記一次キャッシュに対する二次キャッシュを有し前記メモリより大容量で低速な記憶媒体と、前記一次キャッシュ及び前記二次キャッシュを使用した前記データの転送を制御するコントローラとを備え、且つ前記二次キャッシュが、予め定められた容量のセクタを単位として前記データを記憶するデータセクタと、複数の前記データセクタのアドレスを含む管理情報を記憶する管理情報セクタとを備えると共に、
    前記一次キャッシュには、前記データのアドレスから算出される要約値と、当該データをキャッシュした前記二次キャッシュ中の前記データセクタのアドレスを含む前記管理情報とが接続させて記憶されており、
    前記コントローラが、
    前記データを読み出す際に当該データの要約値を計算する要約値計算部と、前記要約値から前記一次キャッシュ中の前記管理情報を探索する管理情報探索部と、前記管理情報から前記二次キャッシュの前記データセクタを特定して当該データを読み出す読出制御部と、を備えていることを特徴としたキャッシュ制御装置。
  2. 前記コントローラが、
    前記二次キャッシュの管理情報をキャッシュ制御の対象として前記一次キャッシュにキャッシュさせる管理情報キャッシュ制御部を備えたことを特徴とする請求項1記載のキャッシュ制御装置。
  3. 前記管理情報キャッシュ制御部が、
    前記データの読み出しに際して前記管理情報が前記一次キャッシュにキャッシュされていない際には当該管理情報を前記二次キャッシュから読み出すと共に当該管理情報を前記要約値に接続させて前記一次キャッシュに格納する格納制御機能と、
    前記一次キャッシュの容量に応じて古い前記管理情報を新しい管理情報に入れ替える入替制御機能と、を備えたことを特徴とする請求項2記載のキャッシュ制御装置。
  4. 前記要約値が前記データのアドレスのハッシュ値HASHであり、
    前記管理情報キャッシュ制御部が、
    前記複数のデータ及び管理情報の複数組を1つのバンクBANKとして当該バンクBANK単位に当該管理情報の前記一次キャッシュへとキャッシュを制御するバンク管理機能と、
    前記ハッシュ値HASHが競合する際にバンクBANKのバンク番号を使用して前記バンクBANK毎に当該ハッシュ値HASHと対応させるハッシュ値管理機能とを備えたことを特徴とする請求項3記載のキャッシュ制御装置。
  5. 前記管理情報は複数の前記データセクタのそれぞれ対応したページを有しており、
    当該ページは、前記データのアドレスとなる論理ディスク番号及び論理セクタ番号と、当該キャッシュ対象の入替制御で参照される世代とを有し、ダーティー又はクリーンを特定する属性範囲情報を有さない、ことを特徴とする請求項1,2,3又は4記載のキャッシュ制御装置。
  6. 前記二次キャッシュが、前記バンク毎の複数ウェイのセクタ群を有しており、
    管理情報キャッシュ制御部が、前記複数ウェイのセクタ群を対象としたセットアソシアティブ制御をする複数ウェイ制御機能を備えたことを特徴とする請求項5記載のキャッシュ制御装置。
  7. 前記コントローラが、前記二次キャッシュの容量が前記バンクBANK単位に動的に追加された際に、前記ハッシュ値HASHの状態が前記容量の追加前の旧バンク数、移行期又は新バンク数のいずれかであるかに応じて読み出し対象の前記バンクBANKを選別する動的追加制御部を備えた、ことを特徴とする請求項6記載のキャッシュ制御装置。
  8. 前記動的追加制御部が、全てのハッシュ値HASHが新バンク数に切り替わるまで前記管理情報のキャッシュ制御をすることで前記バンク数の移行を制御する移行制御機能を備えた、ことを特徴とする請求項7記載のキャッシュ制御装置。
  9. データを格納するディスク部の一次キャッシュを有するメモリと、前記一次キャッシュに対する二次キャッシュを有し前記メモリより大容量で低速な記憶媒体と、前記一次キャッシュ及び前記二次キャッシュを使用した前記データの転送を制御するコントローラとを備えると共に、前記二次キャッシュが、予め定められた容量のセクタを単位として前記データを記憶するデータセクタと複数の前記データセクタのアドレスを含む管理情報を記憶する管理情報セクタとを備え、前記一次キャッシュが、前記データのアドレスから算出される要約値と当該データをキャッシュした前記二次キャッシュ中の前記データセクタのアドレスを含む前記管理情報とを接続させて記憶したキャッシュ制御装置にあって、当該キャッシュ制御装置を使用して前記キャッシュを制御するキャッシュ制御方法であって、
    前記データを前記データセクタから読み出す際しては、まず当該データの要約値を前記コントローラの要約値計算部が計算し、
    前記計算された要約値から前記一次キャッシュ中の前記管理情報を前記コントローラの管理情報探索部が探索し、
    この探索されてなる前記管理情報から前記コントローラの読出制御部が、前記二次キャッシュの前記データセクタを特定して当該データを読み出すようにしたことを特徴とするキャッシュ制御方法。
  10. データを格納するディスク部の一次キャッシュを有するメモリと、前記一次キャッシュに対する二次キャッシュを有し前記メモリより大容量で低速な記憶媒体と、前記一次キャッシュ及び前記二次キャッシュを使用した前記データの転送を制御するコントローラとを備えると共に、前記二次キャッシュが、予め定められた容量のセクタを単位として前記データを記憶するデータセクタと複数の前記データセクタのアドレスを含む管理情報を記憶する管理情報セクタとを備え、前記一次キャッシュが、前記データのアドレスから算出される要約値と当該データをキャッシュした前記二次キャッシュ中の前記データセクタのアドレスを含む前記管理情報とを接続させて記憶したキャッシュ制御装置にあって、当該キャッシュ制御装置にあって、
    前記データを前記データセクタから読み出す際し当該データの要約値を計算する要約値計算手順、
    前記計算された要約値から前記一次キャッシュ中の前記管理情報を探索する管理情報探索手順、
    および前記管理情報から前記二次キャッシュの前記データセクタを特定して前記データを読み出す読出制御手順、
    を設け、これらの各手順を前記コントローラに実現させるようにしたことを特徴とするキャッシュ制御用プログラム。
JP2012095558A 2012-04-19 2012-04-19 キャッシュ制御装置、キャッシュ制御方法、及びそのプログラム Pending JP2013222434A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012095558A JP2013222434A (ja) 2012-04-19 2012-04-19 キャッシュ制御装置、キャッシュ制御方法、及びそのプログラム
US13/865,670 US9268700B2 (en) 2012-04-19 2013-04-18 Cache control device, cache control method, and program thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012095558A JP2013222434A (ja) 2012-04-19 2012-04-19 キャッシュ制御装置、キャッシュ制御方法、及びそのプログラム

Publications (1)

Publication Number Publication Date
JP2013222434A true JP2013222434A (ja) 2013-10-28

Family

ID=49381241

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012095558A Pending JP2013222434A (ja) 2012-04-19 2012-04-19 キャッシュ制御装置、キャッシュ制御方法、及びそのプログラム

Country Status (2)

Country Link
US (1) US9268700B2 (ja)
JP (1) JP2013222434A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014142337A1 (ja) * 2013-03-15 2014-09-18 日本電気株式会社 ストレージ装置と方法及びプログラム
JP2017102760A (ja) * 2015-12-02 2017-06-08 メトロウェザー株式会社 風力発電量予測システム、風力発電量予測プログラム、および風力発電量予測方法

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9128854B1 (en) * 2012-09-28 2015-09-08 Emc Corporation System and method for data prediction
KR20200004119A (ko) * 2018-07-03 2020-01-13 에스케이하이닉스 주식회사 메모리 시스템 및 그의 동작 방법

Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6222162A (ja) * 1985-07-23 1987-01-30 Alps Electric Co Ltd デイスクキヤツシユ制御方式
JPH04148225A (ja) * 1990-10-08 1992-05-21 Hitachi Ltd ファイルアクセス制御方式および装置
JPH09212423A (ja) * 1996-01-25 1997-08-15 Internatl Business Mach Corp <Ibm> 2重目的キャッシュ・タグ・アレイを持つマイクロプロセッサ・アーキテクチャ
JPH1031622A (ja) * 1996-07-17 1998-02-03 Hitachi Ltd キャッシュメモリ装置
JPH11259361A (ja) * 1998-03-13 1999-09-24 Mitsubishi Electric Corp キャッシュメモリ制御装置
JP2000010860A (ja) * 1998-06-16 2000-01-14 Hitachi Ltd キャッシュメモリ制御回路及びプロセッサ及びプロセッサシステム及び並列プロセッサシステム
JP2001166993A (ja) * 1999-12-13 2001-06-22 Hitachi Ltd 記憶制御装置およびキャッシュメモリの制御方法
JP2004213647A (ja) * 2002-12-27 2004-07-29 Internatl Business Mach Corp <Ibm> データ記憶装置およびシステム用のログ構造の書込みキャッシュ
JP2005165528A (ja) * 2003-12-01 2005-06-23 Nec Corp ディスクアレイ装置およびディスクキャッシュ管理方法ならびにプログラム
JP2006099802A (ja) * 2005-12-12 2006-04-13 Hitachi Ltd 記憶制御装置およびキャッシュメモリの制御方法
JP2007058349A (ja) * 2005-08-22 2007-03-08 Fujitsu Ltd キャッシュシステム
JP2008059057A (ja) * 2006-08-29 2008-03-13 Hitachi Ltd 計算機システム及びプロセッサの制御方法
JP2008234490A (ja) * 2007-03-22 2008-10-02 Sony Computer Entertainment Inc 情報処理装置および情報処理方法
JP2009129440A (ja) * 2007-11-19 2009-06-11 Korea Electronics Telecommun キャッシュメモリ及びその制御方法
JP2012014435A (ja) * 2010-06-30 2012-01-19 Toshiba Corp 情報処理装置およびデータの復旧方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6321321B1 (en) * 1999-06-21 2001-11-20 Vlsi Technology, Inc. Set-associative cache-management method with parallel and single-set sequential reads
US7272687B2 (en) * 2005-02-01 2007-09-18 Lsi Corporation Cache redundancy for LSI raid controllers
JP4900807B2 (ja) 2007-03-06 2012-03-21 株式会社日立製作所 ストレージシステム及びデータ管理方法
JP4691122B2 (ja) 2008-03-01 2011-06-01 株式会社東芝 メモリシステム
JP5434738B2 (ja) 2010-03-26 2014-03-05 日本電気株式会社 ディスク装置

Patent Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6222162A (ja) * 1985-07-23 1987-01-30 Alps Electric Co Ltd デイスクキヤツシユ制御方式
JPH04148225A (ja) * 1990-10-08 1992-05-21 Hitachi Ltd ファイルアクセス制御方式および装置
JPH09212423A (ja) * 1996-01-25 1997-08-15 Internatl Business Mach Corp <Ibm> 2重目的キャッシュ・タグ・アレイを持つマイクロプロセッサ・アーキテクチャ
JPH1031622A (ja) * 1996-07-17 1998-02-03 Hitachi Ltd キャッシュメモリ装置
JPH11259361A (ja) * 1998-03-13 1999-09-24 Mitsubishi Electric Corp キャッシュメモリ制御装置
JP2000010860A (ja) * 1998-06-16 2000-01-14 Hitachi Ltd キャッシュメモリ制御回路及びプロセッサ及びプロセッサシステム及び並列プロセッサシステム
JP2001166993A (ja) * 1999-12-13 2001-06-22 Hitachi Ltd 記憶制御装置およびキャッシュメモリの制御方法
JP2004213647A (ja) * 2002-12-27 2004-07-29 Internatl Business Mach Corp <Ibm> データ記憶装置およびシステム用のログ構造の書込みキャッシュ
JP2005165528A (ja) * 2003-12-01 2005-06-23 Nec Corp ディスクアレイ装置およびディスクキャッシュ管理方法ならびにプログラム
JP2007058349A (ja) * 2005-08-22 2007-03-08 Fujitsu Ltd キャッシュシステム
JP2006099802A (ja) * 2005-12-12 2006-04-13 Hitachi Ltd 記憶制御装置およびキャッシュメモリの制御方法
JP2008059057A (ja) * 2006-08-29 2008-03-13 Hitachi Ltd 計算機システム及びプロセッサの制御方法
JP2008234490A (ja) * 2007-03-22 2008-10-02 Sony Computer Entertainment Inc 情報処理装置および情報処理方法
JP2009129440A (ja) * 2007-11-19 2009-06-11 Korea Electronics Telecommun キャッシュメモリ及びその制御方法
JP2012014435A (ja) * 2010-06-30 2012-01-19 Toshiba Corp 情報処理装置およびデータの復旧方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014142337A1 (ja) * 2013-03-15 2014-09-18 日本電気株式会社 ストレージ装置と方法及びプログラム
JP2017102760A (ja) * 2015-12-02 2017-06-08 メトロウェザー株式会社 風力発電量予測システム、風力発電量予測プログラム、および風力発電量予測方法

Also Published As

Publication number Publication date
US20130282977A1 (en) 2013-10-24
US9268700B2 (en) 2016-02-23

Similar Documents

Publication Publication Date Title
US10126964B2 (en) Hardware based map acceleration using forward and reverse cache tables
JP5907739B2 (ja) 不揮発性記憶装置
US9158706B2 (en) Selective space reclamation of data storage memory employing heat and relocation metrics
US10740251B2 (en) Hybrid drive translation layer
US20140208038A1 (en) Sectored cache replacement algorithm for reducing memory writebacks
Wu et al. BPAC: An adaptive write buffer management scheme for flash-based solid state drives
KR20190058316A (ko) 예측에 기초하여 효율적으로 캐시 라인을 관리하는 시스템 및 방법
US20120102273A1 (en) Memory agent to access memory blade as part of the cache coherency domain
KR101297442B1 (ko) 공간 지역성을 고려한 요구 기반 플래시 메모리 변환 계층을 포함하는 낸드 플래시 메모리 시스템
JP2009020881A (ja) 可変のページサイズのメモリ編成を実装する処理システム
CN102841854A (zh) 根据动态分级存储器缓存认知执行数据读取的方法和系统
US20130198453A1 (en) Hybrid storage device inclucing non-volatile memory cache having ring structure
JP2011204060A (ja) ディスク装置
JP6323445B2 (ja) ストレージ装置と方法及びプログラム
JP2013222434A (ja) キャッシュ制御装置、キャッシュ制御方法、及びそのプログラム
CN106909323B (zh) 适用于dram/pram混合主存架构的页缓存方法及混合主存架构系统
JP2019521447A (ja) キャッシュエントリ転送のためにキャッシュ位置情報を記憶するシステム及び方法
KR101191650B1 (ko) 낸드 플래시 메모리에서 데이터의 주소를 사상시키는 장치 및 방법
JP7132491B2 (ja) メモリ制御装置、メモリ制御プログラムおよびメモリ制御方法
CN109478163B (zh) 用于在高速缓存条目处标识存储器访问请求的待决的系统和方法
JP2010191672A (ja) データ記憶システム
KR101976320B1 (ko) 라스트 레벨 캐시 메모리 및 이의 데이터 관리 방법
KR101353967B1 (ko) 환형 구조의 비휘발성 메모리 캐쉬에 데이터를 읽고 쓰기 위한 데이터 처리 방법
KR101373613B1 (ko) 환형 구조의 비휘발성 메모리 캐쉬를 포함하는 하이브리드 스토리지 장치
US20240061786A1 (en) Systems, methods, and apparatus for accessing data in versions of memory pages

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130809

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140312

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140408

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20141007