JPH09185462A - Data look-ahead method - Google Patents

Data look-ahead method

Info

Publication number
JPH09185462A
JPH09185462A JP7343906A JP34390695A JPH09185462A JP H09185462 A JPH09185462 A JP H09185462A JP 7343906 A JP7343906 A JP 7343906A JP 34390695 A JP34390695 A JP 34390695A JP H09185462 A JPH09185462 A JP H09185462A
Authority
JP
Japan
Prior art keywords
data
read
block
storage device
buffer
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
JP7343906A
Other languages
Japanese (ja)
Other versions
JP3469383B2 (en
Inventor
Yutaka Jitsukawa
裕 実川
Yasuaki Nishimura
泰明 西村
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 JP34390695A priority Critical patent/JP3469383B2/en
Publication of JPH09185462A publication Critical patent/JPH09185462A/en
Application granted granted Critical
Publication of JP3469383B2 publication Critical patent/JP3469383B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

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

Abstract

PROBLEM TO BE SOLVED: To accelerate filed data access, etc., by enabling the data look-ahead of random access case. SOLUTION: A CPU 10, main storage device 20 and secondary storage device 30 are connected through a system bus 40. An application program(AP) 21, operating system(OS) 22, AP buffer 23, system buffer 24 managed by the OS and specified storage area 25 exist in the main storage device 20. The plural pairs of the numbers of blocks with which the secondary storage device 30 is accessed at random in the past by the AP 21, and the numbers of look-ahead data are held in the specified storage area 25. Corresponding to the contents in the specified storage area 25, an access pattern analytic part 220 of OS 22 analyzes the access pattern of AP 21, and the look-ahead of data block to be accessed in near future from the secondary storage device 30 to the system buffer 24 is performed.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【発明の属する技術分野】本発明は、ランダムアクセス
可能な二次記憶装置を有する電子計算機システムにおい
て、前記二次記憶装置に格納されたファイルデータ等の
先読み方法に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a pre-reading method of file data or the like stored in a secondary storage device in an electronic computer system having a randomly accessible secondary storage device.

【0002】[0002]

【従来の技術】現在の電子計算機システムにおいては、
主記憶装置とハードディスク(HD)などの二次記憶装
置のアクセス速度には大きな差がある。一般に、ファイ
ルデータはHDなどの二次記憶装置に格納され、これを
アクセスする場合は、一旦、主記憶装置へ読み込む必要
がある。ファイルアクセスのオーバヘッドの大部分は、
この二次記憶装置から主記憶装置へのデータ転送による
ものである。このオーバヘッドを軽減するため、従来
は、二次記憶装置上のファイルデータがアプリケーショ
ンプログラム(AP)によりシーケンシャルにアクセス
されている場合に限り、最後に読み込んだブロックの次
の1ブロック分のデータだけ、オペレーティングシステ
ム(OS)が予め二次記憶装置から主記憶装置へ転送す
る先読みの手法を用いていた。これによれば、APが次
のブロックのリード要求を発行する時点では、既に二次
記憶装置から主記憶装置へ該当ブロックのデータ転送が
開始されており、ファイルアクセスを高速化することが
できる。
2. Description of the Related Art In the current computer system,
There is a large difference in access speed between the main storage device and a secondary storage device such as a hard disk (HD). Generally, file data is stored in a secondary storage device such as an HD, and when accessing this, it is necessary to read it once into the main storage device. Most of the file access overhead is
This is due to the data transfer from the secondary storage device to the main storage device. In order to reduce this overhead, conventionally, only when the file data on the secondary storage device is sequentially accessed by the application program (AP), only the data for one block next to the last read block, The operating system (OS) uses a pre-reading method of transferring from the secondary storage device to the main storage device in advance. According to this, at the time when the AP issues a read request for the next block, the data transfer of the block is already started from the secondary storage device to the main storage device, and the file access can be speeded up.

【0003】[0003]

【発明が解決しようとする課題】上記従来技術は、シー
ケンシャルアクセス以外の先読みという点において配慮
されておらず、シーケンシャルアクセス以外の、いわゆ
るファイルデータ等を不連続にアクセスするランダムア
クセスでは著しく性能が低下するという問題があった。
本発明の目的は、従来ランダムアクセスと見なされてい
たアクセスパターンにおいても、データの先読みを可能
にし、ファイルデータアクセス等を高速化することにあ
る。
The above-mentioned prior art is not considered in terms of prefetching other than sequential access, and performance is remarkably deteriorated in random access other than sequential access in which so-called file data or the like is discontinuously accessed. There was a problem of doing.
An object of the present invention is to enable prefetching of data even in an access pattern which was conventionally regarded as random access and to speed up file data access and the like.

【0004】また、上記従来技術では、1ブロックしか
先読みしておらず、二次記憶装置にハードディスクを用
いる場合、ディスクヘッドのシークや回転待ちが頻繁に
発生するという問題があった。本発明の目的は、かかる
ディスクヘッドのシークや回転待ちを減少させデータ転
送効率を向上させるにある。
Further, in the above-mentioned conventional technique, only one block is prefetched, and when a hard disk is used as the secondary storage device, there is a problem that seek or rotation waiting of the disk head frequently occurs. An object of the present invention is to reduce the seek and rotation waiting of the disk head and improve the data transfer efficiency.

【0005】更に、本発明の他の目的は、先読みの予測
が外れて、先読みしたデータをアプリケーションプログ
ラムがアクセスしなかったときの損害を軽減することに
ある。また、本発明は、APからは従来のアクセス方法
と同様の手続きによりファイルデータ等の先読みが実行
可能であることを目的とする。
Still another object of the present invention is to reduce the damage caused when the prefetching prediction is wrong and the prefetched data is not accessed by the application program. Another object of the present invention is to enable prefetching of file data and the like from the AP by the same procedure as the conventional access method.

【0006】[0006]

【課題を解決するための手段】ランダムアクセスとは、
ファイル等の連続していないオフセット中のデータをア
クセスすることで、決してすべてが無規則というわけで
はない。データベースなどを扱うアプリケーションプロ
グラム(AP)はランダムアクセスでありながら、何等
かの規則性をもっている場合が多い。
[Means for Solving the Problems] What is random access?
By accessing data in non-contiguous offsets such as files, everything is by no means random. An application program (AP) that handles a database or the like is often random access, but often has some regularity.

【0007】そこで、本発明では、二次記憶装置に格納
されたデータを連続・不連続にアクセスするAPのデー
タアクセスパターンを、OSにて解析して、近い将来ア
クセスされるデータを予測し、当該データを二次記憶装
置から主記憶装置へ先読みする。また、本発明では、予
測結果に応じて、先読みするデータ量を動的に変化させ
る。具体的には、二次記憶装置のデータを過去にアクセ
スしたアドレスとその先読みデータ数との組を複数、特
定記憶領域に保持しておき、二次記憶装置に対するアク
セス要求時、前記特定記憶領域の内容に基づいて、将来
アクセスされるデータの予測、先読みするデータ量の算
定を行う。
Therefore, in the present invention, the OS analyzes the data access pattern of the AP that accesses the data stored in the secondary storage device continuously / discontinuously to predict the data to be accessed in the near future, The data is prefetched from the secondary storage device to the main storage device. Further, in the present invention, the amount of data to be read in advance is dynamically changed according to the prediction result. Specifically, a plurality of sets of addresses of previously accessed data of the secondary storage device and the number of prefetched data are held in a specific storage area, and when the access request to the secondary storage device is made, the specific storage area is stored. Based on the contents of, the data to be accessed in the future is predicted and the amount of data to be read ahead is calculated.

【0008】高い確率で将来アクセスすると予測できる
データアクセスパターンに対して先読みを実施すること
により、先読みしたデータをAPがアクセスする時点で
既にデータは主記憶装置上に転送済みもしくは転送中と
いうことになる。それによって、APの二次記憶装置上
から主記憶装置上へのデータ転送待ち時間は短縮して、
ファイルアクセス等を高速化することができる。
By performing pre-reading for a data access pattern that can be predicted to be accessed in the future with a high probability, the data has already been transferred to the main memory or is being transferred when the pre-read data is accessed by the AP. Become. Thereby, the waiting time for data transfer from the secondary storage device of the AP to the main storage device is shortened,
It is possible to speed up file access and the like.

【0009】また、予測的中の確率が増加するにつれ
て、一回に先読みするデータ量を徐々に増加させる。一
回の先読みデータは、二次記憶装置上から一括して転送
されるため、ディスクの回転待ち時間とシーク時間が減
少し、ファイルアクセス等は高速化することができる。
さらに、低確率時は一回に先読みするデータ量が比較的
少ないため、予測が外れて先読みしたデータをAPがア
クセスしなかったときの損害を軽減することができる。
Further, as the probability of predictive accuracy increases, the amount of data to be read ahead at one time is gradually increased. Since the one-time read-ahead data is collectively transferred from the secondary storage device, the disk rotation waiting time and seek time are reduced, and file access can be speeded up.
Further, when the probability is low, the amount of data to be prefetched at one time is relatively small, so that it is possible to reduce the damage when the AP does not access the prefetched data due to a wrong prediction.

【0010】また、APはOSにREADシステムコー
ルを発行することによってファイル,データ等を読み込
むが、READシステムコールのAPインタフェースを
変えることなく、OSにて先読みを実現するため、AP
は従来のアクセス方法を変更する必要がない。
Further, the AP reads a file, data, etc. by issuing a READ system call to the OS. However, the prefetching is realized by the OS without changing the AP interface of the READ system call.
Does not need to change the conventional access method.

【0011】[0011]

【発明の実施の形態】以下、本発明の実施の形態の一実
施例について図面により詳細に説明する。
BEST MODE FOR CARRYING OUT THE INVENTION An embodiment of the present invention will be described in detail below with reference to the drawings.

【0012】図1は、本発明の一実施例のシステム全体
の概略構成図である。図において、中央処理装置(CP
U)10、主記憶装置20及びハードディスク(HD)
など二次記憶装置30ではシステムバス40に接続され
ている。主記憶装置20上には、各種のアプリケーショ
ンプログラム(AP)21、オペレーティングシステム
(OS)22、AP用のバッファ(APバッファ)2
3、OSが管理するバッファ(システムバッファ)24
などが存在する。また、二次記憶装置30にはディスク
キャッシュ機構31が存在する。これらの構成は従来と
同様である。本発明に関係する構成は、OS22の機能
の一つとして先読み制御のためのアクセスパターン解析
部220と、OS22の該アクセスパターン解析部22
0で使用するために、主記憶装置20上にあらたに設け
た特定記憶領域25である。後述するように、外部記憶
装置30から先読みしたデータ(ブロック)は、OS2
2が管理するシステムバッファ24に保持して、AP2
1からそのデータに対するREADシステムコールが発
行された時点で、システムバッファ24からAPバッフ
ァ23にコピーする。
FIG. 1 is a schematic configuration diagram of the entire system according to an embodiment of the present invention. In the figure, the central processing unit (CP
U) 10, main storage device 20 and hard disk (HD)
The secondary storage device 30 is connected to the system bus 40. On the main memory 20, various application programs (AP) 21, operating system (OS) 22, buffer for AP (AP buffer) 2
3. OS managed buffer (system buffer) 24
And so on. Further, the secondary storage device 30 has a disk cache mechanism 31. These configurations are the same as the conventional one. The configuration related to the present invention includes an access pattern analysis unit 220 for prefetch control as one of the functions of the OS 22, and an access pattern analysis unit 22 of the OS 22.
This is a specific storage area 25 newly provided on the main storage device 20 for use with 0. As will be described later, the data (block) prefetched from the external storage device 30 is
Held in the system buffer 24 managed by
When the READ system call for the data is issued from 1, the system buffer 24 is copied to the AP buffer 23.

【0013】図2はシステムバッファの概念図である。
システムバッファはキューヘッドを先頭に複数のシステ
ムバッファがチェインされた構成になっている。システ
ムバッファは、APからのREAD/WRITE要求あ
るいは後述するOSでの先読みREAD要求の発行時、
OSにより割り当てられる。該システムバッファ1個
で、1ブロックのデータを保持する。1ブロックのサイ
ズは通常8Kバイトである。各システムバッファは、シ
ステムバッファのキューチェインポインタ、データ転送
の完了やアクセス種別(READ/WRITE)等を示
すフラグ、READ/WRITE要求のブロック番号、
主記憶装置(メモリ)上の実際のデータ格納場所を示す
メモリアドレス等の情報を保持している。未割当てのシ
ステムバッファでは、フラグ、ブロック番号、メモリア
ドレス等は空である。このように、システムバッファ
は、実際にデータを格納する領域とその管理情報を格納
する領域の総称である。
FIG. 2 is a conceptual diagram of the system buffer.
The system buffer has a configuration in which a plurality of system buffers are chained with the cue head at the head. The system buffer is used when issuing a READ / WRITE request from the AP or a read-ahead READ request by the OS described later.
It is assigned by the OS. One system buffer holds one block of data. The size of one block is usually 8 Kbytes. Each system buffer includes a queue chain pointer of the system buffer, a flag indicating completion of data transfer and an access type (READ / WRITE), a block number of a READ / WRITE request,
It holds information such as a memory address indicating an actual data storage location on the main storage device (memory). In the unallocated system buffer, the flag, block number, memory address, etc. are empty. As described above, the system buffer is a general term for an area that actually stores data and an area that stores its management information.

【0014】図3は特定記憶領域25の構成例を示す図
である。特定記憶領域25は、READブロック番号記
憶領域251と先読みブロック数記憶領域252を1組
として、N組の記憶領域を有している。READブロッ
ク番号記憶領域251には、APがREAD要求したブ
ロック番号を格納する。ここでいうブロックとは、二次
記憶装置からリードするデータの単位で、ここでは8K
Bである。また、ブロック番号とは、二次記憶装置に格
納されているファイルの先頭からのブロックの通し番号
(ブロックアドレス)ある。APが更に連続したブロッ
クをREAD要求した場合は、READブロック番号記
憶領域251のブロック番号を該連続したブロック番号
に更新する。先読みブロック数記憶領域252には、R
EADブロック番号記憶領域251に格納されたブロッ
ク番号のブロックをリードしたときに先読みしたブロッ
ク数を格納する。従って、ある記憶領域内のREADブ
ロック番号記憶領域と先読みブロック数記憶領域は1対
1に対応している。特定記憶領域25は、N組の記憶領
域を有しているため、ファイル中の連続していないブロ
ック番号を最大N個記憶することができ、その各々に対
応して先読みしたブロック数を記憶することができる。
これにより、連続していないブロックのアクセス(ラン
ダムアクセス)において先読みを実行することができ、
更に先読みブロック数を可変にすることができる。従来
はREADブロック番号記憶領域が1つだけしかなかっ
たので、常にAPがREAD要求した最後のブロック番
号だけしか記憶できず、また、先読みブロック数記憶領
域をもたなかった。従って、連続したブロックのアクセ
ス(シーケンシャルアクセス)においてのみ先読みが実
行でき、また、先読みブロック数も1個だけであった。
FIG. 3 is a diagram showing an example of the structure of the specific storage area 25. The specific storage area 25 has N sets of storage areas, with a READ block number storage area 251 and a prefetch block number storage area 252 as one set. The READ block number storage area 251 stores the block number requested by the AP for READ. The block here is a unit of data read from the secondary storage device, and here is 8K.
B. The block number is the block serial number (block address) from the beginning of the file stored in the secondary storage device. When the AP makes a READ request for a further continuous block, the block number in the READ block number storage area 251 is updated to the continuous block number. R is stored in the prefetch block number storage area 252.
The number of blocks read ahead when the block having the block number stored in the EAD block number storage area 251 is read is stored. Therefore, the READ block number storage area and the prefetch block number storage area in a certain storage area have a one-to-one correspondence. Since the specific storage area 25 has N sets of storage areas, a maximum of N non-consecutive block numbers in the file can be stored, and the number of prefetched blocks is stored corresponding to each. be able to.
This makes it possible to perform prefetching when accessing non-contiguous blocks (random access),
Further, the number of prefetch blocks can be made variable. In the past, since there was only one READ block number storage area, only the last block number that the AP requested to read was always stored, and there was no prefetch block number storage area. Therefore, prefetching can be executed only in continuous block access (sequential access), and the number of prefetching blocks is only one.

【0015】次に、本発明の先読みのアルゴリズムを、
図4のフローチャートで説明する。なお、先読みブロッ
ク数は最大8ブロックとする。
Next, the look-ahead algorithm of the present invention is
This will be described with reference to the flowchart of FIG. The maximum number of prefetch blocks is eight.

【0016】図1において、AP21がREADシステ
ムコールでブロック番号MのREAD要求を発行する
と、OS22のアクセスパターン解析部220(以下、
単にOSという)は、特定記憶領域25の各記憶領域に
おけるREADブロック番号記憶領域251のいずれか
にブロック番号M−1が登録されているか判定する(ス
テップ401)。登録されている場合は、今回のREA
D要求は過去にAP21がREADしたブロックと連続
ブロックのアクセスなので、更に次の連続するブロック
も将来アクセスされる可能性が高いと予測して先読み処
理に移行する。まず、当該記憶領域のREADブロック
番号記憶領域251のブロック番号をM−1からMに書
き換える(ステップ402)。次に、当該記憶領域のR
EADブロック番号記憶領域251に対応した先読みブ
ロック数記憶領域252に登録されているブロック数が
8未満か判定する(ステップ403)。8未満であれ
ば、該先読みブロック数記憶領域252のブロック数に
1を加算する(ステップ404)。次に、ブロック番号
M+1から該先読みブロック数記憶領域252に登録さ
れているブロック数分、先読みを実行する(ステップ4
05)。当該先読みブロック数記憶領域252のブロッ
ク数が8に達していれば、ステップ404をスキップす
る。すなわち、先読みブロック数を徐々に増加させ最大
8ブロックまで先読みする。
In FIG. 1, when the AP 21 issues a READ request with a block number M by a READ system call, the access pattern analysis unit 220 (hereinafter
(Simply referred to as OS) determines whether the block number M-1 is registered in any of the READ block number storage areas 251 in each storage area of the specific storage area 25 (step 401). If registered, this REA
Since the D request is an access to a block that the AP 21 has read in the past and a continuous block, it is predicted that the next continuous block is likely to be accessed in the future, and the prefetch process is performed. First, the block number of the READ block number storage area 251 of the storage area is rewritten from M-1 to M (step 402). Next, R of the storage area
It is determined whether the number of blocks registered in the prefetch block number storage area 252 corresponding to the EAD block number storage area 251 is less than 8 (step 403). If it is less than 8, 1 is added to the number of blocks in the prefetch block number storage area 252 (step 404). Next, the prefetch is executed from the block number M + 1 for the number of blocks registered in the prefetch block number storage area 252 (step 4).
05). If the number of blocks in the prefetch block number storage area 252 has reached 8, step 404 is skipped. That is, the number of prefetch blocks is gradually increased to prefetch up to a maximum of 8 blocks.

【0017】一方、いずれのREADブロック番号記憶
領域にもブロック番号M−1が登録されていない場合に
は、次にブロック番号Mが登録されているか判定する
(ステップ406)。登録されている場合は、過去のR
EADシステムコールで同一ブロックをREADしてい
ることになり、その時点で先読み処理が実行されている
ので、今回は先読みしない(ステップ409)。また、
登録されていない場合は、今回のREAD要求は過去の
READシステムコールでREADしたブロックとの連
続性がないため、この場合も先読みはしない。ただし、
この場合は、特定記憶領域25内の記憶領域の一番長く
更新されていないREADブロック番号記憶領域のブロ
ック番号をMに書き換え(ステップ407)、当該記憶
領域のREADブロック番号記憶領域に対応した先読み
ブロック数記憶領域に0を登録する(ステップ40
8)。
On the other hand, when the block number M-1 is not registered in any of the READ block number storage areas, it is determined whether the block number M is registered next (step 406). If registered, past R
Since the same block is being read by the EAD system call and the prefetching process is being executed at that time, prefetching is not performed this time (step 409). Also,
If it is not registered, the read request this time does not have continuity with the block read by the past READ system call, and therefore, prefetching is not performed in this case either. However,
In this case, the block number of the READ block number storage area that has not been updated the longest of the storage areas in the specific storage area 25 is rewritten to M (step 407), and the prefetch corresponding to the READ block number storage area of the storage area is performed. Register 0 in the block number storage area (step 40).
8).

