JP6799256B2 - ストレージ制御装置、ストレージシステム、ストレージ制御方法およびストレージ制御プログラム - Google Patents
ストレージ制御装置、ストレージシステム、ストレージ制御方法およびストレージ制御プログラム Download PDFInfo
- Publication number
- JP6799256B2 JP6799256B2 JP2016229640A JP2016229640A JP6799256B2 JP 6799256 B2 JP6799256 B2 JP 6799256B2 JP 2016229640 A JP2016229640 A JP 2016229640A JP 2016229640 A JP2016229640 A JP 2016229640A JP 6799256 B2 JP6799256 B2 JP 6799256B2
- Authority
- JP
- Japan
- Prior art keywords
- list
- data block
- requested
- cache
- entry
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/122—Replacement control using replacement algorithms of the least frequently used [LFU] type, e.g. with individual count value
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0844—Multiple simultaneous or quasi-simultaneous cache accessing
- G06F12/0846—Cache with multiple tag or data arrays being simultaneously accessible
- G06F12/0848—Partitioned cache, e.g. separate instruction and operand caches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/128—Replacement control using replacement algorithms adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/62—Details of cache specific to multiprocessor cache arrangements
- G06F2212/621—Coherency control relating to peripheral accessing, e.g. from DMA or I/O device
Description
さらに、1つの態様では、記憶装置に対するアクセスをキャッシュメモリを用いて制御するストレージ制御方法が提供される。このストレージ制御方法では、コンピュータは、キャッシュメモリに格納された第3のデータブロックの読み出しが要求されたとき、キャッシュメモリに格納されたデータブロックのうち書き込みが要求された第2のデータブロックがLRU方式で管理される第2のリストを参照し、第3のデータブロックが第2のリストに属する場合、第2のリストの状態をそのまま維持するとともに、キャッシュメモリに格納されたデータブロックのうち読み出しが要求された第1のデータブロックがLRU方式で管理される第1のリストにおける、第3のデータブロックの所属状態を更新する。
[第1の実施の形態]
図1は、第1の実施の形態のストレージシステムを示す図である。図1に示すストレージシステムは、ストレージ制御装置10と記憶装置20とを有する。ストレージ制御装置10は、記憶装置20へのアクセスを、キャッシュメモリ11を用いて制御する。例えば、ストレージ制御装置10は、図示しないホスト装置から記憶装置20へのアクセス要求を受信し、アクセスが要求されたデータをキャッシュメモリ11に一時的に格納する。その後、ストレージ制御装置10は、ホスト装置からアクセス要求を受信したとき、アクセスが要求されたデータがキャッシュメモリ11に存在する場合、キャッシュメモリ11にアクセスすることでアクセス速度を向上させる。記憶装置20は、例えば、HDD(Hard Disk Drive)やSSD(Solid State Drive)を1台または複数台備えている。
図2は、第2の実施の形態のストレージシステムを示す図である。図2に示すストレージシステムは、ストレージ装置100およびホスト装置400を含む。ストレージ装置100とホスト装置400とは、例えば、ファイバチャネル(FC:Fibre Channel)やiSCSI(Internet Small Computer System Interface)などを用いたSAN(Storage Area Network)を介して接続される。
RAM210bは、CM210の主記憶装置である。RAM210bは、プロセッサ210aに実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部を一時的に記憶する。また、RAM210bは、プロセッサ210aによる処理に用いる各種データを記憶する。
図4は、CMが備える機能の構成例を示す図である。CM210は、記憶部211、ホストI/O処理部212、キャッシュ制御部213およびディスクI/O処理部214を有する。
H−ARCでは、キャッシュ領域に格納されたデータブロックは、4つのリストC1,C2,D1a,D2aによって管理される。リストC1,C2,D1a,D2aは、いずれもLRUで管理される。また、キャッシュ領域に格納されたデータブロックは、リストC1,C2,D1a,D2aのいずれか1つに属する。
前述のH−ARCでは、あるデータブロックに対応するエントリは、リストC1,C2,D1a,D2aおよびリストGC1,GC2,GD1a,GD2aにそれぞれ対応するリストのうち、1つだけに属することができた。これに対して、本実施の形態では、R系リスト221に属するエントリとD系リスト222に属するエントリとは、それぞれ独立している。そして、あるデータブロックに対応するエントリは、R系リスト221だけに属する場合もあるし、D系リスト222だけに属する場合もあるし、R系リスト221とD系リスト222の両方に属する場合もある。
対応するエントリがリストR1,R2,D1,D2の少なくとも1つに属しているメタデータについては、対応するデータブロックがキャッシュ領域211aに格納されている。例えば、リストR1上のエントリ221aからリンクされているメタデータ231aについては、対応するデータブロック232aがキャッシュ領域211aに格納されている。また、リストR2上のエントリ221cとリストD2上のエントリ222cとからリンクされているメタデータ231cについては、対応するデータブロック232cがキャッシュ領域211aに格納されている。さらに、リストR2上のエントリ221dからリンクされているメタデータ231dについては、対応するデータブロック232dがキャッシュ領域211aに格納されている。
図12は、I/O処理時の推移表の例を示す図である。I/O処理時の推移表602は、I/O種別、推移前のページ種別、推移後のページ種別の項目を含む。I/O種別の項目は、リードとライトのどちらが要求されたかを示す。推移前のページ種別の項目は、推移前のページ種別を示す。推移後のページ種別の項目は、推移後のページ種別を示す。
図14は、キャッシュリストの大きさの調整方法の例を示す図である。
図8に示したように、リスト管理テーブル241には、キャッシュリスト、すなわちリストR1,R2,D1,D2のそれぞれについて、現在のリスト長と理想長とが保持される。理想長とは、リスト長の目標値である。キャッシュ制御部213は、ゴーストヒットが発生した場合、理想長を調整する。また、ゴーストヒットにより、ヒットしたゴーストリスト上のエントリをキャッシュリスト上に移動する必要が生じるため、いずれかのキャッシュリストからエントリを追い出す必要が生じる。キャッシュ制御部213は、理想長の調整後、リストR1,R2,D1,D2のいずれからエントリを追い出すかを決定する。その際、CM210は、現在のリスト長が理想長に近づくように、追い出すエントリを決定する。例えば、CM210は、理想長と現在のリスト長との差分の絶対値が最も大きいリストからエントリを追い出す。
リストGR1にゴーストヒットするということは、隣接するリストR1のリスト長を拡大する必要があることを意味する。ただし、リストGR1のNear領域のエントリは、Far領域のエントリと比較して、リストR1から追い出されてからの時間が短い。このため、Near領域においてヒットしたエントリは、リストR1がもう少しだけ大きければ、リストR1から追い出される前にリストR2に移動できたと考えられる。したがって、Near領域にヒットした場合は、Far領域にヒットした場合より、リストR1のリスト長を大きく拡大する必要性は低いと考えられる。
図16は、キャッシュ制御処理の例を示すフローチャート(その1)である。図16の処理は、ホストI/O処理部212がホスト装置400からアクセス要求を受信することで開始される。以下、図16に示す処理をステップ番号に沿って説明する。
(S41)キャッシュ制御部213は、ホスト装置400からのアクセス要求がライト要求であるか否かを判定する。アクセス要求がライト要求の場合、キャッシュ制御部213は、処理をステップS42に進める。アクセス要求がリード要求の場合、キャッシュ制御部213は、処理を終了する。
(S51)キャッシュ制御部213は、アクセスが要求されたデータブロックをキャッシュ領域211aに格納する。具体的には、リードが要求された場合、キャッシュ制御部213は、リードが要求されたデータブロックを、DE300内の記憶装置からディスクI/O処理部214を介して取得し、取得したデータブロックをキャッシュ領域211aに格納する。また、ライトが要求された場合、キャッシュ制御部213は、ホスト装置400から受信したデータブロックをキャッシュ領域211aに格納する。
11 キャッシュメモリ
12 記憶部
12a〜12d リスト
13 制御部
14 データブロック
14a,14b エントリ
20 記憶装置
Claims (11)
- 記憶装置に対するアクセスをキャッシュメモリを用いて制御するストレージ制御装置において、
前記キャッシュメモリに格納されたデータブロックのうち読み出しが要求された第1のデータブロックがLRU(Least Recently Used)方式で管理される第1のリストと、前記キャッシュメモリに格納されたデータブロックのうち書き込みが要求された第2のデータブロックがLRU方式で管理される第2のリストとを記憶する記憶部と、
前記第2のリストに属する前記第2のデータブロックのうち第3のデータブロックの読み出しが要求されたとき、前記第2のリストの状態をそのまま維持するとともに、前記第1のリストにおける前記第3のデータブロックの所属状態を更新する制御部と、
を有するストレージ制御装置。 - 前記記憶部は、LRU方式で管理される第3のリストをさらに記憶し、
前記制御部は、さらに、前記第1のリストに属する前記第1のデータブロックのうち第4のデータブロックの読み出しが要求されたとき、前記第4のデータブロックの所属先を前記第1のリストから前記第3のリストに移動させ、
前記第3のデータブロックの所属状態の更新では、前記第3のデータブロックが前記第1のリストにも属する場合、前記第3のデータブロックの所属先を前記第1のリストから前記第3のリストに移動させる、
請求項1記載のストレージ制御装置。 - 前記第3のデータブロックの所属状態の更新では、前記第3のデータブロックが前記第1のリストに属さない場合、前記第3のデータブロックを前記第1のリストにも所属させる、
請求項2記載のストレージ制御装置。 - 前記記憶部は、LRU方式で管理される第4のリストをさらに記憶し、
前記制御部は、さらに、
前記第2のリストに属する前記第2のデータブロックのうち第5のデータブロックの更新が要求されたとき、更新された前記第5のデータブロックの所属先を前記第2のリストから前記第4のリストに移動させ、
前記第4のリストに属する第6のデータブロックの読み出しが要求されたとき、前記第4のリストの状態をそのまま維持するとともに、前記第1のリストにおける前記第6のデータブロックの所属状態を更新する、
請求項2または3記載のストレージ制御装置。 - 前記制御部は、さらに、前記第4のリストに属する前記第6のデータブロックの更新が要求されたとき、前記第4のリストにおける前記第6のデータブロックの要素を前記第4のリストの先頭に移動させる、
請求項4記載のストレージ制御装置。 - 前記制御部は、さらに、前記キャッシュメモリに格納された第7のデータブロックが、前記第1乃至第4のリストのいずれにも所属しなくなった場合、前記第7のデータブロックを前記キャッシュメモリから追い出す、
請求項4または5記載のストレージ制御装置。 - 前記記憶部は、LRU方式で管理される第5のリストをさらに記憶し、
前記制御部は、さらに、
前記第1のリストから追い出されたデータブロックを前記第5のリストに所属させ、
前記第5のリストに所属する第8のデータブロックの読み出しが要求されたとき、前記第8のデータブロックの所属先を前記第5のリストから前記第3のリストに移動させるとともに、前記第1のリストの大きさの目標値を算出する、
請求項4乃至6のいずれか1項に記載のストレージ制御装置。 - 前記制御部は、前記第8のデータブロックの読み出しが要求されたとき、前記第5のリストにおける前記第8のデータブロックの位置に基づいて、前記第1のリストと前記第3のリストの大きさの目標値、または、前記第1のリストと前記第2のリストもしくは前記第4のリストの大きさの目標値のいずれかを算出する、
請求項7記載のストレージ制御装置。 - 記憶装置と、前記記憶装置に対するアクセスをキャッシュメモリを用いて制御するストレージ制御装置と、を有し、
前記ストレージ制御装置は、
前記キャッシュメモリに格納されたデータブロックのうち読み出しが要求された第1のデータブロックがLRU方式で管理される第1のリストと、前記キャッシュメモリに格納されたデータブロックのうち書き込みが要求された第2のデータブロックがLRU方式で管理される第2のリストとを記憶する記憶部と、
前記第2のリストに属する前記第2のデータブロックのうち第3のデータブロックの読み出しが要求されたとき、前記第2のリストの状態をそのまま維持するとともに、前記第1のリストにおける前記第3のデータブロックの所属状態を更新する制御部と、
を有するストレージシステム。 - 記憶装置に対するアクセスをキャッシュメモリを用いて制御するストレージ制御方法において、
コンピュータが、
前記キャッシュメモリに格納された第3のデータブロックの読み出しが要求されたとき、前記キャッシュメモリに格納されたデータブロックのうち書き込みが要求された第2のデータブロックがLRU方式で管理される第2のリストを参照し、
前記第3のデータブロックが前記第2のリストに属する場合、前記第2のリストの状態をそのまま維持するとともに、前記キャッシュメモリに格納されたデータブロックのうち読み出しが要求された第1のデータブロックがLRU方式で管理される第1のリストにおける、前記第3のデータブロックの所属状態を更新する、
ストレージ制御方法。 - 記憶装置に対するアクセスをキャッシュメモリを用いて制御するストレージ制御プログラムにおいて、
コンピュータに、
前記キャッシュメモリに格納された第3のデータブロックの読み出しが要求されたとき、前記キャッシュメモリに格納されたデータブロックのうち書き込みが要求された第2のデータブロックがLRU方式で管理される第2のリストを参照し、
前記第3のデータブロックが前記第2のリストに属する場合、前記第2のリストの状態をそのまま維持するとともに、前記キャッシュメモリに格納されたデータブロックのうち読み出しが要求された第1のデータブロックがLRU方式で管理される第1のリストにおける、前記第3のデータブロックの所属状態を更新する、
処理を実行させるストレージ制御プログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016229640A JP6799256B2 (ja) | 2016-11-28 | 2016-11-28 | ストレージ制御装置、ストレージシステム、ストレージ制御方法およびストレージ制御プログラム |
US15/791,460 US10579541B2 (en) | 2016-11-28 | 2017-10-24 | Control device, storage system and method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016229640A JP6799256B2 (ja) | 2016-11-28 | 2016-11-28 | ストレージ制御装置、ストレージシステム、ストレージ制御方法およびストレージ制御プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2018088020A JP2018088020A (ja) | 2018-06-07 |
JP6799256B2 true JP6799256B2 (ja) | 2020-12-16 |
Family
ID=62193259
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016229640A Active JP6799256B2 (ja) | 2016-11-28 | 2016-11-28 | ストレージ制御装置、ストレージシステム、ストレージ制御方法およびストレージ制御プログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US10579541B2 (ja) |
JP (1) | JP6799256B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7367470B2 (ja) | 2019-11-05 | 2023-10-24 | 富士通株式会社 | 情報処理装置およびキャッシュ制御プログラム |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07129470A (ja) | 1993-11-09 | 1995-05-19 | Hitachi Ltd | ディスク制御方法 |
US6996676B2 (en) * | 2002-11-14 | 2006-02-07 | International Business Machines Corporation | System and method for implementing an adaptive replacement cache policy |
US7818493B2 (en) * | 2007-09-07 | 2010-10-19 | Sandisk Corporation | Adaptive block list management |
US8271729B2 (en) * | 2009-09-18 | 2012-09-18 | International Business Machines Corporation | Read and write aware cache storing cache lines in a read-often portion and a write-often portion |
US9141527B2 (en) * | 2011-02-25 | 2015-09-22 | Intelligent Intellectual Property Holdings 2 Llc | Managing cache pools |
US20130242425A1 (en) | 2012-03-16 | 2013-09-19 | Toshiba America Electronics Components, Inc. | Write reordering in a hybrid disk drive |
CN106201348B (zh) * | 2012-06-20 | 2019-08-20 | 华为技术有限公司 | 非易失性存储设备的缓存管理方法及装置 |
EP2680152B1 (en) * | 2012-06-27 | 2017-05-03 | Alcatel Lucent | Process for managing the storage of a list of N items in a memory cache of C items of a cache system |
KR101481633B1 (ko) * | 2013-07-03 | 2015-01-15 | 아주대학교산학협력단 | 플래시 메모리 기반 세가지 상태를 가지는 버퍼 관리 장치 및 방법 |
US9285999B2 (en) * | 2013-11-27 | 2016-03-15 | Vmware, Inc. | Cache migration |
US9471228B2 (en) * | 2014-11-20 | 2016-10-18 | Red Hat, Inc. | Caching policies for solid state disks |
US9442863B1 (en) * | 2015-04-09 | 2016-09-13 | Vmware, Inc. | Cache entry management using read direction detection |
US20170220592A1 (en) * | 2016-02-01 | 2017-08-03 | Microsoft Technology Licensing, Llc | Modular data operations system |
KR20170130011A (ko) * | 2016-05-17 | 2017-11-28 | 삼성전자주식회사 | 캐시 메모리를 포함하는 서버 장치 및 그것의 동작 방법 |
-
2016
- 2016-11-28 JP JP2016229640A patent/JP6799256B2/ja active Active
-
2017
- 2017-10-24 US US15/791,460 patent/US10579541B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20180150408A1 (en) | 2018-05-31 |
US10579541B2 (en) | 2020-03-03 |
JP2018088020A (ja) | 2018-06-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8886882B2 (en) | Method and apparatus of storage tier and cache management | |
US8271736B2 (en) | Data block frequency map dependent caching | |
JP5908100B2 (ja) | ストレージ・システムの二次キャッシュ内にデータをポピュレートするための方法、制御装置、プログラム | |
US8745325B2 (en) | Using an attribute of a write request to determine where to cache data in a storage system having multiple caches including non-volatile storage cache in a sequential access storage device | |
US8935479B2 (en) | Adaptive cache promotions in a two level caching system | |
US8677062B2 (en) | Caching data in a storage system having multiple caches including non-volatile storage cache in a sequential access storage device | |
JP5349897B2 (ja) | ストレージシステム | |
US20160026579A1 (en) | Storage Controller and Method for Managing Metadata Operations in a Cache | |
US8095738B2 (en) | Differential caching mechanism based on media I/O speed | |
JP6711121B2 (ja) | 情報処理装置、キャッシュメモリ制御方法、およびキャッシュメモリ制御プログラム | |
JP5117608B1 (ja) | 情報処理装置、ハイブリッド記憶装置、およびキャッシュ方法 | |
WO2010088608A2 (en) | Systems and methods for block-level management of tiered storage | |
US9996476B2 (en) | Management of cache lists via dynamic sizing of the cache lists | |
US11204870B2 (en) | Techniques for determining and using caching scores for cached data | |
US20160004644A1 (en) | Storage Controller and Method for Managing Modified Data Flush Operations From a Cache | |
WO2016203612A1 (ja) | ストレージ装置 | |
US8825952B2 (en) | Handling high priority requests in a sequential access storage device having a non-volatile storage cache | |
US20180307440A1 (en) | Storage control apparatus and storage control method | |
US8996789B2 (en) | Handling high priority requests in a sequential access storage device having a non-volatile storage cache | |
JP6799256B2 (ja) | ストレージ制御装置、ストレージシステム、ストレージ制御方法およびストレージ制御プログラム | |
JP6928247B2 (ja) | ストレージ制御装置およびストレージ制御プログラム | |
US11176050B2 (en) | Information processing device and computer-readable recording medium having stored therein cache control program | |
JP2010176305A (ja) | 情報処理装置およびデータ記憶装置 | |
JP2016186735A (ja) | 記憶制御システム及び記憶制御装置 | |
US11099985B2 (en) | Storage controller, storage array device, data depositing method, and storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20190807 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20190815 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20190815 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20200814 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20200818 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20201008 |
|
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: 20201020 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20201102 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6799256 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |