JPH0869359A - Disk array device - Google Patents

Disk array device

Info

Publication number
JPH0869359A
JPH0869359A JP6227359A JP22735994A JPH0869359A JP H0869359 A JPH0869359 A JP H0869359A JP 6227359 A JP6227359 A JP 6227359A JP 22735994 A JP22735994 A JP 22735994A JP H0869359 A JPH0869359 A JP H0869359A
Authority
JP
Japan
Prior art keywords
data
drive
storage devices
disk array
stored
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
JP6227359A
Other languages
Japanese (ja)
Inventor
Hitoshi Tsunoda
仁 角田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP6227359A priority Critical patent/JPH0869359A/en
Publication of JPH0869359A publication Critical patent/JPH0869359A/en
Pending legal-status Critical Current

Links

Landscapes

  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

PURPOSE: To improve the performance of the entire disk array device without deterioration in the entire performance due to the cause of the presence of a storage device with low performance even when plural storage devices whose performance or capacity differs from each other are employed to form the disk array device. CONSTITUTION: The size of shared data is changed depending on the processing speed of each storage device being a component of a logical group 15 in the disk array device. Read/write in each storage device is executed depending on the division ratio to average a processing time when each storage device is accessed in parallel. Thus, a data transfer time among storage devices (drives 14) being components of the disk array device is averaged to improve the processing performance. That is, even when the logical group 15 is formed by employing storage devices whose processing speed differs from each other in mixture, the suppression of the entire processing speed due to the presence of storage devices whose processing speed is low is avoided.

Description

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

【0001】[0001]

【産業上の利用分野】本発明は、ディスクアレイ装置に
関し、特に高性能な入出力動作を可能とするファイルシ
ステムに関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a disk array device, and more particularly to a file system capable of high performance input / output operation.

【0002】[0002]

【従来の技術】現在のコンピュータシステムにおいて
は、CPUなどの上位側が必要とするデ−タは2次記憶
装置に格納され、CPUなどが必要とするときに応じて
2次記憶装置に対してデ−タの書き込みおよび読み出し
を行っている。この2次記憶装置としては、一般に不揮
発な記憶媒体が使用され、代表的なものとして磁気ディ
スク装置(以下、ドライブとする)や、光ディスクなど
があげられる。
2. Description of the Related Art In a current computer system, data required by a high-order side such as a CPU is stored in a secondary storage device, and the data is stored in the secondary storage device as needed by the CPU. -Writing and reading data. A non-volatile storage medium is generally used as the secondary storage device, and typical examples thereof include a magnetic disk device (hereinafter referred to as a drive) and an optical disk.

【0003】近年高度情報化に伴い、コンピュータシス
テムにおいて、この種の2次記憶装置の高性能化が要求
されてきた。その一つの解として、多数の比較的容量の
小さなドライブにより構成されるディスクアレイが考え
られている。
In recent years, as computerization has advanced, there has been a demand for higher performance of this type of secondary storage device in computer systems. As one solution, a disk array composed of a large number of drives each having a relatively small capacity is considered.

【0004】公知の文献として、「D.Patterson,G.Gibs
on,and R.H.Kartz;A Case for Redundant Arrays of In
expensive Disks(RAID),in ACM SIGMOD Conference,Chi
cago,IL,(June1988)」がある。この文献においては、デ
ータを二重化するディスクアレイ(レベル1)と、デー
タを分割して並列に処理を行うディスクアレイ(レベル
3)と、データを分散して独立に扱うディスクアレイ
(レベル4、5)について、その性能および信頼性の検
討結果が報告されている。現在この論文に書かれている
方式が、最も一般的なディスクアレイと考えられてい
る。
As a known document, "D. Patterson, G. Gibs
on, and RHKartz; A Case for Redundant Arrays of In
expensive Disks (RAID), in ACM SIGMOD Conference, Chi
cago, IL, (June 1988) ”. In this document, a disk array (level 1) for duplicating data, a disk array (level 3) for dividing data and processing in parallel, and a disk array (level 4, 5) for separately handling data separately. ), The results of examination of its performance and reliability have been reported. The method currently described in this paper is considered to be the most common disk array.

【0005】まず、レベル3のディスクアレイについて
簡単に説明する。レベル3のディスクアレイでは、上位
から与えられた1つのデータを1バイト毎に分割し、複
数のドライブに振り分けて格納する。そのデータを読み
出す場合は、複数のドライブから分割されたデータ片を
集めて結合し、上位へ転送する。このため、レベル3で
は複数ドライブでの並列処理が可能となり、転送速度の
向上を図ることができる。
First, a level 3 disk array will be briefly described. In the level 3 disk array, one piece of data given from the upper level is divided into 1-byte units, and the divided data is distributed and stored in a plurality of drives. When reading the data, the divided data pieces are collected from a plurality of drives, combined, and transferred to a higher level. Therefore, at level 3, parallel processing can be performed by a plurality of drives, and the transfer speed can be improved.

【0006】次に、データを分割せずに個々のデータを
分散して、独立に扱うディスクアレイ(レベル5)につ
いて説明する。レベル4は、レベル5においてディスク
アレイを構成する各ドライブに分散しているパリティ
を、パリティのみを格納する1台のドライブに格納する
ようにしたものである。
Next, a disk array (level 5) in which individual data is distributed without dividing the data and handled independently will be described. Level 4 is such that the parity distributed in each drive forming the disk array in level 5 is stored in one drive that stores only parity.

【0007】レベル4、5のディスクアレイでは、個々
のデータを分割せずに独立に扱い、多数の比較的容量の
小さなドライブに分散して格納する。現在、一般に使用
されている汎用大型コンピュータシステムの2次記憶装
置では、1ドライブ当りの容量が大きいため、他の読み
出し/書き込み要求に当該ドライブが使用されて、その
ドライブを使用できずに待たされることが多く発生し
た。このレベル5(または4)のディスクアレイでは、
汎用大型コンピュータシステムの2次記憶装置で使用さ
れている大容量のドライブを、多数の比較的容量の小さ
なドライブで構成し、データを分散して格納するため、
読み出し/書き込み要求が増加してもディスクアレイの
複数のドライブで分散して処理することが可能となり、
読み出し/書き込み要求が待たされることが減少する。
In the level 4 and level 5 disk arrays, individual data is handled independently without being divided, and is distributed and stored in a large number of relatively small capacity drives. In a secondary storage device of a general-purpose large-scale computer system that is generally used at present, since the capacity per drive is large, the drive is used for another read / write request, and the drive cannot be used and is kept waiting. Many things happened. In this level 5 (or 4) disk array,
Since a large-capacity drive used in a secondary storage device of a general-purpose large-scale computer system is composed of a large number of relatively small-capacity drives to store data in a distributed manner,
Even if the number of read / write requests increases, it will be possible to perform processing distributedly among multiple drives in the disk array.
Waiting for read / write requests is reduced.

【0008】次に、ディスクアレイにおけるパリティに
ついて説明する。ディスクアレイは従来の大容量のドラ
イブを、比較的容量の小さな多数のドライブで構成する
ため、部品点数が増加し障害が発生する確率が高くな
る。このため、ディスクアレイでは、パリティを用意す
る。
Next, the parity in the disk array will be described. Since the disk array comprises a conventional large-capacity drive with a large number of relatively small-capacity drives, the number of parts increases and the probability of failure increases. For this reason, parity is prepared in the disk array.

【0009】パリティは、ディスクアレイを構成する各
ドライブにおいて、対応する各データ間の対応する各ビ
ット毎に排他的論理和をとることにより作成される。こ
の様にして作成されたパリティは、このパリティの作成
に関与したデータが格納されている以外のドライブに格
納される。
Parity is created by taking the exclusive OR for each corresponding bit between corresponding data in each drive constituting the disk array. The parity created in this way is stored in a drive other than the data in which the data involved in creating the parity is stored.

【0010】ディスクアレイを構成するドライブの中
で、あるドライブに障害が発生した場合に回復可能なド
ライブの集合を論理グループと呼ぶ。また、論理グルー
プ内でパリティを作成するデータの集合とこれらのデー
タから作成されたパリティデータとを合せて、パリティ
グループと呼ぶ。
A set of drives recoverable when a failure occurs in a certain drive among the drives forming the disk array is called a logical group. In addition, a set of data that creates parity in a logical group and parity data created from these data are collectively referred to as a parity group.

【0011】論理グループを構成するドライブの任意の
1台のドライブに障害が発生した場合、障害が発生した
ドライブ内の各データは、そのデータが所属する各パリ
ティグループ毎に正常なドライブ内のデータとパリティ
の排他的論理和をとることにより復元することが可能と
なる。
When a failure occurs in any one of the drives forming the logical group, each data in the failed drive is the data in the normal drive for each parity group to which the data belongs. It is possible to restore by taking the exclusive OR of the and parity.

【0012】このようなディスクアレイは、記憶媒体と
してドライブ(磁気ディスク装置)を用いたものが実
現、検討されてきた。最近では、ドライブを用いる代わ
りに、フラッシュメモリ等の不揮発な半導体メモリを使
用することが考えられている。例えば、特開平5−27
924号では、外部記憶装置において磁気ディスクの代
わりに不揮発な半導体メモリであるEEPROMを用い
る方法について開示している。
As such a disk array, one using a drive (magnetic disk device) as a storage medium has been realized and studied. Recently, it has been considered to use a non-volatile semiconductor memory such as a flash memory instead of using a drive. For example, JP-A-5-27
No. 924 discloses a method of using an EEPROM, which is a non-volatile semiconductor memory, in place of a magnetic disk in an external storage device.

【0013】[0013]

【発明が解決しようとする課題】従来のディスクアレイ
におけるレベル3の処理では、1つのデータを1バイト
毎に複数のドライブに振り分けて格納し、読み出す場合
は複数のドライブから分割されたデータを集めて結合
し、上位へ転送する。このため、レベル3では複数ドラ
イブでの並列処理が可能となり、転送速度の向上が図れ
る。
In the conventional level 3 processing in a disk array, one data is stored by dividing it into a plurality of drives for each byte, and when reading out, the divided data is collected from a plurality of drives. To combine and transfer to the upper level. Therefore, at level 3, parallel processing by a plurality of drives becomes possible, and the transfer speed can be improved.

【0014】このレベル3では、論理グループを構成す
る各ドライブには、等容量のデータが割り当てられる。
ディスクアレイの論理グループを構成する全てのドライ
ブの性能が等しければ、レベル3の並列処理により、転
送速度は「ドライブの並列数×1台のドライブの転送速
度」となる。しかし、論理グループ内のドライブの性能
が異なる場合は、ディスクアレイ全体の性能が、最も性
能の低いドライブの性能に制約されることになる。
At level 3, data of equal capacity is assigned to each drive forming the logical group.
If the performance of all the drives constituting the logical group of the disk array is equal, the transfer rate becomes "the parallel number of drives x the transfer rate of one drive" by the level 3 parallel processing. However, when the drives in the logical groups have different performances, the performance of the entire disk array is limited by the performance of the drive with the lowest performance.

【0015】例えば、論理グループをドライブ#1から
#5の5台のドライブで構成し、ドライブ#1、#2、
#3、#5の転送速度が6MB/sで、ドライブ#4のみが
3MB/sであったとする。従来のレベル3でデータを格納
する場合、ドライブ#1から#5の各ドライブには、等
容量のデータがそれぞれ割り当てられる。この場合、各
ドライブにおける転送処理は並列して行なわれるが、ド
ライブ#4のデータ転送時間はドライブ#1などの転送
時間の2倍であるため、ドライブ#1、#2、#3、#
5ではデータの転送が終了しても、ドライブ#4の転送
が終了するまで待たなければならない。従って、結局は
このディスクアレイの性能は、ドライブ#4の転送性能
で決まってしまう。
For example, a logical group is composed of five drives # 1 to # 5, and drives # 1, # 2,
It is assumed that the transfer rates of # 3 and # 5 are 6 MB / s and only the drive # 4 has 3 MB / s. When data is stored at the conventional level 3, data of equal capacity is allocated to each of the drives # 1 to # 5. In this case, the transfer process in each drive is performed in parallel, but since the data transfer time of the drive # 4 is twice as long as the transfer time of the drive # 1 and the like, the drives # 1, # 2, # 3, #
In No. 5, even if the data transfer is completed, it is necessary to wait until the transfer of the drive # 4 is completed. Therefore, the performance of this disk array is ultimately determined by the transfer performance of drive # 4.

【0016】本発明の目的は、性能や容量の異なる複数
の記憶装置を用いてディスクアレイ装置を構成した場合
であっても、性能の低い記憶装置があることが原因とな
って全体の性能低下を引き起こすようなことがなく、デ
ィスクアレイ装置全体としての性能向上を図ることにあ
る。
An object of the present invention is that even if a disk array device is constructed using a plurality of storage devices having different performances and capacities, there is a storage device having a low performance and the overall performance is degraded. It is intended to improve the performance of the disk array device as a whole without causing such a problem.

【0017】[0017]

【課題を解決するための手段】そこで本発明では、論理
グループを構成する複数台の記憶装置と、該記憶装置を
制御する制御装置とを備えたディスクアレイ装置におい
て、各記憶装置の処理速度に応じて、分配するデータの
大きさを変えるようにする。つまり、処理速度の遅い記
憶装置には少ないデータを割り当て、処理速度の速い記
憶装置には多いデータを割り当てる。
Therefore, according to the present invention, in a disk array device comprising a plurality of storage devices forming a logical group and a control device for controlling the storage devices, the processing speed of each storage device is increased. The size of the distributed data is changed accordingly. That is, a small amount of data is assigned to a storage device having a low processing speed, and a large amount of data is assigned to a storage device having a high processing speed.

【0018】具体的には、上位装置から与えられたデー
タをストライピングして格納するためのm台(mは2以
上の整数)のデータ記憶装置と、該m台のデータ記憶装
置に格納したデータから作成したエラー訂正コードを格
納するためのn台(nは1以上の整数)のエラー訂正コ
ード記憶装置とから論理グループを構成するとともに、
これらの記憶装置を制御する制御装置を備えたディスク
アレイ装置において、前記m台のデータ記憶装置および
n台のエラー訂正コード記憶装置の処理速度の相対比を
順に k1:k2:…:ki:…:km+n と表し、前記ス
トライピングの単位をuで表すとき、各記憶装置の最小
のアクセス単位を、それぞれ、その記憶装置の処理速度
の相対比ki (i =1〜m+n )と前記ストライピング単
位uとの積ki ・uとなるようにする。処理速度とは、
ディスクドライブにおける回転待ち時間や転送速度な
ど、データの読み出しあるいは書き込みの際の処理時間
のことである。
Specifically, m (m is an integer of 2 or more) data storage devices for striping and storing the data given by the host device, and the data stored in the m data storage devices. A logical group is composed of n (n is an integer of 1 or more) error correction code storage devices for storing the error correction code created from
In a disk array device equipped with a control device for controlling these storage devices, the relative ratios of the processing speeds of the m data storage devices and the n error correction code storage devices are sequentially k1: k2: ...: ki :. When the striping unit is represented by u, the minimum access unit of each storage device is represented by the relative ratio ki (i = 1 to m + n) of the processing speed of the storage device and The product of striping unit u is k i · u. What is processing speed?
It is the processing time when reading or writing data such as the rotation waiting time and transfer speed in the disk drive.

【0019】処理速度の相対比は、アドレステーブルに
保持して管理するとよい。エラー訂正コードは、m台の
データ記憶装置に格納したデータから作成するのであれ
ば、どのようなものでもよい。エラー訂正コードは、1
種類だけでなく、複数種類のエラー訂正コードを作成し
て格納するようにしてもよい。
The relative ratio of processing speeds may be maintained in an address table and managed. The error correction code may be any code as long as it is created from data stored in m data storage devices. The error correction code is 1
Not only the types, but also a plurality of types of error correction codes may be created and stored.

【0020】このように各記憶装置の処理時間に応じて
その記憶装置に格納するデータ量の割当てを変えるよう
にすると、データをどんどん書き込んでいったとき、あ
る記憶装置だけ始めに満杯になることがある。その場合
には、残りの記憶装置でディスクアレイを構成するとよ
い。
When the allocation of the amount of data to be stored in the storage device is changed according to the processing time of each storage device in this way, when a certain amount of data is written, only one storage device will be full at the beginning. There is. In that case, it is advisable to configure the disk array with the remaining storage devices.

【0021】前記記憶装置としては、ディスクドライブ
のほか、フラッシュメモリなどの不揮発半導体メモリ装
置を用いてもよい。
As the storage device, in addition to a disk drive, a non-volatile semiconductor memory device such as a flash memory may be used.

【0022】[0022]

【作用】本発明によれば、論理グループを構成する各記
憶装置の処理速度に応じて、分配するデータの大きさを
変えるようにしているので、論理グループの各記憶装置
で並列転送を行うときのデータ転送時間を、論理グルー
プ内の各記憶装置間で平均化することが可能となる。従
って、論理グループを異なる処理速度の記憶装置を混在
して構成した場合でも、処理速度の遅い記憶装置がある
ことが原因となって全体の処理速度を抑えてしまうこと
がなくなる。
According to the present invention, since the size of data to be distributed is changed according to the processing speed of each storage device forming a logical group, parallel transfer is performed in each storage device of the logical group. It is possible to average the data transfer time among the storage devices in the logical group. Therefore, even if the logical group is configured by mixing the storage devices having different processing speeds, it is not possible to suppress the overall processing speed due to the existence of the storage device having the slow processing speed.

