JP2004013373A - External storage device system and storage controller - Google Patents

External storage device system and storage controller Download PDF

Info

Publication number
JP2004013373A
JP2004013373A JP2002163786A JP2002163786A JP2004013373A JP 2004013373 A JP2004013373 A JP 2004013373A JP 2002163786 A JP2002163786 A JP 2002163786A JP 2002163786 A JP2002163786 A JP 2002163786A JP 2004013373 A JP2004013373 A JP 2004013373A
Authority
JP
Japan
Prior art keywords
block
virtual
virtual block
data
real
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.)
Granted
Application number
JP2002163786A
Other languages
Japanese (ja)
Other versions
JP2004013373A5 (en
JP4220726B2 (en
Inventor
Hiroaki Iguchi
井口 博彰
Tamon Mashita
真下 太門
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2002163786A priority Critical patent/JP4220726B2/en
Publication of JP2004013373A publication Critical patent/JP2004013373A/en
Publication of JP2004013373A5 publication Critical patent/JP2004013373A5/ja
Application granted granted Critical
Publication of JP4220726B2 publication Critical patent/JP4220726B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide an external storage device system which has good storage efficiency and fast real-time response. <P>SOLUTION: A virtual block area 104 stores temporarily virtual blocks that a host computer recognizes. A disk group 105 stores real blocks containing compressed data recognized in a storage control part 101. A virtual block-real block correspondence table 103 contains information on correspondence between the addresses of the virtual blocks and the addresses of the real blocks. When there is a requested virtual block present in the virtual block area 104 at a read/write request from a host, a control part 106 makes a read/write response as to the virtual block. When not in the virtual block area 104, real block data read in from the disk group 105 are expanded in the virtual block area 104 and then a read/write response is made. When data in a virtual block are updated, the corresponding real block is updated. <P>COPYRIGHT: (C)2004,JPO

Description

【0001】
【発明の属する技術分野】
本発明は、データ圧縮による記憶効率がよくリアルタイム応答性のよいストレージを提供する外部記憶装置システム及び記憶制御装置に関する。
【0002】
【従来の技術】
外部記憶装置上の記憶スペースを有効に活用する技術として、データマイグレーション技術が広く研究・開発されている。この技術は、各データの利用頻度に応じてその格納場所を決めるものであり、利用頻度の低いデータを圧縮して非圧縮データの格納領域から圧縮データの格納領域へ移動するものである。この技術をディスクアレイ装置に適用したものとして、特開平5−73213号公報に開示された発明がある。この発明は、ディスクとして非圧縮データを蓄積する活性記憶プールと、圧縮データを蓄積する非活性記憶プールを設ける。各プールは一定領域を持つ複数の論理ボリュームから構成される。ディスクアレイ装置内では、各論理ボリュームについて上位からのアクセス頻度により、アクセス頻度の少ない活性記憶プールのボリュームデータは圧縮され、非活性プールのボリュームデータに蓄積される。また非活性プールのボリュームデータに上位からアクセスが発生した場合、そのデータは活性プールのボリュームに一度展開された後、上位へ応答される。
【0003】
【発明が解決しようとする課題】
上記従来技術によれば、外部記憶装置システムは、活性プール、非活性プールともにボリューム単位のデータ管理をするために、上位装置から非活性プール中のデータにアクセス要求があったとき、そのデータの格納されているボリュームを一度活性プールのボリュームに展開する必要がある。このため非活性プール中のデータのアクセス要求に対してリアルタイムで応答することは困難である。また活性プール中のデータは非圧縮データであり、記憶効率の点で問題があった。
【0004】
本発明の目的は、記憶効率がよくリアルタイム応答性のよい外部記憶装置システム及び記憶制御装置を提供することにある。
【0005】
【課題を解決するための手段】
本発明は、上位装置で認識可能な仮想ブロックを一時記憶するキャッシュ手段と、当該外部記憶装置システム内で認識する圧縮データが格納される実ブロックを格納する記憶装置と、仮想ブロックのアドレスと実ブロックのアドレスとの対応情報を格納する記憶手段と、上位装置からのリード/ライト要求に応答して要求された仮想ブロックがキャッシュ手段中にあればキャッシュ手段中の仮想ブロックについてリード/ライトを行うよう制御する手段と、キャッシュ手段中になければ上記の記憶手段を参照し要求された仮想ブロックに対応する実ブロックのデータを記憶装置から読み込み、キャッシュ手段中にデータ展開した仮想ブロックについてリード/ライトを行うよう制御する手段と、キャッシュ手段中の仮想ブロックにデータ更新が生じたとき当該仮想ブロックの圧縮データを含む対応する記憶装置中の実ブロックを更新するよう制御する手段とを有する外部記憶装置システムを特徴とする。
【0006】
また外部記憶装置システムを記憶制御装置と下位記憶装置に区分したとき、該当するキャッシュ手段、記憶手段および制御手段を有する記憶制御装置を特徴とする。
【0007】
【発明の実施の形態】
以下本発明の実施形態について図面を用いて説明する。
【0008】
図1は、外部記憶装置システムの構成を示す図である。外部記憶装置システムは、記憶制御部101とディスク群105から構成される。記憶制御部101は、制御部106、キャッシュメモリ102、上位のホスト計算機とのインタフェース部およびディスク群105とのインタフェース部を有する記憶制御装置である。キャッシュメモリ102は、仮想ブロック−実ブロック対応テーブル103および仮想ブロック領域104を有する。ここで仮想ブロックはホスト計算機が認識可能なデータであり、実ブロックは外部記憶装置システム内で認識される通常圧縮されたデータである。仮想ブロック−実ブロック対応テーブル103は、仮想ブロックのアドレスと実ブロックのアドレスとの対応関係を記憶する。また仮想ブロック領域104は、キャッシュメモリ内に保存される仮想ブロックを格納する。
【0009】
制御部106は、ホスト計算機からデータのリード要求を受けたとき、仮想ブロック−実ブロック対応テーブル103を参照し、要求されたデータが仮想ブロック領域104内にあればそのデータを応答する。また仮想ブロック領域104内になければ対応する実ブロックの圧縮データを仮想ブロック領域104に展開した後にそのデータを応答する。制御部106がホスト計算機からデータライト要求を受けたとき、仮想ブロック−実ブロック対応テーブル103を参照し、要求されたデータが仮想ブロック104内にあればそのデータを更新する。また仮想ブロック領域104内になければ対応する実ブロックの圧縮データを仮想ブロック領域104に展開した後にそのデータを更新する。制御部106は、複数のプロセッサとメモリから構成され、メモリ内のプログラムによって複数の処理を並行して実行することが可能である。
【0010】
ディスク群105は、複数のディスクから成るディスクアレイを構成し、実ブロックを保存する。実ブロックは、論理ボリューム番号と実ブロック番号の組によってアドレスされる。ディスク群105は、記憶制御部101の下位記憶装置として独立した装置であってもよい。
【0011】
図2は、仮想ブロック−実ブロック対応テーブル103のデータ構成を示す図である。仮想ブロック301は、ホスト計算機が認識する仮想ブロックのアドレスであり、論理ブロック番号−ブロック番号の形式で表現される。仮想ブロックは、非圧縮データあるいはホスト計算機による圧縮データを含む。実ブロック302は、ディスク上の実ブロック領域に記憶されるデータブロックのアドレスであり、論理ブロック番号−ブロック番号の形式で表現される。実ブロックは、記憶制御部101内で圧縮された圧縮データか又は圧縮されないデータを含む。展開先アドレス303は、実ブロックから展開された仮想ブロックの仮想ブロック領域104上のアドレスである。この例では仮想ブロックが仮想ブロック領域104上に展開されていないことを示している。圧縮/非圧縮フラグ304は、実ブロック302によってアドレス付けされる実ブロックが記憶制御部101による圧縮ブロックか非圧縮ブロックかを区分するフラグである。圧縮効率の悪い仮想ブロックは圧縮されず、そのまま実ブロックとなる。
【0012】
本例では仮想ブロックのサイズと実ブロックのサイズは同じであり、ディスク群105のディスクアレイのストライプサイズに準じた64KB程度のサイズとしている。しかしユーザはブロックサイズを任意に指定できる。また仮想ブロック301のブロック番号は0〜7FFFのように連続しているので、仮想ブロック301の欄を設けずに実ブロック302、展開先アドレス303及び圧縮/非圧縮フラグ304だけでテーブルを構成してもよい。その場合には、仮想ブロック・アドレスを対応する仮想ブロック−実ブロック対応テーブル103内メモリアドレスに変換することによって、目的のテーブル・エントリにアクセスできる。また仮想ブロック301と展開先アドレス303との対応を仮想ブロック−実ブロック対応テーブル103とは別のテーブルに設けてもよい。さらに仮想ブロック−実ブロック対応テーブル103をキャッシュメモリ102上に設ける代わりにディスク上に設けてもよい。
【0013】
図3は、データ初期書き込み時の仮想ブロックデータと実ブロック中に格納されるデータの対応関係を説明する図である。仮想ブロック領域104中に格納される各仮想ブロックは、圧縮された場合にディスク上の実ブロック領域ではサイズの縮小された圧縮データとなる。このため1つの実ブロック中に複数の仮想ブロックの圧縮データを収容することが可能である。10−0,10−1,…は連続する仮想ブロック・アドレスであり、1A−0,1A−1,…は実ブロック・アドレスである。また1A−0−0,1A−0−1,…は同一実ブロック中の各圧縮データを区別するために付けられたシーケンス番号である。各実ブロックの後尾の斜線領域は未使用領域を示す。この例のように実ブロックの未使用領域に書き込めない圧縮データは次の実ブロックに書き込まれるため、1つの圧縮データが実ブロックの境界を跨ぐことはない。
【0014】
図4は、ディスクリード時の制御部106の処理手順を示すフローチャートである。制御部106は、上位のホスト計算機からリード要求を受けると(ステップ201)、仮想ブロック−実ブロック対応テーブル103を参照し、指定された仮想ブロック・アドレスに対応する実ブロック・アドレス、展開先アドレスおよび圧縮/非圧縮フラグを取得する(ステップ202)。次に展開先アドレス303により要求されたデータが仮想ブロック領域104に展開済か否かを判定する(ステップ203)。展開先アドレス303に仮想ブロック領域104のアドレスが格納されていれば展開済、そうでなければ展開されていない。仮想ブロック領域104に展開済であれば、展開先アドレス303によって位置付けされる仮想ブロック領域104内格納場所から仮想ブロックを読み取り、そのデータをホスト計算機に応答する(ステップ204)。仮想ブロック領域104に展開済でなければ、実ブロック302で位置付けされる実ブロック領域より実ブロックを読み出し、必要に応じて伸長処理を行い、その結果を仮想ブロック領域104に展開する(ステップ205)。後述するように実ブロックの読み出しとデータ展開は並行して処理可能である。このときステップ205でデータ展開した少なくとも1つの仮想ブロックに対応する各展開先アドレス303に当該仮想ブロックの仮想ブロック領域104内格納アドレスを設定する。なお指定された仮想ブロックに対応する圧縮/非圧縮フラグ304が非圧縮を示していれば、読み出した実ブロックをそのまま仮想ブロックとする。次にデータ展開した仮想ブロックのうち指定された仮想ブロックをホスト計算機に応答する(ステップ206)。後述するように、ステップ205のデータ展開処理とステップ206の上位へのデータ応答は並行して処理可能である。
【0015】
図5は、アドレス10−0,10−1及び10−2の仮想ブロックの仮想ブロック領域104上のアドレスが各々#00A,#00B及び#00Cであることを示している。また図6は、これらの仮想ブロック領域104アドレスが仮想ブロック−実ブロック対応テーブル103の該当する展開先アドレス303に設定された状態を示している。この例では、制御部106は、仮想ブロック−実ブロック対応テーブル103を参照してアドレス1A−0の実ブロックに収容した仮想ブロックの数を求め、その仮想ブロック数分の領域を仮想ブロック領域104上に確保する。アドレス#00A〜#00Cをもつ領域が確保された領域である。次に実ブロック領域からアドレス1A−0の実ブロック・データを読み出し、読み出し時に、確保した仮想ブロック領域104上の領域にデータ展開する。実ブロック・データの読み出しと仮想ブロック領域104へのデータ展開は並行して実行される。領域#00Aについてアドレス10−0の仮想ブロックのデータ展開が終了した時点で該当する展開先アドレス303にアドレス#00Aを書き込む。領域#00B及び#00Cの処理についても同様である。
【0016】
またアドレス10−0の仮想ブロックが仮想ブロック領域104に格納完了したときにこの仮想ブロックを上位にデータ応答できるので、アドレス10−1の仮想ブロックのデータ展開とアドレス10−0の仮想ブロックの上位への応答は並行して実行される。
【0017】
このようにして仮想ブロック領域104の終端まで仮想ブロックが格納された場合、後続の仮想ブロックについては仮想ブロック領域104の先頭から順次上書きされる。またディスク上の実ボリューム領域の一部を仮想ブロック領域のために割り当てることも可能である。
【0018】
図7は、ディスクライト時の制御部106の処理手順を示すフローチャートである。制御部106は、上位のホスト計算機からライト要求を受けると(ステップ901)、仮想ブロック−実ブロック対応テーブル103を参照し、指定された仮想ブロック・アドレスに対応する実ブロック・アドレス、展開先アドレスおよび圧縮/非圧縮フラグを取得する(ステップ902)。次に展開先アドレスにより要求されたデータが仮想ブロック領域104に展開済か否かを判定する(ステップ903)。仮想ブロック領域104に展開済であれば、展開先アドレス303によって位置付けされる仮想ブロック領域104内の仮想ブロックを上位から受け取ったデータによって更新する(ステップ904)。仮想ブロック領域104に展開済でなければ、実ブロック302で位置付けされる実ブロック領域より実ブロックを読み出し、必要に応じて指定された仮想ブロックに対応する圧縮データを伸長して仮想ブロック領域104内に展開する(ステップ905)。このときデータ展開した少なくとも1つの仮想ブロックに対応する展開先アドレス303に当該仮想ブロックの仮想ブロック領域104内格納アドレスを設定する。なお指定された仮想ブロックに対応する圧縮/非圧縮フラグ304が非圧縮を示していれば、読み出した実ブロックをそのまま仮想ブロックとする。次にデータ展開された仮想ブロック領域104の仮想ブロックのうち指定された仮想ブロックを上位から受け取ったデータによって更新する(ステップ906)。
【0019】
なお指定された仮想ブロックが新規データの場合には、当該仮想ブロックに対応する実ブロック302が設定されていないから、ステップ905の処理は、当該仮想ブロックに対応する展開先アドレス303に当該仮想ブロックの仮想ブロック領域104内格納アドレスを設定するだけである。またステップ906はこの格納場所に新規の仮想ブロックを書き込む処理となる。
【0020】
次にステップ901〜906の処理と同期してあるいは非同期に仮想ブロック領域104で更新した仮想ブロックを必要に応じてデータ圧縮し、その圧縮データを実ブロック領域に書き込む(ステップ907)。言い換えれば記憶制御部101からディスク群105へ書き込むべき実ブロックを送る。このとき当該仮想ブロックに対応する実ブロック302に決定した実ブロック・アドレスを書き込む。また実ブロック領域に書き込まれたデータが圧縮データであるか非圧縮データであるかに応じて該当する圧縮/非圧縮フラグ304を設定する。後述するようにデータ圧縮処理と実ブロック書き込みは並行して処理可能である。
【0021】
次にディスクライトが仮想ブロックのデータ書き換えである場合のステップ907の処理の詳細について説明する。制御部106は、仮想ブロック−実ブロック対応テーブル103を参照して更新される仮想ブロックと同一実ブロックに収容される少なくとも1つの仮想ブロックについて圧縮処理し、それら圧縮データを1つまたは複数の実ブロックに書き込み、圧縮された仮想ブロックに対応する実ブロック302が変更されるか否かに応じてその内容を更新またはそのままとする。
【0022】
例えば図6に示す仮想ブロック−実ブロック対応テーブル103において、アドレス10−2の仮想ブロックにデータ書き換え処理が発生した場合、仮想ブロック領域104上の#00A,#00Bおよび#00Cのそれぞれ格納されるアドレス10−0〜10−2の仮想ブロックについて圧縮処理を行う。これら圧縮データがアドレス1A−0の実ブロックに収容できる場合には、その実ブロックに書き込む。
【0023】
圧縮データ量がアドレス1A−0の実ブロック容量を越える場合には、アドレス10−0および10−1の仮想ブロックの圧縮データをアドレス1A−0の実ブロックに収容し、アドレス10−2の仮想ブロックの圧縮データを新しい実ブロックに書き込む。図8は、各仮想ブロックの圧縮データが実ブロックに書き込まれた状態を示す。また図9は、新しい実ブロックの使用によってアドレス10−2の仮想ブロックに対応する実ブロック302が更新された状態を示す。
【0024】
上記データ書き換え時のディスク書き込み処理は、データ書き換えが発生したタイミングで実行してもよいし、仮想ブロック領域104が満杯になったとき次に上書きされる仮想ブロックについて実行してもよい。あるいはホスト計算機からのアクセスの少ない時に適時実行してもよい。仮想ブロック領域104上の仮想ブロックが上書きによって消去されるとき、対応する展開先アドレス303は削除される。
【0025】
また上記データ書き換えが多くの仮想ブロックに対して発生した結果として、アドレスが連続した仮想ブロックに対してアドレスが不連続となる実ブロックが多数発生する場合がある。このような場合、上位からのアクセスが少ない時に実ボリューム中の実ブロックを順次仮想ブロック領域104にデータ展開し、再圧縮した後に実ブロックが連続アドレスとなるように実ボリュームの再配置を実施してもよい。
【0026】
ステップ907のデータ圧縮処理と実ブロック書き込みをシリアルに行う方式と並行して行う方式がある。シリアル方式の場合には、メモリに圧縮データ量カウンタをもち、このカウンタにデータ圧縮した次の仮想ブロックのデータ量を加算できるか否か判定する。加算しても実ブロックの容量を越えない場合には加算し、その次の仮想ブロックのデータ圧縮を続ける。加算した場合に実ブロックの容量を越えるときには、カウンタに示されるデータ量の圧縮データを実ブロックに書き込み、次の実ブロック書き込みのためにカウンタをクリアして最後の圧縮データのデータ量を加算する。
【0027】
データ圧縮処理と実ブロック書き込みを並行して行う場合には、メモリ上に実際の実ブロックに書き込んだデータの量を示すディスク記録量カウンタをもち、連続する仮想ブロックのデータ圧縮処理を並行して実行する。このときディスク記録量カウンタが実ブロックの容量に達したか否かを判定する。カウンタが実ブロックの容量に達したとき、最後の圧縮データの実ブロック書き込みを中止し、カウンタをクリアして最後の圧縮データを改めて次の実ブロックに書き込み開始する。
【0028】
圧縮データ量カウンタとディスク記録量カウンタによる監視を併用することも可能である。すなわちデータ圧縮処理と実ブロック書き込みを並行して実行し、次の仮想ブロックのデータ圧縮が終了していれば圧縮データ量カウンタにこの圧縮データのデータ量を加算できるか否か判定する。加算できなければこの圧縮データを次の実ブロックに書き込む。一方ディスク記録量カウンタも監視し、この圧縮データのディスク書き込みによってこのカウンタが実ブロックの容量に達したか否かを判定する。ディスク記録量カウンタが実ブロックの容量に達したことを検出したとき、次の実ブロックに書き込み開始する。言い換えれば両カウンタのうちいずれか容量オーバーの検出の早い方に従って実ブロック書き込みを制御する。
【0029】
仮想ブロックを圧縮して実ブロックに格納するか、原データのままで実ブロックに格納するかの判定は、圧縮効率に基づいて行われる。この圧縮効率を求めるために、次に示すように圧縮率と正規化伸長速度の2つのパラメータを用いることができる。
【0030】
圧縮率を次式の通り定義する。
圧縮率α=(圧縮データの容量)/(原データの容量)
また非圧縮データの読み出し時間の平均値をτとし、圧縮データの読み出し時間の平均値とその伸長処理時間との和を伸長時間Tとするとき、正規化伸長速度を次式の通り定義する。
正規化伸長速度β=T/τ
単純に圧縮効率を算出する方式として、次式を定義する。
Φ=N1*α+N2*β
ここでN1,N2は、ユーザが指定する重み係数である。このΦを用いてΦが所定値以下である場合に仮想ブロックをデータ圧縮して実ブロックに格納し、そうでない場合には仮想ブロックをそのまま実ブロックに格納することができる。
【0031】
また伸長時間Tに制限時間T1がある場合、
α<1,T≦T1
の条件下では圧縮データを実ブロックに格納するようにしてもよい。
【0032】
次に上記圧縮効率に基づく判定をリアルタイムでデータ圧縮処理に適用する実施例について述べる。まず仮想ブロックをデータ圧縮し、そのときの圧縮データの容量を計数する。圧縮データの容量が仮想ブロックの容量を越えるときには、無条件で仮想ブロックをそのまま実ブロックに格納する。圧縮データ容量が仮想ブロック容量を越えないときには、圧縮データを再び伸長して伸長処理時間を測定し、上記Φの式あるいは伸長時間Tの制限に従ってその仮想ブロックを圧縮するか否かを決定する。仮想ブロックのデータ圧縮処理と伸長処理を並行して実行することも可能である。
【0033】
【発明の効果】
以上述べたように本発明によれば、記憶効率がよくリアルタイム応答性のよい外部記憶装置システム及び記憶制御装置を提供できる。またデータ圧縮効率によって実ブロックとして圧縮データまたは原データを格納することができる。
【図面の簡単な説明】
【図1】実施例の外部記憶装置システムの構成図である。
【図2】実施例の仮想ブロック−実ブロック対応テーブル103のデータ構成を示す図である。
【図3】仮想ブロックデータと実ブロックデータの対応関係を説明する図である。
【図4】実施例のディスクリード時の処理手順を示すフローチャートである。
【図5】仮想ブロックの展開先アドレスを例示する図である。
【図6】実施例の仮想ブロック−実ブロック対応テーブル103に仮想ブロックの展開先が設定された状態を示す図である。
【図7】実施例のディスクライト時の処理手順を示すフローチャートである。
【図8】仮想ブロックにデータ書き換えが発生し、実ブロックが分離された状態の例を説明する図である。
【図9】仮想ブロックのデータ書き換えの結果として実ブロックアドレスが更新された例を示す図である。
【符号の説明】
101…記憶制御部、102…キャッシュメモリ、103…仮想ブロック−実ブロック対応テーブル、104…仮想ブロック領域、105…ディスク群、106…制御部、301…仮想ブロック、302…実ブロック、303…展開先アドレス、304…圧縮/非圧縮フラグ
[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to an external storage device system and a storage control device that provide storage with good storage efficiency and high real-time response by data compression.
[0002]
[Prior art]
Data migration technology has been widely researched and developed as a technology for effectively utilizing a storage space on an external storage device. This technique determines the storage location of each data in accordance with the frequency of use, and compresses data with a low frequency of use and moves it from a storage area for uncompressed data to a storage area for compressed data. As an application of this technique to a disk array device, there is an invention disclosed in Japanese Patent Application Laid-Open No. Hei 5-73213. According to the present invention, an active storage pool for storing non-compressed data and a non-active storage pool for storing compressed data are provided as disks. Each pool is composed of a plurality of logical volumes having a certain area. In the disk array device, the volume data of the active storage pool with a low access frequency is compressed according to the access frequency from the upper level for each logical volume, and accumulated in the volume data of the inactive pool. When access is made to the volume data of the inactive pool from the upper level, the data is expanded once in the volume of the active pool and then responded to the upper level.
[0003]
[Problems to be solved by the invention]
According to the above prior art, the external storage device system manages data in units of volume for both the active pool and the inactive pool. Therefore, when an upper device requests access to data in the inactive pool, the external storage system It is necessary to expand the stored volume to the active pool volume once. Therefore, it is difficult to respond in real time to an access request for data in the inactive pool. Further, the data in the active pool is uncompressed data, which has a problem in terms of storage efficiency.
[0004]
An object of the present invention is to provide an external storage device system and a storage control device having high storage efficiency and high real-time response.
[0005]
[Means for Solving the Problems]
The present invention provides a cache unit for temporarily storing a virtual block recognizable by a host device, a storage device for storing a real block in which compressed data to be recognized in the external storage system is stored, an address of the virtual block and a real address. Storage means for storing information corresponding to the addresses of the blocks, and read / write for the virtual blocks in the cache means if the requested virtual block is in the cache means in response to the read / write request from the host device Means for controlling a virtual block that is not in the cache means, reads the data of the real block corresponding to the requested virtual block from the storage device by referring to the storage means, and reads / writes the virtual block data expanded in the cache means Means to perform the data update and data update to the virtual block in the cache means. The external storage system and means for controlling so as to update the real block in the corresponding storage device containing compressed data of the virtual block when generated characterized.
[0006]
When the external storage device system is divided into a storage control device and a lower-order storage device, a storage control device having a corresponding cache means, storage means and control means is characterized.
[0007]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, embodiments of the present invention will be described with reference to the drawings.
[0008]
FIG. 1 is a diagram illustrating a configuration of an external storage device system. The external storage system includes a storage control unit 101 and a disk group 105. The storage control unit 101 is a storage control device having a control unit 106, a cache memory 102, an interface unit with an upper-level host computer, and an interface unit with a disk group 105. The cache memory 102 has a virtual block-real block correspondence table 103 and a virtual block area 104. Here, the virtual block is data recognizable by the host computer, and the real block is normally compressed data recognized in the external storage system. The virtual block-real block correspondence table 103 stores the correspondence between the address of the virtual block and the address of the real block. The virtual block area 104 stores virtual blocks stored in the cache memory.
[0009]
When receiving a data read request from the host computer, the control unit 106 refers to the virtual block-real block correspondence table 103 and, if the requested data is in the virtual block area 104, responds with the data. If the data is not in the virtual block area 104, the compressed data of the corresponding real block is expanded in the virtual block area 104, and the data is returned. When the control unit 106 receives a data write request from the host computer, the control unit 106 refers to the virtual block-real block correspondence table 103 and updates the requested data if the data exists in the virtual block 104. If the data is not in the virtual block area 104, the compressed data of the corresponding real block is expanded in the virtual block area 104 and then the data is updated. The control unit 106 includes a plurality of processors and a memory, and can execute a plurality of processes in parallel by a program in the memory.
[0010]
The disk group 105 forms a disk array composed of a plurality of disks, and stores actual blocks. A real block is addressed by a set of a logical volume number and a real block number. The disk group 105 may be an independent device as a lower-level storage device of the storage controller 101.
[0011]
FIG. 2 is a diagram showing a data configuration of the virtual block-real block correspondence table 103. The virtual block 301 is an address of a virtual block recognized by the host computer, and is expressed in a logical block number-block number format. The virtual block includes uncompressed data or data compressed by the host computer. The real block 302 is an address of a data block stored in a real block area on the disk, and is expressed in a logical block number-block number format. The real block includes compressed data compressed in the storage control unit 101 or uncompressed data. The expansion destination address 303 is an address on the virtual block area 104 of the virtual block expanded from the real block. This example shows that the virtual block is not expanded on the virtual block area 104. The compression / non-compression flag 304 is a flag for distinguishing whether the real block addressed by the real block 302 is a compression block or a non-compression block by the storage control unit 101. Virtual blocks with poor compression efficiency are not compressed and become real blocks as they are.
[0012]
In this example, the size of the virtual block is the same as the size of the real block, and is set to a size of about 64 KB according to the stripe size of the disk array of the disk group 105. However, the user can arbitrarily specify the block size. Further, since the block numbers of the virtual blocks 301 are continuous like 0 to 7FFF, a table is formed only by the real blocks 302, the expansion destination addresses 303, and the compression / non-compression flags 304 without providing the column of the virtual blocks 301. You may. In that case, the target table entry can be accessed by converting the virtual block address into the corresponding virtual block-real block correspondence table 103 memory address. Further, the correspondence between the virtual block 301 and the development destination address 303 may be provided in a table different from the virtual block-real block correspondence table 103. Further, instead of providing the virtual block-real block correspondence table 103 on the cache memory 102, it may be provided on a disk.
[0013]
FIG. 3 is a diagram for explaining the correspondence between virtual block data at the time of initial data writing and data stored in a real block. Each virtual block stored in the virtual block area 104 becomes compressed data whose size is reduced in the real block area on the disk when compressed. Therefore, it is possible to store compressed data of a plurality of virtual blocks in one real block. Are consecutive virtual block addresses, and 1A-0, 1A-1,... Are real block addresses. Also, 1A-0-0, 1A-0-1,... Are sequence numbers assigned to distinguish compressed data in the same real block. The hatched area at the end of each real block indicates an unused area. Compressed data that cannot be written to an unused area of a real block as in this example is written to the next real block, so that one piece of compressed data does not cross a boundary between real blocks.
[0014]
FIG. 4 is a flowchart showing a processing procedure of the control unit 106 at the time of disk reading. When receiving a read request from a host computer at a higher level (step 201), the control unit 106 refers to the virtual block-real block correspondence table 103 and refers to the real block address corresponding to the specified virtual block address and the development destination address. And a compression / non-compression flag (step 202). Next, it is determined whether or not the data requested by the expansion destination address 303 has been expanded in the virtual block area 104 (step 203). If the address of the virtual block area 104 is stored in the expansion destination address 303, expansion has been completed; otherwise, expansion has not been performed. If the virtual block has been expanded in the virtual block area 104, the virtual block is read from the storage location in the virtual block area 104 positioned by the expansion destination address 303, and the data is returned to the host computer (step 204). If not expanded in the virtual block area 104, a real block is read from the real block area positioned in the real block 302, decompression processing is performed if necessary, and the result is expanded in the virtual block area 104 (step 205). . As will be described later, reading of a real block and data development can be processed in parallel. At this time, the storage address of the virtual block in the virtual block area 104 is set to each development destination address 303 corresponding to at least one virtual block that has been data-developed in step 205. If the compression / non-compression flag 304 corresponding to the specified virtual block indicates non-compression, the read real block is used as it is as a virtual block. Next, the designated virtual block among the virtual blocks subjected to data development is responded to the host computer (step 206). As will be described later, the data expansion processing in step 205 and the data response to the higher order in step 206 can be processed in parallel.
[0015]
FIG. 5 shows that the addresses of the virtual blocks of the addresses 10-0, 10-1 and 10-2 on the virtual block area 104 are # 00A, # 00B and # 00C, respectively. FIG. 6 shows a state in which these virtual block area 104 addresses are set in the corresponding development destination address 303 of the virtual block-real block correspondence table 103. In this example, the control unit 106 refers to the virtual block-real block correspondence table 103 to determine the number of virtual blocks accommodated in the real block at the address 1A-0, and allocates the area corresponding to the number of virtual blocks to the virtual block area 104. Secure on top. An area having addresses # 00A to # 00C is a reserved area. Next, the real block data at the address 1A-0 is read from the real block area, and at the time of reading, the data is developed in the secured area on the virtual block area 104. Reading of real block data and data development to the virtual block area 104 are executed in parallel. When the data development of the virtual block at the address 10-0 is completed for the area # 00A, the address # 00A is written to the corresponding development destination address 303. The same applies to the processing of areas # 00B and # 00C.
[0016]
When the virtual block at the address 10-0 is completely stored in the virtual block area 104, the virtual block can respond to the data of the virtual block at the upper level. Responses to are performed in parallel.
[0017]
When a virtual block is stored up to the end of the virtual block area 104 in this way, subsequent virtual blocks are sequentially overwritten from the beginning of the virtual block area 104. It is also possible to allocate a part of the real volume area on the disk for the virtual block area.
[0018]
FIG. 7 is a flowchart showing a processing procedure of the control unit 106 at the time of a disk write. Upon receiving a write request from a host computer at a higher level (step 901), the control unit 106 refers to the virtual block-real block correspondence table 103, and refers to the real block address corresponding to the specified virtual block address and the development destination address. And a compression / non-compression flag is obtained (step 902). Next, it is determined whether or not the data requested by the development destination address has been developed in the virtual block area 104 (step 903). If the virtual block has been expanded in the virtual block area 104, the virtual block in the virtual block area 104 positioned by the expansion destination address 303 is updated with the data received from the upper level (step 904). If the virtual block area 104 has not been expanded, the real block is read from the real block area positioned in the real block 302, and the compressed data corresponding to the specified virtual block is decompressed as necessary, and (Step 905). At this time, the storage address of the virtual block in the virtual block area 104 is set as the expansion destination address 303 corresponding to at least one virtual block in which the data has been expanded. If the compression / non-compression flag 304 corresponding to the specified virtual block indicates non-compression, the read real block is used as it is as a virtual block. Next, the designated virtual block among the virtual blocks in the virtual block area 104 in which data has been developed is updated with the data received from the upper level (step 906).
[0019]
If the specified virtual block is new data, the real block 302 corresponding to the virtual block is not set, and thus the processing of step 905 is performed by adding the virtual block to the development destination address 303 corresponding to the virtual block. Only the storage address in the virtual block area 104 is set. Step 906 is a process of writing a new virtual block in this storage location.
[0020]
Next, the virtual block updated in the virtual block area 104 is data-compressed as necessary, synchronously or asynchronously with the processing of steps 901 to 906, and the compressed data is written to the real block area (step 907). In other words, the storage control unit 101 sends a real block to be written to the disk group 105. At this time, the determined real block address is written to the real block 302 corresponding to the virtual block. Further, a corresponding compression / non-compression flag 304 is set according to whether the data written in the real block area is compressed data or uncompressed data. As will be described later, data compression processing and real block writing can be processed in parallel.
[0021]
Next, the details of the processing in step 907 when the disk write is data rewriting of a virtual block will be described. The control unit 106 performs a compression process on at least one virtual block contained in the same real block as the virtual block to be updated with reference to the virtual block-real block correspondence table 103, and converts the compressed data into one or more real blocks. The content is written to the block, and the content is updated or left as it is depending on whether or not the real block 302 corresponding to the compressed virtual block is changed.
[0022]
For example, in the virtual block-real block correspondence table 103 shown in FIG. 6, when the data rewriting process occurs in the virtual block at the address 10-2, # 00A, # 00B, and # 00C on the virtual block area 104 are stored, respectively. The compression process is performed on the virtual blocks at addresses 10-0 to 10-2. If the compressed data can be accommodated in the real block at the address 1A-0, the data is written into the real block.
[0023]
If the amount of compressed data exceeds the real block capacity at address 1A-0, the compressed data of the virtual blocks at addresses 10-0 and 10-1 is stored in the real block at address 1A-0, and the virtual data at address 10-2 is stored. Write the compressed data of the block to a new real block. FIG. 8 shows a state in which the compressed data of each virtual block is written in the real block. FIG. 9 shows a state where the real block 302 corresponding to the virtual block at the address 10-2 has been updated by using a new real block.
[0024]
The disk writing process at the time of data rewriting may be executed at the timing when data rewriting occurs, or may be executed for the next virtual block to be overwritten when the virtual block area 104 becomes full. Alternatively, it may be executed at an appropriate time when there is little access from the host computer. When a virtual block on the virtual block area 104 is deleted by overwriting, the corresponding development destination address 303 is deleted.
[0025]
In addition, as a result of the data rewriting occurring for many virtual blocks, there may be a case where a large number of real blocks whose addresses are discontinuous with respect to virtual blocks having continuous addresses. In such a case, when there is little access from the upper level, the real blocks in the real volume are sequentially expanded in the virtual block area 104, and after recompression, the real volume is relocated so that the real blocks have continuous addresses. You may.
[0026]
There is a method in which the data compression processing in step 907 and the actual block writing are performed serially. In the case of the serial method, the memory has a compressed data amount counter, and it is determined whether or not the data amount of the next compressed virtual block can be added to this counter. If the sum does not exceed the capacity of the real block, the sum is added and the data compression of the next virtual block is continued. If the sum exceeds the capacity of the real block, the compressed data of the data amount indicated in the counter is written into the real block, the counter is cleared for the next real block write, and the data amount of the last compressed data is added. .
[0027]
When data compression processing and real block writing are performed in parallel, a disk recording amount counter indicating the amount of data written to the actual real blocks on the memory is provided, and data compression processing for consecutive virtual blocks is performed in parallel. Execute. At this time, it is determined whether or not the disk recording amount counter has reached the capacity of the actual block. When the counter reaches the capacity of the real block, the writing of the last compressed data to the real block is stopped, the counter is cleared, and the last compressed data is written to the next real block again.
[0028]
Monitoring by the compressed data amount counter and the disk recording amount counter can be used together. That is, the data compression processing and the real block writing are executed in parallel, and if the data compression of the next virtual block has been completed, it is determined whether or not the data amount of the compressed data can be added to the compressed data amount counter. If addition is not possible, the compressed data is written to the next real block. On the other hand, the disk recording amount counter is also monitored, and it is determined whether or not this counter reaches the capacity of the actual block by writing the compressed data to the disk. When the disk recording amount counter detects that the capacity of the real block has been reached, writing to the next real block is started. In other words, the actual block writing is controlled in accordance with which of the two counters detects the overcapacity earlier.
[0029]
The decision whether to compress the virtual block and store it in the real block or to store the original data as it is in the real block is made based on the compression efficiency. To determine this compression efficiency, two parameters, a compression ratio and a normalized decompression speed, can be used as shown below.
[0030]
The compression ratio is defined as follows.
Compression ratio α = (Compressed data capacity) / (Original data capacity)
When the average value of the read time of the uncompressed data is τ and the sum of the average value of the read time of the compressed data and the decompression processing time is the decompression time T, the normalized decompression speed is defined as follows.
Normalized elongation rate β = T / τ
The following equation is defined as a method for simply calculating the compression efficiency.
Φ = N1 * α + N2 * β
Here, N1 and N2 are weighting factors specified by the user. Using Φ, when Φ is equal to or less than a predetermined value, the virtual block can be data-compressed and stored in the real block. Otherwise, the virtual block can be stored as it is in the real block.
[0031]
If the extension time T has a time limit T1,
α <1, T ≦ T1
Under the condition (1), compressed data may be stored in a real block.
[0032]
Next, an embodiment in which the determination based on the compression efficiency is applied to data compression processing in real time will be described. First, the virtual block is compressed, and the amount of compressed data at that time is counted. When the capacity of the compressed data exceeds the capacity of the virtual block, the virtual block is unconditionally stored as it is in the real block. If the compressed data capacity does not exceed the virtual block capacity, the compressed data is decompressed again to measure the decompression processing time, and it is determined whether or not to compress the virtual block according to the expression of Φ or the restriction of the decompression time T. It is also possible to execute data compression processing and decompression processing of a virtual block in parallel.
[0033]
【The invention's effect】
As described above, according to the present invention, it is possible to provide an external storage device system and a storage control device with good storage efficiency and real-time response. Also, compressed data or original data can be stored as a real block depending on the data compression efficiency.
[Brief description of the drawings]
FIG. 1 is a configuration diagram of an external storage device system according to an embodiment.
FIG. 2 is a diagram illustrating a data configuration of a virtual block-real block correspondence table 103 according to the embodiment.
FIG. 3 is a diagram illustrating the correspondence between virtual block data and real block data.
FIG. 4 is a flowchart illustrating a processing procedure at the time of reading a disk according to the embodiment;
FIG. 5 is a diagram illustrating an example of a destination address of a virtual block;
FIG. 6 is a diagram illustrating a state in which a virtual block development destination is set in the virtual block-real block correspondence table 103 according to the embodiment;
FIG. 7 is a flowchart illustrating a processing procedure at the time of disc writing according to the embodiment;
FIG. 8 is a diagram illustrating an example of a state in which data rewriting has occurred in a virtual block and a real block has been separated;
FIG. 9 is a diagram illustrating an example in which a real block address is updated as a result of rewriting data of a virtual block.
[Explanation of symbols]
101: storage control unit, 102: cache memory, 103: virtual block-real block correspondence table, 104: virtual block area, 105: disk group, 106: control unit, 301: virtual block, 302: real block, 303: development Destination address, 304 ... compressed / uncompressed flag

Claims (5)

上位装置で認識可能な仮想ブロックを一時記憶するキャッシュ手段と、当該外部記憶装置システム内で認識する圧縮データが収容される実ブロックを格納する記憶装置と、前記仮想ブロックのアドレスと前記実ブロックのアドレスとの対応情報を格納する記憶手段と、前記上位装置からのリード/ライト要求に応答して要求された仮想ブロックが前記キャッシュ手段中にあれば前記キャッシュ手段中の仮想ブロックについてリード/ライトを行うよう制御する手段と、前記キャッシュ手段中になければ前記記憶手段を参照し要求された仮想ブロックに対応する実ブロックのデータを前記記憶装置から読み込み、前記キャッシュ手段中にデータ展開した仮想ブロックについてリード/ライトを行うよう制御する手段と、前記キャッシュ手段中の仮想ブロックにデータ更新が生じたとき当該仮想ブロックの圧縮データを含む対応する前記記憶装置中の実ブロックを更新するよう制御する手段とを有することを特徴とする外部記憶装置システム。A cache unit for temporarily storing a virtual block recognizable by a host device; a storage device for storing a real block containing compressed data to be recognized in the external storage system; an address of the virtual block; A storage unit for storing address correspondence information; and a read / write operation for a virtual block in the cache unit if the requested virtual block is in the cache unit in response to a read / write request from the host device. Means for controlling the execution of the virtual block, and reading the data of the real block corresponding to the requested virtual block from the storage device by referring to the storage means if the virtual block is not in the cache means. Means for controlling to perform read / write, and External storage system, characterized in that it comprises a means for controlling so as to update the real block in the storage device including the corresponding compressed data of the virtual block when the data update occurs in virtual blocks. さらに前記仮想ブロックをデータ圧縮/データ伸長するときの圧縮効率に基づく判定によって前記仮想ブロックをそのまま前記実ブロックとして前記記憶装置に格納するよう制御する手段を有することを特徴とする請求項1記載の外部記憶装置システム。2. The apparatus according to claim 1, further comprising means for controlling the virtual block to be stored as it is in the storage device as the real block by a determination based on the compression efficiency at the time of data compression / data expansion of the virtual block. External storage system. 前記記憶装置はディスクアレイ装置であることを特徴とする請求項1記載の外部記憶装置システム。2. The external storage device system according to claim 1, wherein said storage device is a disk array device. 上位装置との間で前記上位装置が認識可能な仮想ブロックをやり取りし、下位記憶装置との間で圧縮データが格納される実ブロックをリード/ライトする記憶制御装置であって、
前記仮想ブロックを一時記憶するキャッシュ手段と、前記仮想ブロックのアドレスと前記実ブロックのアドレスとの対応情報を格納する記憶手段と、前記上位装置からのリード/ライト要求に応答して要求された仮想ブロックが前記キャッシュ手段中にあれば前記キャッシュ手段中の仮想ブロックについてリード/ライトを行うよう制御する手段と、前記キャッシュ手段中になければ前記記憶手段を参照し要求された仮想ブロックに対応する実ブロックのデータを前記下位記憶装置から読み込み、前記キャッシュ手段中にデータ展開した仮想ブロックについてリード/ライトを行うよう制御する手段と、前記キャッシュ手段中の仮想ブロックにデータ更新が生じたとき当該仮想ブロックの圧縮データを含む対応する実ブロックを書き込むために前記下位記憶装置へ送る制御手段とを有することを特徴とする記憶制御装置。
A storage controller for exchanging virtual blocks recognizable by the higher-level device with a higher-level device and reading / writing a real block in which compressed data is stored with a lower-level storage device,
A cache unit for temporarily storing the virtual block; a storage unit for storing correspondence information between the address of the virtual block and the address of the real block; and a virtual unit requested in response to a read / write request from the higher-level device. If the block is in the cache, the read / write control is performed on the virtual block in the cache. If the block is not in the cache, the virtual block corresponding to the requested virtual block is referred to by referring to the storage. Means for reading data of a block from the lower-level storage device, and for controlling read / write of a virtual block developed in the cache means; and when the data is updated in the virtual block in the cache means, To write the corresponding real block containing the compressed data of Storage control apparatus characterized by a control means for sending to the lower data storage apparatus.
さらに前記仮想ブロックをデータ圧縮/データ伸長するときの圧縮効率に基づく判定によって前記仮想ブロックをそのまま前記実ブロックとして前記下位記憶装置へ送るよう制御する手段を有することを特徴とする請求項4記載の記憶制御装置。5. The apparatus according to claim 4, further comprising means for controlling the virtual block to be sent as it is to the lower-level storage device as the real block by a determination based on the compression efficiency at the time of data compression / data expansion of the virtual block. Storage controller.
JP2002163786A 2002-06-05 2002-06-05 External storage system and storage controller Expired - Fee Related JP4220726B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002163786A JP4220726B2 (en) 2002-06-05 2002-06-05 External storage system and storage controller

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002163786A JP4220726B2 (en) 2002-06-05 2002-06-05 External storage system and storage controller

Publications (3)

Publication Number Publication Date
JP2004013373A true JP2004013373A (en) 2004-01-15
JP2004013373A5 JP2004013373A5 (en) 2005-10-13
JP4220726B2 JP4220726B2 (en) 2009-02-04

Family

ID=30432112

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002163786A Expired - Fee Related JP4220726B2 (en) 2002-06-05 2002-06-05 External storage system and storage controller

Country Status (1)

Country Link
JP (1) JP4220726B2 (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006259962A (en) * 2005-03-16 2006-09-28 Hitachi Ltd Storage system
CN100347654C (en) * 2004-12-20 2007-11-07 富士通株式会社 Data management method and apparatus, hierarchical storage apparatus and computer-readable storage medium
JP2009104236A (en) * 2007-10-19 2009-05-14 Hitachi Ltd Storage apparatus and data storage method using the same
WO2015075837A1 (en) * 2013-11-25 2015-05-28 株式会社日立製作所 Storage device and control method therefor
WO2015087424A1 (en) * 2013-12-12 2015-06-18 株式会社日立製作所 Storage device and method for controlling storage device
WO2015162755A1 (en) * 2014-04-24 2015-10-29 株式会社日立製作所 Storage device for compressing and storing data
JP2018014129A (en) * 2017-09-14 2018-01-25 株式会社日立製作所 Storage device and method of controlling storage device

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100347654C (en) * 2004-12-20 2007-11-07 富士通株式会社 Data management method and apparatus, hierarchical storage apparatus and computer-readable storage medium
JP2006259962A (en) * 2005-03-16 2006-09-28 Hitachi Ltd Storage system
JP4615337B2 (en) * 2005-03-16 2011-01-19 株式会社日立製作所 Storage system
JP2009104236A (en) * 2007-10-19 2009-05-14 Hitachi Ltd Storage apparatus and data storage method using the same
WO2015075837A1 (en) * 2013-11-25 2015-05-28 株式会社日立製作所 Storage device and control method therefor
CN104956312A (en) * 2013-12-12 2015-09-30 株式会社日立制作所 Storage device and method for controlling storage device
WO2015087424A1 (en) * 2013-12-12 2015-06-18 株式会社日立製作所 Storage device and method for controlling storage device
GB2536514A (en) * 2013-12-12 2016-09-21 Hitachi Ltd Storage device and method for controlling storage device
JPWO2015087424A1 (en) * 2013-12-12 2017-03-16 株式会社日立製作所 Storage device and storage device control method
CN104956312B (en) * 2013-12-12 2018-02-13 株式会社日立制作所 The control method of storage device and storage device
US9916248B2 (en) 2013-12-12 2018-03-13 Hitachi, Ltd. Storage device and method for controlling storage device with compressed and uncompressed volumes and storing compressed data in cache
WO2015162755A1 (en) * 2014-04-24 2015-10-29 株式会社日立製作所 Storage device for compressing and storing data
JP2018014129A (en) * 2017-09-14 2018-01-25 株式会社日立製作所 Storage device and method of controlling storage device

Also Published As

Publication number Publication date
JP4220726B2 (en) 2009-02-04

Similar Documents

Publication Publication Date Title
US5778411A (en) Method for virtual to physical mapping in a mapped compressed virtual storage subsystem
JP3532413B2 (en) Method and data processing system for allocating disk storage space for storage of compressed data records
KR100216146B1 (en) Data compression method and structure for a direct access storage device
JP3271668B2 (en) Configuration of mass storage function using host processor memory
US6941420B2 (en) Log-structure array
US6542960B1 (en) System and method for parity caching based on stripe locking in raid data storage
JP2846839B2 (en) Data storage system and related methods
JP3347015B2 (en) Adaptive localization method and apparatus for frequently accessed and randomly addressed data
JP2010102715A (en) Large block allocation for disk-based file system
JPH08234921A (en) Method for management of address space and storage subsystem
JPH08249128A (en) Storage controller, method for controlling disk storage device and method for managing compressed data
JPH05204561A (en) Semiconductor disk having flash memory as storage medium
JPH08241241A (en) Method and system for improvement of performance of memory in restricted virtual memory environment by reduction of paging activity
US20060164743A1 (en) Method for copying source data from a source hard disk to multiple target hard disks
JP4308152B2 (en) Method, system, and product for reserving memory
US7000077B2 (en) Device/host coordinated prefetching storage system
JP4220726B2 (en) External storage system and storage controller
JP3627915B2 (en) BOOT BLOCK FLASH MEMORY CONTROL CIRCUIT, IC MEMORY CARD WITH THE SAME, SEMICONDUCTOR STORAGE DEVICE, AND BOOT BLOCK FLASH MEMORY METHOD
JP2003167781A (en) Magnetic disk device and data readout control method
US6266671B1 (en) Data storage apparatus, method, and medium with variable data storage structure
JP3127796B2 (en) Information recording / reproducing device
JP2004013373A5 (en)
JPH08249135A (en) Method and system for allocation of physical space in logical map-type data storage device
JPH06332622A (en) Information processor
JPH0863397A (en) Method for controlling disk cache

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050603

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050603

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20050603

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080121

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080129

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080324

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: 20081021

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20081114

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111121

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111121

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121121

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121121

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131121

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees