JP2774728B2 - Disk array control method - Google Patents

Disk array control method

Info

Publication number
JP2774728B2
JP2774728B2 JP4087223A JP8722392A JP2774728B2 JP 2774728 B2 JP2774728 B2 JP 2774728B2 JP 4087223 A JP4087223 A JP 4087223A JP 8722392 A JP8722392 A JP 8722392A JP 2774728 B2 JP2774728 B2 JP 2774728B2
Authority
JP
Japan
Prior art keywords
data
command
disk
read
host computer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP4087223A
Other languages
Japanese (ja)
Other versions
JPH05289818A (en
Inventor
直人 松並
稔 吉田
章一 宮沢
高 大枝
聖志 本田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 JP4087223A priority Critical patent/JP2774728B2/en
Priority to US08/043,841 priority patent/US5740465A/en
Publication of JPH05289818A publication Critical patent/JPH05289818A/en
Application granted granted Critical
Publication of JP2774728B2 publication Critical patent/JP2774728B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【産業上の利用分野】本発明は、ディスクアレイ制御装
置における高速データ転送のためのディスクアレイ制御
方式に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a disk array control system for high-speed data transfer in a disk array controller.

【0002】[0002]

【従来の技術】ディスクアレイ装置は、複数台のディス
ク装置が接続されており、データを並列に読み書きする
ことができる点で、単体ディスク装置に比べて処理速度
の高速化を実現するものである。
2. Description of the Related Art A disk array device is connected to a plurality of disk devices and can read and write data in parallel, thereby realizing a higher processing speed than a single disk device. .

【0003】ディスクアレイ装置は、複数台のディスク
装置とこれらを制御するディスクアレイ制御装置によっ
て構成されているが、その上位に接続される計算機(上
位計算機)からは1台のディスク装置に見えるようにす
る必要があり、このため、上位計算機から発行されたコ
マンドをディスクアレイ制御装置内部で各ディスク装置
へのコマンドに変換することが必要になる。このような
データ転送制御方式は、例えば特開昭62−13132
1号公報等に開示されている。以下、これについて、図
16により説明する。
The disk array device is composed of a plurality of disk devices and a disk array control device for controlling the disk devices. The computer connected to the disk device (upper computer) looks like a single disk device. Therefore, it is necessary to convert a command issued from a host computer into a command for each disk device in the disk array control device. Such a data transfer control method is disclosed in, for example, Japanese Patent Application Laid-Open No. 62-13132.
No. 1 publication. Hereinafter, this will be described with reference to FIG.

【0004】図16において、上記のコマンド変換を実
施し、各ディスク装置にコマンドを分配する手段13
と、各ディスク装置へコマンドを発行しまたリード及び
ライトのデータ転送が終了したことを検出する手段15
と、コマンドを上位計算機から受信し、また、コマンド
の終了を通知する手段11と、上位計算機と各ディスク
装置とのデータ転送を制御する手段17と、これらの各
手段を制御する手段16とから構成されており、上位計
算機からの単一のコマンドを複数のディスク装置の各々
に、単一なコマンドであると見せ掛けることで複数のデ
ィスク装置を同じに並列に動作させ、高速データ転送を
実現するものである。
In FIG. 16, means 13 for performing the above-mentioned command conversion and distributing the command to each disk device is provided.
Means for issuing a command to each disk device and detecting completion of read and write data transfer.
, A command that receives a command from a host computer, and notifies the end of the command, a unit 17 that controls data transfer between the host computer and each disk device, and a unit 16 that controls these units. A single command from the host computer is assumed to be a single command to each of the multiple disk devices, and multiple disk devices are operated in parallel in the same way, realizing high-speed data transfer. Is what you do.

【0005】また、ディスクアレイ装置は、多数のディ
スク装置を接続しており、ディスク装置の台数に比例し
てディスクの故障率が上がり、高信頼化の点で問題とな
る。そこで、数台のデータディスク装置と、一台のパリ
ティディスク装置とからグループを構成する。また、デ
ータをストライプと呼ばれるデータ単位に分割し、グル
ープ内の全ディスク装置の同じ論理アドレスから開始す
る全ストライプでパリティグループと呼ばれるグループ
を構成する。このパリティグループ内の全データストラ
イプの排他的論理和を計算することでパリティ情報を生
成し、パリティディスク装置にこれをパリティストライ
プとして保存する。このように、単にデータを複数のデ
ィスク装置に分配するのではなく、データに冗長性を持
たせることで、万が一1台のディスク装置が故障して
も、パリティディスク装置のパリティ情報から故障ディ
スク装置のデータを復元できるよう構成した高信頼化方
式が従来から論じられている。
Further, the disk array device connects a large number of disk devices, and the failure rate of the disk increases in proportion to the number of disk devices, which is a problem in terms of high reliability. Therefore, a group is composed of several data disk devices and one parity disk device. Further, data is divided into data units called stripes, and all stripes starting from the same logical address of all disk devices in the group constitute a group called parity group. Parity information is generated by calculating exclusive OR of all data stripes in the parity group, and this is stored in the parity disk device as a parity stripe. In this way, by giving data redundancy instead of simply distributing data to a plurality of disk devices, even if one disk device fails, the failed disk device can be obtained from the parity information of the parity disk device. Conventionally, a high-reliability scheme configured to be able to restore the above data has been discussed.

【0006】また、ディスク装置において、複数の連続
する固定長ブロックにまたがるファイルデータを高速に
読出し制御する方式が、特開昭64−53224号公報
等にら開示されている。この方式によれば、ファイルデ
ータを読み出す際に、このファイルデータが記憶されて
いるブロックに連続するブロックがあるかどうか調べ、
連続するブロックがあるときには、これらのブロックを
一括して読み出すことにより、ディスク装置の回転待ち
時間を削減した高速なデータ転送を可能としている。
Japanese Patent Application Laid-Open No. Sho 64-53224 discloses a method of reading and controlling file data over a plurality of continuous fixed-length blocks at high speed in a disk device. According to this method, when reading file data, it is checked whether there is a continuous block in the block in which the file data is stored,
When there are continuous blocks, these blocks are collectively read to enable high-speed data transfer with reduced rotation waiting time of the disk device.

【0007】[0007]

【発明が解決しようとする課題】上位計算機は、ディス
クアレイ装置に対し、論理アドレス上で連続領域へのア
クセスであるが、コマンドを複数のコマンドに分割し、
これらを連続転送して要求を出す場合がある。即ち、上
位計算機のOS(オペレーティングシステム)は、デー
タをある一定サイズのページと呼ばれる単位に分割して
扱うことがある。この場合、長いデータのアクセス要求
は、ディスクアレイ装置に複数コマンドとして発行され
る。また、上位計算機上で実行しているプログラムが、
いくつものデータファイルを同じ手順で生成する等の処
理を行なう場合、やはり連続領域にこれらのデータファ
イルが配置されることが多いため、同様の動作が発生す
る。
The host computer accesses the disk array device to a continuous area on a logical address, but divides the command into a plurality of commands.
In some cases, these are continuously transferred and a request is issued. That is, the OS (operating system) of the host computer may handle data by dividing the data into units called pages of a certain fixed size. In this case, a long data access request is issued to the disk array device as a plurality of commands. Also, the program running on the host computer is
When performing a process such as generating a number of data files in the same procedure, the same operation occurs because these data files are often arranged in a continuous area.

【0008】しかし、上記従来技術では、ディスクアレ
イ装置へのこのような連続領域への複数回のアクセス
(以下、複数のシーケンシャルなアクセスという)時の
処理について配慮されていない。かかる従来技術によれ
ば、上記のシーケンシャルな連続アクセス要求がディス
クアレイ装置に発行されても、このディスクアレイ装置
はこれらを単独のコマンドとして処理するため、連続領
域へのアクセスであるにもかかわらず、1つ1つのコマ
ンド毎にディスクの回転待ちが発生し、処理速度が大幅
に低下するという問題点があった。
However, the above-mentioned prior art does not take into consideration the processing at the time of accessing the disk array device to such a continuous area a plurality of times (hereinafter, referred to as a plurality of sequential accesses). According to this conventional technique, even if the above-mentioned sequential continuous access request is issued to the disk array device, the disk array device processes them as a single command. There is a problem in that a disk rotation wait occurs for each command, and the processing speed is greatly reduced.

【0009】また、上記従来技術では、上記のようにパ
リティ情報を生成する必要があり、データライトに先立
ち、ライトすべき領域に既に書き込まれている旧データ
及び旧パリティ情報をリードし、これらとライトしよう
とする新データとの排他的論理和を計算することによっ
て新たなパリティ情報を生成する。かかる従来技術によ
れば、上記のシーケンシャルなライトアクセス時に、上
記パリティ情報生成のための旧データのリード処理が1
つ1つのコマンド毎に実行され、1つのライトコマンド
に付き2回のディスク回転待ちが必要となることから、
上記コマンド毎の回転待ちに加えて処理速度の低下が助
長されるという問題点があった。
In the above prior art, it is necessary to generate parity information as described above. Prior to data writing, old data and old parity information already written in an area to be written are read, and these are read. New parity information is generated by calculating an exclusive OR with the new data to be written. According to this conventional technique, at the time of the above-described sequential write access, the old data read processing for generating the parity information is performed by 1
Since each command is executed for each command and two disk rotation waits are required for one write command,
There is a problem that the processing speed is reduced in addition to the rotation waiting for each command.

【0010】さらに、上記従来技術では、上位計算機か
ら論理アドレス上で連続的なデータを複数のディスク装
置に分配するため、ディスク装置上では、データは連続
して配置していない。そこで、ディスク装置が通常有す
る機能として、リードコマンド発行時、当該データだけ
でなく、これに続く連続データを先読みし、次なるコマ
ンドがこの領域をアクセスしたときにシーク、回転待ち
といった機構部の動作待ち時間がなく、直ちにこの先読
みデータを転送する機能(プリフェッチ機能)がある
が、上記従来技術によれば、ディスク装置上でデータが
連続的に配置されていないので、このディスク装置の持
つプリフェッチ機能が働かなくなり、アクセス毎に機構
部の動作待ちが発生するので、複数のシーケンシャルな
アクセス時の処理速度が単体のディスク装置よりも低下
してしまうという問題点があった。
Further, in the above-mentioned conventional technology, since continuous data on a logical address is distributed to a plurality of disk devices from a host computer, data is not arranged continuously on the disk devices. Therefore, as a function normally included in the disk device, when a read command is issued, not only the data but also the continuous data following the data is pre-read, and when the next command accesses this area, the operation of the mechanism unit such as seek and rotation waiting. Although there is no waiting time and there is a function (prefetch function) for transferring the prefetched data immediately, according to the above-described conventional technology, since the data is not arranged continuously on the disk device, the prefetch function of this disk device is provided. Does not work, and the operation of the mechanism unit waits for each access, so that the processing speed at the time of a plurality of sequential accesses is lower than that of a single disk device.

【0011】さらに、上記ディスク装置における連続ブ
ロックの一括読出しを行なう方式では、単一のディスク
装置にファイルが格納されていることを前提としてお
り、ディスクアレイ装置のように、ファイルを複数のス
トライプに分割し、複数のディスク装置に分散させて記
録する場合について配慮していない。また、ファイルが
固定長に分割された場合についてのみ示されており、上
位計算機のOSが可変長のブロックサイズでファイルを
分割した場合について配慮していない。さらに、リード
動作についてのみ示されており、上記のように、ディス
クアレイ装置において、特に処理速度が低下するライト
動作の高速化について配慮していない。
Further, in the above-described method of performing batch reading of continuous blocks in a disk device, it is assumed that a file is stored in a single disk device, and a file is divided into a plurality of stripes as in a disk array device. No consideration is given to the case of division and recording in a distributed manner on a plurality of disk devices. Also, only the case where the file is divided into fixed lengths is shown, and no consideration is given to the case where the OS of the host computer divides the file with a variable length block size. Further, only the read operation is shown, and as described above, no consideration is given to speeding up the write operation, which particularly reduces the processing speed, in the disk array device.

【0012】本発明の目的は、かかる問題を解消し、任
意長のブロックに分割された複数のシーケンシャルなア
クセス時にディスク回転待ちを発生させないディスクア
レイ制御方式を提供することにある。
An object of the present invention is to provide a disk array control method which solves such a problem and does not cause a disk rotation wait at the time of a plurality of sequential accesses divided into blocks of arbitrary length.

【0013】本発明の他の目的は、上記ライト動作を行
なう複数のシーケンシャルなアクセス時にパリティ生成
のためのリード動作を不要とするディスクアレイ制御方
式を提供することにある。
It is another object of the present invention to provide a disk array control system which does not require a read operation for generating parity at the time of a plurality of sequential accesses for performing the write operation.

【0014】本発明のさらに他の目的は、上記のディス
ク装置の持つプリフェッチ機能に代換えされる機能によ
り、リード動作のみならずライト動作に関しても、ディ
スク装置の機構部の動作待ち時間なくデータ転送を行な
うディスクアレイ制御方式を提供することにある。
Still another object of the present invention is to provide a data transfer function for a read operation as well as a write operation without an operation waiting time of a mechanical unit of the disk device by a function replacing the prefetch function of the disk device. To provide a disk array control method for performing the following.

【0015】[0015]

【課題を解決するための手段】上記目的を達成するため
に、本発明は、コマンドを上位計算機から受信し、ま
た、コマンドの終了を通知する手段と、上位計算機から
発行されたコマンドを解釈して各ディスク装置へのコマ
ンドに変換する手段と、各ディスク装置へのディスクコ
マンドを起動し、該ディスクコマンドによるリードまた
はライトデータ転送が終了したことを検出する手段と、
該上位計算機と該各ディスク装置との間のデータ転送を
制御する手段と、これらの各手段を制御する手段とから
なるディスクアレイ装置の制御方式において、該上位計
算機が連続的に発行するコマンドをキューに一時保存し
てこれらを管理する手段と、該キューに格納された複数
のコマンドがシーケンシャルなアクセスを要求するコマ
ンドであるときこれらをグループ化して1つのコマンド
とみなし、このグループ化した1つのコマンドを各ディ
スク装置へのディスクコマンドに変換する手段と、上記
グループ化されたコマンドに対する情報とグループ化さ
れたコマンドとを各ディスク装置へのコマンドに変換す
るときの変換情報とを格納し管理する手段とを設ける。
In order to achieve the above object, the present invention provides a means for receiving a command from a host computer, notifying the end of the command, and interpreting a command issued from the host computer. Means for converting the command to a command to each disk device, activating a disk command to each disk device, and detecting completion of read or write data transfer by the disk command,
In a control method of a disk array device including means for controlling data transfer between the host computer and each of the disk devices, and means for controlling each of these units, a command continuously issued by the host computer is provided. Means for temporarily storing them in a queue and managing them; and when a plurality of commands stored in the queue are commands requesting sequential access, these are grouped and regarded as one command. Means for converting a command into a disk command for each disk device, and storing and managing information on the grouped command and conversion information for converting the grouped command into a command for each disk device. Means are provided.

【0016】上記他の目的を達成するために、本発明
は、さらに、上位計算機が発行したコマンドが扱うデー
タに続く連続データを予めディスク装置から先読みして
おくように制御する第1の制御手段と、上記ディスクア
レイ制御装置内部もしくは各ディスク装置内部に上記先
読みしたデータを格納しておくデータ格納手段と、先読
みされたこのデータを該データ格納手段へ入出力制御す
る第2の制御手段とを設ける。
In order to achieve the other object, the present invention further provides a first control means for controlling so that continuous data following data handled by a command issued by a host computer is read in advance from a disk device. And data storage means for storing the prefetched data inside the disk array control device or each disk device, and second control means for input / output control of the prefetched data to the data storage means. Provide.

【0017】[0017]

【作用】上記コマンドキュー管理手段は、上位計算機が
連続的に発行する複数のシーケンシャルなアクセスを行
なうコマンドを次々に格納する。コマンド解釈手段はこ
れらを解釈し、シーケンシャルなアクセス要求であるこ
とを認識して、これらのコマンドをコマンドグループ化
手段に通知する。このコマンドグループ化手段は、これ
らのコマンド群を1つのコマンドとみなしてグループ化
するとともに、この対応関係を上記変換情報管理手段に
格納して保存する。さらに、コマンドグループ化手段
は、このグループ化された1つのコマンドを各ディスク
装置に対するディスクコマンドに変換するとともに、こ
の変換の対応関係を上記変換情報管理手段に格納して保
存する。
The command queue management means successively stores a plurality of sequential access commands issued by the host computer. The command interpreting means interprets these, recognizes that the request is a sequential access request, and notifies the command grouping means of these commands. The command grouping means considers these command groups as one command and groups them, and stores and stores the correspondence in the conversion information management means. Further, the command grouping means converts the one grouped command into a disk command for each disk device, and stores the correspondence of the conversion in the conversion information management means.

【0018】以上の各部の動作により、複数のシーケン
シャルなアクセスコマンドは、ディスクアレイ制御装置
内部で1つのシーケンシャルアクセスコマンドに変換さ
れ、各データは連続的に一括して扱うことができるよう
になる。従って、コマンド間のディスク回転待ちがなく
なり、データ転送速度の高速化が実現できる。
By the operation of each section described above, a plurality of sequential access commands are converted into one sequential access command inside the disk array controller, and each data can be handled continuously and collectively. Therefore, there is no disk rotation waiting between commands, and the data transfer speed can be increased.

【0019】さらに、ライト時には、コマンドグループ
化手段は次のように動作する。まず、上記と同様、複数
のシーケンシャルなライトアクセスコマンドをグループ
化する。そして、パリティストライプ内の全データスト
ライプをライトするデータ領域を切り出す。上記データ
領域以外では、従来同様、パリティ生成のためのデータ
リードを行ない、パリティを生成後、ライトするという
動作を行なうが、上記データ領域では、直接データスト
ライプからパリティ情報を生成し、ライト動作のみを行
なう。上記のようにグループ化を行ない、データを一括
して連続に扱うため、上記データ領域が増加して、大半
のデータのライトでパリティ生成のためのリード動作が
不要となり、ライト時のデータ転送の高速化を実現す
る。
Further, at the time of writing, the command grouping means operates as follows. First, as described above, a plurality of sequential write access commands are grouped. Then, a data area for writing all data stripes in the parity stripe is cut out. In the data area other than the above data area, data read for parity generation is performed as in the past, parity is generated, and then write operation is performed. In the data area, parity information is directly generated from the data stripe and only write operation is performed. Perform Since the data is grouped as described above and the data is handled collectively and continuously, the data area increases, and the write operation of most data does not require a read operation for parity generation. Achieve higher speed.

【0020】また、上記コマンド解釈手段が上位計算機
の発行したコマンドを解釈した結果、このコマンドの扱
うデータ領域に連続したデータ領域を格納するディスク
装置をアクセスしないことを検出したならば、上記デー
タ先読み制御手段は、これを受け、ディスク装置にリー
ド要求を発行する。このディスク装置は、上位計算機の
要求したデータは持っていないが、このデータ先読み制
御手段の発行したリード要求に応答し、上位計算機の要
求したデータに連続する次のデータを上記先読みデータ
格納手段に向け送出する。この際、上記データ転送を制
御する手段は、このリードデータを先読みデータ格納手
段に入力する。そして、上位計算機の発行したコマンド
が終了し、次に、上位計算機が前回アクセスのデータに
連続したシーケンシャルなデータリードを要求した場
合、データ先読み制御手段は先に先読みデータ格納手段
に入力したデータが要求されていると判断し、即座に上
位計算機にこのデータを送出する。このように、実際に
ディスク装置にはアクセスしないため、リード時のデー
タ転送の高速化を実現する。
If the command interpreting means interprets the command issued by the host computer and detects that the disk device storing the continuous data area in the data area handled by the command is not accessed, the data prefetching is performed. The control means receives this and issues a read request to the disk device. This disk device does not have the data requested by the higher-level computer, but responds to the read request issued by the data pre-reading control means and stores the next data following the data requested by the higher-level computer in the pre-read data storage means. And send it out. At this time, the means for controlling the data transfer inputs the read data to the prefetch data storage means. Then, when the command issued by the upper-level computer ends, and the upper-level computer next requests sequential data read that is continuous with the data of the previous access, the data pre-reading control unit uses the data input to the pre-reading data storage unit first. Judge that it is requested, and immediately send this data to the host computer. As described above, since the disk device is not actually accessed, a high-speed data transfer at the time of reading is realized.

【0021】また、ライト時にも、上記のように、パリ
ティ生成のためにリード処理が行われるため、この際も
データ先読み制御手段は、上記と同様、先読み動作を行
なうように動作するので、もし現在のライトコマンドが
終了し、次なるシーケンシャルライトコマンドが上位計
算機から発行されたときには、パリティ生成のために必
要な旧データは先読みデータ格納手段に格納されている
ので、リード処理をすることなしにパリティデータを生
成し、直ちにデータのライト処理を行なうことができ、
ライト時のデータ転送の高速化を実現する。
Also, at the time of writing, the read processing is performed for parity generation as described above. At this time, the data pre-reading control means operates to perform the pre-read operation in the same manner as described above. When the current write command is completed and the next sequential write command is issued from the host computer, the old data required for parity generation is stored in the prefetch data storage means, so that the read processing is not performed. Parity data can be generated and data can be written immediately,
High-speed data transfer at the time of writing is realized.

【0022】[0022]

【実施例】まず、本発明を用いたディスクアレイ装置に
ついて図面を用いて説明する。図2はディスクアレイ装
置の構成を示すブロック図であって、1はディスクアレ
イ装置2が接続される上位計算機、3はアレイ上に配列
されたディスク装置9a1〜9enを制御するディスク
アレイ制御装置、4はディスクアレイ装置2と上位計算
機1を接続する上位インタフェース(以下、上位I/F
という)、5はディスクアレイ装置2内のデータの流れ
を制御するデータ制御手段、6は上位計算機1が送出す
るコマンドを解釈して各ディスク装置9a1〜9enへ
のコマンドに変換する等のコマンド制御を行なうコマン
ド制御手段、7はデータバッファ、8a〜8eはディス
クアレイ制御装置3とアレイ上に配列したディスク装置
を接続するディスクインタフェース(以下、ディスクI
/Fという)、10は1台のディスク装置9a1〜9e
nいずれかが万一故障してもそのデータを喪失しないよ
うにするために設けるパリティ情報を生成するパリティ
生成手段である。
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS First, a disk array device using the present invention will be described with reference to the drawings. FIG. 2 is a block diagram showing the configuration of the disk array device, 1 is a host computer to which the disk array device 2 is connected, 3 is a disk array control device that controls the disk devices 9a1 to 9en arranged on the array, Reference numeral 4 denotes an upper interface (hereinafter, upper I / F) for connecting the disk array device 2 and the upper computer 1
5 is a data control means for controlling the flow of data in the disk array device 2, and 6 is a command control for interpreting a command sent by the host computer 1 and converting it into commands for the respective disk devices 9a1 to 9en. 7 is a data buffer, and 8a to 8e are disk interfaces (hereinafter referred to as disk I) for connecting the disk array control device 3 and disk devices arranged on the array.
/ F), 10 is one disk drive 9a1-9e
This is a parity generation means for generating parity information provided to prevent the data from being lost even if any of n fails.

