JP2004227211A - ディスクアレイ装置およびプログラム - Google Patents
ディスクアレイ装置およびプログラム Download PDFInfo
- Publication number
- JP2004227211A JP2004227211A JP2003013138A JP2003013138A JP2004227211A JP 2004227211 A JP2004227211 A JP 2004227211A JP 2003013138 A JP2003013138 A JP 2003013138A JP 2003013138 A JP2003013138 A JP 2003013138A JP 2004227211 A JP2004227211 A JP 2004227211A
- Authority
- JP
- Japan
- Prior art keywords
- immediate data
- array device
- entry
- stored
- area
- 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
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
【課題】キャッシュメモリを備えたディスクアレイ装置において、ホストコンピュータからコマンドに付加された形式で送られてくるImmediate Dataを直接キャッシュメモリに書き込めるようにすることにより、ディスクアレイ装置の書き込み性能を向上させる。
【解決手段】キャッシュメモリ14には、キャッシュ領域141以外に、ホストコンピュータ20からコマンドに付加された形式で送られてくるImmediate Dataを一時的に格納するImmediate Data領域143が設けられている。ホストディレクタ11は、Immediate Data領域143を構成する複数のエントリの内の、Immediate Dataの書き込みに使用するエントリを、Immediate Dataの受信前に予め決定しておき、ホストコンピュータ20からImmediate Dataの付加されたコマンドが送られてきたとき、上記予め決定しているエントリにImmediate Dataを格納する。
【選択図】 図1
【解決手段】キャッシュメモリ14には、キャッシュ領域141以外に、ホストコンピュータ20からコマンドに付加された形式で送られてくるImmediate Dataを一時的に格納するImmediate Data領域143が設けられている。ホストディレクタ11は、Immediate Data領域143を構成する複数のエントリの内の、Immediate Dataの書き込みに使用するエントリを、Immediate Dataの受信前に予め決定しておき、ホストコンピュータ20からImmediate Dataの付加されたコマンドが送られてきたとき、上記予め決定しているエントリにImmediate Dataを格納する。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
本発明は、キャッシュメモリを備えたディスクアレイ装置に関し、特に、ホストコンピュータからディスクアレイ装置にデータを書き込む際の書き込み性能を向上させる技術に関する。
【0002】
【従来の技術】
近年、ディスクアレイ装置においては、スループット向上のためにキャッシュメモリの搭載が不可欠になっている。ディスクアレイ装置の全容量の中で、アクセス頻度が高い領域は限られているので、その部分のデータをキャッシュメモリ上にコピーしておくことによりホストコンピュータへの応答を速く行うことができる。
【0003】
図9は従来のディスクアレイ装置において、ライトコマンドを受信したときの処理を示す流れ図である(例えば、特許文献1参照)。
【0004】
図9に示すように、従来のディスクアレイ装置は、ホストコンピュータからライトコマンドを受信すると(ステップS91)、キャッシュメモリ上のページの中からデータを書き込むページを選択し、そのページを占有する(ステップS92)。その後、ディスクアレイ装置は、データの書き込み(転送)が可能であることを示すReady To Transfer信号をホストコンピュータに送信することで、データ転送処理を起動する(ステップS93)。これにより、ホストコンピュータは、ライトデータをディスクアレイ装置に転送し、ディスクアレイ装置は、ホストコンピュータから送られてきたライトデータをステップS92で占有したキャッシュページに書き込む。データの書き込みが完了すると(ステップS94)、ディスクアレイ装置は、ステップS92で占有したキャッシュページを解放した後(ステップS95)、データの書き込みが完了したことを示すレスポンス(ライトコマンドが正常終了したことを示すレスポンス)をホストコンピュータに返す(ステップS96)。
【0005】
図10は、図9の流れ図に示す処理が行われているときに、ディスクアレイ装置とホストコンピュータとの間でやり取りされる信号を示したシーケンス図である。
【0006】
図10に示すように、先ず、ホストコンピュータからディスクアレイ装置にライトコマンドが送信される(シーケンス101)。これにより、ディスクアレイ装置において、図9に示したステップS91〜S93の処理が行われる。ステップS93において、ディスクアレイ装置は、ホストコンピュータに対してReady To Transfer信号を送信する(シーケンス102)。ホストコンピュータは、Ready To Transfer信号を受信すると、ライトデータをディスクアレイ装置に送信する(シーケンス103)。ディスクアレイ装置は、ホストコンピュータから送られてきたライトデータをキャッシュページに書き込み、書き込みが完了すると、キャッシュページを解放する。その後、ディスクアレイ装置は、データの書き込みが完了したことを示すレスポンスをホストコンピュータに送信する(シーケンス104)。つまり、従来のディスクアレイ装置は、SCSIインタフェース仕様に従ってデータの書き込みを行っている。
【0007】
【特許文献1】
特開2002−278833号公報
【0008】
【発明が解決しようとする課題】
ところで、近年、IETF(The Internet Engineering Task Force)により提案されているiSCSI仕様が注目されている。これは、TCP/IPネットワーク上でSCSIインタフェースを実装することができるといった特徴を有する。また、iSCSIインタフェース仕様では、ディスクアレイ装置への書き込み性能を向上させるために、Immediate Dataといった仕様が追加されている。
【0009】
図11は、Immediate Dataを使用してデータの書き込みを行う際に、ディスクアレイ装置とホストコンピュータとの間でやり取りされる信号を示すシーケンス図である。同図に示すように、ホストコンピュータは、ライトコマンドにImmediate Dataを付加してディスクアレイ装置へ送信する(シーケンス111)。ディスクアレイ装置は、ホストコンピュータから送られてきたライトコマンドに従って、Immediate Dataの書き込みを行う。その後、ディスクアレイ装置は、Immediate Dataの書き込み完了を示すレスポンスをホストコンピュータに返す(シーケンス112)。図10と比較して分かるように、Immediate Dataを使用してデータの書き込みを行うようにすると、ディスクアレイ装置とホストコンピュータとの間で信号をやり取りする回数が少なくなり、インタフェースの負荷が低減するので、書き込み性能の向上が期待できる。
【0010】
しかしながら、上述した従来のディスクアレイ装置では、Immediate Dataを使用したデータの書き込み処理を行うことができないという問題がある。即ち、従来のディスクアレイ装置は、ライトコマンドを受信したとき、キャッシュページを占有し、その後、ホストコンピュータにReady To Transfer信号を送信してライトデータの転送を要求するようにしているので、ライトコマンドと一緒に送られてくるImmediate Dataを使用したデータの書き込みは不可能であった。
【0011】
また、例えば、ディスクアレイ装置内にバッファを設け、ライトコマンドに付加されて送られてくるImmediate Dataを上記バッファに一時的に格納しておき、キャッシュページが占有された段階で、バッファに格納されているImmediate Dataをキャッシュメモリに書き込むという方法も考えられるが、この方法では、Immediate Dataの転送が、ホストコンピュータからバッファへの転送と、バッファからキャッシュメモリへの転送との2段階になってしまうため、書き込み性能が低下してしまう恐れがある。
【0012】
【発明の目的】
そこで、本発明の目的は、ライトコマンドに付加された形式でホストコンピュータから送られてくるImmediate Dataをキャッシュメモリに直接書き込めるようにすることにより、ディスクアレイ装置の書き込み性能を向上させることにある。
【0013】
【課題を解決するための手段】
本発明にかかる第1のディスクアレイ装置は、上記目的を達成するため、
複数のディスク装置から構成されるディスクユニットと、該ディスクユニットに格納されているデータの一部の写しが格納されるキャッシュ領域を有するキャッシュメモリとを備えたディスクアレイ装置において、
前記キャッシュメモリが、ホストコンピュータからコマンドに付加された形式で送られてくるImmediate Dataを一時的に格納するImmediate Data領域を有し、且つ、
Immediate Dataの受信前に、前記Immediate Data領域を構成する複数のエントリの中からImmediate Dataの書き込みに使用するエントリを予め決定しておき、前記ホストコンピュータからImmediate Dataの付加されたコマンドが送られてきたとき、前記予め決定しておいたエントリに前記Immediate Dataを書き込むホストディレクタを備えたことを特徴とする。
【0014】
また、本発明にかかる第2のディスクアレイ装置は、第1のディスクアレイ装置において、
前記ホストディレクタが、前記Immediate Data領域に格納されているImmediate Dataを、前記キャッシュ領域に転送する構成を有することを特徴とする。
【0015】
また、本発明にかかる第3のディスクアレイ装置は、第1のディスクアレイ装置において、
前記ホストディレクタが、定期的に、前記Immediate Data領域に格納されているImmediate Dataを前記キャッシュ領域に転送する構成を有することを特徴とする。
【0016】
また、本発明にかかる第4のディスクアレイ装置は、ホストコンピュータからのリードコマンドによって要求されたデータがImmediate Dataにしか格納されていない段階でも、要求されたデータをホストコンピュータへ転送できるようにするため、第2または第3のディスクアレイ装置において、
前記ホストディレクタが、前記ホストコンピュータからリードコマンドが送られてきたとき、該リードコマンドによって要求されているデータが前記Immediate Data領域に格納されている場合は、前記Immediate Data領域から該当するデータを読み出して前記ホストコンピュータへ転送する構成を有することを特徴とする。
【0017】
また、本発明にかかる第5のディスクアレイ装置は、
複数のディスク装置から構成されるディスクユニットと、該ディスクユニットに格納されているデータの一部の写しが格納されるキャッシュ領域を有するキャッシュメモリとを備えたディスクアレイ装置において、
前記キャッシュメモリが、ホストコンピュータからコマンドに付加された形式で送られてくるImmediate Dataを一時的に格納するImmediate Data領域を有し、且つ、
前記ホストコンピュータとの接続時に、前記Immediate Data領域を構成する複数のエントリの中からImmediate Dataの書き込みに使用するエントリを決定し、該決定したエントリを示すエントリ情報を格納先記憶部に格納する初期化処理手段と、
前記ホストコンピュータからImmediate Dataの付加されたコマンドが送られてきたとき、前記格納先記憶部に格納されているエントリ情報によって示される前記Immediate Data領域中のエントリに、前記Immediate Dataを格納し、その後、前記Immediate Data領域中の空きエントリの中からImmediate Dataの書き込みに使用するエントリを決定し、該決定したエントリを前記格納先記憶部に格納するコマンド処理手段とを備えたことを特徴とする。
【0018】
また、本発明にかかる第6のディスクアレイ装置は、第5のディスクアレイ装置において、
前記Immediate Data領域に格納されているImmediate Dataを、前記キャッシュ領域に格納するデータ転送手段を備えたことを特徴とする。
【0019】
また、本発明にかかる第7のディスクアレイ装置は、第5のディスクアレイ装置において、
前記Immediate Data領域に格納されているImmediate Dataを、定期的に前記キャッシュ領域に格納するデータ転送手段を備えたことを特徴とする。
【0020】
また、本発明にかかる第8のディスクアレイ装置は、第6または第7のディスクアレイ装置において、、
前記コマンド処理手段が、前記ホストコンピュータからリードコマンドが送られてきたとき、該リードコマンドによって要求されているデータが前記Immediate Data領域に格納されている場合は、前記Immediate Data領域から該当するデータを読み出して前記ホストコンピュータへ転送する構成を有することを特徴とする。
【0021】
【作用】
キャッシュメモリには、ディスクユニットに格納されているデータの一部の写しが格納されるキャッシュ領域以外に、ホストコンピュータからコマンドに付加された形式で送られてくるImmediate Dataを一時的に格納するImmediate Data領域が設けられている。ホストディレクタは、Immediate Data領域を構成する複数のエントリの内の、Immediate Dataの書き込みに使用するエントリを、Immediate Dataの受信前に予め決定しておき、ホストコンピュータからImmediate Dataの付加されたコマンドが送られてきたとき、上記予め決定しているエントリにImmediate Dataを格納する。このように、Immediate Dataの付加されたコマンドを受信したとき、Immediate Dataを直接キャッシュメモリ上のImmediate Data領域に書き込むことができるので、ディスクアレイ装置の書き込み性能を向上させることができる。
【0022】
また、ホストディレクタは、Immediate Data領域に格納されているImmediate Dataの内の、キャッシュ領域に格納されていないImmediate Dataをキャッシュ領域に格納する処理も行う。この処理は、例えば、定期的に行う。更に、ホストディレクタは、ホストコンピュータからリードコマンドが送られてきたとき、このリードコマンドによって要求されているデータがImmediate Data領域に格納されている場合は、Immediate Data領域から該当するデータを読み出し、ホストコンピュータに転送する。
【0023】
【発明の実施の形態】
次に本発明の実施の形態について図面を参照して詳細に説明する。
【0024】
【構成の説明】
次に、本発明の実施の形態について図面を参照して詳細に説明する。
【0025】
図1は本発明の実施例のブロック図であり、ディスクアレイ装置10と、ホストコンピュータ20とから構成されている。
【0026】
ディスクアレイ装置10は、ホストディレクタ11と、ディスクディレクタ12と、磁気ディスクユニット13と、キャッシュメモリ14と、記録媒体Kとを備えている。
【0027】
磁気ディスクユニット13は、複数の磁気ディスク装置13−1〜13−mから構成されている。
【0028】
キャッシュメモリ14には、キャッシュ領域141と、キャッシュ管理領域142と、Immediate Data領域143と、Immediate Data管理領域144とが設けられている。
【0029】
キャッシュ領域141には、磁気ディスクユニット13の記憶領域を所定サイズのページに分割したときの、一部のページの写しが格納されている。
【0030】
キャッシュ管理領域142には、キャッシュ領域141を構成する各キャッシュページを管理するための情報(例えば、そのキャッシュページが有効であるか否かを示す有効ビット,そのキャッシュページに磁気ディスクユニット13上のどのページのデータが格納されているのかを示すページ情報など)が格納される。
【0031】
Immediate Data領域143は、エントリ番号「1」〜「n」が付与されたn個のエントリから構成されており、各エントリには、ホストコンピュータ20からライトコマンドに付加されて送られてきたImmediate Dataが一時的に格納される。なお、Immediate Data領域143を構成する各エントリのサイズは全て同じであり、1アドレス分のデータを書き込むことができるサイズとなっている。
【0032】
Immediate Data管理領域144には、Immediate Data領域143を構成する各エントリを管理するための情報が格納される。
【0033】
図2にImmediate Data管理領域144の内容例を示す。同図に示すように、Immediate Data管理領域144には、Immediate Data領域143を構成する各エントリ(図2の例では、エントリ番号「1」〜「n」)毎のImmediate Data管理情報(エントリ番号、有効ビット及びアドレス情報からなる)が格納される。
【0034】
エントリ番号は、そのImmediate Data管理情報が管理しているエントリのエントリ番号を表す。有効ビットは、そのImmediate Data管理情報が管理しているエントリにホストコンピュータ20からのImmediate Dataが格納されたときに“1”(有効)にされ、管理しているエントリ中のImmediate Dataがキャッシュ領域141に転送されたとき“0”(無効)にされるものであり、ホストコンピュータから送られてきたImmediate Dataを格納可能であるか否かを表示すると共に、ホストコンピュータ20からリードコマンドが送られてきたときに行われるリード処理や、後述するデータ転送処理(Immediate Data領域143に格納されているImmediate Dataをキャッシュ領域141に転送する処理)において、そのエントリが処理対象になるか否かを表示する。アドレス情報は、そのImmediate Data管理情報が管理しているエントリに格納されているImmediate Dataのアドレス(Immediate Dataと共に送られてきたライトコマンドに含まれていたライトアドレス)を表す情報である。なお、初期状態においては、各Immediate Data管理情報の有効ビットは全て“0”(無効)になっており、また、アドレス情報は設定されていない。
【0035】
ディスクディレクタ12は、キャッシュ領域141に格納されているデータを磁気ディスクユニット13に書き込む機能や、磁気ディスクユニット13に格納されているデータをキャッシュ領域141に書き込む機能を有する。
【0036】
ホストディレクタ11は、Immediate Dataの受信前にImmediate Data領域143を構成する複数のエントリの中からImmediate Dataの書き込みに使用するエントリを予め決定しておき、ホストコンピュータ20からImmediate Dataの付加されたライトコマンドが送られてきたとき、上記予め決定しておいたエントリにImmediate Dataを格納する機能や、Immediate Data領域143に格納されているImmediate Dataの内の、キャッシュ領域141への転送(格納)が済んでいないImmediate Dataをキャッシュ領域141に転送する機能や、ホストコンピュータ20からリードコマンドが送られてきたとき、このリードコマンドによって要求されているデータが、Immediate Data領域143に存在する場合は、該当するデータをImmediate Data領域143から読み出してホストコンピュータ20に転送する機能などを有する。
【0037】
このような機能を有するホストディレクタ11は、例えば、CPUによって実現されるものであり、図3に示すような構成を有する。同図に示すように、ホストディレクタ11は、初期化処理手段111と、格納先記憶部112aを備えたコマンド処理手段112と、データ転送手段113とを備えている。
【0038】
初期化処理手段111は、ホストディレクタ11とホストコンピュータ20とが接続されたことを認識したとき、キャッシュメモリ14中のImmediate Data管理領域144を初期化する機能や、Immediate Data領域143を構成する複数のエントリの中からImmediate Dataを格納するエントリを決定し(本実施例では、先頭のエントリとする)、決定したエントリのエントリ番号をコマンド処理手段112に通知する機能を備えている。
【0039】
コマンド処理手段112は、初期化処理手段111から通知されたエントリ番号を格納先記憶部112aに格納する機能や、ホストコンピュータ20からImmediate Dataの付加されたライトコマンドが送られてきたとき、Immediate Data領域143を構成する複数のエントリの内の、格納先記憶部112aに格納されているエントリ番号によって示されるエントリにImmediate Dataを書き込む機能や、格納先記憶部112aに格納されているエントリ番号に従ってImmediate Dataを書き込んだ後、次に送られてくるImmediate Dataに備えて格納先記憶部112aに格納されているエントリ番号を更新する機能や、Immediate Data管理領域144に格納されているImmediate Data管理情報の内の、Immediate Dataを書き込んだエントリに対応するImmediate Data管理情報を更新(有効ビットを“1”にし、アドレス情報にライトコマンドに含まれていたライトアドレスを設定する)する機能や、ホストコンピュータ20からリードコマンドが送られてきたとき、このリードコマンドによって要求されているデータが、Immediate Data領域143のエントリの内の、有効ビットが“1”(有効)になっているエントリに格納されている場合は、そのエントリに格納されているデータをホストコンピュータ20に転送する機能などを有する。
【0040】
データ転送手段113は、Immediate Data領域143に格納されているImmediate Dataを、キャッシュ領域141の該当するキャッシュページに転送(格納)する機能を有する。
【0041】
記録媒体Kは、ディスク、半導体メモリ、その他の記録媒体であり、CPUからなるホストディレクタ11上に初期化処理手段111、コマンド処理手段112、データ転送手段113を実現するためのプログラムが記録されている。このプログラムは、ホストディレクタ11によって読み取られ、その動作を制御することで、ホストディレクタ11上に初期化処理手段111、コマンド処理手段112、データ転送手段113を実現する。
【0042】
【動作の説明】
次に、本実施例の動作について図面を参照して詳細に説明する。
【0043】
先ず、ホストディレクタ11内の初期化処理手段111及びコマンド処理手段112が行う初期化処理について説明する。
【0044】
ホストディレクタ11内の初期化処理手段111は、ホストコンピュータ20とホストディレクタ11とが接続されたことを認識すると、先ず、図4の流れ図に示すように、キャッシュメモリ14上のImmediate Data管理領域144を初期化する(ステップS41)。具体的には、図2に示すように、Immediate Data管理領域144に格納されている各Immediate Data管理情報中の有効ビットを全て“0”(無効)にすると共に、アドレス情報を未設定の状態にする。
【0045】
次に、初期化処理手段111は、Immediate Dataの格納先にするエントリを示す情報として、Immediate Data領域143を構成しているn個のエントリの内の、先頭のエントリのエントリ番号「1」をコマンド処理手段112に通知する(ステップS42)。
【0046】
コマンド処理手段112は、初期化処理手段111からエントリ番号「1」が通知されると、図5の流れ図に示すように、通知されたエントリ番号「1」を格納先記憶部112aに格納する(ステップS51)。
【0047】
以上が初期化処理手段111、コマンド処理手段112で行われる初期化処理である。
【0048】
次に、ホストコンピュータ20からのコマンドを受信したときにホストディレクタ11内のコマンド処理手段112において行われるコマンド処理について説明する。なお、ホストコンピュータ20からは、ライトコマンド、Immediate Dataの付加されたライト及びリードコマンドの3種類のコマンドが送られてくるものとする。
【0049】
ホストディレクタ11内のコマンド処理手段112は、ホストコンピュータ20からのコマンドを受信すると、図6の流れ図に示すように、先ず、受信したコマンドがライトコマンドであるのか、リードコマンドであるのかを判定する(ステップS601)。ライトコマンドであると判定した場合(ステップS601がYES)は、ライトコマンドにImmediate Dataが付加されているか否かをチェックする(ステップS602)。
【0050】
そして、Immediate Dataが付加されている場合(ステップS602がYES)は、ライトコマンドに付加されているImmediate Dataを、Immediate Data領域143を構成するエントリの内の、格納先記憶部112a中のエントリ番号が指し示しているエントリに格納する(ステップS603)。
【0051】
その後、コマンド処理手段112は、Immediate Data管理領域144に格納されているImmediate Data管理情報の内の、ステップS603でImmediate Dataを書き込んだエントリを管理しているImmediate Data管理情報を更新する(ステップS604)。具体的には、該当するImmediate Data管理情報中の有効ビットを“1”にすると共に、アドレス情報にライトアドレス(ライトコマンドに含まれていたライトアドレス)を設定する。
【0052】
更に、コマンド処理手段112は、Immediate Data管理領域144を参照して、Immediate Data領域143中に存在する空きエントリ(対応するImmediate Data管理情報中の有効ビットが“1”になっているエントリ)の中から最もエントリ番号が若いエントリを1つ選択する(ステップS605)。そして、選択したエントリのエントリ番号を、次にImmediate Data付きのライトコマンドを受信したときに、Immediate Dataを書き込むエントリを指し示すエントリ情報として格納先記憶部112aに格納する(ステップS606)。その後、コマンド処理手段112は、ホストコンピュータ20にレスポンスを返す等のコマンド完了処理を行う(ステップS607)。以上が、ライトコマンドにImmediate Dataが付加されていた場合の動作である。なお、ステップS605、S606の代わりに、格納先記憶部112aに格納されているエントリ番号を+1するようにしても良い。
【0053】
これに対して、受信したライトコマンドにImmediate Dataが付加されていない場合(ステップS602がNO)は、コマンド処理手段112は、Immediate Data管理領域144を参照し、有効ビットが“1”で、且つアドレス情報が上記ライトコマンドに含まれているライトアドレスと同一のImmediate Data管理情報が存在するか否かを調べる(ステップS608)。つまり、今回受信したライトコマンドが書き込もうとしているデータと同一アドレスのImmediate DataがImmediate Data領域143に格納されているか否かを調べる。
【0054】
そして、そのようなImmediate Data管理情報が存在する場合(ステップS608がYES)は、コマンド処理手段112は、ホストコンピュータ20にデータを要求し、この要求に応答してホストコンピュータ20から送られてくるデータを受信する(ステップS609)。
【0055】
その後、コマンド処理手段112は、Immediate Data管理領域144を検索し、有効ビットが“1”で、且つアドレス情報が今回受信したライトコマンドに含まれているライトアドレスが一致するImmediate Data管理情報の内の、最もエントリ番号が大きいImmediate Data管理情報を探し出す。そして、Immediate Data領域143を構成するエントリの内の、上記探し出したImmediate Data管理情報によって管理されているエントリの内容を、ステップS609で受信したデータで置き換える(ステップS610)。その後、コマンド処理手段112は、前述したステップS607の処理を行う。
【0056】
これに対して、条件を満たすImmediate Data管理情報が存在しない場合(ステップS608がNO)は、コマンド処理手段112は、通常のキャッシュメモリを使用したライト処理を行う(ステップS611)。以上が、Immediate Dataの付加されていないライトコマンドを受信したときの動作である。
【0057】
次に、リードコマンドを受信したときの動作を説明する。
【0058】
コマンド処理手段112は、ホストコンピュータ20から送られてきたコマンドがリードコマンドであると判断すると(図6、ステップS601がNO)、図7の流れ図に示すように、Immediate Data管理領域144を参照し、有効ビットが“1”で、且つアドレス情報が上記リードコマンドに含まれているリードアドレスと同一のImmediate Data管理情報が存在するか否かを調べる(ステップS701)。つまり、今回受信したリードコマンドが読み出そうとしているデータと同一アドレスのImmediate DataがImmediate Data領域143に格納されているか否かを調べる。
【0059】
そして、上記条件を満たすImmediate Data管理情報が存在する場合(ステップS701がYES)は、上記条件を満たすImmediate Data管理情報によって管理されているエントリの内の、最もエントリ番号が大きいエントリ(最も新しいImmediate Dataが格納されているエントリ)からデータを読み出し、読み出したデータをホストコンピュータ20へ転送する(ステップS702)。
【0060】
これに対して、上記条件を満たすImmediate Data管理情報が存在しない場合(ステップS701がNO)は、通常のキャッシュメモリを使用したリード処理を行う(ステップS703)。以上がリードコマンドを受信したときの動作である。
【0061】
次に、図8の流れ図を参照してデータ転送手段113が行うデータ転送処理について説明する。
【0062】
データ転送手段113は、定期的に図8の流れ図に示す処理を行うものであり、先ず、Immediate Data管理領域144に格納されている第1番目のImmediate Data管理情報(エントリ番号「1」のエントリを管理するImmediate Data管理情報)に注目する(ステップS81、S82)。
【0063】
その後、現在注目している第1番目のImmediate Data管理情報中の有効ビットが“1”になっているか否かを調べる(ステップS83)。
【0064】
そして、有効ビットが“1”になっている場合には、ステップS84のデータ転送処理を行う。以下にステップS84で行うデータ転送処理について詳しく説明する。
【0065】
先ず、現在注目している第k(k=1)番目のImmediate Data管理情報中のアドレス情報によって特定されるデータを含んだキャッシュページがキャッシュ領域141に存在するか否かを、キャッシュ管理領域142を参照して判断する。
そして、存在すると判断した場合には、該当するキャッシュページ内の該当する位置に、Immediate Data領域143の第1番目のエントリに格納されているImmediate Dataを転送(格納)する。これに対して、存在しないと判断した場合は、ディスクディレクタ12を使用して、該当するページの内容を磁気ディスクユニット13からキャッシュ領域141にコピーし、その後、Immediate Data領域143の第1番目のエントリに格納されているデータを、該当するキャッシュページ内の該当する部分に転送する。更に、キャッシュ管理領域142に対する更新処理を行う。以上が、ステップS84で行うデータ転送処理の詳細である。
【0066】
次に、現在注目している第1番目のImmediate Data管理情報中の有効ビットを“0”に更新した後(ステップS85)、第2番目のImmediate Data管理情報に注目する(ステップS86、S82)。以下、ステップS83の判断結果がNOとなるまで、前述した処理と同様の処理を繰り返し行う。そして、ステップS83の判断結果がNOとなると、データ転送手段113は、Immediate Data領域143の先頭エントリのエントリ番号「1」をコマンド処理手段112に通知する(ステップS87)。
【0067】
コマンド処理手段112は、データ転送手段113からエントリ番号「1」が通知された場合も、初期化処理手段111からエントリ番号が通知された場合と同様に、通知されたエントリ番号「1」を格納先記憶部112aに格納する(図5、ステップS51)。
【0068】
【発明の効果】
以上説明したように、本発明のディスクアレイ装置は、ホストコンピュータからコマンドに付加された形式で送られてくるImmediate Dataを一時的に格納するImmediate Data領域を有するキャッシュメモリと、Immediate Data領域を構成する複数のエントリの内の、Immediate Dataの書き込みに使用するエントリを、Immediate Dataの受信前に予め決定しておき、ホストコンピュータからImmediate Dataの付加されたコマンドが送られてきたとき、上記予め決定しているエントリにImmediate Dataを格納するホストディレクタとを備えており、Immediate Dataの付加されたライトコマンドを受信したときに、Immediate Dataを直接キャッシュメモリに書き込むことができるので、ディスクアレイの書き込み性能を向上させることができる。
【図面の簡単な説明】
【図1】本発明の実施例のブロック図である。
【図2】Immediate Data管理領域144の内容例を示す図である。
【図3】ホストディレクタ11の構成例を示すブロック図である。
【図4】初期化処理手段111の処理例を示す流れ図である。
【図5】エントリ番号が通知されたときのコマンド処理手段112の処理例を示す流れ図である。
【図6】コマンド受信時のコマンド処理手段113の処理例を示す流れ図である。
【図7】コマンド受信時のコマンド処理手段113の処理例を示す流れ図である。
【図8】テープ転送手段113の処理例を示す流れ図である。
【図9】従来の技術を説明するための流れ図である。
【図10】図9の流れ図に示す処理を行う際に、ディスクアレイ装置とホストコンピュータとの間でやり取りされる信号を示すシーケンス図である。
【図11】Immediate Dataの付加されたコマンドを使用してデータの書き込みを行う際に、ディスクアレイ装置とホストコンピュータとの間でやり取りされる信号を示すシーケンス図である。
【符号の説明】
10…ディスクアレイ装置
11…ホストディレクタ
111…初期化処理手段
112…コマンド処理手段
112a…格納先記憶部
113…データ転送手段
12…ディスクディレクタ
13…磁気ディスクユニット
13−1〜13−m…磁気ディスク装置
14…キャッシュメモリ
141…キャッシュ領域
142…キャッシュ管理領域
143…Immediate Data領域
144…Immediate Data管理領域
K…記録媒体
20…ホストコンピュータ
【発明の属する技術分野】
本発明は、キャッシュメモリを備えたディスクアレイ装置に関し、特に、ホストコンピュータからディスクアレイ装置にデータを書き込む際の書き込み性能を向上させる技術に関する。
【0002】
【従来の技術】
近年、ディスクアレイ装置においては、スループット向上のためにキャッシュメモリの搭載が不可欠になっている。ディスクアレイ装置の全容量の中で、アクセス頻度が高い領域は限られているので、その部分のデータをキャッシュメモリ上にコピーしておくことによりホストコンピュータへの応答を速く行うことができる。
【0003】
図9は従来のディスクアレイ装置において、ライトコマンドを受信したときの処理を示す流れ図である(例えば、特許文献1参照)。
【0004】
図9に示すように、従来のディスクアレイ装置は、ホストコンピュータからライトコマンドを受信すると(ステップS91)、キャッシュメモリ上のページの中からデータを書き込むページを選択し、そのページを占有する(ステップS92)。その後、ディスクアレイ装置は、データの書き込み(転送)が可能であることを示すReady To Transfer信号をホストコンピュータに送信することで、データ転送処理を起動する(ステップS93)。これにより、ホストコンピュータは、ライトデータをディスクアレイ装置に転送し、ディスクアレイ装置は、ホストコンピュータから送られてきたライトデータをステップS92で占有したキャッシュページに書き込む。データの書き込みが完了すると(ステップS94)、ディスクアレイ装置は、ステップS92で占有したキャッシュページを解放した後(ステップS95)、データの書き込みが完了したことを示すレスポンス(ライトコマンドが正常終了したことを示すレスポンス)をホストコンピュータに返す(ステップS96)。
【0005】
図10は、図9の流れ図に示す処理が行われているときに、ディスクアレイ装置とホストコンピュータとの間でやり取りされる信号を示したシーケンス図である。
【0006】
図10に示すように、先ず、ホストコンピュータからディスクアレイ装置にライトコマンドが送信される(シーケンス101)。これにより、ディスクアレイ装置において、図9に示したステップS91〜S93の処理が行われる。ステップS93において、ディスクアレイ装置は、ホストコンピュータに対してReady To Transfer信号を送信する(シーケンス102)。ホストコンピュータは、Ready To Transfer信号を受信すると、ライトデータをディスクアレイ装置に送信する(シーケンス103)。ディスクアレイ装置は、ホストコンピュータから送られてきたライトデータをキャッシュページに書き込み、書き込みが完了すると、キャッシュページを解放する。その後、ディスクアレイ装置は、データの書き込みが完了したことを示すレスポンスをホストコンピュータに送信する(シーケンス104)。つまり、従来のディスクアレイ装置は、SCSIインタフェース仕様に従ってデータの書き込みを行っている。
【0007】
【特許文献1】
特開2002−278833号公報
【0008】
【発明が解決しようとする課題】
ところで、近年、IETF(The Internet Engineering Task Force)により提案されているiSCSI仕様が注目されている。これは、TCP/IPネットワーク上でSCSIインタフェースを実装することができるといった特徴を有する。また、iSCSIインタフェース仕様では、ディスクアレイ装置への書き込み性能を向上させるために、Immediate Dataといった仕様が追加されている。
【0009】
図11は、Immediate Dataを使用してデータの書き込みを行う際に、ディスクアレイ装置とホストコンピュータとの間でやり取りされる信号を示すシーケンス図である。同図に示すように、ホストコンピュータは、ライトコマンドにImmediate Dataを付加してディスクアレイ装置へ送信する(シーケンス111)。ディスクアレイ装置は、ホストコンピュータから送られてきたライトコマンドに従って、Immediate Dataの書き込みを行う。その後、ディスクアレイ装置は、Immediate Dataの書き込み完了を示すレスポンスをホストコンピュータに返す(シーケンス112)。図10と比較して分かるように、Immediate Dataを使用してデータの書き込みを行うようにすると、ディスクアレイ装置とホストコンピュータとの間で信号をやり取りする回数が少なくなり、インタフェースの負荷が低減するので、書き込み性能の向上が期待できる。
【0010】
しかしながら、上述した従来のディスクアレイ装置では、Immediate Dataを使用したデータの書き込み処理を行うことができないという問題がある。即ち、従来のディスクアレイ装置は、ライトコマンドを受信したとき、キャッシュページを占有し、その後、ホストコンピュータにReady To Transfer信号を送信してライトデータの転送を要求するようにしているので、ライトコマンドと一緒に送られてくるImmediate Dataを使用したデータの書き込みは不可能であった。
【0011】
また、例えば、ディスクアレイ装置内にバッファを設け、ライトコマンドに付加されて送られてくるImmediate Dataを上記バッファに一時的に格納しておき、キャッシュページが占有された段階で、バッファに格納されているImmediate Dataをキャッシュメモリに書き込むという方法も考えられるが、この方法では、Immediate Dataの転送が、ホストコンピュータからバッファへの転送と、バッファからキャッシュメモリへの転送との2段階になってしまうため、書き込み性能が低下してしまう恐れがある。
【0012】
【発明の目的】
そこで、本発明の目的は、ライトコマンドに付加された形式でホストコンピュータから送られてくるImmediate Dataをキャッシュメモリに直接書き込めるようにすることにより、ディスクアレイ装置の書き込み性能を向上させることにある。
【0013】
【課題を解決するための手段】
本発明にかかる第1のディスクアレイ装置は、上記目的を達成するため、
複数のディスク装置から構成されるディスクユニットと、該ディスクユニットに格納されているデータの一部の写しが格納されるキャッシュ領域を有するキャッシュメモリとを備えたディスクアレイ装置において、
前記キャッシュメモリが、ホストコンピュータからコマンドに付加された形式で送られてくるImmediate Dataを一時的に格納するImmediate Data領域を有し、且つ、
Immediate Dataの受信前に、前記Immediate Data領域を構成する複数のエントリの中からImmediate Dataの書き込みに使用するエントリを予め決定しておき、前記ホストコンピュータからImmediate Dataの付加されたコマンドが送られてきたとき、前記予め決定しておいたエントリに前記Immediate Dataを書き込むホストディレクタを備えたことを特徴とする。
【0014】
また、本発明にかかる第2のディスクアレイ装置は、第1のディスクアレイ装置において、
前記ホストディレクタが、前記Immediate Data領域に格納されているImmediate Dataを、前記キャッシュ領域に転送する構成を有することを特徴とする。
【0015】
また、本発明にかかる第3のディスクアレイ装置は、第1のディスクアレイ装置において、
前記ホストディレクタが、定期的に、前記Immediate Data領域に格納されているImmediate Dataを前記キャッシュ領域に転送する構成を有することを特徴とする。
【0016】
また、本発明にかかる第4のディスクアレイ装置は、ホストコンピュータからのリードコマンドによって要求されたデータがImmediate Dataにしか格納されていない段階でも、要求されたデータをホストコンピュータへ転送できるようにするため、第2または第3のディスクアレイ装置において、
前記ホストディレクタが、前記ホストコンピュータからリードコマンドが送られてきたとき、該リードコマンドによって要求されているデータが前記Immediate Data領域に格納されている場合は、前記Immediate Data領域から該当するデータを読み出して前記ホストコンピュータへ転送する構成を有することを特徴とする。
【0017】
また、本発明にかかる第5のディスクアレイ装置は、
複数のディスク装置から構成されるディスクユニットと、該ディスクユニットに格納されているデータの一部の写しが格納されるキャッシュ領域を有するキャッシュメモリとを備えたディスクアレイ装置において、
前記キャッシュメモリが、ホストコンピュータからコマンドに付加された形式で送られてくるImmediate Dataを一時的に格納するImmediate Data領域を有し、且つ、
前記ホストコンピュータとの接続時に、前記Immediate Data領域を構成する複数のエントリの中からImmediate Dataの書き込みに使用するエントリを決定し、該決定したエントリを示すエントリ情報を格納先記憶部に格納する初期化処理手段と、
前記ホストコンピュータからImmediate Dataの付加されたコマンドが送られてきたとき、前記格納先記憶部に格納されているエントリ情報によって示される前記Immediate Data領域中のエントリに、前記Immediate Dataを格納し、その後、前記Immediate Data領域中の空きエントリの中からImmediate Dataの書き込みに使用するエントリを決定し、該決定したエントリを前記格納先記憶部に格納するコマンド処理手段とを備えたことを特徴とする。
【0018】
また、本発明にかかる第6のディスクアレイ装置は、第5のディスクアレイ装置において、
前記Immediate Data領域に格納されているImmediate Dataを、前記キャッシュ領域に格納するデータ転送手段を備えたことを特徴とする。
【0019】
また、本発明にかかる第7のディスクアレイ装置は、第5のディスクアレイ装置において、
前記Immediate Data領域に格納されているImmediate Dataを、定期的に前記キャッシュ領域に格納するデータ転送手段を備えたことを特徴とする。
【0020】
また、本発明にかかる第8のディスクアレイ装置は、第6または第7のディスクアレイ装置において、、
前記コマンド処理手段が、前記ホストコンピュータからリードコマンドが送られてきたとき、該リードコマンドによって要求されているデータが前記Immediate Data領域に格納されている場合は、前記Immediate Data領域から該当するデータを読み出して前記ホストコンピュータへ転送する構成を有することを特徴とする。
【0021】
【作用】
キャッシュメモリには、ディスクユニットに格納されているデータの一部の写しが格納されるキャッシュ領域以外に、ホストコンピュータからコマンドに付加された形式で送られてくるImmediate Dataを一時的に格納するImmediate Data領域が設けられている。ホストディレクタは、Immediate Data領域を構成する複数のエントリの内の、Immediate Dataの書き込みに使用するエントリを、Immediate Dataの受信前に予め決定しておき、ホストコンピュータからImmediate Dataの付加されたコマンドが送られてきたとき、上記予め決定しているエントリにImmediate Dataを格納する。このように、Immediate Dataの付加されたコマンドを受信したとき、Immediate Dataを直接キャッシュメモリ上のImmediate Data領域に書き込むことができるので、ディスクアレイ装置の書き込み性能を向上させることができる。
【0022】
また、ホストディレクタは、Immediate Data領域に格納されているImmediate Dataの内の、キャッシュ領域に格納されていないImmediate Dataをキャッシュ領域に格納する処理も行う。この処理は、例えば、定期的に行う。更に、ホストディレクタは、ホストコンピュータからリードコマンドが送られてきたとき、このリードコマンドによって要求されているデータがImmediate Data領域に格納されている場合は、Immediate Data領域から該当するデータを読み出し、ホストコンピュータに転送する。
【0023】
【発明の実施の形態】
次に本発明の実施の形態について図面を参照して詳細に説明する。
【0024】
【構成の説明】
次に、本発明の実施の形態について図面を参照して詳細に説明する。
【0025】
図1は本発明の実施例のブロック図であり、ディスクアレイ装置10と、ホストコンピュータ20とから構成されている。
【0026】
ディスクアレイ装置10は、ホストディレクタ11と、ディスクディレクタ12と、磁気ディスクユニット13と、キャッシュメモリ14と、記録媒体Kとを備えている。
【0027】
磁気ディスクユニット13は、複数の磁気ディスク装置13−1〜13−mから構成されている。
【0028】
キャッシュメモリ14には、キャッシュ領域141と、キャッシュ管理領域142と、Immediate Data領域143と、Immediate Data管理領域144とが設けられている。
【0029】
キャッシュ領域141には、磁気ディスクユニット13の記憶領域を所定サイズのページに分割したときの、一部のページの写しが格納されている。
【0030】
キャッシュ管理領域142には、キャッシュ領域141を構成する各キャッシュページを管理するための情報(例えば、そのキャッシュページが有効であるか否かを示す有効ビット,そのキャッシュページに磁気ディスクユニット13上のどのページのデータが格納されているのかを示すページ情報など)が格納される。
【0031】
Immediate Data領域143は、エントリ番号「1」〜「n」が付与されたn個のエントリから構成されており、各エントリには、ホストコンピュータ20からライトコマンドに付加されて送られてきたImmediate Dataが一時的に格納される。なお、Immediate Data領域143を構成する各エントリのサイズは全て同じであり、1アドレス分のデータを書き込むことができるサイズとなっている。
【0032】
Immediate Data管理領域144には、Immediate Data領域143を構成する各エントリを管理するための情報が格納される。
【0033】
図2にImmediate Data管理領域144の内容例を示す。同図に示すように、Immediate Data管理領域144には、Immediate Data領域143を構成する各エントリ(図2の例では、エントリ番号「1」〜「n」)毎のImmediate Data管理情報(エントリ番号、有効ビット及びアドレス情報からなる)が格納される。
【0034】
エントリ番号は、そのImmediate Data管理情報が管理しているエントリのエントリ番号を表す。有効ビットは、そのImmediate Data管理情報が管理しているエントリにホストコンピュータ20からのImmediate Dataが格納されたときに“1”(有効)にされ、管理しているエントリ中のImmediate Dataがキャッシュ領域141に転送されたとき“0”(無効)にされるものであり、ホストコンピュータから送られてきたImmediate Dataを格納可能であるか否かを表示すると共に、ホストコンピュータ20からリードコマンドが送られてきたときに行われるリード処理や、後述するデータ転送処理(Immediate Data領域143に格納されているImmediate Dataをキャッシュ領域141に転送する処理)において、そのエントリが処理対象になるか否かを表示する。アドレス情報は、そのImmediate Data管理情報が管理しているエントリに格納されているImmediate Dataのアドレス(Immediate Dataと共に送られてきたライトコマンドに含まれていたライトアドレス)を表す情報である。なお、初期状態においては、各Immediate Data管理情報の有効ビットは全て“0”(無効)になっており、また、アドレス情報は設定されていない。
【0035】
ディスクディレクタ12は、キャッシュ領域141に格納されているデータを磁気ディスクユニット13に書き込む機能や、磁気ディスクユニット13に格納されているデータをキャッシュ領域141に書き込む機能を有する。
【0036】
ホストディレクタ11は、Immediate Dataの受信前にImmediate Data領域143を構成する複数のエントリの中からImmediate Dataの書き込みに使用するエントリを予め決定しておき、ホストコンピュータ20からImmediate Dataの付加されたライトコマンドが送られてきたとき、上記予め決定しておいたエントリにImmediate Dataを格納する機能や、Immediate Data領域143に格納されているImmediate Dataの内の、キャッシュ領域141への転送(格納)が済んでいないImmediate Dataをキャッシュ領域141に転送する機能や、ホストコンピュータ20からリードコマンドが送られてきたとき、このリードコマンドによって要求されているデータが、Immediate Data領域143に存在する場合は、該当するデータをImmediate Data領域143から読み出してホストコンピュータ20に転送する機能などを有する。
【0037】
このような機能を有するホストディレクタ11は、例えば、CPUによって実現されるものであり、図3に示すような構成を有する。同図に示すように、ホストディレクタ11は、初期化処理手段111と、格納先記憶部112aを備えたコマンド処理手段112と、データ転送手段113とを備えている。
【0038】
初期化処理手段111は、ホストディレクタ11とホストコンピュータ20とが接続されたことを認識したとき、キャッシュメモリ14中のImmediate Data管理領域144を初期化する機能や、Immediate Data領域143を構成する複数のエントリの中からImmediate Dataを格納するエントリを決定し(本実施例では、先頭のエントリとする)、決定したエントリのエントリ番号をコマンド処理手段112に通知する機能を備えている。
【0039】
コマンド処理手段112は、初期化処理手段111から通知されたエントリ番号を格納先記憶部112aに格納する機能や、ホストコンピュータ20からImmediate Dataの付加されたライトコマンドが送られてきたとき、Immediate Data領域143を構成する複数のエントリの内の、格納先記憶部112aに格納されているエントリ番号によって示されるエントリにImmediate Dataを書き込む機能や、格納先記憶部112aに格納されているエントリ番号に従ってImmediate Dataを書き込んだ後、次に送られてくるImmediate Dataに備えて格納先記憶部112aに格納されているエントリ番号を更新する機能や、Immediate Data管理領域144に格納されているImmediate Data管理情報の内の、Immediate Dataを書き込んだエントリに対応するImmediate Data管理情報を更新(有効ビットを“1”にし、アドレス情報にライトコマンドに含まれていたライトアドレスを設定する)する機能や、ホストコンピュータ20からリードコマンドが送られてきたとき、このリードコマンドによって要求されているデータが、Immediate Data領域143のエントリの内の、有効ビットが“1”(有効)になっているエントリに格納されている場合は、そのエントリに格納されているデータをホストコンピュータ20に転送する機能などを有する。
【0040】
データ転送手段113は、Immediate Data領域143に格納されているImmediate Dataを、キャッシュ領域141の該当するキャッシュページに転送(格納)する機能を有する。
【0041】
記録媒体Kは、ディスク、半導体メモリ、その他の記録媒体であり、CPUからなるホストディレクタ11上に初期化処理手段111、コマンド処理手段112、データ転送手段113を実現するためのプログラムが記録されている。このプログラムは、ホストディレクタ11によって読み取られ、その動作を制御することで、ホストディレクタ11上に初期化処理手段111、コマンド処理手段112、データ転送手段113を実現する。
【0042】
【動作の説明】
次に、本実施例の動作について図面を参照して詳細に説明する。
【0043】
先ず、ホストディレクタ11内の初期化処理手段111及びコマンド処理手段112が行う初期化処理について説明する。
【0044】
ホストディレクタ11内の初期化処理手段111は、ホストコンピュータ20とホストディレクタ11とが接続されたことを認識すると、先ず、図4の流れ図に示すように、キャッシュメモリ14上のImmediate Data管理領域144を初期化する(ステップS41)。具体的には、図2に示すように、Immediate Data管理領域144に格納されている各Immediate Data管理情報中の有効ビットを全て“0”(無効)にすると共に、アドレス情報を未設定の状態にする。
【0045】
次に、初期化処理手段111は、Immediate Dataの格納先にするエントリを示す情報として、Immediate Data領域143を構成しているn個のエントリの内の、先頭のエントリのエントリ番号「1」をコマンド処理手段112に通知する(ステップS42)。
【0046】
コマンド処理手段112は、初期化処理手段111からエントリ番号「1」が通知されると、図5の流れ図に示すように、通知されたエントリ番号「1」を格納先記憶部112aに格納する(ステップS51)。
【0047】
以上が初期化処理手段111、コマンド処理手段112で行われる初期化処理である。
【0048】
次に、ホストコンピュータ20からのコマンドを受信したときにホストディレクタ11内のコマンド処理手段112において行われるコマンド処理について説明する。なお、ホストコンピュータ20からは、ライトコマンド、Immediate Dataの付加されたライト及びリードコマンドの3種類のコマンドが送られてくるものとする。
【0049】
ホストディレクタ11内のコマンド処理手段112は、ホストコンピュータ20からのコマンドを受信すると、図6の流れ図に示すように、先ず、受信したコマンドがライトコマンドであるのか、リードコマンドであるのかを判定する(ステップS601)。ライトコマンドであると判定した場合(ステップS601がYES)は、ライトコマンドにImmediate Dataが付加されているか否かをチェックする(ステップS602)。
【0050】
そして、Immediate Dataが付加されている場合(ステップS602がYES)は、ライトコマンドに付加されているImmediate Dataを、Immediate Data領域143を構成するエントリの内の、格納先記憶部112a中のエントリ番号が指し示しているエントリに格納する(ステップS603)。
【0051】
その後、コマンド処理手段112は、Immediate Data管理領域144に格納されているImmediate Data管理情報の内の、ステップS603でImmediate Dataを書き込んだエントリを管理しているImmediate Data管理情報を更新する(ステップS604)。具体的には、該当するImmediate Data管理情報中の有効ビットを“1”にすると共に、アドレス情報にライトアドレス(ライトコマンドに含まれていたライトアドレス)を設定する。
【0052】
更に、コマンド処理手段112は、Immediate Data管理領域144を参照して、Immediate Data領域143中に存在する空きエントリ(対応するImmediate Data管理情報中の有効ビットが“1”になっているエントリ)の中から最もエントリ番号が若いエントリを1つ選択する(ステップS605)。そして、選択したエントリのエントリ番号を、次にImmediate Data付きのライトコマンドを受信したときに、Immediate Dataを書き込むエントリを指し示すエントリ情報として格納先記憶部112aに格納する(ステップS606)。その後、コマンド処理手段112は、ホストコンピュータ20にレスポンスを返す等のコマンド完了処理を行う(ステップS607)。以上が、ライトコマンドにImmediate Dataが付加されていた場合の動作である。なお、ステップS605、S606の代わりに、格納先記憶部112aに格納されているエントリ番号を+1するようにしても良い。
【0053】
これに対して、受信したライトコマンドにImmediate Dataが付加されていない場合(ステップS602がNO)は、コマンド処理手段112は、Immediate Data管理領域144を参照し、有効ビットが“1”で、且つアドレス情報が上記ライトコマンドに含まれているライトアドレスと同一のImmediate Data管理情報が存在するか否かを調べる(ステップS608)。つまり、今回受信したライトコマンドが書き込もうとしているデータと同一アドレスのImmediate DataがImmediate Data領域143に格納されているか否かを調べる。
【0054】
そして、そのようなImmediate Data管理情報が存在する場合(ステップS608がYES)は、コマンド処理手段112は、ホストコンピュータ20にデータを要求し、この要求に応答してホストコンピュータ20から送られてくるデータを受信する(ステップS609)。
【0055】
その後、コマンド処理手段112は、Immediate Data管理領域144を検索し、有効ビットが“1”で、且つアドレス情報が今回受信したライトコマンドに含まれているライトアドレスが一致するImmediate Data管理情報の内の、最もエントリ番号が大きいImmediate Data管理情報を探し出す。そして、Immediate Data領域143を構成するエントリの内の、上記探し出したImmediate Data管理情報によって管理されているエントリの内容を、ステップS609で受信したデータで置き換える(ステップS610)。その後、コマンド処理手段112は、前述したステップS607の処理を行う。
【0056】
これに対して、条件を満たすImmediate Data管理情報が存在しない場合(ステップS608がNO)は、コマンド処理手段112は、通常のキャッシュメモリを使用したライト処理を行う(ステップS611)。以上が、Immediate Dataの付加されていないライトコマンドを受信したときの動作である。
【0057】
次に、リードコマンドを受信したときの動作を説明する。
【0058】
コマンド処理手段112は、ホストコンピュータ20から送られてきたコマンドがリードコマンドであると判断すると(図6、ステップS601がNO)、図7の流れ図に示すように、Immediate Data管理領域144を参照し、有効ビットが“1”で、且つアドレス情報が上記リードコマンドに含まれているリードアドレスと同一のImmediate Data管理情報が存在するか否かを調べる(ステップS701)。つまり、今回受信したリードコマンドが読み出そうとしているデータと同一アドレスのImmediate DataがImmediate Data領域143に格納されているか否かを調べる。
【0059】
そして、上記条件を満たすImmediate Data管理情報が存在する場合(ステップS701がYES)は、上記条件を満たすImmediate Data管理情報によって管理されているエントリの内の、最もエントリ番号が大きいエントリ(最も新しいImmediate Dataが格納されているエントリ)からデータを読み出し、読み出したデータをホストコンピュータ20へ転送する(ステップS702)。
【0060】
これに対して、上記条件を満たすImmediate Data管理情報が存在しない場合(ステップS701がNO)は、通常のキャッシュメモリを使用したリード処理を行う(ステップS703)。以上がリードコマンドを受信したときの動作である。
【0061】
次に、図8の流れ図を参照してデータ転送手段113が行うデータ転送処理について説明する。
【0062】
データ転送手段113は、定期的に図8の流れ図に示す処理を行うものであり、先ず、Immediate Data管理領域144に格納されている第1番目のImmediate Data管理情報(エントリ番号「1」のエントリを管理するImmediate Data管理情報)に注目する(ステップS81、S82)。
【0063】
その後、現在注目している第1番目のImmediate Data管理情報中の有効ビットが“1”になっているか否かを調べる(ステップS83)。
【0064】
そして、有効ビットが“1”になっている場合には、ステップS84のデータ転送処理を行う。以下にステップS84で行うデータ転送処理について詳しく説明する。
【0065】
先ず、現在注目している第k(k=1)番目のImmediate Data管理情報中のアドレス情報によって特定されるデータを含んだキャッシュページがキャッシュ領域141に存在するか否かを、キャッシュ管理領域142を参照して判断する。
そして、存在すると判断した場合には、該当するキャッシュページ内の該当する位置に、Immediate Data領域143の第1番目のエントリに格納されているImmediate Dataを転送(格納)する。これに対して、存在しないと判断した場合は、ディスクディレクタ12を使用して、該当するページの内容を磁気ディスクユニット13からキャッシュ領域141にコピーし、その後、Immediate Data領域143の第1番目のエントリに格納されているデータを、該当するキャッシュページ内の該当する部分に転送する。更に、キャッシュ管理領域142に対する更新処理を行う。以上が、ステップS84で行うデータ転送処理の詳細である。
【0066】
次に、現在注目している第1番目のImmediate Data管理情報中の有効ビットを“0”に更新した後(ステップS85)、第2番目のImmediate Data管理情報に注目する(ステップS86、S82)。以下、ステップS83の判断結果がNOとなるまで、前述した処理と同様の処理を繰り返し行う。そして、ステップS83の判断結果がNOとなると、データ転送手段113は、Immediate Data領域143の先頭エントリのエントリ番号「1」をコマンド処理手段112に通知する(ステップS87)。
【0067】
コマンド処理手段112は、データ転送手段113からエントリ番号「1」が通知された場合も、初期化処理手段111からエントリ番号が通知された場合と同様に、通知されたエントリ番号「1」を格納先記憶部112aに格納する(図5、ステップS51)。
【0068】
【発明の効果】
以上説明したように、本発明のディスクアレイ装置は、ホストコンピュータからコマンドに付加された形式で送られてくるImmediate Dataを一時的に格納するImmediate Data領域を有するキャッシュメモリと、Immediate Data領域を構成する複数のエントリの内の、Immediate Dataの書き込みに使用するエントリを、Immediate Dataの受信前に予め決定しておき、ホストコンピュータからImmediate Dataの付加されたコマンドが送られてきたとき、上記予め決定しているエントリにImmediate Dataを格納するホストディレクタとを備えており、Immediate Dataの付加されたライトコマンドを受信したときに、Immediate Dataを直接キャッシュメモリに書き込むことができるので、ディスクアレイの書き込み性能を向上させることができる。
【図面の簡単な説明】
【図1】本発明の実施例のブロック図である。
【図2】Immediate Data管理領域144の内容例を示す図である。
【図3】ホストディレクタ11の構成例を示すブロック図である。
【図4】初期化処理手段111の処理例を示す流れ図である。
【図5】エントリ番号が通知されたときのコマンド処理手段112の処理例を示す流れ図である。
【図6】コマンド受信時のコマンド処理手段113の処理例を示す流れ図である。
【図7】コマンド受信時のコマンド処理手段113の処理例を示す流れ図である。
【図8】テープ転送手段113の処理例を示す流れ図である。
【図9】従来の技術を説明するための流れ図である。
【図10】図9の流れ図に示す処理を行う際に、ディスクアレイ装置とホストコンピュータとの間でやり取りされる信号を示すシーケンス図である。
【図11】Immediate Dataの付加されたコマンドを使用してデータの書き込みを行う際に、ディスクアレイ装置とホストコンピュータとの間でやり取りされる信号を示すシーケンス図である。
【符号の説明】
10…ディスクアレイ装置
11…ホストディレクタ
111…初期化処理手段
112…コマンド処理手段
112a…格納先記憶部
113…データ転送手段
12…ディスクディレクタ
13…磁気ディスクユニット
13−1〜13−m…磁気ディスク装置
14…キャッシュメモリ
141…キャッシュ領域
142…キャッシュ管理領域
143…Immediate Data領域
144…Immediate Data管理領域
K…記録媒体
20…ホストコンピュータ
Claims (9)
- 複数のディスク装置から構成されるディスクユニットと、該ディスクユニットに格納されているデータの一部の写しが格納されるキャッシュ領域を有するキャッシュメモリとを備えたディスクアレイ装置において、
前記キャッシュメモリが、ホストコンピュータからコマンドに付加された形式で送られてくるImmediate Dataを一時的に格納するImmediate Data領域を有し、且つ、
Immediate Dataの受信前に、前記Immediate Data領域を構成する複数のエントリの中からImmediate Dataの書き込みに使用するエントリを予め決定しておき、前記ホストコンピュータからImmediate Dataの付加されたコマンドが送られてきたとき、前記予め決定しておいたエントリに前記Immediate Dataを書き込むホストディレクタを備えたことを特徴とするディスクアレイ装置。 - 請求項1記載のディスクアレイ装置において、
前記ホストディレクタが、前記Immediate Data領域に格納されているImmediate Dataを、前記キャッシュ領域に転送する構成を有することを特徴とするディスクアレイ装置。 - 請求項1記載のディスクアレイ装置において、
前記ホストディレクタが、定期的に、前記Immediate Data領域に格納されているImmediate Dataを、前記キャッシュ領域に転送する構成を有することを特徴とするディスクアレイ装置。 - 請求項2または3記載のディスクアレイ装置において、
前記ホストディレクタが、前記ホストコンピュータからリードコマンドが送られてきたとき、該リードコマンドによって要求されているデータが前記Immediate Data領域に格納されている場合は、前記Immediate Data領域から該当するデータを読み出して前記ホストコンピュータへ転送する構成を有することを特徴とするディスクアレイ装置。 - 複数のディスク装置から構成されるディスクユニットと、該ディスクユニットに格納されているデータの一部の写しが格納されるキャッシュ領域を有するキャッシュメモリとを備えたディスクアレイ装置において、
前記キャッシュメモリが、ホストコンピュータからコマンドに付加された形式で送られてくるImmediate Dataを一時的に格納するImmediate Data領域を有し、且つ、
前記ホストコンピュータとの接続時に、前記Immediate Data領域を構成する複数のエントリの中からImmediate Dataの書き込みに使用するエントリを決定し、該決定したエントリを示すエントリ情報を格納先記憶部に格納する初期化処理手段と、
前記ホストコンピュータからImmediate Dataの付加されたコマンドが送られてきたとき、前記格納先記憶部に格納されているエントリ情報によって示される前記Immediate Data領域中のエントリに、前記Immediate Dataを格納し、その後、前記Immediate Data領域中の空きエントリの中からImmediate Dataの書き込みに使用するエントリを決定し、該決定したエントリを前記格納先記憶部に格納するコマンド処理手段とを備えたことを特徴とするディスクアレイ装置。 - 請求項5記載のディスクアレイ装置において、
前記Immediate Data領域に格納されているImmediate Dataを、前記キャッシュ領域に格納するデータ転送手段を備えたことを特徴とするディスクアレイ装置。 - 請求項5記載のディスクアレイ装置において、
前記Immediate Data領域に格納されているImmediate Dataを、定期的に前記キャッシュ領域に格納するデータ転送手段を備えたことを特徴とするディスクアレイ装置。 - 請求項6または7記載のディスクアレイ装置において、
前記コマンド処理手段が、前記ホストコンピュータからリードコマンドが送られてきたとき、該リードコマンドによって要求されているデータが前記Immediate Data領域に格納されている場合は、前記Immediate Data領域から該当するデータを読み出して前記ホストコンピュータへ転送する構成を有することを特徴とするディスクアレイ装置。 - 複数のディスク装置から構成されるディスクユニットと、該ディスクユニットに格納されているデータの一部の写しが格納されるキャッシュ領域およびホストコンピュータからコマンドに付加された形式で送られてくるImmediate Dataを一時的に格納するImmediate Data領域を有するキャッシュメモリとを備えたディスクアレイ装置において、
コンピュータを、
前記ホストコンピュータとの接続時に、前記Immediate Data領域を構成する複数のエントリの中からImmediate Dataの書き込みに使用するエントリを決定し、該決定したエントリを示すエントリ情報を格納先記憶部に格納する初期化処理手段、
前記ホストコンピュータからImmediate Dataの付加されたコマンドが送られてきたとき、前記格納先記憶部に格納されているエントリ情報によって示される前記Immediate Data領域中のエントリに、前記Immediate Dataを格納し、その後、前記Immediate Data領域中の空きエントリの中からImmediate Dataの書き込みに使用するエントリを決定し、該決定したエントリを前記格納先記憶部に格納するコマンド処理手段として機能させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003013138A JP2004227211A (ja) | 2003-01-22 | 2003-01-22 | ディスクアレイ装置およびプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003013138A JP2004227211A (ja) | 2003-01-22 | 2003-01-22 | ディスクアレイ装置およびプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004227211A true JP2004227211A (ja) | 2004-08-12 |
Family
ID=32901548
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003013138A Pending JP2004227211A (ja) | 2003-01-22 | 2003-01-22 | ディスクアレイ装置およびプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004227211A (ja) |
-
2003
- 2003-01-22 JP JP2003013138A patent/JP2004227211A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2631916B1 (en) | Data deletion method and apparatus | |
US7707337B2 (en) | Object-based storage device with low process load and control method thereof | |
JP2006221627A (ja) | 複数のマッピング技法を採用した適応型フラッシュメモリ制御装置及びそれを含むフラッシュメモリシステム | |
US20080025706A1 (en) | Information recording apparatus and control method thereof | |
JP2004139503A (ja) | 記憶装置及びその制御方法 | |
JP6350090B2 (ja) | ストレージ制御装置、コピー制御プログラム、およびコピー制御方法 | |
US9959046B2 (en) | Multi-streaming mechanism to optimize journal based data storage systems on SSD | |
JP2011060007A (ja) | 制御装置 | |
US7913029B2 (en) | Information recording apparatus and control method thereof | |
JP2010067271A (ja) | ハイブリッドハードディスクドライブ制御方法、記録媒体及びハイブリッドハードディスクドライブ | |
JP2019028954A (ja) | ストレージ制御装置、プログラム、及び重複排除方法 | |
JP2005222534A (ja) | フラッシュメモリのデータ管理装置及び方法 | |
US20070033342A1 (en) | Disk array device, method for controlling the disk array device and storage system | |
US9804781B2 (en) | Storage media performance management | |
US8631166B2 (en) | Storage devices with bi-directional communication techniques and method of forming bi-directional communication layer between them | |
JP4461089B2 (ja) | ストレージ制御装置およびストレージ制御方法 | |
US7657719B2 (en) | Controller for a copy operation between a host computer and hard disks, a control method thereof, and a recording medium storing a program for executing the control method | |
JP2012058863A (ja) | ディスク装置、および、ディスク装置へのデータ複製方法、プログラム | |
TW201709207A (zh) | 快閃記憶體的存取方法及相關的記憶體控制器與電子裝置 | |
US20210303212A1 (en) | Data processing method and memory controller utilizing the same | |
JP2004227211A (ja) | ディスクアレイ装置およびプログラム | |
US20060143378A1 (en) | Information processing apparatus and control method for this information processing apparatus | |
US11307774B2 (en) | Storage control device, non-transitory computer-readable storage medium, and storage control method | |
JP2003150416A (ja) | ファイル管理装置及びファイル管理方法 | |
JP4984677B2 (ja) | 情報処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060810 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060829 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20070116 |