JP2007011523A - データの先読み方法及び計算機システム - Google Patents

データの先読み方法及び計算機システム Download PDF

Info

Publication number
JP2007011523A
JP2007011523A JP2005189159A JP2005189159A JP2007011523A JP 2007011523 A JP2007011523 A JP 2007011523A JP 2005189159 A JP2005189159 A JP 2005189159A JP 2005189159 A JP2005189159 A JP 2005189159A JP 2007011523 A JP2007011523 A JP 2007011523A
Authority
JP
Japan
Prior art keywords
data
read
file
storage device
computer system
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.)
Withdrawn
Application number
JP2005189159A
Other languages
English (en)
Inventor
Moal Damien Le
ダミエン レモアル
Mika Mizutani
美加 水谷
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 JP2005189159A priority Critical patent/JP2007011523A/ja
Priority to US11/325,024 priority patent/US20070005904A1/en
Publication of JP2007011523A publication Critical patent/JP2007011523A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • G06F3/0676Magnetic disk device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6026Prefetching based on access pattern detection, e.g. stride based prefetch

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】
断片化したデータに対し先読みを実行しても、後続しない物理ブロックをキャッシュするので、ヒットせず先読みが無駄となる。ファイル・アクセスがシーケンシャルであっても、アクセスの時間間隔が長い場合キャシュされたデータが他の読出し動作によりバッファ・メモリから排出されるので、先読みデータが無駄となる。
【解決手段】
断片化箇所の情報を、記憶装置の入出力制御回路から取出し、ファイルシステムの管理情報に含める。所定の管理情報をインターフェイスの読出しコマンドに追加する。この管理情報は、先読みすべきか否か、先読みデータの量の指定、その他先読み処理を制御するために使用される。アプリケーションは、ファイルへのランダムアクセス又は時間に基づくアクセスについて、記憶装置が効率的なアクセスを行うよう、先読みを用いるか否か指定する。
【選択図】 図1

Description

本発明は、回転型記録媒体を用いた記憶装置におけるデータの先読み技術に係り、特に、記憶装置内の入出力制御回路(例えば、Hard Disk Controller)及びインターフェイスによる先読み技術に関する。
磁気ディスク装置その他回転型記録媒体を用いた記憶装置は、内部にバッファ・メモリを有し、ホストと当該記憶装置との間で、データへのアクセスを円滑・高速としている。例えば、記憶装置からホストへデータを送出するとき(読出し動作)は、最初にデータを記憶装置の記憶空間から内部のバッファ・メモリに転送し、次に、このデータをホストへ転送する。この方法は、バイト単位で記憶装置にアクセスした従前の方法と比較して、記憶装置のアクセスレートを大幅に向上させた。バッファ・メモリを使用すると、多量に使用されるデータへのアクセスを高速化するためのデータ・キャッシングを実現できた。これは読出し動作の性能を向上させるため、データの先読み機能の一種といえる。
データの先読み機能は、ホストが記憶装置に出した読出しコマンドにより起動し、記憶装置上、この読出しコマンドで要求されたデータの直後のデータを記憶装置のバッファ・メモリに格納(キャッシュ)することで達成される。ホストは、記憶装置のバッファ・メモリ中のデータを利用できるときは(キャッシュ・ヒット)、記憶装置の記憶空間(回転型記録媒体)へシークする際のオーバーヘッドと、回転型記録媒体から記憶装置のバッファ・メモリへのデータ転送とが回避される。ホストが数キロバイトの小さい単位で記憶装置にアクセスしても、まるで数百キロバイトの大きい単位で記憶装置にアクセスするかのように記憶装置が振る舞うこととなる。
データの先読みは、メモリ・ページングを用いて仮想記憶を実施するオペレーティングシステムにとっても、大きな恩恵を与える。
実際に記憶装置からデータを受け取るのに使用される、仮想メモリ・バッファを構成している物理メモリ・ページは、物理メモリ中では連続していないことがある。このため、回転型記録媒体から記憶装置への読出し動作を、さらに小さい幾つかの動作(仮想メモリ・バッファのそれぞれの物理ページごと)に分割する必要がある。
このようなアクセス動作をする記憶装置において、データの先読みを有効にする場合には、このような区分動作は、さらに大きいサイズの非区分動作とほぼ同じくらい速く処理できる。
仮想記憶の取り扱いだけでなく、ファイルのシーケンシャル・アクセスも、データの先読みにより大きな恩恵を受け得る。小さい塊(chunk)のデータで、順次、ファイルにアクセスすることにより、より大きいブロックで、このファイルにアクセスした場合と同じ総合アクセスレートが得られることもある。
データの先読み機能が多くの場合に記憶装置のアクセス性能を向上させる一方、オーバーヘッドとなることもある。一例を挙げると、論理的に連続したデータが、回転型記録媒体上で物理的に連続しないときである。つまり、ファイルが断片的に媒体上に存在する場合である。
ファイルシステムは、通常、記憶装置の記憶空間を論理的にブロックに分割することで記憶装置上のファイルを管理している。これらのブロックをファイルに割り当てて、データを保存する。したがってファイルが、論理的には連続データ記憶空間であっても、入出力制御回路が記憶媒体上の不連続の物理ブロックに、この記憶空間を割り当てることがある。
このため記憶媒体上の断片化したデータを検索すると、記憶装置は、いくつかの不連続物理ブロックにわたるI/O動作を余儀なくされる。断片化したデータに対し先読みを実行しても、後続しない物理ブロックをキャッシュするので、ヒットせず無駄である。このファイルへ後続するいかなるシーケンシャル・アクセスに対しても、ヒットしないからである。
先読みを無駄にする別の問題は、時間情報に基づいてファイルにアクセスするときに生じる。ファイル・アクセスがシーケンシャルであっても、ファイル中の2つの読出し動作の時間間隔が長い場合には、キャシュされたデータが他のファイル中の他の読出し動作によってバッファ・メモリから排除される可能性があるので、先読みデータが無駄となる。ファイルへのアクセスがシーケンシャルでない場合も、キャシュされたデータがバッファ・メモリから排除される可能性があるので、記憶装置の先読み処理が無駄となり得る。
従来の記憶装置の入出力制御回路又はインターフェイスは、通常、読出し動作(複数の読出し命令から成る)ごとに、先読みの有効又は無効、先読みデータ量を設定するのみで、読出し命令ごとの詳細な先読み機能の設定は不可能であった。
従って、複数ストリームを記録・再生するような、先読み条件の混在するケース、一例として、ビデオデータ・レートで記憶装置にあるビデオデータを検索し、同時に、保存されたビデオ・コンテンツ上の情報を管理するためにデータベースを使用するようなビデオ処理アプリケーション、を実行するとデータベースへのアクセスは先読みにより向上させることができるが、記憶装置の高負荷の下でのビデオ検索に対しては、先読みはほとんど無駄となる。
記憶装置からページ単位で読み出したファイルを記憶するバッファを有するファイル管理装置において、ファイルの少なくとも一部のページについて、同時に読み出すべきページ群の情報を記憶する先読み制御テーブルと、先読み制御テーブルの内容に基づき、前記ページ群単位で先読み制御を行う先読み制御手段を有する公開された技術として、特許文献1記載のものがある。
大きなファイルに対し大きなテーブルを必要とする。また、ある程度の時間を経て読み書き命令を受けると、先読みが無駄となる。
先読みのためのリード命令総数を削減して、先読み処理を効率良く行うことができるデータ処理技術を公開するものとして、特許文献2記載のものがある。しかし上記の複数ストリームを記録・再生するような、先読み条件の混在するケースでは、先読みの効果は十分でない。
特開平8−63378号公報 特開2003−84921号公報
1)断片化した物理ブロックのデータに対し先読みを実行しても、後続しない物理ブロックをキャッシュするので、ヒットせず先読みが無駄となること。
2)ファイル・アクセスがシーケンシャルであっても、そのシーケンシャルな2つの読出し動作の時間間隔が長い場合には、キャシュされたデータがファイル中の他の読出し動作によりバッファ・メモリから排出される可能性があるので、先読みデータが無駄となること。
物理ブロックが断片化している箇所の情報を、記憶装置の入出力制御回路から取出し、ファイルシステムの管理情報(メタデータ)に含める。
所定の管理情報を、インターフェイスの読出しコマンドに追加する。この管理情報は、読出しコマンドと一緒に先読みを処理すべきか否か、先読みされるデータの量の指定、その他先読みを制御するために使用される(read-ahead method)。
記憶装置上の物理ブロックの連続性に応じて、また、アプリケーションによるファイルの論理ブロックへのアクセス・パターンに応じて、記憶装置が能動的に先読み機能を制御できる。
ファイルシステムの管理情報を検出すれば、断片化している不連続な物理ブロックへアクセスするために先読み動作が無駄となることは、容易に検出できる。
ファイルを取り扱うアプリケーションは、ファイルへのランダムアクセス、又は、時間に基づくファイル・アクセスについて、記憶装置が最も効率的なアクセス方法を採用するよう(先読みを用いるか否か)指定できる。
本発明に係る読出しコマンドを持いれば、従来の読出しコマンド処理により制御される機械的先読み機能とは異なり、不連続な物理ブロックのアクセスに対する無駄な先読み処理を排除できるので、記憶装置の負荷を軽減することができる。
このように無駄な先読みを減らすことにより、先読みを用いて読出しコマンドを処理するたびに記憶装置のバッファ・メモリ中の記憶領域を大きくする必要もなくなる。したがって、他の読出しコマンドの処理の間に検索されるデータのバッファ・メモリのキャッシュ・ヒットが高められる。
ランダムに、又は、時間に基づいてアクセスされるファイルは、先読みを用いずにアクセスでき、したがって、他のファイル・アクセスに対して、記憶装置のメモリバッファのヒットには影響を与えない。
データ読出しの際の記憶装置への負荷を軽減し、大きな負荷のときに、又は、データ・アクセスタイムの制約が有るときに、データ・アクセスレートを向上させる効果がある。
以下に、本発明の実施の形態を説明する。
図1に本発明の適用例を示す。
ハードディスク・ドライブ110上に保存されたファイル100は、論理的に順次にホストからアクセスされる。本例のファイルは、0(101)から4までの数字で表現された5つの論理ブロックから成っている。これらの論理ブロックの対応するデータは、ディスク113上の物理記憶空間、それぞれ、ブロック120からブロック124にマップされる。ファイル上に2つの読出し動作130、140が表わされている。
読出し動作130は、2つの論理ブロック(ブロック1とブロック2)にわたっており、また、これらの論理ブロックは、2つの連続した物理ブロック121及び122にマップされている。このとき、アプリケーションの要求を受けたホストから、コントローラ111に対し、論理ブロック1と2を読むよう指示が出ると、コントローラ111は、対応する物理ブロック121及び122を「先読み機能を有効」として読む唯1つの読出しコマンド131を用いて処理される。このコマンド131は、ブロック122中のデータ・ゾーン132に有るデータの先読みを起動し、かつ、ハードディスクのバッファ・メモリ112に当該データを入れる動作も起動する。これにより読出し動作130に続く別の読出し動作を、ハードディスク・ドライブで、さらに速く処理することができる。
これに対し、読出し動作140は、2つの論理ブロック(ブロック3とブロック4)にわたっているが、これらの論理ブロックは2つの不連続な物理ブロック123及び124にマップされている。このとき、アプリケーションの要求を受けたホストから、コントローラ111に対し、論理ブロック3と4を読むよう指示が出ると、コントローラ111は、対応する物理ブロック123及び124を、先読み機能を指定して読む。読出しコマンド141と142を用いてそれぞれ処理される。
この読出し動作では、2つの読出しコマンド141及び142がコントローラ111に出される。ファイルシステムの管理情報から物理ブロック123が断片化していることが判っているから、コマンド141に対して、コントローラ111は先読みを無効にする。しかし、コマンド142に対しては、先読みを有効にして、ブロック124の記憶ゾーン143中のデータを、ハードディスクのバッファ・メモリ112に格納する動作を起動する。
ファイルデータの論理ブロックに対応させて物理データの先読み機能を適切に有効無効とすることで、ファイルのシーケンシャル・アクセスの性能に影響を与えることなく、無駄な先読みを除去できる。記憶装置のバッファ・メモリ中の先読み(pre-fetched)データのヒット率を高めながら、記憶装置の記憶領域で検索されるデータの量を減らすことができ、記憶装置のデータアクセス性能を向上させる。
バッファ・メモリ112を用いたキャッシュ機能により、図1には図示されないが、上記のように磁気ディスク媒体上から読み出されたデータは後述するように、適宜、バッファ・メモリ112へ格納される(図9)。
図2の計算機システムを用いて記憶装置の先読み機能を説明する。
本発明の先読み機能は、バッファ・メモリ222を用いて、磁気ディスク媒体223上に保存されたデータへのアクセスを制御するコントローラ221から構成されているハードディスク装置220に、中央演算処理装置200から、システム・バス240を通じてコマンドを渡すハードディスク装置のシステムに適用される。
このハードディスク220へのコマンドの発行は、このシステムのメインメモリ210にあるファイルシステム212を用いて、CPU200上でアプリケーション211を実行することで為される。ディスプレイ・アダプタ230を介して使用されるディスプレイ231は、データ処理結果を表示する。ファイルシステム212は、これらのアプリケーション211が渡すヒント(hint)に応じて、さらに、磁気ディスク媒体223上でファイルのデータに対応する物理ブロックの連続性に応じて、読出しコマンドがハードディスク装置220に出されるたびに、読出しコマンドを介して先読み機能を設定する。
図3は、記憶空間300の一例である、ブロック割当てテーブルを示す図である。
ファイルシステム212のプログラムは、ハードディスク装置220の記憶空間300を、連続ディスク記憶空間の論理ブロックであって、かつ、一定サイズの論理ブロック301、302、303、…、304に分けることで、そのような記憶空間を管理している。それぞれの論理ブロックは、0(301)からd(304)にわたる論理ブロック番号を用いて識別される。これにより磁気ディスク媒体223上の物理ブロックの番号と、論理ブロック番号との間の直接マッピングを簡単に実施できる。
ファイルシステム212は、磁気ディスク媒体223に対する各論理データブロック311の割当て状態312を管理するテーブル310を使用している。これらの割当て状態は、論理データブロックに有効なデータが対応しているか否か、論理データブロックが現在使用されているかどうかを示している。図3では、ブロック0(313)、ブロック1(314)、ブロック2(315)、ブロック4(317)が使用されている。これらの論理データブロックは、ファイルシステム・データを保存するために割り当てられる。ブロック3(316)とブロックd(318)は使用されていない。記憶空間300自体は、1つ又は複数の物理ブロックを用いて磁気ディスク媒体223上に保存され、このシステムの電源断によっても、図3の状態を維持できる。記憶空間300は必要に応じメモリ210へ展開される。
図4は、ファイルシステムが扱うファイルを管理するためのテーブルである。
ファイル・テーブル400は、ファイル名401を用いて識別されるファイルの管理情報が入っている物理ブロック番号402を記録する。テーブル400自体は、磁気ディスク媒体223上に保存される。テーブル400は必要に応じメモリ210へ展開される。
各ファイル420に対する記述子は、ファイル名421、ファイル・サイズ422、ファイル・タイプ423その他ファイルの情報を保持するために用いられる。ファイル記述子の情報には、ファイル・マップ424も含まれる。マップ424は、ファイルのデータを保存するのに用いられる物理ブロック番号のテーブルである。
ファイル・テーブル400の各エントリは、先行ブロックに論理的に隣接しているファイル・ブロックを表わしている(図1、101)。したがって、エントリ番号401は、ファイル論理ブロックと呼ばれる。
ファイル・マップ424は、ファイルが扱う論理ブロックと磁気ディスク媒体上の物理ブロックとの間を対応付ける。これにより、ファイル・オフセット(論理アドレスのオフセット)の物理アドレスへの変換が、簡明となる。
例えば、このファイル420中のオフセット0のデータは、物理ブロック22(425)にマップされる論理ブロック0に入っており、また、この物理ブロックのサイズに等しいオフセットのデータは、論理ブロック1に入っていて、磁気ディスク媒体上で、物理ブロック番号23(426)にマップされ、さらに、このファイルのデータの最終オクテットは、ディスク上の物理ブロック100(427)にマップされ、ファイル・マップ424の論理ブロックに入っている。
このような対応関係のデータ構造により、ファイルシステムのデータの論理アドレス(ファイル420中のデータ・オフセット)と、物理アドレスとの間の簡明なマッピングが可能となる。
図5を用いて本発明のデータの読出し動作を説明する。
磁気ディスク装置520に収められているデータに対する要求が、ホスト500上で、アプリケーション501から、ファイルシステム503に為されると、読出し機能(read function)502が、読み出されるファイル、読み出すデータの量、読み出すデータの第1バイトのアドレス、読出しデータを受け取るためにアプリケーションで使用されるメモリ・バッファのアドレス、及び、読出し動作が先読み機能を用いて行われるかを指定する幾つかのフラグを指定する。
これにより「先読みしない」フラグを指定したときの「先読みしない」読出し動作と、フラグを指定しないとき(デフォルト)の「先読みする」読出し動作の主な2つのタイプの読出し動作が為される。
ファイルシステムは、コントローラ521へ、1又は複数の読出しコマンド510を発信して、読出し動作を処理する。コントローラ521は、磁気ディスク媒体上に保存された、要求されたデータ524を検索して(523)、バッファ・メモリ522に格納する。このときファイル記述子に対応する物理ブロック番号、要求されたデータ524の物理アドレスもデータ524に関連させて、バッファ・メモリ522に格納する。
検索されたデータ530その他の情報は、バッファ・メモリ522からホストのファイルシステム503に転送され、アプリケーション501に渡される(504)。
図6に、ファイルシステム503(図5)がハードディスク装置520のコントローラ521に送信する、読出しコマンド510のフォーマットを示す。
読出しコマンド600には、読出しコマンドとしてコマンドを識別するのに用いられるコマンド・コード601が含まれる。このコマンド・コード601の後に、読み出すデータの物理アドレス602(Roffset)と、このアドレスから読み出されるデータの量603(Rsize)が続く。読み出される予定のデータは、ホストメモリの指定したアドレス604に返さなければならない。さらに、読出しコマンドが先読み処理(RA)を起動すべきかどうか指定するフラグ605も付加される。RAフラグがセットされる場合、即ち、先読み機能が実行される場合には、先読みするデータの最大量が、RAsize606を用いて、読出しコマンドにより指定される。
図7を用いて、アプリケーションが、ファイルシステムを経由して、ハードディスク装置のコントローラに読出しコマンドを送信して、データの読出しが完了するまでのプロセスを説明する。
ファイルシステムは、ファイル・マップ(424、図4)を用いて、読出し動作で要求されたデータを保存する物理ブロックのリストを得る(700)。ファイル・マップは、記憶装置の入出力制御回路が、ファイルシステムへ直接又はバッファメモリを介して知らせることにより、ファイルシステムが作成する。
次に、このリストを検索して、連続した論理ブロックにわたる、読出し動作の全セグメント(物理ブロックの組)に対して、読出しコマンドを生成する(区分の一例として、図1の読出し動作140を参照のこと)。
次に、このように生成されたすべての読出しコマンドに対して、コマンドごとに以下の処理を行う。処理される読出しコマンドが、生成された読出しコマンドの最後のものでない場合には、複数組の連続した物理ブロックのデータにアクセスするために読出しコマンドがセットされているから、先読み機能は求められない。従って、先読みフラグを無効にして(740)、読出しコマンドを実行する(750)。
最後の読出しコマンドが生成される場合には、読出し動作(図5に示される読出しファンクション502)で指定されたフラグを調べる(760)。このアプリケーションが「先読みしない」読出し動作を指定した場合には、このコマンドの先読みフラグを無効にして(740)、読出しコマンドを実行する。
これに反して、このアプリケーションが「先読みしない」読出し動作を指定しなかった場合(デフォルト)には、コマンド先読みフラグがセットされている。このため、このコマンドがアクセスすることになるデータに続く、ファイルのデータに対応する物理データのマッピングを調べる(770)。
後続するデータが、読出しコマンドでアクセスされる最後の物理ブロックに隣接した物理ブロック中には無い場合には、先読みフラグを無効にして、読出しコマンドを実行する。そうでなければ、先読みできるデータの量を、アクセスされるデータに隣接するファイルのデータ量として計算する(780)。この値を、読出しコマンドのRAsizeフィールド中にセットして、読出しコマンドを実行する(750)。この処理は、生成された最後の読出しコマンドを実行して終了する(721)。
こうして、先読みが無駄となる読出しコマンドに対して、先読み機能を無効として処理することを保証している。磁気ディスク媒体上に、連続性がないファイルの論理ブロックに対応して配置される、断片化した大量の物理ブロックに対して、アクセスされるデータに続くデータだけを先読みして、後続のアクセスを高速化できる。この先読み機能は、デフォルトでは有効である(アプリケーションが「先読みしない」読出し動作を要求しない場合)。
この読出し動作は、ハードディスク装置に負荷を課さずに、ランダム・ファイル・アクセスを可能とする。アクセスに時間的制約のある、非常に大きいファイル(例えば、ビデオの動画ファイル)へのアクセスに、効果的である。
図8を用いて、ハードディスク装置のバッファ・メモリにキャッシュされる、データの管理を説明する。
ハードディスクのコントローラは、ハードディスク装置のバッファ・メモリにキャッシュされるデータ・ゾーンのキャッシュ・テーブル800を、磁気ディスク媒体上に維持している。このテーブル800は、データ・ゾーンのデータの第1バイトの物理アドレス801と、データ・ゾーンのサイズ802を用いて、それぞれのデータ・ゾーンを識別する。
例えば、データ・ゾーン512/4096(820)及び4096/131072(830)だけでなく、アドレス0から始まる、サイズ512バイトのデータ・ゾーン(810)も、バッファ・メモリにキャッシュする。
図9に、ハードディスク装置における読出しコマンドの処理フローを示す。
キャッシュ・テーブル800(図8)は、以下のように読出しコマンドを処理しているときに、ハードディスク装置のコントローラで使用される。まず、受け取られたコマンドのコードが読出しコマンドであるかどうかチェックする(900)。そのコマンドが読出しコマンドでない場合には、そのコマンドを実行し(910)、そのコマンドの終了をホストに知らせる(990)。
読出しコマンドである場合には、ハードディスク装置のコントローラのキャッシュ・テーブル800を利用して、バッファ・メモリにすでにキャッシュされた、要求されたデータを検索する(920)。まだキャッシュされてないデータだけを、ハードディスク装置で検索する(930)。このステップは、検索されたデータをキャッシュするのに充分なバッファ・メモリを得るため、現行コマンドに関係しない、キャッシュ・テーブル中の一部のエントリを解放することになるかもしれない。
次に、コマンドの先読みフラグを調べる(940)。このコマンドで先読みが要求されない場合には、検索されたデータをキャッシュ・テーブルに登録して(970)、要求されたすべてのデータ(検索されたデータとキャッシュされたデータ)を、ホストにおいて、読出しコマンド中に指定されたメモリ・アドレスに転送する(980)。
読出しコマンドが先読みを要求した場合には、読出しコマンドにおいてRAフラグをセットするときであり、まず最初に、バッファ・メモリ中に追加記憶域を確保して(950)、先読み処理で検索されたデータをキャッシュする。この記憶領域の大きさは、読出しコマンドで指定された先読みデータの量(RAsizeフィールド)に少なくとも等しくなるべきである。
次に、先読みデータの量のデータを、ハードディスク装置において、読出しコマンドのRoffsetフィールド+Rsizeフィールドで指定されたアドレスにて検索する(960)。次に、ハードディスクのコントローラのキャッシュ・テーブルを変更して、先読みデータのキャッシングを登録し(970)、次に、先読みを用いない読出しコマンドと同じやり方で、読出しコマンド処理を終了する。すなわち、データをホストに転送して(980)、コマンド終了をホストに知らせる(990)。
画像データ、特に、動画を記録再生しつつ、別のアクセスの実行が、高速、低騒音、低消費電力で行える磁気ディスク装置の製造に用いることができる。
本発明の一適用例を示す図である。 ファイルシステム・プログラムを用いて記憶装置を管理し、かつ、ファイルシステムを用いてアプリケーションを実行するホスト・コンピュータの代表的なハードウェア構成例を示す図である。 記憶装置の記憶領域に関し、ファイルシステムの管理を説明するための図である。 記憶装置上に保存されたファイルを管理するのに用いられる、ファイルシステムのデータ構造を示す図である。 記憶装置上に格納されたデータを、本発明を用いて読み出す動作を説明するための図である。 本発明の読出しコマンドのフォーマットの一例を示す図である。 アプリケーションが記憶装置上に格納されたデータを検索して読み出すプロセスを示す流れ図である。 記憶装置で用いられるバッファ・メモリにキャッシュされるデータにインデックスを付して管理することを説明するための図である。 記憶装置における読出しコマンドの処理を示す流れ図である。
符号の説明
131……読出しコマンド(先読み有り)
141……読出しコマンド(先読み無し)
142……読出しコマンド(先読み無し)

Claims (9)

  1. 中央演算処理装置と、これにアクセス可能に接続されたメモリ及び回転型記録媒体を用いた記憶装置とを有する計算機システムであって、当該メモリ上に展開されたファイルシステムにより、前記中央演算処理装置を介して、前記回転型記録媒体上に書き込まれたファイルのデータを読み出す際に、当該データの先読み機能を有するものにおいて、
    前記ファイルシステムが、
    前記データが前記回転型記録媒体上で断片化している箇所の情報を保持する機能と、
    前記ファイルのデータの一部に対応する前記回転型記録媒体上のデータを読み出すための、1又は複数の読出しコマンドのうち、一部の読出しコマンドが先読みを行う機能とを有する計算機システム。
  2. 請求項1記載の計算機システムにおいて、
    前記1又は複数の読出しコマンドの一部が、前記記憶装置のバッファ・メモリに対し読出しを行う計算機システム。
  3. 請求項1記載の計算機システムにおいて、
    前記断片化している箇所の情報は、連続する物理ブロックを保持することで得られるものであり、
    前記一部の読出しコマンドは、前記連続する物理ブロックのデータを対象とする場合は当該連続する物理ブロックのうち最後の物理ブロックを、連続しない物理ブロックのデータを対象とする場合は当該連続しない物理ブロックのうち最後の物理ブロックを、それぞれ読み出すときの読出しコマンドである計算機システム。
  4. 中央演算処理装置と、これにアクセス可能に接続されたメモリ及び回転型記録媒体を用いた記憶装置とを有する計算機システムであって、当該メモリ上に展開されたファイルシステムにより、前記中央演算処理装置を介して、前記回転型記録媒体上に書き込まれたファイルのデータを読み出す際に、当該データの先読み機能を有するものにおいて、
    前記ファイルシステムが、
    前記データが前記回転型記録媒体上で断片化している物理ブロックの情報を保持する機能と、
    前記ファイルのデータの一部に対応する、前記回転型記録媒体上の連続する複数の物理ブロックのデータを、読み出すための一つの読出しコマンドであって、当該複数の物理ブロックのうち最後の物理ブロックについてのみ先読みを行う機能を有する計算機システム。
  5. 中央演算処理装置と、これにアクセス可能に接続されたメモリ及び回転型記録媒体を用いた記憶装置とを有する計算機システムであって、当該メモリ上に展開されたファイルシステムにより、前記中央演算処理装置を介して、前記回転型記録媒体上に書き込まれたファイルのデータを読み出す際に、当該データの先読み機能を有するものにおいて、
    前記ファイルシステムが、
    前記データが前記回転型記録媒体上で断片化している物理ブロックの情報を保持する機能と、
    前記ファイルのデータの一部に対応する、前記回転型記録媒体上の断片化した複数の物理ブロックのデータを読み出すための、複数の読出しコマンドのうち、一部の読出しコマンドが先読みを行う機能とを有する計算機システム。
  6. 請求項4又は5記載の計算機システムにおいて、
    前記1又は複数の読出しコマンドの一部が、前記記憶装置のバッファ・メモリに対し読出しを行う計算機システム。
  7. 請求項5記載の計算機システムにおいて、
    前記一部の読出しコマンドは、前記断片化した1の物理ブロックのデータを読み出すときの読出しコマンドである計算機システム。
  8. 中央演算処理装置と、これにアクセス可能に接続されたメモリ及び回転型記録媒体を用いた記憶装置とを有する計算機システムにおける、前記回転型記録媒体上に書き込まれたデータの先読み方法であって、
    前記メモリ上に展開されたファイルシステムにより、前記中央演算処理装置を介して、前記回転型記録媒体上の物理ブロックにファイルのデータを書き込む第1のステップと、
    前記物理ブロックに書き込まれたデータの位置情報を、前記記憶装置が前記ファイルシステムに知らせる第2のステップと、
    前記ファイルシステムが前記ファイルのデータの読出しを要求される第3のステップと、
    前記ファイルシステムが、読出しを要求されたファイルの一部に対応する、連続する複数の物理ブロックについて読出しコマンドを作成する場合は、最後のブロックのみを先読みする1の読出しコマンドとし、
    前記ファイルシステムが、読出しを要求されたファイルの一部に対応する、連続しない複数の物理ブロックについて読出しコマンドを作成する場合は、最後のブロックのみを先読みする複数の読出しコマンドとする第4のステップと、
    前記ファイルシステムが作成した読出しコマンドを実行する第5のステップと、
    を有することを特徴とするデータの先読み方法。
  9. 請求項8記載のデータの先読み方法において、
    前記1又は複数の読出しコマンドの一部が、前記記憶装置のバッファ・メモリに対し読出しを行うデータの先読み方法。