【0023】同図において、ディスクアレイ制御装置3
では、上位I/F4で受けた上位計算機1からのリード
コマンドもしくはライトコマンドはコマンド制御手段6
に転送される。このコマンド制御手段6は受けたコマン
ドを解釈してアクセスすべきディスク装置を選択し、そ
のディスク装置に対するコマンドを生成する。
In FIG. 1, the disk array controller 3
Then, the read command or the write command from the host computer 1 received by the host I / F 4 is transmitted to the command control unit 6.
Is forwarded to The command control means 6 interprets the received command, selects a disk device to be accessed, and generates a command for the disk device.

【0024】ここで、以下の説明で混乱を避けるため、
上位計算機1が送出するコマンドをホストコマンド、各
々のディスク装置9a1〜9enに送出するディスク装
置固有のコマンドをディスクコマンドということにす
る。
Here, in order to avoid confusion in the following description,
The command sent by the host computer 1 is called a host command, and the command unique to the disk device sent to each of the disk devices 9a1 to 9en is called a disk command.

【0025】コマンド制御手段6で生成されたディスク
コマンドは、対象となるディスク装置が接続されている
ディスクI/Fを介してその対象となるディスク装置に
転送され、リードもしくはライトの処理を実行させる。
このとき、複数のディスク装置を選択し、これらの同時
に動作させることもできる。このため、1台のディスク
装置に比べ、高性能な動作が期待できる。
The disk command generated by the command control means 6 is transferred to the target disk device via a disk I / F to which the target disk device is connected, and causes a read or write process to be executed. .
At this time, it is also possible to select a plurality of disk devices and operate them simultaneously. Therefore, higher performance operation can be expected as compared with a single disk device.

【0026】以下、本発明の実施例を図面を用いて説明
する。図1は本発明によるディスクアレイ制御方式の一
実施例を用いた図2におけるコマンド制御手段6の具体
的構成を示すブロック図であって、11はホストコマン
ドを上位I/F4を介し上位計算機1から受け取り、ま
た、コマンドの終了を報告するホストコマンド入出力手
段、12は受領したホストコマンドを一旦キューに保存
して管理するホストコマンドキューイング手段、13は
受領したホストコマンドを解釈してディスクコマンドを
生成するホストコマンド解釈手段、14は複数のホスト
コマンドを統合してコマンドクラスタを生成するコマン
ドクラスタリング手段、15は生成されたディスクコマ
ンドを各ディスク装置へ発行し、また、各ディスク装置
からのコマンド終了を受け取るディスクコマンド起動・
終了手段、16はコマンド制御手段6全体の管理、制御
を行なうメイン制御手段、17はデータ制御手段5(図
2)に適切な転送タイミングを指令するデータ転送タイ
ミング制御手段、18はコマンドクラスタリング手段1
4で生成されたコマンドクラスタと元のディスクコマン
ドとの対応を管理するディスクコマンド管理テーブルで
ある。
Hereinafter, embodiments of the present invention will be described with reference to the drawings. FIG. 1 is a block diagram showing a specific configuration of the command control means 6 in FIG. 2 using one embodiment of a disk array control system according to the present invention. Reference numeral 11 denotes a host command transmitted from a host computer 1 via a host I / F 4. , A host command input / output means for reporting the end of the command, 12 a host command queuing means for temporarily storing and managing the received host command in a queue, and 13 a disk command for interpreting the received host command and interpreting the received host command. , A command clustering unit that integrates a plurality of host commands to generate a command cluster, and 15 issues a generated disk command to each disk device, and also issues a command from each disk device. Start disk command to receive termination
Ending means, 16 is a main control means for managing and controlling the entire command control means 6, 17 is a data transfer timing control means for instructing the data control means 5 (FIG. 2) of an appropriate transfer timing, and 18 is a command clustering means 1
4 is a disk command management table for managing the correspondence between the command cluster generated in Step 4 and the original disk command.

【0027】次に、ディスクアレイ装置2の動作を説明
する。図2において、上位計算機1からは、ディスクア
レイ装置2は1つの大容量のディスク装置に見える。い
ま、上位計算機1から、連続的なデータのアクセスであ
るが複数回に分割されたコマンドがディスクアレイ装置
2に送出されたものとする。このようなアクセス要求
は、次のような場合に起こる。
Next, the operation of the disk array device 2 will be described. In FIG. 2, from the host computer 1, the disk array device 2 appears as one large-capacity disk device. Now, it is assumed that a command that is continuous data access but is divided into a plurality of times has been transmitted from the host computer 1 to the disk array device 2. Such an access request occurs in the following cases.

【0028】第1に、OSの制約による場合である。長
いシーケンシャルファイルを扱っている場合、もし、O
Sがこのファイルのデータ長を一括して扱わない場合、
データを分割して複数回コマンドを発行することにな
る。
First, there is a case due to the restriction of the OS. If you are working with long sequential files,
If S does not handle the data length of this file collectively,
The command is issued a plurality of times by dividing the data.

【0029】第2に、アプリケーションの特徴により起
こる場合がある。あるアプリケーションが規則的に複数
のファイルを作成もしくは読み出す場合、連続した論理
アドレス上に配置されることが多いと考えられるので、
複数回のシーケンシャルなアクセスが発行される。
Second, it may occur depending on the characteristics of the application. If an application regularly creates or reads multiple files, it is likely that they will be located on consecutive logical addresses.
Multiple sequential accesses are issued.

【0030】このような複数回のシーケンシャルなアク
セスが上位計算機1からディスクアレイ装置2に発行さ
れた場合の動作を図3により説明する。
The operation when such multiple sequential accesses are issued from the host computer 1 to the disk array device 2 will be described with reference to FIG.

【0031】図3はホストである上位計算機1からみた
ディスクアレイ装置2の論理アドレッスマップを示すも
のであって、同図において、上位計算機1は、論理アド
レスAhA、データ長LAのコマンドA(以下、単にA
という)、論理アドレスAhB、データ長LBのコマン
ドB(以下、単にBという)、論理アドレスAhC、デ
ータ長LCのコマンドC(以下、単にCという)、及び
論理アドレスAhD、データ長LDのコマンドD(以
下、単にDという)の4つのホストコマンドを連続して
ディスクアレイ装置2に発行したとする。これらホスト
コマンドA、B、C、Dが扱うデータは、図3に示すよ
うに、アドレスマップ上連続して配置されている。
FIG. 3 shows a logical address map of the disk array device 2 as viewed from the host computer 1 as a host. In FIG. 3, the host computer 1 has a command A (A) of a logical address AhA and a data length LA. Hereinafter, simply A
Logical address AhB, data length LB command B (hereinafter simply referred to as B), logical address AhC, data length LC command C (hereinafter simply referred to as C), logical address AhD and data length LD command D Assume that four host commands (hereinafter simply referred to as D) are issued to the disk array device 2 in succession. The data handled by these host commands A, B, C, and D are arranged continuously on the address map as shown in FIG.

【0032】まず、ホストコマンドAが上位I/F4
(図2)を介して図1に示すコマンド制御手段6内部の
コマンド入出力手段11に供給され、コマンド入出力手
段11はこれをホストコマンドキューイング手段12に
転送する。ホストコマンドキューイング手段12は、も
しその内部のコマンドキューが一杯でなければ、このホ
ストコマンドAを受領してコマンドキューの最後部に格
納し、ホストコマンド解釈手段13が実行中でなけれ
ば、コマンドキューの先頭からホストコマンドを1つ取
り出してホストコマンド解釈手段13に送る。
First, the host command A is sent to the upper I / F 4
Via (FIG. 2), it is supplied to the command input / output means 11 in the command control means 6 shown in FIG. 1, and the command input / output means 11 transfers this to the host command queuing means 12. If the internal command queue is not full, the host command queuing means 12 receives the host command A and stores it at the end of the command queue. One host command is extracted from the head of the queue and sent to the host command interpreting means 13.