【0023】[0023]

【実施例】以下、図面を用いて、本発明の実施例を説明
する。
Embodiments of the present invention will be described below with reference to the drawings.

【0024】[実施例1]図1は、本発明の第1の実施
例に係るディスクアレイ装置の全体構成を示す。本実施
例において、RAIDのレベル3の制御を行うディスク
アレイコントローラ(以下、ADCと呼ぶ)2は、制御
部と論理グループ15により構成される。CPU1は、
ADC2に読み出し命令や書き込み命令を発行する上位
装置である。論理グループ15は、m台のドライブ14
と、各々のドライブ14を制御部のドライブインターフ
ェース回路(Drive IF)13に接続するドライ
ブパス16により、構成される。なお、このドライブ1
4の数は、本発明の効果を得るには、特に制限は無い。
[Embodiment 1] FIG. 1 shows the overall configuration of a disk array device according to a first embodiment of the present invention. In this embodiment, a disk array controller (hereinafter referred to as an ADC) 2 that controls RAID level 3 is composed of a control unit and a logical group 15. CPU1
It is a higher-level device that issues a read command and a write command to the ADC 2. Logical group 15 has m drives 14
And a drive path 16 that connects each drive 14 to the drive interface circuit (Drive IF) 13 of the control unit. In addition, this drive 1
The number of 4 is not particularly limited in order to obtain the effect of the present invention.

【0025】この論理グループ15はドライブ障害の回
復単位であり、この論理グループ15内の各ドライブ1
4内の各データによりパリティを作成する。論理グルー
プ15内でパリティを作成するデータの集合とこれらの
データから作成されたパリティとを合わせてパリティグ
ループとする。
This logical group 15 is a recovery unit of drive failure, and each drive 1 in this logical group 15
Parity is created from each data in 4. A set of data that creates parity in the logical group 15 and the parity created from these data are combined to form a parity group.

【0026】CPU1より発行されたコマンドは、外部
インターフェースパス3を通ってADC2のインターフ
ェースアダプタ(以下、IF Adpと呼ぶ)4に入力
する。IF Adp4は、CPU1から発行されたコマ
ンドの受付が可能かどうか判断する。
The command issued from the CPU 1 is input to the interface adapter (hereinafter referred to as IF Adp) 4 of the ADC 2 through the external interface path 3. The IF Adp4 determines whether the command issued from the CPU 1 can be accepted.

【0027】具体的には、図1に示すように、CPU1
からADC2に送られてきたコマンドは、まずIF A
dp4により取り込まれる。マイクロプロセッサである
MP9は、処理可能な場合は受付け処理を行ない、処理
できない場合は受付不可の応答をCPU1へ送る。この
ようにしてコマンドの受付が可能になった後に、後で説
明するような読み出し処理または書き込み処理(新規ま
たは更新)を開始する。
Specifically, as shown in FIG. 1, the CPU 1
The command sent from ADC to ADC2 is IF A
It is taken in by dp4. The MP9, which is a microprocessor, performs the accepting process when the process is possible, and sends a response of unacceptable to the CPU1 when the process is impossible. After the command can be accepted in this way, a read process or a write process (new or update) as described later is started.

【0028】読み出し処理や書き込み処理について説明
する前に、図2を参照して、本実施例のADC2におけ
るデータの分割格納の方式について具体的に説明する。
上述したように、本実施例ではRAIDのレベル3の制
御を基本とするが、本発明に係る特徴的な部分があるの
で通常のRAIDレベル3の制御と異なる部分がある。
Before describing the read processing and the write processing, the method of dividing and storing data in the ADC 2 of this embodiment will be specifically described with reference to FIG.
As described above, the present embodiment is basically based on the RAID level 3 control, but since there is a characteristic part according to the present invention, there is a part different from the normal RAID level 3 control.

【0029】図2において、1,2,3,…,nと記さ
れた各矩形は、分割された個々のデータ(それぞれ、デ
ータ1、データ2、…と呼ぶ)を示し、これらのデータ
がドライブ(Drive)#1〜#4に格納される。D
rive#5は、パリティディスクである。
In FIG. 2, each of the rectangles marked with 1, 2, 3, ..., N represents individual divided data (referred to as data 1, data 2, ...), and these data are It is stored in the drives (Drive) # 1 to # 4. D
drive # 5 is a parity disk.

【0030】詳しくは後述するが、本実施例では、論理
グループを構成するDrive#1〜#5のうち、Dr
ive#1,#2,#3,#5の転送速度が6MB/s
であり、Drive#4の転送速度が3MB/sである
とする。
As will be described later in detail, in the present embodiment, Dr among Drive # 1 to Drive # 5 forming the logical group is Dr.
The transfer speed of ive # 1, # 2, # 3, # 5 is 6MB / s
And the transfer speed of Drive # 4 is 3 MB / s.

【0031】この場合、従来のRAIDレベル3の制御
では、各ドライブの性能にかかわらず同じ大きさのデー
タを等分配する。すなわち、データ1〜データ4を用い
てパリティP1を作成しそれぞれのデータをDrive
#1〜#5に格納し、データ5〜データ8を用いてパリ
ティP2を作成しそれぞれのデータをDrive#1〜
#5に格納し、…というようにデータが格納される。各
ドライブのアクセスは並列して行なわれるが、Driv
e#4の転送速度は他のドライブの転送速度の半分であ
るため、Drive#1,#2,#3,#5でデータの
転送が終了してもDrive#4の転送が終了するまで
待たなければならず、全体として性能が上がらない。
In this case, in the conventional RAID level 3 control, data of the same size is equally distributed regardless of the performance of each drive. That is, the parity P1 is created using data 1 to data 4, and each data is driven
# 1 to # 5 are stored, parity P2 is created using data 5 to data 8, and each data is driven to Drive # 1 to # 5.
The data is stored in # 5, and so on. The drives are accessed in parallel, but
Since the transfer speed of e # 4 is half of the transfer speed of other drives, even if the data transfer ends in Drive # 1, # 2, # 3, and # 5, wait until the transfer of Drive # 4 ends. It must be done, and overall performance will not improve.

【0032】そこで、本実施例では、Drive#4の
転送速度が他のドライブの転送速度の半分であることを
考慮し、Drive#4に格納するデータの容量が他の
ドライブに格納するデータの容量の半分になるように割
当てている。すなわち、図2に示すように、まずDri
ve#1にはデータ1とデータ2を、Drive#2に
はデータ3とデータ4を、Drive#3にはデータ5
とデータ6を、それぞれ格納する。また、Drive#
4にはデータ7を格納する。そして、データ1、データ
3、データ5、およびデータ7からパリティP1を作成
し、データ2、データ4、およびデータ6からパリティ
P2を作成し、これらのパリティP1、P2をパリティ
ディスクであるDrive#5に格納するようにする。
Therefore, in the present embodiment, considering that the transfer speed of the Drive # 4 is half the transfer speed of the other drive, the capacity of the data stored in the Drive # 4 is smaller than that of the data stored in the other drive. Allocation is made to be half of the capacity. That is, as shown in FIG.
data # 1 and data 2 for ve # 1, data 3 and data 4 for Drive # 2, and data 5 for Drive # 3
And data 6 are stored respectively. Also, Drive #
Data 4 is stored in 4. Then, a parity P1 is created from data 1, data 3, data 5, and data 7, a parity P2 is created from data 2, data 4, and data 6, and these parities P1 and P2 are Drive #, which is a parity disk. Store it in 5.

【0033】これにより、各ドライブのアクセスを並列
して行なう場合、Drive#4の転送量は他のドライ
ブの転送量の半分で済むから、全体として性能が向上す
る。
As a result, when the drives are accessed in parallel, the transfer amount of Drive # 4 is half the transfer amount of the other drives, so that the performance is improved as a whole.

【0034】次に、本実施例における具体的な読み出し
処理や書き込み処理について説明する。まず、論理グル
ープの各ドライブに関する初期設定法について説明す
る。
Next, specific read processing and write processing in this embodiment will be described. First, the initial setting method for each drive of the logical group will be described.

【0035】(初期設定法)本実施例では、図1に示す
ように、5台のドライブ14により論理グループ15を
構成する。論理グループ15内では、基本的には、CP
U1からのデータを1バイトごとに分割した4個のデー
タと1個のパリティ(4D+1Pとする)でパリティグ
ループ(RAIDレベル3)を構成する。ただし、図2
で説明したように、本実施例では、3個のデータと1個
のパリティ(3D+1P)のパリティグループも混在す
る。
(Initial setting method) In this embodiment, as shown in FIG. 1, a logical group 15 is composed of five drives 14. In the logical group 15, basically, CP
A parity group (RAID level 3) is configured by 4 data obtained by dividing the data from U1 into 1-byte units and 1 parity (4D + 1P). However, Figure 2
As described above, in this embodiment, a parity group of 3 data and 1 parity (3D + 1P) is also mixed.

【0036】図3は、CPU1が読み出しまたは書き込
み要求を発行する際に指定するアドレスをドライブ14
のアドレスに変換する際に使用するアドレステーブル2
1である。アドレステーブル21は、キャッシュメモリ
8内にあり、システムの電源をオンしたときに、MP9
により論理グループ15内のある特定の1台またはそれ
以上のドライブ14から、キャッシュメモリ8にCPU
1の関知無しに自動的に読み込まれる。一方、電源をオ
フするときは、MP9により、キャッシュメモリ8内の
アドレステーブル21を、読み込んできたドライブ14
内の所定の場所にCPU1の関知無しに自動的に格納す
る。
In FIG. 3, the address designated by the CPU 1 when issuing a read or write request is the drive 14
Address table 2 used when converting to other addresses
It is 1. The address table 21 exists in the cache memory 8 and is stored in MP9 when the system is powered on.
CPU from the specific one or more drives 14 in the logical group 15 to the cache memory 8
It is automatically read without knowledge of 1. On the other hand, when the power is turned off, the drive 14 that has read the address table 21 in the cache memory 8 by the MP 9
The data is automatically stored in a predetermined place therein without any knowledge of the CPU 1.

【0037】図3において、アドレステーブル21は、
論理グループ番号22、データ名23、ドライブ番号2
4、分割比25、ドライブ内アドレス26、およびキャ
ッシュアドレス27の各フィールドで構成される。
In FIG. 3, the address table 21 is
Logical group number 22, data name 23, drive number 2
4, division ratio 25, in-drive address 26, and cache address 27.

【0038】論理グループ番号22には、1つの論理グ
ループを特定する番号が登録される。データ名23に
は、CPU1が指定する論理アドレスが登録される。デ
ータ名23が登録されていない部分が空き領域を示すこ
とになる。キャッシュアドレス27には、このデータ名
23に対応するデータがキャッシュメモリ8内に存在す
る場合は、キャッシュメモリ8内のアドレスが登録され
る。逆に、キャッシュアドレス27が登録されていない
(空欄)場合は、このデータ名23のデータがキャッシ
ュメモリ8内に存在していないことを示す。
A number for specifying one logical group is registered in the logical group number 22. A logical address designated by the CPU 1 is registered in the data name 23. A portion where the data name 23 is not registered indicates a free area. In the cache address 27, when the data corresponding to the data name 23 exists in the cache memory 8, the address in the cache memory 8 is registered. On the other hand, when the cache address 27 is not registered (blank), it indicates that the data of this data name 23 does not exist in the cache memory 8.

【0039】ドライブ番号24には、データ名23の各
データが格納されているドライブ14の番号が登録され
る。分割比25には、各ドライブに対するデータの割り
当て比が設定される。ドライブ内アドレス26には、デ
ータ名23のデータがドライブ番号24の各ドライブの
どこに格納されるかを示すアドレスが設定される。
In the drive number 24, the number of the drive 14 in which each data of the data name 23 is stored is registered. In the division ratio 25, a data allocation ratio for each drive is set. The in-drive address 26 is set to an address indicating where the data of the data name 23 is stored in each drive of the drive number 24.

【0040】なおこの例では、Drive#4の分割比
25が1で、他のDrive#1,#2,#3,#5の
分割比25が2であるから、Drive#4のドライブ
内アドレス26が示すアドレスの位置に格納されるデー
タの容量は、他のDrive#1,#2,#3,#5の
ドライブ内アドレス26が示すアドレスの位置に格納さ
れるデータの容量の半分である。例えば、図2と図3を
対応させたとき、図3のData#1は図2のデータ1
〜データ7に対応し、Drive#1のアドレスAdd
r11の位置には図2のデータ1,2が、Drive#
2のアドレスAddr21の位置には図2のデータ3,
4が、Drive#3のアドレスAddr31の位置に
は図2のデータ5,6が、Drive#4のアドレスA
ddr41の位置には図2のデータ7が、Drive#
5のアドレスAddr51の位置には図2のパリティP
1,P2が、それぞれ格納されることになる。
In this example, the division ratio 25 of Drive # 4 is 1 and the division ratio 25 of the other Drives # 1, # 2, # 3, and # 5 is 2, so the drive address of Drive # 4 is The capacity of the data stored at the address indicated by 26 is half the capacity of the data stored at the address indicated by the in-drive address 26 of the other Drives # 1, # 2, # 3, and # 5. . For example, when FIG. 2 and FIG. 3 are associated with each other, Data # 1 in FIG.
~ Address Add of Drive # 1 corresponding to data 7
At the position of r11, the data 1 and 2 of FIG.
2 at the address Addr21 of FIG.
4 is at the address Addr31 of Drive # 3, and the data 5 and 6 of FIG. 2 are at the address A of Drive # 4.
At the position of ddr41, the data 7 of FIG.
At the position of the address Addr51 of No. 5, the parity P of FIG.
1 and P2 are stored respectively.

【0041】図4は、MP9が初期設定するときの処理
フローチャートを示す。図4を用いて初期設定法につい
て説明する。
FIG. 4 shows a processing flowchart when the MP9 is initialized. The initial setting method will be described with reference to FIG.

【0042】まず、システム管理者が初期設定する場
合、論理グループ15を構成するドライブ14を決定す
る。例えば、論理グループ番号がLG#1の論理グルー
プ15を、Drive#1,#2,#3,#4,#5の
ドライブ14で構成したい場合、システム管理者は、ア
ドレステーブル21に対し、論理グループ番号22にL
G#1を登録し(ステップ40)、さらにこの論理グル
ープ15を構成するドライブのドライブ番号24にDr
ive#1,#2,#3,#4,#5をそれぞれ登録す
る(ステップ41)。
First, when the system administrator makes an initial setting, the drives 14 constituting the logical group 15 are determined. For example, when it is desired to configure the logical group 15 having the logical group number LG # 1 with the drives 14 of Drive # 1, # 2, # 3, # 4, and # 5, the system administrator sets the logical table to the address table 21. L for group number 22
G # 1 is registered (step 40), and Dr is added to the drive number 24 of the drives that make up this logical group 15.
ive # 1, # 2, # 3, # 4, # 5 are respectively registered (step 41).

【0043】アドレステーブル21への登録は、システ
ム管理者がADC2のMP9を用いて、キャッシュメモ
リ8内のアドレステーブル21に対し行う。次に、シス
テム管理者は、設定した論理グループ15の各ドライブ
14の性能に応じて、レベル3の分割比25を設定する
(ステップ42)。この例では、Drive#1,#
2,#3,#5の転送速度が6MB/sで、Drive
#4の転送速度が3MB/sとする。この場合、Dri
ve#4の転送速度がDrive#1などの転送速度の
半分であるから、Drive#1,#2,#3,#5と
Drive#4に対するデータの割り当て比は2:1と
なる。そこで、アドレステーブル21のDrive#
1,#2,#3,#5の分割比25には2を設定し、D
rive#4の分割比25には1を設定する。
Registration to the address table 21 is performed by the system administrator using the MP9 of the ADC 2 to the address table 21 in the cache memory 8. Next, the system administrator sets the division ratio 25 of level 3 according to the performance of each drive 14 of the set logical group 15 (step 42). In this example, Drive # 1, #
The transfer speed of 2, # 3, # 5 is 6MB / s, and Drive
The transfer rate of # 4 is 3 MB / s. In this case, Dri
Since the transfer rate of ve # 4 is half of the transfer rate of Drive # 1, etc., the data allocation ratio for Drive # 1, # 2, # 3, # 5 and Drive # 4 is 2: 1. Therefore, Drive # in the address table 21
2 is set to the division ratio 25 of 1, # 2, # 3, and # 5, and D
1 is set to the division ratio 25 of live # 4.

【0044】以上の説明では、システム管理者が論理グ
ループ15内のドライブ14の性能を考慮して分割比を
設定した。しかし、ドライブ14を設定したときに、A
DC2内のMP9が同時にドライブ14の性能から分割
比を自動的に設定することも可能である。
In the above description, the system administrator sets the division ratio in consideration of the performance of the drives 14 in the logical group 15. However, when setting the drive 14, A
It is also possible for the MP9 in the DC2 to automatically set the division ratio from the performance of the drive 14 at the same time.

