JP2006065402A - アクセス制御方法、ディスク制御装置及び記憶装置 - Google Patents

アクセス制御方法、ディスク制御装置及び記憶装置 Download PDF

Info

Publication number
JP2006065402A
JP2006065402A JP2004244052A JP2004244052A JP2006065402A JP 2006065402 A JP2006065402 A JP 2006065402A JP 2004244052 A JP2004244052 A JP 2004244052A JP 2004244052 A JP2004244052 A JP 2004244052A JP 2006065402 A JP2006065402 A JP 2006065402A
Authority
JP
Japan
Prior art keywords
access
cache
cache segment
data
control method
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
JP2004244052A
Other languages
English (en)
Inventor
Hideaki Omura
英明 大村
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 JP2004244052A priority Critical patent/JP2006065402A/ja
Priority to US10/999,127 priority patent/US7421536B2/en
Publication of JP2006065402A publication Critical patent/JP2006065402A/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

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)

Abstract

【課題】 本発明は、アクセス制御方法、ディスク制御装置及び記憶装置に関し、キャッシュセグメントの競合があっても、アクセス範囲が競合していなければデータのアクセスを許可することでアクセスを並列に処理してアクセス性能を向上することを目的とする。
【解決手段】 キャッシュセグメント単位に区切られたキャッシュメモリのアクセス制御方法において、アクセスコマンドがアクセスするキャッシュセグメントがアクセス中のキャッシュセグメントと競合しても、アクセス範囲の重なりがなければアクセスを許容するように構成する。
【選択図】 図6

Description