【0018】二次記憶装置30から先読みしたデータ
は、OS22が管理するシステムバッファ24に保持し
て、AP21からそのデータに対するREADシステム
コールが発行された時点で、システムバッファ24から
APバッファ23にコピーする。システムバッファの数
には制限があるため、先読みしたシステムバッファは一
旦開放される。従って、先読みしたシステムバッファを
長時間、READシステムコールでREADしなければ
システムバッファが再利用され、先読みしたデータが消
滅する。すなわち、連続ブロックのREADであって
も、ブロックとブロックのアクセスの時間的間隔が空い
ている場合は先読みする価値がないため、一番長く更新
されていないREADブロック記憶領域を再利用するの
が妥当である。また、以上のことから、記憶領域25の
記憶領域の数Nはシステムバッファの総数によって決定
される。先読みによって、過去に先読みしてまだアクセ
スされていないシステムバッファを再利用することは無
駄になるので、記憶領域の数としては、 記憶領域の数N = システムバッファ数/先読みブロッ
ク数の最大値 が妥当である。なお、一番長く更新されていない記憶領
域の判定には、いわゆるLRUアルゴリズムを利用すれ
ばよい。
The data read in advance from the secondary storage device 30 is held in the system buffer 24 managed by the OS 22, and copied from the system buffer 24 to the AP buffer 23 when the READ system call for the data is issued from the AP 21. To do. Since the number of system buffers is limited, the prefetched system buffer is temporarily released. Therefore, if the prefetched system buffer is not read by the READ system call for a long time, the system buffer is reused and the prefetched data disappears. That is, even in the case of READ of continuous blocks, it is not worth reading ahead if the time interval between blocks is open, and thus it is preferable to reuse the READ block storage area that has not been updated for the longest time. It is reasonable. From the above, the number N of storage areas of the storage area 25 is determined by the total number of system buffers. By prefetching, it is useless to reuse the system buffer that has been prefetched in the past and has not been accessed. Therefore, the number of storage areas is equal to the number of storage areas N = number of system buffers / maximum number of prefetch blocks. It is reasonable. A so-called LRU algorithm may be used to determine the storage area that has not been updated for the longest time.