【0045】(アドレス変換法)次に、図3のアドレス
テーブルを用いたアドレスの変換法について説明する。
(Address Conversion Method) Next, an address conversion method using the address table of FIG. 3 will be described.

【0046】読み出しまたは書き込み要求を指示するC
PU1は、アドレスとして論理グループ番号22とデー
タ名23を指定する。CPU1からの読み出しまたは書
き込み要求と当該アドレスを受け取ったADC2のMP
9は、図3のようなアドレステーブル21により、その
データが実際に格納されているドライブ番号24とドラ
イブ内アドレス26を決定する。このとき、アドレステ
ーブル21において、それぞれのドライブ14に対し読
み出しまたは書き込むデータの分割比を認識する。
C indicating a read or write request
The PU 1 specifies the logical group number 22 and the data name 23 as the address. Read or write request from CPU1 and MP of ADC2 that received the address
9 determines the drive number 24 and the in-drive address 26 where the data is actually stored by the address table 21 as shown in FIG. At this time, the address table 21 recognizes the division ratio of the read or write data for each drive 14.

【0047】例えば、図3においてCPU1からLG#
1の論理グループ15のData#1に対し読み出し要
求が発行された場合、アドレステーブル21から、この
データが格納されているアドレスが分かる。そのアドレ
スは、Drive#1のAddr11、Drive#2
のAddr21、Drive#3のAddr31、Dr
ive#4のAddr41である。また、パリティはD
rive#5のAddr51に格納されていることが分
かる。さらに、Drive#1,#2,#3,#5は分
割比が2で、Drive#4は分割比が1であることが
分かる。
For example, referring to FIG.
When a read request is issued to Data # 1 of the logical group 15 of No. 1, the address where this data is stored can be known from the address table 21. The addresses are Addr11 and Drive # 2 of Drive # 1.
Addr21, Drive # 3 Addr31, Dr
This is Addr41 of ive # 4. Also, the parity is D
It can be seen that it is stored in Addr 51 of live # 5. Further, it can be seen that Drive # 1, # 2, # 3, # 5 has a division ratio of 2, and Drive # 4 has a division ratio of 1.

【0048】このように、CPU1から指定されたアド
レスを、実際に読み出し/書き込みを行うドライブ14
のアドレスに変換した後、当該ドライブ14の当該ドラ
イブ内アドレス26に対し読み出しまたは書込み要求が
発行される。各ドライブへの読み出しまたは書き込みデ
ータの大きさは、分割比に応じた大きさである。
In this way, the drive 14 that actually reads / writes the address designated by the CPU 1
After the address is converted into the address, the read or write request is issued to the in-drive address 26 of the drive 14. The size of read or write data to each drive is a size according to the division ratio.

【0049】次に、このようなアドレス変換を行い、具
体的にデータを読み出しまたは書き込む際の処理法につ
いて説明する。
Next, a processing method for performing such address conversion and specifically reading or writing data will be described.

【0050】(新規書き込み処理)図5は、新規にデー
タを書き込む際のMP9の処理フローチャートを示す。
図5および図1を参照して、新規にデータを書き込む方
法について説明する。
(New Writing Processing) FIG. 5 shows a processing flowchart of the MP9 when newly writing data.
A method for newly writing data will be described with reference to FIGS. 5 and 1.

【0051】CPU1からのコマンドを受け取ると、A
DC2のMP9は、そのコマンドを処理可能かどうか調
べ、可能な場合は処理可能だという応答をCPU1へ返
す(ステップ51)。CPU1より発行されたコマンド
は、IF Adp4を介してADC2に取り込まれ、M
P9により読み出し要求か書き込み要求か解読される
(ステップ52)。書き込み要求の場合は、以下のよう
に処理する。なお、読み出し処理の場合は、図8により
後述する。
When the command from the CPU 1 is received, A
The MP9 of the DC2 checks whether the command can be processed, and if yes, returns a response indicating that the command can be processed to the CPU1 (step 51). The command issued by the CPU1 is fetched by the ADC2 via the IF Adp4, and the M
A read request or a write request is decoded by P9 (step 52). In the case of a write request, it is processed as follows. The read process will be described later with reference to FIG.

【0052】CPU1では処理可能だという応答を受け
取った後に、ADC2へ書き込みデータを転送する。こ
のとき、ADC2では、MP9の指示により、IF A
dp4とCPU1間の接続を確立する(ステップ5
3)。CPU1とADC2との間の接続を確立した後、
CPU1からのデータ転送を受け付ける。
After the CPU 1 receives the response that the processing is possible, the write data is transferred to the ADC 2. At this time, in ADC2, IF A
Establishes a connection between dp4 and CPU1 (step 5)
3). After establishing the connection between CPU1 and ADC2,
Data transfer from the CPU 1 is accepted.

【0053】CPU1からは、論理グループ番号22と
データ名23と書き込みデータが転送される。CH I
F5は、MP9の指示により、CPU1から転送された
これらのデータに対しプロトコル変換を施す(ステップ
54)。これにより、CPU1からのデータは、外部パ
ス3での転送速度からADC2内での処理速度に速度調
整される。具体的には、CPU1とADC2との間のチ
ャネルインターフェースを光のインターフェースにした
場合、CH IF5は、光のインターフェースのプロト
コルをADC2内の電気処理でのプロトコルに変換す
る。
From the CPU 1, the logical group number 22, the data name 23 and the write data are transferred. CH I
In response to the instruction from MP9, F5 performs protocol conversion on these data transferred from CPU1 (step 54). Thereby, the speed of the data from the CPU 1 is adjusted from the transfer speed in the external path 3 to the processing speed in the ADC 2. Specifically, when the channel interface between the CPU 1 and the ADC 2 is an optical interface, the CH IF 5 converts the protocol of the optical interface into a protocol for electrical processing in the ADC 2.

【0054】CH IF5におけるプロトコル変換およ
び速度制御の完了後、データは、データ制御回路(DC
C)6によるデータ転送制御を受け、キャッシュアダプ
タ回路(C Adp)7に転送され、C Adp7によ
りキャッシュメモリ8内に格納される(ステップ5
5)。C Adp7は、MP9の指示に応じて、キャッ
シュメモリ8に対するデータの読み出しおよび書き込み
を行う回路であり、キャッシュメモリ8の状態の監視、
各読み出し、および書き込み要求に対し、排他制御を行
う回路である。
After completion of protocol conversion and speed control in CH IF5, the data is transferred to the data control circuit (DC
C) Under the data transfer control by C6, it is transferred to the cache adapter circuit (C Adp) 7 and stored in the cache memory 8 by C Adp7 (step 5).
5). The C Adp 7 is a circuit that reads and writes data from and to the cache memory 8 in response to an instruction from the MP 9, and monitors the state of the cache memory 8.
It is a circuit that performs exclusive control for each read and write request.

【0055】MP9が書き込み要求のコマンドを認識
し、しかも、書き込むデータが初めて書き込まれる新規
データと認識すると、MP9はCPU1から送られてき
たデータ名23をアドレステーブル21へ登録する処理
を開始する。
When the MP9 recognizes the write request command and further recognizes that the data to be written is new data to be written for the first time, the MP9 starts the process of registering the data name 23 sent from the CPU 1 in the address table 21.

【0056】具体的には、以下のようにする。まず、ア
ドレステーブル21において、データ名23が登録され
ていないドライブ内アドレス26にはデータが登録され
ていない。そこで、MP9は、新規データを書き込む場
合、アドレステーブル21内で、当該論理グループ22
に対し、データ名23が登録されていないドライブ内ア
ドレス26を探し、見つけたら、そのドライブ内アドレ
ス26に対し、データ名23を登録する(ステップ5
6)。以上のように、アドレステーブル21において、
新規にデータを書き込む領域を認識し、アドレステーブ
ル21の当該項へデータ名22を登録することにより、
新規書き込みデータの登録を行う。
Specifically, the following is done. First, in the address table 21, no data is registered in the in-drive address 26 in which the data name 23 is not registered. Therefore, when writing new data, the MP 9 sets the logical group 22 in the address table 21.
On the other hand, if the address 26 in the drive in which the data name 23 is not registered is searched and found, the data name 23 is registered in the address 26 in the drive (step 5).
6). As described above, in the address table 21,
By recognizing a new data writing area and registering the data name 22 in the relevant section of the address table 21,
Register new write data.

【0057】本実施例において、パリティは、論理グル
ープ15を構成する各ドライブ14において図2に示す
ように作成され、Drive#5に格納される。MP9
は、CPU1が指定したアドレスからアドレステーブル
21を参照し、データおよびパリティを格納するドライ
ブ14のドライブ番号26とそのドライブ14内のドラ
イブ内アドレス26とを認識する(ステップ57)。
In this embodiment, the parity is created in each drive 14 forming the logical group 15 as shown in FIG. 2 and stored in Drive # 5. MP9
Refers to the address table 21 from the address designated by the CPU 1 and recognizes the drive number 26 of the drive 14 storing the data and parity and the drive address 26 in the drive 14 (step 57).

【0058】例えば、MP9が、Drive#1,#
2,#3,#4のドライブ内アドレス26がAddr1
1,Addr21,Addr31,Addr41の位置
に新規にData#1を書き込むと認識したとする。こ
のとき、MP9は、アドレステーブル21により、Dr
ive#5のドライブ内アドレス26がAddr51の
位置にパリティが格納されると認識している。
For example, the MP9 is the Drive # 1, #
In-drive address 26 of 2, # 3 and # 4 is Addr1
Assume that it is recognized that Data # 1 is newly written at the positions of 1, Addr21, Addr31, and Addr41. At this time, MP9 uses Dr.
The in-drive address 26 of ive # 5 recognizes that the parity is stored at the position of Addr 51.

【0059】このように、新規に書き込むデータとその
データのパリティを書き込むドライブ番号24とドライ
ブ内アドレス26を認識した後、MP9は、Drive
#1,#2,#3,#4,#5に対し新規に書き込むデ
ータとパリティの書き込み処理を開始する(ステップ5
8)。
In this way, after recognizing the drive number 24 and the in-drive address 26 for writing the newly written data and the parity of the data, the MP9 drives
Writing processing of newly writing data and parity to # 1, # 2, # 3, # 4, and # 5 is started (step 5).
8).

【0060】MP9は、Drive IF13に対し、
当該ドライブ14へ新規に書き込むデータと新パリティ
の書き込み要求を発行するように指示する(ステップ5
9)。Drive IF13では、SCSIの書き込み
処理手順に従って、当該ドライブ14に対し書き込みコ
マンドをドライブパス16を介して発行する。Driv
e IF13から書き込みコマンドを発行された当該ド
ライブ14においては、指示されたドライブ内アドレス
26へシーク、回転待ちのアクセス処理を行なう。
MP9 is a driver for Drive IF13.
The drive 14 is instructed to issue a new write data and new parity write request (step 5).
9). The Drive IF 13 issues a write command to the drive 14 via the drive path 16 according to the SCSI write processing procedure. Driv
In the drive 14 to which the write command has been issued from the eIF 13, the seek and rotation waiting access processing is performed to the designated in-drive address 26.

【0061】当該ドライブ14におけるアクセス処理が
完了した後、キャッシュアダプタ回路(C Adp)10
は、キャッシュメモリ8から新規に書き込むデータを読
み出す。このとき、MP9は、アドレステーブル21を
参照し、分割比を調べる(ステップ60)。図3では、
論理グループLG#1のDrive#1,#2,#3,
#4,#5において、分割比はDrive#1,#2,
#3,#5が2で、Drive#4が1である。分割比
を認識した後、MP9は、C Adp10にこの分割比
に従ってデータをキャッシュメモリ8から読み出すよう
に指示する(ステップ61)。この指示を受けたC A
dp10は、この分割比に従って当該データをキャッシ
ュメモリ8から読み出す。
After the access processing in the drive 14 is completed, the cache adapter circuit (C Adp) 10
Reads newly written data from the cache memory 8. At this time, the MP 9 refers to the address table 21 and checks the division ratio (step 60). In FIG.
Drive # 1, # 2, # 3 of logical group LG # 1
In # 4 and # 5, the division ratio is Drive # 1, # 2,
# 3 and # 5 are 2, and Drive # 4 is 1. After recognizing the division ratio, the MP 9 instructs the C Adp 10 to read the data from the cache memory 8 according to this division ratio (step 61). C A who received this instruction
The dp 10 reads the data from the cache memory 8 according to this division ratio.

【0062】この実施例では、図2に示したように、D
rive#1,#2,#3に割り当てるデータとしてキ
ャッシュメモリ8の当該データの先頭から2バイトづつ
取り出し、次にDrive#4に割り当てるデータとし
て1バイト取り出す。キャッシュメモリ8からC Ad
p10にデータを読み出すフローチャートを図6に示
す。
In this embodiment, as shown in FIG.
As data to be assigned to drives # 1, # 2, and # 3, 2 bytes are taken out from the beginning of the data in the cache memory 8, and then 1 byte is taken as data to be assigned to Drive # 4. From cache memory 8 to C Ad
FIG. 6 shows a flowchart for reading the data in p10.

【0063】図6において、C Adp10は、MP9
から読み出し指示を受けると(ステップ81)、C A
dp10内部の読み出し回数カウンタをリセット(ゼロ
クリア)する。次に、カウンタ値に1を加える(ステッ
プ82)。この1を加えたカウンタ値を4でわり、余り
が0であるか否かを判定する(ステップ83)。その余
りが0でなければ、キャッシュメモリ8から2バイト読
み出し(ステップ84)、ステップ86に進む。もし、
その余りが0である場合は、キャッシュメモリ8から1
バイト読み出し(ステップ85)、ステップ86に進
む。
In FIG. 6, C Adp10 is MP9
When receiving a read instruction from the computer (step 81), C A
The read counter in dp10 is reset (cleared to zero). Next, 1 is added to the counter value (step 82). The counter value obtained by adding 1 is divided by 4, and it is determined whether or not the remainder is 0 (step 83). If the remainder is not 0, 2 bytes are read from the cache memory 8 (step 84) and the process proceeds to step 86. if,
If the remainder is 0, the cache memory 8 to 1
Byte read (step 85), and the process proceeds to step 86.

【0064】このようにして読み出されたデータは、P
G11に転送され(ステップ86)、PG11内でパリ
ティを作成する。なお、PG11内におけるパリティの
作成方法については後に説明する。データをPG11に
転送した後に、読み出し回数カウンタの値をチェック
し、所定のデータ量のデータ転送が完了したかどうかを
判定する(ステップ87)。読み出し回数カウンタによ
る判定は、以下のように行う。
The data read in this way is P
It is transferred to G11 (step 86), and parity is created in PG11. The method of creating the parity in PG11 will be described later. After transferring the data to the PG 11, the value of the read number counter is checked to determine whether or not the data transfer of the predetermined data amount is completed (step 87). The determination by the read number counter is performed as follows.

【0065】図6から分かるように、読み出し回数カウ
ンタが4つカウントアップされたということは、キャッ
シュメモリ8から7バイトのデータを読み出したという
ことを示す。従って、CPU1からの1回の読み出しま
たは書き込み要求の単位が4KBなら、カウンタ値が2
288(=4KB÷7×4)になると、4KBのデータ
転送が完了したことになる。そこで、PG11への転送
が終了するたびに、ステップ87でC Adp10は読
み出し回数カウンタ値をチェックし、判定を行う。この
判定の結果、全データの読み出し完了でなければ次のバ
イトの読み出しにかかる。また、完了の場合は、キャッ
シュメモリ8からの読み出しを終了する。
As can be seen from FIG. 6, the fact that the read number counter is incremented by 4 means that 7-byte data has been read from the cache memory 8. Therefore, if the unit of one read or write request from the CPU 1 is 4 KB, the counter value is 2
When 288 (= 4 KB ÷ 7 × 4) is reached, 4 KB data transfer is completed. Therefore, each time the transfer to the PG 11 is completed, the C Adp 10 checks the read number counter value in step 87 and makes a determination. If the result of this determination is that the reading of all data has not been completed, the next byte is read. If completed, the reading from the cache memory 8 ends.

【0066】このように、論理グループ内の各ドライブ
14の分割比にしたがってデータを取り出す。これらの
取り出されたデータを分割データと呼ぶ。この例では、
分割データは1バイトか2バイトのどちらかである。具
体的には、Drive#1,#2,#3の各ドライブに
格納する分割データは2バイト、Drive#4に格納
する分割データは1バイトということになる。
In this way, data is taken out according to the division ratio of each drive 14 in the logical group. These extracted data are called divided data. In this example,
The divided data is either 1 byte or 2 bytes. Specifically, the divided data stored in each drive of Drive # 1, # 2, and # 3 is 2 bytes, and the divided data stored in Drive # 4 is 1 byte.

【0067】以上のようにしてキャッシュメモリ8から
C Adp10に読み出された新規書き込みデータは、
パリティ生成回路(PG)11に転送され、PG11に
おいてパリティを作成する。
The new write data read from the cache memory 8 to C Adp 10 as described above is
It is transferred to the parity generation circuit (PG) 11 and the parity is created in PG 11.