本発明は、アクセス制御方法、ディスク制御装置及び記憶装置に係り、特に複数のキャッシュセグメントに区切られたキャッシュメモリのアクセス制御方法、そのようなアクセス制御方法でディスク装置を制御するディスク制御装置、及びそのようなアクセス制御方法を用いる記憶装置に関する。
複数の磁気ディスクを備えたディスク装置を制御するディスク制御装置は、搭載するキャッシュメモリを大容量化することでアクセス性能(又は、アクセス速度)の向上を図っている。このようなディスク制御装置において、ホスト装置からのアクセスは、ディスク制御装置内のキャッシュメモリを経由して処理される。つまり、ホスト装置からのアクセスコマンドがリードコマンドの場合、キャッシュメモリ上のデータにヒットすれば、ディスク装置からの読み込み(ステージング)なしで、キャッシュメモリからホスト装置にデータが転送される。他方、ホスト装置からのアクセスコマンドがライトコマンドの場合、ホスト装置からのライトデータをキャッシュメモリに一時的に格納し、ライトコマンド終了後に非同期(バックグラウンド)でディスク装置へ書き出し(ライトバック)を行う。このように、ホスト装置からのアクセスコマンドがキャッシュメモリ上のデータにヒットした場合には、キャッシュメモリ上のデータを直ちにホスト装置に転送することでアクセス性能の向上を図っている。
ディスク制御装置内のキャッシュメモリは、ある単位のセグメント(以下、キャッシュセグメントと言う)に区切られて管理される。キャッシュセグメントは、例えば16kB、64kB等に設定される。ディスク制御装置内では、このキャッシュセグメント単位で割り当て(Allocate)及び削除(Purge)を行い、キャッシュメモリ上のデータを管理する。
例えば、キャッシュセグメントが64kBに設定されているディスク制御装置において、ホスト装置から8kBのライトコマンドが発行されると、ディスク制御装置内ではキャッシュセグメント1個(64kBのキャッシュメモリ)を割り当て、ライトデータを受信する。このデータ受信の間は、他のライトコマンドとの衝突(アクセス競合)を避けるために、このキャッシュセグメントを「使用中」の状態にして排他がかけられる(以後、このような制御を「キャッシュセグメント排他」と言う)。
尚、データ転送量に対してキャッシュセグメントの容量を最適化するディスク制御装置は、特許文献1にて提案されている。又、ディスクにリードやライトを行う際の論理的な特徴を反映させた最適なセグメントサイズのセグメントにキャッシュ領域を設定してキャッシュメモリの使用効率を上げる方法は、特許文献2にて提案されている。
特開平7−319771号公報 特開2000−227865号公報
キャッシュセグメント排他は、アクセス範囲が小さい場合でもキャッシュセグメント単位で排他をかけてしまうので、アクセス性能に影響を与える場合がある。例えば、8kBのデータを順次ライトするシーケンシャルライトアクセスの場合、最初の8kBのデータのライト中に次のライトコマンドが受信されても、先のライトコマンドがキャッシュセグメントを使用中であるため、排他されてしまう。更に、次のライトコマンドも同様に待たされ、最悪の場合には8kBのライトコマンドが7個分待たされた後に1つづつ順番に処理されていくことになる。
キャッシュセグメント単位は、小さくすればその分排他をかけられるキャッシュメモリ内の領域が小さくなり、キャッシュメモリの使用効率を向上すると共に、シーケンシャルアクセスの待ち合わせを減少させることができる。しかし、キャッシュセグメント単位が小さいと、その分キャッシュメモリ内の領域の管理が非常に複雑になり、アクセス性能を向上するのが難しくなってしまう。
他方、キャッシュセグメントを大きくすると、その分キャッシュメモリ内の領域の管理が簡単になり、アクセス性能をある程度は向上することができる。しかし、キャッシュセグメント単位が大きいと、その分キャッシュメモリの使用効率が低下すると共に、シーケンシャルアクセスの待ち合わせが増大してしまい、シーケンシャルアクセスの場合のアクセス性能が低下してしまう。このため、従来技術では、キャッシュメモリ内の領域の管理が非常に複雑にならない程度の大きさにキャッシュセグメントを設定している。
そこで、本発明は、キャッシュセグメントの競合があっても、アクセス範囲が競合していなければデータのアクセスを許可することで、アクセスを並列に処理してアクセス性能を向上可能なアクセス制御方法、ディスク制御装置及び記憶装置を提供することを目的とする。
上記の課題は、キャッシュセグメント単位に区切られたキャッシュメモリのアクセス制御方法であって、アクセスコマンドがアクセスするキャッシュセグメントが、アクセス中のキャッシュセグメントと競合しても、アクセス範囲の重なりがなければアクセスを許容するアクセス許容ステップを含むことを特徴とするアクセス制御方法によって達成できる。
上記の課題は、ディスクに対する入出力を制御するディスク制御装置であって、キャッシュセグメント単位に区切られたキャッシュメモリと、アクセスコマンドがアクセスするキャッシュセグメントが、アクセス中のキャッシュセグメントと競合しても、アクセス範囲の重なりがなければアクセスを許容する制御手段とを備えたことを特徴とするディスク制御装置によっても達成できる。
上記の課題は、複数の記録媒体を有する格納装置と、該記録媒体に対する入出力を制御する媒体制御装置とを備え、該媒体制御装置は、キャッシュセグメント単位に区切られたキャッシュメモリと、アクセスコマンドがアクセスするキャッシュセグメントがアクセス中のキャッシュセグメントと競合してもアクセス範囲の重なりがなければアクセスを許容する制御手段とを備えたことを特徴とする記憶装置によっても達成できる。
本発明によれば、キャッシュセグメントの競合があっても、アクセス範囲が競合していなければデータのアクセスが許可されるので、アクセスを並列に処理してアクセス性能を向上可能なアクセス制御方法、ディスク制御装置及び記憶装置を実現することができる。
以下に、本発明になるアクセス制御方法、ディスク制御装置及び記憶装置の各実施例を図面と共に説明する。
図1は、本発明になる記憶装置の一実施例の要部を示すブロック図である。記憶装置の本実施例では、本発明が磁気ディスク装置に適用されている。記憶装置の本実施例は、本発明になるアクセス制御方法の一実施例及び本発明になるディスク制御装置の一実施例を採用する。
図1に示すように、記憶装置は、ホスト装置1と、ディスク制御装置2と、ディスク装置3とを備える。尚、ホスト装置1は、記憶装置内ではなく、外部接続される構成であっても良い。
ホスト装置1は、周知の構成のサーバや汎用コンピュータにより構成されている。ディスク制御装置2は、チャネルアダプタ(CA)21、セントラルモジュール(CM)22、キャッシュメモリ23及びデバイスアダプタ(DA)24からなる。CA21は、ホスト装置1からコマンド(又は、要求)を受け取ったり、ホスト装置1とディスク制御装置2との間のデータのやり取りを行う。CM22は、ディスク制御装置2の入出力(I/O)処理を制御する。キャッシュメモリ23は、後述するように例えば16kB、64kB等の所定のキャッシュセグメント単位で分割された構成を有する。DA24は、ディスク制御装置2とディスク装置3内の複数のディスク31との間のデータのやり取りを行う。
CM22は、後述するジョブ管理テーブル224を有する入出力(I/O)制御部221、後述するキャッシュセグメント管理テーブル225を有するキャッシュ制御部222及びディスク制御部223からなる。I/O制御部221は、ホスト装置1からの入出力を管理し、フロントエンド(Front End)のCA21やバックエンド(Back End)のディスク制御部223やDA24に対する処理のスケジューリングを行うと共に、入出力(I/O)時間等の監視を行う。キャッシュ制御部222は、キャッシュメモリ23を管理すると共に、入出力制御部221からの要求等の入出力(I/O)処理に対してキャッシュメモリ23の割り当てを行い、キャッシュメモリ23上のユーザデータを管理する。ディスク制御部223は、ディスク制御装置2の配下にあるディスク装置3を管理すると共に、DA24に対するステージング処理やライトバック処理等のバックエンド処理(Back End Process)のスケジューリングを行う。
図2は、リード処理を説明するブロック図であり、図3は、ライト処理を説明するブロック図である。図2及び図3中、図1と同一部分には同一符号を付し、その説明は省略する。ホスト装置1からのアクセスは、ディスク制御装置2内のキャッシュメモリ23を経由して処理される。
図2において、ホスト装置1からのアクセスコマンドがリードコマンドの場合、キャッシュメモリ23上のデータにヒットすれば、ディスク装置3からの読み込み(ステージング)なしで、矢印T1で示すようにキャッシュメモリ23からホスト装置1にデータが転送される。他方、ホスト装置1からのアクセスコマンドがリードコマンドの場合、キャッシュメモリ23上のデータにヒットしなければ、矢印T2で示すようにディスク装置3からの読み込み(ステージング)を行ってから、矢印T1で示すようにキャッシュメモリ23からホスト装置1にデータが転送される。
図3において、ホスト装置1からのアクセスコマンドがライトコマンドの場合、矢印T3で示すようにホスト装置1からのライトデータをキャッシュメモリ23に一時的に格納し、ライトコマンド終了後に非同期(バックグラウンド)で矢印T4で示すようにディスク装置3へ書き出し(ライトバック処理)を行う。
このように、ホスト装置1からのアクセスコマンドがキャッシュメモリ23上のデータにヒットした場合には、キャッシュメモリ23上のデータを直ちにホスト装置1に転送することでアクセス性能の向上を図っている。
図4は、ジョブ管理テーブル224の構造を示す図である。ジョブ管理テーブル224は、ジョブ管理情報を格納する。ジョブ管理情報には、データの所在を示す論理ブロックアドレス(LBA:Logical Block Address)及びアクセスサイズ、論理単位番号(LUN:Logical Unit Number)及びコマンド(リード又はライトコマンド)、及びキャッシュセグメント、開始LBAオフセット及びアクセスサイズを含む。本実施例では、キャッシュセグメント、開始LBAオフセット及びアクセスサイズをジョブ管理情報に含めた点に特徴がある。キャッシュセグメントは、リード又はライトのI/O処理、又は、ステージング処理で使用されるキャッシュセグメントを示す。又、開始LBAオフセット及びアクセスサイズは、キャッシュセグメント内のアクセス範囲を示す。
図5は、キャッシュセグメント管理テーブル225の構造を示す図である。キャッシュセグメント管理テーブル225は、キャッシュセグメント管理情報を格納する。キャッシュセグメント管理情報には、LBA、LUN、キャッシュメモリアドレス、データ有無情報、アクセス範囲情報、リードステータス及びリード数、ライトステータス及びライト数、ステージングステータス及びステージング数、及びその他のステータス及び使用数を含む。本実施例では、データ有無情報及びアクセス範囲情報がビットマップ(Bit Map)で格納されている。又、アクセス範囲情報、リードステータス及びリード数、ライトステータス及びライト数、ステージングステータス及びステージング数、及びその他のステータス及び使用数をキャッシュセグメント管理情報に含めた点に特徴がある。アクセス範囲情報は、リード又はライトのI/O処理、又は、ステージング処理でアクセス範囲或いはアクセス部分がセットされるビットマップ情報である。リードステータスは、キャッシュセグメントをリードのI/O処理で使用する時にセットされるステータスであり、リード数は、リード実行中の数を示す。ライトステータスは、キャッシュセグメントをライトのI/O処理で使用する時にセットされるステータスであり、ライト数は、ライト実行中の数を示す。ステージングステータスは、キャッシュセグメントをステージング処理で使用する時にセットされるステータスであり、ステージング数は、ステージング実行中の数を示す。その他のステータスは、キャッシュセグメントを上記以外のその他の処理(例えば、ライトバック処理等)で使用する時にセットされるステータスであり、使用数は、その他の処理の使用数を示す。リードステータス、ライトステータス、ステージングステータス及びその他のステータスは、キャッシュセグメントがどのような処理で使われているかを示す一種のオペレーションフラグである。
上記の如く、ディスク制御装置2内のキャッシュメモリ23は、例えば16kB、64kB等の所定のキャッシュセグメント単位で区切られ、個々のキャッシュセグメントは、キャッシュセグメント管理テーブル225に格納されたキャッシュセグメント管理情報に基づいて管理される。例えば、あるキャッシュセグメントが使用(アクセス)中の場合は、このキャッシュセグメントに該当するキャッシュセグメント管理テーブル225に使用中のステータスが格納され、更に、リード中であるかライト中であるかを示す情報も格納される。つまり、リードのI/O処理の場合、キャッシュセグメント管理テーブル225にリードステータスが格納されると共に、リード数に「1」を加算することでリードの使用状態が格納される。同様に、ライトのI/O処理の場合、キャッシュセグメント管理テーブル225にライトステータスが格納されると共に、ライト数に「1」を加算することでライトの使用状態が格納される。これにより、キャッシュセグメント内でアクセスが競合した場合は、上記ステータスをチェックして排他(キャッシュセグメント排他)を行える。リード又はライトのI/O処理中のキャッシュセグメントに対して後続のI/O処理が衝突した場合、ホスト装置1からのリード又はライトのI/Oアクセスで検索されたキャッシュセグメントが既に使用状態であれば、現在使用中のI/O処理が終了するまで後続のI/O処理はディスク制御装置2内で待ち合わせを行う。このように従来技術のようにキャッシュセグメント単位でキャッシュメモリ23の使用状態を管理(排他)するのではなく、アクセス範囲毎に使用状態を管理(排他)することで、実際にアクセス範囲が競合する場合以外は、アクセスを並列に実行できるような制御を実現することができる。
図6は、本実施例の全体動作の概略を説明するフローチャートである。図6に示す処理は、図1に示すCM22により実行される。図6において、ステップS1は、ホスト装置1からのアクセスコマンド、即ち、リードコマンド又はライトコマンドをCA21を介して受信し、アクセスコマンドに関する情報をジョブ管理テーブル224に格納する。ステップS2は、キャッシュセグメントの検索処理を行う。
図7は、ステップS2が行うキャッシュセグメントの検索処理を説明するフローチャートである。図7において、ステップS21は、アクセス位置からキャッシュセグメントバウンダリの位置情報を求め、ステップS22は、例えばハッシュにより目的のキャッシュセグメントを検索する。これにより、アクセス範囲のデータを保持しているキャッシュセグメントを検索する。ステップS23は、キャッシュデータがアクセス位置に存在するか否かを判定する。キャッシュミスでありステップS23の判定結果がNOであると、ステップS24は、周知の方法で新規のキャッシュセグメントを割り当てる。又、ステップS25は、戻り値でキャッシュ動作が可能である旨を図1に示すステップS3へ返し、処理は終了する。
他方、キャッシュヒットでありステップS23の判定結果がYESであると、ステップS26は、キャッシュデータが使用中であるか否かを判定する。ステップS26の判定結果がNOでありキャッシュヒットが可能であると、処理は上記ステップS25へ進む。ステップS26の判定結果がYESであると、ステップS27は、LBAが示すアクセス位置情報と、アクセスサイズ(LBAサイズ)が示すキャッシュセグメントサイズに基づいて、キャッシュセグメント内のアクセス開始位置を求める。ステップS28は、キャッシュセグメント管理テーブル225からアクセス範囲情報(ビットマップ)を取得し、ステップS29は、アクセス開始位置からアクセスサイズ分のビットマップをチェックする。ステップS30は、アクセス範囲が重なるか否かを判定する。つまり、目的のキャッシュセグメントが見つかった場合、今回のアクセス範囲とキャッシュセグメント管理テーブル225に格納されているアクセス範囲が重なっているか否かのチェックを行う。ステップS30の判定結果がNOでありアクセスが可能であると、処理はステップS25へ進む。他方、ステップS30の判定結果がYESでありアクセスが不可能であると、ステップS31は、戻り値でキャッシュ動作が不可能である旨を図1に示すステップS3へ返し、処理は終了する。
図6の説明に戻るに、ステップS3は、キャッシュ動作が可能であるか否かをステップS2におけるキャッシュセグメントの検索処理の結果に基づいて判定する。キャッシュ動作が不可能でありステップS3の判定結果がNOであると、ステップS4は、アクセスの衝突が発生したと判断し、現在処理中のアクセス処理が完了するまで後続のアクセスコマンドをキューイングすることで待ち合わせを行い、処理は終了する。
ステップS3の判定結果がYESであると、ステップS5は、アクセスコマンドがリードコマンドであるかライトコマンドであるかを判定する。アクセスコマンドがリードコマンドの場合は処理がステップS6へ進み、アクセスコマンドがライトコマンドの場合は処理が後述するステップS8へ進む。ステップS6は、キャッシュデータが伽sh巣メモリ23に存在するか否かを判定し、判定結果がYESであると、処理は後述するステップS8へ進む。つまり、ホスト装置1からのアクセスコマンドに対し、先ずジョブ管理テーブル224でアクセス情報が保持され、次にジョブ管理テーブル224の情報を元に、アクセス対象のデータがキャッシュメモリ23上に存在するか否かの検索を行う。ステップS6の判定結果がNOであると、ステップS7は、ディスク装置3のディスク31からデータを読み込むステージング処理を行い、処理は後述するステップS8へ進む。
図8は、ステップS7が行うステージング処理を説明するフローチャートである。図8において、ステップS71は、新規に割当てられたキャッシュメモリ23のキャッシュセグメントを求め、ステップS72は、再度データが存在しない部分を確認して存在しない部分のビットマップを作成する。ステップS73は、キャッシュセグメント管理テーブル225にステージング範囲をビットマップでアクセス範囲情報にセットすると共に、データが存在しない部分をビットマップでデータ有無情報にセットする。ステップS74は、ステージング処理を周知の方法で行い、ステップS75は、キャッシュセグメント管理テーブル225のアクセス範囲情報、即ち、ステージング範囲をリセットする。ステップS76は、ステージング数が「0」になったか否かを判定し、判定結果がNOであると、処理は終了する。ステップS76の判定結果がYESであると、ステップS77は、キャッシュセグメント管理テーブル225のステージングステータスをリセットし、処理は終了する。
図6の説明に戻るに、ステップS8は、キャッシュセグメント管理テーブル225にアクセス範囲情報をビットマップでセットすると共に、実行した処理(オペレーション)に対応するステータス(オペレーションフラグ)をセットし、対応する処理(オペレーション)の使用数(処理数)に「1」を加算する。ステップS9は、ホスト装置1及びディスク制御装置2内のキャッシュメモリ23間でデータ転送を行い、ステップS10は、キャッシュセグメントのアクセス終了処理を行う。
図9は、ステップS10が行うアクセス終了処理を説明するフローチャートである。図9において、ステップS101は、キャッシュヒット動作していたキャッシュセグメントを求め、ステップS102は、今回アクセスしていた位置及びアクセス範囲情報からビットマップを作成する。ステップS103は、キャッシュセグメント管理テーブル225のアクセス範囲情報(ビットマップ)から今回のアクセス範囲をリセットする。ステップS104は、今回のアクセスがリードであるかライトであるかを判定し、リードであれば処理はステップS105へ進み、ライトであれば処理は後述するステップS108へ進む。
ステップS105は、キャッシュセグメント管理テーブル225のリード数から「1」を減算し、ステップS106は、リード数が「0」になったか否かを判定する。ステップS106の判定結果がNOであると、処理は終了する。又、ステップS106の判定結果がYESであると、ステップS107は、キャッシュセグメント管理テーブル225のリードステータスをリセットし、処理は終了する。
ステップS108は、キャッシュセグメント管理テーブル225のライト数から「1」を減算し、ステップS109は、ライト数が「0」になったか否かを判定する。ステップS109の判定結果がNOであると、処理は終了する。又、ステップS109の判定結果がYESであると、ステップS110は、キャッシュセグメント管理テーブル225のライトステータスをリセットし、処理は終了する。
図6の説明に戻るに、ステップS11は、ジョブ管理テーブル224を開放して更新可能な状態とし、処理は終了する。
尚、ライトバック処理は、ある程度ライトデータをまとめてディスク装置3内のディスク31にライトすることで、アクセス性能の向上が図れる。そこで、本実施例では、現在キャッシュメモリ23にアクセス中の範囲でもライトバック処理を施すべきライトデータが存在する場合には、アクセス範囲が競合するがライトバック処理を行う。但し、ホスト装置1からのライトアクセス中は、そのアクセス範囲のデータをディスク31へライトバック処理を行うとデータ保証ができないため、キャッシュセグメント管理テーブル225のライトステータスがライトアクセス中であることを示す場合には、ライトバック処理の対象としないようにする。
上記の如く、キャッシュセグメント管理テーブル225は、1つのキャッシュセグメントで保持可能なデータ量分のビットマップ情報でデータ有無情報及びアクセス範囲情報を格納するので、アクセス中の範囲がわかるようになっている。例えば、1つのキャッシュセグメントで64kBのデータを保持できる場合であれば、1LBA(512 バイト)で1 ビットとして128ビット(16バイト)のビットマップ情報をキャッシュセグメント管理テーブル225に格納する。又、キャッシュセグメント管理テーブル225は、キャッシュセグメントがどのような処理で使われているかを示すステータス(オペレーションフラグ)と、更に各処理(オペレーション)を行っている使用数(処理数)を格納する。このように、キャッシュセグメント管理テーブル225は、ホスト装置1からのアクセスコマンドに対して、ディスク制御装置2内で行われる処理(オペレーション)の内容(ステータスや使用数等)を管理するので、アクセスコマンドはキャッシュセグメント管理テーブル225を用いて適切にスケジューリング可能である。
又、ホスト装置1からのアクセスコマンドに関するアクセス情報(LBA、アクセスサイズ、LUN、リードコマンド又はライトコマンド、キャッシュセグメント、アクセス範囲(開始LBAオフセット、アクセスサイズ))は、アクセスが完了するまでジョブ管理テーブル224で管理される。
従って、ホスト装置1からのアクセスコマンドが使用するキャッシュセグメントは、処理中のアクセスコマンドが使用しているキャッシュセグメントと競合していても、アクセス範囲の重なりがない限りはアクセスを許容する。
図10は、シーケンシャルアクセスを説明する図である。図10は、ホスト装置1からアクセスコマンドA1〜A8がシーケンシャルに発生する場合を示す。このようなシーケンシャルアクセスの場合、従来技術のキャッシュセグメント排他ではアクセス性能に問題が発生する。
つまり、A1〜A8までのシーケンシャルアクセスは、従来技術では次のように処理される。アクセスA1は、キャッシュセグメント#00を割り当てて処理される。キャッシュセグメント#00は、アクセス範囲の8kBを含むセグメント全体を使用状態として排他をかける。従って、後続のアクセスA2とA3は、アクセスA1が終了するまで待たされる。更に続くアクセスA4では、キャッシュセグメント#01を割り当てて処理される。キャッシュセグメント#01は、アクセス範囲の8kBを含むセグメント全体を使用状態として排他をかける。従って、後続のアクセスA5〜A8は、アクセスA4が終了するまで待たされる。
このように、シーケンシャルアクセスの場合、従来技術のキャッシュセグメント排他では処理される順番がまちまちになってしまう。
これに対し、上記実施例によれば、A1〜A8までのシーケンシャルアクセスは、次のように処理される。アクセスA1は、キャッシュセグメント#00の範囲snを割り当てて処理される。キャッシュセグメント#00は、アクセス範囲snの8kBのみを使用状態として排他をかける。従って、後続のアクセスA2とA3は、アクセスA1が終了するまで待たされることなく、アクセス範囲snとは重ならないキャッシュセグメント#00のアクセス範囲sn+1,sn+2を割り当てて処理される。更に続くアクセスA4では、キャッシュセグメント#01のアクセス範囲s1を割り当てて処理される。キャッシュセグメント#01は、アクセス範囲s1の8kBのみを使用状態として排他をかける。従って、後続のアクセスA5〜A8は、アクセスA4が終了するまで待たされることなく、アクセス範囲s1とは重ならないキャッシュセグメント#01のアクセス範囲s2〜s5を割り当てて処理される。
このように、シーケンシャルアクセスの場合、本実施例のキャッシュセグメント排他では、アクセスが待たされたり処理される順番がまちまちになることもなく、A1〜A8の正しいシーケンスでアクセスが可能となる。
上記実施例では、アクセス範囲をビットマップ情報で管理しているが、アクセス範囲の管理はビットマップ情報を用いるものに限定されず、アクセス範囲がわかるビットマップ情報以外の情報を用いても、同様のアクセス範囲の管理を行うことができる。
又、ジョブ管理情報は、ジョブ管理テーブル224以外の形式で格納するようにしても良く、キャッシュセグメント管理情報も、キャッシュセグメント管理テーブル225以外の形式で格納するようにしても良い。
更に、本発明の適用は磁気ディスク装置に限定されるものではなく、ディスク装置は光ディスクや光磁気ディスクを用いるものであっても、更に、キャッシュ機能を必要とするディスク以外の形態の記録媒体を用いる格納装置であっても良い。
尚、本発明は、以下に付記する発明をも包含するものである。
(付記1) キャッシュセグメント単位に区切られたキャッシュメモリのアクセス制御方法であって、
アクセスコマンドがアクセスするキャッシュセグメントが、アクセス中のキャッシュセグメントと競合しても、アクセス範囲の重なりがなければアクセスを許容するアクセス許容ステップを含むことを特徴とする、アクセス制御方法。
(付記2) キャッシュセグメントを使う処理を示すステータスと、該処理の使用状態とを含むキャッシュセグメント管理情報を格納する格納ステップを更に含み、
該アクセス許容ステップは、該キャッシュセグメント管理情報に基づいてアクセスを許容することを特徴とする、付記1記載のアクセス制御方法。
(付記3) 該キャッシュセグメント管理情報は、該ステータス及び該処理の使用状態に加え、データの所在を示すアドレスと、データの有無を示すデータ有無情報と、アクセス範囲を示すアクセス範囲情報とを含むことを特徴とする、付記2記載のアクセス制御方法。
(付記4) 該格納ステップは、該キャッシュセグメント管理情報をキャッシュセグメント管理テーブルの形式で格納することを特徴とする、付記2又は3記載のアクセス制御方法。
(付記5) 該格納ステップは、該データ有無情報及び/又は該アクセス範囲情報をビットマップで格納することを特徴とする、付記3記載のアクセス制御方法。
(付記6) 実行した処理に対応するステータス及び実行した処理の使用状態を更新する更新ステップを更に含むことを特徴とする、付記2又は3記載のアクセス制御方法。
(付記7) ジョブ管理テーブルに格納されたアクセス情報を元に、アクセス対象のデータが該キャッシュメモリ上に存在するか否かの検索を行う検索ステップと、
該アクセス対象のデータが該キャッシュメモリ上に存在しないと、ステージング処理により該アクセス対象のデータを格納装置からリードするステップとを更に含むことを特徴とする、付記1記載のアクセス制御方法。
(付記8) 該アクセスコマンドのアクセスが終了すると該キャッシュセグメント管理情報をリセットするステップを更に含むことを特徴とする、付記2又は3記載のアクセス制御方法。
(付記9) ディスクに対する入出力を制御するディスク制御装置であって、
キャッシュセグメント単位に区切られたキャッシュメモリと、
アクセスコマンドがアクセスするキャッシュセグメントが、アクセス中のキャッシュセグメントと競合しても、アクセス範囲の重なりがなければアクセスを許容する制御手段とを備えたことを特徴とする、ディスク制御装置。
(付記10) 該制御手段は、キャッシュセグメントを使う処理を示すステータスと、該処理の使用状態とを含むキャッシュセグメント管理情報を格納するキャッシュ制御部を有し、該キャッシュセグメント管理情報に基づいてアクセスを許容することを特徴とする、付記9記載のディスク制御装置。
(付記11) 該キャッシュセグメント管理情報は、該ステータス及び該処理の使用状態に加え、データの所在を示すアドレスと、データの有無を示すデータ有無情報と、アクセス範囲を示すアクセス範囲情報とを含むことを特徴とする、付記10記載のディスク制御装置。
(付記12) 該キャッシュ制御部は、該キャッシュセグメント管理情報をキャッシュセグメント管理テーブルの形式で格納することを特徴とする、付記10又は11記載のディスク制御装置。
(付記13) 該キャッシュ制御部は、該データ有無情報及び/又は該アクセス範囲情報をビットマップで格納することを特徴とする、付記11記載のディスク制御装置。
(付記14) 該制御手段は、実行した処理に対応するステータス及び実行した処理の使用状態を更新することを特徴とする、付記10又は11記載のディスク制御装置。
(付記15) 該制御手段は、
ジョブ管理テーブルに格納されたアクセス情報を元に、アクセス対象のデータが該キャッシュメモリ上に存在するか否かの検索を行う入出力制御部と、
該アクセス対象のデータが該キャッシュメモリ上に存在しないと、ステージング処理により該アクセス対象のデータを該ディスクからリードするディスク制御部とを有することを特徴とする、付記9記載のディスク制御装置。
(付記16) 該制御手段は、該アクセスコマンドのアクセスが終了すると該キャッシュセグメント管理情報をリセットすることを特徴とする、付記10又は11記載のディスク制御装置。
(付記17) 複数の記録媒体を有する格納装置と、
該記録媒体に対する入出力を制御する媒体制御装置とを備え、
該媒体制御装置は、キャッシュセグメント単位に区切られたキャッシュメモリと、アクセスコマンドがアクセスするキャッシュセグメントがアクセス中のキャッシュセグメントと競合してもアクセス範囲の重なりがなければアクセスを許容する制御手段とを備えたことを特徴とする、記憶装置。
(付記18) 該媒体制御装置の制御手段は、キャッシュセグメントを使う処理を示すステータスと、該処理の使用状態とを含むキャッシュセグメント管理情報を格納するキャッシュ制御部を有し、該キャッシュセグメント管理情報に基づいてアクセスを許容することを特徴とする、付記17記載の記憶装置。
(付記19) 該キャッシュセグメント管理情報は、該ステータス及び該処理の使用状態に加え、データの所在を示すアドレスと、データの有無を示すデータ有無情報と、アクセス範囲を示すアクセス範囲情報とを含むことを特徴とする、付記18記載の記憶装置。
(付記20) 該キャッシュ制御部は、該キャッシュセグメント管理情報をキャッシュセグメント管理テーブルの形式で格納することを特徴とする、付記18又は19記載の記憶装置。
(付記21) 該キャッシュ制御部は、該データ有無情報及び/又は該アクセス範囲情報をビットマップで格納することを特徴とする、付記19記載の記憶装置。
(付記22) 該媒体制御装置の該制御手段は、実行した処理に対応するステータス及び実行した処理の使用状態を更新することを特徴とする、付記18又は19記載の記憶装置。
(付記23) 該媒体制御装置の該制御手段は、
ジョブ管理テーブルに格納されたアクセス情報を元に、アクセス対象のデータが該キャッシュメモリ上に存在するか否かの検索を行う入出力制御部と、
該アクセス対象のデータが該キャッシュメモリ上に存在しないと、ステージング処理により該アクセス対象のデータを該ディスクからリードするディスク制御部とを有することを特徴とする、付記17記載の記憶装置。
(付記24) 該媒体制御装置の該制御手段は、該アクセスコマンドのアクセスが終了すると該キャッシュセグメント管理情報をリセットすることを特徴とする、付記18又は19記載の記憶装置。
以上、本発明を実施例により説明したが、本発明は上記実施例に限定されるものではなく、種々の変形及び改良が可能であることは、言うまでもない。
本発明になる記憶装置の一実施例の要部を示すブロック図である。 リード処理を説明するブロック図である。 ライト処理を説明するブロック図である。 ジョブ管理テーブルの構造を示す図である。 キャッシュセグメント管理テーブルの構造を示す図である。 実施例の全体動作の概略を説明するフローチャートである。 キャッシュセグメントの検索処理を説明するフローチャートである。 ステージング処理を説明するフローチャートである。 アクセス終了処理を説明するフローチャートである。 シーケンシャルアクセスを説明する図である。
符号の説明
1 ホスト装置
2 ディスク制御装置
3 ディスク装置
22 セントラルモジュール
23 キャッシュメモリ
221 I/O制御部
222 キャッシュ制御部
223 ディスク制御部
224 ジョブ管理テーブル
225 キャッシュセグメント管理テーブル

Claims (10)

  1. キャッシュセグメント単位に区切られたキャッシュメモリのアクセス制御方法であって、
    アクセスコマンドがアクセスするキャッシュセグメントが、アクセス中のキャッシュセグメントと競合しても、アクセス範囲の重なりがなければアクセスを許容するアクセス許容ステップを含むことを特徴とする、アクセス制御方法。
  2. キャッシュセグメントを使う処理を示すステータスと、該処理の使用状態とを含むキャッシュセグメント管理情報を格納する格納ステップを更に含み、
    該アクセス許容ステップは、該キャッシュセグメント管理情報に基づいてアクセスを許容することを特徴とする、請求項1記載のアクセス制御方法。
  3. 該キャッシュセグメント管理情報は、該ステータス及び該処理の使用状態に加え、データの所在を示すアドレスと、データの有無を示すデータ有無情報と、アクセス範囲を示すアクセス範囲情報とを含むことを特徴とする、請求項2記載のアクセス制御方法。
  4. 該格納ステップは、該キャッシュセグメント管理情報をキャッシュセグメント管理テーブルの形式で格納することを特徴とする、請求項2又は3記載のアクセス制御方法。
  5. 該格納ステップは、該データ有無情報及び/又は該アクセス範囲情報をビットマップで格納することを特徴とする、請求項3記載のアクセス制御方法。
  6. 実行した処理に対応するステータス及び実行した処理の使用状態を更新する更新ステップを更に含むことを特徴とする、請求項2又は3記載のアクセス制御方法。
  7. ジョブ管理テーブルに格納されたアクセス情報を元に、アクセス対象のデータが該キャッシュメモリ上に存在するか否かの検索を行う検索ステップと、
    該アクセス対象のデータが該キャッシュメモリ上に存在しないと、ステージング処理により該アクセス対象のデータを格納装置からリードするステップとを更に含むことを特徴とする、請求項1記載のアクセス制御方法。
  8. ディスクに対する入出力を制御するディスク制御装置であって、
    キャッシュセグメント単位に区切られたキャッシュメモリと、
    アクセスコマンドがアクセスするキャッシュセグメントが、アクセス中のキャッシュセグメントと競合しても、アクセス範囲の重なりがなければアクセスを許容する制御手段とを備えたことを特徴とする、ディスク制御装置。
  9. 該制御手段は、キャッシュセグメントを使う処理を示すステータスと、該処理の使用状態とを含むキャッシュセグメント管理情報を格納するキャッシュ制御部を有し、該キャッシュセグメント管理情報に基づいてアクセスを許容することを特徴とする、請求項8記載のディスク制御装置。
  10. 複数の記録媒体を有する格納装置と、
    該記録媒体に対する入出力を制御する媒体制御装置とを備え、
    該媒体制御装置は、キャッシュセグメント単位に区切られたキャッシュメモリと、アクセスコマンドがアクセスするキャッシュセグメントがアクセス中のキャッシュセグメントと競合してもアクセス範囲の重なりがなければアクセスを許容する制御手段とを備えたことを特徴とする、記憶装置。