【0019】図5は、シーケンシャルアクセスにおい
て、本発明によるアクセスパターン解析アルゴリズムを
適用して先読みを実施した例である。便宜上、図5で
は、従来の場合も本発明と対比して示している。ここ
で、ブロック番号は二次記憶装置上のファイルの先頭か
らの通し番号、アクセス番号はAPがREAD要求した
ブロックの順序である。図5はシーケンシャルアクセス
の例であり、ファイルの先頭から順にREADシステム
コールで1ブロックずつREADするとしている。RE
AD要求ブロック番号は、APがREAD要求したブロ
ックの番号で、ここでは、1,2,3,4…である。先
読みブロック番号は、APがREAD要求を発行したと
きに先読みしたブロック番号で、従来と本発明の実施例
の場合を対比させてすべて挙げている。〈〉内のブロッ
ク番号は過去のREAD要求で既に先読み発行済みなの
で、先読みの対象にはならない。本発明では、APから
READ要求のあった次のブロックから最大8ブロック
先読みするので先読みブロック番号は重なってゆく。記
憶領域は、従来はREADブロック番号記憶領域が一個
だけであり、該記憶領域をMで示す。一方、本発明で
は、記憶領域は、図3で説明したREADブロック記憶
領域251と先読みブロック数記憶領域252からな
り、これがN組ある。M1は、N組ある記憶領域の或る
一つを示している。記憶領域M、M1の内容は、当該R
EADシステムコールでの更新後の値である。
FIG. 5 shows an example of pre-reading in the sequential access by applying the access pattern analysis algorithm according to the present invention. For the sake of convenience, FIG. 5 also shows the conventional case in comparison with the present invention. Here, the block number is the serial number from the beginning of the file on the secondary storage device, and the access number is the order of blocks requested by the AP for READ. FIG. 5 is an example of sequential access, and it is assumed that READ system calls are performed one block at a time from the beginning of the file. RE
The AD request block number is the number of the block that the AP READ requested and is 1, 2, 3, 4, ... The prefetch block number is the block number prefetched when the AP issues a READ request, and is all listed in comparison with the case of the conventional example and the embodiment of the present invention. Since the block numbers in <> have already been read ahead in the past READ request, they are not subject to read ahead. In the present invention, the pre-read block numbers are overlapped because the pre-reading is performed up to 8 blocks from the next block for which the READ request is issued from the AP. Conventionally, the storage area has only one READ block number storage area, and the storage area is indicated by M. On the other hand, in the present invention, the storage area includes the READ block storage area 251 and the prefetch block number storage area 252 described in FIG. 3, and there are N sets. M1 indicates one of N storage areas. The contents of the storage areas M and M1 are
This is the value after updating with the EAD system call.

【0020】図5より、従来では常に次の1ブロックを
先読みしており、これに対して、本発明では、先読みブ
ロック数が1ブロックずつ増加し、実施例では最大8ブ
ロックになっているのがわかる。すなわち、シーケンシ
ャルアクセスにおいては、従来でも本発明でも先読みは
実施される。ただし、先読みブロック数が異なる。
As shown in FIG. 5, the next one block is always read ahead in the prior art, whereas in the present invention, the number of read-ahead blocks is increased by one block, and the maximum number is eight in the embodiment. I understand. That is, in sequential access, prefetching is performed both in the conventional method and in the present invention. However, the number of prefetch blocks is different.

【0021】図6は、ランダムアクセスにおいて、本発
明によるアクセスパターン解析アルゴリズムを適用し先
読みを実施した例である。図6でも、従来の場合を本発
明と対比して示している。図6中の意味は図5と同じで
ある。ただし、記憶領域は本発明ではM1〜M3の3つ
を使用している。即ち、記憶領域は最大N組使用可能で
あるが、図6のランダムアクセスパターンでは3つで足
りる。
FIG. 6 shows an example of pre-reading by applying the access pattern analysis algorithm according to the present invention in random access. FIG. 6 also shows the conventional case in comparison with the present invention. The meanings in FIG. 6 are the same as those in FIG. However, three storage areas M1 to M3 are used in the present invention. That is, a maximum of N sets of storage areas can be used, but with the random access pattern shown in FIG.

【0022】図6に示すように、ランダムアクセスで
は、アクセス番号順にみるブロック番号は連続していな
い。但し、ファイルの一部分だけみると、アクセスした
ブロックが連続しているのがわかる。例えば、アクセス
番号1,4,7,10,13のREADアクセス要求で
ブロック1,2,3,4,5がアクセスされる。本発明
では、このようにランダムアクセスパターンに対して先
読みを実施することができるが、従来は全く先読みを実
施できない。
As shown in FIG. 6, in random access, the block numbers viewed in the order of access numbers are not continuous. However, if you look at only a part of the file, you can see that the accessed blocks are continuous. For example, blocks 1, 2, 3, 4, and 5 are accessed by READ access requests with access numbers 1, 4, 7, 10, and 13. According to the present invention, prefetching can be performed on the random access pattern in this manner, but conventionally, prefetching cannot be performed at all.

【0023】図7は、図1のシステムを制御の層構成で
示した図である。本実施例では二次記憶装置にHDを使
用している。図7に示すように、システム全体はAP、
OS、該OSの一部のHDドライバのソフトウエアで構
成される制御と、二次記憶装置のHDのハードウエアで
構成される制御の、合わせて4つの層に分類できる。本
発明の最大の特徴は、OS層のアクセスパターン解析で
あり、これは図4から図6により説明した如くである。
その他の部分は、APが二次記憶装置からデータを読み
込むための従来からの構成である。
FIG. 7 is a diagram showing the control system in the system of FIG. In this embodiment, HD is used as the secondary storage device. As shown in FIG. 7, the entire system is AP,
The control that is configured by the OS and the software of the HD driver that is a part of the OS, and the control that is configured by the HD hardware of the secondary storage device can be classified into four layers in total. The most important feature of the present invention is the access pattern analysis of the OS layer, which is as described with reference to FIGS. 4 to 6.
The other part is a conventional configuration for the AP to read data from the secondary storage device.

【0024】APはSEEKシステムコール、READ
システムコールを発行する。SEEKシステムコールは
ファイル中のアクセスするデータのオフセットを指定
し、READシステムコールはファイルデータを格納す
るAPバッファおよびデータ転送サイズを指定する。O
Sは、アクセスパターン解析、システムバッファ制御機
構およびREAD要求発行などを含む。アクセスパター
ン解析では、図4のフローチャートを実行して、APの
ファイルデータのアクセスパターンを解析し、先読み実
施の可否を予測する。さらに、先読みする場合は先読み
のデータ量を決定する。システムバッファ制御機構は、
二次記憶装置とAPバッファの中間に位置するシステム
バッファを制御する。即ち、二次記憶装置上のファイル
データを一旦システムバッファに読み込み、システムバ
ッファからAPバッファにコピーする。READ要求発
行では、APがREAD要求したデータブロック、およ
び、アクセスパターン解析で先読みの実施が予測された
場合、先読みのデータブロックのREAD要求をHDド
ライバに対して発行する。図2で説明したように、シス
テムバッファ1個では1ブロックのデータを保持でき
る。1ブロックのサイズは通常8KBである。HDドラ
イバは、二次記憶装置のHDを制御する部分で、HDに
対してOSからREAD要求のあったデータブロックの
I/O要求を発行する。I/O要求とはここでは、HD
に対するデータ転送要求(HDからシステムバッファへ
のデータ転送)を意味する。HDドライバはブロックマ
ージ機能をもつ。ブロックマージ機能とは複数の物理的
に連続したブロックのREAD要求を一まとめにして、
HDに対してI/O要求を発行する機能である。また、
HDドライバはシステムバッファのキュー管理機能をも
つ。図2で説明したように、システムバッファは複数キ
ューイングされており、HDドライバは、該キューへI
/O発行待ち、I/O処理完了等の登録を行う。
AP is SEEK system call, READ
Issue a system call. The SEEK system call specifies the offset of the data to be accessed in the file, and the READ system call specifies the AP buffer that stores the file data and the data transfer size. O
S includes access pattern analysis, system buffer control mechanism and READ request issue. In the access pattern analysis, the flowchart of FIG. 4 is executed to analyze the access pattern of the AP file data and predict whether or not prefetching will be performed. Further, when prefetching, the amount of prefetch data is determined. The system buffer control mechanism is
It controls a system buffer located between the secondary storage device and the AP buffer. That is, the file data on the secondary storage device is once read into the system buffer and copied from the system buffer to the AP buffer. In issuing a READ request, a read request for a data block requested by the AP and a read-ahead data block is predicted to be issued to the HD driver when the access pattern analysis predicts that read-ahead will be performed. As described with reference to FIG. 2, one system buffer can hold one block of data. The size of one block is usually 8 KB. The HD driver is a part that controls the HD of the secondary storage device, and issues an I / O request for a data block for which the OS has made a READ request to the HD. The I / O request here is HD
Data transfer request (data transfer from HD to system buffer). The HD driver has a block merge function. The block merge function collects READ requests of a plurality of physically continuous blocks into one,
This is a function of issuing an I / O request to the HD. Also,
The HD driver has a system buffer queue management function. As described in FIG. 2, a plurality of system buffers are queued, and the HD driver I
Registration of I / O issuance, I / O processing completion, etc. is performed.

【0025】HDはファイルデータが格納されているデ
バイスであり、ディスクキャッシュ機構をもつ。HDは
ディスクヘッドの位置決めをした後、データを一旦ディ
スクキャッシュにのせて、ディスクキャッシュからシス
テムバッファにデータ転送する。データ転送はDMA
(Direct Memory Access)を使用するため、データ
転送中はCPUは他の処理を平行して実行できる。ディ
スクキャッシュはFIFO(First In First Out)
になっており、システムバッファへデータを転送する
と、HDドライバから次のI/O要求がなくとも連続す
る次のデータをディスクキャッシュ上にのせてゆく。た
だし、ディスクキャッシュ機構をもたないHDもある。
本発明はディスクキャッシュ機構の有無に関係なく効果
を発揮する。
The HD is a device that stores file data and has a disk cache mechanism. After positioning the disk head, the HD temporarily puts the data on the disk cache and transfers the data from the disk cache to the system buffer. DMA for data transfer
Since (Direct Memory Access) is used, the CPU can execute other processing in parallel during data transfer. The disk cache is FIFO (First In First Out)
When data is transferred to the system buffer, the next continuous data is placed on the disk cache even if there is no next I / O request from the HD driver. However, some HDs do not have a disk cache mechanism.
The present invention is effective regardless of the presence or absence of the disk cache mechanism.

【0026】図8は、図7で説明した層構成におけるR
EADシステムコールのファイルデータの流れを示した
ものである。ファイルデータはディスクトラック、ディ
スクキャッシュ、システムバッファ、APバッファの順
序で流れてゆく。図8は、APがREADシステムコー
ルでAPバッファ(231とする)に対して1ブロック
のREADを要求し、OSがアクセスパターン解析の結
果4ブロックの先読みを実施した例である。
FIG. 8 shows R in the layer structure described in FIG.
6 shows a flow of file data of an EAD system call. File data flows in the order of disk track, disk cache, system buffer, AP buffer. FIG. 8 is an example in which the AP requests READ of one block to the AP buffer (denoted as 231) by the READ system call, and the OS prefetches four blocks as a result of the access pattern analysis.

