[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP4197547B2 - Data storage device and data management method - Google Patents

Data storage device and data management method Download PDF

Info

Publication number
JP4197547B2
JP4197547B2 JP13044398A JP13044398A JP4197547B2 JP 4197547 B2 JP4197547 B2 JP 4197547B2 JP 13044398 A JP13044398 A JP 13044398A JP 13044398 A JP13044398 A JP 13044398A JP 4197547 B2 JP4197547 B2 JP 4197547B2
Authority
JP
Japan
Prior art keywords
data
block
read
predetermined
block size
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.)
Expired - Lifetime
Application number
JP13044398A
Other languages
Japanese (ja)
Other versions
JPH11327978A (en
Inventor
健治 三浦
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP13044398A priority Critical patent/JP4197547B2/en
Publication of JPH11327978A publication Critical patent/JPH11327978A/en
Application granted granted Critical
Publication of JP4197547B2 publication Critical patent/JP4197547B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

【0001】
【発明の属する技術分野】
この発明は、所定のブロックサイズをもつブロックデータを所定数蓄積する書き込みバッファと少なくとも一つ以上のディスク装置とを備え、この書き込みバッファに蓄積された所定数のブロックデータを一括してディスク装置に書き込むデータ記憶装置および同装置に適用されるデータ管理方法に係り、特に、ブロックサイズ未満の更新リクエスト処理時の性能低下を軽減することのできるデータ記憶装置および同装置に適用されるデータ管理方法に関する。
【0002】
【従来の技術】
近年、情報の電子化が急速に進んでおり、文書や図形のみならず、音声、静止画像および動画像などといった様々な情報が電子化されて利用されている。そして、この急速な情報の電子化に伴なって、高速かつ大容量のデータ記憶装置が種々開発されてきており、その中の一つとして、書き込みリクエストされたブロックデータを所定数蓄積し、この蓄積したブロックデータを元の書き込みリクエストアドレスとは無関係に一括してディスク装置に書き込むとともに、元のリクエストのアドレス(論理アドレス)と実際に書き込んだアドレス(物理アドレス)との対応をアドレス変換テーブルにより管理するといったデータ記憶装置が存在する。
【0003】
このデータ記憶装置では、蓄積した複数のブロックデータを一括してディスク装置に書き込むことから、ディスク装置に対する処理要求の発生を抑えることができるため、高速な書き込み処理能力を提供することが可能となる。
【0004】
以下、図面を参照してこのデータ記憶装置における読み出し処理および書き込み処理の動作原理を説明する。図8には、このデータ記憶装置20の概略構成が示されている。
【0005】
図8に示すように、このデータ記憶装置20は、アドレス変換テーブル23を備えている。このデータ記憶装置20では、ホストシステム10側に提供する記憶空間をブロックと称する固定長の記憶単位で分割する。なお、このホストシステム10側に提供する記憶空間と、実際にデータを格納するディスク装置24が提供する記憶空間とは固定で対応づけられるものではなく、ディスク領域への書き込み時に動的に決定されるものである。そして、この対応を管理するためのテーブルがアドレス変換テーブル23である。
【0006】
なお、以降の説明においては、このデータ記憶装置20がホストシステム10側に提供する記憶空間を論理記憶空間と、また、この論理記憶空間を参照するためのアドレス情報を論理アドレスと表現する。さらに、ディスク装置24が提供する記憶空間を物理記憶空間と、また、この物理記憶空間を参照するためのアドレス情報を物理アドレスと表現する。
【0007】
図9に、アドレス変換テーブル23の構成を示す。アドレス変換テーブル23は、論理アドレスに対応する物理アドレスを格納する。そして、このアドレス変換テーブル23のエントリを各ブロックの先頭論理アドレスごとに与えることにより、このアドレス変換テーブル23を論理アドレスで参照するのみで該当ブロックが収められているディスク装置の物理アドレスを得ることを可能とする。
【0008】
ここで、このデータ記憶装置20の書き込みバッファ22およびディスク装置24への書き込みについて説明する。
書き込みバッファ22は、書き込みリクエストされたデータを蓄積するための記憶領域である。この書き込みバッファ22は、固定長の記憶領域であり、その内部は論理的にブロックサイズ単位に分割されている。また、この書き込みバッファ22は、自身が格納する各ブロックデータの論理アドレスを保持する。
【0009】
制御部21は、ホストシステム10から書き込みリクエストされたデータをブロックサイズ単位に分割し、分割されたブロックサイズのデータを書き込みバッファ22の空き領域に格納するとともに、対応する論理アドレスも格納する。なお、このときの書き込みリクエスト処理は、書き込みデータが書き込みバッファ22に格納された時点で完了する。
【0010】
また、制御部21は、格納されたデータブロックの数が書き込みバッファに格納可能なブロック数に達した時点で、書き込み先である物理記憶空間の割り当てを行ない、その書き込みバッファ22の内容を一括してディスク装置24へ書き込む。なお、書き込み先の物理記憶空間の割り当て処理の詳細については、本発明の範囲外であるので省略する。
【0011】
そして、このディスク装置24への書き込み完了後、制御部21は、アドレス変換テーブル23を更新する。この処理は、ディスク装置24へ書き込まれたデータブロックであって、書き込みバッファ22中に存在する各データブロックについて、該当データブロックが書き込まれた物理アドレスを、書き込みを行なったディスクの先頭物理アドレスと該当データブロックの書き込みバッファ22内での位置とから求め、アドレス変換テーブル23を該当ブロックに対応する論理アドレスで参照し、そのエントリに求めた物理アドレスを登録する。
【0012】
次に、このデータ記憶装置20の書き込みバッファ22およびディスク装置24からの読み出しについて説明する。
読み出し処理において、制御部21は、まず、該当データが書き込みバッファ22中に存在するか否かを検査する。この検査は、書き込みバッファ22中の各ブロックデータの論理アドレスから実施することができる。そして、該当データが書き込みバッファ22中に存在する場合、制御部21は、そのデータをリクエストで指定されたサイズでホストシステム10に転送することにより、この読み出しリクエスト処理を完了する。
【0013】
一方、該当データが書き込みバッファ22中に存在しない場合には、制御部21は、読み出しリクエストで指定された読み出し論理アドレスを、まず、ブロック境界に補正し、この補正した読み出し論理アドレスでアドレス変換テーブル23を参照することにより、該当データを含むデータブロックが格納されている物理アドレスを求める。この後、制御部21は、この物理アドレスからリクエストで指定されたサイズのデータをディスク装置24から読み出し、これをホストシステム10に転送することにより、この読み出しリクエストを完了する。
【0014】
【発明が解決しようとする課題】
ここで、前述したデータ記憶装置20がブロックサイズ未満の書き込みリクエストを処理する場合について考える。
前述したデータ記憶装置20において、ブロックサイズに満たないサイズでのデータ更新リクエスト処理時における書き込みバッファ22への蓄積処理については、一般的には以下のような手順が考えられる。
(1)書き込みリクエストで指定される更新対象データ領域を包含するブロックをディスク装置24から読み出す。
(2)読み出したブロックを書き込みバッファ22の空き領域に蓄積する。
(3)書き込みバッファ22の空き領域に蓄積したブロックサイズのデータの更新対象領域に更新データを上書きする。
【0015】
すなわち、このような処理により、ブロックサイズに満たない更新の際、データブロック中で更新対象とならない部分を現在のデータを読み出すことによって補完していた。
【0016】
しかしながら、このような処理は、ディスク装置24からの読み出し処理を伴なうため、ブロックサイズと一致するサイズでの更新処理に比べてより多くの時間を要することになる。このため、ブロックサイズ未満の書き込みアクセスの頻度が大きくなると、データ記憶装置20の性能を低下させてしまうといった問題があった。
【0017】
この発明はこのような実情に鑑みてなされたものであり、書き込みブロックデータを所定数蓄積し、この蓄積したブロックデータを一括してディスク装置に書き込むデータ記憶装置であって、ブロックサイズ未満の更新リクエスト処理の性能低下を軽減することのできるデータ記憶装置および同装置に適用されるデータ管理方法を提供することを目的とする。
【0020】
【課題を解決するための手段】
前述した目的を達成するために、この発明は、既存の書き込みバッファとは別にブロックデータを所定数蓄積する読み出しバッファを新たに設け、ブロックサイズ未満の読み出しリクエスト処理時に、このリクエストで指定された読み出し対象領域を包含するブロックデータを読み出しバッファに格納しておくようにしたものである。
【0021】
この発明は、ブロックサイズ未満で読み出されたデータは、同一サイズ、すなわちブロックサイズ未満で更新される可能性が高いといったことを前提とするものであり、ブロックサイズ未満で更新される可能性の高いデータを包含するブロックデータを読み出しバッファに格納しておくことにより、ブロックサイズに満たない更新リクエスト処理時のディスクアクセスを減らすことを実現し、データ記憶装置の性能低下を軽減させることを可能とする。
【0022】
また、この発明は、ブロックサイズ未満の更新リクエスト処理時に、このリクエストで更新されたブロックデータを前記読み出しバッファに格納しておくようにしたものである。
【0023】
この発明もまた、ブロックサイズ未満で更新されたデータは、同一サイズ、すなわちブロックサイズ未満で再度更新される可能性が高いといったことを前提とするものであり、ブロックサイズ未満で更新される可能性の高いデータを包含するブロックデータを読み出しバッファに格納しておくことにより、前述と同様、ブロックサイズに満たない更新リクエスト処理時のディスクアクセスを減らすことを実現し、データ記憶装置の性能低下を軽減させることを可能とする。
【0024】
また、この発明は、ブロックサイズ未満での更新有無を判定するためのフラグを前記ブロックデータごとに管理し、読み出しリクエスト処理時に、このリクエストで読み出されたブロックデータが過去にブロックサイズ未満で更新されたことがあるか否かを前記管理するフラグにより判定し、過去にブロックサイズ未満で更新されたことのあるデータブロックであると判定したときに、そのブロックデータを前記読み出しバッファに格納しておくようにしたものである。
【0025】
この発明もまた、過去にブロックサイズ未満で更新されたデータは、同一サイズ、すなわちブロックサイズ未満で再度更新される可能性が高いといったことを前提とするものであり、ブロックサイズ未満で更新される可能性の高いデータを包含するブロックデータを読み出しバッファに格納しておくことにより、前述と同様、ブロックサイズに満たない更新リクエスト処理時のディスクアクセスを減らすことを実現し、データ記憶装置の性能低下を軽減させることを可能とする。
【0026】
また、この発明は、ブロックサイズ未満での更新処理が発生したブロックデータの論理アドレスまたは物理アドレスを管理し、読み出しリクエスト処理時に、このリクエストで読み出されたブロックデータが過去にブロックサイズ未満で更新されたことがあるか否かを前記管理する論理アドレスまたは物理アドレスにより判定し、過去にブロックサイズ未満で更新されたことのあるデータブロックであると判定したときに、そのブロックデータを前記読み出しバッファに格納しておくようにしたものである。
【0027】
この発明もまた、過去にブロックサイズ未満で更新されたデータは、同一サイズ、すなわちブロックサイズ未満で再度更新される可能性が高いといったことを前提とするものであり、ブロックサイズ未満で更新される可能性の高いデータを包含するブロックデータを読み出しバッファに格納しておくことにより、前述と同様、ブロックサイズに満たない更新リクエスト処理時のディスクアクセスを減らすことを実現し、データ記憶装置の性能低下を軽減させることを可能とする。
【0028】
【発明の実施の形態】
以下、図面を参照してこの発明の実施の形態を説明する。
(第1実施形態)
まず、この発明の第1実施形態について説明する。図1は、この第1実施形態に係るデータ記憶装置の概略構成を示す図である。
【0029】
図1に示したように、この第1実施形態のデータ記憶装置20は、図8に示した従来のデータ記憶装置20に読み出しバッファ25を加えたものである。
この読み出しバッファ25は、書き込みバッファ22と同様、固定長の記憶領域であり、その内部は論理的にブロック単位に分割されている。また、この読み出しバッファ25も、自身が格納する各データブロックの論理アドレスを保持する。以下、この読み出しバッファ25の取り扱いを第1実施形態のデータ記憶装置20の読み出し処理および書き込み処理の動作手順とともに説明する。
【0030】
図2は、第1実施形態のデータ記憶装置20のブロック読み出し処理の動作手順を説明するためのフローチャートである。
この第1実施形態における読み出し処理では、ホストシステム10からの読み出しリクエストで指定される読み出しサイズがブロックサイズより小さい場合であっても、ディスク装置24からのデータ読み出しの際には、読み出し対象領域を包含するブロックをブロックサイズで読み出す。
【0031】
読み出し処理において、制御部21は、まず、読み出しリクエストの論理アドレスと読み出しサイズとから、該当データが書き込みバッファ22中に存在するか否かを検査する(ステップA1)。この検査は、従来と同様、書き込みバッファ22中の各ブロックデータの論理アドレスから実施することができる。そして、該当データが書き込みバッファ22中に存在する場合(ステップA1のYES)、制御部21は、そのデータをリクエストで指定されたサイズでホストシステム10に転送することにより(ステップA2)、この読み出しリクエストを完了する。
【0032】
一方、該当データが書き込みバッファ22中に存在しない場合には(ステップA1のNO)、制御部21は、今度は、読み出しリクエストの論理アドレスと読み出しサイズとから、該当データが読み出しバッファ25中に存在するか否かを検査する(ステップA3)。この検査は、読み出しバッファ25中の各ブロックデータの論理アドレスから実施することができる。
【0033】
ここで、該当データが読み出しバッファ25中に存在する場合(ステップA3のYES)、制御部21は、そのデータをリクエストで指定されたサイズでホストシステム10に転送することにより(ステップA4)、この読み出しリクエストを完了する。
【0034】
一方、該当データが読み出しバッファ25中にも存在しない場合には(ステップA3のNO)、制御部21は、読み出しリクエストで指定された読み出し論理アドレスを、まず、ブロック境界に補正し(ステップA5)、この補正した読み出し論理アドレスでアドレス変換テーブル23を参照することにより、該当データを含むデータブロックが格納されている物理アドレスを求める。そして、制御部21は、この物理アドレスからブロックサイズのデータを読み出し、読み出したブロックサイズのデータの中からリクエストで指定された範囲のデータのみをホストシステム10に転送することにより(ステップA6)、この読み出しリクエストを完了する。また、このとき、制御部21は、ディスク装置24から読み出したブロックサイズのデータを、読み出しバッファ25の空き領域に格納しておく(ステップA4)。
【0035】
次に、この第1実施形態における書き込み処理を説明する。
ブロックサイズの倍数と一致するサイズの書き込みリクエストの処理については、制御部21は、従来と同様、ホストシステム10からのリクエストデータをブロックサイズに分割した後、書き込みバッファ25の空き領域に順次格納していき、対応する論理アドレスを記録する。そして、書き込みバッファ22にすべてのリクエストデータが蓄積された時点で書き込みリクエストは完了する。
【0036】
この第1実施形態の書き込み処理が従来の書き込み処理と異なる点は、ブロックサイズ未満の書き込みリクエスト処理であり、このときの処理手順を図3を参照して説明する。
【0037】
制御部21は、まず、書き込みリクエストで指定される書き込み先論理アドレスをブロック境界に補正する(ステップB1)。次に、制御部21は、更新対象領域を含むデータブロックが書き込みバッファ22中に存在するか否かを検査する(ステップB2)。この検査は、ブロックサイズの倍数と一致する書き込み処理の場合と同様、書き込みバッファ22中の各ブロックデータの論理アドレスから実施することができる。
【0038】
更新対象領域を含むデータブロックが書き込みバッファ22中に存在する場合(ステップB2のYES)、制御部21は、従来と同様、書き込みバッファ22中の該当データブロックの更新対象領域に対して更新データを上書きし(ステップB3)、この書き込みリクエスト処理を完了する。
【0039】
一方、更新対象領域を含むデータブロックが書き込みバッファ22中に存在しない場合(ステップB2のNO)、制御部21は、今度は、更新対象領域を含むデータブロックが読み出しバッファ25中に存在するか否かを検査する(ステップB4)。
【0040】
更新対象領域を含むデータブロックが読み出しバッファ25中に存在する場合(ステップB4のYES)、制御部21は、該当データブロックの更新対象領域に対し更新データを上書きする(ステップB5)。この後、該当データブロックを読み出しバッファ25から書き込みバッファ22の空き領域に複写、蓄積することにより(ステップB6)、この書き込みリクエストを完了する。これにより、読み出しバッファ25および書き込みバッファ22の両方に、更新後のブロックのデータが残ることになる。
【0041】
一方、更新対象領域を含むデータブロックが書き込みバッファ22中にも、読み出しバッファ25中にも存在しない場合は(ステップB4のNO)、制御部21は、従来と同様、書き込みリクエストで指定される更新対象データ領域を包含するブロックをディスク装置24から読み出し(ステップB7)、この読み出したデータを書き込みバッファ22の空き領域に格納した後(ステップB8)、更新データを上書きすることにより(ステップB9)、このリクエスト処理を完了する。また、このとき、制御部21は、書き込みバッファ22中で更新したデータブロックを読み出しバッファ25の空き領域へも複写し蓄積する(ステップB10)。これにより、読み出しバッファ25および書き込みバッファ22の両方に、更新後のブロックのデータが残ることになる。
【0042】
一般的に、ブロックサイズ未満で更新されたデータは、再びブロックサイズ未満のサイズで更新される可能性が高い。したがって、このように、更新後のブロックデータを読み出しバッファにも格納しておくことにより、以後のブロックサイズ未満の更新処理時、更新対象領域を包含するブロックが読み出しバッファ25中に存在する可能性が高くなる。
【0043】
ここで、第1実施形態における読み出しバッファ25のデータ管理方法を説明する。
図4に、第1実施形態における読み出しバッファ25の構成を示す。図4に示したように、この読み出しバッファ25は、複数のブロックのデータを記憶するための記憶領域251を備える。また、この記憶領域251をブロック単位で参照するためのインデックス情報を備える。このインデックス情報は、対応する記憶領域251中のブロックの論理アドレスを保持する。
【0044】
データブロックを読み出しバッファ25に格納する際、読み出しバッファ25の記憶領域251に空きがない場合は、読み出しバッファ25中の記憶領域251に格納されたデータブロックのうち、たとえば参照頻度が最も低いデータブロックを削除し、その領域に格納する。この方法を実現する一例としては、読み出しバッファ25のブロックの参照頻度順に参照するためのインデックス情報を設けて、各インデックスがリスト構造252をなすようにする方法などが考えられる。
【0045】
また、各インデックス情報は、ブロックサイズの記憶領域の参照順に並んでおり、この並びは以下のように維持する。
前述の読み出しリクエスト処理時、あるいは書き込みリクエスト処理時に、読み出しバッファ25中の記憶領域251に対する読み出し参照または書き込み参照が発生した場合、その記憶領域へのインデックス情報をリスト構造252の先頭に移動させる。一方、読み出しバッファ25中の記憶領域251へのブロックデータの格納時には、リスト構造252の最後尾に位置する記憶領域251に格納するとともに、その格納後、この記憶領域へのインデックス情報をリスト構造252の先頭に移動する。また、参照頻度の低いデータブロックに対応する記憶領域が削除され、新しいデータブロックが格納された場合にも、インデックス情報のリスト構造252を変化させる。
【0046】
このように、読み出しバッファ25へのブロックの格納およびインデックス情報のリスト構造252を操作することにより、常に参照頻度の高いデータのみを読み出しバッファに格納させることが可能となる。
【0047】
これにより、読み出されたデータに対するブロックサイズ未満での更新、および過去にブロックサイズ未満で更新されたことのあるデータ対するブロックサイズ未満での更新については、読み出しのためのディスクアクセスを減らすことが可能となり、データ記憶装置20の性能低下を軽減できることになる。
【0048】
なお、この第1実施形態では、読み出しバッファ25中の記憶領域251を参照頻度順にアクセスする機能をインデックスのリスト構造252を用いて実現したが、この発明はこれに限定するものではない。
【0049】
(第2実施形態)
次に、この発明の第2実施形態を説明する。
第1実施形態では、ディスク装置24からの読み出し処理時に、常に読み出しバッファ25に読み出しデータを格納している。しかしながら、蓄積したものの参照されることなく破棄される場合も多い。
【0050】
そこで、この第2実施形態では、読み出しバッファ25中に参照されるブロックが存在する確率を高めるために、ブロックサイズ未満の更新の可能性の高いブロックだけを読み出しバッファ25に格納する。
【0051】
すなわち、読み出しバッファ25に格納するブロックの条件を、ホストシステム10からの読み出しリクエストのサイズがブロックサイズ未満であり、読み出しバッファ25中に該当ブロックのデータが存在しなかったためにディスク装置24から読みだしたデータブロックとする。これは、一度ブロックサイズ未満の読みだしが発生した場合、該当ブロックに対する更新がブロックサイズ未満の更新される可能性が高いという理由によるものである。
【0052】
これにより、参照される可能性の高いデータブロックのみを読み出しバッファ25に置くことができ、読み出しバッファ25利用効率をより高めることが可能となる。
【0053】
(第3実施形態)
次に、この発明の第3実施形態を説明する。
この第3実施形態は、第2実施形態で説明した予測方法が常に成り立つものではないということを考慮したものであり、以前の同一ブロックに対する更新サイズに基づいて、読み出しバッファ25に格納するか否かを決定するようにしたものである。
【0054】
この第3実施形態では、各論理ブロックごとに最後に実行された更新時の更新サイズがブロックサイズ未満かどうかを記録するための更新サイズ識別フラグを設ける。
【0055】
具体的には、たとえば図5に示すように、更新サイズ識別フラグをアドレス変換テーブル23に付加する。なお、更新サイズの記録方法は、これに限定するものではなく、いずれの方法を用いても差し支えない。
【0056】
この更新サイズ識別フラグは、該当ブロックについての最後の更新が、「ブロックサイズ未満」および「ブロックサイズ」のいずれであったかを示すものである。そして、この2つの状態が、ブロックサイズ未満の更新の発生の有無を予測するための要素となる。
【0057】
以下、この更新サイズ認識フラグを利用した読み出し処理および書き込み処理と読み出しバッファ25の管理とについて説明する。
初期化時、制御部21は、更新サイズ認識フラグを、すべてのアドレスについて「ブロックサイズ未満」で初期化しておく。
【0058】
読み出し処理は、第1実施形態の読み出し処理と同様に行なうが、読み出したデータの読み出しバッファ25への格納処理時、制御部21は、該当ブロックに対応する更新サイズ認識フラグを参照する。
【0059】
更新サイズ認識フラグが「ブロックサイズ未満」を示している場合、制御部21は、読み出しバッファ25に読み出したブロックのデータを格納し、リクエストで指定されるデータ領域をホストシステム10に転送することにより、この読み出しリクエスト処理を完了する。
【0060】
一方、更新サイズ認識フラグが「ブロックサイズ」を示している場合、制御部21は、読み出しバッファ25に読み出したブロックのデータを格納することなしに、読み出したデータ中のリクエストで指定されるデータ領域をホストシステム10に転送することにより、この読み出しリクエストを完了する。
【0061】
また、書き込み処理も、第1実施形態の書き込み処理と同様に行なうが、書き込みバッファ22への蓄積処理完了後、更新サイズがブロックサイズのときは、制御部21は、該当ブロックの更新サイズ認識フラグを「ブロックサイズ」とする。一方、更新サイズがブロックサイズ未満のときは、更新サイズ認識フラグを「ブロックサイズ未満」とする。
【0062】
このように、各論理ブロックに対する以前の更新サイズに基づき、ブロックサイズ未満の更新処理の発生を予測することにより、参照の可能性の高いデータブロックのみを読み出しバッファ25に格納しておくことが可能となる。
【0063】
なお、この第3実施形態では、ブロックの更新サイズを「ブロックサイズ未満」および「ブロックサイズ」の2つの値で認識しているが、この発明はこれに限定するものではなく、たとえば更新サイズそのものを数値で記録するものであっても構わない。
【0064】
(第4実施形態)
次に、この発明の第4実施形態を説明する。
この第4実施形態では、過去にブロックサイズ未満の更新処理が発生したブロックを特定するための方法として、過去にブロックサイズ未満の更新処理が発生したブロックの論理アドレスを別途記録する方法を採用する。
【0065】
図6に、この第4実施形態に係るデータ記録装置20の概略構成を示す。図6に示したように、この第4実施形態のデータ記憶装置20は、図1に示した第1実施形態のデータ記憶装置20にブロックサイズ未満更新記録領域26を加えたものである。このブロックサイズ未満更新記録領域26の構成の一例を図7に示す。図7に示したように、このブロックサイズ未満更新記録領域26は、ブロックの先頭論理アドレスを格納する。
【0066】
読み出し処理は、第1実施形態の読み出し処理と同様に行なうが、読み出したデータの読み出しバッファ25への格納処理時、制御部21は、ブロックサイズ未満更新記録領域26を探索し、該当ブロックに対応する論理アドレスが格納されているか否かを確認する。
【0067】
ブロックサイズ未満更新記録領域26に該当ブロックの論理アドレスが登録されている場合、制御部21は、読み出しバッファ25に読み出したブロックのデータを格納し、リクエストで指定されるデータ領域をホストシステム10に転送することにより、この読み出しリクエスト処理を完了する。
【0068】
一方、ブロックサイズ未満更新記録領域26に該当ブロックの論理アドレスが登録されていない場合、制御部21は、読み出しバッファ25に読み出したブロックのデータを格納することなしに、読み出したデータ中のリクエストで指定されるデータ領域をホストシステム10に転送することにより、この読み出しリクエストを完了する。
【0069】
また、書き込み処理も、第1実施形態の書き込み処理と同様に行なうが、書き込みバッファ22への蓄積処理完了後、更新サイズがブロックサイズのときは、制御部21は、該当ブロックの論理アドレスをブロックサイズ未満更新記録領域26に登録する。
【0070】
この方法によっても、各論理ブロックに対する以前の更新サイズに基づき、ブロックサイズ未満の更新処理の発生を予測することができ、参照の可能性の高いデータブロックのみを読み出しバッファ25に格納しておくことが可能となる。
【0071】
以上のように、前述した第1乃至第4実施形態のデータ記憶装置20のデータ管理方法によれば、従来問題となっていた、ブロックサイズ未満の更新処理時に実行されるディスク装置からの読み出しアクセスに伴なう性能低下を改善することが可能となる。
【0072】
【発明の効果】
以上詳述したように、この発明によれば、既存の書き込みバッファとは別にブロックデータを所定数蓄積する読み出しバッファを新たに設け、読み出しリクエスト処理時に、このリクエストで指定されたブロックデータを読み出しバッファに格納しておくようにすることにより、読み出されたデータに対するブロックサイズ未満での更新については、再度の読み出しのためのディスクアクセスを減らすことを実現するため、データ記憶装置の性能低下を軽減させることを可能とする。
【0073】
また、ブロックサイズ未満の読み出しリクエスト処理時に、このリクエストで指定された読み出し対象領域を包含するブロックデータを読み出しバッファに格納しておくようにすることにより、ブロックサイズに満たない更新リクエスト処理時のディスクアクセスを減らすことを実現し、データ記憶装置の性能低下を軽減させることを可能とする。
【0074】
また、ブロックサイズ未満の更新リクエスト処理時に、このリクエストで更新されたブロックデータを読み出しバッファに格納しておくようにすることにより、ブロックサイズ未満で更新される可能性の高いデータを包含するブロックデータを読み出しバッファに格納しておくことにより、前述と同様、ブロックサイズに満たない更新リクエスト処理時のディスクアクセスを減らすことを実現し、データ記憶装置の性能低下を軽減させることを可能とする。
【0075】
また、ブロックサイズ未満での更新有無を判定するためのフラグをブロックデータごとに管理し、読み出しリクエスト処理時に、このリクエストで読み出されたブロックデータが過去にブロックサイズ未満で更新されたことがあるか否かをフラグにより判定し、過去にブロックサイズ未満で更新されたことのあるデータブロックであると判定したときに、そのブロックデータを読み出しバッファに格納しておくようにすることにより、ブロックサイズ未満で更新される可能性の高いデータを包含するブロックデータを読み出しバッファに格納しておくことにより、前述と同様、ブロックサイズに満たない更新リクエスト処理時のディスクアクセスを減らすことを実現し、データ記憶装置の性能低下を軽減させることを可能とする。
【0076】
さらに、ブロックサイズ未満での更新処理が発生したブロックデータの論理アドレスまたは物理アドレスを管理し、読み出しリクエスト処理時に、このリクエストで読み出されたブロックデータが過去にブロックサイズ未満で更新されたことがあるか否かを前記管理する論理アドレスまたは物理アドレスにより判定し、過去にブロックサイズ未満で更新されたことのあるデータブロックであると判定したときに、そのブロックデータを前記読み出しバッファに格納しておくようにすることにより、ブロックサイズ未満で更新される可能性の高いデータを包含するブロックデータを読み出しバッファに格納しておくことにより、前述と同様、ブロックサイズに満たない更新リクエスト処理時のディスクアクセスを減らすことを実現し、データ記憶装置の性能低下を軽減させることを可能とする。
【図面の簡単な説明】
【図1】この発明の第1実施形態に係るデータ記憶装置の概略構成を示す図。
【図2】同第1実施形態のデータ記憶装置のブロック読み出し処理の動作手順を説明するためのフローチャート。
【図3】同第1実施形態のブロックサイズ未満の書き込みリクエスト処理の動作手順を説明するためのフローチャート。
【図4】同第1実施形態における読み出しバッファの構成を示す図。
【図5】同第1実施形態の更新サイズ識別フラグが付加されたアドレス変換テーブルを示す図。
【図6】同第4実施形態に係るデータ記録装置の概略構成を示す図。
【図7】同第4実施形態のブロックサイズ未満更新記録領域の構成の一例を示す図。
【図8】従来のデータ記憶装置の概略構成を示す図。
【図9】従来のデータ記憶装置のアドレス変換テーブルの構成を示す図。
【符号の説明】
10…ホストシステム、20…データ記憶装置、21…制御部、22…書き込みバッファ、23…アドレス変換バッファ、24…ディスク装置、25…読み出しバッファ、26…ブロックサイズ未満更新記録領域。
[0001]
BACKGROUND OF THE INVENTION
The present invention includes a write buffer for storing a predetermined number of block data having a predetermined block size and at least one disk device, and the predetermined number of block data stored in the write buffer is collectively stored in the disk device. BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a data storage device to be written and a data management method applied to the device, and more particularly, to a data storage device capable of reducing performance degradation when processing an update request with a block size less than that, and a data management method applied to the device. .
[0002]
[Prior art]
In recent years, computerization of information has rapidly progressed, and not only documents and graphics but also various information such as voice, still images and moving images are digitized and used. Along with this rapid digitization of information, various high-speed and large-capacity data storage devices have been developed. As one of them, a predetermined number of block data requested to be written are accumulated, The accumulated block data is written to the disk unit in a batch regardless of the original write request address, and the correspondence between the original request address (logical address) and the actually written address (physical address) is indicated by the address conversion table. There are data storage devices that manage.
[0003]
In this data storage device, since a plurality of accumulated block data are collectively written to the disk device, it is possible to suppress the generation of processing requests to the disk device, and thus it is possible to provide high-speed write processing capability. .
[0004]
Hereinafter, the operation principle of the read process and the write process in the data storage device will be described with reference to the drawings. FIG. 8 shows a schematic configuration of the data storage device 20.
[0005]
As shown in FIG. 8, the data storage device 20 includes an address conversion table 23. In this data storage device 20, the storage space provided to the host system 10 side is divided into fixed-length storage units called blocks. Note that the storage space provided to the host system 10 side and the storage space provided by the disk device 24 that actually stores data are not fixedly associated with each other, and are dynamically determined when writing to the disk area. Is. A table for managing this correspondence is the address conversion table 23.
[0006]
In the following description, a storage space provided by the data storage device 20 to the host system 10 side is expressed as a logical storage space, and address information for referring to the logical storage space is expressed as a logical address. Further, a storage space provided by the disk device 24 is expressed as a physical storage space, and address information for referring to the physical storage space is expressed as a physical address.
[0007]
FIG. 9 shows the configuration of the address conversion table 23. The address conversion table 23 stores physical addresses corresponding to logical addresses. Then, by giving an entry of the address conversion table 23 for each head logical address of each block, the physical address of the disk device in which the corresponding block is stored can be obtained only by referring to the address conversion table 23 by the logical address. Is possible.
[0008]
Here, writing to the write buffer 22 and the disk device 24 of the data storage device 20 will be described.
The write buffer 22 is a storage area for accumulating data requested to be written. The write buffer 22 is a fixed-length storage area, and the inside is logically divided into block size units. The write buffer 22 holds a logical address of each block data stored therein.
[0009]
The control unit 21 divides the data requested to be written from the host system 10 into block size units, stores the divided block size data in the free area of the write buffer 22, and also stores the corresponding logical address. The write request process at this time is completed when the write data is stored in the write buffer 22.
[0010]
In addition, when the number of stored data blocks reaches the number of blocks that can be stored in the write buffer, the control unit 21 allocates a physical storage space that is a write destination and batches the contents of the write buffer 22. To the disk unit 24. Note that the details of the allocation process of the write destination physical storage space are out of the scope of the present invention, and will be omitted.
[0011]
Then, after the writing to the disk device 24 is completed, the control unit 21 updates the address conversion table 23. This process is a data block written to the disk device 24. For each data block existing in the write buffer 22, the physical address at which the data block is written is used as the head physical address of the disk on which the data was written. The address is calculated from the position of the corresponding data block in the write buffer 22, the address conversion table 23 is referred to by the logical address corresponding to the corresponding block, and the determined physical address is registered in the entry.
[0012]
Next, reading from the write buffer 22 and the disk device 24 of the data storage device 20 will be described.
In the read process, the control unit 21 first checks whether or not the corresponding data exists in the write buffer 22. This check can be performed from the logical address of each block data in the write buffer 22. If the corresponding data exists in the write buffer 22, the control unit 21 completes this read request process by transferring the data to the host system 10 in the size specified by the request.
[0013]
On the other hand, when the corresponding data does not exist in the write buffer 22, the control unit 21 first corrects the read logical address designated by the read request to the block boundary, and uses the corrected read logical address to convert the address conversion table. 23, the physical address at which the data block including the corresponding data is stored is obtained. Thereafter, the control unit 21 reads the data of the size specified by the request from the physical address from the disk device 24 and transfers it to the host system 10 to complete the read request.
[0014]
[Problems to be solved by the invention]
Here, consider a case where the above-described data storage device 20 processes a write request smaller than the block size.
In the data storage device 20 described above, the following procedure is generally considered for the accumulation process in the write buffer 22 at the time of data update request processing with a size less than the block size.
(1) A block including the update target data area specified by the write request is read from the disk device 24.
(2) The read block is stored in the empty area of the write buffer 22.
(3) The update data is overwritten in the update target area of the block size data accumulated in the empty area of the write buffer 22.
[0015]
That is, by such a process, when updating less than the block size, a portion not to be updated in the data block is complemented by reading the current data.
[0016]
However, since such processing involves reading processing from the disk device 24, more time is required than update processing with a size that matches the block size. For this reason, if the frequency of write accesses less than the block size increases, there is a problem that the performance of the data storage device 20 is degraded.
[0017]
The present invention has been made in view of such circumstances, and is a data storage device that accumulates a predetermined number of write block data and collectively writes the accumulated block data to a disk device, and updates less than the block size It is an object of the present invention to provide a data storage device and a data management method applied to the device that can alleviate a decrease in performance of request processing.
[0020]
[Means for Solving the Problems]
  In order to achieve the aforementioned objectives,The present invention newly provides a read buffer for accumulating a predetermined number of block data separately from the existing write buffer, and reads block data including the read target area specified by this request when processing a read request smaller than the block size. It is designed to be stored in a buffer.
[0021]
The present invention is based on the premise that data read with a block size smaller than the block size is likely to be updated with the same size, that is, with a block size smaller than the block size. By storing block data containing high data in the read buffer, it is possible to reduce disk access during update request processing that is less than the block size, and to reduce performance degradation of the data storage device To do.
[0022]
Further, according to the present invention, block data updated by this request is stored in the read buffer when an update request having a block size smaller than that is processed.
[0023]
This invention is also based on the assumption that data updated with a block size smaller than the block size is likely to be updated again with the same size, i.e. less than the block size. By storing block data containing high data in the read buffer, it is possible to reduce disk access when processing update requests that are less than the block size, and reduce the performance degradation of the data storage device. It is possible to make it.
[0024]
In addition, the present invention manages a flag for determining whether there is an update below the block size for each block data, and at the time of a read request process, the block data read by this request is updated below the block size in the past. Whether or not the data block has been determined is determined by the management flag, and when it is determined that the data block has been updated with a block size smaller than the block size, the block data is stored in the read buffer. It is what I kept.
[0025]
This invention is also based on the premise that data updated in the past with a block size smaller than the block size is likely to be updated again with the same size, that is, with a block size smaller than the block size. By storing block data containing highly-possible data in the read buffer, it is possible to reduce disk access during update request processing that is less than the block size, and reduce the performance of the data storage device. Can be reduced.
[0026]
In addition, the present invention manages the logical address or physical address of block data that has undergone update processing with a block size smaller than the block size, and the block data read by this request has been updated with less than the block size in the past during read request processing. Whether or not the data block has been updated is determined based on the logical address or physical address to be managed, and when it is determined that the data block has been updated with a block size smaller than the block size, the block data is read from the read buffer. It is designed to be stored in.
[0027]
This invention is also based on the premise that data updated in the past with a block size smaller than the block size is likely to be updated again with the same size, that is, with a block size smaller than the block size. By storing block data containing highly-possible data in the read buffer, it is possible to reduce disk access during update request processing that is less than the block size, and reduce the performance of the data storage device. Can be reduced.
[0028]
DETAILED DESCRIPTION OF THE INVENTION
Embodiments of the present invention will be described below with reference to the drawings.
(First embodiment)
First, a first embodiment of the present invention will be described. FIG. 1 is a diagram showing a schematic configuration of the data storage device according to the first embodiment.
[0029]
As shown in FIG. 1, the data storage device 20 of the first embodiment is obtained by adding a read buffer 25 to the conventional data storage device 20 shown in FIG.
Like the write buffer 22, the read buffer 25 is a fixed-length storage area, and its interior is logically divided into block units. The read buffer 25 also holds the logical address of each data block stored by itself. Hereinafter, handling of the read buffer 25 will be described together with operation procedures of read processing and write processing of the data storage device 20 of the first embodiment.
[0030]
FIG. 2 is a flowchart for explaining an operation procedure of block read processing of the data storage device 20 of the first embodiment.
In the read processing according to the first embodiment, even when the read size specified by the read request from the host system 10 is smaller than the block size, the read target area is set when data is read from the disk device 24. Read the containing block in block size.
[0031]
In the read process, the control unit 21 first checks whether or not the corresponding data exists in the write buffer 22 from the logical address of the read request and the read size (step A1). This check can be performed from the logical address of each block data in the write buffer 22 as in the prior art. When the corresponding data exists in the write buffer 22 (YES in step A1), the control unit 21 transfers this data to the host system 10 in the size specified by the request (step A2), thereby reading this data. Complete the request.
[0032]
On the other hand, if the corresponding data does not exist in the write buffer 22 (NO in step A1), the control unit 21 now has the corresponding data in the read buffer 25 based on the logical address of the read request and the read size. It is inspected whether or not to perform (step A3). This check can be performed from the logical address of each block data in the read buffer 25.
[0033]
Here, when the corresponding data exists in the read buffer 25 (YES in Step A3), the control unit 21 transfers this data to the host system 10 in the size specified by the request (Step A4). Complete the read request.
[0034]
On the other hand, if the corresponding data does not exist in the read buffer 25 (NO in step A3), the control unit 21 first corrects the read logical address specified in the read request to the block boundary (step A5). By referring to the address conversion table 23 with the corrected read logical address, the physical address in which the data block including the corresponding data is stored is obtained. Then, the control unit 21 reads the block size data from the physical address, and transfers only the data in the range specified by the request from the read block size data to the host system 10 (step A6). Complete this read request. At this time, the control unit 21 stores the block size data read from the disk device 24 in a free area of the read buffer 25 (step A4).
[0035]
Next, the writing process in the first embodiment will be described.
As for the processing of a write request having a size that matches a multiple of the block size, the control unit 21 divides the request data from the host system 10 into block sizes and sequentially stores them in the free area of the write buffer 25, as in the past. And record the corresponding logical address. The write request is completed when all request data is accumulated in the write buffer 22.
[0036]
The difference between the writing process of the first embodiment and the conventional writing process is a writing request process with a block size smaller than that, and the processing procedure at this time will be described with reference to FIG.
[0037]
First, the control unit 21 corrects the write destination logical address specified by the write request to the block boundary (step B1). Next, the control unit 21 checks whether or not a data block including the update target area exists in the write buffer 22 (step B2). This check can be performed from the logical address of each block data in the write buffer 22 as in the case of the write process that matches a multiple of the block size.
[0038]
When a data block including the update target area exists in the write buffer 22 (YES in step B2), the control unit 21 sends update data to the update target area of the corresponding data block in the write buffer 22 as in the conventional case. Overwriting (step B3), the write request process is completed.
[0039]
On the other hand, when the data block including the update target area does not exist in the write buffer 22 (NO in Step B2), the control unit 21 determines whether or not the data block including the update target area exists in the read buffer 25 this time. (Step B4).
[0040]
When the data block including the update target area exists in the read buffer 25 (YES in Step B4), the control unit 21 overwrites the update data in the update target area of the corresponding data block (Step B5). Thereafter, the write request is completed by copying and accumulating the corresponding data block from the read buffer 25 to the empty area of the write buffer 22 (step B6). As a result, the updated block data remains in both the read buffer 25 and the write buffer 22.
[0041]
On the other hand, if the data block including the update target area does not exist in the write buffer 22 or the read buffer 25 (NO in step B4), the control unit 21 performs the update specified by the write request as in the conventional case. A block including the target data area is read from the disk device 24 (step B7), the read data is stored in a free area of the write buffer 22 (step B8), and then the update data is overwritten (step B9). Complete this request processing. At this time, the control unit 21 also copies and stores the data block updated in the write buffer 22 in the empty area of the read buffer 25 (step B10). As a result, the updated block data remains in both the read buffer 25 and the write buffer 22.
[0042]
In general, there is a high possibility that data updated with a size smaller than the block size is updated again with a size smaller than the block size. Therefore, by storing the updated block data also in the read buffer in this way, there is a possibility that a block including the update target area exists in the read buffer 25 at the time of update processing smaller than the block size thereafter. Becomes higher.
[0043]
Here, a data management method of the read buffer 25 in the first embodiment will be described.
FIG. 4 shows the configuration of the read buffer 25 in the first embodiment. As shown in FIG. 4, the read buffer 25 includes a storage area 251 for storing a plurality of blocks of data. In addition, index information for referring to the storage area 251 in units of blocks is provided. This index information holds the logical address of the block in the corresponding storage area 251.
[0044]
When the data block is stored in the read buffer 25, if there is no free space in the storage area 251 of the read buffer 25, for example, the data block having the lowest reference frequency among the data blocks stored in the storage area 251 in the read buffer 25 Is deleted and stored in that area. As an example for realizing this method, a method of providing index information for reference in the order of reference frequencies of blocks in the read buffer 25 so that each index forms a list structure 252 can be considered.
[0045]
Each index information is arranged in the reference order of the block size storage areas, and this arrangement is maintained as follows.
When a read reference or a write reference to the storage area 251 in the read buffer 25 occurs during the read request process or the write request process, the index information for the storage area is moved to the head of the list structure 252. On the other hand, when block data is stored in the storage area 251 in the read buffer 25, it is stored in the storage area 251 located at the end of the list structure 252, and after the storage, the index information for this storage area is stored in the list structure 252. Move to the beginning of. The index information list structure 252 is also changed when a storage area corresponding to a data block with a low reference frequency is deleted and a new data block is stored.
[0046]
In this way, by storing the block in the read buffer 25 and operating the index information list structure 252, it is possible to always store only frequently referenced data in the read buffer.
[0047]
As a result, disk access for reading can be reduced for updates that are less than the block size for the read data and updates that are less than the block size for data that has been updated less than the block size in the past. As a result, the performance degradation of the data storage device 20 can be reduced.
[0048]
In the first embodiment, the function of accessing the storage area 251 in the read buffer 25 in the order of reference frequency is realized using the index list structure 252. However, the present invention is not limited to this.
[0049]
(Second Embodiment)
Next, a second embodiment of the present invention will be described.
In the first embodiment, read data is always stored in the read buffer 25 during read processing from the disk device 24. However, there are many cases where accumulated data is discarded without being referred to.
[0050]
Therefore, in this second embodiment, in order to increase the probability that there is a block to be referred to in the read buffer 25, only the blocks with a high possibility of updating that are smaller than the block size are stored in the read buffer 25.
[0051]
That is, the condition of the block to be stored in the read buffer 25 is read from the disk device 24 because the size of the read request from the host system 10 is less than the block size and the data of the corresponding block does not exist in the read buffer 25. Data block. This is because, once reading less than the block size occurs, there is a high possibility that the update for the corresponding block is updated to be less than the block size.
[0052]
As a result, only data blocks that are highly likely to be referenced can be placed in the read buffer 25, and the utilization efficiency of the read buffer 25 can be further increased.
[0053]
(Third embodiment)
Next, a third embodiment of the present invention will be described.
This third embodiment considers that the prediction method described in the second embodiment is not always valid, and whether or not to store in the read buffer 25 based on the previous update size for the same block. Is to decide.
[0054]
In the third embodiment, an update size identification flag for recording whether or not the update size at the time of the last update executed for each logical block is less than the block size is provided.
[0055]
Specifically, for example, an update size identification flag is added to the address conversion table 23 as shown in FIG. The update size recording method is not limited to this, and any method may be used.
[0056]
This update size identification flag indicates whether the last update for the block was “less than block size” or “block size”. These two states are elements for predicting whether or not an update smaller than the block size has occurred.
[0057]
Hereinafter, read processing and write processing using the update size recognition flag and management of the read buffer 25 will be described.
At the time of initialization, the control unit 21 initializes the update size recognition flag with “less than block size” for all addresses.
[0058]
The read process is performed in the same manner as the read process of the first embodiment. However, when the read data is stored in the read buffer 25, the control unit 21 refers to the update size recognition flag corresponding to the corresponding block.
[0059]
When the update size recognition flag indicates “less than block size”, the control unit 21 stores the read block data in the read buffer 25 and transfers the data area specified by the request to the host system 10. This read request processing is completed.
[0060]
On the other hand, when the update size recognition flag indicates “block size”, the control unit 21 stores the data of the read block in the read buffer 25 and stores the data area specified by the request in the read data. Is transferred to the host system 10 to complete this read request.
[0061]
Further, the writing process is performed in the same manner as the writing process of the first embodiment. However, after the accumulation process in the write buffer 22 is completed, when the update size is the block size, the control unit 21 updates the update size recognition flag of the corresponding block. Is the “block size”. On the other hand, when the update size is less than the block size, the update size recognition flag is set to “less than block size”.
[0062]
In this way, by predicting the occurrence of update processing less than the block size based on the previous update size for each logical block, it is possible to store only data blocks that are highly likely to be referenced in the read buffer 25. It becomes.
[0063]
In the third embodiment, the block update size is recognized by two values of “less than block size” and “block size”. However, the present invention is not limited to this. For example, the update size itself May be recorded numerically.
[0064]
(Fourth embodiment)
Next explained is the fourth embodiment of the invention.
In the fourth embodiment, a method of separately recording the logical address of a block for which update processing less than the block size has occurred in the past is used as a method for specifying a block for which update processing less than the block size has occurred in the past. .
[0065]
FIG. 6 shows a schematic configuration of the data recording apparatus 20 according to the fourth embodiment. As shown in FIG. 6, the data storage device 20 of the fourth embodiment is obtained by adding an update recording area 26 less than the block size to the data storage device 20 of the first embodiment shown in FIG. An example of the configuration of the update recording area 26 smaller than the block size is shown in FIG. As shown in FIG. 7, the update recording area 26 less than the block size stores the head logical address of the block.
[0066]
The read process is performed in the same manner as the read process of the first embodiment. However, when the read data is stored in the read buffer 25, the control unit 21 searches the update recording area 26 less than the block size and corresponds to the corresponding block. Check whether the logical address to be stored is stored.
[0067]
When the logical address of the corresponding block is registered in the update recording area 26 less than the block size, the control unit 21 stores the read block data in the read buffer 25 and stores the data area specified by the request in the host system 10. This read request processing is completed by transferring the data.
[0068]
On the other hand, when the logical address of the corresponding block is not registered in the update recording area 26 less than the block size, the control unit 21 does not store the read block data in the read buffer 25, and does not store the request in the read data. This read request is completed by transferring the designated data area to the host system 10.
[0069]
The write process is also performed in the same manner as the write process of the first embodiment. However, after the accumulation process in the write buffer 22 is completed, when the update size is a block size, the control unit 21 blocks the logical address of the block. It is registered in the update recording area 26 less than the size.
[0070]
Also with this method, it is possible to predict the occurrence of update processing less than the block size based on the previous update size for each logical block, and store only data blocks that are highly likely to be referenced in the read buffer 25. Is possible.
[0071]
As described above, according to the data management method of the data storage device 20 of the first to fourth embodiments described above, read access from the disk device, which is executed at the time of update processing less than the block size, which has been a problem in the past. It is possible to improve the performance degradation caused by.
[0072]
【The invention's effect】
As described above in detail, according to the present invention, a read buffer for accumulating a predetermined number of block data is newly provided separately from the existing write buffer, and the block data specified by this request is read buffer when the read request is processed. In order to reduce the disk access for re-reading the update of the read data with less than the block size, the performance of the data storage device is reduced. It is possible to make it.
[0073]
In addition, when processing read requests smaller than the block size, block data including the read target area specified by this request is stored in the read buffer, so that the disk at the time of update request processing less than the block size is processed. It is possible to reduce the access and reduce the performance degradation of the data storage device.
[0074]
In addition, when processing an update request smaller than the block size, block data updated by this request is stored in the read buffer, so that block data containing data that is likely to be updated smaller than the block size is included. Is stored in the read buffer, as described above, it is possible to reduce disk access during update request processing that does not satisfy the block size, and to reduce the performance degradation of the data storage device.
[0075]
In addition, a flag for determining whether there is an update below the block size is managed for each block data, and at the time of the read request processing, the block data read by this request has been updated below the block size in the past. The block size is determined by storing the block data in the read buffer when it is determined that the data block has been updated with a flag size smaller than the block size in the past. By storing block data including data that is likely to be updated at less than the maximum in the read buffer, it is possible to reduce disk access when processing update requests that are less than the block size, as described above, and It is possible to reduce the performance degradation of the storage device.
[0076]
In addition, the logical address or physical address of the block data that has undergone update processing with less than the block size is managed, and during the read request processing, the block data read by this request has been updated with less than the block size in the past. It is determined whether or not there is a logical address or a physical address to be managed, and when it is determined that the data block has been updated with a block size smaller than the block size, the block data is stored in the read buffer. By storing the block data including the data that is likely to be updated with less than the block size in the read buffer, the disk at the time of the update request processing that is less than the block size as described above. Realize reduced access and data storage It makes it possible to reduce the performance degradation of the device.
[Brief description of the drawings]
FIG. 1 is a diagram showing a schematic configuration of a data storage device according to a first embodiment of the invention.
FIG. 2 is an exemplary flowchart for explaining an operation procedure of a block read process of the data storage device according to the first embodiment;
FIG. 3 is a flowchart for explaining an operation procedure of a write request process with a block size less than that of the first embodiment;
FIG. 4 is a diagram showing a configuration of a read buffer in the first embodiment.
FIG. 5 is a view showing an address conversion table to which an update size identification flag is added according to the first embodiment;
FIG. 6 is a diagram showing a schematic configuration of a data recording apparatus according to the fourth embodiment.
FIG. 7 is a diagram showing an example of the configuration of an update recording area less than a block size according to the fourth embodiment.
FIG. 8 is a diagram showing a schematic configuration of a conventional data storage device.
FIG. 9 is a diagram showing a configuration of an address conversion table of a conventional data storage device.
[Explanation of symbols]
DESCRIPTION OF SYMBOLS 10 ... Host system, 20 ... Data storage device, 21 ... Control part, 22 ... Write buffer, 23 ... Address conversion buffer, 24 ... Disk apparatus, 25 ... Read buffer, 26 ... Update recording area less than block size.

Claims (12)

所定のブロックサイズをもつブロックデータを所定数蓄積する書き込みバッファと少なくとも一つ以上のディスク装置とを備え、前記書き込みバッファに蓄積された所定数のブロックデータを一括して前記ディスク装置に書き込むデータ記憶装置において、
前記ブロックデータを所定数蓄積する読み出しバッファと、
み出しリクエスト処理時、この読み出しリクエストのサイズが前記所定のブロックサイズ未満か否かを判定し、前記所定のブロックサイズ未満であった場合、前記ディスク装置から読み出した、前記読み出しリクエストで指定された読み出し対象領域を包含するブロックデータを前記読み出しバッファに格納するデータ管理手段と、
を具備することを特徴とするデータ記憶装置。
A data storage comprising a write buffer for storing a predetermined number of block data having a predetermined block size and at least one disk device, wherein the predetermined number of block data stored in the write buffer is collectively written to the disk device In the device
A read buffer for storing a predetermined number of the block data;
When the request processing out read, the size of the read request to determine whether less than the predetermined block size, if the less than the predetermined block size, the read from the disk device, designated by the read request and data management means for storing includes block data to the read buffer read target area,
A data storage device comprising:
所定のブロックサイズをもつブロックデータを所定数蓄積する書き込みバッファと少なくとも一つ以上のディスク装置とを備え、前記書き込みバッファに蓄積された所定数のブロックデータを一括して前記ディスク装置に書き込むデータ記憶装置において、
前記ブロックデータを所定数蓄積する読み出しバッファと、
新リクエスト処理時、この更新リクエストのサイズが前記所定のブロックサイズ未満か否かを判定し、前記所定のブロックサイズ未満であった場合、前記更新リクエストで更新されたブロックデータを前記読み出しバッファに格納するデータ管理手段と、
を具備することを特徴とするデータ記憶装置。
A data storage comprising a write buffer for storing a predetermined number of block data having a predetermined block size and at least one disk device, wherein the predetermined number of block data stored in the write buffer is collectively written to the disk device In the device
A read buffer for storing a predetermined number of the block data;
Further when the new request processing, the size of the update request is determined whether less than the predetermined block size, if the less than the predetermined block size, the block data that is updated by the update request to the read buffer Data management means for storing;
A data storage device comprising:
所定のブロックサイズをもつブロックデータを所定数蓄積する書き込みバッファと少なくとも一つ以上のディスク装置とを備え、前記書き込みバッファに蓄積された所定数のブロックデータを一括して前記ディスク装置に書き込むデータ記憶装置において、A data storage comprising a write buffer for storing a predetermined number of block data having a predetermined block size and at least one disk device, wherein the predetermined number of block data stored in the write buffer is collectively written to the disk device In the device
前記ブロックデータを所定数蓄積する読み出しバッファと、A read buffer for storing a predetermined number of the block data;
読み出しリクエスト処理時、このリクエストで読み出されたブロックデータについての最後の更新が前記所定のブロックサイズ未満であったか否かを判定し、前記所定のブロックサイズ未満であった場合、前記読み出されたブロックデータを前記読み出しバッファへ格納するデータ管理手段と、At the time of read request processing, it is determined whether or not the last update for the block data read by this request is less than the predetermined block size. If the update is less than the predetermined block size, the read Data management means for storing block data in the read buffer;
を具備することを特徴とするデータ記憶装置。A data storage device comprising:
所定のブロックサイズをもつブロックデータを所定数蓄積する書き込みバッファと少なくとも一つ以上のディスク装置とを備え、前記書き込みバッファに蓄積された所定数のブロックデータを一括して前記ディスク装置に書き込むデータ記憶装置において、
前記ブロックデータを所定数蓄積する読み出しバッファと、
読み出しリクエスト処理時、このリクエストで読み出されたブロックデータが過去に前記所定のブロックサイズ未満で更新されたことがあるか否かを判定し、過去に前記所定のブロックサイズ未満で更新されたことがあった場合、前記読み出されたブロックデータを前記読み出しバッファへ格納するデータ管理手段と、
を具備することを特徴とするデータ記憶装置。
A data storage comprising a write buffer for storing a predetermined number of block data having a predetermined block size and at least one disk device, wherein the predetermined number of block data stored in the write buffer is collectively written to the disk device In the device
A read buffer for storing a predetermined number of the block data;
At the time of read request processing, it is determined whether or not the block data read by this request has been updated below the predetermined block size in the past, and has been updated below the predetermined block size in the past If there is, data management means for storing the read block data in the read buffer;
A data storage device comprising:
前記データ管理手段は、ブロックサイズ未満での更新有無を判定するためのフラグを前記ブロックデータごとに管理する請求項記載のデータ記憶装置。The data storage device according to claim 4 , wherein the data management unit manages a flag for determining whether or not an update is less than a block size for each block data. 前記データ管理手段は、ブロックサイズ未満での更新処理が発生したブロックデータの論理アドレスまたは物理アドレスを管理する請求項記載のデータ記憶装置。5. The data storage device according to claim 4 , wherein the data management means manages a logical address or a physical address of block data that has undergone update processing with a block size smaller than the block size. 所定のブロックサイズをもつブロックデータを所定数蓄積する書き込みバッファと、前記ブロックデータを所定数蓄積する読み出しバッファと、少なくとも一つ以上のディスク装置とを備え、前記書き込みバッファに蓄積された所定数のブロックデータを一括して前記ディスク装置に書き込むデータ記憶装置のデータ管理方法であって、
み出しリクエスト処理時、この読み出しリクエストのサイズが前記所定のブロックサイズ未満か否かを判定し、前記所定のブロックサイズ未満であった場合、前記ディスク装置から読み出した、前記読み出しリクエストで指定された読み出し対象領域を包含するブロックデータ前記読み出しバッファに格納することを特徴とするデータ管理方法。
A write buffer for storing a predetermined number of block data having a predetermined block size; a read buffer for storing a predetermined number of the block data; and at least one or more disk devices, wherein a predetermined number of data stored in the write buffer A data management method for a data storage device that collectively writes block data to the disk device,
When the request processing out read, the size of the read request to determine whether less than the predetermined block size, if the less than the predetermined block size, the read from the disk device, designated by the read request data management method characterized by storing a target readout area encompassing the block data to the read buffer has.
所定のブロックサイズをもつブロックデータを所定数蓄積する書き込みバッファと、前記ブロックデータを所定数蓄積する読み出しバッファと、少なくとも一つ以上のディスク装置とを備え、前記書き込みバッファに蓄積された所定数のブロックデータを一括して前記ディスク装置に書き込むデータ記憶装置のデータ管理方法であって、
新リクエスト処理時、この更新リクエストのサイズが前記所定のブロックサイズ未満か否かを判定し、前記所定のブロックサイズ未満であった場合、前記更新リクエストで更新されたブロックデータを前記読み出しバッファに格納することを特徴とするデータ管理方法。
A write buffer for storing a predetermined number of block data having a predetermined block size; a read buffer for storing a predetermined number of the block data; and at least one or more disk devices, wherein a predetermined number of data stored in the write buffer A data management method for a data storage device that collectively writes block data to the disk device,
Further when the new request processing, the size of the update request is determined whether less than the predetermined block size, if the less than the predetermined block size, the block data that is updated by the update request to the read buffer A data management method characterized by storing.
所定のブロックサイズをもつブロックデータを所定数蓄積する書き込みバッファと、前記ブロックデータを所定数蓄積する読み出しバッファと、少なくとも一つ以上のディスク装置とを備え、前記書き込みバッファに蓄積された所定数のブロックデータを一括して前記ディスク装置に書き込むデータ記憶装置のデータ管理方法であって、A write buffer for storing a predetermined number of block data having a predetermined block size; a read buffer for storing a predetermined number of the block data; and at least one or more disk devices, wherein a predetermined number of data stored in the write buffer A data management method for a data storage device that collectively writes block data to the disk device,
読み出しリクエスト処理時、このリクエストで読み出されたブロックデータについての最後の更新が前記所定のブロックサイズ未満であったか否かを判定し、前記所定のブロックサイズ未満であった場合、前記読み出されたブロックデータを前記読み出しバッファへ格納することを特徴とするデータ管理方法。At the time of read request processing, it is determined whether or not the last update for the block data read by this request is less than the predetermined block size. If the update is less than the predetermined block size, the read A data management method comprising storing block data in the read buffer.
所定のブロックサイズをもつブロックデータを所定数蓄積する書き込みバッファと、前記ブロックデータを所定数蓄積する読み出しバッファと、少なくとも一つ以上のディスク装置とを備え、前記書き込みバッファに蓄積された所定数のブロックデータを一括して前記ディスク装置に書き込むデータ記憶装置のデータ管理方法であって、
読み出しリクエスト処理時、このリクエストで読み出されたブロックデータが過去に前記所定のブロックサイズ未満で更新されたことがあるか否かを判定し、過去に前記所定のブロックサイズ未満で更新されたことがあった場合、前記読み出されたブロックデータを前記読み出しバッファへ格納することを特徴とするデータ管理方法。
A write buffer for storing a predetermined number of block data having a predetermined block size; a read buffer for storing a predetermined number of the block data; and at least one or more disk devices, wherein a predetermined number of data stored in the write buffer A data management method for a data storage device that collectively writes block data to the disk device,
At the time of read request processing, it is determined whether or not the block data read by this request has been updated below the predetermined block size in the past, and has been updated below the predetermined block size in the past When there is, the data management method characterized by storing the read block data in the read buffer.
所定のブロックサイズをもつブロックデータを所定数蓄積する書き込みバッファと、前記ブロックデータを所定数蓄積する読み出しバッファと、少なくとも一つ以上のディスク装置とを備え、前記書き込みバッファに蓄積された所定数のブロックデータを一括して前記ディスク装置に書き込むデータ記憶装置のデータ管理方法であって、
前記所定のブロックサイズ未満での更新有無を判定するためのフラグを前記ブロックデータごとに管理し、
読み出しリクエスト処理時、このリクエストで読み出されたブロックデータが過去に前記所定のブロックサイズ未満で更新されたことがあるか否かを前記管理するフラグにより判定し、過去に前記所定のブロックサイズ未満で更新されたことがあった場合、前記読み出されたブロックデータを前記読み出しバッファへ格納することを特徴とするデータ管理方法。
A write buffer for storing a predetermined number of block data having a predetermined block size; a read buffer for storing a predetermined number of the block data; and at least one or more disk devices, wherein a predetermined number of data stored in the write buffer A data management method for a data storage device that collectively writes block data to the disk device,
Managing a flag for determining whether or not there is an update with less than the predetermined block size for each block data;
At the time of read request processing, it is determined by the management flag whether or not the block data read by this request has been updated with less than the predetermined block size in the past, and less than the predetermined block size in the past When the data has been updated in step (b) , the read block data is stored in the read buffer.
所定のブロックサイズをもつブロックデータを所定数蓄積する書き込みバッファと、前記ブロックデータを所定数蓄積する読み出しバッファと、少なくとも一つ以上のディスク装置とを備え、前記書き込みバッファに蓄積された所定数のブロックデータを一括して前記ディスク装置に書き込むデータ記憶装置のデータ管理方法であって、
前記所定のブロックサイズ未満での更新処理が発生したブロックデータの論理アドレスまたは物理アドレスを管理し、
読み出しリクエスト処理時、このリクエストで読み出されたブロックデータが過去に前記所定のブロックサイズ未満で更新されたことがあるか否かを前記管理する論理アドレスまたは物理アドレスにより判定し、過去に前記所定のブロックサイズ未満で更新されたことがあった場合、前記読み出されたブロックデータを前記読み出しバッファへ格納することを特徴とするデータ管理方法。
A write buffer for storing a predetermined number of block data having a predetermined block size; a read buffer for storing a predetermined number of the block data; and at least one or more disk devices, wherein a predetermined number of data stored in the write buffer A data management method for a data storage device that collectively writes block data to the disk device,
Managing the logical address or physical address of the block data that has undergone the update process with less than the predetermined block size;
During read request processing, as judged by a logical address or a physical address block data read out to the management whether to have been updated by the less than predetermined block size in the past in this request, the predetermined past A data management method comprising storing the read block data in the read buffer when the data has been updated with a block size smaller than the block size.
JP13044398A 1998-05-13 1998-05-13 Data storage device and data management method Expired - Lifetime JP4197547B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP13044398A JP4197547B2 (en) 1998-05-13 1998-05-13 Data storage device and data management method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP13044398A JP4197547B2 (en) 1998-05-13 1998-05-13 Data storage device and data management method

Publications (2)

Publication Number Publication Date
JPH11327978A JPH11327978A (en) 1999-11-30
JP4197547B2 true JP4197547B2 (en) 2008-12-17

Family

ID=15034375

Family Applications (1)

Application Number Title Priority Date Filing Date
JP13044398A Expired - Lifetime JP4197547B2 (en) 1998-05-13 1998-05-13 Data storage device and data management method

Country Status (1)

Country Link
JP (1) JP4197547B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11461010B2 (en) 2015-07-13 2022-10-04 Samsung Electronics Co., Ltd. Data property-based data placement in a nonvolatile memory device
US10509770B2 (en) 2015-07-13 2019-12-17 Samsung Electronics Co., Ltd. Heuristic interface for enabling a computer device to utilize data property-based data placement inside a nonvolatile memory device

Also Published As

Publication number Publication date
JPH11327978A (en) 1999-11-30

Similar Documents

Publication Publication Date Title
US7447836B2 (en) Disk drive storage defragmentation system
US6779088B1 (en) Virtual uncompressed cache size control in compressed memory systems
US6216199B1 (en) Hardware mechanism for managing cache structures in a data storage system
CN106547476B (en) Method and apparatus for data storage system
JP3898782B2 (en) Information recording / reproducing device
US20090327621A1 (en) Virtual memory compaction and compression using collaboration between a virtual memory manager and a memory manager
US20080059728A1 (en) Systems and methods for masking latency of memory reorganization work in a compressed memory system
JPH09259033A (en) Buffer write method
CN1476562A (en) Posted write-through cache for flash memory
US20090327624A1 (en) Information processing apparatus, controlling method thereof, and program
JP4036992B2 (en) Cache control apparatus and method for dynamically managing data between cache modules
US11341042B2 (en) Storage apparatus configured to manage a conversion table according to a request from a host
JP2019028954A (en) Storage control apparatus, program, and deduplication method
US6782444B1 (en) Digital data storage subsystem including directory for efficiently providing formatting information for stored records
US20060117142A1 (en) Disk array device, method for controlling the disk array device and storage system
EP0667579A1 (en) Cache for optical storage device
JP4727800B2 (en) Digital data subsystem including a directory for efficiently providing format information about stored records
US5900009A (en) System and method for accessing records in a cache slot which are associated with a current owner storage element or at least one previous owner storage element
JP4197547B2 (en) Data storage device and data management method
JPH08137754A (en) Disk cache device
KR20110098279A (en) Nand flash memory system and method for performing garbage collection based on locality of buffer
JPH08263380A (en) Disk cache control system
US7421536B2 (en) Access control method, disk control unit and storage apparatus
JP3111912B2 (en) Disk cache control method
US20090006761A1 (en) Cache pollution avoidance

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050511

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080624

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080822

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

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

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

Free format text: PAYMENT UNTIL: 20111010

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20111010

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20111010

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20121010

Year of fee payment: 4