JP2004244052A 2004-08-24 2004-08-24 アクセス制御方法、ディスク制御装置及び記憶装置 Pending JP2006065402A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2004244052A JP2006065402A (ja) 2004-08-24 2004-08-24 アクセス制御方法、ディスク制御装置及び記憶装置
US10/999,127 US7421536B2 (en) 2004-08-24 2004-11-30 Access control method, disk control unit and storage apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004244052A JP2006065402A (ja) 2004-08-24 2004-08-24 アクセス制御方法、ディスク制御装置及び記憶装置

Publications (1)

Publication Number Publication Date
JP2006065402A true JP2006065402A (ja) 2006-03-09

Family

ID=35944811

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004244052A Pending JP2006065402A (ja) 2004-08-24 2004-08-24 アクセス制御方法、ディスク制御装置及び記憶装置

Country Status (2)

Country Link
US (1) US7421536B2 (ja)
JP (1) JP2006065402A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008234532A (ja) * 2007-03-23 2008-10-02 Nec Corp キャッシュメモリ装置及びそのキャッシュ管理方法,キャッシュ管理用プログラム

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080040536A1 (en) * 2006-05-26 2008-02-14 Jih-Liang Juang Method and apparatus for device to request and operate an external buffer provided from the host
US8032888B2 (en) * 2006-10-17 2011-10-04 Oracle America, Inc. Method and system for scheduling a thread in a multiprocessor system
JP2008226141A (ja) * 2007-03-15 2008-09-25 Toshiba Corp プログラムおよび情報処理装置
JP4585599B1 (ja) * 2009-07-17 2010-11-24 株式会社東芝 データ記憶装置及びキャッシュ制御方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07319771A (ja) 1994-05-27 1995-12-08 Fujitsu Ltd ディスク制御装置
JP2000227865A (ja) 1998-12-03 2000-08-15 Olympus Optical Co Ltd セグメントキャッシュ方式の情報記録再生装置及びセグメントキャッシュ方式の情報記録再生方法
US6601137B1 (en) * 2000-04-19 2003-07-29 Western Digital Technologies, Inc. Range-based cache control system and method
US6490635B1 (en) * 2000-04-28 2002-12-03 Western Digital Technologies, Inc. Conflict detection for queued command handling in disk drive controller
JP3759048B2 (ja) * 2002-02-04 2006-03-22 日本電気株式会社 ディスクアレイ装置のディスクキャッシュ管理方法
US7043610B2 (en) * 2002-08-19 2006-05-09 Aristos Logic Corporation System and method for maintaining cache coherency without external controller intervention

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008234532A (ja) * 2007-03-23 2008-10-02 Nec Corp キャッシュメモリ装置及びそのキャッシュ管理方法,キャッシュ管理用プログラム

Also Published As

Publication number Publication date
US20060047901A1 (en) 2006-03-02
US7421536B2 (en) 2008-09-02

Similar Documents

Publication Publication Date Title
JP7115899B2 (ja) ハイブリッドメモリにおける書き込み及びフラッシュ支援のためのメモリモジュール及びその動作方法
JP4163461B2 (ja) キャッシュ・バッファ制御方法及び制御装置
US8843691B2 (en) Prioritized erasure of data blocks in a flash storage device
JP6893897B2 (ja) ソリッドステートドライブ(ssd)、そのガーベッジコレクションに係る方法、及びその具現に係る物品
US8069306B2 (en) Data area managing method in information recording medium and information processor employing data area managing method
JP2007115233A (ja) ディスク制御装置、ディスク制御方法、ディスク制御プログラム
KR20100132244A (ko) 메모리 시스템 및 메모리 시스템 관리 방법
JP2005293205A (ja) 記憶制御装置、制御方法、および制御プログラム。
JP5541361B2 (ja) 記憶装置、解放優先順位決定方法およびプログラム
JP2010009653A (ja) ディスク記憶装置およびプログラム
US7032093B1 (en) On-demand allocation of physical storage for virtual volumes using a zero logical disk
JP2017107318A (ja) メモリシステム、情報処理装置および処理方法
KR20010050881A (ko) 캐시 메모리의 제어 방법, 컴퓨터 시스템, 하드 디스크드라이브 장치 및 하드 디스크 제어 장치
US20100185793A1 (en) Storage device and data transfer method for the same
WO2024192888A1 (zh) 一种cxl内存模组、内存数据的置换方法及计算机系统
CN116860170A (zh) 一种数据处理方法、装置、设备、介质及固态硬盘
JP4242245B2 (ja) フラッシュrom制御装置
JP2010237907A (ja) ストレージ装置および記録方法
JP2001195197A (ja) 記憶されたレコードについてのフォーマット情報を効率的に提供するためのディレクトリを含むデジタル・データ・サブシステム
JP2006065402A (ja) アクセス制御方法、ディスク制御装置及び記憶装置
JP2005339299A (ja) ストレージ装置のキャッシュ制御方法
JP2005258789A (ja) ストレージ装置、ストレージコントローラ及びライトバックキャッシュ制御方法
JP2012185618A (ja) ストレージシステム、ストレージ制御装置およびストレージ制御方法
US9632950B2 (en) Storage control device controlling access to a storage device and access controlling method of a storage device
US20200319999A1 (en) Storage device, control method of storage device, and storage medium

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080214

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080304

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080507

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080617

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080813

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081202

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090130

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090602