【0033】いま、ホストコマンドキューイング手段1
2でのコマンドキューの先頭にホストコマンドAが格納
されていて、ホストコマンド解釈手段13が実行中でな
いとすると、このホストコマンドAはこのコマンドキュ
ーから読み取られてホストコマンド解釈手段13に転送
され、コマンド解釈が行われディスクコマンドに変換さ
れる。また、このとき、ホストコマンドキューイング手
段12は、ホストコマンド入出力手段11を介して、上
位I/F4に次なるホストコマンドを受信可能であるこ
とを上位計算機1に通知する。これとともに、上位I/
F4は次なるホストコマンドを受信可能な状態となり、
上位計算機1は、次なるホストコマンドを送出可能であ
れば、続いてホストコマンドBを、さらに続けてホスト
コマンドC、Dというようにホストコマンドキューイン
グ手段12から通知がある毎にホストコマンドを送出す
る。ホストコマンドキューイング手段12はこれらホス
トコマンドを順次コマンドキューに格納し、ホストコマ
ンド解釈手段13はこれらホストコマンドB、C、D
を、ホストコマンドAと同様、夫々コマンド解釈してデ
ィスクコマンドに変換する。
Now, the host command queuing means 1
If the host command A is stored at the head of the command queue in Step 2 and the host command interpreting means 13 is not being executed, the host command A is read from the command queue and transferred to the host command interpreting means 13, The command is interpreted and converted to a disk command. At this time, the host command queuing unit 12 notifies the host computer 1 via the host command input / output unit 11 that the host I / F 4 can receive the next host command. At the same time,
F4 is ready to receive the next host command,
If the host computer 1 can send the next host command, the host computer 1 sends a host command B, followed by a host command C and D each time there is a notification from the host command queuing unit 12, and sends a host command. I do. The host command queuing unit 12 sequentially stores these host commands in a command queue, and the host command interpreting unit 13 stores these host commands B, C, D
In the same way as the host command A, the command is interpreted and converted into a disk command.

【0034】コマンドクラスタリング手段14は、この
ように複数のホストコマンドが上位計算機1から続けて
送信されてコマンドキューに格納されているときは、ホ
ストコマンド解釈手段13で変換されたディスクコマン
ドを直ちに対象となるディスク装置に送信して実行させ
るのではなく、一旦ディスクコマンド管理テーブル18
に格納する。そして、これらの連続して受信されたホス
トコマンドA〜Dが連続した論理アドレスへの連続デー
タのアクセスでなければ、適切な順番で順次実行させる
ようにするために、コマンドクラスタリング手段14は
ディスクコマンド管理テーブル18からディスクコマン
ドを取り出してディスクコマンド起動・終了手段15に
送り、各ディスク装置にこれらディスクコマンドを発行
する。
When a plurality of host commands are successively transmitted from the host computer 1 and stored in the command queue, the command clustering unit 14 immediately targets the disk command converted by the host command interpreting unit 13. Instead of sending it to the disk device to be executed,
To be stored. If these consecutively received host commands A to D are not access to continuous logical addresses of continuous data, the command clustering means 14 executes a disk command command so as to execute the commands sequentially in an appropriate order. The disk commands are taken out from the management table 18 and sent to the disk command start / end unit 15 to issue these disk commands to each disk device.

【0035】これに対し、図3に示すようにこれらホス
トコマンドA〜Dが連続領域へのアクセスであるなら
ば、コマンドクラスタリング手段14はこれらホストコ
マンドA〜Dをグループ化する。即ち、図4に示すよう
に、上位計算機1から送出されたホストコマンドA、
B、C、Dは、論理アドレスAhA、データ長(LA+
LB+LC+LD)の1つのホストコマンドに等価変換
されたことになる(これを、コマンドクラスタリングと
いう)。
On the other hand, if these host commands A to D are accesses to a continuous area as shown in FIG. 3, the command clustering means 14 groups these host commands A to D. That is, as shown in FIG. 4, the host command A sent from the host computer 1,
B, C, and D are logical address AhA and data length (LA +
This is equivalently converted into one host command of (LB + LC + LD) (this is called command clustering).

【0036】次いで、このクラスタリングされたホスト
コマンドは、コマンド解釈手段13に送られて、ディス
クコマンドに変換され、ディスクコマンド起動・終了手
段15によって対象となるディスク装置に発行される。
Next, the clustered host commands are sent to the command interpreting means 13, converted into disk commands, and issued to the target disk device by the disk command starting / ending means 15.

【0037】図5は各ディスク装置の論理アドレスへの
各ホストコマンドのマッピングを示す図である。なお、
ここでは、説明を簡単にするために、5台のディスク装
置a〜eが並列に接続されている(即ち、図2におい
て、5つのディスクI/F8a〜8eがディスクアレイ
制御装置3内に設けられ、夫々に1つずつディスク装置
が接続されていることになる)ものとするが、勿論並列
に接続されるディスク装置の台数は任意であり、また、
同じディスクI/Fに接続されるディスク装置の台数も
任意である。
FIG. 5 is a diagram showing mapping of each host command to a logical address of each disk device. In addition,
Here, in order to simplify the description, five disk devices a to e are connected in parallel (that is, in FIG. 2, five disk I / Fs 8a to 8e are provided in the disk array control device 3). It is assumed that one disk device is connected to each of the disk devices.) Of course, the number of disk devices connected in parallel is arbitrary, and
The number of disk devices connected to the same disk I / F is also arbitrary.

【0038】なお、これら5台のディスク装置a〜eの
うち、ディスク装置a〜dはデータのリード、ライトが
行なわれるものであり、ディスク装置eはパリティデー
タがリード、ライトされるものである。
Of these five disk devices a to e, disk devices a to d are for reading and writing data, and disk device e is for reading and writing parity data. .

【0039】1つのホストコマンドが扱うデータは、図
5に示すストライプと呼ばれる単位ブロックに分割され
てディスクに記録される。ここでは、ホストコマンドA
はA1、A2、A3の3つのストライプに分割されるも
のとし、これらストライプA1〜A3はディスク装置
a、b、cに記録される。ホストコマンドB、C、Dが
扱うデータも同様に各々2つ、5つ、1つのストライプ
に分割され、図5に示すようにディスク装置a〜eに記
録される。
Data handled by one host command is divided into unit blocks called stripes shown in FIG. 5 and recorded on a disk. Here, the host command A
Is divided into three stripes A1, A2 and A3, and these stripes A1 to A3 are recorded on the disk devices a, b and c. Data handled by the host commands B, C, and D are similarly divided into two, five, and one stripes, respectively, and are recorded on the disk devices a to e as shown in FIG.

【0040】次に、ここで用いる本発明によるディスク
アレイ制御方式をリード動作とライト動作とに分け、図
3に示したホストコマンドを例にして詳細に説明する。
始めにリード動作について説明するが、比較のため、ま
ず、従来の方式のようにコマンドクラスタリングを実施
しない場合について説明する。
Next, the disk array control system according to the present invention used here is divided into a read operation and a write operation, and the host command shown in FIG. 3 will be described in detail.
First, a read operation will be described. For comparison, first, a case where command clustering is not performed unlike the conventional method will be described.

【0041】ホストコマンドAのリードデータは、上述
のように、ストライプA1、A2、A3に分割されてデ
ィスク装置a、b、cに記録されているので、ディスク
装置a、b、cで夫々ディスクコマンドAa、Ab、A
cによるリードが行なわれる。同様に、ホストコマンド
Bについては、ストライプB1、B2がディスク装置
d、aからディスクコマンドBd、Baにより、ホスト
コマンドCについては、ストライプC1、C5がディス
ク装置bからディスクコマンドCbにより、ストライプ
C2、C3、C4がディスク装置c、d、aから夫々C
c、Cd、Caにより、ホストコマンドDについては、
ストライプD1がディスク装置Cからディスクコマンド
Dcにより、夫々リードされる。
As described above, the read data of the host command A is divided into stripes A1, A2, and A3 and recorded on the disk devices a, b, and c. Commands Aa, Ab, A
The read by c is performed. Similarly, for the host command B, the stripes B1 and B2 are obtained from the disk devices d and a by the disk commands Bd and Ba, and for the host command C, the stripes C1 and C5 are obtained from the disk device b and the disk command Cb. C3 and C4 are C from disk devices c, d and a, respectively.
According to c, Cd, and Ca, for the host command D,
The stripe D1 is read from the disk device C by the disk command Dc.

【0042】以上のことを図6で説明すると、上位計算
機1からホストコマンドA、B、C、Dが続けて、上位
I/F4を介し、コマンド変換手段6に供給されると、
図1に示すコマンド変換手段6では、これらをホストコ
マンドキューイング手段12に一旦格納する。ホストコ
マンド解釈手段13は、始めに、ディスク装置a、b、
cに対してホストコマンドAからディスクコマンドA
a、Ab、Acを発行し、夫々のディスク装置a、b、
c上でこれらディスクコマンドが略同時に実行される。
各ディスク装置a、b、cでは、ディスクコマンドを受
領すると、これを解釈し、シーク動作、ディスク回転待
ちの後、ディスク上の対象となるセクタを検出して目的
のデータをリードする。このようにして、ディスク装置
a、b、cからリードされてデータA1、A2、A3は
ホストコマンドAのリードデータとして再合され、上位
計算機1に送出されてホストコマンドAの実行が終了す
る。
Referring to FIG. 6, when the host commands A, B, C and D are successively supplied from the host computer 1 to the command conversion means 6 via the host I / F 4,
The command conversion means 6 shown in FIG. 1 temporarily stores these in the host command queuing means 12. First, the host command interpreting means 13 first reads the disk devices a, b,
host command A to disk command A
a, Ab, Ac are issued, and the respective disk devices a, b,
c, these disk commands are executed almost simultaneously.
When each of the disk devices a, b, and c receives the disk command, it interprets the disk command, and after a seek operation and disk rotation wait, detects a target sector on the disk and reads the target data. Thus, the data A1, A2, and A3 read from the disk devices a, b, and c are recombined as read data of the host command A, sent to the host computer 1, and the execution of the host command A ends.

【0043】このとき、ホストコマンドBは既にコマン
ド変換が実施済みであり、空きディスク装置dに対して
は、ホストコマンドAと略同時に、ディスクコマンドB
dを発行することができるが、ディスク装置aはホスト
コマンドAの実行中であるため、ディスクコマンドBa
を発行できず、この実行終了を待つ必要がある。その終
了を確認してからディスク装置aへディスクコマンドB
aが発行されるが、図5に示すように、ディスク装置a
でのストライプA1、B2のデータの領域は連続してい
るにもかかわらず、ストライプB2の先頭アドレスがコ
マンド解釈時間等のオーバーヘッドの間に通り過ぎてし
まい、このため、ディスク1周り回転待ちをしなくては
ならない。このことはホストコマンドC、Dについても
同様であり、一般に、連続したn個のシーケンシャルリ
ードを行なうホストコマンドを実行するときには、最大
n回のディスク回転待ちが入り、これが処理速度を低下
させる。
At this time, the command conversion of the host command B has already been executed, and the disk command B is transferred to the empty disk device d almost simultaneously with the host command A.
d can be issued, but the disk device a is executing the host command A.
Cannot be issued, and it is necessary to wait for this execution to end. After confirming the end, a disk command B is sent to the disk device a.
a is issued, but as shown in FIG.
Although the data areas of the stripes A1 and B2 are continuous, the head address of the stripe B2 passes during an overhead such as a command interpretation time, so that there is no need to wait for rotation around the disk 1. must not. The same is true for the host commands C and D. In general, when executing a host command for performing a continuous n number of sequential reads, the disk rotation waits up to n times, which lowers the processing speed.

【0044】次に、図1に用いられる本発明のディスク
アレイ制御方式によるリード動作を説明する。図1にお
いて、一旦ホストコマンドA、B、C、Dを、コマンド
制御手段6内のコマンドクラスタリング手段14によ
り、上記のように、グループ化(コマンドクラスタリン
グ)し、図4に示すように1つのホストコマンドに等価
的に見せ掛けた後、ディスクコマンドに変換して各ディ
スク装置にディスクコマンドを発行する。この様子を図
7に示す。
Next, a read operation according to the disk array control method of the present invention used in FIG. 1 will be described. In FIG. 1, the host commands A, B, C, and D are once grouped (command clustering) by the command clustering unit 14 in the command control unit 6 as described above, and as shown in FIG. After pretending to be equivalent to a command, the command is converted into a disk command and a disk command is issued to each disk device. This is shown in FIG.

【0045】同図において、上位計算機1からホストコ
マンドA、B、C、Dを受領し、コマンド制御手段6は
これらを解釈して連続領域へのシーケンシャルアクセス
であると判断し、上記のように、コマンドクラスタリン
グ手段14はコマンドクラスタリングを実施する。そし
て、ホストコマンド解釈手段13は、この1つのコマン
ドクラスタリングされたホストコマンドによってリード
されるべきディスク装置a〜d毎のストライプ領域を解
釈し、その結果から各ディスク装置a〜d毎にディスク
コマンドCCa、CCb、CCc、CCdを生成し、こ
れらを夫々のディスク装置a〜dに発行する。ここで、
ディスクコマンドCCaはディスク装置9a上のストラ
イプA1、B2、C4を、ディスクコマンドCCbはデ
ィスク装置9b上のストライプA2、C1、C5を、デ
ィスクコマンドCCcはディスク装置9c上のストライ
プA3、C2、D1を、ディスクコマンドCCdはディ
スク装置9d上のストライプB1、C3を夫々順次連続
してリードするためのディスクコマンドである。
In the figure, host commands A, B, C, and D are received from the host computer 1, and the command control means 6 interprets them and determines that the access is a sequential access to a continuous area. , The command clustering means 14 performs command clustering. Then, the host command interpreting means 13 interprets the stripe area for each of the disk devices a to d to be read by this one command clustered host command, and, based on the result, the disk command CCa for each of the disk devices a to d. , CCb, CCc, and CCd are generated and issued to the respective disk devices a to d. here,
The disk command CCa indicates the stripes A1, B2 and C4 on the disk device 9a, the disk command CCb indicates the stripes A2, C1 and C5 on the disk device 9b, and the disk command CCc indicates the stripes A3, C2 and D1 on the disk device 9c. , Disk command CCd is a disk command for sequentially and successively reading the stripes B1 and C3 on the disk device 9d, respectively.

【0046】これらディスクコマンドCCa〜CCdは
同時に各ディスク装置a〜dに発行され、シーク、回転
待ちの後、夫々の対象データをリードする。これらのデ
ータは一旦データバッファ7(図2)に転送された後、
ディスクコマンド管理テーブル18(図1)に保存され
ている管理情報に基づいて、データ転送タイミング手段
17がデータバッファ7からストライプA1、A2、…
…、C5、D1の順にデータをリードして上位計算機1
に転送し、順次ホストコマンドA、B、C、Dが終了す
る。
These disk commands CCa to CCd are simultaneously issued to the respective disk devices a to d, and after seeking and rotation waiting, read respective target data. After these data are once transferred to the data buffer 7 (FIG. 2),
On the basis of the management information stored in the disk command management table 18 (FIG. 1), the data transfer timing means 17 transmits the data from the data buffer 7 to the stripes A1, A2,.
.., C5, and D1 are read in the order of the data and the host computer 1
And the host commands A, B, C, and D are sequentially terminated.