【0027】OSは、最初にシステムバッファ(241
とする)にAPからREAD要求のあったブロックの情
報を設定し(システムバッファの割当て)、HDドライ
バにREAD要求を発行する。HDドライバはシステム
バッファ(241)のI/O要求をHDに発行した後、
直ちにOSに制御を戻す。HDは、ディスクヘッドの位
置決めをした後、ディスクトラック301のデータをデ
ィスクキャッシュ310に転送し、該ディスクキャッシ
ュ310からシステムバッファ241にデータをDMA
転送する。その間OSは先読みのブロック情報を、ここ
ではシステムバッファ242からシステムバッファ24
5に設定し、HDドライバにREAD要求を発行する。
HDドライバは、システムバッファ242からシステム
バッファ245のブロックをマージし、システムバッフ
ァ241のI/O処理終了がHDから通知されると、こ
のマージしたシステムバッファのI/O要求を一括して
HDに発行する。そして、再びOSに制御が戻る。OS
はシステムバッファ241のデータをAPバッファ23
1にコピーして、APバッファ231に対するREAD
システムコールはリターンする。その間、システムバッ
ファ242からシステムバッファ245のI/O処理
は、HD層によって平行して実行されている。
The OS first sets the system buffer (241
Information of the block for which the READ request is issued from the AP (system buffer allocation), and issues a READ request to the HD driver. After the HD driver issues an I / O request for the system buffer (241) to the HD,
Immediately returns control to the OS. After positioning the disk head, the HD transfers the data of the disk track 301 to the disk cache 310 and DMAs the data from the disk cache 310 to the system buffer 241.
Forward. During that time, the OS reads the block information of the read ahead, here, from the system buffer 242 to the system buffer 24.
Set to 5 and issue a READ request to the HD driver.
The HD driver merges the blocks of the system buffer 245 from the system buffer 242, and when the HD notifies the completion of the I / O processing of the system buffer 241, the merged system buffer I / O requests are collectively sent to the HD. Issue. Then, the control returns to the OS again. OS
The data in the system buffer 241 to the AP buffer 23
1 and copy to AP buffer 231
The system call returns. Meanwhile, the I / O processing from the system buffer 242 to the system buffer 245 is executed in parallel by the HD layer.

【0028】次に、APが例えばAPバッファ232に
対するREADシステムコールを発行すると、システム
バッファ242のREAD要求は既にAPバッファ23
1に対するREADシステムコールでOSが発行済みの
状態にある。従って、システムバッファ242のREA
D要求発行は省略され、システムバッファ242のI/
O処理終了を待つだけでREADシステムコールはリタ
ーンする。APバッファ231に対するREADシステ
ムコールの発行とAPバッファ232に対するREAD
システムコールの発行が時間的に間隔がある場合、AP
バッファ232に対するREADシステムコールの発行
時にはシステムバッファ242のI/O処理は既に終了
し、システムバッファ242は開放されている。ただ
し、システムバッファの数は先読みしたシステムバッフ
ァ数より十分に大きいため、先読みしたシステムバッフ
ァが直ぐに他の目的で再利用されることはない。再利用
されていなければOSはシステムバッファからAPバッ
ファにデータ転送するだけでREADシステムコールを
リターンさせることができる。
Next, when the AP issues a READ system call to the AP buffer 232, for example, the READ request for the system buffer 242 has already been issued to the AP buffer 23.
The OS has been issued by the READ system call for 1. Therefore, the REA of the system buffer 242
Issuing the D request is omitted, and I / O of the system buffer 242 is omitted.
The READ system call returns only by waiting for the end of the O processing. Issuing a READ system call to AP buffer 231 and READ to AP buffer 232.
If system calls are issued in time, AP
When the READ system call is issued to the buffer 232, the I / O processing of the system buffer 242 has already been completed and the system buffer 242 is released. However, since the number of system buffers is sufficiently larger than the number of system buffers read ahead, the system buffers read ahead are not immediately reused for other purposes. If not reused, the OS can return the READ system call simply by transferring data from the system buffer to the AP buffer.

【0029】次にディスクキャッシュ310の役割を説
明する。システムバッファ241のI/O終了からシス
テムバッファ242のI/O発行までには僅かな時間的
な間隔があり、その間ディスクは僅かに回転する。その
ため、ディスキャッシュ310がない場合は、システム
バッファ242のデータを読み込むために1回転待つ必
要がある。ディスクキャッシュ310があると、システ
ムバッファ241のデータ転送に続き、システムバッフ
ァ242のデータも自動的にディスクトラック301か
らディスクキャッシュ310に転送されるため、1回転
待つことなく、ディスクキャッシュ310からシステム
バッファ242へデータ転送することができる。
Next, the role of the disk cache 310 will be described. There is a slight time interval from the end of the I / O of the system buffer 241 to the issuance of the I / O of the system buffer 242, during which the disk slightly rotates. Therefore, if there is no discache 310, it is necessary to wait one rotation to read the data in the system buffer 242. When the disk cache 310 is present, the data in the system buffer 242 is also automatically transferred from the disk track 301 to the disk cache 310 following the data transfer in the system buffer 241, so that the system buffer can be transferred from the disk cache 310 without waiting for one revolution. Data can be transferred to 242.

【0030】HDドライバのブロックマージ機能は、デ
ィスクキャッシュ310がない場合に最大の効果を発揮
する。即ち、図8の例では、ディスクキャッシュ310
がない場合、1回転の待ちで済むが、HDドライバのブ
ロックマージ機能がないと、システムバッファ242か
らシステムバッファ245は全て分割されたI/O処理
要求発行となるので、合計4回転待つことになる。
The block merging function of the HD driver is most effective when there is no disk cache 310. That is, in the example of FIG. 8, the disk cache 310
If there is not, the system waits for one rotation, but without the block merge function of the HD driver, the system buffer 242 to the system buffer 245 will issue divided I / O processing requests, so wait a total of four rotations. Become.

【0031】図9と図10に、READシステムコール
の全体のフローチャートを示す。READシステムコー
ル処理は、READシステムコールの延長での処理(ト
ップハーフ処理)とI/O処理終了時に通知される割り
込みの延長でのHDドライバ処理(ボトムハーフ処理)
に分かれる。I/O処理とは、ここではHDのハードウ
エアレベルでの処理を意味し、I/O処理終了とはHD
からシステムバッファへのデータ転送が完了したことを
意味する。
9 and 10 show the entire flow chart of the READ system call. The READ system call process is a process in the extension of the READ system call (top half process) and an HD driver process in the extension of the interrupt notified at the end of the I / O process (bottom half process).
Divided into Here, the I / O processing means processing at the HD hardware level, and the I / O processing end means HD processing.
Means that the data transfer from to the system buffer is completed.

【0032】図9はトップハーフ処理のフローチャート
である。APがREADシステムコールでブロック番号
MにREAD要求を発行すると、OSはシステムバッフ
ァのキューをサーチして、ブロック番号MのI/O処理
が既に完了しているか判定する(ステップ901)。完
了しているのは、ブロック番号Mが過去に先読みされて
いて、さらにシステムバッファ上に既にデータ転送済み
の場合であり、このときは直ちに先読み処理を実行す
る。完了していない場合は、次に、同様にシステムバッ
ファのキューをサーチして、ブロック番号MのREAD
要求が既にOSからHDドライバに発行されているか判
定する(ステップ902)。発行されているのは、ブロ
ック番号Mが過去に先読みされている場合であり、この
ときは直ちに先読み処理を実行する。発行されていない
のは、ブロック番号Mが過去に先読みされていない場合
であり、システムバッファを割り当て、ブロック番号M
のREAD要求をOSからHDドライバに発行する(ス
テップ903)。HDドライバはHDがビジーか判定す
る(ステップ904)。ビジーとは、HDが他のブロッ
クのI/O処理中であることを意味する。ビジーでない
場合はブロック番号MのI/O要求をHDドライバから
HDに発行する(ステップ906)。ビジーの場合は、
I/O発行待ちキューにブロック番号Mを登録する(ス
テップ905)。キューに登録したI/O要求の処理
は、図10で説明するボトムハーフ処理で実行される。
FIG. 9 is a flowchart of the top half processing. When the AP issues a READ request to the block number M by the READ system call, the OS searches the queue of the system buffer and determines whether the I / O processing of the block number M is already completed (step 901). The process is completed when the block number M has been prefetched in the past and the data has already been transferred to the system buffer. At this time, the prefetch process is immediately executed. If not completed, the system buffer queue is searched in the same manner, and READ of block number M is performed.
It is determined whether the request has already been issued from the OS to the HD driver (step 902). The block number M is issued when the block number M has been prefetched in the past. At this time, the prefetch process is immediately executed. The block number M is not issued when the block number M has not been prefetched in the past, the system buffer is allocated, and the block number M
Is issued from the OS to the HD driver (step 903). The HD driver determines whether the HD is busy (step 904). Busy means that the HD is in the process of I / O for another block. If it is not busy, the I / O request of the block number M is issued from the HD driver to the HD (step 906). If busy,
The block number M is registered in the I / O issue waiting queue (step 905). The processing of the I / O request registered in the queue is executed by the bottom half processing described in FIG.

【0033】次に、先読みするか判定する(ステップ9
07)。先読み判定のアルゴリズムは図4で説明した如
くである。先読みする場合は、先読みブロック数を決定
する(ステップ908)。次に、システムバッファキュ
ーをサーチして、先読みブロックのI/O処理が既に完
了しているか判定する(ステップ909)。完了してい
るのは、過去の先読みブロックと重複していて、さらに
システムバッファへのデータ転送済みの場合である。先
読みブロックの重複については、図5および図6で説明
した如くである。完了していな場合は、次に、同様にシ
ステムバッファキューをサーチして先読みブロックのR
EAD要求が既にOSからHDドライバに発行されてい
るか判定する(ステップ910)。発行されているの
は、過去の先読みブロックと重複している場合である。
発行されていない場合は、システムバッファを割り当
て、先読みブロックのREAD要求をOSからHDドラ
イバに発行する(ステップ911)。HDドライバはH
Dがビジー状態か判定する(ステップ912)。ビジー
でない場合は先読みブロックのI/O要求を発行する
(ステップ914)。ビジーの場合は、I/O発行待ち
キューに先読みブロックを登録する(ステップ91
3)。
Next, it is determined whether or not to prefetch (step 9).
07). The pre-reading determination algorithm is as described in FIG. When pre-reading, the number of pre-reading blocks is determined (step 908). Next, the system buffer queue is searched to determine whether the I / O processing of the prefetch block has already been completed (step 909). It is completed when it overlaps with the past read-ahead block and the data has already been transferred to the system buffer. The overlap of prefetch blocks is as described in FIGS. 5 and 6. If it is not completed, the system buffer queue is searched in the same manner to read the R of the look-ahead block.
It is determined whether the EAD request has already been issued from the OS to the HD driver (step 910). It is issued when it overlaps with the past look-ahead block.
If it has not been issued, the system buffer is allocated and the READ request for the prefetch block is issued from the OS to the HD driver (step 911). HD driver is H
It is determined whether D is busy (step 912). If it is not busy, an I / O request for the prefetch block is issued (step 914). If it is busy, the prefetch block is registered in the I / O issue waiting queue (step 91).
3).

【0034】次に、ブロック番号MのI/O処理が既に
完了しているか判定する(ステップ915)。完了して
いない場合は、ブロック番号MのI/O処理を待ち(ス
テップ916)、完了していれば、システムバッファか
らAPバッファへブロック番号Mのデータをコピーして
(ステップ917)、READシステムコールはリター
ンする。
Next, it is judged whether the I / O processing of the block number M has been completed (step 915). If it is not completed, the I / O processing of the block number M is waited (step 916). If it is completed, the data of the block number M is copied from the system buffer to the AP buffer (step 917). The call returns.

