JPH10326158A - Storage array and array controller - Google Patents

Storage array and array controller

Info

Publication number
JPH10326158A
JPH10326158A JP9135535A JP13553597A JPH10326158A JP H10326158 A JPH10326158 A JP H10326158A JP 9135535 A JP9135535 A JP 9135535A JP 13553597 A JP13553597 A JP 13553597A JP H10326158 A JPH10326158 A JP H10326158A
Authority
JP
Japan
Prior art keywords
data
storage
request
disk
array
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.)
Pending
Application number
JP9135535A
Other languages
Japanese (ja)
Inventor
Tatsuji Kawai
竜次 河合
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.)
Brother Industries Ltd
Original Assignee
Brother Industries 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 Brother Industries Ltd filed Critical Brother Industries Ltd
Priority to JP9135535A priority Critical patent/JPH10326158A/en
Publication of JPH10326158A publication Critical patent/JPH10326158A/en
Pending legal-status Critical Current

Links

Abstract

PROBLEM TO BE SOLVED: To attain a fast operation of a storage array via the parallel processings carried out between drive trains, by making use of a bus release period secured by a bus release/occupation function of a storage. SOLUTION: The array controller 3 of a disk array 1 has individual buffers 81a to 81c, 82a to 82c, 83a to 83c and 84a to 84c corresponding to the disk devices 10, which are connected every three pieces to the buses 41 to 44 respectively. In regard to the data read processing of the bus 41, the data, which are alternately transferred from three disks A1, B1 and C1 are transferred to the corresponding buffers 81a, 81b and 81c and accordingly arranged and stored there. In regard to the data read processing of the bus 41, the data to be written are previously stored in the buffers 81a, 81b and 81c and the corresponding data are transferred to one of disks A1, B1 and C1 that sent a data transfer request.

Description

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

【0001】[0001]

【発明の属する技術分野】本発明は、アレイコントロー
ラによって複数台の記憶装置を制御し、メインコンピュ
ータからのアクセスに対しては1台の記憶装置に見せか
けて応答するよう構成された記憶装置アレイに関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a storage device array in which a plurality of storage devices are controlled by an array controller, and responds to accesses from a main computer by imitating one storage device. .

【0002】[0002]

【従来の技術】従来、高速アクセスを可能とし、かつ高
信頼性を保証する記憶装置としてディスクアレイが提案
されてきた。ディスクアレイは、例えばハードディスク
装置等の小型のディスク装置を複数備えることで、大型
ディスク装置に対抗して高速アクセスを可能にする方式
として体系化されている。この体系化された方式はRA
ID(Redundant Arrays of Inexpensive Disks )と呼
ばれ、レベル1からレベル5までが基本的な構成として
考えられている。ここでは、本発明に関係するレベル3
のRAIDについて説明する。
2. Description of the Related Art Conventionally, a disk array has been proposed as a storage device which enables high-speed access and guarantees high reliability. The disk array is systematized as a system that includes a plurality of small disk devices such as a hard disk device and enables high-speed access to a large disk device. This systematized method is RA
This is called an ID (Redundant Arrays of Inexpensive Disks), and the basic configuration from level 1 to level 5 is considered. Here, Level 3 related to the present invention
Will be described.

【0003】レベル3のRAIDでは、1台のパリティ
用ディスク装置と2台以上のデータ用ディスク装置から
なる複数台のディスク装置をそれぞれ異なるバスに接続
することによって並行にアクセスできるようになってい
る。そして、メインコンピュータからの要求によってデ
ータを記憶するときには、そのデータを1バイト単位に
分割し、データ用ディスク装置のそれぞれに分散して記
憶すると共に、それらの分割データの排他的論理和であ
るパリティデータを計算してパリティ用ディスク装置に
記憶する。つまり、データは、異なるバスに接続された
複数台のディスク装置のそれぞれに分散して記憶される
ことになる。
In the RAID of level 3, a plurality of disk devices including one parity disk device and two or more data disk devices are connected to different buses so that they can be accessed in parallel. . When data is stored in response to a request from the main computer, the data is divided into 1-byte units, and the data is dispersedly stored in each of the data disk devices, and a parity which is an exclusive OR of the divided data is stored. The data is calculated and stored in the parity disk device. That is, the data is distributed and stored in each of a plurality of disk devices connected to different buses.

【0004】このように、本来1台のディスク装置に書
き込まれるはずのデータが複数台のディスク装置に分散
して書き込まれるため、トータルで考えた場合、1台の
ディスク装置に対する読み書きの頻度や読み出すデータ
量が低減されるため、全体として見れば処理速度の向上
が図られるのである。
As described above, since data that should be written to one disk device is written to a plurality of disk devices in a distributed manner, the frequency of reading and writing to and reading from one disk device is considered in total. Since the data amount is reduced, the processing speed is improved as a whole.

【0005】また、複数台のディスク装置のうちの1台
をパリティ用ディスク装置としてパリティデータを記憶
するため、1台のディスク装置からのデータが読み出せ
ない場合であっても、残りのディスク装置からのデータ
に基づいて、その1台のディスク装置から読み出される
はずのデータを生成することができる。その結果、デー
タ読出処理で1台のディスク装置にリードエラーが発生
した場合にも読出対象のデータを生成することができ、
信頼性の向上が図られるのである。
In addition, since parity data is stored as one of a plurality of disk devices as a parity disk device, even if data cannot be read from one disk device, the remaining disk devices can be read. , It is possible to generate data that is to be read from the one disk device based on the data from. As a result, data to be read can be generated even when a read error occurs in one disk device in the data read processing,
The reliability is improved.

【0006】ところで、例えばSCSI規格のバスを使
用すれば1本のバスに7台というような所定数台のディ
スク装置を接続することができる。従って、高速性、高
信頼性に加えて、大容量のディスクアレイを実現するた
め、1本のバスに複数台のディスク装置を接続すること
によって、上述のようなパリティ用ディスク装置を含む
複数台のディスク装置の組を複数組備えたディスクアレ
イが一般的であった。
By the way, for example, if a SCSI standard bus is used, a predetermined number of disk devices such as seven can be connected to one bus. Therefore, in order to realize a large-capacity disk array in addition to high speed and high reliability, a plurality of disk devices including the above-mentioned parity disk device are connected by connecting a plurality of disk devices to one bus. In general, a disk array provided with a plurality of disk device sets is generally used.

【0007】ここで、図5に基づいて従来の一般的なデ
ィスクアレイの構成を詳しく説明する。図5は、従来の
ディスクアレイ100の概略構成を示すブロック図であ
る。ディスクアレイ100は、アレイコントローラ30
0と12台のディスク装置10で構成されている。
Here, the configuration of a conventional general disk array will be described in detail with reference to FIG. FIG. 5 is a block diagram showing a schematic configuration of a conventional disk array 100. As shown in FIG. The disk array 100 includes an array controller 30
It is composed of 0 and 12 disk devices 10.

【0008】12台のディスク装置10は、4本のバス
41〜44にそれぞれ3台ずつ接続されている。なお、
12台のディスク装置10を区別するために、図5中に
示した記号を用い、ディスクA1,ディスクA2,ディ
スクA3,ディスクA4,ディスクB1,ディスクB
2,ディスクB3,ディスクB4,ディスクC1,ディ
スクC2,ディスクC3,ディスクC4と以下記述す
る。
The twelve disk units 10 are connected to four buses 41 to 44, respectively. In addition,
In order to distinguish the twelve disk devices 10, the symbols shown in FIG. 5 are used, and disks A1, disk A2, disk A3, disk A4, disk B1, disk B
2, disk B3, disk B4, disk C1, disk C2, disk C3, and disk C4.

【0009】図5に示す例では、バス44に接続された
ディスクA4,B4,C4がパリティ用ディスク装置で
ある。すなわち、アレイコントローラ300は、上述し
たようなパリティ用ディスク装置を含むディスク装置の
組として、ディスクA1〜A4,ディスクB1〜B4,
ディスクC1〜C4を備えている。そして、各組の4台
のディスク装置は、異なるバス、すなわちバス41〜4
4に接続されることにより、アレイコントローラ300
によって並列に制御される。
In the example shown in FIG. 5, the disks A4, B4 and C4 connected to the bus 44 are parity disk devices. That is, the array controller 300 includes the disks A1 to A4, the disks B1 to B4,
Discs C1 to C4 are provided. Each set of four disk devices is connected to a different bus, that is, buses 41 to 4.
4, the array controller 300
Are controlled in parallel.

【0010】例えばデータの書き込み処理では、ホスト
装置500からのデータは、ビット演算回路50で3つ
のデータに分割されると共に、その3つのデータのパリ
ティデータが計算され、ディスクA1〜A4、ディスク
B1〜B4又はディスクC1〜C4のうちのいずれか4
台のディスク装置へそれぞれバス41〜44を介して記
憶される。
For example, in the data writing process, the data from the host device 500 is divided into three data by the bit operation circuit 50, and the parity data of the three data is calculated, and the disks A1 to A4 and the disks B1 To B4 or any one of disks C1 to C4
The data is stored in one of the disk devices via buses 41 to 44, respectively.

【0011】一方、データの読み出し処理では、ディス
クA1〜A4、ディスクB1〜B4又はディスクC1〜
C4のうちの該当する4台のディスク装置からのデータ
は、バッファ31〜34へ読み出され、ビット演算回路
50で結合されてホスト装置500へ転送される。な
お、エラー訂正が必要な場合はビット演算回路50にお
いてバッファ34のパリティデータを利用してエラー訂
正が行われる。
On the other hand, in the data reading process, disks A1 to A4, disks B1 to B4 or disks C1 to C4
Data from the corresponding four disk devices of C4 are read out to buffers 31 to 34, combined by the bit operation circuit 50, and transferred to the host device 500. If error correction is necessary, the bit operation circuit 50 performs error correction using the parity data in the buffer 34.

【0012】このように、ディスクアレイ100は、異
なるバスに接続されたディスク装置をアレイコントロー
ラ300によって並列にアクセスすることによって高速
性を実現している。なお、ディスクアレイ100は、異
なるバスによる独立したアクセス系統を4系統備えてい
るため、ディスクアレイ100を系統列4のディスクア
レイという。また、並列動作する複数台のディスク装置
の組をドライブ列という。そのため、ディスクアレイ1
00はドライブ列3のディスクアレイともいえる。以
下、ディスクA1〜A4をAドライブ列、ディスクB1
〜B4をBドライブ列、ディスクC1〜C4の組をCド
ライブ列という。一般的なディスクアレイにおけるディ
スク装置は、系統列n(nは自然数;n≧2)、ドライ
ブ列m(mは自然数;m≧2)というようなマトリクス
構造で表現することができ、系統列間の並列処理によっ
て処理速度の向上を図っているといえる。
As described above, the disk array 100 achieves high speed by accessing disk devices connected to different buses in parallel by the array controller 300. Since the disk array 100 includes four independent access systems using different buses, the disk array 100 is referred to as a system array 4 disk array. A set of a plurality of disk devices operating in parallel is called a drive row. Therefore, disk array 1
00 can be said to be a disk array of the drive row 3. Hereinafter, the discs A1 to A4 will be referred to as an A drive row,
B4 to B4, and a set of disks C1 to C4 is a C drive. A disk device in a general disk array can be expressed by a matrix structure such as a system row n (n is a natural number; n ≧ 2) and a drive row m (m is a natural number; m ≧ 2). It can be said that the processing speed is improved by the parallel processing.

【0013】ところで、通常、ドライブ列間の並列処理
はできない。なぜなら、例えば図5中でディスクA1を
アクセスすると、ディスクA1によってバス41が占有
されてしまい、ディスクB1及びディスクC1にはアク
セスできないからである。ところが、例えばSCSIの
規格では、ディスコネクト・リコネクトと呼ばれる機能
を利用して、同一のバスに接続されているディスク装置
を並列にアクセスすることができる。このディスコネク
ト・リコネクト機能を図5中のバス41に接続されたS
CSIコントローラ21、ディスクA1、ディスクB1
及びディスクC1を用いて説明する。
In general, parallel processing between drive trains cannot be performed. This is because, for example, when the disk A1 is accessed in FIG. 5, the bus 41 is occupied by the disk A1, and the disks B1 and C1 cannot be accessed. However, for example, in the SCSI standard, a disk device connected to the same bus can be accessed in parallel using a function called disconnect / reconnect. This disconnect / reconnect function is performed by the S connected to the bus 41 in FIG.
CSI controller 21, disk A1, disk B1
And the disk C1.

【0014】例えばSCSIコントローラ21がディス
クA1に対するデータの読み出しを要求するためのコマ
ンドを発行した場合、ディスクA1は、このコマンドを
受信して、このコマンドに基づく処理を実行する。つま
り、ディスクA1は、ディスク面からデータを読み出
し、読み出したデータをSCSIコントローラ21へ転
送する。
For example, when the SCSI controller 21 issues a command for requesting data reading from the disk A1, the disk A1 receives this command and executes processing based on the command. That is, the disk A1 reads data from the disk surface and transfers the read data to the SCSI controller 21.

【0015】このとき、ディスクA1がディスコネクト
・リコネクト機能を備えていれば、ディスクA1は、S
CSIコントローラ21からのコマンドに基づく処理の
実行期間中、例えばディスク面からデータを読み出す期
間等、バス41を必要としない期間にはSCSIコント
ローラ21との結合を一旦切断(ディスコネクト)して
バス41を解放し、バス41を必要とする期間にはSC
SIコントローラ21と再結合(リコネクト)してバス
41を占有する。
At this time, if the disk A1 has a disconnect / reconnect function, the disk A1
During an execution period of a process based on a command from the CSI controller 21, for example, during a period when the bus 41 is not required, such as a period during which data is read from the disk surface, the connection with the SCSI controller 21 is temporarily disconnected (disconnected) and the bus 41 is disconnected. During the period when the bus 41 is required.
The bus 41 is occupied by reconnection (reconnect) with the SI controller 21.

【0016】このようにディスコネクト・リコネクト機
能を備えるディスク装置は不要なバスの占有を行わない
ため、アレイコントローラはバスの解放期間を利用して
同一バスに接続されているディスク装置を並列にアクセ
スすることが可能となる。例えば、SCSIコントロー
ラ21はディスクA1へのデータ読み出し要求コマンド
を発行した後、ディスクA1がディスコネクトするのを
待って、ディスクB1又はディスクC1へデータ読み出
し要求コマンドを送信することができる。
Since the disk device having the disconnect / reconnect function does not occupy an unnecessary bus, the array controller uses the bus release period to access the disk devices connected to the same bus in parallel. It is possible to do. For example, the SCSI controller 21 can transmit a data read request command to the disk B1 or the disk C1 after issuing a data read request command to the disk A1, waiting for the disk A1 to be disconnected.