【0047】このようにコマンドクラスタリングを実施
することにより、上位計算機1からのn個のシーケンシ
ャルアクセスコマンドがディスクアレイ装置2に発行さ
れたとき、回転待ち回数はわずかに1回となり、上記従
来方式に比べてディスクの回転待ち回数を(n−1)回
削減することができる。通常、データ転送時間に比べて
回転待ち時間は非常に大きいため、この回転待ち回数の
削減による性能向上効果は非常に大きい。
By executing the command clustering in this way, when n sequential access commands from the host computer 1 are issued to the disk array device 2, the number of rotation waits is only one, and the conventional method is used. In comparison, the number of disk rotation waits can be reduced by (n-1) times. Normally, the rotation waiting time is much longer than the data transfer time, so that the performance improvement effect by reducing the number of rotation waiting times is very large.

【0048】次に、具体的な例をあげてこの効果をさら
に詳しく説明する。いま、各ディスク装置の平均シーク
時間を15ミリ秒、平均回転待ち時間を8ミリ秒、ディ
スク1周の回転待ち時間を16ミリ秒、ディスク装置の
データ転送速度を3Mバイト/秒であるとする。また、
リード動作に用いるディスク装置は4台であり、このと
き、上位計算機1から64Kバイトの連続領域へ4つの
16Kバイトのホストコマンドに分けてアクセス要求が
発行され、各16Kバイトのアクセスは4台のディスク
装置に均等に分配されて記憶されているデータのリード
が行なわれるものとする。さらに、コマンド解釈等のオ
ーバーヘッド時間は非常に小さく、無視できるものす
る。
Next, this effect will be described in more detail with reference to specific examples. Now, it is assumed that the average seek time of each disk device is 15 milliseconds, the average rotation wait time is 8 milliseconds, the rotation wait time of one rotation of the disk is 16 milliseconds, and the data transfer speed of the disk device is 3 Mbytes / second. . Also,
The number of disk devices used for the read operation is four. At this time, an access request is issued from the host computer 1 to the 64 Kbyte continuous area in four 16 Kbyte host commands, and each 16 Kbyte access is performed by four units. It is assumed that data stored in the disk device is read evenly distributed. Furthermore, the overhead time for command interpretation and the like is very small and can be ignored.

【0049】かかる条件のもとに、上記従来方式によれ
ば、処理時間T’はT’=(平均シーク時間+平均回転
待ち時間)+(16Kバイトデータ転送時間÷4)×4
+(1周回転待ち時間)×3=76.3(ミリ秒) となる。一方、この実施例のディスクアレイ制御方式に
よれば、処理時間TはT =(平均シーク時間+平均回
転待ち時間)+(64Kバイトデータ転送時間÷4)=
28.3(ミリ秒) となり、従来方式に比べて約3倍高速となる。上位計算
機1からの連続領域へのシーケンシャルアクセスコマン
ド数が多ければ多い程、より一層この実施例による効果
が大きくなる。
Under these conditions, according to the conventional method, the processing time T 'is T' = (average seek time + average rotation wait time) + (16 Kbytes data transfer time / 4) .times.4.
+ (One rotation waiting time) × 3 = 76.3 (milliseconds). On the other hand, according to the disk array control method of this embodiment, the processing time T is T = (average seek time + average rotation waiting time) + (64 Kbyte data transfer time / 4) =
28.3 (milliseconds), which is about three times faster than the conventional method. The greater the number of sequential access commands from the host computer 1 to the continuous area, the greater the effect of this embodiment.

【0050】さらに、この実施例によれば、図6と図7
とを比較して明らかなように、従来の方式に比べてディ
スク装置の占有時間が少ないことがわかる。もし、これ
らのホストコマンドを実行中に次なるホストコマンドが
受領されたときには、従来方式ではこの受領されたコマ
ンドを実行できるまで多くの時間を待つことになるが、
この実施例によれば、ディスク装置の占有時間が短かい
ため、わずかな待ち時間で次のコマンドを実行できるよ
うになり、全体として処理のスループットが上がり、さ
らに、上位計算機から見たコマンドの平均応答時間が短
くなるといった効果がある。
Further, according to this embodiment, FIGS.
As is clear from comparison with the above, it can be seen that the occupation time of the disk device is shorter than that of the conventional method. If the next host command is received during the execution of these host commands, the conventional method will wait a long time until the received command can be executed.
According to this embodiment, the occupation time of the disk device is short, so that the next command can be executed with a short waiting time, the processing throughput is increased as a whole, and the average of the commands as viewed from the host computer is increased. This has the effect of shortening the response time.

【0051】次に、ライト時の動作について説明する。
リード時と同様、図3に示すホストコマンドを図5のよ
うに各ディスク装置にマッピングしてライトするもので
あるが、ライト時には、前述のパリティデータの生成を
行なう必要があり、リードとライトとで制御方法が異な
る。このパリティデータの作成方法を図5で説明する。
Next, the operation at the time of writing will be described.
As in the case of reading, the host command shown in FIG. 3 is mapped to each disk device and written as shown in FIG. 5. At the time of writing, it is necessary to generate the above-described parity data. And the control method is different. A method for creating the parity data will be described with reference to FIG.

【0052】この実施例のディスクアレイ装置では、5
台のディスク装置のうち1台がパリティディスク装置と
して割り当てられるが、上記のように、図5でディスク
装置eがこのパリティディスク装置である。パリティは
パリティグループと呼ばれるストライプを単位としたグ
ループ内で作成される。各ディスク装置a〜eの同じ論
理アドレスで開始するストライプで1つのパリティグル
ープを形成し、これらのデータの排他的論理和をパリテ
ィデータとする。図5では、例えば、ストライプA1、
A2、A3、B1、P1が1つのパリティグループを形
成し、ストライプA1、A2、A3、B1の排他的論理
和からパリティデータのストライプP1が生成される。
In the disk array device of this embodiment, 5
One of the disk devices is assigned as a parity disk device. As described above, the disk device e in FIG. 5 is the parity disk device. Parity is created in a group called a parity group in units of stripes. One parity group is formed by stripes starting from the same logical address of each of the disk devices a to e, and the exclusive OR of these data is used as parity data. In FIG. 5, for example, stripe A1,
A2, A3, B1, and P1 form one parity group, and a stripe P1 of parity data is generated from an exclusive OR of the stripes A1, A2, A3, and B1.

【0053】ここでも、比較のため、始めに従来の方式
を図8を用い説明する。ホストである上位計算機1は連
続データのライト要求を4つのホストコマンドA、B、
C、Dとして発行し、ディスクアレイ制御装置3のコマ
ンド制御手段6では、リード動作と同様、これらを受領
して解釈し、ディスクコマンドに変換して順次ディスク
装置に起動をかける。ここで、リード時と異なる点は、
ライトする前にディスクに書き込まれている旧データを
読み出すリード動作をし、これらと書き込もうとする新
データとの排他的論理和をとって新パリティデータを生
成するという点である。
Here, for comparison, a conventional method will be described first with reference to FIG. The host computer 1 as a host sends a write request for continuous data to four host commands A, B,
The commands are issued as C and D, and the command control means 6 of the disk array controller 3 receives and interprets them, converts them into disk commands, and sequentially activates the disk devices, similarly to the read operation. Here, the difference from the lead time is
The point is that, before writing, a read operation of reading old data written on the disk is performed, and an exclusive OR of these data and new data to be written is generated to generate new parity data.

【0054】具体的には、ホストコマンドAに対応する
ストライプA1、A2、A3の旧データA1’、A
2’、A3’及び旧パリティストライプP1’をリード
し、次いで、これら旧データと新データストライプA
1、A2、A3の排他的論理和をとって新パリティデー
タストライプP1を作成する。そして、ディスクの1周
回転待ち後新データストライプA1、A2、A3及び新
パリティデータストライプP1を書き込むことで一連の
ライト動作が完了する。かかる処理をB、C、Dについ
ても同様に行なう。
Specifically, the old data A1 ', A of the stripes A1, A2, A3 corresponding to the host command A
2 ′, A3 ′ and the old parity stripe P1 ′, and then read the old data and the new data stripe A
A new parity data stripe P1 is created by taking an exclusive OR of 1, A2, and A3. Then, after waiting for one rotation of the disk, the new data stripes A1, A2, A3 and the new parity data stripe P1 are written to complete a series of write operations. Such processing is similarly performed for B, C, and D.

【0055】これによると、パリティ生成のためのリー
ド動作とライト動作との間と、さらにホストコマンドと
ホストコマンドの実行との間には、リード時と同様、回
転待ちが入って処理速度が低下する。
According to this, between the read operation and the write operation for generating the parity and between the execution of the host command and the execution of the host command, as in the case of the read operation, a rotation wait occurs and the processing speed is reduced. I do.

【0056】次に、この実施例での第1のライト方式に
ついて説明する。リード時と同様、上位計算機1からホ
ストコマンドA、B、C、Dを受領すると、コマンド制
御手段6はこれらを解釈し、これらが連続領域へのシー
ケンシャルアクセスであると判断すると、一旦ホストコ
マンドA、B、C、Dをコマンド制御手段6内のコマン
ドクラスタリング手段14によりグループ化(コマンド
クラスタリング)し、図4に示すように、1つのホスト
コマンドに等価的に見せ掛けた後、ディスクコマンドに
変換し、各ディスク装置a〜dへのリードディスクコマ
ンドCCa1、CCb1、CCc1、CCd1、CCe
1を同時に生成して発行する。ディスクコマンドCCa
1はディスク装置aの旧データストライプA1’、B
2’、C4’を、ディスクコマンドCCb1はディスク
装置bの旧データストライプA2’、C1’、C5’
を、ディスクコマンドCCc1はディスク装置cの旧デ
ータストライプA3’、C2’、D1’を、ディスクコ
マンドCCd1はディスク装置dの旧データストライプ
B1’、C3’を、ディスクコマンドCCe1はディス
ク装置eの旧パリティストライプP1’、P2’、P
3’、P4’を夫々リードする。各ディスク装置a〜e
からは、シーク動作、回転待ちの後、夫々の対象データ
が読み出される。そして、これらの旧データと新データ
A1、A2、A3、B1、B2、C1、C2、C3、C
4、C5、D1とから新パリティデータP1、P2、P
3、P4を生成する。その後、新データA1〜D1と新
パリティデータP1〜P4とを、リードディスクコマン
ドCCa1、CCb1、CCc1、CCd1、CCe1
と同じディスクコマンドCCa2〜CCe2をライトデ
ィスクコマンドとして用いて、リードと同様の方法でラ
イトする。これにより、ライト動作が完了する。
Next, the first write system in this embodiment will be described. As in the case of reading, upon receiving the host commands A, B, C, and D from the host computer 1, the command control means 6 interprets them, and if it determines that these are sequential accesses to a continuous area, the host command A , B, C, and D are grouped (command clustering) by the command clustering unit 14 in the command control unit 6, and as shown in FIG. , Read disk commands CCa1, CCb1, CCc1, CCd1, CCe to the respective disk devices a to d
1 are generated and issued at the same time. Disk command CCa
1 is the old data stripe A1 ', B of the disk device a
2 ′, C4 ′ and the disk command CCb1 are the old data stripes A2 ′, C1 ′, C5 ′ of the disk device b.
The disk command CCc1 is the old data stripe A3 ', C2', D1 'of the disk device c, the disk command CCd1 is the old data stripe B1', C3 'of the disk device d, and the disk command CCe1 is the old data stripe of the disk device e. Parity stripes P1 ', P2', P
Lead 3 'and P4' respectively. Disk devices a to e
Thereafter, after the seek operation and the rotation wait, the respective target data are read. Then, the old data and the new data A1, A2, A3, B1, B2, C1, C2, C3, C
4, C5, D1 and new parity data P1, P2, P
3. Generate P4. Thereafter, the new data A1 to D1 and the new parity data P1 to P4 are transferred to the read disk commands CCa1, CCb1, CCc1, CCd1, CCe1.
Using the same disk commands CCa2 to CCe2 as write disk commands, writing is performed in the same manner as for reading. Thus, the write operation is completed.

【0057】この際、パリティデータの生成時間がディ
スクの1周回転待ち時間に比べて充分小さければ、途中
回転待ちはリードとライトの間に1回だけしかないの
で、従来方式に比べて最大(2n−2)回削減できるこ
とになり、高速化の点で効果が非常に大きい。
At this time, if the generation time of the parity data is sufficiently smaller than the one round rotation waiting time of the disk, the rotation during the halfway is only once between the read and the write. 2n-2) times, which is very effective in terms of speeding up.

【0058】次に、この実施例の第2のライト方式につ
いて説明するが、このために、図9に示す工夫がこらさ
れる。即ち、図5に示したようにホストコマンド論理ア
ドレスマッピングされる場合、同図の上部(先頭部)2
つの列はパリティグループの全データストライプをライ
トするため、これらは旧データを読むことなくパリティ
データを生成することが可能である。従って、これら2
列に関しては、図9に示すように、全データディスク装
置a,b,c,d及びパリティディスク装置eでデータ
をリードせず、ライトだけをすることができる(ディス
クコマンドCCa1〜CCe1)。
Next, the second write method of this embodiment will be described. For this purpose, the contrivance shown in FIG. 9 is used. That is, when the host command logical address mapping is performed as shown in FIG.
Since one column writes the entire data stripe of the parity group, they can generate parity data without reading old data. Therefore, these two
As for the columns, as shown in FIG. 9, all the data disk devices a, b, c, d and the parity disk device e do not read data, but can only write (disk commands CCa1 to CCe1).

【0059】図5の上から3番目の列では旧データC
4’,C5’,D1’をディスクコマンドCCa2,C
Cb2,CCc2,CCe2でリードし、これらと新デ
ータとでパリティ生成後、ライトディスクコマンドCC
a3,CCb3,CCc3,CCe3で新データをライ
トする。
In the third column from the top in FIG.
4 ', C5', and D1 'are disc commands CCa2 and C
After reading with Cb2, CCc2 and CCe2 and generating parity with these and new data, the write disk command CC
Write new data at a3, CCb3, CCc3, and CCe3.

【0060】この第2の方式によれば、先の第1の方式
に比べて回転待ちが1〜3回増えることになる。しか
し、回転待ち時間に比べて充分に長いデータ転送時間を
要するデータを扱う場合には、パリティ生成のためのリ
ード動作時間が短くてすみ、先の第1の方法に比べで充
分高速となる。また、従来方法に比べ、回転待ちを(2
n−5)回削減できる。
According to the second method, the number of rotation waits increases one to three times as compared with the first method. However, when handling data that requires a data transfer time that is sufficiently longer than the rotation waiting time, the read operation time for parity generation can be short, and the speed can be much higher than in the first method. In addition, compared with the conventional method, the rotation waiting (2
n-5) times.

【0061】リード動作と同様、ライト動作の場合を具
体例を挙げてその効果を具体的に説明する。ここでは、
上位計算機1から64Kバイトの連続領域へ16Kバイ
トのコマンド4つに分けてライトアクセス要求が発行さ
れ、各16Kバイトコマンドのデータは4台のディスク
装置に均等に分配されてライトするものとする。また、
ストライプサイズを4Kバイトとし、コマンド解釈等の
オーバーヘッド時間は非常に小さくて無視できるものと
する。
As in the case of the read operation, the effect of the write operation will be specifically described with a specific example. here,
It is assumed that the host computer 1 issues a write access request to the 64-Kbyte continuous area in four 16-Kbyte commands divided into four, and the data of each 16-Kbyte command is equally distributed to four disk devices for writing. Also,
The stripe size is 4 Kbytes, and the overhead time for command interpretation and the like is very small and can be ignored.