【0035】図10はボトムハーフ処理のフローチャー
トである。ボトムハーフ処理はI/O終了割り込みを契
機にHDドライバによって実行される。まず、HDドラ
イバはトップハーフにI/O終了を通知する(ステップ
1001)。この通知により、図9のステップ916は
待ち状態を開放される。次に、システムバッファキュー
をサーチして、I/O発行待ちキューにエントリがある
か判定する(ステップ1002)。I/O発行待ちキュ
ーには、図9のステップ905および913でエントリ
される。エントリされている場合は、I/O要求をHD
に発行する(ステップ1003)。このとき、キューに
複数の連続ブロックのエントリがある場合はブロックマ
ージしてI/Oを要求を発行する。
FIG. 10 is a flowchart of the bottom half processing. The bottom half processing is executed by the HD driver triggered by the I / O end interrupt. First, the HD driver notifies the top half of the end of I / O (step 1001). By this notification, the waiting state is released in step 916 of FIG. Next, the system buffer queue is searched to determine whether there is an entry in the I / O issue waiting queue (step 1002). The I / O issue waiting queue is entered in steps 905 and 913 of FIG. If there is an entry, the I / O request is HD
(Step 1003). At this time, if there are a plurality of consecutive block entries in the queue, the blocks are merged and an I / O request is issued.

【0036】図11から図14は本発明の先読みにより
HDの回転待ちとシーク回数が減少していることを検証
したものである。
FIGS. 11 to 14 verify that the wait for HD rotation and the number of seeks are reduced by prefetching according to the present invention.

【0037】図11は、シーケンシャルアクセスにおけ
る本発明での検証である。READ要求ブロックは、A
PがREADシステムコールで要求したブロック、先読
みブロックはそのときに先読みしたブロックである。I
/O発行は、そのREADシステムコールの延長でI/
O処理要求が発行されたか否を示すもので、マージブロ
ック数はI/O処理発行時にマージされたブロック数で
ある。回転待ちは、そのI/O処理でデータをHDから
読み込む際にディスクの回転待ちがあったかを示すもの
であり、ディスクキャッシュがある場合とない場合をそ
れぞれ示している。空欄は回転待ちがなかったことを意
味する。
FIG. 11 shows verification in the present invention in sequential access. The READ request block is A
The block requested by P in the READ system call and the prefetch block are the blocks prefetched at that time. I
I / O is issued by extension of the READ system call.
The number of merge blocks is the number of blocks merged when the I / O process is issued. The rotation wait shows whether there was a disk rotation wait when the data was read from the HD in the I / O processing, and shows whether there is a disk cache or not. The blank column means that there was no waiting for rotation.

【0038】READ要求ブロック1の場合は、1回目
のアクセスなので、ブロック番号1だけをI/O処理要
求発行する。この際、ディスクキャッシュの有無に関係
なく回転待ちがある。シークに関してはシーケンシャル
アクセス時は無視する。READ要求ブロック2の場合
はブロック番号2のI/O処理要求を発行したのち、ブ
ロック番号3をI/O処理要求発行待ちとしてシステム
バッファキューに登録する。この際、ディスクキャッシ
ュがある場合は回転待ちはないが、ディスクキャッシュ
がない場合は回転待ちがある。以下、I/O処理要求発
行をともなうとき、ディスクキャッシュがある場合は回
転待ちはないが、ディスクキャッシュがない場合は回転
待ちがある。ブロック番号2のI/O処理が終了する
と、直ちにシステムバッファキューに登録されているブ
ロック番号3のI/O処理要求が発行される。READ
要求ブロック3の場合はブロック番号3は既にI/O処
理中にあり、先読みブロック4、5をキューに登録す
る。ブロック番号3のI/O処理が終了すると、ブロッ
ク番号4、5がマージされてI/O処理要求発行され
る。READ要求ブロック4の場合はブロック番号4は
既にI/O処理中にあり、先読みブロック6、7をシス
テムバッファキューに登録する。ブロック番号4のI/
O処理が終了するとブ、ロック番号6、7がマージされ
てI/O処理要求が発行される。READ要求ブロック
5の場合は、ブロック番号5はブロック番号4とマージ
されていたために、既にI/O処理終了済みであり、先
読みブロック8、9をシステムバッファキューに登録す
る。このときブロック番号6、7はI/O処理中にあ
り、このシステムコールの延長ではI/O処理要求は発
行されない。
In the case of READ request block 1, since it is the first access, only block number 1 is issued as an I / O processing request. At this time, there is a rotation wait regardless of the presence or absence of the disk cache. The seek is ignored during sequential access. In the case of the READ request block 2, after issuing the I / O processing request of the block number 2, the block number 3 is registered in the system buffer queue as an I / O processing request issue wait. At this time, if there is a disk cache, there is no wait for rotation, but if there is no disk cache, there is a wait for rotation. Hereinafter, when an I / O processing request is issued, there is no rotation wait if there is a disk cache, but there is a rotation wait if there is no disk cache. Immediately after the I / O processing of the block number 2 ends, the I / O processing request of the block number 3 registered in the system buffer queue is issued. READ
In the case of the request block 3, the block number 3 is already under I / O processing, and the prefetch blocks 4 and 5 are registered in the queue. When the I / O processing of the block number 3 is completed, the block numbers 4 and 5 are merged and the I / O processing request is issued. In the case of the READ request block 4, the block number 4 is already under I / O processing, and the prefetch blocks 6 and 7 are registered in the system buffer queue. Block number 4 I /
When the O processing is completed, the lock numbers 6 and 7 are merged and an I / O processing request is issued. In the case of the READ request block 5, since the block number 5 has been merged with the block number 4, the I / O processing has already been completed, and the prefetch blocks 8 and 9 are registered in the system buffer queue. At this time, the block numbers 6 and 7 are in the process of I / O, and the I / O process request is not issued by the extension of this system call.

【0039】以下、同様の動作を繰り返してマージブロ
ック数が増加し、4、5ブロックで収束する。I/O処
理要求発行回数はマージブロック数分減少し、回転待ち
回数もそれにともなって減少する。READ要求ブロッ
ク21の時点で、回転待ちの回数はディスクキャッシュ
がある場合で1回、ない場合で9回となる。READ要
求ブロック12と21は状態がすべて一致しており、以
降は12から21のサイクルを繰り返し、I/O処理要
求発行回数はREAD要求ブロック9個にたいして2回
の割合となる。
After that, the same operation is repeated to increase the number of merge blocks, and the merge blocks are converged at 4 and 5 blocks. The number of I / O processing requests issued is reduced by the number of merge blocks, and the number of rotation waits is also reduced accordingly. At the time of the READ request block 21, the number of rotation waits is once when there is a disk cache and 9 times when there is no disk cache. The states of the READ request blocks 12 and 21 are all the same, and thereafter, the cycle of 12 to 21 is repeated, and the number of I / O processing request issuances is twice the 9 READ request blocks.

【0040】図12はシーケンシャルアクセスにおける
従来の先読みでの検証である。従来は先読みブロック数
は1個なので、READ要求ブロックのI/O処理終了
の時点で、必ず先読みブロックのI/O処理要求が発行
されていた。従って、回転待ちはディスクキャッシュが
ある場合は1回、ディスクキャッシュがない場合はRE
AD要求ブロック数分発生した。
FIG. 12 shows the verification in the conventional prefetch in the sequential access. Conventionally, since the number of prefetch blocks is one, the I / O processing request for the prefetch block is always issued when the I / O processing of the READ request block ends. Therefore, the rotation wait is once if there is a disk cache, and RE if there is no disk cache.
The number of AD requested blocks has occurred.

【0041】シーケンシャルアクセスにおいて、本発明
と従来を比較すると、ディスクキャッシュがある場合
は、回転待ちの回数はともに1回、ディスクキャッシュ
がない場合は、READ要求ブロック21の時点で、本
発明は9回、従来は21回となる。READ要求ブロッ
ク13以降をみると、本発明では2回、従来は9回とな
る。
In the sequential access, comparing the present invention with the conventional one, when the disk cache is present, the number of rotation waiting times is one, and when the disk cache is not present, the present invention is 9 at the time of the READ request block 21. Times, 21 times in the past. Looking at the READ request block 13 and thereafter, the number is 2 in the present invention and 9 in the conventional case.

【0042】図13は、ランダムアクセスにおける本発
明での検証である。これは、ブロック番号1から11と
50から59のデータを、1ブロックずつ交互にREA
D要求した例である。即ち、図6ではデータが3箇所に
分散した例を示したが、図13は2箇所に分散した例を
示したものである。先読みのアルゴリズムは、図6と同
じである。
FIG. 13 shows verification in the present invention in random access. This is the data of block numbers 1 to 11 and 50 to 59, alternately REA one block at a time.
This is an example of D request. That is, FIG. 6 shows an example in which data is distributed at three points, whereas FIG. 13 shows an example in which data is distributed at two points. The look-ahead algorithm is the same as in FIG.