【0068】パリティの作成は、図2に示すように行な
われる。すなわち、各ドライブ14に割り当てられた分
割データ(2バイトまたは1バイト)の中で、奇数バイ
ト目(すなわち、1バイト目)については、Drive
#1,#2,#3,#4の各ドライブ14に格納される
4個の分割データの対応するバイト(1バイト目)から
パリティが作成される。また、偶数バイト目(すなわ
ち、2バイト目)については、Drive#1,#2,
#3の各ドライブ14に格納される3個の分割データの
対応するバイト(2バイト目)からパリティが作成され
る。そこで、パリティの作成方法のフローチャートを図
7に示す。
The parity is created as shown in FIG. That is, among the divided data (2 bytes or 1 byte) assigned to each drive 14, the odd byte (that is, the 1st byte) is Drive
Parity is created from the corresponding bytes (first byte) of the four divided data stored in the drives 14 of # 1, # 2, # 3, and # 4. For even-numbered bytes (that is, the second byte), Drive # 1, # 2,
Parity is created from the corresponding bytes (second byte) of the three divided data stored in each drive 14 of # 3. Therefore, FIG. 7 shows a flowchart of a method of creating a parity.

【0069】図7において、C Adp10から転送さ
れてきた1バイトまたは2バイトのデータはPG11内
のレジスタ1,2,3,4に順次セットされる(ステッ
プ90)。PG11内のレジスタに転送データがセット
されるたびに、PG内カウンタの値をカウントアップす
る(ステップ91)。なお、PG内カウンタは、CAd
p10からのデータの転送を受ける前に0に初期化して
あるものとする。
In FIG. 7, the 1-byte or 2-byte data transferred from C Adp 10 is sequentially set in registers 1, 2, 3, and 4 in PG11 (step 90). Each time transfer data is set in the register in the PG 11, the value in the PG counter is incremented (step 91). The counter in the PG is CAd.
It shall be initialized to 0 before receiving the data transfer from p10.

【0070】次に、PG内カウンタの値を4でわり、そ
の剰余が0かどうかを判定する(ステップ92)。この
判定で、PG内カウンタの剰余が0でない場合は、引き
続きPG内レジスタ1,2,3,4へのデータ格納を行
なうべくステップ90に戻る(ステップ93)。剰余が
0の場合は、PG内レジスタ1,2,3,4へ7バイト
のデータがセットされたということであるから、ステッ
プ94に進む。
Next, the value of the PG counter is divided by 4, and it is determined whether the remainder is 0 (step 92). If the remainder of the in-PG counter is not 0 in this determination, the process returns to step 90 to continue storing data in the in-PG registers 1, 2, 3, and 4 (step 93). If the remainder is 0, it means that 7-byte data has been set in the registers 1, 2, 3 and 4 in the PG, so the routine proceeds to step 94.

【0071】図6で説明したとおり、C Adp10か
らのデータは、2バイト、2バイト、2バイト、1バイ
トの順に転送されてくる。従って、ステップ92からス
テップ94に進む時点では、PG11内のレジスタ1に
は始めの2バイト、レジスタ2には次の2バイト、レジ
スタ3にはさらに次の2バイト、レジスタ4には最後の
1バイトが、それぞれセットされていることになる。
As described with reference to FIG. 6, the data from C Adp 10 is transferred in the order of 2 bytes, 2 bytes, 2 bytes and 1 byte. Therefore, at the time of proceeding from step 92 to step 94, the first 2 bytes are stored in the register 1 in the PG 11, the next 2 bytes are stored in the register 2, the next 2 bytes are stored in the register 3, and the last 1 bytes are stored in the register 4. Each byte is set.

【0072】次に、レジスタ1,2,3,4から1バイ
トづつデータを読み出し(ステップ94)、この4バイ
トのデータからパリティを作成する(ステップ95)。
レジスタ1,2,3には2バイトのデータがセットされ
ているが、ステップ94で読み出す1バイトは、それぞ
れ2バイトの内の第1バイト目のデータである。次に、
レジスタ1,2,3から1バイトづつデータを読み出し
(ステップ96)、この3バイトのデータからパリティ
を作成する(ステップ97)。レジスタ1,2,3には
2バイトのデータがセットされているが、ステップ94
で読み出す1バイトは、それぞれ2バイトの内の第2バ
イト目のデータである。このようにして作成されたパリ
ティは、パリティの作成に関与したデータと共にセレク
タ12に転送される(ステップ98)。最後に、PG内
レジスタ1,2,3,4をリセットする(ステップ10
1)。
Next, the data is read from the registers 1, 2, 3, 4 byte by byte (step 94), and the parity is created from the 4-byte data (step 95).
Although 2 bytes of data are set in the registers 1, 2 and 3, the 1 byte read in step 94 is the first byte data of the 2 bytes. next,
Data is read byte by byte from the registers 1, 2, and 3 (step 96), and a parity is created from the 3-byte data (step 97). Two bytes of data are set in the registers 1, 2 and 3, but step 94
The 1 byte read in is the data of the second byte of the 2 bytes. The parity thus created is transferred to the selector 12 together with the data involved in creating the parity (step 98). Finally, the PG registers 1, 2, 3, 4 are reset (step 10
1).

【0073】セレクタ12では、転送されてきたこれら
の分割データ及びパリティを、対応する当該ドライブ1
4に接続されたDrive IF13へ転送する。Dr
ive IF13は、セレクタ12を介してMP9に接
続されている。DriveIF13では、MP9の指示
で転送されてきた新規に書き込む分割データとパリティ
をドライブパス16を介して当該ドライブ14に転送
し、当該ドライブ14の当該ドライブ内アドレス26の
位置に書き込む。このとき、C Adp10は、当該ド
ライブ14に新規に書き込む分割データまたは新パリテ
ィを格納したことをMP9に報告する。
In the selector 12, the transferred divided data and parity are transferred to the corresponding drive 1 concerned.
4 is transferred to the Drive IF 13 connected to No. 4. Dr
The ive IF 13 is connected to the MP 9 via the selector 12. The DriveIF 13 transfers the newly written divided data and parity transferred by the instruction of the MP9 to the drive 14 via the drive path 16 and writes the parity to the position of the drive internal address 26 of the drive 14. At this time, the C Adp 10 reports to the MP 9 that the divided data or new parity to be newly written is stored in the drive 14.

【0074】なお、本実施例ではパリティ数は1種類と
したが、このパリティ数を一種類以上としても問題はな
い。
In this embodiment, the number of parity is one, but there is no problem if the number of parity is one or more.

【0075】(書き込み処理)次に、すでにドライブ1
4内に書き込まれているデータを新しいデータに書き換
える更新の場合について説明する。
(Write processing) Next, the drive 1 has already been written.
The case of updating in which the data written in 4 is rewritten with new data will be described.

【0076】更新する新データは、新規データの書き込
みの時の新規書き込みデータと同様に、CPU1からキ
ャッシュメモリ8に格納される。MP9は、CPU1が
指定した論理グループ番号22とデータ名23からアド
レステーブル21を参照し、データおよびパリティが格
納されているドライブ14のドライブ番号24とドライ
ブ内アドレス26と分割比25を認識する。
The new data to be updated is stored in the cache memory 8 from the CPU 1 like the new write data at the time of writing the new data. The MP 9 refers to the address table 21 from the logical group number 22 and the data name 23 designated by the CPU 1 and recognizes the drive number 24, the in-drive address 26, and the division ratio 25 of the drive 14 in which data and parity are stored.

【0077】例えば、図3において、CPU1からDa
ta#1に対し、更新する書き込み要求が発行されたと
する。MP9は、アドレステーブル21により、Dri
ve#1,#2,#3,#4のドライブ内アドレス26
がAddr11,Addr21,Addr31,Add
r41の位置にデータを格納し、Drive#5のドラ
イブ内アドレス26がAddr51の位置にパリティを
格納すべきことを認識する。また、分割比は、Driv
e#1,#2,#3,#5は2で、Drive#4は1
である。
For example, referring to FIG.
It is assumed that a write request for updating is issued to ta # 1. The MP9 uses the address table 21 to drive Dri.
ve # 1, # 2, # 3, # 4 drive address 26
Is Addr11, Addr21, Addr31, Add
The data is stored in the position of r41, and the drive address 26 of Drive # 5 recognizes that the parity should be stored in the position of Addr51. Also, the division ratio is
e # 1, # 2, # 3, # 5 is 2, and Drive # 4 is 1
Is.

【0078】このようにMP9による更新先のドライブ
番号24とドライブ内アドレス26と分割比の認識が完
了したら、先に説明した新規書き込み時と同様にC A
dp10で新データを分割比にしたがって分割して分割
データを作成し、これらの分割データから新パリティを
作成し、新データおよび新パリティを当該ドライブ14
の当該ドライブ内アドレス26に格納する。
When the recognition of the update destination drive number 24, the in-drive address 26, and the division ratio by the MP9 is completed in this way, C A is performed in the same manner as the above-described new writing.
The new data is divided according to the division ratio at dp10 to create divided data, new parity is created from these divided data, and the new data and new parity are set to the drive 14 concerned.
It is stored in the address 26 in the drive.

【0079】(読み出し処理)次に、すでにドライブ1
4内に書き込まれているデータを読み出す場合について
説明する。図8は、MP9が読み出し処理する場合の処
理フローチャートを示す。図8を用いて、読み出し処理
方法について説明する。
(Reading process) Next, the drive 1 has already been read.
The case of reading the data written in 4 will be described. FIG. 8 shows a processing flowchart when the MP 9 performs the reading processing. The read processing method will be described with reference to FIG.

【0080】MP9は、CPU1が指定した論理グルー
プ番号22とデータ名23からアドレステーブル21を
参照し、読み出したいデータが格納されているドライブ
番号24とそのドライブ内アドレス26を認識する(ス
テップ71)。
The MP9 refers to the address table 21 from the logical group number 22 and the data name 23 designated by the CPU 1 and recognizes the drive number 24 in which the data to be read is stored and the in-drive address 26 thereof (step 71). .

【0081】次に、MP9は、アドレステーブル21の
キャッシュアドレス27を調べ、キャッシュメモリ8内
に読み出したいデータが存在するかどうか判定する(ス
テップ72)。キャッシュアドレス27にアドレスが登
録されており、キャッシュメモリ8内に読み出したいデ
ータが格納されている場合(キャッシュヒット)は、M
P9がキャッシュメモリ8から当該データを読み出す制
御を開始し、キャッシュメモリ8内に無い場合(キャッ
シュミス)は当該ドライブ14へその内部の当該データ
を読み出す制御を開始する。
Next, the MP 9 checks the cache address 27 of the address table 21 and determines whether or not the data to be read exists in the cache memory 8 (step 72). If the address is registered in the cache address 27 and the data to be read is stored in the cache memory 8 (cache hit), M
P9 starts the control of reading the data from the cache memory 8, and if it is not in the cache memory 8 (cache miss), it starts the control of reading the data in the drive 14 concerned.

【0082】キャッシュヒット時の処理について説明す
る。MP9は、アドレステーブル21によりCPU1か
ら指定してきた論理グループ番号22とデータ名23
を、当該データが格納されているキャッシュメモリ8内
のキャッシュアドレス27に変換し(ステップ73)、
キャッシュメモリ8へ当該データを読み出しに行く。具
体的には、MP9の指示の元で、キャッシュアダプタ回
路(C Adp)7によりキャッシュメモリ8から当該
データは読み出される(ステップ74)。
The processing at the time of a cache hit will be described. The MP9 uses the address table 21 to specify the logical group number 22 and the data name 23 specified by the CPU 1.
To the cache address 27 in the cache memory 8 in which the data is stored (step 73),
The data is read out to the cache memory 8. Specifically, the data is read from the cache memory 8 by the cache adapter circuit (C Adp) 7 under the instruction of MP9 (step 74).

【0083】C Adp7により読み出されたデータ
は、データ制御回路(DCC)6の制御によりチャネル
インターフェース回路(CH IF)5に転送される。
CHIF5では、CPU1におけるチャネルインターフ
ェースのプロトコルに変換し、チャネルインターフェー
スに対応する速度に速度調整する。CH IF5におけ
るプロトコル変換および速度調整後は、IF Adp4
によりCPU1へデータ転送を行なう(ステップ7
5)。
The data read by the C Adp 7 is transferred to the channel interface circuit (CH IF) 5 under the control of the data control circuit (DCC) 6.
The CHIF 5 converts the protocol into a channel interface protocol in the CPU 1 and adjusts the speed to a speed corresponding to the channel interface. After the protocol conversion and speed adjustment in CH IF5, IF Adp4
To transfer data to the CPU 1 (step 7).
5).

【0084】一方、ステップ72でキャッシュミスと判
定された場合、MP9は、キャッシュヒット時と同様
に、アドレステーブル21により、CPU1が指定した
論理グループ番号22とデータ名23からドライブ番号
24とそのドライブ内の物理的なアドレスであるドライ
ブ内アドレス26を認識する(ステップ76)。MP9
は、この認識したアドレスに対し、各当該Drive
IF13に、当該ドライブ14への読み出し要求を発行
するように指示する(ステップ77)。各Drive
IF13では、SCSIの読み出し処理手順に従って、
読み出しコマンドを発行する。
On the other hand, if it is determined in step 72 that a cache miss has occurred, the MP 9 uses the address table 21 to determine the logical group number 22 and data name 23 designated by the CPU 1 from the drive number 24 and its drive, as in the case of a cache hit. The in-drive address 26 which is the physical address of the drive is recognized (step 76). MP9
For each recognized Drive
The IF 13 is instructed to issue a read request to the drive 14 (step 77). Each Drive
In IF13, according to the SCSI read processing procedure,
Issue a read command.

【0085】Drive IF13から読み出しコマン
ドを発行された当該ドライブ14においては、指示され
たドライブ内アドレス26へシーク、回転待ちのアクセ
ス処理を行なう。当該ドライブ14におけるアクセス処
理が完了した後、当該ドライブ14は当該分割データを
読み出しDrive IF13へ転送する。Drive
IF13では転送されてきた分割データをC Adp
10に転送し、C Adp10ではキャッシュメモリ8
にデータを格納する(ステップ78)。
In the drive 14 to which the read command has been issued from the Drive IF 13, the seek / rotation wait access process is performed to the designated in-drive address 26. After the access processing in the drive 14 is completed, the drive 14 reads the divided data and transfers it to the Drive IF 13. Drive
The IF 13 transfers the transferred divided data to C Adp.
10 and the cache memory is 8 in C Adp10.
The data is stored in (step 78).

【0086】C Adp10からキャッシュメモリ8に
分割データを書き込む方法は、新規データの書き込みで
データを分割して分割データを作成する方法の逆を行な
えばよい。すなわち、分割データを結合してデータを作
成してキャッシュメモリ8に書き込む。以下にその方法
を示す。
The method of writing the divided data from the C Adp 10 to the cache memory 8 may be the reverse of the method of dividing the data by writing new data to create the divided data. That is, the divided data is combined to create the data, which is written in the cache memory 8. The method is shown below.

【0087】まず、C Adp10は、キャッシュメモ
リ8にデータを格納することを、MP9に報告し、この
報告を受け取ったMP9は、アドレステーブル21を参
照し、分割比を調べる(ステップ79)。図3では、論
理グループLG#1のDrive#1,#2,#3,#
4,#5において、分割比はDrive#1,#2,#
3,#5が2で、Drive#4が1である。MP9
は、分割比を認識した後、C Adp10にこの分割比
に従って分割データを結合しデータを作成するように指
示する(ステップ80)。この指示を受けたC Adp
10は、Drive IF13から送られてきた分割デ
ータを、この分割比に従って結合する。そこで、C A
dp10が分割データを結合する処理を示すフローチャ
ートを図9に示す。
First, the C Adp 10 reports to the MP 9 that data is stored in the cache memory 8, and the MP 9 which receives this report refers to the address table 21 to check the division ratio (step 79). In FIG. 3, Drive # 1, # 2, # 3, # of logical group LG # 1
In # 4 and # 5, the division ratio is Drive # 1, # 2, #
3, # 5 is 2, and Drive # 4 is 1. MP9
After recognizing the division ratio, instructs C Adp10 to combine the division data according to the division ratio to create data (step 80). C Adp that received this instruction
10 combines the divided data sent from the Drive IF 13 according to this division ratio. So C A
FIG. 9 is a flowchart showing the processing in which dp10 combines the divided data.

【0088】図9において、MP9から分割データの結
合指示を受けとったC Adp10(ステップ102)
は、Drive#1から読み出したデータから2バイト
をCAdp10内のレジスタ1に、Drive#2から
読み出したデータから2バイトをレジスタ2に、Dri
ve#3から読み出したデータから2バイトをレジスタ
3に、Drive#4から読み出したデータから1バイ
トをレジスタ4に、それぞれセットする(ステップ10
3)。
In FIG. 9, C Adp10 which has received a division data combination instruction from MP9 (step 102).
2 bytes from the data read from Drive # 1 to register 1 in CAdp10, 2 bytes from the data read from Drive # 2 to register 2, and
Two bytes from the data read from ve # 3 are set in the register 3, and one byte from the data read from the Drive # 4 are set in the register 4 (step 10).
3).

【0089】次に、C Adp10では、レジスタ1、
2、3から2バイトづつデータを読み出し(ステップ1
04)、レジスタ4からは1バイトのデータを読み出す
(ステップ105)。このように読み出されたレジスタ
1、2、3、4のデータは、この順にC Adp10内
で結合される(ステップ106)。そして、図2の分割
前のデータのようにして、キャッシュメモリ8に転送さ
れる(ステップ107)。結合したデータのキャッシュ
メモリ8への転送が完了したら、レジスタ1、2、3、
4をリセットする(ステップ108)。
Next, in C Adp10, register 1,
Reads data from 2 and 3 by 2 bytes (Step 1
04), 1-byte data is read from the register 4 (step 105). The data of the registers 1, 2, 3, and 4 thus read are combined in the C Adp 10 in this order (step 106). Then, it is transferred to the cache memory 8 like the data before division in FIG. 2 (step 107). When the transfer of the combined data to the cache memory 8 is completed, the registers 1, 2, 3,
4 is reset (step 108).

【0090】次に、図6で示したキャッシュメモリ8か
らデータを読み出すときのフローと同様に、読み出し回
数カウンタの値を調べ、全データの読み出しが完了した
かを調べる(ステップ109)。完了していない場合
は、ステップ103に戻り、次のデータをレジスタ1、
2、3、4にセットする。また、完了の場合は処理を終
了する。
Next, as in the flow of reading data from the cache memory 8 shown in FIG. 6, the value of the read counter is checked to see if all data has been read (step 109). If not completed, the process returns to step 103, and the next data is transferred to the register 1,
Set to 2, 3, 4. If completed, the process ends.

【0091】次に、論理グループ内の任意のドライブ1
4に障害が発生し、分割データの一つが読み出せない場
合は以下のように処理する。
Next, an arbitrary drive 1 in the logical group
When a failure occurs in No. 4 and one of the divided data cannot be read, the following processing is performed.

【0092】まず、Drive IF13からセレクタ
12を介して、C Adp10に転送された分割データ
とパリティはパリティ生成回路(PG)11に転送さ
れ、PG11において、図2に示したように障害が発生
したドライブ14内に格納されている分割データを復元
する。分割データの復元は、新規にデータを書き込む場
合でのパリティの作成方法と同様に、現存する分割デー
タとパリティの排他的論理和を行うことで可能である。
例えば、Drive#1に障害が発生したとする。この
ときの障害回復処理のフローチャートを図10に示す。
First, the divided data and parity transferred from the Drive IF 13 to the C Adp 10 via the selector 12 are transferred to the parity generation circuit (PG) 11, and a failure occurs in the PG 11 as shown in FIG. The divided data stored in the drive 14 is restored. The division data can be restored by performing an exclusive OR of the existing division data and the parity, as in the method of creating the parity when writing new data.
For example, assume that Drive # 1 has failed. FIG. 10 shows a flowchart of the failure recovery processing at this time.

【0093】図10において、PG11は、MP9から
回復指示を受けた(ステップ110)後、Drive#
2,#3,#4,#5から読み出したデータをそれぞれ
レジスタ2、3、4、5にセットする(ステップ11
1)。セットされるデータは、レジスタ2、3、5が2
バイト、レジスタ4が1バイトとなる。
In FIG. 10, the PG 11 receives the recovery instruction from the MP 9 (step 110), and then the Drive #
The data read from Nos. 2, # 3, # 4, and # 5 are set in registers 2, 3, 4, and 5, respectively (step 11).
1). The data to be set is 2 in registers 2, 3, and 5.
Byte, register 4 becomes 1 byte.

【0094】次に、レジスタ2,3,4,5から1バイ
トづつ読み出し(ステップ112)、読み出したデータ
で排他的論理和を求めて、Drive#1に格納されて
いたデータを回復する(ステップ113)。ステップ1
12でレジスタ2,3,5から読み出す1バイトは、2
バイトの内の第1バイト目のデータである。次に、レジ
スタ2,3,5から1バイトづつ読み出し(ステップ1
14)、読み出したデータで排他的論理和を求めて、D
rive#1に格納されていたデータを回復する(ステ
ップ115)。ステップ114でレジスタ2,3,5か
ら読み出す1バイトは、2バイトの内の第2バイト目の
データである。
Next, each byte is read from the registers 2, 3, 4, and 5 (step 112), an exclusive OR is obtained from the read data, and the data stored in Drive # 1 is restored (step). 113). Step 1
1 byte read from registers 2, 3 and 5 at 12 is 2
It is the data of the first byte of the bytes. Next, read byte by byte from registers 2, 3, and 5 (step 1
14), obtain an exclusive OR with the read data, and
The data stored in the live # 1 is recovered (step 115). The 1 byte read from the registers 2, 3 and 5 in step 114 is the second byte data of the 2 bytes.

【0095】次に、回復したDrive#1に格納され
ていたデータと、このデータの回復に関与したデータ
(レジスタ2,3,4,5のデータ)とを結合し(ステ
ップ116)、結合したデータをキャッシュメモリ8に
転送する(ステップ117)。キャッシュメモリ8への
転送が完了したら、各レジスタをリセットする(ステッ
プ118)。
Next, the data stored in the recovered Drive # 1 and the data (data of registers 2, 3, 4, 5) involved in the recovery of this data are combined (step 116) and combined. The data is transferred to the cache memory 8 (step 117). When the transfer to the cache memory 8 is completed, each register is reset (step 118).

【0096】次に、図6および図9と同様のアルゴリズ
ムにより、全データの回復が完了したかを調べ(ステッ
プ119)、完了していない場合はステップ111に戻
ってデータの回復を続ける。Drive#1の全データ
の回復が完了したら、処理を終了する。
Next, by the same algorithm as in FIGS. 6 and 9, it is checked whether the recovery of all data is completed (step 119). If not completed, the process returns to step 111 to continue the recovery of data. When the recovery of all the data in Drive # 1 is completed, the processing ends.

【0097】このとき、C Adp10は、キャッシュ
メモリ8にデータを格納したことをMP9に報告し、M
P9は、この報告を元にアドレステーブル21のCPU
1が読み出し要求を発行した論理グループ番号22とデ
ータ名23のキャッシュアドレス27にデータを格納し
たキャッシュメモリ8内のアドレスを登録する。以降は
キャッシュヒット時と同様な手順でCPU1へ当該デー
タを転送する。
At this time, C Adp10 reports to MP9 that the data has been stored in the cache memory 8 and M
P9 is the CPU of the address table 21 based on this report.
1 registers the address in the cache memory 8 storing the data in the cache address 27 of the logical group number 22 and the data name 23 which issued the read request. After that, the data is transferred to the CPU 1 in the same procedure as the cache hit.

【0098】図11は、本実施例のディスクアレイ装置
における転送時間と容量を説明するための図である。ま
た、図12は、従来のように論理グループ内の各ドライ
ブ14に等容量に分割格納された分割データを読み出し
または書き込む際のデータ転送時間を説明するための図
である。
FIG. 11 is a diagram for explaining the transfer time and capacity in the disk array device of this embodiment. Further, FIG. 12 is a diagram for explaining a data transfer time when reading or writing divided data divided and stored with equal capacity in each drive 14 in a logical group as in the related art.

【0099】図12から分かるように、分割データを等
容量とした場合、転送時間は最も転送速度の遅いドライ
ブ14(ここではDrive#4)の転送速度で決ま
る。
As can be seen from FIG. 12, when the divided data has the same capacity, the transfer time is determined by the transfer speed of the drive 14 (Drive # 4 in this case) having the slowest transfer speed.

【0100】一方、図11(a)に示すように、論理グ
ループ内の各ドライブ14に、各ドライブ14の転送速
度比に応じた容量で分割データを分割格納した場合、読
み出しまたは書き込む際のデータ転送時間は、平均化さ
れ、処理性能が向上する。
On the other hand, as shown in FIG. 11A, when divided data is divided and stored in each drive 14 in the logical group with a capacity corresponding to the transfer speed ratio of each drive 14, the data to be read or written The transfer time is averaged and the processing performance is improved.

【0101】なお、このように転送速度比に応じて各ド
ライブに格納する分割データの容量を変えるようにした
場合、図11(b)のように、論理グループを構成する
ドライブ間で、格納されるデータの容量が異なることに
なる。本実施例で説明した例では、この図に示すよう
に、Drive#4の転送速度はDrive#1,#
2,#3,#5の転送速度の1/2のため、分割比は
1:2となり、Drive#4に格納されるデータ容量
はDrive#1,#2,#3,#5の1/2になって
いる。したがって、Drive#1,#2,#3,#
4,#5の容量が等しい場合、Drive#4には他の
ドライブの1/2の容量しかデータは格納されないこと
になる。
When the capacity of the divided data to be stored in each drive is changed according to the transfer speed ratio in this way, as shown in FIG. 11B, the data is stored between the drives forming the logical group. The amount of data that will be stored will differ. In the example described in the present embodiment, as shown in this figure, the transfer speed of Drive # 4 is Drive # 1, #
Since the transfer rate of 2, # 3, # 5 is 1/2, the division ratio is 1: 2, and the data capacity stored in Drive # 4 is 1 / of Drive # 1, # 2, # 3, # 5. It is 2. Therefore, Drive # 1, # 2, # 3, #
If the capacities of 4 and # 5 are the same, the drive # 4 stores only half the capacity of the other drives.

【0102】そこで、図13に示すように、2つの論理
グループでDrive#4のドライブ14を共有するよ
うにするとよい。図3に示したアドレステーブル21で
は、論理グループLG#1とLG#2とが設定されてい
るが、これらの論理グループはDrive#4を共有し
ている。すなわち、論理グループLG#1はDrive
#1,#2,#3,#4,#5で構成され、論理グルー
プLG#2はDrive#6,#7,#8,#4,#9
で構成されている
Therefore, as shown in FIG. 13, it is advisable to share the drive 14 of Drive # 4 with two logical groups. In the address table 21 shown in FIG. 3, logical groups LG # 1 and LG # 2 are set, but these logical groups share Drive # 4. That is, the logical group LG # 1 is Drive
The logical group LG # 2 is composed of # 1, # 2, # 3, # 4, and # 5, and the drive group Drive # 6, # 7, # 8, # 4, and # 9.
Consists of

【0103】このように、転送速度が遅く分割比が低い
ドライブを複数の論理グループで共有するようにすれ
ば、そのようなドライブを効率的に使用することがで
き、便宜である。
In this way, if a drive having a low transfer rate and a low division ratio is shared by a plurality of logical groups, such a drive can be used efficiently, which is convenient.

【0104】[実施例2]本実施例では、図14に示す
ように転送速度の速いドライブが1台混在した場合を示
す。本実施例において、RAIDのレベル3の制御を行
うディスクアレイコントローラ(以下ADC)2の構成
は、実施例1と同様に図1に示すようになっているもの
とする。以下の説明では実施例1と異なる部分のみ詳し
く説明する。
[Embodiment 2] In this embodiment, as shown in FIG. 14, one drive having a high transfer speed is mixed. In this embodiment, it is assumed that the configuration of the disk array controller (hereinafter referred to as ADC) 2 that controls the RAID level 3 is as shown in FIG. In the following description, only the part different from the first embodiment will be described in detail.

【0105】(初期設定法、アドレス変換法)本実施例
では、図1に示すように5台のドライブ14により論理
グループ15を構成する。本実施例では、図14および
図15に示すように、Drive#1,#2から1バイ
トずつ、Drive#3から2バイトの計4バイトか
ら、2種類のエラー訂正コードECC(Error Correctio
n Codes)が作成され、これらの2種類のECCは別のド
ライブ14に格納される。具体的には、図14および図
15において、Drive#1のデータ1とDrive
#2のデータ2とDrive#3のデータ3とを用いて
ECC1を作成し、Drive#1のデータ1とDri
ve#2のデータ2とDrive#3のデータ4とを用
いてECC1’を作成する。ECC1はDrive#4
に格納し、ECC1’はDrive#5に格納する。
(Initial setting method, address conversion method) In this embodiment, as shown in FIG. 1, five drives 14 form a logical group 15. In the present embodiment, as shown in FIG. 14 and FIG. 15, two types of error correction codes ECC (Error Correctio) are used, one byte each from Drive # 1 and # 2, and two bytes from Drive # 3.
n Codes) are created, and these two types of ECC are stored in another drive 14. Specifically, in FIG. 14 and FIG. 15, the data 1 of the Drive # 1 and the Drive #
An ECC 1 is created using the data 2 of # 2 and the data 3 of Drive # 3, and the data 1 and the Drive 1 of Drive # 1 are created.
An ECC 1'is created using the data 2 of ve # 2 and the data 4 of Drive # 3. ECC1 is Drive # 4
, And ECC1 ′ is stored in Drive # 5.

【0106】図16は、本実施例のアドレステーブル2
1である。図16のアドレステーブル21は、図3の実
施例1のアドレステーブル21と各ドライブ14の分割
比が異なっているのみで、機能および使用方法は実施例
1と同じである。本実施例における初期設定およびアド
レス変換法は、実施例1と同様である。
FIG. 16 shows the address table 2 of this embodiment.
It is 1. The address table 21 of FIG. 16 is the same as the first embodiment in FIG. 3 except that the division ratio of each drive 14 is different from the address table 21 of the first embodiment. The initial setting and the address conversion method in this embodiment are the same as those in the first embodiment.

【0107】(新規書き込み処理)新規データを書き込
む場合は、実施例1と同様に、新規データをキャッシュ
メモリ8に書き込み、アドレステーブル21のデータ名
23の空き領域にデータ名を登録する。MP9は、キャ
ッシュメモリ8への新規データの書き込みを確認する
と、Drive IF13に対し、当該ドライブ14へ
新規に書き込むデータと新パリティの書き込み要求を発
行するように指示する。
(New Writing Processing) When writing new data, as in the first embodiment, the new data is written in the cache memory 8 and the data name is registered in the empty area of the data name 23 of the address table 21. When confirming the writing of the new data to the cache memory 8, the MP 9 instructs the Drive IF 13 to issue the write request of the new writing data and the new parity to the drive 14.

【0108】Drive IF13では、SCSIの書
き込み処理手順に従って、当該ドライブ14に対し書き
込みコマンドをドライブパス16を介して発行する。D
rive IF13から書き込みコマンドを発行された
当該ドライブ14においては、指示されたドライブ内ア
ドレス26へシーク、回転待ちのアクセス処理を行な
う。
The Drive IF 13 issues a write command to the drive 14 via the drive path 16 in accordance with the SCSI write processing procedure. D
The drive 14 to which the write command has been issued from the drive IF 13 performs access processing for seek and rotation waiting for the designated in-drive address 26.

【0109】当該ドライブ14におけるアクセス処理が
完了した後、キャッシュアダプタ回路(C Adp)10
は、キャッシュメモリ8から新規書き込みデータを読み
出す。このとき、MP9は、アドレステーブル21を参
照し分割比を調べる。
After the access processing in the drive 14 is completed, the cache adapter circuit (C Adp) 10
Reads new write data from the cache memory 8. At this time, the MP 9 refers to the address table 21 to check the division ratio.

【0110】図16では、論理グループLG#1のDr
ive#1,#2,#3,#4,#5において、Dri
ve#1,#2,#4,#5の転送速度は3MB/sで
あり、Drive#3の転送速度は6MB/sである。
従って、転送速度比は1:2となり、分割比はDriv
e#1,#2,#4,#5は1で、Drive#3は2
である。MP9は、各ドライブの分割比を認識した後、
C Adp10にこの分割比に従ってデータをキャッシ
ュメモリ8から読み出すように指示する。この指示を受
けたC Adp10は、この分割比に従って当該データ
をキャッシュメモリ8から読み出す。C Adp10に
よるキャッシュメモリ8からの読み出し処理のフローチ
ャートを図17に示す。
In FIG. 16, Dr of the logical group LG # 1
In ive # 1, # 2, # 3, # 4, # 5, Dri
The transfer rate of ve # 1, # 2, # 4, # 5 is 3 MB / s, and the transfer rate of Drive # 3 is 6 MB / s.
Therefore, the transfer speed ratio is 1: 2, and the division ratio is Drive
e # 1, # 2, # 4, # 5 is 1 and Drive # 3 is 2
Is. After recognizing the split ratio of each drive, MP9
The C Adp 10 is instructed to read the data from the cache memory 8 according to this division ratio. Upon receiving this instruction, the C Adp 10 reads the data from the cache memory 8 according to this division ratio. FIG. 17 shows a flowchart of a read process from the cache memory 8 by the C Adp 10.

【0111】図17において、C Adp10は、MP
9から読み出し指示を受けると(ステップ130)、C
Adp10内部の読み出し回数カウンタをリセット
し、カウンタ値に1を加える(ステップ131)。次
に、このカウンタ値を3でわり、余りが0か否かを判定
する(ステップ132)。余りが0でなければ、キャッ
シュメモリ8から1バイト読み出す(ステップ13
4)。余りが0の場合は、キャッシュメモリ8から2バ
イト読み出す(ステップ133)。
In FIG. 17, C Adp10 is MP
When a read instruction is received from 9 (step 130), C
The read number counter in Adp10 is reset and 1 is added to the counter value (step 131). Next, this counter value is divided by 3, and it is determined whether the remainder is 0 (step 132). If the remainder is not 0, 1 byte is read from the cache memory 8 (step 13).
4). If the remainder is 0, 2 bytes are read from the cache memory 8 (step 133).