【0062】そこで、従来方式によれば、処理時間T’
は、最悪毎回リード後ライトするとしたとき、T’=
(平均シーク時間+平均回転待ち時間)+(16Kバイ
トデータ転送時間÷4)×4×2 +(1周回転待ち時
間)×(全アクセス回数−1)=145.7(ミリ秒) となる。一方、この実施例の第1の方式によれば、処理
時間T1は、T1=(平均シーク時間+平均回転待ち時
間)+(64Kバイトデータ転送時間÷4)×2 +
(1周回転待ち時間)=49.6(ミリ秒) となり、従来方式に比べ、約3倍高速となる。
Therefore, according to the conventional method, the processing time T ′
Is, at worst, every time after writing, T '=
(Average seek time + Average rotation wait time) + (16 Kbyte data transfer time / 4) × 4 × 2 + (One round rotation wait time) × (Total number of accesses−1) = 145.7 (milliseconds) . On the other hand, according to the first method of this embodiment, the processing time T1 is T1 = (average seek time + average rotation waiting time) + (64 Kbyte data transfer time / 4) × 2 +
(One rotation waiting time) = 49.6 (milliseconds), which is about three times faster than the conventional method.

【0063】また、上位計算機1から4Mバイトの連続
領域へ1Mバイトのコマンド4つに分けてアクセス要求
が発行されたときには、従来方式による処理時間T’
は、最悪毎回リード後ライトするとしたとき、T’=
(平均シーク時間+平均回転待ち時間)+(1Mバイト
データ転送時間÷4)×4×2 +(1周回転待ち時
間)×(全アクセス回数−1)=802(ミリ秒) となる。一方、この実施例での第1の方式によれば、処
理時間T1は、T1=(平均シーク時間+平均回転待ち
時間)+(4Mバイトデータ転送時間÷4)×2 +
(1周回転待ち時間)=706(ミリ秒) となり、従来方式に比べ、約1.1倍しか高速化しな
い。
When an access request is issued from the host computer 1 to the 4-Mbyte continuous area divided into four 1-Mbyte commands, the processing time T 'according to the conventional method is taken.
Is, at worst, every time after writing, T '=
(Average seek time + Average rotation waiting time) + (1 Mbyte data transfer time ÷ 4) × 4 × 2 + (One round rotation waiting time) × (Total number of accesses−1) = 802 (milliseconds). On the other hand, according to the first method in this embodiment, the processing time T1 is T1 = (average seek time + average rotation waiting time) + (4 MB data transfer time / 4) × 2 +
(One-rotation waiting time) = 706 (milliseconds), which is only about 1.1 times faster than the conventional method.

【0064】これに対し、この実施例の第2の方法によ
れば、処理時間T2は最悪5回の回転待ちが入ったと
し、リード後ライト動作を行なう領域は16Kバイトで
あるとすると、 T2=(平均シーク時間+平均回転待ち時間)+((4
Mバイト−16Kバイト)のデータ転送時間÷4)+
(16Kバイトデータ転送時間)×2 +(1周回転待
ち時間)×4=438(ミリ秒) となり、従来の方法に比べて最悪でも約2倍高速化する
ことができ、効果が非常に大きい。
On the other hand, according to the second method of this embodiment, assuming that the processing time T2 has a maximum of five rotation waits and the area for performing the write operation after reading is 16 Kbytes, = (Average seek time + average rotation waiting time) + ((4
Data transfer time of (M bytes-16 K bytes) ÷ 4) +
(16 Kbyte data transfer time) × 2 + (one rotation wait time) × 4 = 438 (milliseconds), which is about twice as fast as the conventional method, and the effect is extremely large. .

【0065】以上のようなリードまたはライト動作を終
えてディスク装置9a〜9eにデータの書込みもしくは
読出しを行なったならば、図2において、ディスク装置
9a〜eはこのことをディスクI/F8a〜8eを介し
て図1に示すコマンド制御手段6のディスクコマンド起
動・終了手段15に通知し、ディスクコマンド起動・終
了手段15はこれをコマンドクラスタリング手段14に
通知する。そして、上記動作がリード動作であるときに
は、データ転送タイミング手段17は、上記のように、
データバッファ7(図2)に格納されている先のホスト
コマンドに対応したデータを再合して順次上位計算機1
(図2)に転送する。そして、コマンドクラスタリング
手段14はディスクコマンド管理テーブル18上からこ
れらコマンドに該当する管理情報を削除し、また、ホス
トコマンドキューイング手段12にもこれを通知してコ
マンドキューから該当するホストコマンドを削除させ、
かつホストコマンド入出力手段11に通知させる。ホス
トコマンド入出力手段11は、この通知を受けると、上
位I/F4を介して上位計算機1にコマンド終了を通知
して一連の処理を終える。
When data is written or read to or from the disk devices 9a to 9e after the above read or write operation, the disk devices 9a to 9e in FIG. 1 to the disk command start / end unit 15 of the command control unit 6 shown in FIG. 1, and the disk command start / end unit 15 notifies this to the command clustering unit 14. When the above operation is a read operation, the data transfer timing means 17
The data corresponding to the previous host command stored in the data buffer 7 (FIG. 2) is recombined, and
(FIG. 2). Then, the command clustering unit 14 deletes the management information corresponding to these commands from the disk command management table 18, and notifies the host command queuing unit 12 of the deletion to delete the corresponding host command from the command queue. ,
At the same time, the host command input / output means 11 is notified. Upon receiving this notification, the host command input / output unit 11 notifies the host computer 1 of the command end via the host I / F 4 and ends a series of processing.

【0066】以上、この実施例の効果をまとめると、 (1)シーケンシャルリード時には、最大(n−1)回
の回転待ちを削減できる。これにより、例えば16Kビ
ットのホストコマンドが4回シーケンシャルに発行され
てなる64Kバイトのデータリードの場合、全処理時間
は従来方式に比べて約3倍高速になる。
As described above, the effects of this embodiment can be summarized as follows: (1) At the time of sequential reading, a maximum of (n-1) rotation waits can be reduced. Thus, for example, in the case of 64K bytes of data read in which 16K bits of host commands are sequentially issued four times, the total processing time is about three times faster than in the conventional method.

【0067】(2)小さなデータのシーケンシャルライ
ト時には、上記第1の方式によれば、最大(2n−2)
回の回転待ちを削減できる。これにより、例えば16K
バイトのホストコマンドが4回シーケンシャルに発行さ
れてなる64Kバイトのデータライトの場合、全処理時
間は従来方式に比べて約3倍高速になる。
(2) At the time of sequential writing of small data, according to the first method, the maximum (2n-2)
The number of rotation waits can be reduced. Thereby, for example, 16K
In the case of a 64 Kbyte data write in which byte host commands are sequentially issued four times, the total processing time is about three times faster than the conventional method.

【0068】(3)大きなデータのシーケンシャルライ
ト時には、上記第2の方式によれば、最大(2n−5)
回の回転待ちを削減できるし、さらに、大半のパリティ
生成のための旧データのリード動作を削除できる。これ
により、例えば1Mバイトのホストコマンドが4回シー
ケンシャルに発行されてなる4Mバイトのデータライト
の場合、全処理時間は従来方式に比べて最悪でも約2倍
高速になる。
(3) At the time of sequential writing of large data, according to the second method, the maximum (2n-5)
It is possible to reduce the number of rotation waits, and it is also possible to eliminate most of the read operation of old data for parity generation. Thus, for example, in the case of a 4 Mbyte data write in which 1 Mbyte host commands are sequentially issued four times, the total processing time is at least about twice as fast as the conventional method.

【0069】図10は本発明によるディスクアレイ制御
方式を用いた図2のディスクアレイ装置2のコマンド制
御手段6の内部構成を示すブロック図であって、図1に
示したコマンド制御手段6にプリフェッチ制御手段19
を設けたものである。なお、以下の説明では、図1で説
明したコマンドクラスタリング手段14及びホストコマ
ンドキューイング手段12はないものとして扱うが、図
10に示すように、これらをも使用するようにしてもよ
い。
FIG. 10 is a block diagram showing the internal configuration of the command control means 6 of the disk array device 2 of FIG. 2 using the disk array control method according to the present invention. The command control means 6 shown in FIG. Control means 19
Is provided. In the following description, it is assumed that the command clustering means 14 and the host command queuing means 12 described in FIG. 1 are not provided, but these may be used as shown in FIG.

【0070】図10において、プリフェッチ制御手段1
9は、後述するプリフェッチがヒットしたかどうかを判
断し、ヒットしたならば、後述するプリフェッチバッフ
ァからデータをリードするように制御する手段である。
他の構成部は図1に示したコマンド制御手段6と同じで
ある。
In FIG. 10, prefetch control means 1
Numeral 9 is means for judging whether or not a prefetch described later hits, and if hit, controlling to read data from a prefetch buffer described later.
Other components are the same as the command control means 6 shown in FIG.

【0071】図11は図10に示したコマンド制御手段
6を用いた図2に示したディスクアレイ装置2の要部を
示しすブロック図であって、5’はデータ転送手段、1
9は図10に示したコマンド制御手段6内部のプリフェ
ッチ制御手段、20a〜20eはディスク装置9a,9
b……上に保存されているデータをプリフェッチ制御手
段19の指令により入力して保存するプリフェッチバッ
ファであり、図2に対応する部分には同一符号をつけて
いる。
FIG. 11 is a block diagram showing the main part of the disk array device 2 shown in FIG. 2 using the command control means 6 shown in FIG.
Reference numeral 9 denotes a prefetch control unit in the command control unit 6 shown in FIG. 10, and 20a to 20e denote disk devices 9a and 9
b is a prefetch buffer for inputting and storing data stored thereon in accordance with a command from the prefetch control means 19, and portions corresponding to those in FIG. 2 are denoted by the same reference numerals.

【0072】次に、この実施例の動作を説明するが、上
位計算機1が、ディスクアレイ装置2の論理アドレスマ
ップ上の連続領域のデータを何回かの複数のホストコマ
ンドにより、リードすることを考える。このような複数
回のシーケンシャルアクセスが起きる場合は、先に説明
した第1の実施例と同様である。このような場合、仮に
上位計算機1に1台のディスク装置が接続されていると
すると、ディスク装置の持つプリフェッチバッファと呼
ばれる先読みデータ保存領域に当該データが保存されて
いれば、この保存領域からそのデータを読み出すことに
より、シーク、回転待ち等のディスク装置のメカに依存
する遅延は生じず、かつ、メモリ等の電気的な記憶領域
からのリードであるので、非常に高速にアクセスが可能
となる。このため、通常、ディスク装置においては、上
位計算機からリード要求が発行されると、当該データの
みならず、このデータに続くデータを先読みされ、プリ
フェッチバッファに格納しておくプリフェッチ制御が行
なわれる。
Next, the operation of this embodiment will be described. It is assumed that the host computer 1 reads data of a continuous area on the logical address map of the disk array device 2 by a plurality of host commands. Think. When a plurality of such sequential accesses occur, it is the same as in the first embodiment described above. In such a case, assuming that one disk device is connected to the host computer 1, if the data is stored in a prefetch data storage area called a prefetch buffer of the disk device, the data is stored in this storage area. By reading data, there is no delay depending on the mechanism of the disk device, such as seeking and waiting for rotation, and since the data is read from an electrical storage area such as a memory, it can be accessed at a very high speed. . Therefore, when a read request is issued from a host computer, usually, in the disk device, prefetch control is performed to prefetch not only the data but also data following the data and store the data in a prefetch buffer.

【0073】ところが、ディスクアレイ装置2では、複
数のディスク装置が並列に配列され、ストライプ毎に異
なるディスク装置にデータを記録するため、ホスト側か
ら見た論理アドレスが連続していても、各ディスク装置
の論理アドレス上ではデータは非連続である。このた
め、ディスク装置の持つプリフェッチ機能は、パリティ
グループのデータサイズを超える大きいデータアクセス
の場合以外には期待できない。この第2の実施例は、こ
のディスクアレイ装置の欠点を補なう高速化手法を可能
とするものである。
However, in the disk array device 2, since a plurality of disk devices are arranged in parallel and data is recorded on different disk devices for each stripe, even if the logical addresses viewed from the host side are continuous, each disk device is Data is non-contiguous on the logical address of the device. For this reason, the prefetch function of the disk device cannot be expected except for a large data access exceeding the data size of the parity group. The second embodiment enables a high-speed technique to compensate for the disadvantage of the disk array device.

【0074】次に、この実施例の動作を説明する。ここ
で、一例として、シーケンシャルな2つのアクセス要求
A,Bが上位計算機1から発行されたとする。そして、
図12に示すように、A1、A2はホストコマンドAが
アクセスするディスク装置a,bのストライプ、B1、
B2はホストコマンドBがアクセスするディスク装置
c,dのストライプ、PはA1,A2,B1,B2を含
むパリティグループのディスク装置eでのパリティスト
ライプである。
Next, the operation of this embodiment will be described. Here, as an example, it is assumed that two sequential access requests A and B have been issued from the host computer 1. And
As shown in FIG. 12, A1 and A2 are the stripes of the disk devices a and b accessed by the host command A, B1 and A2.
B2 is the stripe of the disk devices c and d accessed by the host command B, and P is the parity stripe of the disk device e of the parity group including A1, A2, B1 and B2.

【0075】始めにライト動作について説明するが、第
1実施例と同様、比較のため、まず従来の方式を図13
を用いて説明する。最初に、ホストコマンドAが実行さ
れる。即ち、まず、ディスク装置a,b,eから旧デー
タA1’、A2’、P’をリードする。そして、これら
と新データとの排他的論理輪の計算によって新パリティ
データPが生成され、新データA1、A2がディスク装
置a、bに、新パリティデータPがディスク装置eに夫
々書き込まれ、上位計算機1にコマンド終了が報告され
てホストコマンドAが終了する。ホストコマンドBが同
様に実行されて、コマンドBの終了が上位計算機1に報
告され、これら2つのシーケンシャルライトコマンドが
終了する。
First, the write operation will be described. As in the first embodiment, for comparison, the conventional method is first used in FIG.
This will be described with reference to FIG. First, the host command A is executed. That is, first, the old data A1 ', A2', P 'are read from the disk devices a, b, e. Then, new parity data P is generated by calculating an exclusive logical circle of these and new data, new data A1 and A2 are written to disk devices a and b, and new parity data P are written to disk device e, respectively. The command end is reported to the computer 1, and the host command A ends. The host command B is executed in the same manner, the end of the command B is reported to the host computer 1, and these two sequential write commands end.

【0076】次に、この実施例の方式によるライト動作
について、図2、図10、図11及び図14を用いて説
明する。まず、ホストコマンドAがコマンド制御手段6
に供給されると、ホストコマンド解釈手段13はディス
ク装置9a,9b,9eについてのアクセス要求である
ことを判断し、これらディスク装置9a,9b,9eの
ディスクコマンドを生成してディスクコマンド起動・終
了手段15に送出する。ディスクコマンド起動・終了手
段15はこれらディスクコマンドの起動をかける。
Next, a write operation according to the method of this embodiment will be described with reference to FIGS. 2, 10, 11, and 14. FIG. First, the host command A is transmitted to the command control unit 6.
Is supplied to the host device, the host command interpreting means 13 determines that the request is an access request for the disk devices 9a, 9b, 9e, generates disk commands for the disk devices 9a, 9b, 9e, and starts / ends the disk command. It is sent to the means 15. The disk command start / end means 15 starts these disk commands.

【0077】これと同時に、ホストコマンド解釈手段1
3はディスク装置9c,9dが未使用であることを判断
し、このことをプリフェッチ制御手段19に通知する。
プリフェッチ制御手段19は、この通知を受けると、デ
ィスク装置9c,9dのホストコマンドAのアクセス領
域に続く論理アドレス領域のデータをリードすべくディ
スクコマンドを生成し、ディスクコマンド起動・終了手
段15に送出する。また、このプリフェッチ制御手段1
9内部に、これらディスク装置9c,9dへのリード要
求を行なったことを保存しておく。そこで、ディスクコ
マンド起動・終了手段15はディスク装置9c,9dに
リードディスクコマンドを発行する。
At the same time, the host command interpreting means 1
3 judges that the disk devices 9c and 9d are unused, and notifies the prefetch control means 19 of this.
Upon receiving this notification, the prefetch control unit 19 generates a disk command to read data in the logical address area following the access area of the host command A of the disk devices 9c and 9d, and sends it to the disk command activation / end unit 15. I do. The prefetch control means 1
The fact that a read request has been made to these disk devices 9c and 9d is stored inside 9. Therefore, the disk command start / end unit 15 issues a read disk command to the disk devices 9c and 9d.

【0078】ホストコマンドAは、従来方式と同様、デ
ィスク装置a,b,eから旧データA1’,A2’,
P’をリードし、新データとの排他的論理和をとること
によって新パリティデータPを生成し、新データA1,
A2とともにディスク装置9a,9b,9eにライト
し、これを上位計算機1に報告する。これでホストコマ
ンドAに対する全処理を終了する。
The host command A is transmitted from the disk devices a, b, and e to the old data A1 ', A2',
The new parity data P is generated by reading P ′ and performing an exclusive OR operation with the new data to generate new data A1,
The data is written to the disk devices 9a, 9b and 9e together with A2, and this is reported to the host computer 1. This completes all processing for the host command A.

【0079】これと同時に、プリフェッチ制御手段19
でホストコマンドBから生成されたディスク装置9c,
9dへのリードディスクコマンドが実行され、これらか
ら旧データB1’,B2’が転送されてくるが、プリフ
ェッチ制御手段19はプリフェッチバッファ20c,2
0dをデータ入力可能状態とし、これらリードされた旧
データB1’,B2’をここに保存する。このとき、こ
れら旧データB1’,B2’はデータ転送手段5’及び
データバッファ7に転送されない。プリフェッチバッフ
ァ20c,20dへの旧データの転送が完了すると、プ
リフェッチ制御手段19はその内部の保存領域にこの状
態を記録しておく。また、このプリフェッチ制御手段1
9はディスク装置9a,9bへのライトデータA1,A
2,Pについても、データバッファ7からこれらディス
ク装置9a,9b,9eに転送するとき、同時にプリフ
ェッチバッファ20a,20b,20eに保存するよう
に制御する。
At the same time, the prefetch control means 19
, The disk device 9c generated from the host command B,
9d is executed, and the old data B1 'and B2' are transferred from them, but the prefetch control means 19 makes the prefetch buffers 20c and 2c.
0d is set in a data input enabled state, and the read old data B1 'and B2' are stored here. At this time, the old data B1 'and B2' are not transferred to the data transfer means 5 'and the data buffer 7. When the transfer of the old data to the prefetch buffers 20c and 20d is completed, the prefetch control means 19 records this state in the internal storage area. The prefetch control means 1
9 is write data A1, A to the disk devices 9a, 9b.
2 and P are also controlled so that they are simultaneously stored in the prefetch buffers 20a, 20b, and 20e when they are transferred from the data buffer 7 to these disk devices 9a, 9b, and 9e.

【0080】以上の現アクセス領域に続くデータ領域を
リードし、プリフェッチバッファに保存しておく動作、
及びディスク装置へのライトデータをプリフェッチバッ
ファに保存しておくことを、総称して、データプリフェ
ッチということにする。
The operation of reading the data area following the current access area and storing it in the prefetch buffer,
Saving the write data to the disk device in the prefetch buffer is collectively referred to as data prefetch.

【0081】ホストコマンドAの終了報告を上位計算機
1が受信すると、次なるホストコマンドBをディスクア
レイ装置2に発行する。コマンド制御手段6では、これ
が受領されると、ホストコマンド解釈手段13がこのホ
ストコマンドBを解釈してディスク装置9c,9d,9
eのディスクコマンドを生成し、ディスクコマンド起動
・終了手段15に送出する。
When the host computer 1 receives the end report of the host command A, it issues the next host command B to the disk array device 2. In the command control means 6, when this is received, the host command interpreting means 13 interprets the host command B and discs 9c, 9d, 9
The disk command e is generated and sent to the disk command start / end unit 15.

【0082】また、ホストコマンド解釈手段13はディ
スク装置9c,9d,9eへのアクセスであることを、
さらに、ディスク装置9a,9bは現在未使用であるこ
とを判断し、これらをプリフェッチ制御手段19に通知
する。プリフェッチ制御手段19は今回のライト時にパ
リティの生成に使用される旧データB1’,B2’,
P’がプリフェッチバッファ20c,20d,20eに
保存されているかどうか判断する(これをプリフェッチ
のヒット判断という)。この場合、先にプリフェッチバ
ッファ20c,20d,20eに旧データをプリフェッ
チしてあるので、これをプリフェッチヒットとしてディ
スクコマンド起動・終了手段15とデータ転送タイミン
グ制御手段17とに通知する。
The host command interpreting means 13 recognizes that the access is to the disk devices 9c, 9d, 9e.
Further, the disk devices 9a and 9b determine that they are currently unused and notify them to the prefetch control means 19. The prefetch control means 19 stores the old data B1 ', B2',
It is determined whether or not P ′ is stored in the prefetch buffers 20c, 20d, and 20e (this is referred to as a prefetch hit determination). In this case, since the old data has already been prefetched in the prefetch buffers 20c, 20d, and 20e, this is notified to the disk command activation / termination means 15 and the data transfer timing control means 17 as a prefetch hit.

【0083】そこで、ディスクコマンド起動・終了手段
15はディスク装置9c,9d,9eへのリードは不要
であると判断し、適切なタイミングでライトディスクコ
マンドをディスク装置9c,9d,9eへ発行する。デ
ータ転送タイミング制御手段17はデータ転送手段5に
プリフェッチバッファ20c,20d,20eから旧デ
ータB1’,B2’,P’及びデータバッファ7にある
新データB1,B2をパリティ生成手段10(図2)に
転送し、新パリティPを生成する。
Therefore, the disk command starting / ending means 15 determines that reading to the disk devices 9c, 9d, 9e is unnecessary, and issues a write disk command to the disk devices 9c, 9d, 9e at appropriate timing. The data transfer timing control means 17 sends the old data B1 ', B2', P 'and the new data B1, B2 in the data buffer 7 from the prefetch buffers 20c, 20d, 20e to the parity generation means 10 (FIG. 2). To generate a new parity P.

【0084】この新パリティPの生成完了後、コマンド
制御手段6はこの終了通知を受け、ライトディスクコマ
ンドをディスク装置9c,9d,9eに発行してデータ
B1,B2及びパリティPをこれらにライトする。この
ライト動作が終了してこれを上位計算機1に報告する
と、ライト処理が終了する。以上の様子を示したものが
図14である。
After the generation of the new parity P is completed, the command control means 6 receives the end notification and issues a write disk command to the disk devices 9c, 9d, 9e to write the data B1, B2 and the parity P to them. . When this write operation is completed and reported to the host computer 1, the write processing ends. FIG. 14 shows the above state.

【0085】さらに、プリフェッチ制御手段19は、デ
ィスク装置9c,9d,9eでライト動作が行なわれて
いる間ディスク装置9a,9bが未実行であるから、次
なる連続データをプリフェッチバッファ20a,20b
にリードするべくリードディスクコマンドを生成し、デ
ィスクコマンド起動・終了手段15に発行して、次のシ
ーケンシャルアクセスが来る場合に備える。さらに、現
在ライトしたデータをプリフェッチバッファ20c,2
0d,20eに保存する。
Further, since the disk devices 9a and 9b are not executed while the disk devices 9c, 9d and 9e are performing the write operation, the prefetch control means 19 stores the next continuous data in the prefetch buffers 20a and 20b.
Then, a read disk command is generated to read the disk command, and is issued to the disk command activation / termination means 15 to prepare for the next sequential access. Further, the currently written data is stored in the prefetch buffers 20c and 20c.
0d and 20e.

【0086】以上のように、プリフェッチがヒットする
ときには、ライト時でパリティ生成のためのリード動作
が不要となり、処理速度が従来の2倍に高速化する。
As described above, when the prefetch hits, the read operation for parity generation at the time of writing becomes unnecessary, and the processing speed is doubled as compared with the conventional case.

【0087】また、ライト動作について説明したが、勿
論シーケンシャルなリード動作についても、同様に動作
することはいうまでもない。この場合、全データがプリ
フェッチバッファ内に格納されていれば、ディスク装置
には一切アクセスせずにデータリード処理が実行できる
ので、シーク時間、回転待ち時間のない非常に高速なア
クセスを実現する。
Although the write operation has been described, it goes without saying that the sequential read operation also operates in the same manner. In this case, if all the data is stored in the prefetch buffer, the data read process can be executed without accessing the disk device at all, so that a very high-speed access without a seek time and a rotation waiting time is realized.

【0088】さらに、あるコマンドを実行中に次に連続
的なアクセスが来ると予測してプリフェッチリードを行
なうが、プリフェッチリード中にこのディスク装置への
他のアクセスが来た場合には、プリフェッチ動作を直ち
に中断するようにディスクコマンド起動・終了手段15
を構成しておくとよい。このとき、プリフェッチされた
データは無効となり、直ちに上位計算機1の要求するア
クセスを実施する(これをプリフェッチのアボートとい
う)。
Further, while a certain command is being executed, a prefetch read is performed by predicting that the next continuous access will come. If another access to this disk device comes during the prefetch read, the prefetch operation is performed. Disk command start / end means 15 so that the
Should be configured. At this time, the prefetched data becomes invalid, and the access requested by the host computer 1 is immediately performed (this is called a prefetch abort).

【0089】さらにまた、この実施例では、プリフェッ
チバッファ20を、図11に示すように、データ転送手
段5’とディスクI/F8との間に設けたが、データバ
ッファ7上に論理的に設けても構わない。
Further, in this embodiment, the prefetch buffer 20 is provided between the data transfer means 5 'and the disk I / F 8 as shown in FIG. It does not matter.

【0090】さらにまた、この実施例では、プリフェッ
チバッファ20をディスクアレイ制御装置3上に設けた
が、ディスク装置の内部に設けてもよい。図15はこの
場合のディスク装置の具体的構成を示すブロック図であ
って、21は上位I/F、22はデータバッファ、23
はデータ制御手段、24はコマンド制御手段、25はド
ライブ装置である。
Furthermore, in this embodiment, the prefetch buffer 20 is provided on the disk array controller 3, but may be provided inside the disk device. FIG. 15 is a block diagram showing a specific configuration of the disk device in this case, where 21 is a high-order I / F, 22 is a data buffer,
Denotes data control means, 24 denotes command control means, and 25 denotes a drive device.

【0091】ここでは、データバッファ22を利用する
が、プリフェッチバッファをディスク装置9内部にデー
タバッファ22とは別個に設けてもよい。
Although the data buffer 22 is used here, a prefetch buffer may be provided inside the disk device 9 separately from the data buffer 22.

【0092】上述のように、プリフェッチ制御手段19
(図10)によってプリフェッチ用のリードコマンドが
生成され、ディスクコマンド起動・終了手段15はディ
スクI/F8を介してディスク装置9にリードコマンド
を発行する。このリードコマンドは上位I/F21で受
信されてコマンド制御手段24で解釈され、データ制御
手段23によりドライブ装置25から該当するデータが
リードされてデータバッファ22に格納される。そし
て、データ制御手段23はデータバッファ22からこの
データをリードし、上位I/F21、ディスクI/F8
を介しディスクアレイ制御装置3(図2)に転送するの
であるが、このディスクアレイ転送装置3のデータ制御
手段5はこのデータを読み捨ててよい。
As described above, the prefetch control means 19
A read command for prefetch is generated by (FIG. 10), and the disk command start / end unit 15 issues a read command to the disk device 9 via the disk I / F 8. The read command is received by the upper I / F 21 and interpreted by the command control means 24, and the data is read from the drive device 25 by the data control means 23 and stored in the data buffer 22. Then, the data control means 23 reads this data from the data buffer 22 and outputs the data to the upper I / F 21 and the disk I / F 8.
The data is transferred to the disk array controller 3 (FIG. 2) via the data storage unit 3, and the data controller 5 of the disk array controller 3 may read and discard this data.

【0093】かかる動作により、ディスク装置9の内部
のデータバッファ22にはデータがプリフェッチされた
ことになり、次回このデータをアクセスした際には、こ
のプリフェッチがヒットし、シーク動作、回転待ちなく
ディスク装置9からデータを読み出すことが可能とな
る。
By this operation, the data is prefetched into the data buffer 22 inside the disk device 9, and when the data is accessed next time, the prefetch hits, and the disk operation is performed without a seek operation and without waiting for rotation. Data can be read from the device 9.

【0094】この場合、一旦ディスク装置9にアクセス
することから、ディスクI/F8のオーバヘッドがあ
り、このため、前述のディスクアレイ制御装置3内部に
プリフェッチバッファを構成した方式に比べて若干低速
になるが、シーク、回転待ちがないことから、従来方式
に比べて充分に高速であり、さらに、前述のディスクア
レイ制御装置3内部にプリフェッチバッファを構成した
方式に比べ、プリフェッチバッファが不必要となる点で
低価格で実現できる。さらに、ディスクアレイ制御装置
3内部で複雑なプリフェッチ処理をする必要がなく、制
御が簡単になる。また、図15において、上記のリード
データを読み捨てる方式に代えて、プリフェッチコマン
ドを新規に設定してもよい。ディスクコマンド起動・終
了手段15がプリフェッチコマンドをディスク装置9に
送出すると、コマンド制御手段24はこれを判断し、デ
ータ制御手段23によってデータバッファ22に必要な
データを転送して処理を終了する。かかるコマンドを設
定することにより、不要なデータ転送が行なわれず、こ
れにより、ディスクI/F8と上位I/F21との間の
トラフィックを減少させることができる。従って、同一
のディスクI/F8に多数のディスク装置が接続された
構成のとき、スループットを高めることができる。
In this case, since the disk device 9 is accessed once, there is an overhead of the disk I / F 8, and therefore, the speed is slightly lower than that in the system in which the prefetch buffer is provided inside the disk array control device 3 described above. However, since there is no seek or rotation waiting, the speed is sufficiently higher than that of the conventional method, and the prefetch buffer is not required as compared with the above-described method in which the prefetch buffer is configured inside the disk array control device 3. At low cost. Furthermore, there is no need to perform complicated prefetch processing inside the disk array control device 3, and control is simplified. In FIG. 15, a prefetch command may be newly set instead of the method of reading and discarding the read data. When the disk command start / end unit 15 sends the prefetch command to the disk device 9, the command control unit 24 determines this and transfers the necessary data to the data buffer 22 by the data control unit 23, and ends the processing. By setting such a command, unnecessary data transfer is not performed, so that traffic between the disk I / F 8 and the upper I / F 21 can be reduced. Therefore, when a large number of disk devices are connected to the same disk I / F 8, the throughput can be increased.

【0095】このように、ディスク装置内部9にプリフ
ェッチバッファを設ける上記2つの方式によれば、上記
のような効果が得られるが、さらに、次のような効果も
得られる。即ち、1つのディスクI/F8に多数のディ
スク装置が接続された構成のときには、各々のディスク
装置でプリフェッチすることができるため、例えば、複
数の上位計算機1から複数のシーケンシャルなアクセス
要求が発行されたとき、これらを多重で動作させた場
合、これらが異なるディスク装置へのアクセスであるな
らば、上位計算機1からのどちらのシーケンシャルなア
クセス要求に対してもプリフェッチをヒットさせること
ができる。
As described above, according to the above two methods in which the prefetch buffer is provided in the disk device 9, the following effects can be obtained although the above effects can be obtained. That is, in a configuration in which a large number of disk devices are connected to one disk I / F 8, each disk device can perform prefetch, and thus, for example, a plurality of upper-level computers 1 issue a plurality of sequential access requests. Then, when these are operated in multiplex, if these are accesses to different disk devices, the prefetch can be hit for any of the sequential access requests from the host computer 1.

【0096】以上の実施例による効果をまとめると、以
下のようになる。
The effects of the above embodiment can be summarized as follows.

【0097】(1)ディスクアレイ装置3内にプリフェ
ッチバッファ20を設けた場合、ライト時にプリフェッ
チがヒットすると、パリティ生成のための旧データのリ
ード動作が不要となり、従来の方式に比べて処理速度が
約2倍に高速化する。
(1) When the prefetch buffer 20 is provided in the disk array device 3, if a prefetch hits at the time of writing, the operation of reading old data for parity generation becomes unnecessary, and the processing speed is reduced as compared with the conventional method. Speed up about twice.

【0098】(2)ディスクアレイ装置3内にプリフェ
ッチバッファ20を設けた場合、リード時にプリフェッ
チがヒットすると、ディスク装置9へのアクセスが不要
となり、プリフェッチバッファ20から上位計算機1へ
の転送速度でリード動作が実現できて、従来方式に比べ
て極めて高速な処理が実現できる。
(2) In the case where the prefetch buffer 20 is provided in the disk array device 3, if a prefetch hits at the time of reading, access to the disk device 9 becomes unnecessary, and reading is performed at the transfer speed from the prefetch buffer 20 to the host computer 1. The operation can be realized, and a very high-speed processing can be realized compared with the conventional method.

【0099】(3)ディスク装置9内にプリフェッチバ
ッファ(データバッファ22)を設け、ディスクアレイ
制御装置3から偽リードコマンドを発行することによ
り、このプリフェッチバッファにデータをプリフェッチ
した場合、ディスクアレイ制御装置3内にプリフェッチ
バッファが不要になり、低価格に、かつディスクアレイ
制御装置3の制御も容易で、上記(1)、(2)と略同
じ性能のプリフェッチ動作を実現できる。
(3) If a prefetch buffer (data buffer 22) is provided in the disk device 9 and a false read command is issued from the disk array controller 3, data is prefetched into this prefetch buffer. 3, a prefetch buffer is not required, the cost is low, the control of the disk array control device 3 is easy, and the prefetch operation having substantially the same performance as the above (1) and (2) can be realized.

【0100】(4)ディスクコマンドとしてプリフェッ
チコマンドを設けることにより、ディスク装置内のバッ
ファにデータをプリフェッチすることができるので、デ
ィスク装置とディスクアレイ制御装置との間でデータ転
送を行なう必要がなく、ディスクI/Fのトラッフィク
を減少させることができる。
(4) By providing a prefetch command as a disk command, data can be prefetched into a buffer in the disk device, so that there is no need to transfer data between the disk device and the disk array control device. The traffic of the disk I / F can be reduced.

【0101】(5)ディスク装置9内にプリフェッチバ
ッファ(データバッファ22)を設けてプリフェッチ制
御を行なう上記(3)、(4)の場合、複数の上位計算
機1から略同時に複数のシーケンシャルデータアクセス
コマンドが発行され、これを多重に動作させた場合、こ
れらが異なるディスク装置へのアクセスであるならば、
上位計算機1からのどちらのアクセス要求に対しても、
プリフェッチをヒットさせることができる。
(5) A prefetch buffer (data buffer 22) is provided in the disk device 9 to perform prefetch control. In the cases (3) and (4), a plurality of sequential data access commands are issued from a plurality of upper level computers 1 substantially simultaneously. Is issued and if these are multiplexed, if these are accesses to different disk units,
For both access requests from the host computer 1,
Prefetch can be hit.

【0102】なお、以上説明した実施例の各構成部は、
ハードウェア、ソフトウェアどちらの手段によって構成
してもよい。
The components of the embodiment described above are:
It may be configured by either hardware or software.

【0103】以上、コマンドのクラスタリング制御方
式、並びにシーケンシャルデータのプリフェッチ制御方
式の2つの実施例を説明したが、これら両制御方式は同
時に実施することもできる。このときには、両者の効果
が期待でき、データ転送の高速化に効果が大きい。
The two embodiments of the command clustering control method and the sequential data prefetch control method have been described above. However, these two control methods can be performed simultaneously. At this time, the effects of both can be expected, and the effect is large in increasing the speed of data transfer.

【0104】また、以上の説明では、パリティ情報を単
独のディスク装置(パリティディスク)に格納する方式
のディスクアレイ装置であったが、パリティ情報を複数
のディスク装置または全部のディスク装置に分配して格
納する方式のディスクアレイ装置でも、上記の説明と同
じデータ制御方式が採用でき、同じ効果が得られる。
In the above description, the parity information is stored in a single disk device (parity disk). However, the parity information is distributed to a plurality of disk devices or all disk devices. The same data control method as described above can be adopted in the storage type disk array device, and the same effect can be obtained.

【0105】さらに、上記コマンドのクラスタリング制
御方式は、ディスクアレイ制御装置を例として説明した
が、磁気ディスク制御装置、磁気テープ制御装置、光デ
ィスク制御装置、半導体ディスク制御装置等の記録再生
装置全般に採用することができる。このとき、任意のデ
ータ長を扱うことができ、さらに、リード、ライトを問
わずに上記説明と同様の効果が得られる。
Further, the clustering control method of the command has been described by taking the disk array controller as an example. However, the clustering control method is adopted in all recording / reproducing devices such as a magnetic disk controller, a magnetic tape controller, an optical disk controller, and a semiconductor disk controller. can do. At this time, an arbitrary data length can be handled, and the same effect as described above can be obtained regardless of read or write.

【0106】さらにまた、上記プリフェッチ制御方式で
は、光ディスクライブラリ装置や磁気テープライブラリ
装置等の多数の記録再生媒体を有する記録再生装置全般
に採用することができ、上記の説明と同様の効果が得ら
れる。
Further, the prefetch control method described above can be applied to all recording / reproducing apparatuses having a large number of recording / reproducing media, such as an optical disk library apparatus and a magnetic tape library apparatus, and the same effects as described above can be obtained. .

【0107】[0107]

【発明の効果】以上説明したように、本発明によれば、
n個のコマンドが連続的に発行されるシーケンシャルリ
ード時には、コマンドとコマンドの間に回転待ちが発生
しなくなるので、従来方式に比べて最大(n−1)回の
回転待ち時間を削減でき、リードデータ転送の高速化に
効果が大きい。また、小さなデータを扱うn個のコマン
ドが連続的に発行されるシーケンシャルライト時には、
コマンドとコマンドの間に回転待ちが発生しなくなるの
で、従来方式に比べて最大(2n−2)回の回転待ちを
削減でき、ライトデータ転送の高速化に効果が大きい。
As described above, according to the present invention,
At the time of sequential read in which n commands are continuously issued, no rotation wait occurs between commands, so that a maximum (n-1) rotation wait time can be reduced as compared with the conventional method, and the read time can be reduced. It is very effective for speeding up data transfer. Also, at the time of sequential write in which n commands for handling small data are continuously issued,
Since there is no rotation wait between commands, the maximum (2n−2) rotation waits can be reduced compared to the conventional method, and this is highly effective in increasing the speed of write data transfer.

【0108】また、本発明によれば、大きなデータを扱
うn個のコマンドが連続的に発行されるシーケンシャル
ライト時には、コマンドとコマンドの間に回転待ちが発
生しなくなり、かつ、パリティデータ生成のためのリー
ド回数を大幅に減少させることができるので、従来方式
に比べて最大(2n−5)回の回転待ちを削減でき、ラ
イトデータ転送の高速化に効果が大きい。
Also, according to the present invention, during sequential write in which n commands for handling large data are successively issued, there is no rotation wait between commands, and parity data is generated. The number of read operations can be greatly reduced, so that a maximum of (2n-5) rotation waits can be reduced as compared with the conventional method, which is highly effective in increasing the speed of write data transfer.

【0109】さらに、本発明によれば、ディスクアレイ
装置内にプリフェッチバッファを設けることにより、ラ
イト時にプリフェッチがヒットすると、パリティ生成の
ためのリード動作が不要となり、従来の方式に比べて処
理速度が約2倍に高速化するという効果がある。また、
ディスクアレイ装置内にプリフェッチバッファを設けた
場合、リード時にプリフェッチがヒットすると、ディス
ク装置へのアクセスが不要となり、プリフェッチバッフ
ァから上位計算機への転送速度でリード動作が実現で
き、従来方式に比べて極めて高速な処理が実現できると
いう効果がある。
Furthermore, according to the present invention, by providing a prefetch buffer in the disk array device, if a prefetch hits at the time of writing, a read operation for parity generation becomes unnecessary, and the processing speed is reduced as compared with the conventional method. There is an effect that the speed is approximately doubled. Also,
When a prefetch buffer is provided in the disk array device, if a prefetch hits during reading, access to the disk device becomes unnecessary, and the read operation can be realized at the transfer speed from the prefetch buffer to the host computer. There is an effect that high-speed processing can be realized.

【0110】さらにまた、本発明によれば、ディスク装
置内にプリフェッチバッファを設けた場合(もしくはデ
ータバッファにより実現した場合)、ディスクアレイ制
御装置内にプリフェッチバッファが不要になり、低価格
に、かつ、ディスクアレイ制御装置の制御も容易にプリ
フェッチ動作を実現でき、性能も同等であるという効果
がある。この場合さらに、複数の上位計算機から略同時
刻に複数のシーケンシャルデータアクセスコマンドが発
行され、これを多重に動作させた場合、もしこれらが異
なるディスク装置へのアクセスであるならば、どちらの
上位計算機のアクセス要求に対してもプリフェッチをヒ
ットさせることができて、上記の効果が期待できるた
め、高スループット処理の実現が可能となる。
Further, according to the present invention, when a prefetch buffer is provided in a disk device (or when realized by a data buffer), a prefetch buffer is not required in a disk array control device, and the cost is reduced. In addition, the control of the disk array control device can easily realize the prefetch operation, and the performance is the same. In this case, further, a plurality of sequential data access commands are issued from the plurality of higher-level computers at substantially the same time, and when these commands are multiplexed, if these are accesses to different disk devices, which of the higher-level computers The prefetch can be hit even for the access request of (1), and the above effect can be expected. Therefore, high throughput processing can be realized.

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

【図1】本発明によるディスクアレイ制御方式の第1の
実施例を示すブロック図である。
FIG. 1 is a block diagram showing a first embodiment of a disk array control system according to the present invention.

【図2】本発明によるディスクアレイ制御方式を用いた
ディスクアレイ装置の一例を示すブロック図である。
FIG. 2 is a block diagram showing an example of a disk array device using a disk array control method according to the present invention.

【図3】ホストから見たディスクアレイ装置の論理アド
レスマップを示すである。
FIG. 3 shows a logical address map of the disk array device as viewed from a host.

【図4】図1に示した第1の実施例でのコマンドクラス
タリング実施後のディスクアレイ装置の論理アドレスマ
ップを示す図である。
FIG. 4 is a diagram showing a logical address map of the disk array device after the command clustering in the first embodiment shown in FIG. 1;

【図5】図1に示した第1の実施例での各ディスク装置
の論理アドレスマップを示す図である。
FIG. 5 is a diagram showing a logical address map of each disk device in the first embodiment shown in FIG.

【図6】従来方式による多重リード動作を示すタイミン
グチャートである。
FIG. 6 is a timing chart showing a multiplex read operation according to a conventional method.

【図7】図1に示した第1の実施例による多重リード動
作を示すタイミングチャートである。
FIG. 7 is a timing chart showing a multiplex read operation according to the first embodiment shown in FIG. 1;

【図8】従来方式による多重ライト動作の他の例を示す
タイミングチャートである。
FIG. 8 is a timing chart showing another example of the multiplex write operation according to the conventional method.

【図9】図1に示した第1の実施例による多重リード動
作の他の例を示すタイミングチャートである。
FIG. 9 is a timing chart showing another example of the multiplex read operation according to the first embodiment shown in FIG. 1;

【図10】本発明によるディスクアレイ制御方式の第2
の実施例を示すブロック図である。
FIG. 10 shows a second example of the disk array control method according to the present invention.
FIG. 3 is a block diagram showing an embodiment.

【図11】図10に示した第2の実施例を用いたディス
クアレイ装置でのプリフェッチバッファの配置を示すブ
ロック図である。
FIG. 11 is a block diagram showing an arrangement of prefetch buffers in a disk array device using the second embodiment shown in FIG.

【図12】図10に示した第2の実施例による各ディス
ク装置の論理アドレスマップを示す図である。
FIG. 12 is a diagram showing a logical address map of each disk device according to the second embodiment shown in FIG.

【図13】従来方式によるライト動作を示すタイミング
チャートである。
FIG. 13 is a timing chart showing a write operation according to a conventional method.

【図14】図10に示した第2の実施例によるライト動
作を示すタイミングチャートである。
FIG. 14 is a timing chart showing a write operation according to the second embodiment shown in FIG.

【図15】図10に示した第2の実施例によるディスク
装置の内部構造の一例を示すブロック図である。
FIG. 15 is a block diagram showing an example of the internal structure of the disk device according to the second embodiment shown in FIG.

【図16】従来のディスクアレイ制御方式の一例を示す
ブロック図である。
FIG. 16 is a block diagram showing an example of a conventional disk array control method.

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

1 上位計算機 2 ディスクアレイ装置 3 ディスクアレイ制御装置 4 上位I/F 5 データ制御手段 6 コマンド制御手段 7 データバッファ 8a〜8e ディスクI/F 9a〜9e ディスク装置 10 パリティ生成手段 11 ホストコマンド入出力手段 12 ホストコマンドキューイング手段 13 ホストコマンド解釈手段 14 コマンドクラスタリング手段 15 ディスクコマンド起動・終了手段 16 メイン制御手段 17 データ転送タイミング制御手段 18 ディスクコマンド管理テーブル 19 プリフェッチ制御手段 20a〜20e プリフェッチバッファ DESCRIPTION OF SYMBOLS 1 Upper computer 2 Disk array device 3 Disk array controller 4 Upper I / F 5 Data control means 6 Command control means 7 Data buffer 8a-8e Disk I / F 9a-9e Disk device 10 Parity generation means 11 Host command input / output means 12 Host Command Queuing Means 13 Host Command Interpreting Means 14 Command Clustering Means 15 Disk Command Start / End Means 16 Main Control Means 17 Data Transfer Timing Control Means 18 Disk Command Management Table 19 Prefetch Control Means 20a-20e Prefetch Buffer

───────────────────────────────────────────────────── フロントページの続き (72)発明者 大枝 高 神奈川県横浜市戸塚区吉田町292番地 株式会社 日立製作所 マイクロエレク トロニクス機器開発研究所内 (72)発明者 本田 聖志 神奈川県横浜市戸塚区吉田町292番地 株式会社 日立製作所 マイクロエレク トロニクス機器開発研究所内 (58)調査した分野(Int.Cl.6,DB名) G06F 3/06──────────────────────────────────────────────────続 き Continued on the front page (72) Inventor Takashi Oeda 292 Yoshida-cho, Totsuka-ku, Yokohama-shi, Kanagawa Prefecture Inside Hitachi, Ltd. Microelectronics Equipment Development Laboratory (72) Inventor Seishi Honda Yoshida-cho, Totsuka-ku, Yokohama-shi, Kanagawa 292 Hitachi Electronics, Ltd. Microelectronics Equipment Development Laboratory (58) Field surveyed (Int.Cl. 6 , DB name) G06F 3/06

Claims (12)

(57)【特許請求の範囲】(57) [Claims] 【請求項1】 コマンドを上位計算機から受信し、ま
た、コマンドの終了を通知する手段と、 該上位計算機から発行されたコマンドを解釈して各ディ
スク装置へのコマンドに変換する手段と、各ディスク装
置へのコマンドを起動し、該コマンドによるリード及び
ライトのデータ転送が終了したことを検出する手段と、 該上位計算機と該各ディスク装置とのデータ転送を制御
する手段と、 これらの各手段を制御する手段とから構成されたディス
クアレイ制御装置の制御方式において、 該上位計算機が連続的に発行するコマンドをキューに一
時保存しこれらを管理する手段と、 該キューに格納された複数のコマンドが1つの連続領域
へのアクセスを要求するコマンドであるとき、これら複
数のコマンドをグループ化して1つのコマンドとし、該
グループ化した1つのコマンドを上記各ディスク装置へ
のコマンドに変換する手段と、 グループ化された1つの該コマンドを上記各ディスク装
置へのコマンドに変換するときの変換情報と上記グルー
プ化した1つのコマンドに対する情報データとを格納し
て管理する手段とを設け、 上記上位計算機が発行した上記連続領域への複数のコマ
ンドを上記ディスクアレイ制御装置内部で1つのシーケ
ンシャルアクセスコマンドにみなすことにより、各々の
コマンドの扱うデータを1つの連続データとして扱い、
該データ全体を、アクセスすべく複数のディスク装置の
各々に対して、コマンドを分配し発行するように制御す
ることを特徴とするディスクアレイ制御方式。
A means for receiving a command from a host computer and notifying the end of the command; a means for interpreting a command issued from the host computer and converting the command into a command for each disk device; Means for initiating a command to the device and detecting completion of read and write data transfer by the command; means for controlling data transfer between the host computer and each of the disk devices; A control method of a disk array control device comprising: means for controlling, a command for temporarily storing commands continuously issued by the host computer in a queue and managing the commands; and a plurality of commands stored in the queue. When the command requests access to one continuous area, these commands are grouped into one command, and Means for converting one looped command to a command to each disk device; conversion information for converting one grouped command to a command to each disk device; Means for storing and managing information data for the commands, wherein a plurality of commands to the continuous area issued by the upper-level computer are regarded as one sequential access command in the disk array controller, so that each Data handled by the command is treated as one continuous data,
A disk array control method wherein the entire data is controlled so as to distribute and issue a command to each of a plurality of disk devices for access.
【請求項2】 請求項1において、 前記上位計算機が発行した前記連続領域への複数のリー
ドコマンドを前記ディスクアレイ制御装置内部で1つの
リードコマンドとしてみなし、 該1つのリードコマンドに基づいて前記複数のディスク
装置各々にリードコマンドを分配し発行することによ
り、前記連続領域への複数のリードコマンドの扱う全デ
ータを一括してリードするように制御することを特徴と
するディスクアレイ制御方式。
2. The disk array control device according to claim 1, wherein a plurality of read commands to the continuous area issued by the host computer are regarded as one read command inside the disk array control device, and the plurality of read commands are determined based on the one read command. A disk array control method, wherein a read command is distributed and issued to each of the disk devices so that all data handled by the plurality of read commands to the continuous area are controlled to be read collectively.
【請求項3】 請求項1において、 前記上位計算機が発行した前記連続領域への複数のライ
トコマンドを前記ディスクアレイ制御装置内部で1つの
ライトコマンドにみなし、 該1つのライトコマンドに基づいて、まず、複数の前記
ディスク装置各々にリードコマンドを分配し発行するこ
とにより、前記連続領域への該複数のライトコマンドが
扱う全データをライトしようとする領域からこれに既に
記録されているデータとパリティ情報とを一括してリー
ドし、 該リードデータと該パリティ情報とライトしようとする
データとから新たなパリティ情報を生成し、 次いで、該1つのライトコマンドに基づいて前記各ディ
スク装置各々にライトコマンドを分配し発行し、ライト
しようとする該データの全てと生成された該新たなパリ
ティ情報とを一括してライトするように制御することを
特徴とするディスクアレイ制御方式。
3. The disk array control device according to claim 1, wherein a plurality of write commands to the continuous area issued by the host computer are regarded as one write command inside the disk array control device, and based on the one write command, By distributing and issuing a read command to each of the plurality of disk devices, an area in which all data handled by the plurality of write commands is to be written to the continuous area is read from the data and parity information already recorded therein. And collectively reads the read data, generates new parity information from the read data, the parity information and the data to be written, and then writes a write command to each of the disk devices based on the one write command. Distribute, issue, and write all of the data to be written and the new parity information generated. The disk array control method and controls to write and Batch.
【請求項4】 請求項1において、 前記上位計算機が発行した前記連続領域への複数のライ
トコマンドを前記ディスクアレイ制御装置内部で1つの
ライトコマンドとみなし、 該ライトコマンドのデータをライトすべき前記ディスク
装置全てでの同一論理アドレスからライト開始する全ス
トライプにデータをライトするようなデータ領域を切り
出し、 該データ領域に関しては、該データ領域から旧データを
リードすることなく、該データ領域にライトする該デー
タからパリティデータを生成し、 該データと該パリティデータとを一括してライトするこ
とにより、該データ領域に関しては、該パリティデータ
生成のための旧データのリードをなくすように制御する
ことを特徴とするディスクアレイ制御方式。
4. The disk array control device according to claim 1, wherein a plurality of write commands to the continuous area issued by the host computer are regarded as one write command in the disk array controller, and the data of the write command is to be written. A data area in which data is to be written to all stripes where writing is started from the same logical address in all the disk devices is cut out, and the data area is written to the data area without reading old data from the data area. By generating parity data from the data and writing the data and the parity data collectively, the data area is controlled so as to eliminate reading of old data for generating the parity data. Characterized disk array control method.
【請求項5】 請求項1において、 前記上位計算機が発行したコマンドが扱うデータに続く
連続データを予め前記ディスク装置から先読みしておく
ように制御する第1の制御手段を設け、かつ前記ディス
クアレイ制御装置内部もしくは前記各ディスク装置内部
に該第1の制御手段によって先読みされたデータを格納
するデータ格納手段と、 該データ格納手段への該先読みされたデータの入出力を
制御する第2の制御手段とを設けたことを特徴とするデ
ィスクアレイ制御方式。
5. The disk array according to claim 1, further comprising: first control means for controlling so that continuous data following data handled by a command issued by the host computer is pre-read from the disk device. Data storage means for storing data prefetched by the first control means in a control device or in each of the disk devices; and second control for controlling input / output of the prefetched data to / from the data storage means. Means for controlling a disk array.
【請求項6】 請求項5において、 前記上位計算機から発行されたリードコマンドが扱うデ
ータが、前記データ格納手段に格納されているか否かを
判断する判断手段を設け、 該判断手段によって前記データ格納手段に該リードコマ
ンドが扱うデータが格納されていると判断されたとき、
前記データ格納手段から該データをリードして前記上位
計算機に送出することを特徴とするディスクアレイ制御
方式。
6. The storage device according to claim 5, further comprising: a determination unit configured to determine whether data handled by the read command issued from the host computer is stored in the data storage unit. When it is determined that the data handled by the read command is stored in the means,
A disk array control method wherein the data is read from the data storage means and sent to the host computer.
【請求項7】 請求項5において、 前記上位計算機から発行されたライトコマンドのために
生成されたパリティ情報を前記データ格納手段に格納す
ることを特徴とするディスクアレイ制御方式。
7. The disk array control method according to claim 5, wherein parity information generated for a write command issued from the host computer is stored in the data storage unit.
【請求項8】 請求項5において、 上位計算機から発行されたライトコマンドの扱う新デー
タをライトすべき領域に既に記録されている旧データ及
び旧パリティ情報が前記データ格納手段に格納されてい
るか否かを判断する判断手段を設け、 該判断手段によって前記データ格納手段に該旧データ及
び該旧パリティ情報が格納されていると判断されたとき
前記データ格納手段から該旧データ及び旧パリティ情報
を取り出し、該新データと、該旧リードデータ及び旧パ
リティ情報から新パリティ情報を生成し、該新データと
生成された該新パリティ情報とをディスク装置にライト
するように制御することを特徴としたディスクアレイ制
御方式。
8. The data storage means according to claim 5, wherein old data and old parity information already recorded in an area to which new data handled by a write command issued from a host computer is to be written are stored in said data storage means. Determining means for determining whether the old data and the old parity information are stored in the data storage means, extracting the old data and the old parity information from the data storage means A new parity information is generated from the new data, the old read data and the old parity information, and the new data and the generated new parity information are controlled to be written to a disk device. Array control method.
【請求項9】 請求項5、6または8において、 前記上位計算機から要求のあったデータ領域に続く領域
のデータを格納するアクセス対象となっていなかったデ
ィスク装置に対してリードコマンドを発行し、これによ
るリードデータを前記データ格納手段に格納し、前記上
位計算機からのアクセス要求のデータ領域に続く領域の
データを先読みしておくことを特徴とするディスクアレ
イ制御方式。
9. The read command according to claim 5, 6 or 8, wherein a read command is issued to a disk device that has not been an access target for storing data in an area subsequent to the data area requested by the host computer, A disk array control method wherein the read data is stored in the data storage means, and data in an area following a data area of an access request from the host computer is read in advance.
【請求項10】 請求項9において、 ディスク装置からリードされたデータは読み捨て、これ
によりディスク装置内部にあるデータバッファにデータ
を予め転送しておき、次回該領域へのリードアクセス要
求があった際には、該データバッファからデータをリー
ドすることを特徴とするディスクアレイ制御方式。
10. The data reading device according to claim 9, wherein the data read from the disk device is discarded, whereby the data is transferred in advance to a data buffer in the disk device, and the next time a read access request is made to the area. A data read from said data buffer.
【請求項11】 請求項5、6または8において、 前記上位計算機から要求のあったデータ領域に続く領域
のデータを格納するアクセス対象となっていなかったデ
ィスク装置に対して、該ディスク装置内部にあるデータ
バッファにまでデータをリードしておくよう制御するデ
ータ先読みコマンドを備え、前記上位計算機からのアク
セス要求のデータ領域に続く領域のデータを先読みする
ことを特徴とするディスクアレイ制御方式。
11. The disk device according to claim 5, 6 or 8, wherein a disk device that has not been an access target for storing data in an area subsequent to the data area requested by the higher-level computer is provided inside the disk apparatus. A disk array control method, comprising: a data prefetch command for controlling data to be read to a certain data buffer; and prefetching data in an area following a data area of an access request from the host computer.
【請求項12】 請求項9、10または11において、 前記ディスク装置への先読みのためのリードコマンド処
理中に前記上位計算機から当該ディスク装置へのアクセ
ス要求があったときには、直ちに該先読みのためのリー
ド処理を中止するように制御することを特徴とするディ
スクアレイ制御方式。
12. The disk drive according to claim 9, 10 or 11, wherein when there is an access request to the disk device from the host computer during read command processing for read-ahead to the disk device. A disk array control method for performing control so as to stop read processing.
JP4087223A 1992-04-08 1992-04-08 Disk array control method Expired - Lifetime JP2774728B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP4087223A JP2774728B2 (en) 1992-04-08 1992-04-08 Disk array control method
US08/043,841 US5740465A (en) 1992-04-08 1993-04-07 Array disk controller for grouping host commands into a single virtual host command

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4087223A JP2774728B2 (en) 1992-04-08 1992-04-08 Disk array control method

Publications (2)

Publication Number Publication Date
JPH05289818A JPH05289818A (en) 1993-11-05
JP2774728B2 true JP2774728B2 (en) 1998-07-09

Family

ID=13908896

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4087223A Expired - Lifetime JP2774728B2 (en) 1992-04-08 1992-04-08 Disk array control method

Country Status (1)

Country Link
JP (1) JP2774728B2 (en)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5530948A (en) * 1993-12-30 1996-06-25 International Business Machines Corporation System and method for command queuing on raid levels 4 and 5 parity drives
WO1998041915A1 (en) * 1997-03-19 1998-09-24 Hitachi, Ltd. Disk array subsystem
US6427184B1 (en) 1997-06-03 2002-07-30 Nec Corporation Disk drive with prefetch and writeback algorithm for sequential and nearly sequential input/output streams
JPH1185413A (en) * 1997-09-05 1999-03-30 Nippon Telegr & Teleph Corp <Ntt> Recorder
JP2008027326A (en) 2006-07-25 2008-02-07 Tdk Corp System controller, flash memory system having system controller, and control method of flash memory module
US8078848B2 (en) 2009-01-09 2011-12-13 Micron Technology, Inc. Memory controller having front end and back end channels for modifying commands

Also Published As

Publication number Publication date
JPH05289818A (en) 1993-11-05

Similar Documents

Publication Publication Date Title
US5740465A (en) Array disk controller for grouping host commands into a single virtual host command
US7117314B2 (en) Storage device and method for data sharing
US7318122B2 (en) Disk array control device with an internal connection system for efficient data transfer
US4467421A (en) Virtual storage system and method
USRE36989E (en) Virtual storage system and method
US6260109B1 (en) Method and apparatus for providing logical devices spanning several physical volumes
JPH05502314A (en) Data transfer method
EP0465014B1 (en) Method and means for rule based data transfer
JP2774728B2 (en) Disk array control method
US6697866B1 (en) Access control method for data stored in fixed-block length format in computer configurations utilizing variable length data format interfaces
US20020144028A1 (en) Method and apparatus for increased performance of sequential I/O operations over busses of differing speeds
JPH1063436A (en) Method and device for storing data
JPH11327802A (en) Disk system
JPH08129461A (en) Auxiliary storage device
JPH09223049A (en) Disk array system
WO1984002016A1 (en) Dynamic addressing for variable track length cache memory
JPH07121308A (en) Write back control method for disk device
JP2834081B2 (en) Magnetic disk controller
JPH06242888A (en) Disk array device, computer system, and data storage device
JP2580998B2 (en) Storage controller
JPH0736633A (en) Magnetic disk array
JPH0677244B2 (en) Disk cache device
JPH011047A (en) data processing system
JPH04245522A (en) Data transfer control method

Legal Events

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

Free format text: PAYMENT UNTIL: 20080424

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20090424

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20090424

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20100424

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20110424

Year of fee payment: 13

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

Free format text: PAYMENT UNTIL: 20120424

Year of fee payment: 14

EXPY Cancellation because of completion of term