JP2005189159A 2005-06-29 2005-06-29 データの先読み方法及び計算機システム Withdrawn JP2007011523A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005189159A JP2007011523A (ja) 2005-06-29 2005-06-29 データの先読み方法及び計算機システム
US11/325,024 US20070005904A1 (en) 2005-06-29 2006-01-03 Read ahead method for data retrieval and computer system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005189159A JP2007011523A (ja) 2005-06-29 2005-06-29 データの先読み方法及び計算機システム

Publications (1)

Publication Number Publication Date
JP2007011523A true JP2007011523A (ja) 2007-01-18

Family

ID=37591176

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005189159A Withdrawn JP2007011523A (ja) 2005-06-29 2005-06-29 データの先読み方法及び計算機システム

Country Status (2)

Country Link
US (1) US20070005904A1 (ja)
JP (1) JP2007011523A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008299672A (ja) * 2007-05-31 2008-12-11 Hitachi Ltd 計算機システム及びこれを用いたデータベース管理方法
KR20140042428A (ko) * 2012-09-28 2014-04-07 삼성전자주식회사 컴퓨팅 시스템 및 그 데이터 관리 방법
JPWO2014147840A1 (ja) * 2013-03-22 2017-02-16 富士通株式会社 アクセス制御プログラム、ディスク装置及びアクセス制御方法

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8612374B1 (en) 2009-11-23 2013-12-17 F5 Networks, Inc. Methods and systems for read ahead of remote data
US20120144123A1 (en) 2010-12-01 2012-06-07 International Business Machines Corporation Read-ahead processing in networked client-server architecture
US8930619B2 (en) 2012-05-29 2015-01-06 Dot Hill Systems Corporation Method and apparatus for efficiently destaging sequential I/O streams
US9053038B2 (en) 2013-03-05 2015-06-09 Dot Hill Systems Corporation Method and apparatus for efficient read cache operation
US9684455B2 (en) 2013-03-04 2017-06-20 Seagate Technology Llc Method and apparatus for sequential stream I/O processing
US8886880B2 (en) 2012-05-29 2014-11-11 Dot Hill Systems Corporation Write cache management method and apparatus
US9552297B2 (en) 2013-03-04 2017-01-24 Dot Hill Systems Corporation Method and apparatus for efficient cache read ahead
US9674247B1 (en) * 2012-06-21 2017-06-06 Google Inc. Generating manifest files for digital media items
US9152563B2 (en) 2013-03-04 2015-10-06 Dot Hill Systems Corporation Method and apparatus for processing slow infrequent streams
US9465555B2 (en) 2013-08-12 2016-10-11 Seagate Technology Llc Method and apparatus for efficient processing of disparate data storage commands
US9158687B2 (en) 2013-03-04 2015-10-13 Dot Hill Systems Corporation Method and apparatus for processing fast asynchronous streams
KR102074329B1 (ko) 2013-09-06 2020-02-06 삼성전자주식회사 데이터 저장 장치 및 그것의 데이터 처리 방법
WO2015178926A1 (en) * 2014-05-23 2015-11-26 Hewlett-Packard Development Company, L.P. Read ahead buffer processing
US10936225B1 (en) * 2015-11-06 2021-03-02 Amazon Technologies, Inc. Version history of files inside a backup
US11048424B1 (en) * 2015-11-06 2021-06-29 Amazon Technologies, Inc. File extraction out of a backup
CN106874216B (zh) * 2015-12-11 2020-07-10 捷鼎新加坡私人有限公司 加快在不连续页面写入数据的计算机系统及其方法
US11855898B1 (en) 2018-03-14 2023-12-26 F5, Inc. Methods for traffic dependent direct memory access optimization and devices thereof
US11947800B2 (en) 2021-10-27 2024-04-02 Red Hat, Inc. Determining weights for cache storage of fragmented data

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008299672A (ja) * 2007-05-31 2008-12-11 Hitachi Ltd 計算機システム及びこれを用いたデータベース管理方法
KR20140042428A (ko) * 2012-09-28 2014-04-07 삼성전자주식회사 컴퓨팅 시스템 및 그 데이터 관리 방법
JPWO2014147840A1 (ja) * 2013-03-22 2017-02-16 富士通株式会社 アクセス制御プログラム、ディスク装置及びアクセス制御方法

Also Published As

Publication number Publication date
US20070005904A1 (en) 2007-01-04

Similar Documents

Publication Publication Date Title
JP2007011523A (ja) データの先読み方法及び計算機システム
US7203815B2 (en) Multi-level page cache for enhanced file system performance via read ahead
US7383392B2 (en) Performing read-ahead operation for a direct input/output request
US5410653A (en) Asynchronous read-ahead disk caching using multiple disk I/O processes and dynamically variable prefetch length
US5133060A (en) Disk controller includes cache memory and a local processor which limits data transfers from memory to cache in accordance with a maximum look ahead parameter
US8122216B2 (en) Systems and methods for masking latency of memory reorganization work in a compressed memory system
US7937404B2 (en) Data processing system and method
JP3183993B2 (ja) ディスク制御システム
US6782453B2 (en) Storing data in memory
WO1996008772A1 (en) Method of pre-caching data utilizing thread lists and multimedia editing system using such pre-caching
JP2003131942A (ja) ハードディスク装置のキャッシュを制御する方法および装置
JPH09237225A (ja) キャッシュ機能を有するコンピュータ及びキャッシュメモリ制御方法
JP2001243100A (ja) 大容量記憶装置における区分テーブル、ファイル装置ディレクトリ構造、および個々のファイルクラスタチエンのバッファリング
US20130124821A1 (en) Method of managing computer memory, corresponding computer program product, and data storage device therefor
JP5020774B2 (ja) 先読みを用いたストレージ消費電力削減方法及びその方法を用いた計算機システム
EP1631911B1 (en) Method and device for transferring data between a main memory and a storage device
US9778858B1 (en) Apparatus and method for scatter gather list handling for an out of order system
JP2012078939A (ja) 情報処理装置およびキャッシュ制御方法
WO2002027498A2 (en) System and method for identifying and managing streaming-data
JP2943896B2 (ja) 計算機システム及びディスク・データの制御方法
JP4792065B2 (ja) データ記憶方法
JP2004240616A (ja) メモリコントローラ及びメモリアクセス制御方法
KR100648065B1 (ko) 입출력 가속 기술이 적용된 하드웨어용 파일 시스템 및 그파일 시스템에서의 데이터 처리 방법
JP2854667B2 (ja) ディスク・キャッシュ制御方式
JP3083530B2 (ja) キャッシュメモリのデータ管理方法およびキャッシュ制御装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071212

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20100323