【0017】そのため、上述したような系統列間の並列
処理に加えて、ドライブ列間の並列処理、例えば図5で
はA〜Cのドライブ列の間での並列処理を行うことによ
ってディスクアレイのさらなる高速化が実現できると考
えられていた。
Therefore, in addition to the parallel processing between the system rows as described above, the parallel processing between the drive rows, for example, the parallel processing between the drive rows A to C in FIG. It was thought that high speed could be realized.

【0018】[0018]

【発明が解決しようとする課題】ところが、上述したよ
うにディスコネクト・リコネクト機能を利用して同一バ
スに接続されたディスク装置を並列にアクセスする場
合、例えばデータ読み出し要求コマンドに対応して各デ
ィスク装置から転送されてくるデータは、データの読み
出し要求順に転送されてくるとは限らないし、また、デ
ータが分割されて転送される場合には、各ディスク装置
毎のまとまったデータとして転送されるとも限らない。
However, when the disk devices connected to the same bus are accessed in parallel by using the disconnect / reconnect function as described above, for example, each disk may be accessed in response to a data read request command. The data transferred from the device is not always transferred in the order of the data read request, and when the data is transferred in a divided manner, it may be transferred as a set of data for each disk device. Not exclusively.

【0019】例えば図5に示すディスクアレイ100
で、SCSIコントローラ21がディスクA1、ディス
クB1、ディスクC1の順にデータ読み出し要求コマン
ドを発行したとしても、バスが解放されるため、ディス
クC1が先にデータの読み出しを完了すればディスクC
1からのデータが先に転送されてくる。また、ディスク
C1が、読み出し対象のデータを2つに分割して転送す
るような場合、1つ目の分割データを転送した後にディ
スコネクトしてバスが解放されると、ディスクA1又は
ディスクB1からのデータが転送される可能性もある。
その場合、ディスクC1からのデータは、ディスクA1
又はディスクB1からのデータによって分断されること
になる。
For example, the disk array 100 shown in FIG.
Even if the SCSI controller 21 issues the data read request command in the order of the disk A1, the disk B1, and the disk C1, the bus is released, so if the disk C1 completes the data read first, the disk C
The data from 1 is transferred first. Further, in the case where the disk C1 transfers the data to be read by dividing it into two parts, if the bus is released after the first divided data is transferred, the disk C1 is disconnected from the disk A1 or the disk B1. Data may be transferred.
In that case, the data from disk C1 is
Alternatively, the data is divided by the data from the disk B1.

【0020】従って、例えばバス41に接続されたディ
スクA1、ディスクB1及びディスクC1から転送され
るデータは、図6に示すような具合いに混在した状態で
バッファ31に記憶されることになる。図5において、
アレイコントローラ300がAドライブ列、Bドライブ
列及びCドライブ列から並列にデータを読み出す場合、
上述のような状況が4本の各バス41〜44でそれぞれ
発生するため、図7(a)に示すように、バッファ31
〜34に記憶されるデータは、バッファ31〜34の間
で対応のとれないものとなってしまう。
Therefore, for example, data transferred from the disks A1, B1 and C1 connected to the bus 41 are stored in the buffer 31 in a mixed state as shown in FIG. In FIG.
When the array controller 300 reads data in parallel from the A drive row, the B drive row, and the C drive row,
Since the above-described situation occurs in each of the four buses 41 to 44, as shown in FIG.
The data stored in the buffers 34 to 34 cannot be handled among the buffers 31 to 34.

【0021】ところが、ディスクアレイ100では、デ
ータをAドライブ列、Bドライブ列、Cドライブ列のい
ずれかの4台のディスク装置へ分散して記憶し、4台の
ディスク装置から読み出したデータをそれぞれ結合して
ホスト装置へ出力するという系統列間の分散処理をす
る。そのため、図7(a)に示したような順で転送され
たデータを、図7(b)に示すように各ディスク装置毎
にまとまったデータとして、かつ、系統列間、すなわち
バス31〜34の間で対応のとれたデータとして整理し
直す必要があった。そのため、ドライブ列間の並列処理
により短縮される時間は、このデータ整理のために要す
る時間に相殺されてしまう。従って、ドライブ列間の並
列処理によるディスクアレイの高速化を実現することは
困難であった。
However, in the disk array 100, the data is distributed and stored in any one of the four disk drives A, B, and C, and the data read from the four disk drives are respectively stored. The distributed processing is performed between the system strings, which is combined and output to the host device. Therefore, the data transferred in the order as shown in FIG. 7A is combined as data for each disk device as shown in FIG. 7B, and between the system rows, that is, buses 31 to 34. It was necessary to rearrange as data that was taken between. Therefore, the time shortened by the parallel processing between the drive arrays is offset by the time required for data reduction. Therefore, it has been difficult to realize a high-speed disk array by parallel processing between drive arrays.

【0022】本発明は、上述したデータ読み出し時のデ
ータ整理等のデータ操作に要する時間を短縮することに
よって、ドライブ列間の並列処理による記憶装置アレイ
の高速化を実現することを目的とする。
An object of the present invention is to realize a high-speed storage device array by parallel processing between drive rows by shortening the time required for data operations such as data arrangement at the time of data reading.

【0023】[0023]

【課題を解決するための手段及び発明の効果】上述の目
的を達成するためになされた請求項1に記載の記憶装置
アレイは、複数本のバスを有し、当該各バスに複数台の
記憶装置を接続することによって、互いに異なるバスに
接続されて並列に動作する記憶装置の組であるドライブ
列を複数列備え、アレイコントローラによってドライブ
列単位でアクセスを行うよう構成され、記憶装置は、デ
ータの読み出し又は書き込みの少なくともいずれか一方
のためのコマンドに基づく処理の実行時に、バスを必要
としない期間にはバスを解放し、バスを必要とする期間
にはバスを占有するバス占有・解放機能を備えた記憶装
置アレイにおいて、記憶装置にそれぞれ対応する個別の
記憶領域を備えており、ホスト装置からの要求に基づ
き、読み出し対象又は書き込み対象のドライブ列の各記
憶装置に対し、バスの解放期間を利用して処理要求コマ
ンドを発行するコマンド発行手段と、処理要求コマンド
に基づく処理を実行中の記憶装置からデータ転送要求が
あった場合、当該転送を要求した記憶装置を特定する要
求装置特定手段と、要求装置特定手段によって特定され
た記憶装置に対応する記憶領域を特定する記憶領域特定
手段と、ホスト装置からの要求がデータ読み出し要求で
ある場合には、要求装置特定手段によって特定された記
憶装置から記憶領域特定手段によって特定された記憶領
域へ該当するデータを転送し、一方、ホスト装置からの
要求がデータ書き込み要求である場合には、記憶領域特
定手段によって特定された記憶領域から要求装置特定手
段によって特定された記憶装置へ該当データを転送する
転送実行手段と、ホスト装置からの要求がデータ読み出
し要求である場合、転送を終了したドライブ列がある場
合には、当該ドライブ列の各記憶装置に対応する記憶領
域に記憶されたデータから読出対象のデータを生成し、
一方、ホスト装置からの要求がデータ書き込み要求であ
る場合、ホスト装置から書き込み対象のデータが送信さ
れた場合には、書き込み対象のドライブ列の各記憶装置
に対応する記憶領域へ当該書き込み対象のデータを分散
して記憶するデータ演算手段とを備えることを特徴とし
ている。
According to the first aspect of the present invention, there is provided a storage device array having a plurality of buses, each of which has a plurality of storage devices. By connecting the devices, a plurality of drive columns, which are a set of storage devices connected to different buses and operating in parallel, are provided, and are configured to be accessed by the array controller in drive column units. A bus occupancy / release function that releases a bus during a period when a bus is not required, and occupies a bus during a period when a bus is required, at the time of executing processing based on a command for at least one of reading and writing of the data. In the storage device array provided with the storage device, individual storage areas corresponding to the storage devices are provided, and based on a request from the host device, the read target or A command issuing means for issuing a processing request command using the bus release period to each storage device in the drive array to be written, and a data transfer request from a storage device executing a process based on the processing request command. In the case, the requesting device specifying means for specifying the storage device that has requested the transfer, the storage area specifying means for specifying the storage area corresponding to the storage device specified by the requesting device specifying means, and a request from the host device for reading data When the request is a request, the corresponding data is transferred from the storage device specified by the requesting device specifying unit to the storage area specified by the storage region specifying unit. On the other hand, when the request from the host device is a data write request. Corresponds to the storage device specified by the requesting device specifying means from the storage area specified by the storage area specifying means. Transfer execution means for transferring data, and when the request from the host device is a data read request, and when there is a drive train for which transfer has been completed, the data is stored in a storage area corresponding to each storage device of the drive train. Generates the data to be read from the data
On the other hand, when the request from the host device is a data write request, and when the data to be written is transmitted from the host device, the data to be written is stored in the storage area corresponding to each storage device in the drive array to be written. And data calculation means for storing the data in a distributed manner.

【0024】本記憶装置アレイは、n(nは自然数;n
≧2)本のバスにそれぞれm(mは自然数;m≧2)台
の記憶装置が接続された場合、それら(m×n)台の記
憶装置を、互いに異なるバスに接続されたn台の記憶装
置の組に分け、m列のドライブ列として制御する。
The present storage device array has n (n is a natural number; n)
If m (m is a natural number; m ≧ 2) storage devices are connected to each of the ≧ 2) buses, the (m × n) storage devices are connected to n (n) connected to different buses. It is divided into sets of storage devices and controlled as m rows of drive rows.

【0025】このとき、ドライブ列を構成するn台の記
憶装置は、それぞれ異なるバスに接続されているため、
1台の記憶装置に記憶するデータをそれらn台の記憶装
置に分散させて記憶することによってデータの読み出し
処理及び書き込み処理が高速化される。
At this time, since the n storage devices constituting the drive train are connected to different buses,
The data read processing and the data write processing are speeded up by distributing and storing the data stored in one storage device in the n storage devices.

【0026】また、バスに接続された各記憶装置は、バ
スの解放・占有機能を備えており、データの書き込み又
は読み出しの少なくともいずれか一方を要求するコマン
ドを受信すると、当該コマンドに基づく処理を実行す
る。その際、不要なバスの占有を行わない。つまり、コ
マンドに基づく処理の実行期間中、例えばディスク面か
らデータを読み出す期間等、バスを必要としない期間に
はバスを解放し、例えば読み出したデータを転送する期
間等バスを必要とする期間にはバスを占有する。
Each storage device connected to the bus has a bus release / occupation function. When a command requesting at least one of data writing and reading is received, processing based on the command is performed. Run. At that time, unnecessary bus occupation is not performed. That is, during the execution period of the processing based on the command, the bus is released during a period when the bus is not required, for example, a period during which data is read from the disk surface, and the bus is released during a period during which the read data is transferred, for example, during the period when the read data is transferred. Occupies the bus.

【0027】従って、1本のバスに接続された複数台の
記憶装置に対しての並列処理も、バス解放・占有機能に
よるバスの解放期間を利用することによって可能とな
る。そこで、バスの解放期間を利用して、コマンド発行
手段は、ホスト装置からの処理要求に基づき複数のドラ
イブ列に対して並列に処理を要求する。すなわち、複数
のドライブ列の各記憶装置に対して処理要求コマンドを
発行する。
Therefore, parallel processing for a plurality of storage devices connected to one bus can be performed by utilizing the bus release period by the bus release / occupation function. Therefore, using the bus release period, the command issuing unit requests a plurality of drive arrays to perform processing in parallel based on a processing request from the host device. That is, a processing request command is issued to each storage device in a plurality of drive arrays.

【0028】例えば、ホスト装置からの処理要求が2以
上あった場合、まず、該当する1つのドライブ列の各記
憶装置へ処理要求コマンドを発行する。その結果、その
ドライブ列の各記憶装置が、その処理要求コマンドに基
づく処理を実行し、バス解放・占有機能によってバスを
必要としない場合にはバスを解放する。このバスの解放
期間を利用して、コマンド発行手段は、該当する別のド
ライブ列の各記憶装置に対し、さらに、処理要求コマン
ドを発行するという具合いである。
For example, when there are two or more processing requests from the host device, first, a processing request command is issued to each storage device of the corresponding one drive row. As a result, each storage device of the drive row executes processing based on the processing request command, and releases the bus when the bus is not required by the bus release / occupation function. Utilizing the bus release period, the command issuing unit issues a processing request command to each storage device of another corresponding drive row.

【0029】また、本記憶装置アレイは、各記憶装置に
対応して個別に設けられた記憶領域を有している。バス
を解放して処理要求コマンドに基づく処理を実行中の各
記憶装置が、例えばディスク面から所定量のデータを読
み出した後、また例えばデータの書き込み準備をした
後、再びバスを占有してデータ転送の要求をしてくる
と、そのデータ転送の要求に対応して、要求装置特定手
段が、そのバスに接続されているどの記憶装置からの転
送要求であるかを判断し、転送要求をした記憶装置を特
定する。また、記憶領域特定手段が、要求装置特定手段
によって特定された記憶装置に対応して個別に設けられ
た記憶領域を特定する。
The present storage device array has storage areas individually provided corresponding to the respective storage devices. Each storage device that is executing the processing based on the processing request command by releasing the bus reads, for example, a predetermined amount of data from the disk surface, or, for example, prepares to write the data, and then occupies the bus again to occupy the data. When a transfer request is made, the requesting device specifying unit determines which storage device connected to the bus is the transfer request in response to the data transfer request, and makes a transfer request. Identify the storage device. Further, the storage area specifying means specifies storage areas individually provided corresponding to the storage devices specified by the requesting apparatus specifying means.

【0030】そして、この要求装置特定手段及び記憶領
域特定手段によって記憶装置及び記憶領域が特定される
と、転送実行手段は、ホスト装置からの要求がデータ読
み出し要求である場合、特定された記憶装置を転送元と
し、特定された記憶領域を転送先としてデータ転送を行
う。一方、ホスト装置からの要求がデータ書き込み要求
である場合、特定された記憶領域を転送元とし、特定さ
れた記憶装置を転送先としてデータ転送を行う。
When the storage device and the storage area are specified by the requesting device specifying unit and the storage area specifying unit, the transfer executing unit, if the request from the host device is a data read request, specifies the specified storage device. Is used as a transfer source, and data transfer is performed using the specified storage area as a transfer destination. On the other hand, if the request from the host device is a data write request, data transfer is performed with the specified storage area as a transfer source and the specified storage device as a transfer destination.

【0031】また、データ演算手段は、ホスト装置から
の要求がデータ読み出し要求である場合に、ドライブ列
単位でのデータ転送が終了すると、転送が終了したドラ
イブ列の各記憶装置にそれぞれ対応する個別の記憶領域
に記憶されたデータから読み出し対象のデータを生成
し、一方、ホスト装置からの要求がデータ書き込み要求
である場合に、ホスト装置から書き込み対象のデータが
転送されると、該当するドライブ列の各記憶装置に対応
する記憶領域へその書き込み対象のデータを分散して記
憶する。
In the case where the request from the host device is a data read request and the data transfer on a drive-row basis is completed, the data operation means is provided with an individual memory corresponding to each storage device of the drive row on which the transfer has been completed. When the data to be read is generated from the data stored in the storage area of the storage device, and the request from the host device is a data write request, and when the data to be written is transferred from the host device, the corresponding drive train The data to be written is distributed and stored in storage areas corresponding to the respective storage devices.

【0032】上述したように、データ読み出し処理にお
いて、記憶装置のバス解放・占有機能によるバスの解放
期間を利用して複数のドライブ列から並列にデータを読
み出す場合、バス単位に設けられたバッファ等の記憶領
域に、複数台の記憶装置から転送されるデータをそのま
ま記憶することになるため、そのデータは図7(a)に
示したように記憶装置毎のまとまったデータとならな
い。しかも、各バス毎にそのような状況が発生するた
め、ドライブ列毎に読み出したデータを読み出し対象の
データとして生成する場合、図7(b)に示したような
各バス間で対応がとれ、各記憶装置毎のまとまったデー
タとして整理し直すことが必要であった。その結果、そ
の整理のためのデータ操作に要する時間によって、ドラ
イブ列間での並列処理によるデータ読み出し処理の高速
化は困難であった。
As described above, in the data reading process, when data is read in parallel from a plurality of drive rows using the bus release period by the bus release / occupation function of the storage device, a buffer or the like provided for each bus is used. In this storage area, data transferred from a plurality of storage devices is stored as it is, so that the data does not become a set of data for each storage device as shown in FIG. In addition, since such a situation occurs for each bus, when data read for each drive row is generated as data to be read, correspondence can be taken between the buses as shown in FIG. It was necessary to rearrange the data as a set of data for each storage device. As a result, it has been difficult to speed up the data reading process by the parallel processing between the drive arrays due to the time required for the data operation for the organization.

【0033】それに対して、本記憶装置アレイは、各記
憶装置にそれぞれ対応する個別の記憶領域を有してい
る。そして、データの読み出し処理において、記憶装置
からデータの転送要求があると、要求装置特定手段が、
どの記憶装置からのデータ転送要求であるかを判断し、
記憶領域特定手段が転送を要求する記憶装置に対応して
設けられた記憶領域を特定する。これによって、転送実
行手段によってデータ転送が実行されると、各記憶装置
から転送されるデータは、それぞれの記憶装置に対応す
る個別の記憶領域へ記憶されることになる。
On the other hand, the present storage device array has individual storage areas corresponding to the respective storage devices. In the data reading process, when there is a data transfer request from the storage device, the requesting device identification unit
Determine which storage device the data transfer request is from,
The storage area specifying means specifies a storage area provided corresponding to the storage device requesting the transfer. Thus, when the data transfer is executed by the transfer execution unit, the data transferred from each storage device is stored in the individual storage area corresponding to each storage device.

【0034】その結果、1本のバスに接続された複数台
の記憶装置から交互にデータが転送された場合であって
も、また、どのような順序でデータが転送された場合で
あっても、各記憶装置からのデータは各記憶装置毎のま
とまったデータとして整理されて記憶されることにな
る。つまり、転送されたデータがそのまま図7(b)に
示すように整理されることになる。
As a result, regardless of whether data is transferred alternately from a plurality of storage devices connected to one bus or in any order. The data from each storage device is organized and stored as a set of data for each storage device. That is, the transferred data is directly arranged as shown in FIG.

【0035】従って、データ生成手段は、データ転送の
終了をドライブ列単位で判断すると、該当する記憶領域
に記憶されたデータに基づいて、読み出し対象のデータ
をすぐさま生成することができる。これによって、転送
されたデータを一旦記憶した後に、そのデータを各記憶
装置毎のデータとして記憶し直すという無駄がなくな
り、記憶装置からのデータ転送と同時にデータが整理さ
れるため、データ整理に要する時間を短縮することがで
き、ドライブ列間の並列処理によるデータ読み出し処理
の高速化を実現することができる。
Therefore, when the data generation means determines the end of the data transfer for each drive row, it can immediately generate the data to be read based on the data stored in the corresponding storage area. This eliminates the need to temporarily store the transferred data and then store the data again as data for each storage device, and the data is organized at the same time as the data is transferred from the storage device, which is necessary for data organization. The time can be reduced, and the speed of the data reading process can be increased by the parallel processing between the drive rows.

【0036】一方、データ書き込み処理においても、記
憶装置のバス解放・占有機能によるバスの解放期間を利
用して複数のドライブ列へ並列にデータを書き込む場
合、バス単位に設けられたバッファ等の記憶領域に、ホ
スト装置から送信される書き込み対象のデータを送信さ
れた順に記憶することになる。従って、複数台の記憶装
置から交互に書き込みのための転送要求がなされる場
合、その転送要求に対応するデータをバッファに記憶し
た一連のデータから選択して転送するためのデータ操作
が必要となってくる。しかも、そのようなデータ操作が
各バス毎に必要となるため、そのデータ操作に要する時
間によって、ドライブ列間での並列処理によるデータ書
き込み処理の高速化も困難であった。
On the other hand, in the data writing process, when data is written in parallel to a plurality of drive rows using the bus release period by the bus release / occupation function of the storage device, the data is stored in a buffer or the like provided for each bus. In the area, the data to be written transmitted from the host device is stored in the order of transmission. Therefore, when a transfer request for writing is alternately made from a plurality of storage devices, it is necessary to perform a data operation for selecting and transferring data corresponding to the transfer request from a series of data stored in the buffer. Come. In addition, since such data manipulation is required for each bus, it is difficult to speed up data writing processing by parallel processing between drive trains due to the time required for the data manipulation.

【0037】それに対して、本記憶装置アレイは、各記
憶装置にそれぞれ対応する個別の記憶領域を有してお
り、データ演算手段が、書き込みの対象となる各記憶装
置に対応する記憶領域へホスト装置から送信される書き
込み対象のデータを分散して記憶しておく。
On the other hand, the present storage device array has individual storage areas respectively corresponding to the respective storage devices, and the data operation means transfers the host data to the storage regions corresponding to the respective storage devices to be written. The data to be written transmitted from the device is distributed and stored.

【0038】そして、書き込み対象の各記憶装置からデ
ータの転送要求があった場合、要求装置特定手段が、複
数台の記憶装置の中から転送要求をした記憶装置を特定
する。また、記憶領域特定手段が、その記憶装置に対応
する記憶領域を特定する。上述したように、データの転
送を要求する書き込み対象の記憶装置に対応する記憶領
域には、予めホスト装置からの書き込み対象データを記
憶してあるため、転送実行手段は、転送を要求してくる
記憶装置へ特定された記憶領域から該当するデータをす
ぐさま転送することができる。
Then, when there is a data transfer request from each storage device to be written, the requesting device specifying means specifies the storage device that has requested the transfer from among the plurality of storage devices. Further, the storage area specifying means specifies a storage area corresponding to the storage device. As described above, since the write target data from the host device is stored in advance in the storage area corresponding to the write target storage device requesting the data transfer, the transfer execution unit requests the transfer. The corresponding data can be immediately transferred from the specified storage area to the storage device.

【0039】つまり、予め個別の記憶領域に分けて書き
込むべきデータが記憶されているため、転送要求のあっ
た記憶装置に対応する記憶領域を特定してデータを転送
するのである。その結果、複数台の記憶装置の中のどの
記憶装置からデータ転送の要求があった場合でも、ま
た、どのような順序でデータ転送の要求があった場合で
あっても、すぐさま該当するデータをそれらの記憶装置
へ転送することが可能となる。
That is, since the data to be written is stored in the individual storage areas in advance, the storage area corresponding to the storage device that has requested the transfer is specified and the data is transferred. As a result, regardless of which storage device among the plurality of storage devices requests the data transfer, and in any order, the corresponding data is immediately read. It becomes possible to transfer to those storage devices.

【0040】これによって、1本のバスに接続された複
数台の記憶装置へのデータをバッファ等の記憶領域に記
憶しておき、転送要求のあった記憶装置に対応するデー
タをそのデータの中から選択して転送するという無駄が
なくなり、データ操作に要する時間の短縮を図ることが
できる。その結果、ドライブ列間の並列処理によるデー
タ書き込み処理の高速化を実現することができる。
As a result, data for a plurality of storage devices connected to one bus is stored in a storage area such as a buffer, and data corresponding to the storage device requested to be transferred is stored in the data. This eliminates the waste of selecting and transferring data, and can reduce the time required for data operation. As a result, it is possible to realize high-speed data write processing by parallel processing between drive arrays.

【0041】なお、本記憶装置アレイは、ホスト装置か
らのデータの読み出し要求又は書き込み要求の少なくと
もいずれか一方の処理要求に基づき動作する。つまり、
記憶装置アレイは、データの読み出し処理のみを行うも
のであることも考えられるし、データの書き込み処理の
みを行うものであることも考えられるし、あるいは、そ
の両方の処理を行うものであることも考えられる。但
し、データの読み出し及び書き込みの両方の処理を行う
記憶装置アレイが一般的である。
The storage device array operates based on at least one of a data read request and a data write request from the host device. That is,
The storage device array may perform only data read processing, may perform only data write processing, or may perform both processing. Conceivable. However, a storage device array that performs both data reading and writing processes is generally used.

【0042】ところで、記憶装置アレイは、ホスト装置
からは見かけ上1台の記憶装置として動作する。通常、
記憶装置アレイの備える複数台の記憶装置の記憶領域に
は一連のクラスタ番号が設定される。そして、ホスト装
置からのデータ読み出し及び書き込みの要求は、このク
ラスタ番号で指定されるのが一般的である。従って、記
憶装置アレイは、このクラスタ番号で管理される管理用
の単位記憶領域と記憶装置の物理的な記憶領域との対応
関係を記憶しており、この対応関係に基づいて、ホスト
装置から指定されたクラスタ番号に対応する記憶領域を
アクセスするのである。
The storage device array apparently operates as one storage device from the host device. Normal,
A series of cluster numbers are set in the storage areas of a plurality of storage devices included in the storage device array. Data read and write requests from the host device are generally specified by the cluster number. Therefore, the storage device array stores the correspondence between the unit storage area for management managed by the cluster number and the physical storage area of the storage device, and is designated by the host device based on the correspondence. The storage area corresponding to the cluster number thus accessed is accessed.

【0043】また、ホスト装置は、一連のデータを管理
上の記憶領域に連続して記憶するのが一般的である。例
えば、あるデータをクラスタ「3」,「4」,「5」と
いうような連続した管理上の記憶領域に記憶することが
多い。そこで、上述の請求項1に示した構成に加えて、
請求項2に示すように記憶装置アレイを構成することが
考えられる。すなわち、ドライブ列を構成する各記憶装
置における同一位置の単位記憶領域の組をホスト装置側
からの管理用単位記憶領域とし、さらに、当該管理用単
位記憶領域をストライピングして配置することが考えら
れる。
In general, the host device continuously stores a series of data in a management storage area. For example, certain data is often stored in a continuous administrative storage area such as clusters “3”, “4”, and “5”. Therefore, in addition to the configuration described in claim 1 above,
It is conceivable to configure a storage device array as described in claim 2. That is, it is conceivable that a set of unit storage areas at the same position in each storage device constituting a drive array is used as a management unit storage area from the host device side, and the management unit storage areas are arranged by striping. .

【0044】ここで記憶装置における単位記憶領域とい
うのは、例えばブロック、セクタと呼ばれるような記憶
装置の記憶領域を表現するための単位となる記憶領域を
いう。また、ホスト装置側からの管理用単位記憶領域と
いうのは、例えば上述したクラスタが挙げられる。
Here, the unit storage area in the storage device refers to a storage area that is a unit for expressing the storage area of the storage device, such as a block or a sector. The management unit storage area from the host device side is, for example, the cluster described above.

【0045】ドライブ列の各記憶装置にはデータが分散
して記憶されるが、このとき、例えばそれぞれの記憶装
置の同一のブロックに分散して記憶される。そこで、ド
ライブ列を構成する各記憶装置の同一のブロックの組を
クラスタとするのである。そして、本記憶装置アレイで
は、例えばクラスタ等の管理用単位記憶領域をストライ
ピングという手法を用いてドライブ列に割り振るのであ
る。
Data is distributed and stored in each storage device of the drive array. At this time, for example, data is distributed and stored in the same block of each storage device. Therefore, the same set of blocks of each storage device constituting the drive array is used as a cluster. In the present storage device array, for example, a management unit storage area such as a cluster is allocated to a drive row using a technique called striping.

【0046】例えば、図2に示すような具合いである。
図2では、4本のバスにそれぞれ3台の記憶装置が接続
され、4台の記憶装置からなる3列のドライブ列を構成
している。なお、図2では上から順にAドライブ列、B
ドライブ列、Cドライブ列とする。このとき、それぞれ
の記憶装置はブロック「0」〜ブロック「k」の記憶領
域を備えており、ドライブ列毎に同一のブロックである
4つの記憶領域をまとめてクラスタとする。そして、こ
のクラスタは、いわゆるストライピングと呼ばれる手法
により各ドライブ列に割り振られる。ここでは、Aドラ
イブ列のブロック「0」の4つの記憶領域にクラスタ
「0」を、Bドライブ列のブロック「0」の4つの記憶
領域にクラスタ「1」を、Cドライブ列のブロック
「0」の4つの記憶領域にクラスタ「2」を、同様に、
Aドライブ列のブロック「1」の記憶領域にクラスタ
「3」、Bドライブ列のブロック「1」にクラスタ
「4」、Cドライブ列のブロック「1」にクラスタ
「5」という具合いに順にブロック「k」まで割り振
る。
For example, the condition is as shown in FIG.
In FIG. 2, three storage devices are connected to the four buses, respectively, to form three rows of drives composed of four storage devices. In FIG. 2, A drive row, B
Drive row and C drive row. At this time, each storage device has storage areas of blocks “0” to “k”, and four storage areas that are the same block are collectively formed as a cluster for each drive row. This cluster is allocated to each drive row by a method called striping. Here, cluster “0” is stored in four storage areas of block “0” in drive A row, cluster “1” is stored in four storage areas of block “0” in drive B row, and block “0” is stored in drive C row. "In the four storage areas,
Block “3” is stored in the storage area of block “1” in drive A, cluster “4” is stored in block “1” of drive B, and cluster “5” is stored in block “1” of drive C. k ”.

【0047】上述したように、ホスト装置は、一連のデ
ータを管理上連続した記憶領域に記憶するのが一般的で
ある。例えば一連のデータをクラスタ「3」,「4」,
「5」というような連続した管理用の単位記憶領域へ記
憶する場合、図2では、一連のデータがAドライブ列、
Bドライブ列、Cドライブ列に分散して記憶されること
になる。その結果、ドライブ列間における並列処理によ
って、データの書き込み及び読み出しに要する時間を短
縮することができる。つまり、本記憶装置アレイは、ホ
スト装置からのシーケンシャルなアクセスに対して有利
である。
As described above, the host device generally stores a series of data in a continuous storage area for management. For example, a series of data is divided into clusters “3”, “4”,
In the case where data is stored in a continuous management unit storage area such as “5”, in FIG.
The data is stored separately in the B drive row and the C drive row. As a result, the time required for writing and reading data can be reduced by the parallel processing between the drive rows. That is, the present storage device array is advantageous for sequential access from the host device.

【0048】例えば、データが映像データ等の場合の読
み出し処理は、上述したようなシーケンシャルな読み出
し処理となる。そこで、そのような読み出し処理を行う
ホスト装置を前提とすれば、さらに、請求項3に示した
ような構成とすることが望ましい。すなわち、請求項2
に示した構成に加えて、ホスト装置からのデータの読み
出し要求があった場合、当該読み出し要求で指定された
管理用単位記憶領域以降に連続して配置された所定数の
管理用単位記憶領域からデータを読み出すよう構成する
ことが望ましい。
For example, the reading process when the data is video data or the like is a sequential reading process as described above. Therefore, assuming a host device that performs such a reading process, it is desirable to further configure the configuration as described in claim 3. That is, claim 2
In addition to the configuration shown in the above, when there is a data read request from the host device, a predetermined number of management unit storage areas continuously arranged after the management unit storage area specified by the read request It is desirable to be configured to read data.

【0049】この場合は、指定されたクラスタ等の管理
用単位記憶領域以降に連続して配置された所定数の管理
用単位記憶領域からデータを読み出す。例えば、ホスト
装置がクラスタ「1」に記憶されたデータの読み出しを
要求した場合、クラスタ「1」以降に連続して配置され
た管理用単位記憶領域は、クラスタ「2」、クラスタ
「3」、クラスタ「4」・・・となる。このとき、例え
ば所定数が3ならば、クラスタ「1」、クラスタ「2」
及びクラスタ「3」からデータを読み出し、所定数が2
ならば、クラスタ「1」及びクラスタ「2」からデータ
を読み出す。
In this case, data is read from a predetermined number of management unit storage areas continuously arranged after the management unit storage area such as a designated cluster. For example, when the host device requests reading of data stored in the cluster “1”, the management unit storage areas continuously arranged after the cluster “1” are cluster “2”, cluster “3”, Cluster “4” is obtained. At this time, for example, if the predetermined number is 3, cluster “1” and cluster “2”
And read data from cluster “3”, and the predetermined number is 2
If so, the data is read from the cluster “1” and the cluster “2”.

【0050】つまり、映画データ等の一連のデータは管
理用単位記憶領域であるクラスタに連続して記憶される
のが一般的であり、その場合、再生のための読み出し処
理はクラスタを連続して読み出すことになる。そのた
め、ホスト装置からの読み出し要求が1つのクラスタに
ついてあった場合、そのクラスタに連続したクラスタか
らデータを先読みすることによって、データ読み出し処
理に要する時間をさらに短縮することが可能となる。
That is, a series of data such as movie data is generally continuously stored in a cluster which is a unit storage area for management. In this case, a read process for reproduction is performed by continuously performing clusters. Will be read. Therefore, when a read request from the host device is issued for one cluster, the time required for the data read process can be further reduced by pre-reading data from a cluster that is continuous with the cluster.

【0051】ところで、例えばSCSI規格では1本の
バスに通常7台までの記憶装置を接続することができ
る。従って、記憶装置アレイのドライブ列を増設するこ
とが考えられる。このようなドライブ列の増設を考慮す
れば、請求項4に示すよう構成するとよい。すなわち、
請求項1〜3に示した構成に加えて、記憶装置にそれぞ
れ対応する個別の記憶領域は、接続される記憶装置の台
数に合わせて増設可能に構成するとよい。
By the way, for example, in the SCSI standard, up to seven storage devices can usually be connected to one bus. Therefore, it is conceivable to increase the number of drive rows in the storage device array. In consideration of such an increase in the number of drive rows, a configuration according to a fourth aspect is preferable. That is,
In addition to the configurations described in the first to third aspects, it is preferable that the individual storage areas respectively corresponding to the storage devices are configured to be able to be added in accordance with the number of connected storage devices.

【0052】この場合、例えばメモリモジュール等を追
加することによって記憶領域を拡張可能な構成が考えら
れる。つまり、ドライブ列が増加した場合には、このメ
モリモジュールを追加することによって、各記憶装置に
それぞれ対応する記憶領域を確保することができる。ま
た、物理的に記憶領域を増やすだけでなく、一定の記憶
領域を予め備えており、接続される記憶装置の台数に合
わせて、その記憶領域を区切って各記憶装置にそれぞれ
対応する個別の記憶領域を確保することも考えられる。
In this case, for example, a configuration is conceivable in which the storage area can be expanded by adding a memory module or the like. That is, when the number of drive rows increases, by adding this memory module, it is possible to secure storage areas corresponding to the respective storage devices. In addition to physically increasing the storage area, a predetermined storage area is provided in advance, and the storage area is divided according to the number of connected storage apparatuses, and individual storage areas corresponding to the respective storage apparatuses are respectively provided. It is also conceivable to secure an area.

【0053】これによって、ドライブ列を増加させるこ
とが可能となり、拡張性のある記憶装置アレイが実現で
きる。特に、メモリモジュール等で記憶領域を追加して
いけるような場合は、ドライブ列に合わせて必要な数の
メモリモジュールを購入すればよいため経済的であると
共に、ドライブ列が増えた場合であっても、メモリモジ
ュールを購入することによって十分な記憶領域を確保で
きるという点で有利である。
As a result, the number of drive rows can be increased, and a scalable storage device array can be realized. In particular, when a storage area can be added with a memory module or the like, the required number of memory modules can be purchased according to the number of drive rows, which is economical. This is advantageous in that a sufficient storage area can be secured by purchasing a memory module.

【0054】なお、以上は、バスの解放・占有を行う複
数台の記憶装置と、アレイコントローラとを備える記憶
装置アレイの発明として説明した。それに対し、請求項
5に示すように、上述したようなバス解放・占有機能を
備えた記憶装置を接続して有効となるアレイコントロー
ラの発明として実現することもできる。
The above has been described as an invention of a storage device array including a plurality of storage devices for releasing and occupying a bus, and an array controller. On the other hand, the present invention can be realized as an invention of an array controller which is enabled by connecting a storage device having a bus release / occupancy function as described above.

【0055】請求項5に示すアレイコントローラは、複
数本の各バスにそれぞれ複数台の記憶装置を接続するこ
とによって、互いに異なるバスに接続されて並列に動作
する記憶装置の組であるドライブ列単位でアクセスを行
うよう構成されたアレイコントローラにおいて、記憶装
置にそれぞれ対応する個別の記憶領域を備えており、ホ
スト装置からの要求に基づき、読み出し対象又は書き込
み対象のドライブ列の各記憶装置に対し、バスの解放期
間を利用して処理要求コマンドを発行するコマンド発行
手段と、処理要求コマンドに基づく処理を実行中の記憶
装置からデータ転送要求があった場合、当該転送を要求
した記憶装置を特定する要求装置特定手段と、要求装置
特定手段によって特定された記憶装置に対応する記憶領
域を特定する記憶領域特定手段と、ホスト装置からの要
求がデータ読み出し要求である場合には、要求装置特定
手段によって特定された記憶装置から記憶領域特定手段
によって特定された記憶領域へ該当するデータを転送
し、一方、ホスト装置からの要求がデータ書き込み要求
である場合には、記憶領域特定手段によって特定された
記憶領域から要求装置特定手段によって特定された記憶
装置へ該当データを転送する転送実行手段と、ホスト装
置からの要求がデータ読み出し要求である場合、転送を
終了したドライブ列がある場合には、当該ドライブ列の
各記憶装置に対応する記憶領域に記憶されたデータから
読出対象のデータを生成し、一方、ホスト装置からの要
求がデータ書き込み要求である場合、ホスト装置から書
き込み対象のデータが送信された場合には、書き込み対
象のドライブ列の各記憶装置に対応する記憶領域へ当該
書き込み対象のデータを分散して記憶するデータ演算手
段とを備えることを特徴とするものである。
According to a fifth aspect of the present invention, there is provided an array controller, wherein a plurality of storage devices are connected to a plurality of buses, respectively, so that a drive row unit is a set of storage devices connected to different buses and operating in parallel. In the array controller configured to access in the, provided with a separate storage area corresponding to each storage device, based on a request from the host device, for each storage device of the drive row of the read target or write target, A command issuing unit that issues a processing request command using the bus release period, and when a data transfer request is issued from a storage device that is executing a process based on the processing request command, specifies the storage device that has requested the transfer. Request device specifying means, and storage for specifying a storage area corresponding to the storage device specified by the request device specifying means When the request from the host device is a data read request, the data is transferred from the storage device specified by the requesting device specifying device to the storage area specified by the storage area specifying device. When the request from the host device is a data write request, transfer execution means for transferring the relevant data from the storage area specified by the storage area specifying means to the storage device specified by the requesting device specifying means; Is a data read request, and if there is a drive row for which transfer has been completed, data to be read is generated from data stored in a storage area corresponding to each storage device in the drive row. , When the request from the host device is a data write request, or when data to be written is transmitted from the host device It is characterized in that and a data calculating means for dispersing and storing the data to be written into the storage area corresponding to each storage device of the drive train to be written.

【0056】本アレイコントローラにおける5つの手
段、すなわち、コマンド発行手段、要求装置特定手段、
記憶領域特定手段、転送実行手段及びデータ演算手段の
作用は、請求項1で記憶装置アレイについての説明とし
て上述した内容と同様となるため、ここでの説明は省略
する。本アレイコントローラをホスト装置と接続し、さ
らに、アレイコントローラに上述したようなバス解放・
占有機能を備えた複数台の記憶装置を接続することによ
って、請求項1で説明した効果と同様の効果を発揮す
る。つまり、ドライブ列を単位としたデータ読み出し処
理又はデータ書き込み処理処理の少なくともいずれか一
方の処理において、ドライブ列間の並列処理による高速
化を実現することができる。
Five means in the present array controller, namely, a command issuing means, a requesting device specifying means,
The operations of the storage area specifying means, the transfer executing means and the data calculating means are the same as those described above for the storage device array in claim 1, and therefore the description thereof is omitted here. This array controller is connected to the host device, and the
By connecting a plurality of storage devices having an occupation function, the same effect as the effect described in claim 1 is exhibited. In other words, in at least one of the data read processing and the data write processing processing in units of drive arrays, it is possible to realize high-speed processing by parallel processing between drive arrays.

【0057】また、本アレイコントローラを、請求項3
で説明したのと同様にホスト装置からのデータ読み出し
要求に基づいてデータを先読みするよう構成したり、請
求項4で説明したのと同様に各記憶装置に対応する記憶
領域を増設可能に構成したりすることも当然可能であ
る。
Further, the present array controller is characterized in that:
In the same manner as described above, the data is pre-read based on the data read request from the host device, or the storage area corresponding to each storage device can be expanded in the same manner as described in claim 4. Of course, it is also possible.

【0058】[0058]

【発明の実施の形態】以下、本発明を具体化した一実施
形態を図面を参照して説明する。図1は、記憶装置アレ
イを具体化した本実施形態のディスクアレイ1の概略構
成を示すブロック図である。
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS An embodiment of the present invention will be described below with reference to the drawings. FIG. 1 is a block diagram showing a schematic configuration of a disk array 1 according to the present embodiment, which embodies a storage device array.

【0059】本実施形態のディスクアレイ1は、ホスト
装置500に接続されており、ホスト装置500からの
要求に基づき、ホスト装置500に対して1台の記憶装
置に見せかけて動作する。図1に示すように、ディスク
アレイ1は、アレイコントローラ3と、12台のディス
ク装置10とを備えている。ディスク装置10は、いわ
ゆるハードディスク装置である。
The disk array 1 of the present embodiment is connected to the host device 500, and operates as if it were a single storage device with respect to the host device 500 based on a request from the host device 500. As shown in FIG. 1, the disk array 1 includes an array controller 3 and twelve disk devices 10. The disk device 10 is a so-called hard disk device.

【0060】12台のディスク装置10は、4本のバス
41〜44にそれぞれ3台ずつ接続されている。以下、
12台のディスク装置10を区別するために、図1に示
す記号を用いてディスクA1,ディスクA2,ディスク
A3,ディスクA4,ディスクB1,ディスクB2,デ
ィスクB3,ディスクB4,ディスクC1,ディスクC
2,ディスクC3,ディスクC4とそれぞれ記述する。
The twelve disk units 10 are connected to four buses 41 to 44, respectively. Less than,
In order to distinguish the twelve disk devices 10, the symbols shown in FIG. 1 are used to indicate disks A1, A2, A3, A4, B1, B2, B3, B4, C1, C.
2, disk C3, and disk C4.

【0061】アレイコントローラ3は、制御手段として
のCPU97と、プログラム記憶手段としてのROM9
8と、CPU97によってROM98に記憶されたプロ
グラムに基づく処理が実行された場合のワークエリアと
なる一時記憶手段としてのRAM99と、PCIバス6
4を介してホスト装置500を接続するPCIブリッジ
63と、ホスト装置500とのデータの受渡しを行うた
めのキャッシュメモリ60と、データの分散及び生成を
行う「データ演算手段」としてのビット演算回路50と
を備えている。
The array controller 3 has a CPU 97 as control means and a ROM 9 as program storage means.
A RAM 99 serving as a temporary storage unit serving as a work area when a process based on a program stored in the ROM 98 is executed by the CPU 97;
4, a PCI bridge 63 for connecting the host device 500 via the host device 500, a cache memory 60 for transferring data to and from the host device 500, and a bit operation circuit 50 as "data operation means" for distributing and generating data. And

【0062】また、アレイコントローラ3は、4本のバ
ス41〜44をそれぞれ独立に制御するための構成を備
えている。つまり、4つの独立したアクセス系統を有し
ている。この各アクセス系統は、それぞれ同様の構成と
なっているため、バス41に接続された3台のディスク
A1,B1,C1を制御するための1つのアクセス系統
についての構成を説明する。ディスクA1,B1,C1
を制御するための構成として、ディスクA1,B1,C
1とデータ交換をするSCSIコントローラ21と、デ
ィスクA1に対応する個別の記憶領域としてのバッファ
81aと、ディスクB1に対応する個別の記憶領域とし
てのバッファ81bと、ディスクC1に対応する個別の
記憶領域としてのバッファ81cと、SCSIコントロ
ーラ21とバッファ81a〜cとの間でデータ転送を行
うDMAC(Direct Memory Access Controller )91
と、DMAC91によるデータ転送に先だってバッファ
81a、81b又は81cのいずれか1つのバッファを
データ転送の対象バッファとして切り替えるスイッチ7
1とを備えている。図1中に破線で示すように各系統に
はバッファ81d〜84dが増設できるよう構成されて
いる。なお、上述したように他の系統も同様のハード構
成となっているため説明は省略する。また、各アクセス
系統の構成要素の符号の数字部分の一の位はそれぞれの
系統に対応させて「1」〜「4」として付してある。
The array controller 3 has a configuration for independently controlling the four buses 41 to 44. That is, it has four independent access systems. Since each of these access systems has the same configuration, the configuration of one access system for controlling the three disks A1, B1, and C1 connected to the bus 41 will be described. Disk A1, B1, C1
A1, B1, C1
1, a buffer 81a as an individual storage area corresponding to the disk A1, a buffer 81b as an individual storage area corresponding to the disk B1, and an individual storage area corresponding to the disk C1. (Direct Memory Access Controller) 91 that transfers data between the SCSI controller 21 and the buffers 81a to 81c.
And a switch 7 for switching any one of the buffers 81a, 81b or 81c as a data transfer target buffer prior to data transfer by the DMAC 91.
1 is provided. As shown by broken lines in FIG. 1, each system is configured so that buffers 81d to 84d can be added. Note that, as described above, the other systems have the same hardware configuration, and a description thereof will be omitted. The first digit of the reference numeral of the component of each access system is given as “1” to “4” corresponding to each system.

【0063】ところで、ビット演算回路50、各アクセ
ス系統のスイッチ71〜74、DMAC91〜94、S
CSIコントローラ21〜24及びPCIブリッジ63
はCPU97によって制御されるが、CPU97からの
制御バスは、煩雑になることを避けるため、図1中には
図示していない。なお、SCSIコントローラ21〜2
4及びDMAC91〜94が「転送実行手段」に相当す
る。
The bit operation circuit 50, switches 71 to 74 of each access system, DMACs 91 to 94, S
CSI controllers 21 to 24 and PCI bridge 63
Are controlled by the CPU 97, but the control bus from the CPU 97 is not shown in FIG. 1 to avoid complexity. The SCSI controllers 21 and 2
4 and DMACs 91 to 94 correspond to “transfer executing means”.

【0064】そして、アレイコントローラ3は、上述し
たような4つのアクセス系統を独立して制御することに
よって、互いに異なるバス41〜44に接続された4台
のディスク装置の組をドライブ列として制御する。図1
では、ディスクA1〜A4のディスク装置の組がAドラ
イブ列、ディスクB1〜B4のディスク装置の組がBド
ライブ列、ディスクC1〜C4のディスク装置の組がC
ドライブ列となっており、A〜Cのドライブ列単位でデ
ータの読み出し及び書き込みが行われる。つまり、デー
タは、A〜Cのドライブ列単位で、ドライブ列を構成す
る4台のディスク装置10へ分散して記憶される。
The array controller 3 controls a set of four disk devices connected to different buses 41 to 44 as a drive train by independently controlling the four access systems as described above. . FIG.
In the table, a set of disk devices of the disks A1 to A4 is a drive array A, a set of disk devices of the disks B1 to B4 is a drive array B, and a set of disk devices of the disks C1 to C4 is C.
Drive rows are provided, and data is read and written in drive row units A to C. That is, the data is distributed and stored in the four disk devices 10 constituting the drive array in units of the drive arrays A to C.

【0065】このように、本来1台のディスク装置に書
き込まれるはずのデータを、バス41〜44にそれぞれ
接続される4台のディスク装置10に分散して記憶する
ことによって、1台のディスク装置10に対する読み書
きの頻度や読み出すデータ量を低減し、全体として処理
速度の向上を図っている。これを系統列間の並列処理と
いう。
As described above, the data to be written to one disk device is distributed and stored in the four disk devices 10 connected to the buses 41 to 44, respectively. The frequency of reading / writing and the amount of data to be read from / to 10 are reduced, and the overall processing speed is improved. This is called parallel processing between system rows.

【0066】また、本実施形態のディスクアレイ1の1
2台のディスク装置10の記憶領域は、図2に示すよう
に管理されている。図2は各記憶装置の記憶領域を示す
説明図である。各ディスク装置10の記憶領域は、アク
セス単位であるブロックアドレスで表現され、ブロック
「0」からブロック「k」までの記憶領域で構成されて
いる。本実施形態では、各ドライブ列毎に同一ブロック
をまとめた4つの記憶領域をクラスタとする。ホスト装
置500は、このクラスタを指定することによって、デ
ータの読み出し又は書き込みをディスクアレイ1に対し
て要求する。ディスクアレイ1は、予めクラスタとドラ
イブ列及びブロックアドレスとの対応関係を有し、その
対応関係に基づいて該当するドライブ列の各ディスク装
置10の該当するブロックアドレスをアクセスする。
Also, one of the disk arrays 1 of the present embodiment
The storage areas of the two disk devices 10 are managed as shown in FIG. FIG. 2 is an explanatory diagram showing the storage area of each storage device. The storage area of each disk device 10 is represented by a block address, which is an access unit, and includes storage areas from block “0” to block “k”. In the present embodiment, four storage areas in which the same blocks are put together for each drive row are defined as clusters. The host device 500 requests the disk array 1 to read or write data by designating this cluster. The disk array 1 has a correspondence between a cluster, a drive row, and a block address in advance, and accesses a corresponding block address of each disk device 10 in a corresponding drive row based on the correspondence.

【0067】さらに、クラスタは、ストライピングとい
う手法を用いてA〜Cのドライブ列に順に割り振られて
いる。本実施形態では、図2に示すように、Aドライブ
列のブロック「0」の4つの記憶領域にクラスタ「0」
を、Bドライブ列のブロック「0」の4つの記憶領域に
クラスタ「1」を、Cドライブ列のブロック「0」の4
つの記憶領域にクラスタ「2」を、同様に、Aドライブ
列のブロック「1」の記憶領域にクラスタ「3」、Bド
ライブ列のブロック「1」にクラスタ「4」、Cドライ
ブ列のブロック「1」にクラスタ「5」という具合いに
順にブロック「k」まで割り振られている。
Further, clusters are sequentially allocated to drive rows A to C by using a technique called striping. In the present embodiment, as shown in FIG. 2, the cluster “0” is stored in four storage areas of the block “0” in the A drive row.
And cluster “1” in four storage areas of block “0” in the B drive row, and 4
Similarly, cluster “2” is stored in one storage area, cluster “3” is stored in the storage area of block “1” of drive A row, cluster “4” is stored in block “1” of drive B row, and block “C” of drive C row Blocks “k” are sequentially assigned to “1” in the order of cluster “5”.

【0068】さらにまた、本実施形態のディスクアレイ
1の12台のディスク装置10は、SCSI規格でディ
スコネクト・リコネクトと呼ばれるバスの解放・占有機
能を備えており、データの読み出し及び書き込み処理の
実行期間に不要なバスの占有をしない。
Further, the twelve disk devices 10 of the disk array 1 according to the present embodiment have a bus release / occupation function called disconnect / connect in the SCSI standard, and execute data read and write processing. Avoid unnecessary bus occupation during the period.

【0069】例えば、バス41に接続されたディスクA
1を例に挙げて、このディスコネクト・リコネクトの機
能を説明する。SCSIコントローラ21がホスト装置
500からのデータ読み出し及び書き込み要求に基づい
てディスクA1をアクセスする際、ディスクA1とデー
タ転送可能な状態をつくり(以下「結合する」とい
う。)、ディスクA1へその処理要求コマンドを発行す
る。ディスクA1は、そのSCSIコントローラ21か
らの処理要求コマンドを受信すると、そのコマンドに基
づく処理を実行するが、その処理実行期間中、例えばデ
ィスク面からデータを読み出す期間等バス41を必要と
しない期間にはSCSIコントローラ21との結合を一
旦切断して(ディスコネクト)バス41を解放し、バス
41を必要とする期間にはSCSIコントローラ21と
再び結合して(リコネクト)バスを占有する。
For example, the disk A connected to the bus 41
The function of this disconnect / reconnect will be described by taking 1 as an example. When the SCSI controller 21 accesses the disk A1 based on a data read and write request from the host device 500, a state in which data transfer with the disk A1 is possible (hereinafter referred to as “combining”) is performed, and a processing request is sent to the disk A1. Issue a command. When the disk A1 receives the processing request command from the SCSI controller 21, the disk A1 executes processing based on the command, but during the processing execution period, for example, during a period when the bus 41 is not required such as a period during which data is read from the disk surface. Disconnects the connection with the SCSI controller 21 once (disconnect) to release the bus 41, and reconnects with the SCSI controller 21 (reconnect) to occupy the bus when the bus 41 is required.

【0070】これによって、バス41を介してディスク
A1をアクセスする場合、ディスクA1の処理の開始か
ら終了までバス41が連続して占有されることがなくな
る。従って、ディスクA1の処理実行中、バス41の解
放期間を利用してディスクB1,C1を並列にアクセス
することが可能となる。
Thus, when the disk A1 is accessed via the bus 41, the bus 41 is not occupied continuously from the start to the end of the processing of the disk A1. Therefore, during execution of the processing of the disk A1, it is possible to access the disks B1 and C1 in parallel using the release period of the bus 41.

【0071】つまり、このディスコネクト・リコネクト
機能によって、各SCSIコントローラ21〜24は、
バス41〜44にそれぞれ接続された3台のディスク装
置10へ並列に処理要求コマンドを発行することが可能
となる。すなわち、A〜Cの3つのドライブ列に対して
並列にデータの読み出し及び書き込みを行うことができ
る。
That is, each of the SCSI controllers 21 to 24 uses this disconnect / reconnect function.
Processing request commands can be issued in parallel to the three disk devices 10 connected to the buses 41 to 44, respectively. That is, data can be read from and written to the three drive rows A to C in parallel.

【0072】以下、図3及び図4のフローチャートに基
づいて、本実施形態のディスクアレイ1の特徴であるド
ライブ列間での並列処理を説明する。図3はコマンド発
行処理のフローチャートである。なお、この処理は、ア
レイコントローラ3のCPU97がROM98に記憶さ
れたプログラムに基づき、ホスト装置500からのアク
セス発生毎に実行する処理である。
Hereinafter, the parallel processing between the drive rows, which is a feature of the disk array 1 of the present embodiment, will be described with reference to the flowcharts of FIGS. FIG. 3 is a flowchart of the command issuing process. This process is executed by the CPU 97 of the array controller 3 every time an access from the host device 500 occurs, based on a program stored in the ROM 98.

【0073】まず、最初のステップS1000におい
て、ホスト装置500からデータ読み出し又はデータ書
き込みの要求があるか否かを判断する。ここでホスト装
置500からの要求がない場合(S1000:NO)、
本コマンド発行処理を終了する。一方、ホスト装置50
0からの要求があった場合(S1000:YES)、S
1010へ移行する。
First, in the first step S1000, it is determined whether there is a data read or data write request from the host device 500. If there is no request from the host device 500 (S1000: NO),
This command issue processing ends. On the other hand, the host device 50
If there is a request from 0 (S1000: YES), S
Move to 1010.

【0074】S1010では、ホスト装置500からの
要求を取り出す。そして、S1020では、ホスト装置
500から指定されたクラスタ番号に基づき、データ読
み出し又は書き込みの対象となるドライブ列を特定す
る。例えば、A〜Cのドライブ列の中でAドライブ列が
特定されるという具合いである。
In S1010, a request from the host device 500 is fetched. Then, in S1020, based on the cluster number specified by the host device 500, a drive row to be read or written is specified. For example, the A drive row is specified from the A to C drive rows.

【0075】続くS1030では、ホスト装置500か
らの要求が読み出し処理要求であるか否かを判断する。
ここで読み出し処理要求であると判断された場合(S1
030:YES)、S1040へ移行する。一方、読み
出し処理要求でないと判断された場合(S1030:N
O)、すなわち、書き込み処理要求である場合には、S
1050へ移行する。
In S1030, it is determined whether the request from the host device 500 is a read processing request.
Here, when it is determined that the request is a read processing request (S1
030: YES), and proceeds to S1040. On the other hand, when it is determined that the request is not a read processing request (S1030: N
O), that is, if it is a write processing request, S
Move to 1050.

【0076】S1030で肯定判断された場合、すなわ
ちデータ読み出し要求がなされたときに移行するS10
40では、S1020で特定したドライブ列の各ディス
ク装置10へ読み出し要求コマンドを発行する。例えば
S1020でAドライブ列が特定された場合、4台のデ
ィスクA1〜A4へ読み出し要求コマンドを発行する。
S1040の処理実行後、本コマンド発行処理を終了す
る。
If a positive determination is made in S1030, that is, when a data read request is made, the process proceeds to S10.
In 40, a read request command is issued to each disk device 10 in the drive row specified in S1020. For example, when the A drive row is specified in S1020, a read request command is issued to the four disks A1 to A4.
After executing the processing in S1040, the command issuing processing ends.

【0077】一方、S1030で否定判断された場合、
すなわちデータ書き込み要求がなされたときに移行する
S1050では、ビット演算回路50が、ホスト装置5
00からPCIブリッジ63を介してキャッシュメモリ
60へ転送される書き込み対象のデータを分割する。こ
こでビット演算回路50は、書き込み対象のデータを冗
長データを含む4つのデータに分割する。
On the other hand, if a negative determination is made in S1030,
That is, in S1050 to which the process proceeds when a data write request is made, the bit operation circuit 50
From 00, the write target data transferred to the cache memory 60 via the PCI bridge 63 is divided. Here, the bit operation circuit 50 divides the data to be written into four data including redundant data.

【0078】S1060では、S1020で特定された
ドライブ列の各ディスク装置10に対応する4つのバッ
ファへ、S1050にてビット演算回路50によって分
割されたデータを記憶する。例えばS1020でAドラ
イブ列が特定された場合、ディスクA1〜A4に対応す
る4つのバッファ81a〜84aへ記憶する。
In S1060, the data divided by the bit operation circuit 50 in S1050 is stored in the four buffers corresponding to each disk device 10 in the drive row specified in S1020. For example, when the A drive row is specified in S1020, the data is stored in the four buffers 81a to 84a corresponding to the disks A1 to A4.

【0079】S1070では、S1020で特定したド
ライブ列の各ディスク装置10へ書き込み要求コマンド
を発行する。例えばS1020でAドライブ列が特定さ
れた場合、4台のディスクA1〜A4へ書き込み要求コ
マンドを発行する。S1070の処理実行後、本コマン
ド発行処理を終了する。
In S1070, a write request command is issued to each disk device 10 in the drive row specified in S1020. For example, when the A drive row is specified in S1020, a write request command is issued to the four disks A1 to A4. After execution of the process of S1070, the command issuing process ends.

【0080】なお、S1040及びS1070では、バ
ス41〜44の解放期間を利用して読み出し又は書き込
み要求コマンドを発行する。そのため、本コマンド発行
処理では、ホスト装置からの要求が連続してあった場
合、該当する複数のドライブ列へ並列に読み出し又は書
き込み要求コマンド発行することができ、A〜Cのドラ
イブ列を並列にアクセスすることができる。また、CP
U97が「コマンド発行手段」に相当し、S1040及
びS1070の処理がコマンド発行手段としての処理に
相当する。
In S1040 and S1070, a read or write request command is issued using the release period of the buses 41 to 44. Therefore, in this command issuance processing, when requests from the host device are continuous, a read or write request command can be issued to a plurality of drive rows in parallel, and the drive rows A to C can be issued in parallel. Can be accessed. Also, CP
U97 corresponds to “command issuing means”, and the processing of S1040 and S1070 corresponds to processing as command issuing means.

【0081】そして、読み出し要求コマンドを受信した
ディスク装置10、例えばバス41に接続されたディス
ク装置10は、ディスコネクトによってバス41を解放
してデータの読み出し処理を行い、所定量のデータが読
み出されると再びリコネクトしてバス41を占有し読み
出したデータの転送を要求する。一方、書き出し要求コ
マンドを受信したディスク装置10、例えばバス41に
接続されたディスク装置10は、ディスコネクトによっ
てバス41を解放してデータ書き込みの準備を行い、そ
の準備ができると再びリコネクトしてバス41を占有し
書き込むべきデータの転送を要求する。
Then, the disk device 10 which has received the read request command, for example, the disk device 10 connected to the bus 41, releases the bus 41 by disconnection and performs data read processing, and a predetermined amount of data is read. Is reconnected, the bus 41 is occupied and the transfer of the read data is requested. On the other hand, the disk device 10 that has received the write request command, for example, the disk device 10 connected to the bus 41, releases the bus 41 by disconnecting and prepares for data writing. Requests the transfer of data to be occupied and written.

【0082】次に、図4のフローチャートに基づいてデ
ータ転送処理を説明する。この処理は、上述のコマンド
発行処理で発行された処理要求コマンドに基づく処理を
実行中のディスク装置10から上述のデータ転送要求が
あると実行される割込処理である。なお、この処理もR
OM98に予め記憶されたプログラムに基づきCPU9
7によって実行される。なお、ここではディスクA1か
らデータ転送の要求があった場合を想定して説明する。
Next, the data transfer processing will be described with reference to the flowchart of FIG. This process is an interrupt process executed when there is the above-mentioned data transfer request from the disk device 10 which is executing the process based on the process request command issued in the above-mentioned command issuing process. Note that this processing is also performed by R
CPU 9 based on a program stored in advance in OM98
7 is performed. Here, the description will be made on the assumption that a data transfer request is made from the disk A1.

【0083】まず、最初のステップS2000におい
て、転送の要求をしてきたディスク装置10からその要
求を取り出す。そして、この要求に基づいて、S201
0では、転送要求のあったディスク装置10を特定す
る。ここでは、上述したようにディスク装置10はディ
スクA1と特定される。
First, in the first step S2000, the request is taken out from the disk device 10 which has made the transfer request. Then, based on this request, S201
In the case of 0, the disk device 10 which has requested the transfer is specified. Here, as described above, the disk device 10 is specified as the disk A1.

【0084】続くS2020では、S2010で特定さ
れたディスクA1に対応するバッファを特定する。すな
わち、バッファ81aが特定されることになる。S20
30では、ディスクA1からのデータ転送要求が読み出
し処理に関する転送要求であるか否かを判断する。ここ
で読み出し処理に関する転送要求である場合(S203
0:YES)、S2040へ移行する。一方、読み出し
処理に関する転送要求でない場合(S2030:N
O)、すなわち書き込み処理に関する転送要求である場
合には、S2100へ移行する。
At S2020, the buffer corresponding to the disk A1 specified at S2010 is specified. That is, the buffer 81a is specified. S20
At 30, it is determined whether or not the data transfer request from the disk A1 is a transfer request for a read process. Here, if the transfer request is for a read process (S203)
0: YES), and proceeds to S2040. On the other hand, if the request is not a transfer request related to a read process (S2030: N
O), that is, if the transfer request is for a write process, the flow shifts to S2100.

【0085】S2030で肯定判断された場合、すなわ
ち読み出し処理に関する転送要求があった場合に移行す
るS2040では、SCSIコントローラ21に接続さ
れたDMAC91へデータ転送の準備を指示する。この
指示に基づいて、DMAC91は、SCSIコントロー
ラ21からのデータをバッファ81aへSCSIコント
ローラ21からの転送要求があった場合に転送するため
の準備を行う。
If the determination is affirmative in S2030, that is, if there is a transfer request related to the read process, the flow advances to S2040 to instruct the DMAC 91 connected to the SCSI controller 21 to prepare for data transfer. Based on this instruction, the DMAC 91 makes preparations for transferring data from the SCSI controller 21 to the buffer 81a when there is a transfer request from the SCSI controller 21.

【0086】続くS2050では、転送要求のあったデ
ィスクA1が接続されたSCSIコントローラ21へデ
ータ転送の実行を指示する。この指示に基づいて、SC
SIコントローラ21は、転送を要求したディスクA1
から該当するデータを取り込み、さらにDMAC91へ
転送要求を出して、該データをDMAC91へ転送す
る。DMAC91は、S2040にて転送の準備をして
いるため、SCSIコントローラ21からのデータをバ
ッファ81aに転送する。このバッファ81aは、上述
のS2020で特定されたバッファであり、スイッチ7
1を切り替えて転送する。
In the subsequent S2050, an instruction is issued to execute data transfer to the SCSI controller 21 connected to the disk A1 which has requested the transfer. Based on this instruction, SC
The SI controller 21 sends the request to the disk A1
, And issues a transfer request to the DMAC 91 to transfer the data to the DMAC 91. Since the DMAC 91 is preparing for the transfer in S2040, the DMAC 91 transfers the data from the SCSI controller 21 to the buffer 81a. This buffer 81a is the buffer specified in S2020 described above,
Switch 1 and transfer.

【0087】これによって、転送要求のあったディスク
装置10からそのディスク装置10に対応する個別のバ
ッファへ該当するデータが転送されることになる。S2
060では、ドライブ列単位での転送の終了を判断す
る。上述したようにディスクA1からの転送を実行した
場合、Aドライブ列からのデータ転送が全て終了したか
否かを判断する。ここでAドライブ列からの転送が終了
したと判断された場合(S2060:YES)、S20
70へ移行する。一方、Aドライブ列からの転送が終了
していないと判断された場合(S2060:NO)、本
データ転送処理を終了する。
As a result, the corresponding data is transferred from the disk device 10 that has requested the transfer to the individual buffer corresponding to the disk device 10. S2
In step 060, it is determined whether the transfer is completed for each drive row. When the transfer from the disk A1 is performed as described above, it is determined whether or not all the data transfers from the drive A row have been completed. Here, when it is determined that the transfer from the A drive row has been completed (S2060: YES), S20
Move to 70. On the other hand, if it is determined that the transfer from the drive A row has not been completed (S2060: NO), the data transfer processing ends.

【0088】S2070では、Aドライブ列の各ディス
クA1〜A4から転送されたデータが記憶されているバ
ッファ81a〜84aに記憶されたデータを読み出す。
続くS2080では、ビット演算回路50がバッファ8
1a〜84aから読み出したデータに基づいて読み出し
対象のデータを生成する。このとき、エラー訂正が必要
ならば冗長データを用いてエラー訂正を行う。そして、
復元されたデータはキャッシュメモリ60へ記憶され
る。
In S2070, the data stored in the buffers 81a to 84a storing the data transferred from the disks A1 to A4 in the A drive row is read.
In subsequent S2080, the bit operation circuit 50 sets the buffer 8
Data to be read is generated based on the data read from 1a to 84a. At this time, if error correction is necessary, error correction is performed using redundant data. And
The restored data is stored in the cache memory 60.

【0089】S2090では、Aドライブ列に対するデ
ータ読み出し処理の完了をホスト装置500に報告す
る。S2090の処理実行後、本データ転送処理を終了
する。S2090におけるデータ読み出し処理の完了報
告を受けてホスト装置500はキャッシュメモリ60よ
り読み出し対象のデータを読み出す。
In S2090, the completion of the data read process for the A drive row is reported to the host device 500. After performing the process of S2090, the data transfer process ends. In response to the completion report of the data read process in S2090, the host device 500 reads the data to be read from the cache memory 60.

【0090】S2030で否定判断された場合、すなわ
ち書き込み処理に関する転送要求があった場合に移行す
るS2100では、転送要求のあったディスクA1へ書
き込むべきデータを転送するため、SCSIコントロー
ラ21に接続されたDMAC91へデータ転送の準備を
指示する。この指示に基づいて、DMAC91は、バッ
ファ81aに予め記憶されているデータをSCSIコン
トローラ21へSCSIコントローラ21からの転送要
求があった場合に転送するための準備を行う。
If a negative determination is made in S2030, that is, if there is a transfer request related to the write processing, the process proceeds to S2100, where the connection to the SCSI controller 21 is made in order to transfer the data to be written to the disk A1 for which the transfer was requested. The DMAC 91 is instructed to prepare for data transfer. Based on this instruction, the DMAC 91 prepares to transfer the data stored in advance in the buffer 81a to the SCSI controller 21 when there is a transfer request from the SCSI controller 21.

【0091】続くS2110では、転送要求のあったデ
ィスクA1が接続されたSCSIコントローラ21へデ
ータ転送の実行を指示する。この指示に基づいて、SC
SIコントローラ21は、DMAC91にデータ転送を
指示する。DMAC91は、S2100にてデータ転送
を準備しているため、バッファ81aから該当するデー
タをSCSIコントローラ21へ転送する。SCSIコ
ントローラ21は、DMAC91から転送されるデータ
を取り込み、転送要求のあったディスクA1へ転送す
る。なお、バッファ81aはスイッチ71によって切り
替えられて選択される。このバッファ81aに予め記憶
されているデータは、図3中のS1060にて記憶した
データである。
At S2110, the CPU instructs the SCSI controller 21 connected to the disk A1 which has requested the transfer to execute the data transfer. Based on this instruction, SC
The SI controller 21 instructs the DMAC 91 to transfer data. Since the DMAC 91 is preparing for data transfer in S2100, the DMAC 91 transfers the corresponding data from the buffer 81a to the SCSI controller 21. The SCSI controller 21 takes in the data transferred from the DMAC 91 and transfers it to the disk A1 that has requested the transfer. The buffer 81a is switched and selected by the switch 71. The data stored in advance in the buffer 81a is the data stored in S1060 in FIG.

【0092】これによって、転送要求のあったディスク
装置10へすぐさま該当するデータを転送することがで
きる。S2120では、ドライブ列単位での転送の終了
を判断する。上述したようにディスクA1への転送を実
行した場合、Aドライブ列へのデータ転送が全て終了し
たか否かを判断する。ここでAドライブ列への転送が終
了したと判断された場合(S2120:YES)、S2
130へ移行する。一方、Aドライブ列からの転送が終
了していないと判断された場合(S2120:NO)、
本データ転送処理を終了する。
As a result, the corresponding data can be immediately transferred to the disk device 10 that has requested the transfer. In S2120, it is determined whether the transfer in the drive array is completed. When the transfer to the disk A1 is performed as described above, it is determined whether or not all the data transfer to the drive A row has been completed. Here, if it is determined that the transfer to the drive A row has been completed (S2120: YES), S2
Move to 130. On the other hand, if it is determined that the transfer from the drive A row has not been completed (S2120: NO),
This data transfer processing ends.

【0093】S2130では、Aドライブ列に対するデ
ータ書き込み処理の完了をホスト装置500に報告す
る。S2130の処理実行後、本データ転送処理を終了
する。なお、ここでの説明は、ディスクA1からデータ
転送要求があった場合を仮定して説明したが、他のディ
スク装置10からのデータ転送要求があった場合も同様
となる。また、CPU97が「要求装置特定手段」及び
「記憶領域特定手段」に相当し、S2010が要求装置
特定手段としての処理に相当し、S2020が記憶領域
特定手段としての処理に相当する。
In S2130, the completion of the data write processing to the A drive row is reported to the host device 500. After performing the process of S2130, the data transfer process ends. Although the description here has been made on the assumption that a data transfer request has been made from the disk A1, the same applies to a case where a data transfer request has been made from another disk device 10. Further, the CPU 97 corresponds to “requesting device specifying means” and “storage area specifying means”, S2010 corresponds to processing as requesting device specifying means, and S2020 corresponds to processing as storage area specifying means.

【0094】次に、本実施形態のディスクアレイ1の発
揮する効果を説明する。なお、はじめにデータ読み出し
処理における効果を説明し、次にデータ書き込み処理に
おける効果を説明する。また、ここでの説明に対する理
解を容易にするため、上述した従来の問題点と対比させ
て説明する。
Next, the effects exhibited by the disk array 1 of the present embodiment will be described. The effect in the data reading process will be described first, and then the effect in the data writing process will be described. In addition, in order to facilitate understanding of the description, description will be made in comparison with the above-described conventional problems.

【0095】複数のドライブ列からの並列なデータ読み
出し処理において、従来のディスクアレイ100では、
図5を参照して上述したように、バス41〜44単位に
設けられたバッファ31〜34に、各バス41〜44に
接続された3台のディスク装置10から転送されるデー
タをそのまま記憶することになる。つまり、1本のバス
41に対して1つのバッファ31が接続されているた
め、その1本のバス41に接続された3台のディスクA
1,B1,C1から転送されるデータをその1つのバッ
ファ31にそのまま記憶することになる。そのため、そ
のデータはディスクA1,B1,C1毎にまとまったデ
ータとならない(図6参照)。しかも、4本の各バス4
1〜44毎にそのような状況が発生するため(図7
(a)参照)、ドライブ列毎に読み出したデータを読み
出し対象のデータとして生成する場合、図7(b)に示
したような各バス41〜44の間で対応がとれ、各ディ
スク装置10毎のまとまったデータとして整理し直すこ
とが必要であった。その結果、その整理のためのデータ
操作に要する時間によって、ドライブ列間での並列処理
によるデータ読み出し処理の高速化は困難であった。
In parallel data read processing from a plurality of drive rows, the conventional disk array 100
As described above with reference to FIG. 5, the data transferred from the three disk devices 10 connected to the buses 41 to 44 are stored as they are in the buffers 31 to 34 provided for the buses 41 to 44, respectively. Will be. That is, since one buffer 31 is connected to one bus 41, the three disks A connected to the one bus 41
The data transferred from 1, B1, and C1 is stored in the one buffer 31 as it is. Therefore, the data is not collected for each of the disks A1, B1, and C1 (see FIG. 6). Moreover, each of the four buses 4
Since such a situation occurs every 1 to 44 (FIG. 7)
7A), when the data read for each drive row is generated as the data to be read, the buses 41 to 44 as shown in FIG. It was necessary to rearrange it as a set of data. As a result, it has been difficult to speed up the data reading process by the parallel processing between the drive arrays due to the time required for the data operation for the organization.

