JP2018106573A - ストレージ制御装置及び制御プログラム - Google Patents

ストレージ制御装置及び制御プログラム Download PDF

Info

Publication number
JP2018106573A
JP2018106573A JP2016254801A JP2016254801A JP2018106573A JP 2018106573 A JP2018106573 A JP 2018106573A JP 2016254801 A JP2016254801 A JP 2016254801A JP 2016254801 A JP2016254801 A JP 2016254801A JP 2018106573 A JP2018106573 A JP 2018106573A
Authority
JP
Japan
Prior art keywords
write
cache
mode
write request
operation mode
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
JP2016254801A
Other languages
English (en)
Inventor
拓郎 隈部
Takuro Kumabe
拓郎 隈部
基裕 酒井
Motohiro Sakai
基裕 酒井
圭馬 阿部
Keima Abe
圭馬 阿部
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 JP2016254801A priority Critical patent/JP2018106573A/ja
Priority to US15/819,063 priority patent/US10628048B2/en
Publication of JP2018106573A publication Critical patent/JP2018106573A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • 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/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • 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/0875Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
    • 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/0877Cache access modes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/45Caching of specific data in cache memory
    • G06F2212/452Instruction code

Landscapes

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

Abstract

【課題】ストレージ装置の性能を向上させる。
【解決手段】記憶装置40に対する書込要求に係る書込アドレスのキャッシュメモリ31におけるキャッシュヒット状況に基づいて、前記書込要求に基づく書込処理の動作モードをライトバックモード及びライトスルーモードのいずれかに決定する決定部332と、決定した動作モードに従って、前記キャッシュメモリ31を介して、前記書込要求に基づく書込処理を行なう書込処理部333と、をそなえる。
【選択図】図2

Description

本発明は、ストレージ制御装置及び制御プログラムに関する。
記憶装置としてSSD(Solid State Drive)等のフラッシュメモリを用いた、AFA(All Flash Array)と呼ばれるストレージ装置が知られている。AFAでは、HDD(Hard Disk Drive)とは異なるSSDの特徴を考慮した制御を行なうことで、アクセス等の性能向上を図ることができる。
ところで、ストレージ装置では、記憶装置へのアクセスを制御する制御装置と記憶装置との間の性能差を埋めるために、制御装置にDRAM(Dynamic Random Access Memory)等を用いたキャッシュメモリが設けられることがある。なお、ストレージ装置が複数の制御装置をそなえる場合、キャッシュメモリは各制御装置に設けられてよい。
キャッシュメモリを利用する動作モードとしては、WriteBackモード(以下、「WBモード」と表記する場合がある)やWriteThroughモード(以下、「WTモード」と表記する場合がある)が知られている。なお、「WriteBack」は、「AfterWrite」或いは「WriteAfter」と称されてもよい。
WBモードは、制御装置がホスト装置からのWrite I/O(Input / Output)に応じてキャッシュメモリにデータを書き込み、制御装置間でキャッシュデータの二重化が完了した時点で、ホスト装置にWrite I/Oの応答を返す動作モードである。WBモードでは、記憶装置にはデータが存在せずにキャッシュメモリ上に当該データが存在する状況が発生するため、制御装置間でキャッシュデータの二重化処理を行なうことで、キャッシュデータの冗長性を保持する。
WTモードは、Write I/Oに応じて制御装置がキャッシュメモリを介して記憶装置(例えば、AFAではSSD)にデータを書き込んだ時点でホスト装置に応答を返す動作モードである。WTモードでは、I/Oに係る処理の延長で記憶装置にデータが書き込まれるため、キャッシュデータの冗長性を保持する必要が無く、制御装置間での二重化処理は不要である。
WTモードでは、ホスト装置にI/Oに係るステータスを応答するまでの間にディスクアクセスを伴うため、WBモードと比較してレスポンスが低下しやすい。このため、ストレージ装置は、例えば、基本的にはWBモードで運用し、バッテリ等の電源異常等が発生した場合に動作モードをWBモードからWTモードに切り替えて運用する場合がある。
特表2013−510360号公報 特開2006−277205号公報 特表2013−528843号公報 特開2006−92120号公報 特表2007−528079号公報
WBモードでは、制御装置のプロセッサ、例えばCPU(Central Processing Unit)は、キャッシュデータの二重化処理を行なう。AFAのようなストレージ装置では、キャッシュメモリから記憶装置にデータを書き出す(デステージする)場合の書込性能がHDDよりも高いため、プロセッサの処理負荷によっては、プロセッサの処理性能がボトルネックになる場合がある。
例えば、キャッシュミスが発生する場合にはキャッシュの獲得待ちが発生する。プロセッサの処理負荷が高い場合、WBモードでは、二重化処理のオーバヘッド分のプロセッサ資源がさらに割かれてしまう。このように、プロセッサの処理負荷の増加に伴い、高性能な記憶装置を搭載するストレージ装置の性能が十分に発揮されないことがある。
1つの側面では、本発明は、ストレージ装置の性能を向上させることを目的の1つとする。
なお、前記目的に限らず、後述する発明を実施するための形態に示す各構成により導かれる作用効果であって、従来の技術によっては得られない作用効果を奏することも本発明の他の目的の1つとして位置付けることができる。
1つの側面では、ストレージ制御装置は、決定部と、書込処理部と、をそなえてよい。前記決定部は、記憶装置に対する書込要求に係る書込アドレスのキャッシュメモリにおけるキャッシュヒット状況に基づいて、前記書込要求に基づく書込処理の動作モードをライトバックモード及びライトスルーモードのいずれかに決定してよい。前記書込処理部は、決定した動作モードに従って、前記キャッシュメモリを介して、前記書込要求に基づく書込処理を行なってよい。
1つの側面では、ストレージ装置の性能を向上させることができる。
一実施形態に係るストレージシステムの構成例を示すブロック図である。 ストレージ装置の機能構成例を示すブロック図である。 空きキャッシュページ管理情報及びキャッシュ獲得待ちキューの一例を示す図である。 空きキャッシュページ管理情報及びキャッシュ獲得待ちキューの一例を示す図である。 キャッシュ制御情報の一例を示す図である。 I/O制御情報の一例を示す図である。 ストレージ装置の性能モデルとキャッシュモードとの性能面における関係の一例を示す図である。 Write I/Oの処理範囲が複数のキャッシュページに亘る場合の動作モード判定部の処理の一例を示す図である。 CMによるWrite I/Oの受信処理の動作例を示すフローチャートである。 CMによる書出処理の動作例を示すフローチャートである。
以下、図面を参照して本発明の実施の形態を説明する。ただし、以下に説明する実施形態は、あくまでも例示であり、以下に明示しない種々の変形や技術の適用を排除する意図はない。例えば、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。なお、以下の説明で用いる図面において、同一符号を付した部分は、特に断らない限り、同一若しくは同様の部分を表す。
〔1〕一実施形態
〔1−1〕ストレージシステムの構成例
図1に示すように、一実施形態に係るストレージシステム1は、例示的に、ストレージ装2及びホスト装置5をそなえてよい。なお、ストレージシステム1は、複数のストレージ装置2をそなえてスケールアウト型のストレージシステムを構成してもよい。また、ストレージ装置2には、複数のホスト装置5が接続されてもよい。
ホスト装置5は、ストレージ装置2に対して、Read/Write等のI/Oを行なう上位装置の一例である。なお、以下の説明で、「I/O」とは、アクセス先のアドレス情報(例えば論理アドレス)、及び、書込対象のデータ(書込アクセスの場合)を少なくとも含むアクセス要求であるものとする。一例として、ホスト装置5は、512B又は4KB等のサイズの1以上の論理アドレス(例えばLBA;Logical Block Address)を指定したI/Oを発行してよい。
ホスト装置5としては、サーバ、PC(Personal Computer)、タブレット、又は、PDA(Personal Digital Assistant)等のコンピュータが挙げられる。なお、ホスト装置5は、図示しないネットワークを介してストレージ装置2に接続されてもよい。ネットワークには、SAN(Storage Area Network)が含まれてもよく、また、LAN(Local Area Network)やWAN(Wide Area Network)等のイントラネット、或いはインターネット等が含まれてもよい。
ストレージ装置2は、ホスト装置5に対して記憶領域を提供する装置であり、非限定的な一例として、AFAが挙げられる。ストレージ装置2は、例示的に、1以上(図1では2つ)のCM(Controller Module)3、及び、1以上(図1では1つ)のDE(Drive Enclosure)4をそなえてよい。
CM3は、ホスト装置5から複数の記憶装置40に対するアクセスを制御するストレージ制御装置(コントローラ)又は情報処理装置(コンピュータ)の一例である。
図1に例示するように、CM3は、他のCM3との間で冗長化(例えば二重化)されてよい。なお、ストレージ装置2が複数のCM3をそなえる場合、これらのCM3は、例えばCE(Controller Enclosure)等の筐体に収容されてもよい。
DE4は、複数の記憶装置40をそなえ、CM3からの要求に応じて記憶装置40に対するデータ等の書き込み又は読み出し等の種々のアクセスを行なってよい。DE4では、CM3による制御の下、これらの記憶装置40を用いて1以上のストレージグループを構築してもよい。ストレージグループとしては、例えば、RAID(Redundant Arrays of Inexpensive Disks)グループが挙げられる。なお、図1の例では、ストレージ装置2内に1つのDE4が示されているが、ストレージ装置2は、例えば、カスケード状に接続(縦列接続)した複数のDE4をそなえてもよい。
記憶装置40は、種々のデータやプログラム等を格納するハードウェアの一例である。記憶装置40としては、例えばSSD等の半導体ドライブ装置(「フラッシュメモリ」と称されてもよい)等の各種記憶装置が挙げられる。なお、記憶装置40として、SSD以外の記憶装置、例えば、HDD等の磁気ディスク装置が用いられてもよい。上述のように、ストレージ装置2としてはAFAが挙げられるが、HDDの性能を活かせるシーケンシャルアクセスが多い運用等の所定の条件下では、高性能なHDD(例えば15000rpm(revolution per minute)前後又はそれ以上等の高回転数のHDD)が採用されてもよい。以下、記憶装置40を「記憶デバイス」又は単に「デバイス」と表記する場合がある。
次に、図1を参照して、CM3のハードウェア構成例について説明する。図1に示すように、CM3は、例示的に、プロセッサ3a、メモリ3b、記憶部3c、ホストIF(Interface)3d−1、CM間IF3d−2、デバイスIF3d−3、入出力部3e、及び読取部3fをそなえてよい。
プロセッサ3aは、種々の制御や演算を行なう演算処理装置の一例である。プロセッサ3aは、各ブロック3b〜3fとバス3iで相互に通信可能に接続されてよい。プロセッサ3aとしては、CPU、MPU、DSP、ASIC、PLD(例えばFPGA)等の集積回路(IC)が用いられてもよい。なお、CPUはCentral Processing Unitの略称であり、MPUはMicro Processing Unitの略称であり、DSPはDigital Signal Processorの略称である。また、ASICはApplication Specific Integrated Circuitの略称であり、PLDはProgrammable Logic Deviceの略称であり、FPGAはField Programmable Gate Arrayの略称である。
メモリ3bは、種々のデータやプログラムを格納するハードウェアの一例である。メモリ3bとしては、例えばRAM等の揮発性メモリが挙げられる。
記憶部3cは、種々のデータやプログラム等を格納するハードウェアの一例である。例えば、記憶部3cは、CM3の2次記憶装置として使用されてよく、ファームウェアプログラム及び各種データが格納されてよい。記憶部3cとしては、例えば、HDD等の磁気ディスク装置、SSD等の半導体ドライブ装置、不揮発性メモリ等の各種記憶装置が挙げられる。不揮発性メモリとしては、例えば、SCM(Storage Class Memory)、ROM(Read Only Memory)等が挙げられる。記憶部3cは、CM3の各種機能の全部若しくは一部を実現するプログラム3gを格納してもよい。
ホストIF3d−1、CM間IF3d−2、及びデバイスIF3d−3は、それぞれ、ホスト装置5、他のCM3、及びデバイス(例えばDE4内の記憶装置40)との間の接続及び通信の制御等を行なう通信インタフェースの一例である。なお、CM3は、作業者の作業端末との間の接続及び通信の制御等を行なう通信インタフェースをそなえてもよく、当該通信インタフェースを用いて、図示しないネットワークからプログラム3gをダウンロードしてもよい。
入出力部3eは、例えば、マウス、キーボード、タッチパネル、操作ボタン等の入力装置、並びに、ディスプレイやプリンタ等の出力装置の少なくとも一方を含んでよい。
読取部3fは、記録媒体3hに記録されたデータやプログラムを読み出しプロセッサ3aに出力するリーダの一例である。読取部3fは、記録媒体3hを接続又は挿入可能な接続端子又は装置を含んでもよい。読取部3fとしては、例えばUSB(Universal Serial Bus)等に準拠したアダプタ、記録ディスクへのアクセスを行なうドライブ装置、SDカード等のフラッシュメモリへのアクセスを行なうカードリーダ等が挙げられる。なお、記録媒体3hにはプログラム3gが格納されてもよい。
記録媒体3hとしては、例示的に、磁気/光ディスクやフラッシュメモリ等の非一時的なコンピュータ読取可能な記録媒体が挙げられる。磁気/光ディスクとしては、例示的に、フレキシブルディスク、CD(Compact Disc)、DVD(Digital Versatile Disc)、ブルーレイディスク、HVD(Holographic Versatile Disc)等が挙げられる。フラッシュメモリとしては、例示的に、USBメモリやSDカード等の半導体メモリが挙げられる。なお、CDとしては、例示的に、CD−ROM、CD−R、CD−RW等が挙げられる。また、DVDとしては、例示的に、DVD−ROM、DVD−RAM、DVD−R、DVD−RW、DVD+R、DVD+RW等が挙げられる。
上述したCM3のハードウェア構成は例示である。従って、CM3内でのハードウェアの増減(例えば任意のブロックの追加や削除)、分割、任意の組み合わせでの統合、バスの追加又は省略等は適宜行なわれてもよい。
〔1−2〕CM3の機能構成例
図2は、CM3の機能構成例の一例を示す図である。図2に示すように、CM3は、例示的に、キャッシュメモリ31、メモリ部32、キャッシュ制御部33、及びデバイス制御部34をそなえてよい。なお、キャッシュ制御部33及びデバイス制御部34の各機能は、例えば、図1に示すプロセッサ3aが記憶部3cに格納されたプログラム3gをメモリ3bに展開して実行することにより実現されてよい。
キャッシュメモリ31は、プロセッサ3a(図1参照)と、記憶装置40との間で転送されるデータ等を記憶する。メモリ部32は、CM3の処理に係る種々の情報を記憶してよい。キャッシュメモリ31及びメモリ部32は、それぞれ、例えば、図1に示すメモリ3bの互いに重複しない記憶領域により実現されてよい。
以下、図3〜図6を参照して、メモリ部32が記憶する情報について説明する。なお、図3〜図6の説明では、メモリ部32が記憶する各種の情報(例えば符号321〜324)を説明に適したリンクやテーブルの形式で例示する。しかしながら、これらの情報はリンクやテーブルの形式に限定されるものではなく、例えば配列、DB、ビットマップ等の種々の形式又は態様で管理されてよい。
図3に例示するように、空きキャッシュページ管理情報321は、キャッシュメモリ31のキャッシュ資源をキャッシュページ単位で管理する情報の一例である。キャッシュページは、例えば、65KB(キロバイト)を1単位として管理されてよい。なお、この例では、65KBのうち、64KBは実際のデータであり、1KBはデータのチェックコード等の付加情報であってよい。
空きキャッシュページ管理情報321は、空き(未使用)のキャッシュページに対応するキャッシュ制御情報322を相互にリンクさせて管理してよい。図3に例示するように、空き(未使用)のキャッシュページがある場合、換言すれば、キャッシュの獲得待ちがない状態では、空きキャッシュページ管理情報321には1以上のキャッシュ制御情報322が繋がった状態で保持される。
キャッシュ制御情報322は、キャッシュ制御用の情報であり、一例として、キャッシュメモリ31における複数のキャッシュページのそれぞれに対応付けられるCBE(Cache Bundled Element)と呼ばれる情報要素であってよい。以下、キャッシュ制御情報322がCBEであると仮定して説明する。なお、キャッシュ制御情報322は、CM3の起動後等の所定のタイミングで、キャッシュメモリ31のキャッシュページごとに生成されてよい。
図5に例示するように、キャッシュ制御情報322は、「page addr」、「volume no」、「lba」、「nextCBE」、「previousCBE」、及び「writemode」の情報を含んでよい。「page addr」は、当該キャッシュ制御情報322が対応付けられた(割り当てられた)キャッシュページのアドレスを示す情報である。「volume no」には、ホスト装置5からI/Oで要求されたアクセス対象のボリューム(例えば論理ボリューム)のボリューム番号が設定されてよい。「lba」には、ホスト装置5からI/Oで要求されたアクセス対象のボリュームの論理アドレス(例えばLBA)の情報が設定されてよい。「volume no」及び「lba」は、当該キャッシュ制御情報322のキャッシュページにデータが書き込まれている場合に設定されてよい。
「nextCBE」及び「previousCBE」は、空きキャッシュページ管理情報321の各種リンクを構成するためのメンバである。「nextCBE」は後ろに繋がっているCBEを格納してよく、「previousCBE」は前に繋がっているCBEを格納してよい。「前に/後ろに繋がっているCBEを格納する」とは、例えば、当該CBEを特定するための情報、一例として、CBEのエントリを示すポインタやID(Identifier)等の情報を格納することを意味してよい。「writemode」にはWBモード/WTモードのいずれかが設定されてよく、これにより、当該キャッシュ制御情報322に対応するキャッシュページがWBモードで動作しているかWTモードで動作しているかを表している。
なお、図4に例示するように、未使用のキャッシュ制御情報322がない場合、換言すれば、キャッシュ獲得待ちが発生している状態では、空きキャッシュページ管理情報321にはキャッシュ制御情報322が存在しなくてよい。
上記の例では、空きのキャッシュページに対応するキャッシュ制御情報322が空きキャッシュページ管理情報321に設定される場合を説明したが、論理アドレスに割当済のキャッシュ制御情報322についても、メモリ部32に格納されてよい。例えば、論理アドレスに割当中のキャッシュ制御情報322は、LRU(Least Recently Used)等のキャッシュ置換アルゴリズムの制御用リンク(図示省略)に用いられてもよい。例えば、LRUのリンクでは、キャッシュページへのアクセスに応じて、対応するキャッシュ制御情報322がデステージされ難い位置(順序)となるように「nextCBE」及び「previousCBE」が動的に書き換えられてよい。
図4に例示するように、キャッシュ獲得待ちキュー323は、Write用のキャッシュページが枯渇している場合、キャッシュページの空きができるまでWrite I/Oの待ち合わせをするための待ちキューである。換言すれば、キャッシュ獲得待ちキュー323は、キャッシュメモリ31のキャッシュ資源の獲得待ちのI/Oを管理する情報の一例である。以下、キャッシュ獲得待ちキュー323を単に「待ちキュー323」と表記する場合がある。
待ちキュー323は、キャッシュ獲得待ちのI/Oに対応するI/O制御情報324を相互にリンクさせて管理してよい。図4に例示するように、空き(未使用)のキャッシュページがない場合、換言すれば、キャッシュの獲得待ちがある状態では、待ちキュー323には1以上のI/O制御情報324が繋がった状態で保持される。
I/O制御情報324は、I/O制御用の情報であり、例えば、I/Oに係る種々の情報が設定されてよい。なお、I/O制御情報324は、CM3がI/Oを受け付けたときに獲得(例えばエントリが生成)され、当該I/Oについて処理が完了したときに解放(例えば当該エントリが削除)されてよい。
図6に例示するように、I/O制御情報324は、「nextWait」、「previousWait」、「volume no」、「lba」、「mode」、及び「writemode」の情報を含んでよい。「nextWait」及び「previousWait」は、待ちキュー323を構成するためのメンバである。「nextWait」は後ろに繋がっているI/O制御情報324を格納してよく、「previousWait」は前に繋がっているI/O制御情報324を格納してよい。「前に/後ろに繋がっているI/O制御情報324を格納する」とは、例えば、当該I/O制御情報324を特定するための情報、一例として、I/O制御情報324のエントリを示すポインタやID等の情報を格納することを意味してよい。
「volume no」には、ホスト装置5からI/Oで要求されたアクセス対象のボリューム(例えば論理ボリューム)のボリューム番号が設定されてよい。「lba」には、ホスト装置5からI/Oで要求されたアクセス対象のボリュームのLBAの情報が設定されてよい。「mode」には、ホスト装置5からI/Oで要求されたコマンドの情報が設定されてよい。「writemode」にはWBモード/WTモードのいずれかが設定されてよい。
なお、図3に例示するように、未使用のキャッシュ制御情報322がある場合、換言すれば、キャッシュ獲得待ちが発生していない状態では、待ちキュー323にはI/O制御情報324が存在しなくてよい。
以上のように、CM3は、図3に例示するように、空きキャッシュページ管理情報321にキャッシュ制御情報322が存在する場合、又は、待ちキュー323にI/O制御情報324が存在しない場合、キャッシュ獲得待ちがないと判定してよい。
また、CM3は、図4に例示するように、空きキャッシュページ管理情報321にキャッシュ制御情報322が存在しない場合、又は、待ちキュー323にI/O制御情報324が存在する場合、キャッシュ獲得待ちがあると判定してよい。このとき、CM3は、待ちキュー323に存在する(繋がっている)I/O制御情報324の数を、キャッシュ獲得待ちのI/O数と判定してよい。
図2の説明に戻り、キャッシュ制御部33は、ホスト装置5からのI/Oについて、キャッシュメモリ31に対する種々の制御を行なう。
例えば、キャッシュ制御部33は、I/Oの受け付け、キャッシュヒット/ミスの判定、キャッシュメモリ31へのアクセス、メモリ部32が記憶する情報の更新、動作モード(以下、「キャッシュモード」と表記する場合がある)の判定等の制御を行なってよい。また、キャッシュ制御部33は、デバイス制御部34と協働して、キャッシュメモリ31から記憶装置40へのキャッシュデータの書出処理を制御してよい。
「書出処理」は、「デステージ」或いは「デステージング」と称されてもよい。なお、I/Oの受け付け、キャッシュヒット/ミスの判定、書出処理は、既知の種々の手法により行なうことが可能であり、その詳細な説明は省略する。
キャッシュ制御部33は、例示的に、情報管理部331、動作モード判定部332、及びアクセス部333をそなえてよい。
情報管理部331は、I/Oの受け付け、キャッシュメモリ31へのアクセス、動作モードの判定、キャッシュデータの書出処理等に応じて、図3〜図6を参照して説明した空きキャッシュページ管理情報321及び待ちキュー323の更新を行なう。
動作モード判定部332は、Write I/Oの対象となるデータのキャッシュヒット/ミスの状況に応じて、I/O単位で、当該データに係るキャッシュメモリ31に対する動作モードを判定する。
アクセス部333は、動作モード判定部332が判定した動作モードに従って、Write I/Oに基づく書込処理を行なう。
ここで、図7を参照して、ストレージ装置2の性能モデルとキャッシュモードとの性能面における関係について説明する。なお、「性能モデル」とは、或るタイミングにおけるストレージ装置2のキャッシュヒット/ミスの傾向を表す指標を意味する。各性能モデルにおいて、「Cache Hitモデル」はキャッシュヒットの傾向が強いことを示す。「Cache Missモデル SSDネック」はキャッシュミスの傾向が強くSSDがボトルネックになっていることを示す。「Cache Missモデル CPUネック」はキャッシュミスの傾向が強くCPU3aがボトルネックになっていることを示す。
図7に例示するように、キャッシュヒットモデルでは、WBモードの方がWTモードよりも高速に処理が可能である。
一方、キャッシュミスモデルのSSDネックでは、WBモード及びWTモードは同等の性能となる。なお、この場合、キャッシュミスに伴いCPU3aの処理負荷が増加するため、性能モデルはCPUネックに遷移しやすい。
キャッシュミスモデルのCPUネックでは、キャッシュの二重化処理が通常よりも遅くなるため、ストレージ装置2の性能を十分に発揮できない場合がある。特に、従来の手法では、性能モデルによらず、キャッシュモードとして基本的にWBモードで動作するため、HDDよりも高速なSSDを用いて処理を行なうAFAのようなストレージ装置2では、ストレージ装置2の最大性能を引き出せない可能性がある。
以上のことから、ストレージ装置2の最大性能を考えた場合、キャッシュメモリ31の二重化を行なうWBモードよりもWTモードを使用した方が、無駄な処理が無い分、最大性能を引き出すことが可能なケースがある。
そこで、一実施形態に係る動作モード判定部332は、性能モデルによってキャッシュモードを動的に切り替えることで、ストレージ装置2における最大性能を向上させる。
例えば、動作モード判定部332は、以下の判定条件に従って、動作モードを判定してよい。
(a)キャッシュヒットの場合。
動作モード判定部332は、キャッシュヒットしたキャッシュ制御情報322に既に設定されている動作モードを選択してよい。
なお、Write I/Oで指定された論理アドレスの範囲によっては、キャッシュページの境界を跨ぐ可能性がある。図8に例示するように、Write I/Oの処理範囲が複数のキャッシュページに亘る場合であって、WBモードで動作しているキャッシュページが存在する場合、動作モード判定部332は、全てのキャッシュページについてWBモードを選択してよい。キャッシュページの動作モードの判定は、例えばキャッシュ制御情報322の「writemode」を参照すればよい。
これにより、1つのWrite I/Oに係るデータのうち、一部分は記憶装置40及びキャッシュメモリ31に存在するが(WTモード)、残りの部分はキャッシュメモリ31に存在する(WBモード)といった状況になるのを回避できる。なお、他の手法として、WBモードのキャッシュページについては書き出し(デステージ)を行ないキャッシュページと記憶装置40の対象領域との間でデータの整合を取った上で、Write I/Oに係る全キャッシュページをWTモードに切り替えてもよい。
(b)キャッシュミスの場合。
キャッシュミスの場合、キャッシュ制御部33は、Write I/Oのために新規にキャッシュページの獲得を試みる。このとき、動作モード判定部332は、空きキャッシュページ管理情報321又は待ちキュー323を参照し、キャッシュ獲得待ちの状況に応じて、以下のように動作モードを判定してよい。
(b−1)キャッシュ獲得待ちが発生していない場合。
動作モード判定部332は、動作モードとしてWTモードを選択する。なお、Write I/Oのために獲得したキャッシュページにWBモードのキャッシュページが存在する場合、動作モード判定部332は、WBモードを選択してよい。或いは、WBモードのキャッシュページについては書き出し(デステージ)を行ない、その後、WTモードに切り替えてもよい。図8を用いて説明したように、Write I/Oの処理範囲が複数のキャッシュページに亘る場合も同様である。
(b−2)キャッシュ獲得待ちが発生している場合。
動作モード判定部332は、待ちキュー323を参照し、待ちキュー323に接続されたI/O制御情報324の数をカウントすることで、キャッシュ獲得待ちのI/O数を取得してよい。そして、動作モード判定部332は、キャッシュ獲得待ちのI/O数に応じて、以下のように動作モードを判定してよい。
(b−2−1)キャッシュ獲得待ちのI/O数が規定数未満の場合。
SSD等の記憶装置40の処理能力にある程度の余裕がある状態である。換言すれば、プロセッサ3aがボトルネックとなり、記憶装置40の処理性能を活かせていない可能性がある。この場合、動作モード判定部332は、動作モードとしてWTモードを選択してよい。
(b−2−2)キャッシュ獲得待ちのI/O数が規定数以上の場合。
SSD等の記憶装置40への書き出しが滞留している状態である。換言すれば、記憶装置40がボトルネックとなり、プロセッサ3aにはある程度の余裕がある状態である。この場合、動作モード判定部332は、動作モードとしてWBモードを選択してよい。
なお、上記(b−2−1)又は(b−2−2)の場合、既にキャッシュ獲得待ちが発生しているため、情報管理部331は、I/Oの受信に応じて確保したI/O制御情報324に対して、動作モード判定部332が選択したキャッシュモードを設定してよい。そして、情報管理部331は、当該I/O制御情報324を待ちキュー323に登録してよい。
キャッシュ制御部33は、I/O制御情報324が待ちキュー323に登録されると、デバイス制御部34と協働して、キャッシュデータの記憶装置40への書出処理(ステージング)を実施してよい。アクセス部333は、書出処理(ステージング)によってキャッシュメモリ31に空きができ、当該I/O制御情報324が待ちキュー323からデキューされる際に、I/O制御情報324に設定されたキャッシュモードを参照してよい。
このように、Write I/Oが待ちキュー323に登録される場合に、当該I/Oの動作モードを示す情報がI/O制御情報324に設定され、I/O制御情報324が待ちキュー323に登録される。これにより、アクセス部333は、I/Oごとに、当該I/OについてWBモード及びWTモードのいずれの動作モードで書込処理を行なうことができる。
図2の説明に戻り、デバイス制御部34は、キャッシュ制御部33と協働して、デバイス、例えばDE4の記憶装置40に対するアクセスを制御する。一例として、デバイス制御部34は、キャッシュメモリ31から記憶装置40へのデータの書出処理、及び、記憶装置40からキャッシュメモリ31へのデータの読出処理を制御してよい。「読出処理」は、「ステージ」或いは「ステージング」と称されてもよい。
以上のように、情報管理部331は、書込要求に関する制御情報を待ちキュー323に登録する登録部の一例である。登録部としての情報管理部331は、書込要求についてキャッシュミスの場合であって、当該書込要求がキャッシュ獲得待ちとなる場合に、決定した動作モードを示す情報を制御情報に設定してよい。
また、動作モード判定部332は、書込要求に係る書込アドレスのキャッシュメモリ31におけるキャッシュヒット状況に基づいて、当該書込要求に基づく書込処理の動作モードをWBモード及びWTモードのいずれかに決定する決定部の一例である。
さらに、アクセス部333は、決定した動作モードに従って、キャッシュメモリ31を介して、当該書込要求に基づく書込処理を行なう書込処理部の一例である。
また、キャッシュ制御部33及びデバイス制御部34は、書込要求についてキャッシュミスの場合であって、当該書込要求がキャッシュ獲得待ちとなる場合、キャッシュメモリ31から記憶装置40へのデータの書出処理を行なう書出処理部の一例である。なお、書出処理部としてのキャッシュ制御部33及びデバイス制御部34は、待ちキュー323から制御情報を取り出してよい。また、書込処理部としてのアクセス部333は、取り出された制御情報に設定された動作モードに従って、当該制御情報が示す書込要求に基づく書込処理を行なってよい。
一実施形態に係るCM3によれば、キャッシュヒット状況に応じて、CM3或いはストレージ装置2単位ではなくI/O単位で、WBモード及びWTモードのいずれかのキャッシュモードを動的に決定することができる。従って、CPU3aの処理負荷を軽減させるように動作モードをI/O単位でWTモードに切り替えることができ、SSD等の記憶装置40の性能を活かせるため、ストレージ装置2の性能を向上させることができる。
〔1−3〕動作例
次に、図9及び図10を参照して、一実施形態に係るストレージシステム1においてWrite I/Oを受信する場合に着目した場合の動作例を説明する。
〔1−3−1〕Write I/O受信処理
はじめに、図9を参照して、CM3によるWrite I/Oの受信処理の動作例を説明する。
キャッシュ制御部33は、ホスト装置5からのWrite I/Oの受信を待ち受ける(ステップS1、ステップS1でNo)。Write I/Oを受信すると(ステップS1でYes)、情報管理部331はI/O制御情報324を獲得する(ステップS2)。なお、I/O制御情報324の獲得は、初回に限り実施されてもよい。
キャッシュ制御部33は、Write I/Oについてキャッシュヒット/ミスを判定する(ステップS3)。キャッシュヒットの場合(ステップS4、ステップS4でYes)、動作モード判定部332は、ヒットしたキャッシュページに対応するキャッシュ制御情報322を参照して、動作モードがWBモードか否かを判定する(ステップS5)。
動作モードがWBモードの場合(ステップS5でYes)、動作モード判定部332は、WBモードで動作を行なうと判定する。そして、アクセス部333は、WBモードでWrite I/Oを処理し(ステップS6)、処理がステップS1に移行する。
一方、動作モードがWBモードではない場合(ステップS5でNo)、動作モード判定部332は、Write I/Oで指定された処理範囲にWBモードで動作するキャッシュ制御情報322が存在するか否かを判定する(ステップS7)。
処理範囲にWBモードで動作するキャッシュ制御情報322が存在する場合(ステップS7でYes)、処理がステップS6に移行し、アクセス部333は、WBモードでWrite I/Oを処理する。
一方、処理範囲にWBモードで動作するキャッシュ制御情報322が存在しない場合(ステップS7でNo)、動作モード判定部332は、WTモードで動作を行なうと判定する。そして、アクセス部333は、WTモードでWrite I/Oを処理し(ステップS8)、処理がステップS1に移行する。
ステップS4において、キャッシュミスの場合(ステップS4でNo)、動作モード判定部332は、空きキャッシュページ管理情報321又は待ちキュー323を参照して、キャッシュ獲得待ちが発生しているか否かを判定する(ステップS9)。キャッシュ獲得待ちが発生していない場合(ステップS9でNo)、処理がステップS7に移行する。
一方、キャッシュ獲得待ちが発生している場合(ステップS9でYes)、動作モード判定部332は、待ちキュー323に接続されたI/O制御情報324の数に基づき、キャッシュ獲得待ちが規定数以上発生しているか否かを判定する(ステップS10)。
キャッシュ獲得待ちが規定数未満の場合(ステップS10でNo)、動作モード判定部332は、ステップS2で獲得したI/O制御情報324にWTモードで動作することを設定し、当該I/O制御情報324を待ちキュー323に登録する(ステップS11)。
そして、キャッシュ制御部33は、書出処理を起動し(ステップS12)、デバイス制御部34と協働して、書出処理を実施する(ステップS13)。書出処理が完了すると、処理がステップS1に移行する。
一方、キャッシュ獲得待ちが規定数以上の場合(ステップS10でYes)、動作モード判定部332は、I/O制御情報324にWBモードで動作することを設定し、当該I/O制御情報324を待ちキュー323に登録する(ステップS14)。そして、処理がステップS12に移行する。
〔1−3−2〕書出処理
次に、図10を参照して、CM3による書出処理の動作例について説明する。なお、書出処理(デステージ)は、I/Oの受付とは非同期に(例えば所定周期で)実施されてよく、また、図9のステップS12において起動されたときに実施されてよい。
キャッシュ制御部33は、書出対象のキャッシュデータを決定する(ステップS21)。書出対象は、例えばキャッシュ置換アルゴリズム等の既知の手法に従って決定されてよい。
デバイス制御部34は、キャッシュ制御部33が決定したキャッシュデータをキャッシュメモリ31から読み出して記憶装置40に書き込む(ステップS22)。
記憶装置40への書き込みが完了すると(ステップS23)、キャッシュ制御部33は、キャッシュメモリ31の書き込みが完了したキャッシュページを解放する(ステップS24)。
そして、キャッシュ制御部33は、キャッシュ獲得待ちになっているWrite I/Oをデキューし(ステップS25)、書出処理が終了する。なお、Write I/Oがデキューされると、アクセス部333は、当該Write I/OのI/O制御情報324を参照して動作モードを判定(識別)し、判定した動作モードで当該Write I/Oを処理してよい。
〔2〕その他
上述した一実施形態に係る技術は、以下のように変形、変更して実施することができる。
例えば、CM3において、キャッシュ制御部33及びデバイス制御部34の機能は、併合してもよく、それぞれ分割してもよい。また、キャッシュ制御部33において、情報管理部331、動作モード判定部332、及びアクセス部333の機能は、任意の組み合わせで併合してもよく、それぞれ分割してもよい。
〔3〕付記
以上の実施形態に関し、さらに以下の付記を開示する。
(付記1)
記憶装置に対する書込要求に係る書込アドレスのキャッシュメモリにおけるキャッシュヒット状況に基づいて、前記書込要求に基づく書込処理の動作モードをライトバックモード及びライトスルーモードのいずれかに決定する決定部と、
決定した動作モードに従って、前記キャッシュメモリを介して、前記書込要求に基づく書込処理を行なう書込処理部と、をそなえる
ことを特徴とする、ストレージ制御装置。
(付記2)
前記決定部は、前記書込要求についてキャッシュヒットの場合、当該書込要求に基づく書込処理の動作モードをライトバックモードに決定する、
ことを特徴とする、付記1記載のストレージ制御装置。
(付記3)
前記決定部は、前記書込要求についてキャッシュミスの場合であって、キャッシュ獲得待ちの書込要求が存在しない場合、当該書込要求に基づく書込処理の動作モードをライトスルーモードに決定する、
ことを特徴とする、付記1又は付記2記載のストレージ制御装置。
(付記4)
前記決定部は、前記書込要求についてキャッシュミスの場合であって、キャッシュ獲得待ちの書込要求の数が所定数未満である場合、当該書込要求に基づく書込処理の動作モードをライトスルーモードに決定する、
ことを特徴とする、付記1〜3のいずれか1項記載のストレージ制御装置。
(付記5)
前記決定部は、前記書込要求についてキャッシュミスの場合であって、キャッシュ獲得待ちの書込要求の数が所定数以上である場合、当該書込要求に基づく書込処理の動作モードをライトバックモードに決定する、
ことを特徴とする、付記1〜4のいずれか1項記載のストレージ制御装置。
(付記6)
前記書込要求についてキャッシュミスの場合であって、当該書込要求がキャッシュ獲得待ちとなる場合、前記決定部が決定した動作モードを示す情報を当該書込要求に関する制御情報に設定し、前記制御情報をキャッシュ獲得待ちのキューに登録する登録部、をそなえる、
ことを特徴とする、付記4又は付記5記載のストレージ制御装置。
(付記7)
前記書込要求についてキャッシュミスの場合であって、当該書込要求がキャッシュ獲得待ちとなる場合、前記キャッシュメモリから前記記憶装置へのデータの書出処理を行ない、キャッシュ獲得待ちの前記キューから制御情報を取り出す書出処理部、をそなえ、
前記書込処理部は、取り出された制御情報に設定された動作モードに従って、当該制御情報が示す書込要求に基づく書込処理を行なう、
ことを特徴とする、付記6記載のストレージ制御装置。
(付記8)
コンピュータに、
記憶装置に対する書込要求に係る書込アドレスのキャッシュメモリにおけるキャッシュヒット状況に基づいて、前記書込要求に基づく書込処理の動作モードをライトバックモード及びライトスルーモードのいずれかに決定し、
決定した動作モードに従って、前記キャッシュメモリを介して、前記書込要求に基づく書込処理を実行する、
処理を実行させることを特徴とする、制御プログラム。
(付記9)
前記決定は、前記書込要求についてキャッシュヒットの場合、当該書込要求に基づく書込処理の動作モードをライトバックモードに決定する、
ことを特徴とする、付記8記載の制御プログラム。
(付記10)
前記決定は、前記書込要求についてキャッシュミスの場合であって、キャッシュ獲得待ちの書込要求が存在しない場合、当該書込要求に基づく書込処理の動作モードをライトスルーモードに決定する、
ことを特徴とする、付記8又は付記9記載の制御プログラム。
(付記11)
前記決定は、前記書込要求についてキャッシュミスの場合であって、キャッシュ獲得待ちの書込要求の数が所定数未満である場合、当該書込要求に基づく書込処理の動作モードをライトスルーモードに決定する、
ことを特徴とする、付記8〜10のいずれか1項記載の制御プログラム。
(付記12)
前記決定は、前記書込要求についてキャッシュミスの場合であって、キャッシュ獲得待ちの書込要求の数が所定数以上である場合、当該書込要求に基づく書込処理の動作モードをライトバックモードに決定する、
ことを特徴とする、付記8〜11のいずれか1項記載の制御プログラム。
(付記13)
前記コンピュータに、
前記書込要求についてキャッシュミスの場合であって、当該書込要求がキャッシュ獲得待ちとなる場合、決定した動作モードを示す情報を当該書込要求に関する制御情報に設定し、
前記制御情報をキャッシュ獲得待ちのキューに登録する、
処理を実行させることを特徴とする、付記11又は付記12記載の制御プログラム。
(付記14)
前記コンピュータに、
前記書込要求についてキャッシュミスの場合であって、当該書込要求がキャッシュ獲得待ちとなる場合、前記キャッシュメモリから前記記憶装置へのデータの書出処理を行ない、
キャッシュ獲得待ちの前記キューから制御情報を取り出す、
処理を実行させ、
前記書込処理の実行は、取り出された制御情報に設定された動作モードに従って、当該制御情報が示す書込要求に基づく書込処理を行なう、
ことを特徴とする、付記13記載の制御プログラム。
1 ストレージシステム
2 ストレージ装置
3 CM
31 キャッシュメモリ
32 メモリ部
321 空きキャッシュページ管理情報
322 キャッシュ制御情報
323 キャッシュ獲得待ちキュー
324 I/O制御情報
33 キャッシュ制御部
331 情報管理部
332 動作モード判定部
333 アクセス部
34 デバイス制御部
4 DE
40 記憶装置
5 ホスト装置

Claims (8)

  1. 記憶装置に対する書込要求に係る書込アドレスのキャッシュメモリにおけるキャッシュヒット状況に基づいて、前記書込要求に基づく書込処理の動作モードをライトバックモード及びライトスルーモードのいずれかに決定する決定部と、
    決定した動作モードに従って、前記キャッシュメモリを介して、前記書込要求に基づく書込処理を行なう書込処理部と、をそなえる
    ことを特徴とする、ストレージ制御装置。
  2. 前記決定部は、前記書込要求についてキャッシュヒットの場合、当該書込要求に基づく書込処理の動作モードをライトバックモードに決定する、
    ことを特徴とする、請求項1記載のストレージ制御装置。
  3. 前記決定部は、前記書込要求についてキャッシュミスの場合であって、キャッシュ獲得待ちの書込要求が存在しない場合、当該書込要求に基づく書込処理の動作モードをライトスルーモードに決定する、
    ことを特徴とする、請求項1又は請求項2記載のストレージ制御装置。
  4. 前記決定部は、前記書込要求についてキャッシュミスの場合であって、キャッシュ獲得待ちの書込要求の数が所定数未満である場合、当該書込要求に基づく書込処理の動作モードをライトスルーモードに決定する、
    ことを特徴とする、請求項1〜3のいずれか1項記載のストレージ制御装置。
  5. 前記決定部は、前記書込要求についてキャッシュミスの場合であって、キャッシュ獲得待ちの書込要求の数が所定数以上である場合、当該書込要求に基づく書込処理の動作モードをライトバックモードに決定する、
    ことを特徴とする、請求項1〜4のいずれか1項記載のストレージ制御装置。
  6. 前記書込要求についてキャッシュミスの場合であって、当該書込要求がキャッシュ獲得待ちとなる場合、前記決定部が決定した動作モードを示す情報を当該書込要求に関する制御情報に設定し、前記制御情報をキャッシュ獲得待ちのキューに登録する登録部、をそなえる、
    ことを特徴とする、請求項4又は請求項5記載のストレージ制御装置。
  7. 前記書込要求についてキャッシュミスの場合であって、当該書込要求がキャッシュ獲得待ちとなる場合、前記キャッシュメモリから前記記憶装置へのデータの書出処理を行ない、キャッシュ獲得待ちの前記キューから制御情報を取り出す書出処理部、をそなえ、
    前記書込処理部は、取り出された制御情報に設定された動作モードに従って、当該制御情報が示す書込要求に基づく書込処理を行なう、
    ことを特徴とする、請求項6記載のストレージ制御装置。
  8. コンピュータに、
    記憶装置に対する書込要求に係る書込アドレスのキャッシュメモリにおけるキャッシュヒット状況に基づいて、前記書込要求に基づく書込処理の動作モードをライトバックモード及びライトスルーモードのいずれかに決定し、
    決定した動作モードに従って、前記キャッシュメモリを介して、前記書込要求に基づく書込処理を実行する、
    処理を実行させることを特徴とする、制御プログラム。
JP2016254801A 2016-12-28 2016-12-28 ストレージ制御装置及び制御プログラム Pending JP2018106573A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016254801A JP2018106573A (ja) 2016-12-28 2016-12-28 ストレージ制御装置及び制御プログラム
US15/819,063 US10628048B2 (en) 2016-12-28 2017-11-21 Storage control device for controlling write access from host device to memory device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016254801A JP2018106573A (ja) 2016-12-28 2016-12-28 ストレージ制御装置及び制御プログラム

Publications (1)

Publication Number Publication Date
JP2018106573A true JP2018106573A (ja) 2018-07-05

Family

ID=62625657

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016254801A Pending JP2018106573A (ja) 2016-12-28 2016-12-28 ストレージ制御装置及び制御プログラム

Country Status (2)

Country Link
US (1) US10628048B2 (ja)
JP (1) JP2018106573A (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11061585B1 (en) 2017-10-19 2021-07-13 EMC IP Holding Company, LLC Integration of NVMe device with DRAM cache system and method
US10521137B1 (en) * 2017-10-31 2019-12-31 EMC IP Holding Company LLC Storage device array integration of dual-port NVMe device with DRAM cache and hostside portion of software stack system and method
JP2022108987A (ja) * 2021-01-14 2022-07-27 富士通株式会社 ストレージシステム、ストレージ制御装置およびストレージ制御方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05189316A (ja) * 1992-01-10 1993-07-30 Fujitsu Ltd ディスクキャッシュ制御方法
US20020188807A1 (en) * 2001-06-06 2002-12-12 Shailender Chaudhry Method and apparatus for facilitating flow control during accesses to cache memory
JP2006065850A (ja) * 2004-07-28 2006-03-09 Renesas Technology Corp マイクロコンピュータ

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5469555A (en) * 1991-12-19 1995-11-21 Opti, Inc. Adaptive write-back method and apparatus wherein the cache system operates in a combination of write-back and write-through modes for a cache-based microprocessor system
US5561783A (en) * 1992-11-16 1996-10-01 Intel Corporation Dynamic cache coherency method and apparatus using both write-back and write-through operations
JP2003044358A (ja) * 2001-07-31 2003-02-14 Mitsubishi Electric Corp キャッシュメモリ制御装置
US7173863B2 (en) 2004-03-08 2007-02-06 Sandisk Corporation Flash controller cache architecture
US7231497B2 (en) * 2004-06-15 2007-06-12 Intel Corporation Merging write-back and write-through cache policies
US8019937B2 (en) * 2004-07-21 2011-09-13 Infortrend Technology, Inc. Applying storage device commit-cached-data-to-media functionality to improve data security in systems that allow storage devices to cache writes
JP4555040B2 (ja) 2004-09-22 2010-09-29 株式会社日立製作所 ストレージ装置及びストレージ装置のライトアクセス処理方法
JP4341571B2 (ja) 2005-03-29 2009-10-07 日本電気株式会社 記憶装置システムおよびその制御方法、制御プログラム
US8103822B2 (en) * 2009-04-26 2012-01-24 Sandisk Il Ltd. Method and apparatus for implementing a caching policy for non-volatile memory
WO2011114384A1 (en) 2010-03-19 2011-09-22 Hitachi, Ltd. Storage system and method for changing configuration of cache memory for storage system
US8402226B1 (en) * 2010-06-18 2013-03-19 Emc Corporation Rate proportional cache write-back in a storage server
JP5514364B2 (ja) 2010-08-27 2014-06-04 株式会社日立製作所 記憶制御装置及び記憶制御装置の動作モード制御方法
US9058282B2 (en) * 2012-12-31 2015-06-16 Intel Corporation Dynamic cache write policy
US9274713B2 (en) * 2014-04-03 2016-03-01 Avago Technologies General Ip (Singapore) Pte. Ltd. Device driver, method and computer-readable medium for dynamically configuring a storage controller based on RAID type, data alignment with a characteristic of storage elements and queue depth in a cache

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05189316A (ja) * 1992-01-10 1993-07-30 Fujitsu Ltd ディスクキャッシュ制御方法
US20020188807A1 (en) * 2001-06-06 2002-12-12 Shailender Chaudhry Method and apparatus for facilitating flow control during accesses to cache memory
JP2006065850A (ja) * 2004-07-28 2006-03-09 Renesas Technology Corp マイクロコンピュータ

Also Published As

Publication number Publication date
US20180181318A1 (en) 2018-06-28
US10628048B2 (en) 2020-04-21

Similar Documents

Publication Publication Date Title
JP2014154155A (ja) コマンド・プッシュ・モデルの使用によりデータ・ストレージ・システムにおける書込みレイテンシを低減させるための方法およびシステム
CN111919201B (zh) 混合式存储器***
JP7057435B2 (ja) ハイブリッドメモリシステム
US8694563B1 (en) Space recovery for thin-provisioned storage volumes
TWI236592B (en) Method and system of managing virtualized physical memory in a multi-processor system
US10579540B2 (en) Raid data migration through stripe swapping
US8583890B2 (en) Disposition instructions for extended access commands
US9785552B2 (en) Computer system including virtual memory or cache
JP2018106573A (ja) ストレージ制御装置及び制御プログラム
JP2021149374A (ja) データ処理装置
US9921913B2 (en) Flushing host cache data before rebuilding degraded redundant virtual disk
CN114270317B (zh) 层次型存储器***
US9003129B1 (en) Techniques for inter-storage-processor cache communication using tokens
US11010091B2 (en) Multi-tier storage
CN114341816A (zh) 三层层次型存储器***
US10430287B2 (en) Computer
JP5910596B2 (ja) ストレージ管理システム、ストレージ管理方法、プログラム、および、情報処理システム
US20210374063A1 (en) Method for processing page fault by processor
KR20220162605A (ko) 메모리 시스템에서 페이지 마이그레이션을 위한 시스템, 방법 및 장치
CN104424124A (zh) 内存装置、电子设备和用于控制内存装置的方法
CN114341817A (zh) 分层存储器***
KR102686749B1 (ko) 맵 스케줄링을 수행하기 위한 스토리지 장치 및 그것을 포함하는 전자 장치
EP4328755A1 (en) Systems, methods, and apparatus for accessing data in versions of memory pages
US20230359567A1 (en) Storage device, computing device including storage device and memory device, and operating method of computing device
US20230019878A1 (en) Systems, methods, and devices for page relocation for garbage collection

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20190607

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190910

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200819

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200825

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20210309