【0112】このようにして読み出されたデータは、P
G11に転送され(ステップ135)、PG11内でパ
リティを作成する。結果として、PG11へのデータの
転送は、1バイト、1バイト、2バイト、の順に繰返し
行なわれる。データをPG11に転送した後に、読み出
し回数カウンタの値をチェックし、所定のデータ量のデ
ータ転送が完了したかどうかを判定する(ステップ13
6)。読み出し回数カウンタによる判定は実施例1と同
様である。
The data read in this way is P
It is transferred to G11 (step 135), and parity is created in PG11. As a result, the data transfer to PG11 is repeated in the order of 1 byte, 1 byte, 2 bytes. After transferring the data to the PG 11, the value of the read number counter is checked to determine whether or not the data transfer of the predetermined amount of data is completed (step 13).
6). The determination by the read number counter is the same as that in the first embodiment.

【0113】このように、キャッシュメモリ8からC
Adp10に読み出された新規書き込みデータは、パリ
ティ生成回路(PG)11に転送され、PG11におい
てECCを作成する。
Thus, from the cache memory 8 to C
The new write data read to Adp10 is transferred to the parity generation circuit (PG) 11, and ECC is created in PG11.

【0114】ECCの作成は、図15に示すように各ド
ライブ14に割り当てられた分割データの中で、Dri
ve#1,#2に格納される分割データの対応する1バ
イトと、Drive#3に格納される分割データの対応
する2バイトから、2種類のECCを作成する。PG1
1における2種類のECCの作成方法のフローチャート
を、図18に示す。
The ECC is created by using the Dri in the divided data assigned to each drive 14 as shown in FIG.
Two types of ECC are created from 1 byte corresponding to the divided data stored in ve # 1 and # 2 and 2 bytes corresponding to the divided data stored in Drive # 3. PG1
18 shows a flowchart of a method of creating two types of ECC in No. 1 in FIG.

【0115】図18において、PG11に転送されてき
たデータ(1バイト、1バイト、2バイト、の順に繰返
し転送されてくる)は、以下のようにPG内レジスタに
セットされる。すなわち、PG内レジスタ1には始めの
1バイトがセットされ、PG内レジスタ2には次の1バ
イトがセットされ、PG内レジスタ3には次の2バイト
がセットされる(ステップ121)。
In FIG. 18, the data (repeatedly transferred in the order of 1 byte, 1 byte, 2 bytes) transferred to the PG 11 is set in the PG register as follows. That is, the first 1 byte is set in the PG register 1, the next 1 byte is set in the PG register 2, and the next 2 bytes are set in the PG register 3 (step 121).

【0116】次に、PG内レジスタ1にセットされた1
バイトのデータと、PG内レジスタ2にセットされた1
バイトデータと、PG内レジスタ3にセットされた2バ
イトのデータを、それぞれの当該レジスタから読み出す
(ステップ122)。そして、PG11内で、PG内レ
ジスタ1の1バイトのデータと、PG内レジスタ2の1
バイトのデータと、PG内レジスタ3の2バイトのデー
タの内の先頭の1バイトとからECC1を作成する(ス
テップ123)。また、PG11内で、PG内レジスタ
1の1バイトのデータと、PG内レジスタ2の1バイト
のデータと、PG内レジスタ3の2バイトのデータの内
の残りの1バイトとからECC1’を作成する(ステッ
プ124)。
Next, 1 set in the PG register 1
Byte data and 1 set in PG register 2
The byte data and the 2-byte data set in the PG register 3 are read from the respective registers (step 122). Then, in PG11, 1-byte data in PG register 1 and 1 in PG register 2
An ECC1 is created from the byte data and the first byte of the 2-byte data in the PG register 3 (step 123). Further, in PG11, ECC1 'is created from the 1-byte data of PG internal register 1, the 1-byte data of PG internal register 2, and the remaining 1-byte of the 2-byte data of PG internal register 3. (Step 124).

【0117】このようにして2種類のECC1、ECC
1’を作成した後、PG内レジスタ1の1バイトのデー
タと、PG内レジスタ2の1バイトのデータと、PG内
レジスタ3の2バイトのデータと、ECC1、ECC
1’とを、セレクタ12へ転送し(ステップ125)、
PG内レジスタ1、2、3をリセットする(ステップ1
26)。なお、本実施例のようにECCを作成する場
合、ECCはパリティでも構わない。
In this way, the two types of ECC1 and ECC are
After 1'is created, 1-byte data in the PG register 1, 1-byte data in the PG register 2, 2-byte data in the PG register 3, ECC1, ECC
1'and transferred to the selector 12 (step 125),
Reset registers 1, 2, and 3 in PG (step 1
26). When creating an ECC as in the present embodiment, the ECC may be parity.

【0118】このようにPG11からデータおよびEC
C1,ECC1’が転送されてきたセレクタ12では、
これらの分割データおよびECCを、それぞれ格納すべ
き当該ドライブ14に接続されたDrive IF13
へ転送する。Drive IF13は、セレクタ12を
介してMP9に接続されている。Drive IF13
では、MP9の指示で転送されてきた新規書き込み分割
データとECCをドライブパス16を介して当該ドライ
ブ14に転送し、当該ドライブ14の当該ドライブ内ア
ドレス26に書き込む。このとき、C Adp10は、
当該ドライブ14に新規に書き込む分割データまたは新
ECCを格納したことをMP9に報告する。
Thus, data and EC from PG11
In the selector 12 to which C1 and ECC1 'have been transferred,
Drive IF 13 connected to the drive 14 in which these divided data and ECC are to be respectively stored
Transfer to The Drive IF 13 is connected to the MP 9 via the selector 12. Drive IF13
Then, the new write division data and the ECC transferred by the instruction of MP9 are transferred to the drive 14 via the drive path 16 and written to the in-drive address 26 of the drive 14. At this time, C Adp10 is
The fact that the divided data or the new ECC to be newly written is stored in the drive 14 is reported to the MP9.

【0119】上記新規書き込み分割データとECCの各
ドライブへの書き込みは、Drive#1には1バイト
(PG内レジスタ1の1バイト)、Drive#2には
1バイト(PG内レジスタ2の1バイト)、Drive
#3には2バイト(PG内レジスタ3の2バイト)、D
rive#4には1バイト(ECC1の1バイト)、D
rive#5には1バイト(ECC1’の1バイト)、
というように行なわれる。すなわち、転送速度が他のド
ライブの2倍であるDrive#3のみ2バイトが書き
込まれ、他のドライブは1バイトが書き込まれるように
なっている。
The above-described new write division data and ECC write to each drive is 1 byte for Drive # 1 (1 byte of PG register 1) and 1 byte for Drive # 2 (1 byte of PG register 2). ), Drive
2 bytes in # 3 (2 bytes in PG register 3), D
1 byte for live # 4 (1 byte for ECC1), D
1 byte for live # 5 (1 byte for ECC1 '),
And so on. That is, 2 bytes are written only in Drive # 3, which has a transfer rate twice that of other drives, and 1 byte is written in the other drives.

【0120】(書き込み処理)次に、すでにドライブ1
4内に書き込まれているデータを新しいデータに書き換
える更新の場合について説明する。
(Write processing) Next, the drive 1 has already been written.
The case of updating in which the data written in 4 is rewritten with new data will be described.

【0121】更新する新データは、新規データの書き込
みの時と同様に、CPU1からキャッシュメモリ8に格
納される。MP9は、CPU1が指定した論理グループ
番号22とデータ名23からアドレステーブル21を参
照し、データおよびECCが格納されているドライブ1
4のドライブ番号24とドライブ内アドレス26と分割
比25を認識する。
The new data to be updated is stored in the cache memory 8 from the CPU 1 as in the case of writing the new data. The MP 9 refers to the address table 21 from the logical group number 22 and the data name 23 designated by the CPU 1, and drives 1 in which data and ECC are stored.
The drive number 24, the in-drive address 26, and the division ratio 25 of 4 are recognized.

【0122】例えば、図16において、CPU1からD
ata#1に対し、更新する書き込み要求が発行された
とする。MP9は、アドレステーブル21により、Dr
ive#1,#2,#3のドライブ内アドレス26がA
ddr11,Addr21,Addr31の位置に分割
データを格納し、Drive#4,#5のドライブ内ア
ドレス26がAddr41,Addr51の位置にEC
Cを格納すべきことを認識する。このようにMP9によ
る更新先のドライブ番号24とドライブ内アドレス26
の認識が完了したら、先に説明した新規書き込み時と同
様に、C Adp10で新データを分割比にしたがって
分割し、分割データを作成し、これらの分割データから
2種類の新ECCを作成し、新データおよび新ECCを
当該ドライブ14の当該ドライブ内アドレス26に格納
する。
For example, in FIG. 16, CPU1 to D
It is assumed that a write request for updating is issued to ata # 1. The MP9 uses Dr.
The in-drive address 26 of the ive # 1, # 2, # 3 is A
The divided data is stored in the positions of ddr11, Addr21, and Addr31, and the in-drive address 26 of Drive # 4 and # 5 is EC in the positions of Addr41 and Addr51.
Recognize that C should be stored. In this way, the drive number 24 and the in-drive address 26 of the update destination by MP9
When the recognition of is completed, the new data is divided by C Adp10 according to the division ratio, the divided data is created, and two kinds of new ECCs are created from these divided data, as in the case of the new writing described above. The new data and the new ECC are stored in the in-drive address 26 of the drive 14.

【0123】(読み出し処理)次に、すでにドライブ1
4内に書き込まれているデータを読み出す場合について
説明する。読み出し処理も、上記実施例1の図8で説明
した手順と同様である。
(Reading process) Next, the drive 1 has already been read.
The case of reading the data written in 4 will be described. The reading process is also similar to the procedure described in FIG. 8 of the first embodiment.

【0124】この読み出し処理の際、C Adp10か
らキャッシュメモリ8に分割データを書き込む方法は、
新規データの書き込みでデータを分割して分割データを
作成する方法の逆を行なえばよい。すなわち、分割デー
タを結合してデータを作成してキャッシュメモリ8に書
き込む。以下にその方法を示す。
At the time of this read processing, the method of writing the divided data from the C Adp 10 to the cache memory 8 is as follows.
The reverse of the method of dividing data by writing new data and creating divided data may be performed. That is, the divided data is combined to create the data, which is written in the cache memory 8. The method is shown below.

【0125】まず、C Adp10は、キャッシュメモ
リ8にデータを格納することを、MP9に報告し、この
報告を受け取ったMP9は、アドレステーブル21を参
照し、分割比を調べる。図16では、論理グループLG
#1のDrive#1,#2,#3,#4,#5におい
て、分割比はDrive#1,#2,#4,#5が1
で、Drive#3が2である。MP9は、分割比を認
識した後、C Adp10にこの分割比に従って分割デ
ータを結合しデータを作成するように指示する。この指
示を受けたC Adp10は、Drive IF13か
ら送られてきた分割データを、この分割比に従って結合
する。C Adp10が分割データを結合する処理を示
すフローチャートを図19に示す。
First, the C Adp 10 reports to the MP 9 that data is stored in the cache memory 8, and the MP 9 receiving this report refers to the address table 21 to check the division ratio. In FIG. 16, the logical group LG
In Drive # 1, # 2, # 3, # 4, and # 5 of # 1, the drive ratio of Drive # 1, # 2, # 4, and # 5 is 1.
Thus, Drive # 3 is 2. After recognizing the division ratio, the MP 9 instructs the C Adp 10 to combine the division data according to the division ratio to create the data. Upon receiving this instruction, the C Adp 10 combines the divided data sent from the Drive IF 13 according to this division ratio. FIG. 19 is a flowchart showing a process in which the C Adp 10 combines the divided data.

【0126】図19において、MP9から分割データの
結合指示を受けとったC Adp10(ステップ14
0)は、Drive#1から読み出したデータから1バ
イトをC Adp10内のレジスタ1に、Drive#
2から読み出したデータから1バイトをレジスタ2に、
Drive#3から読み出したデータから2バイトをレ
ジスタ3に、それぞれセットする(ステップ141)。
In FIG. 19, C Adp10 (step 14) which has received a division data combination instruction from MP9.
0) indicates that one byte from the data read from Drive # 1 is stored in register 1 in C Adp10, and Drive #
1 byte from the data read from 2 to register 2,
Two bytes are set in the register 3 from the data read from the Drive # 3 (step 141).

【0127】次に、C Adp10では、レジスタ1、
2から1バイトづつデータを読み出し(ステップ14
2)、レジスタ3からは2バイトのデータを読み出す
(ステップ143)。このように読み出されたレジスタ
1、2、3のデータは、この順にC Adp10内で結
合される(ステップ144)。そして、分割前のデータ
のようにして、キャッシュメモリ8に転送される(ステ
ップ145)。結合したデータのキャッシュメモリ8へ
の転送が完了したら、レジスタ1、2、3をリセットす
る(ステップ146)。
Next, in C Adp10, register 1,
Data is read byte by byte from 2 (step 14
2), 2 bytes of data are read from the register 3 (step 143). The data of the registers 1, 2, and 3 thus read are combined in this order in C Adp 10 (step 144). Then, it is transferred to the cache memory 8 like the data before the division (step 145). When the transfer of the combined data to the cache memory 8 is completed, the registers 1, 2, 3 are reset (step 146).

【0128】次に、実施例1と同様に、読み出し回数カ
ウンタの値を調べ、全データの読み出しが完了したかを
調べる(ステップ147)。完了していない場合は、ス
テップ141に戻って、次のデータをレジスタ1、2、
3にセットする。また、完了の場合は処理を終了する。
Next, as in the first embodiment, the value of the read counter is checked to see if all data has been read (step 147). If not completed, the process returns to step 141 to transfer the next data to the registers 1, 2,
Set to 3. If completed, the process ends.

【0129】次に、論理グループ内の任意のドライブ1
4に障害が発生し、分割データの一つが読みだせない場
合は以下のように処理する。
Next, an arbitrary drive 1 in the logical group
When a failure occurs in 4 and one of the divided data cannot be read, the following processing is performed.

【0130】まず、Drive IF13からセレクタ
12を介して、C Adp10に転送された分割データ
とECCはパリティ生成回路(PG)11に転送され、
PG11において、障害が発生したドライブ14内に格
納されている分割データを復元する。このときの障害回
復処理のフローチャートを図20に示す。なお、ここで
はDrive#1に障害が発生したものとして説明す
る。
First, the divided data and ECC transferred from the Drive IF 13 to the C Adp 10 via the selector 12 are transferred to the parity generation circuit (PG) 11.
In PG11, the divided data stored in the failed drive 14 is restored. FIG. 20 shows a flowchart of the failure recovery process at this time. Note that, here, it is assumed that the drive # 1 has a failure.

【0131】図20において、PG11は、MP9から
回復指示を受けた(ステップ150)後、障害を起こし
ていないDrive#2,#3,#4,#5から読み出
したデータをそれぞれレジスタ2、3、4、5にセット
する(ステップ151)。セットされるデータは、レジ
スタ2、4、5が1バイト、レジスタ3が2バイトとな
る。
In FIG. 20, the PG 11 receives the recovery instruction from the MP 9 (step 150), and then registers the data read from the drives # 2, # 3, # 4, and # 5 which are not in trouble with the registers 2, 3 respectively. Set to 4, 5 (step 151). The data to be set is 1 byte in the registers 2, 4 and 5 and 2 bytes in the register 3.

【0132】次に、レジスタ2,3,4,5から1バイ
トづつ読み出す(ステップ152)。このように読み出
されたデータを用いて排他的論理和を求めて、Driv
e#1に格納されていたデータを回復し、レジスタ1に
セットする(ステップ153)。さらに、この回復デー
タと、このデータの回復に関与したデータとを結合し
(ステップ153)、結合したデータをキャッシュメモ
リ8に転送する(ステップ155)。キャッシュメモリ
8への転送が完了したら、各レジスタをリセットする
(ステップ156)。
Next, each byte is read from the registers 2, 3, 4, and 5 (step 152). The exclusive OR is obtained using the data thus read, and the Driv
The data stored in e # 1 is recovered and set in register 1 (step 153). Further, the recovered data and the data involved in the recovery of the data are combined (step 153), and the combined data is transferred to the cache memory 8 (step 155). When the transfer to the cache memory 8 is completed, each register is reset (step 156).

【0133】次に、実施例1と同様のアルゴリズムによ
り、回復カウンタの値を調べ、全データの回復が完了し
たかを調べ(ステップ157)、完了していない場合は
ステップ151に戻ってデータの回復を続ける。Dri
ve#1の全データの回復が完了したら、処理を終了す
る。
Next, by the same algorithm as in the first embodiment, the value of the recovery counter is checked to see if the recovery of all data is completed (step 157). If not completed, the process returns to step 151 to recover the data. Continue recovery. Dri
When the recovery of all the data in ve # 1 is completed, the processing is ended.

【0134】なお、本実施例ではDrive#1,#
2,#3内のデータに対し、図14および図15に示す
ように2種類のECCが作成されている。従って、ステ
ップ152,153におけるデータの回復は、レジスタ
2の1バイト、レジスタ3の2バイトの内の第1バイト
目、およびレジスタ4の1バイト(ECC1)を用いて
行なってもよいし、レジスタ2の1バイト、レジスタ3
の2バイトの内の第2バイト目、およびレジスタ5の1
バイト(ECC1’)を用いて行なってもよい。また、
両方の方式とも用いるようにしてもよい。
In the present embodiment, Drive # 1, # is driven.
Two types of ECC are created for the data in 2 and # 3 as shown in FIGS. 14 and 15. Therefore, the data recovery in steps 152 and 153 may be performed using 1 byte of register 2, the first byte of 2 bytes of register 3, and 1 byte of register 4 (ECC1). 1 byte of 2, register 3
2nd byte of 2 bytes and 1 of register 5
You may perform using a byte (ECC1 '). Also,
Both methods may be used.

【0135】さらに、本実施例では2種類のECCが保
持されるので、Drive#3に障害が発生しても、分
割データ1、2とECC1,ECC1’とから分割デー
タ3、4(Drive#3内のデータ)を回復すること
が可能となる。
Furthermore, in the present embodiment, since two types of ECC are held, even if a failure occurs in Drive # 3, divided data 1, 2 and ECC1, ECC1 'are used to generate divided data 3, 4 (Drive #). (Data in 3) can be recovered.

【0136】以上のようにデータ回復したとき、C A
dp10は、キャッシュメモリ8にデータを格納したこ
とをMP9に報告し、MP9は、この報告を元にアドレ
ステーブル21のCPU1が読み出し要求を発行した論
理グループ番号22とデータ名23のキャッシュアドレ
ス27にデータを格納したキャッシュメモリ8内のアド
レスを登録する。以降はキャッシュヒット時と同様な手
順でCPU1へ当該データを転送する。
When data is recovered as described above, C A
The dp 10 reports to the MP 9 that the data has been stored in the cache memory 8. Based on this report, the MP 9 reports to the logical group number 22 and the cache address 27 of the data name 23 that the CPU 1 of the address table 21 issued the read request. The address in the cache memory 8 storing the data is registered. After that, the data is transferred to the CPU 1 in the same procedure as the cache hit.

【0137】図21は、従来のように論理グループ内の
各ドライブ14に等容量に分割された分割データを読み
出しまたは書き込む際のデータ転送時間を説明するため
の図である。この図から分かるように、分割データを等
容量とした場合、転送時間は最も転送速度の遅いドライ
ブ14(ここではDrive#1,#2,#3,#5)
の転送速度で決まる。
FIG. 21 is a diagram for explaining the data transfer time when reading or writing the divided data divided into equal capacities into each drive 14 in the logical group as in the conventional case. As can be seen from this figure, when the divided data has the same capacity, the drive 14 has the slowest transfer time (here, Drive # 1, # 2, # 3, # 5).
Determined by the transfer rate of.

【0138】図14は、本実施例のディスクアレイ装置
における転送時間と容量を説明するための図である。こ
の図から分かるように、本実施例のように論理グループ
内の各ドライブ14の転送速度比に応じてデータを分割
して分割データを割り当てた場合、論理グループ内の各
ドライブ14のデータ転送時間は平均化され、処理性能
が向上する。
FIG. 14 is a diagram for explaining the transfer time and capacity in the disk array device of this embodiment. As can be seen from this figure, when the data is divided according to the transfer speed ratio of each drive 14 in the logical group and the divided data is allocated as in the present embodiment, the data transfer time of each drive 14 in the logical group Are averaged and the processing performance is improved.

【0139】なお、このように転送速度比に応じて各ド
ライブに格納する分割データの容量を変えるようにした
場合、図22のように、論理グループを構成するドライ
ブ間で格納されるデータの容量が異なることになる。本
実施例で説明した例では、この図に示すように、Dri
ve#3の転送速度はDrive#1,#2,#4,#
5の転送速度の2倍であるため、分割比は2:1とな
り、Drive#3に格納されるデータ容量はDriv
e#1,#2,#4,#5の2倍になっている。したが
って、Drive#1,#2,#3,#4,#5の容量
が等しい場合、Drive#3には他のドライブの2倍
の容量のデータが格納されるから、Drive#3は容
量一杯にデータが格納されても、Drive#1,#
2,#4,#5では未だ空きがあることになる。
When the capacity of the divided data to be stored in each drive is changed according to the transfer speed ratio as described above, the capacity of the data to be stored between the drives constituting the logical group as shown in FIG. Will be different. In the example described in the present embodiment, as shown in FIG.
The transfer speed of ve # 3 is Drive # 1, # 2, # 4, #
Since the transfer rate is 5 times the transfer rate of 5, the division ratio is 2: 1 and the data capacity stored in Drive # 3 is Drive.
e # 1, # 2, # 4, and # 5. Therefore, if Drive # 1, # 2, # 3, # 4, and # 5 have the same capacity, Drive # 3 stores twice as much data as other drives, so Drive # 3 is full. Even if the data is stored in, Drive # 1, #
In 2, # 4 and # 5, there is still space available.

【0140】そこで、この空き領域を使用するため、図
23に示すように、Drive#3が一杯になったら、
それ以降はDrive#1,#2,#4,#5を用いた
RAIDレベル3により処理するようにするとよい。図
16に示したアドレステーブル21では、Data#4
以降ではDrive#3のドライブ内アドレス26が登
録されていない。このように、アドレステーブル21に
おいてドライブ内アドレス26が登録されていない場合
は、Drive#1,#2,#4,#5でRAID3の
処理を行うとMP9は認識する。
Therefore, since this free area is used, as shown in FIG. 23, when Drive # 3 becomes full,
After that, it is preferable to perform processing according to RAID level 3 using Drive # 1, # 2, # 4, and # 5. In the address table 21 shown in FIG. 16, Data # 4
After that, the drive address 26 of Drive # 3 is not registered. As described above, when the intra-drive address 26 is not registered in the address table 21, the MP 9 recognizes that the Drive # 1, # 2, # 4, and # 5 performs the RAID3 process.

【0141】上記の例では、Drive#4,#5のそ
れぞれに分けて2種類のECCを格納するとした。この
変形例として、図24に示すように、Drive#5の
転送速度をDrive#3と同じ6MB/sとすると、
2種類のECCをDrive#5にまとめて格納するこ
とが可能となる。
In the above example, two types of ECC are stored separately for Drive # 4 and # 5. As a modified example, as shown in FIG. 24, if the transfer rate of Drive # 5 is 6 MB / s, which is the same as that of Drive # 3,
Two types of ECC can be stored together in Drive # 5.

【0142】[実施例3]上記実施例1では、複数の論
理グループ間でドライブ14を共有する方法を説明し
た。これは、論理グループ内のドライブ14の転送速度
が異なる際に、転送速度比に応じてデータを分割して分
割データを割り当てた場合には論理グループを構成する
ドライブ14間で格納されるデータの容量が異なること
になるため、複数論理グループ間でドライブ14を共有
するようにしたものであった。
[Third Embodiment] In the first embodiment, the method of sharing the drive 14 among a plurality of logical groups has been described. This is because when the transfer speeds of the drives 14 in the logical group are different and the data is divided according to the transfer speed ratio and the divided data is assigned, the data stored between the drives 14 forming the logical group Since the capacities are different, the drive 14 is shared by a plurality of logical groups.

【0143】本実施例3では、論理グループを構成する
ドライブ14の容量が異なった場合においても、複数論
理グループ間でドライブ14を共有する方法を説明す
る。
In the third embodiment, a method of sharing the drive 14 among a plurality of logical groups even when the capacities of the drives 14 constituting the logical group are different will be described.

【0144】図25は、2個の論理グループLG#1、
LG#2が、Drive#4を共有している様子を示
す。論理グループLG#1は、Drive#1,#2,
#3,#4,#5の5台のドライブ14で構成されてい
る。Drive#1,#2,#3,#5は容量が2GB
で、Drive#4は容量が4GBと2倍になってい
る。
FIG. 25 shows two logical groups LG # 1,
It is shown that LG # 2 shares Drive # 4. The logical group LG # 1 includes Drive # 1, # 2, and
It is composed of five drives # 3, # 4, and # 5. Drive # 1, # 2, # 3, # 5 has a capacity of 2 GB
The capacity of Drive # 4 is doubled to 4 GB.

【0145】一方、論理グループLG#2は、Driv
e#6,#7,#8,#4,#9の5台のドライブ14
で構成されている。Drive#6,#7,#8,#9
は容量が2GBで、Drive#4は容量が4GBと2
倍になっている。
On the other hand, the logical group LG # 2 is
5 drives 14 # 6, # 7, # 8, # 4, # 9
It is composed of Drive # 6, # 7, # 8, # 9
Has a capacity of 2 GB, and Drive # 4 has a capacity of 4 GB and 2
Is doubled.

【0146】そこで、論理グループLG#1ではDri
ve#4の容量の1/2を使用し、残りの1/2の容量
は論理グループLG#2が使用するようにしている。従
来では、ディスクアレイを構成するドライブ14は、同
じ性能、同じ容量のドライブ14を使用していた。しか
し、このように、論理グループ間でドライブ14の共有
が可能になると、ディスクアレイを容量の異なるドライ
ブ14で構成することが可能となる。
Therefore, in the logical group LG # 1, Dri
1/2 of the capacity of ve # 4 is used, and the remaining 1/2 capacity is used by the logical group LG # 2. Conventionally, the drives 14 forming the disk array have the same performance and the same capacity. However, if the drives 14 can be shared between the logical groups in this way, the disk array can be configured with the drives 14 having different capacities.

【0147】[実施例4]上記実施例1、2、3では、
ドライブ(磁気ディスク装置)を用いたディスクアレイ
について説明してきた。本実施例4では、ドライブ14
の代わりに、フラッシュメモリ(FMem)等の不揮発
な半導体メモリを用いた例を説明する。
[Fourth Embodiment] In the first, second, and third embodiments,
The disk array using the drive (magnetic disk device) has been described. In the fourth embodiment, the drive 14
Instead of, a non-volatile semiconductor memory such as a flash memory (FMem) will be described as an example.

【0148】図26は、図1においてDrive IF
13をFlash IF30に変え、ドライブ14をフ
ラッシュメモリ(FMem)31に変えて構成したディ
スクアレイ装置を示す。
FIG. 26 shows the Drive IF in FIG.
A disk array device in which 13 is replaced with a Flash IF 30 and the drive 14 is replaced with a flash memory (FMem) 31 is shown.

【0149】ドライブ14をFMem31に変えても、
初期設定法およびアドレス変換法は、実施例1、2と同
じである。つまり、FMem31はドライブ14と同じ
ように使用される。また、新規データの書き込み処理、
およびすでに書き込まれているデータを新しいデータに
書き換える更新の書き込み処理も、実施例1、2と同様
である。さらに、読み出し処理および障害時の処理も、
実施例1、2と同じである。
Even if the drive 14 is changed to FMem31,
The initial setting method and the address conversion method are the same as those in the first and second embodiments. That is, the FMem 31 is used in the same manner as the drive 14. Also, the writing process of new data,
The update write processing for rewriting the already written data with new data is also the same as in the first and second embodiments. In addition, read processing and failure processing
This is the same as in Examples 1 and 2.

【0150】本実施例におけるアドレステーブル21
は、実施例1の図3および実施例2の図9に示したアド
レステーブル21において、ドライブ番号24がFMe
m番号になり、ドライブ内アドレス26がFMem31
内のアドレスに変わっているのみで、その他の構成およ
び機能、使用方法は同じである。
Address table 21 in this embodiment
In the address table 21 shown in FIG. 3 of the first embodiment and FIG. 9 of the second embodiment, the drive number 24 is FMe.
It becomes m number, and the address 26 in the drive is FMem31.
The other configuration, function, and usage are the same.

【0151】ただし、FMem31はドライブ14とは
異なり、シーク、回転待ちは必要とせず、直接書き込む
ことが可能であるが、FMem31において書き込む場
合は、一端FMem31内の書き込みアドレスに対し消
去を行ってから書き込むこととなる。
However, unlike the drive 14, the FMem31 does not require seek and rotation waiting and can be directly written. However, when writing in the FMem31, once the write address in the FMem31 is erased, It will be written.

【0152】以上のように、本実施例では実施例1、
2、3においてドライブ14の変わりにFMem31と
した場合を示した。このようにFMem31に置き換え
ても、実施例1、2、3の効果が発揮できるのは明かで
ある。
As described above, in this embodiment, the first embodiment,
In 2 and 3, the case where the drive 14 is replaced by the FMem 31 is shown. Even if the FMem31 is replaced in this way, it is clear that the effects of the first, second and third embodiments can be exhibited.

【0153】なお、実施例1、2、3、4では本発明を
RAID3に適用した例を説明した。すなわち、CPU
1からの一つのデータをドライブ14またはFMem3
1の仕様に応じて分割比を可変にする例である。これに
限らず、本発明は、RAIDレベル4やレベル5のよう
にデータを分割しない場合にも適用できる。すなわち、
実施例1、2、4において、転送速度の低いドライブ1
4またはFMem31にはその転送速度に応じた小さい
データを格納し、転送速度の高いドライブ14またはF
Mem31にはその転送速度に応じた大きなデータを格
納するようにすればよい。
In the first, second, third, and fourth embodiments, the present invention is applied to RAID3. That is, CPU
1 data from 1 drive 14 or FMem3
In this example, the division ratio is made variable according to the specification of 1. Not limited to this, the present invention can be applied to the case where data is not divided like RAID level 4 and level 5. That is,
Drive 1 having a low transfer rate in the first, second, and fourth embodiments
4 or FMem31 stores a small amount of data according to the transfer rate, and drives 14 or F with a high transfer rate.
Mem31 may store large data according to the transfer rate.

【0154】[0154]

【発明の効果】以上説明したように、本発明によれば、
論理グループ内の各記憶装置の処理速度に応じて、分配
するデータの大きさを変えるようにしているので、論理
グループの各記憶装置で並列転送を行うときのデータ転
送時間を各記憶装置間で平均化することが可能となる。
すなわち、従来のように論理グループ内の各記憶装置に
等容量にデータを割当てた場合、転送時間は最も転送速
度の遅い記憶装置の転送速度で決まるが、本発明によれ
ば、各記憶装置を並列にアクセスする際のデータ転送時
間が平均化されるため、処理性能が向上する。
As described above, according to the present invention,
Since the size of the data to be distributed is changed according to the processing speed of each storage device in the logical group, the data transfer time when performing parallel transfer in each storage device of the logical group is different between the storage devices. It becomes possible to average.
That is, when data is allocated to the storage devices in the logical group in equal capacity as in the conventional case, the transfer time is determined by the transfer speed of the storage device with the slowest transfer speed. Since the data transfer time when accessing in parallel is averaged, the processing performance is improved.

【0155】また、従来のディスクアレイ装置は、同じ
性能、同じ容量のドライブを使用して構成されていた。
しかし、本発明を用いることで、性能を向上させ、ディ
スクアレイ装置を容量の異なるドライブで構成すること
が可能となる。
Further, the conventional disk array device is constructed by using the drives having the same performance and the same capacity.
However, by using the present invention, it is possible to improve the performance and configure the disk array device with drives having different capacities.

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

【図1】実施例のディスクアレイ装置の全体構成図FIG. 1 is an overall configuration diagram of a disk array device according to an embodiment.

【図2】第1の実施例におけるデータ分割説明図FIG. 2 is an explanatory diagram of data division in the first embodiment.

【図3】第1の実施例におけるアドレステーブル構成図FIG. 3 is a block diagram of an address table in the first embodiment.

【図4】第1の実施例における初期設定方法説明図FIG. 4 is an explanatory diagram of an initial setting method in the first embodiment.

【図5】第1の実施例における新規書き込み処理方法説
明図
FIG. 5 is an explanatory diagram of a new write processing method according to the first embodiment.

【図6】第1の実施例におけるキャッシュメモリからの
読み出し処理方法説明図
FIG. 6 is an explanatory diagram of a read processing method from a cache memory according to the first embodiment.

【図7】第1の実施例におけるパリティ作成方法説明図FIG. 7 is an explanatory diagram of a parity creating method according to the first embodiment.

【図8】第1の実施例における読み出し処理方法説明図FIG. 8 is an explanatory diagram of a read processing method according to the first embodiment.

【図9】第1の実施例におけるデータ結合方法説明図FIG. 9 is an explanatory diagram of a data combining method according to the first embodiment.

【図10】第1の実施例におけるデータ回復処理方法説
明図
FIG. 10 is an explanatory diagram of a data recovery processing method according to the first embodiment.

【図11】第1の実施例におけるデータ転送時間と容量
の説明図
FIG. 11 is an explanatory diagram of data transfer time and capacity in the first embodiment.

【図12】従来の方式におけるデータ転送時間の説明図FIG. 12 is an explanatory diagram of data transfer time in the conventional method.

【図13】第1の実施例におけるドライブ共有説明図FIG. 13 is an explanatory diagram of drive sharing according to the first embodiment.

【図14】第2の実施例におけるデータ転送時間の説明
FIG. 14 is an explanatory diagram of a data transfer time in the second embodiment.

【図15】第2の実施例におけるECC作成の説明図FIG. 15 is an explanatory diagram of ECC creation according to the second embodiment.

【図16】第2の実施例におけるアドレステーブル構成
FIG. 16 is an address table configuration diagram according to the second embodiment.

【図17】第2の実施例におけるキャッシュメモリから
の読み出し処理方法説明図
FIG. 17 is an explanatory diagram of a read processing method from the cache memory according to the second embodiment.

【図18】第2の実施例におけるECC作成方法説明図FIG. 18 is an explanatory diagram of an ECC creating method according to the second embodiment.

【図19】第2の実施例におけるデータ結合方法説明図FIG. 19 is an explanatory diagram of a data combining method according to the second embodiment.

【図20】第2の実施例におけるデータ回復処理方法説
明図
FIG. 20 is an explanatory diagram of a data recovery processing method according to the second embodiment.

【図21】第2の実施例に対する従来説明図FIG. 21 is a conventional explanatory diagram for the second embodiment.

【図22】第2の実施例における容量説明図FIG. 22 is an explanatory diagram of the capacity in the second embodiment.

【図23】第2の実施例における混在説明図FIG. 23 is a mixed explanatory view according to the second embodiment.

【図24】第2の実施例の変形例説明図FIG. 24 is an explanatory view of a modification of the second embodiment.

【図25】第3の実施例の説明図FIG. 25 is an explanatory diagram of the third embodiment.

【図26】第4の実施例の説明図FIG. 26 is an explanatory diagram of the fourth embodiment.

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

1:CPU、2:アレイディスクコントローラ(AD
C)、3:外部パス、4:インターフェースアダプタ、
5:チャネルインターフェース(CH IF)回路、
6:データ制御回路(DCC)、7:チャネル側キャッ
シュアダプタ(CAdp)、8:キャッシュメモリ、
9:マイクロプロセッサ(MP)、10:ドライブ側キ
ャッシュアダプタ(C Adp)、11:パリティ生成
回路(PG)、12:セレクタ、13:ドライブインタ
ーフェース回路(Drive IF)、14:ドライ
ブ、15:論理グループ、16:ドライブパス、21:
アドレステーブル、22:論理グループ番号、23:デ
ータ名、24:ドライブ番号、25:分割比、26:ド
ライブ内アドレス、27:キャッシュアドレス。
1: CPU, 2: Array disk controller (AD
C), 3: external path, 4: interface adapter,
5: Channel interface (CH IF) circuit,
6: data control circuit (DCC), 7: channel side cache adapter (CAdp), 8: cache memory,
9: Microprocessor (MP), 10: Drive side cache adapter (C Adp), 11: Parity generation circuit (PG), 12: Selector, 13: Drive interface circuit (Drive IF), 14: Drive, 15: Logical group , 16: drive path, 21:
Address table, 22: logical group number, 23: data name, 24: drive number, 25: division ratio, 26: in-drive address, 27: cache address.

───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.6 識別記号 庁内整理番号 FI 技術表示箇所 G11B 20/18 H 8940−5D 572 B 8940−5D F 8940−5D ─────────────────────────────────────────────────── ─── Continuation of the front page (51) Int.Cl. 6 Identification code Office reference number FI Technical display location G11B 20/18 H 8940-5D 572 B 8940-5D F 8940-5D

Claims (12)

【特許請求の範囲】[Claims] 【請求項1】論理グループを構成する複数台の記憶装置
と、該記憶装置を制御する制御装置とを備えたディスク
アレイ装置において、 前記複数台の記憶装置は、異なる処理速度の記憶装置が
混在しており、各記憶装置には、その記憶装置の処理速
度に応じて格納するデータ量を割当てることを特徴とす
るディスクアレイ装置。
1. A disk array device comprising a plurality of storage devices forming a logical group and a control device for controlling the storage devices, wherein the plurality of storage devices include storage devices of different processing speeds. The disk array device is characterized in that the amount of data to be stored is assigned to each storage device according to the processing speed of the storage device.
【請求項2】上位装置から与えられたデータをストライ
ピングして格納するためのm台(mは2以上の整数)の
データ記憶装置と、該m台のデータ記憶装置に格納した
データから作成したエラー訂正コードを格納するための
n台(nは1以上の整数)のエラー訂正コード記憶装置
とから論理グループを構成するとともに、これらの記憶
装置を制御する制御装置を備えたディスクアレイ装置に
おいて、 前記m台のデータ記憶装置およびn台のエラー訂正コー
ド記憶装置は、各記憶装置の処理速度の相対比が順に
k1:k2:…:ki:…:km+n と表されるような異な
る処理速度の記憶装置が混在しており、 前記ストライピングの単位をuで表すとき、各記憶装置
の最小のアクセス単位を、それぞれ、その記憶装置の処
理速度の相対比ki (i =1〜m+n )と前記ストライピ
ング単位uとの積ki ・uとすることを特徴とするディ
スクアレイ装置。
2. Data is created from m data storage devices (m is an integer of 2 or more) for storing data provided by a host device by striping and data stored in the m data storage devices. In a disk array device having a control unit for controlling these storage devices while forming a logical group from n (n is an integer of 1 or more) error correction code storage devices for storing error correction codes, In the m data storage devices and the n error correction code storage devices, the relative ratio of the processing speed of each storage device is in order.
Storage devices having different processing speeds such as k1: k2: ...: ki: ...: km + n are mixed, and when the striping unit is represented by u, the minimum access unit of each storage device is , A product of the relative ratio ki (i = 1 to m + n) of the processing speed of the storage device and the striping unit u, respectively, ki.multidot.u.multidot.u.
【請求項3】前記制御装置は、論理グループを特定する
論理グループ番号、上位装置から与えられたデータ名、
論理グループを構成する記憶装置を特定する記憶装置番
号、各記憶装置の処理速度の相対比を表す分割比、およ
び前記データ名のデータが格納されている各記憶装置の
記憶装置内アドレスのフィールドを有するアドレステー
ブルにより、データを管理する請求項1または2に記載
のディスクアレイ装置。
3. The control device comprises a logical group number for specifying a logical group, a data name given by a host device,
A field of a storage device number that identifies a storage device that configures a logical group, a division ratio that represents a relative ratio of processing speeds of the storage devices, and a storage device address field of each storage device in which the data of the data name is stored is set. 3. The disk array device according to claim 1, wherein data is managed by an address table included therein.
【請求項4】前記m台のデータ記憶装置にそれぞれ格納
したデータの一部または全部を用いてエラー訂正コード
を作成し、前記n台のエラー訂正コード記憶装置に格納
する請求項2に記載のディスクアレイ装置。
4. The error correction code is created by using a part or all of the data stored in each of the m data storage devices, and is stored in the n error correction code storage devices. Disk array device.
【請求項5】前記m台のデータ記憶装置にそれぞれ格納
したデータの一部または全部を用いて複数種類のエラー
訂正コードを作成し、前記n台のエラー訂正コード記憶
装置に格納する請求項2に記載のディスクアレイ装置。
5. A plurality of types of error correction codes are created by using a part or all of the data respectively stored in the m data storage devices, and stored in the n error correction code storage devices. The disk array device according to 1.
【請求項6】前記記憶装置のうちの1台について全記憶
領域にデータが格納された場合は、残りの記憶装置の空
き領域によりディスクアレイを構成する請求項1または
2に記載のディスクアレイ装置。
6. The disk array device according to claim 1, wherein when data is stored in the entire storage area of one of the storage devices, a disk array is formed by the free space of the remaining storage devices. .
【請求項7】前記論理グループ間で記憶装置を共有する
請求項1または2に記載のディスクアレイ装置。
7. The disk array device according to claim 1, wherein a storage device is shared between the logical groups.
【請求項8】前記記憶装置がディスクドライブである請
求項1または2に記載のディスクアレイ装置。
8. The disk array device according to claim 1, wherein the storage device is a disk drive.
【請求項9】前記記憶装置が不揮発半導体メモリ装置で
ある請求項1または2に記載のディスクアレイ装置。
9. The disk array device according to claim 1, wherein the storage device is a non-volatile semiconductor memory device.
【請求項10】上位装置から与えられたデータをストラ
イピングして格納するためのm台(mは2以上の整数)
のデータ記憶装置と、該m台のデータ記憶装置に格納し
たデータから作成したエラー訂正コードを格納するため
のn台(nは1以上の整数)のエラー訂正コード記憶装
置とから論理グループを構成するとともに、これらの記
憶装置を制御する制御装置を備えたディスクアレイ装置
において、 前記m台のデータ記憶装置およびn台のエラー訂正コー
ド記憶装置は、各記憶装置の記憶容量の相対比が順に
k1:k2:…:ki:…:km+n と表されるような異な
る記憶容量の記憶装置が混在しており、 前記ストライピングの単位をuで表すとき、各記憶装置
の最小のアクセス単位を、それぞれ、その記憶装置の記
憶容量の相対比ki (i =1〜m+n)と前記ストライ
ピング単位uとの積ki ・uとすることを特徴とするデ
ィスクアレイ装置。
10. m units (m is an integer of 2 or more) for striping and storing data provided from a host device.
A data storage device and n (n is an integer of 1 or more) error correction code storage device for storing error correction codes created from the data stored in the m data storage devices. In addition, in the disk array device including a control device for controlling these storage devices, the m data storage devices and the n error correction code storage devices have a relative ratio of storage capacities of the storage devices in order.
Storage devices having different storage capacities such as k1: k2: ...: ki: ...: km + n are mixed, and when the striping unit is represented by u, the minimum access unit of each storage device is A disk array device, wherein the product of the relative ratio ki (i = 1 to m + n) of the storage capacity of the storage device and the striping unit u is ki.multidot.u.
【請求項11】上位装置から与えられたデータをストラ
イピングして格納するためのm台(mは2以上の整数)
のデータ記憶装置と、該m台のデータ記憶装置に格納し
たデータから作成したエラー訂正コードを格納するため
のn台(nは1以上の整数)のエラー訂正コード記憶装
置とから論理グループを構成するとともに、これらの記
憶装置を制御する制御装置を備えたディスクアレイ装置
におけるデータの書き込み方法であって、 前記m台のデータ記憶装置およびn台のエラー訂正コー
ド記憶装置のそれぞれの処理速度の相対比を順に k
1:k2:…:ki:…:km+n と表し、前記ストライピ
ングの単位をuで表すとき、上位装置から与えられたデ
ータから、順に、k1 ・u,k2 ・u,…,km ・uづ
つ読み出すステップと、 読み出したデータからエラー訂正コードを作成するステ
ップと、 前記読み出したk1 ・uの大きさのデータ、k2 ・uの
大きさのデータ、…、およびkm ・uの大きさのデータ
を、対応する前記データ記憶装置に並列に書き込むとと
もに、前記作成したエラー訂正コードを前記エラー訂正
コード記憶装置に並列に書き込むステップとを備えたこ
とを特徴とするディスクアレイ装置のデータ書き込み方
法。
11. m units (m is an integer of 2 or more) for striping and storing data given from a host device.
A data storage device and n (n is an integer of 1 or more) error correction code storage device for storing error correction codes created from the data stored in the m data storage devices. A method of writing data in a disk array device having a control device for controlling these storage devices, wherein the processing speeds of the m data storage devices and the n error correction code storage devices are relative to each other. Ratio in order k
1: k2: ...: ki: ...: km + n, and the unit of striping is represented by u, then k1.u, k2.u ,. Reading each of them, creating an error correction code from the read data, reading the data of k1.u size, the data of k2.u size, ..., And the data of km.u size Is written in parallel to the corresponding data storage device, and the created error correction code is written in parallel to the error correction code storage device, the data writing method of the disk array device.
【請求項12】請求項11のデータ書き込み方法により
書き込んだデータを読み出すディスクアレイ装置のデー
タ読み出し方法であって、 前記m台のデータ記憶装置およびn台のエラー訂正コー
ド記憶装置から、それぞれ、k1 ・u,k2 ・u,…,
km ・uづつデータを並列に読み出すステップと、 読み出したk1 ・uの大きさのデータ、k2 ・uの大き
さのデータ、…、およびkm ・uの大きさのデータを、
結合するステップと、 結合したデータを上位装置に転送するステップとを備え
たことを特徴とするディスクアレイ装置のデータ読み出
し方法。
12. A data reading method of a disk array device for reading the data written by the data writing method according to claim 11, wherein k1 from each of the m data storage devices and the n error correction code storage devices are read.・ U, k2 ・ u, ...,
and a step of reading the data in units of km · u in parallel, and the read data of the size of k1 · u, the data of the size of k2 · u, ..., And the data of the size of km · u.
A method of reading data from a disk array device, comprising the steps of combining and transferring the combined data to a higher-level device.
JP6227359A 1994-08-29 1994-08-29 Disk array device Pending JPH0869359A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6227359A JPH0869359A (en) 1994-08-29 1994-08-29 Disk array device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6227359A JPH0869359A (en) 1994-08-29 1994-08-29 Disk array device

Publications (1)

Publication Number Publication Date
JPH0869359A true JPH0869359A (en) 1996-03-12

Family

ID=16859569

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6227359A Pending JPH0869359A (en) 1994-08-29 1994-08-29 Disk array device

Country Status (1)

Country Link
JP (1) JPH0869359A (en)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10275059A (en) * 1996-04-30 1998-10-13 Matsushita Electric Ind Co Ltd Storage device controller and management system
JP2002529878A (en) * 1998-10-30 2002-09-10 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Storage system
US7020731B2 (en) 1998-09-18 2006-03-28 Hitachi, Ltd. Disk array control device with two different internal connection systems
JP2009077959A (en) * 2007-09-26 2009-04-16 Toshiba Corp Ultrasonic image diagnostic device and its control program
JP2009099203A (en) * 2007-10-17 2009-05-07 Sony Corp Auxiliary storage device, information processing device, information processing system, and information processing method
JP2012525634A (en) * 2009-04-30 2012-10-22 ネットアップ,インコーポレイテッド Data distribution by leveling in a striped file system
JP2014078143A (en) * 2012-10-11 2014-05-01 Nippon Hoso Kyokai <Nhk> Video recorder and program thereof
JP2015038668A (en) * 2011-12-08 2015-02-26 シャープ株式会社 Electronic device
JP2015179343A (en) * 2014-03-19 2015-10-08 日本電気株式会社 Information storage device, information storing method and program
US9727279B2 (en) 2013-07-25 2017-08-08 Fujitsu Limited Storage control apparatus controlling issuable number of requests and storage control method thereof

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10275059A (en) * 1996-04-30 1998-10-13 Matsushita Electric Ind Co Ltd Storage device controller and management system
US7020731B2 (en) 1998-09-18 2006-03-28 Hitachi, Ltd. Disk array control device with two different internal connection systems
US7240139B2 (en) 1998-09-18 2007-07-03 Hitachi, Ltd. Disk array control device with two different internal connection systems
JP2002529878A (en) * 1998-10-30 2002-09-10 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Storage system
JP2009077959A (en) * 2007-09-26 2009-04-16 Toshiba Corp Ultrasonic image diagnostic device and its control program
JP2009099203A (en) * 2007-10-17 2009-05-07 Sony Corp Auxiliary storage device, information processing device, information processing system, and information processing method
JP2012525634A (en) * 2009-04-30 2012-10-22 ネットアップ,インコーポレイテッド Data distribution by leveling in a striped file system
JP2015038668A (en) * 2011-12-08 2015-02-26 シャープ株式会社 Electronic device
JP2014078143A (en) * 2012-10-11 2014-05-01 Nippon Hoso Kyokai <Nhk> Video recorder and program thereof
US9727279B2 (en) 2013-07-25 2017-08-08 Fujitsu Limited Storage control apparatus controlling issuable number of requests and storage control method thereof
JP2015179343A (en) * 2014-03-19 2015-10-08 日本電気株式会社 Information storage device, information storing method and program

Similar Documents

Publication Publication Date Title
JP3358687B2 (en) Disk array device
US6009481A (en) Mass storage system using internal system-level mirroring
US6049890A (en) Disk array system and its control method
JP3742494B2 (en) Mass storage device
JP3181398B2 (en) Array type recording device
JP3243223B2 (en) Storage device array
JP3237736B2 (en) Matrix structure of data storage device
JP3011035B2 (en) Computer system
JP3422370B2 (en) Disk cache controller
US7865664B2 (en) Storage control device, and control method for storage control device
JP3065481B2 (en) Disk array device and data storage method
US8041891B2 (en) Method and system for performing RAID level migration
JPS605023B2 (en) memory system
US20030105923A1 (en) Raid system and mapping method thereof
US20030120674A1 (en) Control method of control device conducting data input and output to storage devices, and control device used therefor
US6301711B1 (en) System and method for the network support of full motion video using a redundant array of inexpensive disks
EP1310875A2 (en) Disk array subsystem and data generation method therefor
JPH0869359A (en) Disk array device
US5574736A (en) Data storage device and method of operation
JPH07261945A (en) Disk array device and disk array dividing method
JPH09288547A (en) Array-type storage device
JPH06230903A (en) Fault recovery method for disk array device and disk array device
JPH07306758A (en) Disk array device and its control method
JP3236166B2 (en) Cache control method and information processing device
JPH1031563A (en) Storage device