【0096】それに対して、本実施形態のディスクアレ
イ1では、図1に示したように、各バス41〜44に接
続された3台のディスク装置10にそれぞれ対応するよ
うに、バス41〜44毎に3つずつのバッファ81a〜
81c,82a〜82c,83a〜83c,84a〜8
4cを備えている。例えばバス41について見れば、1
本のバス41に接続された3台のディスクA1,B1,
C1に対するそれぞれ個別のバッファ81a,81b,
81cを備えている。
On the other hand, in the disk array 1 of the present embodiment, as shown in FIG. 1, the buses 41 to 44 correspond to the three disk devices 10 connected to the buses 41 to 44, respectively. Three buffers 81a-
81c, 82a to 82c, 83a to 83c, 84a to 8
4c. For example, looking at bus 41, 1
Three disks A1, B1,
Each individual buffer 81a, 81b,
81c.

【0097】そして、ディスク装置10からのデータ転
送要求があると、図4で説明したデータ転送処理を実行
することによって、転送を要求したディスク装置10を
特定し(図4中のS2010)、さらに、その転送を要
求したディスク装置10に対応するバッファを特定する
(図4中のS2020)。例えば、転送を要求したディ
スク装置10がディスクA1であることを特定し、さら
に、ディスクA1に対応する個別のバッファ81aを特
定するのである。
When there is a data transfer request from the disk device 10, the data transfer process described with reference to FIG. 4 is executed to identify the disk device 10 that has requested the transfer (S2010 in FIG. 4). Then, the buffer corresponding to the disk device 10 which has requested the transfer is specified (S2020 in FIG. 4). For example, it specifies that the disk device 10 that has requested the transfer is the disk A1, and further specifies the individual buffer 81a corresponding to the disk A1.

【0098】このようにディスクA1とバッファ81a
が特定されると、スイッチ71を切り替えることによっ
てディスクA1からバッファ81aへ該当するデータを
転送する(図4中のS2040及びS2050)。これ
によって、転送されるデータはそれぞれのディスク装置
10に対応する個別のバッファへ記憶される。例えば、
バス41について言えば、ディスクA1のデータはバッ
ファ81aへ、ディスクB1のデータはバッファ81b
へ、また、ディスクC1からのデータはバッファ81c
へそれぞれ記憶されることになる。
Thus, the disk A1 and the buffer 81a
Is specified, the corresponding data is transferred from the disk A1 to the buffer 81a by switching the switch 71 (S2040 and S2050 in FIG. 4). As a result, the data to be transferred is stored in individual buffers corresponding to the respective disk devices 10. For example,
As for the bus 41, data of the disk A1 is sent to the buffer 81a, and data of the disk B1 is sent to the buffer 81b.
And the data from the disk C1 is stored in the buffer 81c.
Respectively.

【0099】その結果、例えばバス41に接続された3
台のディスクA1,B1,C1から交互にデータ転送要
求があった場合であっても、また、どのような順序でデ
ータ転送要求があった場合であっても、3台のディスク
A1,B1,C1からのデータは、それぞれまとまった
データとして、それらディスクA1,B1,C1に対応
する個別のバッファ81a,81b,81cに整理され
て記憶されることになる。
As a result, for example, the 3 connected to the bus 41
Even if the data transfer requests are alternately received from the three disks A1, B1, and C1, and in any order, the three disks A1, B1, and The data from C1 is organized and stored as individual data in individual buffers 81a, 81b and 81c corresponding to the disks A1, B1 and C1.

【0100】従って、ドライブ列単位で転送の終了を判
断した場合(図4中のS2060:YES)、例えばA
ドライブ列の転送の終了を判断した場合、Aドライブ列
の各ディスクA1〜A4にそれぞれ対応するバッファ8
1a〜84aに記憶されたデータに基づいて、読み出し
対象のデータをすぐさま生成することができる(図4中
のS2070及びS2080)。
Therefore, when it is determined that the transfer is completed in units of drive rows (S2060 in FIG. 4: YES), for example, A
When it is determined that the transfer of the drive array is completed, the buffer 8 corresponding to each of the disks A1 to A4 of the A drive array is determined.
The data to be read can be immediately generated based on the data stored in 1a to 84a (S2070 and S2080 in FIG. 4).

【0101】これによって、転送されたデータを一旦記
憶した後に、そのデータを各ディスク装置10毎のデー
タとして整理し直すという無駄がなくなり、ディスク装
置10からのデータ転送と同時にデータが整理されるた
め、データ整理に要する時間を短縮することができ、ド
ライブ列間の並列処理によるデータ読み出し処理の高速
化を実現することができる。
As a result, there is no waste in storing the transferred data once and then rearranging the data as data for each disk device 10, and the data is organized simultaneously with the data transfer from the disk device 10. In addition, the time required for data arrangement can be reduced, and the speed of data read processing by parallel processing between drive rows can be increased.

【0102】一方、複数のドライブ列への並列なデータ
書き込み処理において、従来のディスクアレイ100で
は、上述の図5に示したように、バス41〜44単位に
設けられたバッファ31〜34に、ホスト装置500か
らキャッシュメモリ60へ転送される書き込み対象のデ
ータを書き込み要求順に記憶することになる。
On the other hand, in the process of writing data in parallel to a plurality of drive rows, in the conventional disk array 100, buffers 31 to 34 provided for buses 41 to 44 as shown in FIG. The data to be written transferred from the host device 500 to the cache memory 60 is stored in the order of the write requests.

【0103】従って、各バス41〜44に接続された3
台のディスク装置10から交互に書き込みのための転送
要求がなされる場合、その転送要求に応じて該当するデ
ータを各バス41〜44に記憶した一連のデータから選
択して転送するためのデータ操作が必要となってくる。
しかも、そのようなデータ操作が各バス41〜44毎に
必要となるため、そのデータ操作に要する時間によっ
て、ドライブ列間での並列処理によるデータ書き込み処
理の高速化も、データ読み出し処理と同様に困難であっ
た。
Accordingly, the 3 connected to each of the buses 41 to 44
In the case where a transfer request for writing is alternately made from one of the disk devices 10, a data operation for selecting and transferring corresponding data from a series of data stored in each of the buses 41 to 44 according to the transfer request is performed. Is required.
Moreover, since such data operation is required for each of the buses 41 to 44, the speed of the data write process by the parallel processing between the drive trains can be increased in the same manner as the data read process depending on the time required for the data operation. It was difficult.

【0104】それに対して、本実施形態のディスクアレ
イ1では、図1に示したように、各バス41〜44に接
続された3台のディスク装置10にそれぞれ対応するよ
うに、バス41〜44毎に3つずつのバッファ81a〜
81c,82a〜82c,83a〜83c,84a〜8
4cを備えている。例えばバス41について見れば、1
本のバス41に接続された3台のディスクA1,B1,
C1に対するそれぞれ個別のバッファ81a,81b,
81cを備えている。
On the other hand, in the disk array 1 of this embodiment, as shown in FIG. 1, the buses 41 to 44 correspond to the three disk devices 10 connected to the buses 41 to 44, respectively. Three buffers 81a-
81c, 82a to 82c, 83a to 83c, 84a to 8
4c. For example, looking at bus 41, 1
Three disks A1, B1,
Each individual buffer 81a, 81b,
81c.

【0105】図3で説明したように、ホスト装置500
からキャッシュメモリ60へ転送された書き込み対象の
データをビット演算手段50が該当するドライブ列のデ
ィスク装置10に対応する4つのバッファへ分散して
(図3中のS1050)記憶する(図3中のS106
0)。例えばAドライブ列への書き込み対象データは、
バッファ81a〜84aに分散されて記憶される。
As described with reference to FIG.
The bit operation means 50 distributes the data to be written transferred from the cache memory 60 to the four buffers corresponding to the disk drives 10 in the corresponding drive row (S1050 in FIG. 3) and stores the data (S1050 in FIG. 3). S106
0). For example, data to be written to the A drive row
The data is distributed and stored in the buffers 81a to 84a.

【0106】そして、ディスク装置10からのデータ転
送要求があると、図4で説明したデータ転送処理を実行
することによって、読み出し処理と同様に、転送を要求
したディスク装置10を特定し(図4中のS201
0)、さらに、その転送を要求したディスク装置10に
対応するバッファを特定する(図4中のS2020)。
例えば転送を要求したディスク装置10がディスクA1
であることを特定し、さらに、ディスクA1に対応する
個別のバッファ81aと特定するのである。
When there is a data transfer request from the disk device 10, by executing the data transfer process described in FIG. 4, the disk device 10 which has requested the transfer is specified as in the read process (FIG. 4). S201 inside
0), and further specifies a buffer corresponding to the disk device 10 that has requested the transfer (S2020 in FIG. 4).
For example, the disk device 10 that has requested the transfer is the disk A1
, And further specifies the individual buffer 81a corresponding to the disk A1.

【0107】例えばディスクA1に対応するバッファ8
1aには、予めホスト装置500からの書き込み対象デ
ータを分散したディスクA1へ書き込むべきデータが記
憶してあるため、このようにディスクA1とバッファ8
1aが特定されると、スイッチ71を切り替えてバッフ
ァ81aからディスクA1へ該当するデータを転送する
(図4中のS2040及びS2050)。これによっ
て、データの転送を要求したディスク装置10に対応す
るデータがすぐさま転送できる。例えば、バス41につ
いて言えば、ディスクA1から転送要求があった場合に
はバッファ81aのデータを、ディスクB1から転送要
求があった場合にはバッファ81bのデータを、ディス
クC1から転送要求があった場合にはバッファ81cの
データをそれぞれ転送することになる。
For example, the buffer 8 corresponding to the disk A1
Since the data to be written from the host device 500 to be written to the disk A1 in which the data to be written from the host device 500 is distributed is previously stored in the disk 1a, the disk 1a and the buffer 8
When 1a is specified, the switch 71 is switched to transfer the corresponding data from the buffer 81a to the disk A1 (S2040 and S2050 in FIG. 4). As a result, the data corresponding to the disk device 10 that has requested the data transfer can be immediately transferred. For example, regarding the bus 41, when the transfer request is made from the disk A1, the data in the buffer 81a is received, when the transfer request is made from the disk B1, the data is stored in the buffer 81b, and the transfer request is made from the disk C1. In this case, the data in the buffer 81c is transferred.

【0108】つまり、例えばバス41に接続された3台
のディスクA1,B1,C1へ書き込むべきデータを予
め個別のバッファ81a〜81cに記憶しておくことに
よって、3台のディスクA1,B1,C1から交互にデ
ータ転送要求があった場合であっても、また、どのよう
な順序でデータ転送要求があった場合であっても、すぐ
さま該当するデータを転送することが可能となる。
That is, for example, by storing data to be written to the three disks A1, B1, and C1 connected to the bus 41 in the individual buffers 81a to 81c in advance, the three disks A1, B1, and C1 are stored. Even if there is a data transfer request alternately from, or in any order, the corresponding data can be transferred immediately.

【0109】これによって、転送要求のあったディスク
装置10に対応するデータを4本のバス41〜44毎に
記憶したデータの中から選択して転送するという無駄が
なくなり、データ操作に要する時間の短縮を図ることが
できる。その結果、ドライブ列間の並列処理によるデー
タ書き込み処理の高速化を実現することができる。
This eliminates the waste of selecting and transferring data corresponding to the disk device 10 that has requested the transfer from the data stored for each of the four buses 41 to 44, and reduces the time required for data operation. Shortening can be achieved. As a result, it is possible to realize high-speed data write processing by parallel processing between drive arrays.

【0110】また、本実施形態のディスクアレイ1で
は、12台のディスク装置10の記憶領域を図2で説明
したように、ドライブ列毎の同一ブロックアドレスをク
ラスタとして管理し、さらに、ストライピングという手
法を用いてA〜Cの各ドライブ列に割り振っている。
In the disk array 1 of the present embodiment, the storage areas of the twelve disk devices 10 are managed as clusters with the same block address for each drive row as described with reference to FIG. Is assigned to each of the drive rows A to C.

【0111】上述したように、ホスト装置500は、例
えばクラスタ「3」,「4」,「5」というような連続
したクラスタを指定してデータを記憶するのが一般的で
ある。このとき、図2から分かるように、同じドライブ
列に連続したクラスタが割り振られていないために、例
えばクラスタ「3」,「4」,「5」へ一連のデータを
書き込む場合、また、クラスタ「3」,「4」,「5」
から一連のデータを読み出す場合、ドライブ列間の並列
処理によって、その書き込み処理及び読み出し処理に要
する時間を短縮することができる。その結果、本実施形
態のディスクアレイ1は、クラスタに連続して記憶した
映画等の映像データをシーケンシャルに読み出す場合に
は特に有効である。
As described above, the host device 500 generally stores data by designating continuous clusters such as clusters “3”, “4”, and “5”. At this time, as can be seen from FIG. 2, since continuous clusters are not allocated to the same drive row, when writing a series of data to clusters “3”, “4”, “5”, for example, 3 "," 4 "," 5 "
When a series of data is read from the drive, the time required for the write processing and the read processing can be reduced by the parallel processing between the drive rows. As a result, the disk array 1 of the present embodiment is particularly effective when sequentially reading video data of a movie or the like stored continuously in a cluster.

【0112】さらにまた、本実施形態のディスクアレイ
1では、図1中に破線で示したように各バス41〜44
に対応するバッファ81d〜84dが増設できるように
なっている。これによって、ディスクアレイ1の各バス
41〜44にそれぞれ1台ずつのディスク装置を接続
し、新たなドライブ列を増設することができる。その結
果、ディスクアレイ1は拡張性のある装置となってい
る。
Further, in the disk array 1 of the present embodiment, as shown by broken lines in FIG.
Can be added to the buffers 81d to 84d. As a result, one disk device can be connected to each of the buses 41 to 44 of the disk array 1, and a new drive row can be added. As a result, the disk array 1 is a scalable device.

【0113】なお、本実施形態のディスクアレイ1にお
けるアレイコントローラ3が請求項5に示したアレイコ
ントローラに相当する。以上、本発明はこのような実施
形態に何等限定されるものではなく、本発明の主旨を逸
脱しない範囲において種々なる形態で実施し得る。
Incidentally, the array controller 3 in the disk array 1 of the present embodiment corresponds to the array controller described in claim 5. As described above, the present invention is not limited to such an embodiment at all, and can be implemented in various forms without departing from the gist of the present invention.

【0114】例えば、上記実施形態のディスクアレイ1
では、ホスト装置500から指定されたクラスタからデ
ータを読み出す構成であったが、ホスト装置500から
指定されたクラスタ番号以降の連続した複数のクラスタ
からデータを先読みする構成も考えられる。例えば、上
述したような映画等の映像データでは、クラスタに連続
してデータが記憶されることが予想され、その場合には
特に有効である。
For example, the disk array 1 of the above embodiment
Although the configuration in which data is read from the cluster specified by the host device 500 has been described, a configuration in which data is read ahead from a plurality of continuous clusters subsequent to the cluster number specified by the host device 500 is also conceivable. For example, in the case of video data such as a movie as described above, it is expected that data will be stored consecutively in a cluster. In that case, it is particularly effective.

【0115】また、上記実施形態のディスクアレイ1で
は、各ディスク装置10に対応する個別の記憶領域とし
て、ディスク装置10と同じ数のバッファを備える構成
であったが、各バス41〜44に1つずつのバッファを
設け、そのバッファの記憶領域を接続されるディスク装
置の数に区切って使用するような構成としてもよい。但
し、上記実施形態のようにディスク装置10の数に合わ
せてバッファを増設していけるような構成では、ドライ
ブ列に合わせてバッファを増減できるため経済的である
と共に、1台1台のディスク装置10に対応する十分な
記憶領域を確保できるという点で有利である。
In the disk array 1 of the above embodiment, the same number of buffers as the disk device 10 is provided as an individual storage area corresponding to each disk device 10. Each buffer may be provided, and the storage area of the buffer may be divided into the number of disk devices to be used. However, the configuration in which the number of buffers can be increased according to the number of disk devices 10 as in the above-described embodiment is economical because the number of buffers can be increased or decreased according to the number of drives, and it is economical. This is advantageous in that a sufficient storage area corresponding to 10 can be secured.

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

【図1】 実施形態のディスクアレイの概略構成を示す
ブロック図である。
FIG. 1 is a block diagram illustrating a schematic configuration of a disk array according to an embodiment.

【図2】 ディスクアレイにおける複数台のディスク装
置の記憶領域の管理を示す説明図である。
FIG. 2 is an explanatory diagram showing management of storage areas of a plurality of disk devices in a disk array.

【図3】 コマンド発行処理を示すフローチャートであ
る。
FIG. 3 is a flowchart illustrating a command issuing process.

【図4】 データ転送処理を示すフローチャートであ
る。
FIG. 4 is a flowchart showing a data transfer process.

【図5】 従来のディスクアレイの概略構成を示すブロ
ック図である。
FIG. 5 is a block diagram showing a schematic configuration of a conventional disk array.

【図6】 従来のディスクアレイにおけるデータの転送
状況を示す説明図である。
FIG. 6 is an explanatory diagram showing a data transfer situation in a conventional disk array.

【図7】 従来のディスクアレイにおける問題点を説明
するための説明図である。
FIG. 7 is an explanatory diagram for explaining a problem in a conventional disk array.

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

1,100…ディスクアレイ 3,300…ア
レイコントローラ 10…ディスク装置 21〜24…S
CSIコントローラ 41〜44…バス 50…ビット演
算回路 60…キャッシュメモリ 63…PCIブ
リッジ 64…PCIバス 71〜74…ス
イッチ 91〜94…DMAC 97…CPU 98…ROM 99…RAM 31〜34,81a,81b,81c,82a,82
b,82c,83a,83b,83c,84a,84
b,84c…バッファ 500…ホスト装置
1,100 Disk array 3,300 Array controller 10 Disk device 21-24 S
CSI controllers 41-44 Bus 50 Bit operation circuit 60 Cache memory 63 PCI bridge 64 PCI bus 71-74 Switch 91-94 DMAC 97 CPU 98 ROM 99 RAM 31-34, 81a, 81b , 81c, 82a, 82
b, 82c, 83a, 83b, 83c, 84a, 84
b, 84c buffer 500 host device

Claims (5)

【特許請求の範囲】[Claims] 【請求項1】 複数本のバスを有し、当該各バスに複数
台の記憶装置を接続することによって、互いに異なるバ
スに接続されて並列に動作する記憶装置の組であるドラ
イブ列を複数列備え、アレイコントローラによって前記
ドライブ列単位でアクセスを行うよう構成され、前記記
憶装置は、データの読み出し又は書き込みの少なくとも
いずれか一方のためのコマンドに基づく処理の実行時
に、前記バスを必要としない期間には前記バスを解放
し、前記バスを必要とする期間には前記バスを占有する
バス占有・解放機能を備えた記憶装置アレイにおいて、 前記記憶装置にそれぞれ対応する個別の記憶領域を備え
ており、 ホスト装置からの要求に基づき、読み出し対象又は書き
込み対象のドライブ列の各記憶装置に対し、前記バスの
解放期間を利用して処理要求コマンドを発行するコマン
ド発行手段と、 前記処理要求コマンドに基づく処理を実行中の前記記憶
装置からデータ転送要求があった場合、当該転送を要求
した記憶装置を特定する要求装置特定手段と、該要求装
置特定手段によって特定された記憶装置に対応する記憶
領域を特定する記憶領域特定手段と、 前記ホスト装置からの要求がデータ読み出し要求である
場合には、前記要求装置特定手段によって特定された記
憶装置から前記記憶領域特定手段によって特定された記
憶領域へ該当するデータを転送し、一方、前記ホスト装
置からの要求がデータ書き込み要求である場合には、前
記記憶領域特定手段によって特定された記憶領域から前
記要求装置特定手段によって特定された記憶装置へ該当
データを転送する転送実行手段と、 前記ホスト装置からの要求がデータ読み出し要求である
場合、転送を終了したドライブ列がある場合には、当該
ドライブ列の各記憶装置に対応する記憶領域に記憶され
たデータから読出対象のデータを生成し、一方、前記ホ
スト装置からの要求がデータ書き込み要求である場合、
ホスト装置から書き込み対象のデータが送信された場合
には、書き込み対象のドライブ列の各記憶装置に対応す
る記憶領域へ当該書き込み対象のデータを分散して記憶
するデータ演算手段とを備えることを特徴とする記憶装
置アレイ。
1. A plurality of drive rows, each having a plurality of buses and being connected to different buses and being operated in parallel by connecting a plurality of storage devices to the respective buses. The storage device is configured to perform access in units of the drive rows by an array controller, and the storage device does not need the bus when performing processing based on a command for at least one of data reading and writing. In a storage device array having a bus occupation / release function for releasing the bus and occupying the bus during a period when the bus is required, the storage device array includes individual storage areas corresponding to the storage devices, respectively. On the basis of a request from the host device, the bus release period is used for each storage device of the drive array to be read or written. Command issuing means for issuing a processing request command, and when a data transfer request is issued from the storage device which is executing processing based on the processing request command, requesting device specifying means for specifying the storage device which has requested the transfer A storage area specifying unit that specifies a storage area corresponding to the storage device specified by the requesting device specifying unit; and a specifying unit that specifies the storage area corresponding to the storage device specified by the requesting device specifying unit when the request from the host device is a data read request. The corresponding data is transferred from the specified storage device to the storage area specified by the storage area specifying unit. On the other hand, when the request from the host device is a data write request, the data is specified by the storage area specifying unit. Transfer executing means for transferring the relevant data from the storage area to the storage device specified by the requesting device specifying means; If the request from the host device is a data read request, and if there is a drive row for which transfer has been completed, the data to be read out is read from the data stored in the storage area corresponding to each storage device in the drive row. And if the request from the host device is a data write request,
When the data to be written is transmitted from the host device, a data operation unit that distributes and stores the data to be written in the storage area corresponding to each storage device in the drive array to be written is provided. Storage device array.
【請求項2】 請求項1に記載の記憶装置アレイにおい
て、 前記ドライブ列を構成する各記憶装置における同一位置
の単位記憶領域の組を前記ホスト装置側からの管理用単
位記憶領域とし、さらに、当該管理用単位記憶領域をス
トライピングして配置することを特徴とする記憶装置ア
レイ。
2. The storage device array according to claim 1, wherein a set of unit storage regions at the same position in each of the storage devices constituting the drive array is a management unit storage region from the host device side, and further, A storage device array in which the management unit storage areas are arranged by striping.
【請求項3】 請求項2に記載の記憶装置アレイにおい
て、 前記ホスト装置からのデータの読み出し要求があった場
合、当該読み出し要求で指定された管理用単位記憶領域
以降に連続して配置された所定数の管理用単位記憶領域
からデータを読み出すよう構成されていることを特徴と
する記憶装置アレイ。
3. The storage device array according to claim 2, wherein when there is a data read request from the host device, the data is continuously arranged after the management unit storage area specified by the read request. A storage device array configured to read data from a predetermined number of management unit storage areas.
【請求項4】 請求項1〜3のいずれかに記載の記憶装
置アレイにおいて、 前記各記憶装置にそれぞれ対応する個別の記憶領域は、
接続される記憶装置の台数に合わせて増設可能に構成さ
れていることを特徴とする記憶装置アレイ。
4. The storage device array according to claim 1, wherein the individual storage areas respectively corresponding to the storage devices are:
A storage device array configured to be able to be added in accordance with the number of connected storage devices.
【請求項5】 複数本の各バスにそれぞれ複数台の記憶
装置を接続することによって、互いに異なるバスに接続
されて並列に動作する記憶装置の組であるドライブ列単
位でアクセスを行うよう構成されたアレイコントローラ
において、 前記記憶装置にそれぞれ対応する個別の記憶領域を備え
ており、 ホスト装置からの要求に基づき、読み出し対象又は書き
込み対象のドライブ列の各記憶装置に対し、前記バスの
解放期間を利用して処理要求コマンドを発行するコマン
ド発行手段と、 前記処理要求コマンドに基づく処理を実行中の前記記憶
装置からデータ転送要求があった場合、当該転送を要求
した記憶装置を特定する要求装置特定手段と、 該要求装置特定手段によって特定された記憶装置に対応
する記憶領域を特定する記憶領域特定手段と、 前記ホスト装置からの要求がデータ読み出し要求である
場合には、前記要求装置特定手段によって特定された記
憶装置から前記記憶領域特定手段によって特定された記
憶領域へ該当するデータを転送し、一方、前記ホスト装
置からの要求がデータ書き込み要求である場合には、前
記記憶領域特定手段によって特定された記憶領域から前
記要求装置特定手段によって特定された記憶装置へ該当
データを転送する転送実行手段と、 前記ホスト装置からの要求がデータ読み出し要求である
場合、転送を終了したドライブ列がある場合には、当該
ドライブ列の各記憶装置に対応する記憶領域に記憶され
たデータから読出対象のデータを生成し、一方、前記ホ
スト装置からの要求がデータ書き込み要求である場合、
ホスト装置から書き込み対象のデータが送信された場合
には、書き込み対象のドライブ列の各記憶装置に対応す
る記憶領域へ当該書き込み対象のデータを分散して記憶
するデータ演算手段とを備えることを特徴とするアレイ
コントローラ。
5. A configuration in which a plurality of storage devices are connected to a plurality of buses, respectively, so that access is made in units of drive rows, which are sets of storage devices connected to different buses and operating in parallel. The array controller has individual storage areas respectively corresponding to the storage devices. Based on a request from a host device, the bus release period is set for each storage device in a drive row to be read or to be written. Command issuing means for issuing a processing request command by using the command, and when a data transfer request is issued from the storage device which is executing processing based on the processing request command, requesting device identification for identifying the storage device requesting the transfer Means, and storage area specifying means for specifying a storage area corresponding to the storage device specified by the requesting device specifying means. When the request from the host device is a data read request, transfer the corresponding data from the storage device specified by the requesting device specifying unit to the storage area specified by the storage area specifying unit, When the request from the host device is a data write request, transfer execution means for transferring the corresponding data from the storage area specified by the storage area specifying means to the storage device specified by the requesting device specifying means; If the request from the host device is a data read request, and if there is a drive row for which transfer has been completed, data to be read is generated from the data stored in the storage area corresponding to each storage device in the drive row. On the other hand, when the request from the host device is a data write request,
When the data to be written is transmitted from the host device, a data operation means is provided for distributing and storing the data to be written in storage areas corresponding to the respective storage devices in the drive array to be written. And array controller.
JP9135535A 1997-05-26 1997-05-26 Storage array and array controller Pending JPH10326158A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP9135535A JPH10326158A (en) 1997-05-26 1997-05-26 Storage array and array controller

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP9135535A JPH10326158A (en) 1997-05-26 1997-05-26 Storage array and array controller

Publications (1)

Publication Number Publication Date
JPH10326158A true JPH10326158A (en) 1998-12-08

Family

ID=15154056

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9135535A Pending JPH10326158A (en) 1997-05-26 1997-05-26 Storage array and array controller

Country Status (1)

Country Link
JP (1) JPH10326158A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7836249B2 (en) 1999-02-02 2010-11-16 Hitachi, Ltd. Disk subsystem

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7836249B2 (en) 1999-02-02 2010-11-16 Hitachi, Ltd. Disk subsystem
US8234437B2 (en) 1999-02-02 2012-07-31 Hitachi, Ltd. Disk subsystem
US8554979B2 (en) 1999-02-02 2013-10-08 Hitachi, Ltd. Disk subsystem
US8949503B2 (en) 1999-02-02 2015-02-03 Hitachi, Ltd. Disk subsystem

Similar Documents

Publication Publication Date Title
JP4219602B2 (en) Storage control device and control method of storage control device
JP3617632B2 (en) RAID control apparatus and control method thereof
CA2098988C (en) Parity calculation in an efficient array of mass storage devices
JP3200500B2 (en) Disk device and disk control method
US6009481A (en) Mass storage system using internal system-level mirroring
US5720027A (en) Redundant disc computer having targeted data broadcast
US10162567B2 (en) Computer system
JP4392877B2 (en) Disk array controller
JP3694273B2 (en) Data processing system having multipath I / O request mechanism
US5504926A (en) Method for a host central processor and its associated controller to capture the selected one of a number of memory units via path control commands
EP0744697A1 (en) Method and apparatus for transferring data between computer devices
JPH08328760A (en) Disk array device
JP3185437B2 (en) Disk processing device
US6571314B1 (en) Method for changing raid-level in disk array subsystem
JP3813671B2 (en) Disk array device for multimedia server
JP2550311B2 (en) Multiple control system of magnetic disk
JP2001306480A (en) Storage system
JPH1063576A (en) Hierarchical disk drive and its control method
JPH10326158A (en) Storage array and array controller
JP2981711B2 (en) Disk storage device
JP3719976B2 (en) Duplex controller configuration disk storage system controller and disk storage system in which the controller is duplicated
JP2000347812A (en) Information processor and disk array device
JP2003084923A (en) Constituting method of cluster type disk array device
Chang et al. The designs of RAID with XOR engines on disks for mass storage systems
JP2001142653A (en) Disk subsystem having mirrored disk

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040420

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20061017

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061107

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070109

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070515