【0043】ランダムアクセスでは、連続しないブロッ
クのI/O処理要求発行時にはシークが発生する。RE
AD要求ブロック2の場合は、まずブロック番号2のI
/O処理要求を発行し、先読みブロックのブロック番号
3はシステムバッファキューに登録される。ブロック番
号2のI/O処理が終了すると、ブロック番号3のI/
O処理要求が発行される。そして、READ要求ブロッ
ク51の場合はまだブロック番号3のI/O処理が終了
していないため、ブロック番号51はシステムバッファ
キューに登録される。そして、先読みブロックのブロッ
ク番号52もシステムバッファキューに登録される。ブ
ロック番号3のI/O処理が終了すると、ブロック番号
51と52がマージされ、I/O処理要求が発行され
る。
In random access, a seek occurs when an I / O processing request for blocks that are not continuous is issued. RE
In the case of the AD request block 2, I of block number 2 is first
The / O processing request is issued, and block number 3 of the prefetch block is registered in the system buffer queue. When the I / O processing of block number 2 ends, the I / O of block number 3
O processing request is issued. In the case of the READ request block 51, the block number 51 is registered in the system buffer queue because the I / O processing of the block number 3 has not been completed yet. Then, the block number 52 of the prefetch block is also registered in the system buffer queue. When the I / O processing of the block number 3 is completed, the block numbers 51 and 52 are merged and an I / O processing request is issued.

【0044】ブロック番号51と52のI/O処理が終
了すると、READ要求ブロック3へ処理が移行する。
従って、READ要求ブロック3の処理開始時は、I/
O処理中のブロックやキューにエントリされているブロ
ックはない。ブロック番号3のI/O処理は既に終了し
ているため、直ちに先読みブロックのブロック番号4の
I/O処理要求が発行される。そして、ブロック番号5
がシステムバッファキューに登録される。ブロック番号
4は先読みブロックなので、I/O処理終了を待たずに
READ要求ブロック52の処理へ移行する。ブロック
番号52のI/O処理は既に終了しているので、ブロッ
ク番号53と54をシステムバッファキューに登録す
る。従って、READ要求ブロック52の処理では、I
/O処理要求は発行されない。READ要求ブロック4
の処理開始時は、ブロック番号4はまだI/O処理中な
ので、先読みブロック6、7をシステムバッファキュー
に登録する。ブロック番号4のI/O処理が終了する
と、先読みブロック5、6、7がマージされ、I/O処
理要求が発行される。このとき、ブロック番号4のI/
O処理と連続ブロックのためシークは発生せず、また、
ディスクキャッシュがある場合は回転待ちも発生しな
い。
When the I / O processing of the block numbers 51 and 52 is completed, the processing shifts to the READ request block 3.
Therefore, when the processing of the READ request block 3 is started,
O There is no block being processed or a block entered in the queue. Since the I / O processing of the block number 3 has already been completed, the I / O processing request of the block number 4 of the prefetch block is immediately issued. And block number 5
Is registered in the system buffer queue. Since the block number 4 is the prefetch block, the processing shifts to the processing of the READ request block 52 without waiting for the end of the I / O processing. Since the I / O processing of the block number 52 has already been completed, the block numbers 53 and 54 are registered in the system buffer queue. Therefore, in the processing of the READ request block 52, I
No / O processing request is issued. READ request block 4
Since the block number 4 is still in the process of I / O at the start of the processing (1), the prefetch blocks 6 and 7 are registered in the system buffer queue. When the I / O processing of the block number 4 is completed, the prefetch blocks 5, 6, and 7 are merged, and the I / O processing request is issued. At this time, block number 4 I /
Seek does not occur due to O processing and continuous blocks.
If there is a disk cache, rotation wait does not occur.

【0045】以下同様にして、図13の例では、I/O
処理要求発行回数は11回、シークは9回、回転待ちは
ディスクキャッシュがある場合は9回、ない場合は11
回となる。
Similarly, in the example of FIG. 13, I / O
The number of processing request issuance is 11 times, seek is 9 times, rotation wait is 9 times if there is a disk cache, 11 if not
Times.

【0046】図14は、ランダムアクセスにおける従来
の先読みの検証である。従来の先読みアルゴリズムで
は、ランダムアクセスパターンは全く先読みできないた
め、図14に示すように1ブロック毎にシークと回転待
ちが発生する。従って、この例では、21回のシークと
21回の回転待ちがディスクキャッシュの有無に関係な
く発生する。
FIG. 14 shows the verification of the conventional look-ahead in random access. With the conventional read-ahead algorithm, random access patterns cannot be read ahead at all, so seek and rotation wait occur for each block as shown in FIG. Therefore, in this example, 21 seeks and 21 rotation waits occur regardless of the presence or absence of the disk cache.

【0047】図13と図14のランダムアクセスにおい
て、本発明と従来を比較すると、シーク回数は本発明が
9回、従来が21回、回転待ちは、ディスクキャッシュ
がある場合は本発明が9回、従来が21回、ディスクキ
ャッシュがない場合は、本発明が11回、従来が21回
である。
In the random access of FIGS. 13 and 14, comparing the present invention with the prior art, the number of seeks is 9 in the present invention, 21 in the conventional, and waiting for rotation is 9 in the present invention when there is a disk cache. If the conventional method is 21 times and the disk cache is not provided, the present invention is 11 times and the conventional method is 21 times.

【0048】[0048]

【発明の効果】以上の説明から明らかなように、本発明
のデータ先読み方法によれば、以下のような効果を奏す
る。
As is apparent from the above description, the data prefetching method of the present invention has the following effects.

【0049】(1) 従来ランダムアクセスと見なされて
先読みしていなかったアクセスパターンに対して先読み
を実施できることにより、I/O処理とAP処理を平行
して実行することが可能になり、APのスループットを
向上させることができる。
(1) Since prefetching can be performed for an access pattern which has been conventionally regarded as random access and which has not been prefetched, it becomes possible to execute I / O processing and AP processing in parallel. Throughput can be improved.

【0050】(2) シーケンシャルアクセスでも、従来
1ブロックしか先読みしていなかったものを、例えば最
大8ブロックまで先読みすることにより、複数ブロック
の一括I/O処理を実現することができる。その結果、
例えば二次記憶装置をハードディスク(HD)とした場
合、HDドライバからHDに対するI/O処理発行回数
が減り、ディスクのシークおよび回転待ち回数が半分以
下に減少し、ファイルアクセス等を高速化することがで
きる。
(2) Even in sequential access, batch I / O processing of a plurality of blocks can be realized by pre-reading up to, for example, a maximum of 8 blocks that were previously read in advance for only 1 block. as a result,
For example, if the secondary storage device is a hard disk (HD), the number of times I / O processing is issued from the HD driver to the HD is reduced, the number of disk seeks and rotation waits is reduced to less than half, and file access is accelerated. You can

【0051】(3) 先読みするブロック数を変動させる
ことにより、APがREAD要求したブロックの総数に
対して、1回の先読みブロック数を小さくすることがで
き、先読みしたブロックをAPがアクセスしなかったと
きの損害を軽減させることができる。
(3) By changing the number of pre-read blocks, the number of pre-read blocks can be reduced once with respect to the total number of blocks read by the AP, and the pre-read block is not accessed by the AP. It is possible to reduce the damage caused by hitting.

【0052】(4) READシステムコールのAPイン
タエースを変ることなく、OSレベルで先読み機能を実
現することにより、APは従来のファイルアクセス方法
を変更することなく、先読みの効果を得ることができ
る。
(4) By realizing the read-ahead function at the OS level without changing the AP interface of the READ system call, the AP can obtain the read-ahead effect without changing the conventional file access method. .

【図面の簡単な説明】[Brief description of the drawings]

【図1】本発明の一実施例のシステム全体の概略構成図
である。
FIG. 1 is a schematic configuration diagram of an entire system according to an embodiment of the present invention.

【図2】図1中のシステムバッファの概念図である。FIG. 2 is a conceptual diagram of a system buffer in FIG.

【図3】図1中の特定記憶領域の構成例を示す図であ
る。
FIG. 3 is a diagram showing a configuration example of a specific storage area in FIG.

【図4】本発明によるデータ先読み処理のフローチャー
トである。
FIG. 4 is a flowchart of a data prefetch process according to the present invention.

【図5】シーケンシャルアクセスに本発明及び従来の先
読みを実施した例である。
FIG. 5 is an example in which the present invention and the conventional read-ahead are executed for sequential access.

【図6】ランダムアクセスに本発明及び従来の先読みを
実施した例である。
FIG. 6 is an example in which the present invention and the conventional read-ahead are performed for random access.

【図7】本発明の先読みを実現する上での制御の層構成
例を説明する図である。
FIG. 7 is a diagram illustrating an example of a layer structure of control for realizing prefetching according to the present invention.

【図8】図7におけるREADシステムコールのデータ
の流れを示す図である。
8 is a diagram showing a data flow of a READ system call in FIG.

【図9】READシステムコールのトップハーフ処理の
全体のフローチャートである。
FIG. 9 is an overall flowchart of a top half process of a READ system call.

【図10】READシステムコールのボトムハーフ処理
の全体のフローチャートである。
FIG. 10 is an overall flowchart of a bottom half process of a READ system call.

【図11】本発明によるシーケンシャルアクセスにおけ
るハードディスクの回転待ち回数を検証した例である。
FIG. 11 is an example of verifying the number of times of waiting for rotation of a hard disk in sequential access according to the present invention.

【図12】従来の先読みによるシーケンシャルアクセス
におけるハードディスクの回転待ち回数を検証した例で
ある。
FIG. 12 is an example of verifying the number of times of waiting for rotation of a hard disk in conventional sequential access by prefetching.

【図13】本発明によるランダムアクセスにおけるハー
ドディスクのシーク、回転待ち回数を検証した例であ
る。
FIG. 13 is an example of verifying the number of seeks and rotation waiting times of a hard disk in random access according to the present invention.

【図14】従来の先読みによるランダムアクセスにおけ
るハードディスクのシーク、回転待ち回数を検証した例
である。
FIG. 14 is an example of verifying the number of seeks and rotation waiting times of a hard disk in conventional random access by prefetching.

【符号の説明】[Explanation of symbols]

10 中央処理装置(CPU) 20 主記憶装置 21 アプリケーションプログラム(AP) 22 オペレーティングシステム(OS) 220 アクセスパターン解析部 23 APバッファ 24 システムバッファ 30 二次記憶装置 31 ディスクキャッシュ機構 10 Central Processing Unit (CPU) 20 Main Storage Device 21 Application Program (AP) 22 Operating System (OS) 220 Access Pattern Analysis Unit 23 AP Buffer 24 System Buffer 30 Secondary Storage Device 31 Disk Cache Mechanism

Claims (3)

【特許請求の範囲】[Claims] 【請求項1】 中央処理装置、主記憶装置、二次記憶装
置を有する電子計算機システムにおいて、前記二次記憶
装置に格納されたデータを前記主記憶装置に先読みする
方法であって、 前記二次記憶装置に格納されたデータを連続・不連続に
アクセスするデータアクセスパターンを解析して、将来
アクセスされるデータを予測し、当該データを前記二次
記憶装置から前記主記憶装置へ先読みすることを特徴と
するデータ先読み方法。
1. A method for prefetching data stored in the secondary storage device into the main storage device in a computer system having a central processing unit, a main storage device, and a secondary storage device, the secondary storage device comprising: By analyzing the data access pattern for accessing the data stored in the storage device continuously / discontinuously, predicting the data to be accessed in the future, and prefetching the data from the secondary storage device to the main storage device, Characteristic data prefetching method.
【請求項2】 請求項1記載のデータ先読み方法におい
て、将来アクセスされるデータの予測結果に応じて、先
読みするデータ量を動的に変化させることを特徴とする
データ先読み方法。
2. The data pre-reading method according to claim 1, wherein the amount of data to be pre-readed is dynamically changed according to a prediction result of data to be accessed in the future.
【請求項3】 請求項1もしくは2記載のデータ先読み
方法において、二次記憶装置のデータを過去にアクセス
したアドレスとその先読みデータ数との組を複数、特定
記憶領域に保持しておき、二次記憶装置に対するアクセ
ス要求時、前記特定記憶領域の内容に基づいて、将来ア
クセスされるデータの予測、先読みするデータ量の算定
を行うことを特徴とするデータ先読み方法。
3. The data pre-reading method according to claim 1, wherein a plurality of sets of an address that has accessed data in the secondary storage device in the past and the number of pre-reading data are held in a specific storage area. A data pre-reading method, which comprises predicting data to be accessed in the future and calculating the amount of data to be read in advance based on the contents of the specific storage area when an access request is made to the next storage device.
JP34390695A 1995-12-28 1995-12-28 Data prefetch control method and information processing apparatus Expired - Fee Related JP3469383B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP34390695A JP3469383B2 (en) 1995-12-28 1995-12-28 Data prefetch control method and information processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP34390695A JP3469383B2 (en) 1995-12-28 1995-12-28 Data prefetch control method and information processing apparatus

Publications (2)

Publication Number Publication Date
JPH09185462A true JPH09185462A (en) 1997-07-15
JP3469383B2 JP3469383B2 (en) 2003-11-25

Family

ID=18365163

Family Applications (1)

Application Number Title Priority Date Filing Date
JP34390695A Expired - Fee Related JP3469383B2 (en) 1995-12-28 1995-12-28 Data prefetch control method and information processing apparatus

Country Status (1)

Country Link
JP (1) JP3469383B2 (en)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001020442A1 (en) * 1999-09-16 2001-03-22 Matsushita Electric Industrial Co., Ltd. Magnetic disk, method of accessing magnetic disk device, and recording medium storing disk access control program for magnetic disk device
US6721490B1 (en) 1998-09-30 2004-04-13 Kabushiki Kaisha Toshiba Hierarchical storage scheme and data playback scheme for enabling random access to realtime stream data
JP2005258735A (en) * 2004-03-11 2005-09-22 Hitachi Ltd Db cooperation prefetch system
JP2008092321A (en) * 2006-10-03 2008-04-17 Nikon Corp Image browser
JP2009211217A (en) * 2008-03-01 2009-09-17 Toshiba Corp Memory system
JP2009217859A (en) * 2008-03-07 2009-09-24 Lenovo Singapore Pte Ltd Reproducing method without interruption of medium file
US8588591B2 (en) 2011-04-07 2013-11-19 Sony Corporation Reproducing apparatus and reproducing method
US8904088B2 (en) 2008-09-30 2014-12-02 Samsung Electronics Co., Ltd. Method of managing a solid state drive, associated systems and implementations
US9983806B2 (en) 2012-06-25 2018-05-29 Fujitsu Limited Storage controlling apparatus, information processing apparatus, and computer-readable recording medium having stored therein storage controlling program

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6721490B1 (en) 1998-09-30 2004-04-13 Kabushiki Kaisha Toshiba Hierarchical storage scheme and data playback scheme for enabling random access to realtime stream data
US7580610B2 (en) 1998-09-30 2009-08-25 Kabushiki Kaisha Toshiba Hierarchical storage scheme and data playback scheme for enabling random access to realtime stream data
US6535953B1 (en) 1999-09-16 2003-03-18 Matsushita Electric Industrial Co., Ltd. Magnetic disk, method of accessing magnetic disk device, and recording medium storing disk access control program for magnetic disk device
KR100432849B1 (en) * 1999-09-16 2004-05-22 마츠시타 덴끼 산교 가부시키가이샤 Magnetic disk, method of accessing magnetic disk device, and recording medium storing disk access control program for magnetic disk device
CN1294476C (en) * 1999-09-16 2007-01-10 松下电器产业株式会社 Magnetic disk, method of accessing magnetic disk device, and recording medium storing disk access control program for magnetic disk device
WO2001020442A1 (en) * 1999-09-16 2001-03-22 Matsushita Electric Industrial Co., Ltd. Magnetic disk, method of accessing magnetic disk device, and recording medium storing disk access control program for magnetic disk device
JP4486384B2 (en) * 2004-03-11 2010-06-23 株式会社日立製作所 DB linkage prefetch system
JP2005258735A (en) * 2004-03-11 2005-09-22 Hitachi Ltd Db cooperation prefetch system
JP2008092321A (en) * 2006-10-03 2008-04-17 Nikon Corp Image browser
JP2009211217A (en) * 2008-03-01 2009-09-17 Toshiba Corp Memory system
US8225047B2 (en) 2008-03-01 2012-07-17 Kabushiki Kaisha Toshiba Memory system with pre-fetch operation
JP2009217859A (en) * 2008-03-07 2009-09-24 Lenovo Singapore Pte Ltd Reproducing method without interruption of medium file
US8904088B2 (en) 2008-09-30 2014-12-02 Samsung Electronics Co., Ltd. Method of managing a solid state drive, associated systems and implementations
US9542199B2 (en) 2008-09-30 2017-01-10 Samsung Electronics Co., Ltd. Method of managing a solid state drive, associated systems and implementations
US8588591B2 (en) 2011-04-07 2013-11-19 Sony Corporation Reproducing apparatus and reproducing method
US9983806B2 (en) 2012-06-25 2018-05-29 Fujitsu Limited Storage controlling apparatus, information processing apparatus, and computer-readable recording medium having stored therein storage controlling program

Also Published As

Publication number Publication date
JP3469383B2 (en) 2003-11-25

Similar Documents

Publication Publication Date Title
US6324599B1 (en) Computer system and method for tracking DMA transferred data within a read-ahead local buffer without interrupting the host processor
JP3522527B2 (en) I / O control device and I / O control method
US6516389B1 (en) Disk control device
US6542960B1 (en) System and method for parity caching based on stripe locking in raid data storage
US6782454B1 (en) System and method for pre-fetching for pointer linked data structures
JPH06289999A (en) Disk control system
JPH06236322A (en) Cache system for disk array
US5696931A (en) Disc drive controller with apparatus and method for automatic transfer of cache data
JP4888839B2 (en) Vector computer system having cache memory and method of operating the same
JP3469383B2 (en) Data prefetch control method and information processing apparatus
WO1998026352A1 (en) Method of file pre-read control in computer system
JP2001188658A (en) Disk control system and data rearranging method
JPH08137754A (en) Disk cache device
JPH08263380A (en) Disk cache control system
US20010032297A1 (en) Cache memory apparatus and data processing system
JP3555523B2 (en) Memory management device, management method, and recording medium recording management program
JP3516326B2 (en) Memory controller having shared cache memory and computer system having the same
JP2002182978A (en) Storage sub-system and information processing system
JP2000047942A (en) Device and method for controlling cache memory
JPH0210450A (en) Prefetch control system for cache memory
JPH0651982A (en) Arithmetic processing unit
JPH06342401A (en) Secondary memory controller
JPH10124387A (en) Unit and method for cache control
JP2003044357A (en) Cache prefetch system
CN110688155A (en) Merging method for storage instruction accessing non-cacheable area

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080905

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20080905

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20090905

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20090905

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20100905

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20100905

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20110905

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20120905

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees