JP3393765B2 - Array controller and data storage array - Google Patents

Array controller and data storage array

Info

Publication number
JP3393765B2
JP3393765B2 JP26051896A JP26051896A JP3393765B2 JP 3393765 B2 JP3393765 B2 JP 3393765B2 JP 26051896 A JP26051896 A JP 26051896A JP 26051896 A JP26051896 A JP 26051896A JP 3393765 B2 JP3393765 B2 JP 3393765B2
Authority
JP
Japan
Prior art keywords
data
array
channel
buffer
controller
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP26051896A
Other languages
Japanese (ja)
Other versions
JPH10124263A (en
Inventor
イアン・デービッド・ジャッド
スチーブン・ジー・ルーニン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP26051896A priority Critical patent/JP3393765B2/en
Publication of JPH10124263A publication Critical patent/JPH10124263A/en
Application granted granted Critical
Publication of JP3393765B2 publication Critical patent/JP3393765B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

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

【0001】[0001]

【発明の属する技術分野】本発明は、ホスト・システム
と複数のデータ記憶装置の間のデータの転送を制御する
コントローラに関し、またそのようなコントローラを組
み込んだデータ処理システムにも関する。
FIELD OF THE INVENTION The present invention relates to a controller for controlling the transfer of data between a host system and a plurality of data storage devices, and also to a data processing system incorporating such a controller.

【0002】[0002]

【従来の技術】最近数年間に、コンピュータ・システム
内で大量のデータを記憶するディスク・ドライブ・アレ
イに対する関心が高まってきた。ディスク・アレイは、
一般に、ディスク・ドライブとの間のデータの転送を制
御する1つまたは複数の制御要素を介して使用中のシス
テムに接続可能な多数のディスク・ドライブから構成さ
れる。ディスク・アレイは、大容量データ記憶、高い信
頼性、および使用中のシステムとの間の高速データ転送
が可能なように設計されている。
BACKGROUND OF THE INVENTION Over the last few years, there has been increasing interest in disk drive arrays that store large amounts of data within computer systems. Disk array
It typically consists of a number of disk drives connectable to the system in use via one or more control elements that control the transfer of data to and from the disk drives. Disk arrays are designed for mass data storage, high reliability, and high speed data transfer to and from your system.

【0003】アレイ・アーキテクチャに広く採用されて
いる1つの方法は、RAID(Redundant A
rrays of Independent Disk
s)と呼ばれるものである。RAIDの詳細は、論文
「A Case for Redundant Arr
ays of Independent disks
(RAID)」(ACM SIGMOD confer
ence proceedings,Chicago,
IL.,1988年6月1日〜3日、pp.109〜1
16)を含む多数の文献に記載されている。この論文で
は、異なるレベルのデータ管理を行う5つのアレイ・レ
ベル(RAID1〜5)が提案されている。各RAID
レベルでは、ユーザが多数の安価なディスク・ドライブ
を結合することによってそれらのデータ記憶容量を増大
させることができる。RAIDシステムでは、2つのド
ライブに2つの同じデータを記憶する(RAID1)
か、またはアレイの2つまたはそれ以上のドライブ間に
データを散布し、ストライプされたデータのパリティを
計算し、そのパリティ・データを別のドライブに記憶す
ることによって、ドライブの故障によるデータの損失に
対する保護を行う。データを保持しているドライブのう
ちの1つが故障した場合、パリティ・データおよびパリ
ティ・グループの残りのデータを使用して、故障したド
ライブ上のデータを再構成することができる(RAID
2〜5)。アレイは、データ・ディスクがN個、パリテ
ィ・ディスクがP個の場合、「N+P」と呼ばれること
が多い。例えば、RAID3では、単一のパリティ・デ
ィスクに記憶されているパリティ・データにより、デー
タをディスク間にビット単位またはバイト単位でストラ
イプする。したがってRAID3の場合、Pは1に等し
い。パリティ・グループは、N個のディスク上のデータ
とP個のディスク上のパリティ・データのグループから
構成される。
One widely used method for array architecture is RAID (Redundant A).
relays of Independent Disk
s). For more information on RAID, see the paper "A Case for Redundant Arr."
ays of Independent disks
(RAID) "(ACM SIGMOD confer
ence processes, Chicago,
IL. , June 1-3, 1988, pp. 109-1
It is described in a large number of documents including 16). This paper proposes five array levels (RAID 1-5) with different levels of data management. Each RAID
At the level, users can increase their data storage capacity by combining multiple inexpensive disk drives. RAID system stores two identical data in two drives (RAID1)
Or loss of data due to drive failure by spreading the data between two or more drives in an array, calculating the parity of the striped data, and storing that parity data on another drive. Protect against. If one of the drives holding the data fails, the parity data and the remaining data in the parity group can be used to reconstruct the data on the failed drive (RAID
2-5). An array is often referred to as "N + P" if it has N data disks and P parity disks. For example, in RAID 3, parity data stored on a single parity disk stripes the data between disks in bits or bytes. Therefore, for RAID 3, P equals 1. A parity group consists of groups of data on N disks and parity data on P disks.

【0004】RAID3でディスクにデータを記憶する
場合、記憶されているデータに対してXORオペレーシ
ョンを実行することによってパリティを発生させる。そ
のようにして発生したパリティを別個のディスクに記憶
する。論理データ記録を分割してディスク間にインタリ
ーブし、パリティは別個のディスクに記憶する。ユーザ
のアプリケーション・アクセスに対してすべてのディス
クが同時にアクセスされる。アレイ内に記憶されたデー
タを更新する必要がある場合、そのデータを含んでいる
パリティ・グループのパリティ・データをも更新する必
要がある。パリティの発生は、ソフトウェアか、あるい
はXORハードウェアの形で実施できる。ハードウェア
実施態様では、一般に、ホスト・システムからアレイへ
データを書き込む際にパリティをより迅速に発生でき
る。そのような実施態様の1つの例は、ヨーロッパ特許
EP508604号に記載されている。
When storing data to disk with RAID 3, parity is generated by performing an XOR operation on the stored data. The parity thus generated is stored on a separate disk. Logical data records are split and interleaved between disks, with parity stored on separate disks. All disks are accessed simultaneously for user application access. If the data stored in the array needs to be updated, the parity data of the parity group containing that data also needs to be updated. The parity generation can be implemented in software or in the form of XOR hardware. Hardware implementations can generally generate parity more quickly when writing data from the host system to the array. One example of such an embodiment is described in European Patent EP 508604.

【0005】[0005]

【発明が解決しようとする課題】本発明の目的は、改善
された記憶アレイ・コントローラを提供すること、また
そのようなアレイ・コントローラを組み込んだ改善され
たデータ・アレイを提供することである。
It is an object of the present invention to provide an improved storage array controller and an improved data array incorporating such an array controller.

【0006】[0006]

【課題を解決するための手段】本発明によれば、ホスト
・システムからデータ記憶装置のアレイへのデータの転
送を制御するアレイ・コントローラが提供される。アレ
イ・コントローラは、ローカル・バスを介して前記転送
時にデータをステージングするデータ・バッファに接続
されたプロセッサを含み、バッファの動作を制御するバ
ッファ・コントローラを具備し、さらにデータ・バッフ
ァとの間でデータを転送するために使用するローカル・
バス・アドレスによって選択可能な複数のデータ・チャ
ネルを提示するチャネル・ハードウェアを含む。
According to the present invention, an array controller is provided for controlling the transfer of data from a host system to an array of data storage devices. The array controller includes a processor connected to a data buffer for staging data during the transfer via a local bus, and includes a buffer controller for controlling the operation of the buffer, and further includes: Local used to transfer data
Includes channel hardware that presents multiple data channels selectable by bus address.

【0007】[0007]

【発明の実施の形態】図1を参照すると、データ・バス
またはデータ・リンク12を介してRAIDコントロー
ラ20に接続されたホスト・コンピュータ・システム1
0を含むデータ処理システムが示されている。RAID
コントローラ20は、データ・リンク40、42、4
4、46を介して磁気ディスク・ドライブ50、52、
54、56の形の複数のデータ記憶装置に接続されてい
る。図1では、各ディスク・ドライブは、別個の通信リ
ンクによってRAIDコントローラ20に接続されてい
るが、代替構成では、ディスク・アレイは、ディスク・
ドライブが互いに連鎖され、連鎖の両端がコントローラ
に通信するために結合されたループとしても構成できる
ことが理解できよう。アレイ内のディスク・ドライブの
数は、それにデータ処理システムをつなげる特定のアプ
リケーションによって異なることが理解できよう。RA
ID3の構成では、アレイは、1つのパリティ・ドライ
ブとともに3個か4個またはそれ以上のデータ・ドライ
ブから構成される。図のRAIDコントローラ20は、
ホスト・システムから分離されているが、例えばアダプ
タ・カードなどの形のホスト・システム内のすべてのR
AIDコントローラ機能を含むことができることが同様
に理解できよう。ホスト・システムは、それ自体のRA
IDコントローラおよびディスク・ドライブのアレイに
接続された第2のホスト・システムに接続することがで
きる。このホスト間通信パスでは、RAIDコントロー
ラのうちの1つが故障した場合にある程度の冗長度が得
られる。
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT Referring to FIG. 1, a host computer system 1 connected to a RAID controller 20 via a data bus or data link 12.
A data processing system including 0 is shown. RAID
The controller 20 uses the data links 40, 42, 4
Magnetic disk drives 50, 52 through 4, 46,
It is connected to a plurality of data storage devices in the form of 54,56. In FIG. 1, each disk drive is connected to the RAID controller 20 by a separate communication link, but in an alternative configuration, the disk array is a disk array.
It will be appreciated that the drives may be chained together and the two ends of the chain may also be configured as a coupled loop to communicate to the controller. It will be appreciated that the number of disk drives in the array will depend on the particular application to which the data processing system is attached. RA
In the ID3 configuration, the array consists of three, four or more data drives with one parity drive. The RAID controller 20 in the figure is
All R's in the host system that are separate from the host system, but in the form of, for example, an adapter card
It will likewise be appreciated that AID controller functionality may be included. The host system has its own RA
It can be connected to a second host system connected to the array of ID controllers and disk drives. This inter-host communication path provides some redundancy if one of the RAID controllers fails.

【0008】好ましい実施形態では、ホスト・システム
は、IBM AIXオペレーティング・システムを駆動
するIBM RISC System/6000コンピ
ュータである。RISC System/6000コン
ピュータならびにAIXオペレーティング・システムの
詳細は、出版文献から容易に得られる。ホストとRAI
Dコントローラとディスク・ドライブの間の接続性は、
所要の帯域幅および使用度に応じて多数の種々の方法で
実施できるが、好ましい実施形態について、直列式記憶
アーキテクチャ(SSAアーキテクチャ)を参照ながら
説明する。SSAアーキテクチャは、米国仕様協会(A
NSI)X3T10.1が開発中であり、ディスク・ド
ライブ、テープ装置などの外部接続装置をワークステー
ション・サーバ(ホスト・システム)および記憶サブシ
ステムに接続するために設計されたインタフェースであ
る。SSAに関する情報は、ANSIから得られる。
In the preferred embodiment, the host system is an IBM RISC System / 6000 computer running the IBM AIX operating system. Details of the RISC System / 6000 computer as well as the AIX operating system are readily available in the published literature. Host and RAI
The connectivity between the D controller and the disk drive is
Although it can be implemented in a number of different ways depending on the required bandwidth and usage, the preferred embodiment is described with reference to the serial storage architecture (SSA architecture). The SSA architecture is based on the American Specification Association (A
NSI) X3T10.1 is under development and is an interface designed for connecting external connection devices such as disk drives and tape devices to workstation servers (host systems) and storage subsystems. Information about SSA can be obtained from ANSI.

【0009】SSAアーキテクチャによれば、ホスト・
システムとRAIDコントローラの間のリンクは、直列
化データ用の通信パスとなる直列リンクである。リンク
による完全二重通信は、システムの様々な構成要素間で
データを迅速に伝送できるSSAによって行われる。ル
ープ構成では、各ドライブへの2本の通信パス(すなわ
ち、連鎖の両端からの通信)を使用して、ループ内の各
ドライブに対して帯域幅を倍増し、あるいは通信が失敗
した場合にドライブに対して他のルートを提供すること
ができる。SSAでは、完全二重通信を実現する2信号
接続(送信と受信)を行う。ホスト・システムとRAI
Dコントローラの間の直列接続は、情報のフレームを通
信するのに使用する4本のワイヤから構成される。4つ
の線は、プラスおよびマイナスの出力線(送信)とプラ
スおよびマイナスの入力線(受信)から構成される。ポ
ート(「ゲートウェイ」と呼ばれる)は、リンクの一方
の端部をサポートするハードウェアとファームウェアか
ら構成される(1つは送信パス、1つは受信パス)。S
SAのポートは、インバウンドとアウトバウンドの2つ
の20メガバイト毎秒の会話をいつでも同時に維持する
ことができる。したがって、SSAデュアル・ポート・
ノードは、4つの同時会話を合計80メガバイト毎秒分
実行することができる。あるノードのポートは、リンク
を介して他のノードのポートに接続する。SSAネット
ワークを介して完全二重通信を実現するために2つのノ
ードの間にゲートウェイを確立する。あるノードは、デ
ィスクのアクセスなどの機能を実行するために他のノー
ドにトランザクションを発行する。ゲートウェイは、2
つの接続(各方向に1つ)から構成され、マスタ(トラ
ンザクションを発行する接続)はマスタ制御ブロックを
構成し、ゲートウェイのスレーブ側は、トランザクショ
ン・フレームを受け取り、アドレスされたサービスを呼
び出すタスク制御ブロックを構成する。
According to the SSA architecture, the host
The link between the system and the RAID controller is a serial link that provides a communication path for serialized data. Full-duplex communication over the link is provided by SSA, which allows rapid transmission of data between the various components of the system. Loop configurations use two communication paths to each drive (that is, communication from both ends of the chain) to double bandwidth for each drive in the loop, or to drive if communication fails. Other routes can be provided for. In SSA, two-signal connection (transmission and reception) that realizes full duplex communication is performed. Host system and RAI
The series connection between the D controllers consists of four wires used to communicate frames of information. The four lines consist of plus and minus output lines (transmit) and plus and minus input lines (receive). A port (called a "gateway") consists of hardware and firmware that supports one end of the link (one for the transmit path and one for the receive path). S
The SA's port can simultaneously maintain two 20 megabyte per second conversations, inbound and outbound, at the same time. Therefore, SSA dual port
A node can perform four simultaneous conversations for a total of 80 megabytes per second. The port of one node connects to the port of another node via a link. A gateway is established between the two nodes to achieve full duplex communication over the SSA network. Some nodes issue transactions to other nodes to perform functions such as accessing disks. 2 gateways
The task control block consists of two connections (one in each direction), the master (the connection issuing the transaction) constitutes the master control block, and the slave side of the gateway receives the transaction frame and calls the addressed service. Make up.

【0010】SSAでは、SCSI(小型コンピュータ
・システム・インタフェース)仕様の論理態様を使用し
て、直列に接続されたディスク・ドライブをアドレスす
る。これらのSCSI仕様はSSAの物理仕様に対応す
る。すなわち、SSAは、様々な上層プロトコル用のト
ランスポート層として、特に記憶装置用のSCSI−2
として使用できる。SSAに基づくSCSI−2は、イ
ニシエータ、ターゲット、および論理ユニットが存在す
る場合、SCSI−2仕様で規定されているのと同じア
ドレス体裁を維持する。
SSA uses logical aspects of the SCSI (Small Computer System Interface) specification to address disk drives connected in series. These SCSI specifications correspond to the physical specifications of SSA. That is, SSA is a transport layer for various upper layer protocols, especially SCSI-2 for storage devices.
Can be used as SSA-based SCSI-2, in the presence of initiators, targets, and logical units, maintains the same address appearance as specified in the SCSI-2 specification.

【0011】RAIDコントローラの主要な構成要素を
図2に示す。コントローラは、マイクロプロセッサ・バ
ス24を介してコードおよび制御ブロックを含むRAM
25とROM26とに接続されたマイクロプロセッサ2
2を含む。マイクロプロセッサ(MP)・ブリッジ27
は、ローカル・バス28を介してマイクロプロセッサ2
2をDRAMコントローラ29に接続する。DRAMコ
ントローラは、DRAM30に接続される。DRAMコ
ントローラは、RAID3アレイに対してフロースルー
XORを行うのに必要なハードウェアを含む。ホスト・
ブリッジ32は、PCIバス45を介してホスト・シス
テム・ハードウェアへの接続を行う。また、ローカル・
バス28には、ディスク記憶装置のアレイへの通信パス
となる2つのSSAデュアル・ポート・チップ34およ
び36が接続されている。
The main components of the RAID controller are shown in FIG. The controller is a RAM containing code and control blocks via a microprocessor bus 24.
25 connected to the ROM 26 and the ROM 26
Including 2. Microprocessor (MP) bridge 27
The microprocessor 2 via the local bus 28.
2 is connected to the DRAM controller 29. The DRAM controller is connected to the DRAM 30. The DRAM controller contains the hardware necessary to perform a flow-through XOR on the RAID3 array. host·
The bridge 32 provides a connection to the host system hardware via the PCI bus 45. In addition,
Connected to bus 28 are two SSA dual port chips 34 and 36 which provide a communication path to an array of disk storage devices.

【0012】図3を参照すると、DRAM30内でデー
タが連続的にアクセスされた場合にアドレス情報および
データ操作を行うチャネル・ハードウェア48がローカ
ル・バス28とDRAM制御ユニット49の間に設けら
れている。DRAMコントローラは、従来の方法で動作
してDRAM内のデータにアクセスし、行列アドレスを
多重化し、DRAM制御信号を発生する。ページモード
・サイクルを使用して、バースト転送時の帯域幅を最大
にする。チャネル・ハードウェアは、ローカル・バス上
で通常のDRAMコントローラなど、スレーブとして動
作し、チャネル・ハードウェアの動作は、チャネルを介
してデータを転送しているマスタにとってトランスペア
レントである。同時データ転送を可能にするために多数
のチャネルを設けると有利である。特定のチャネルは、
入力アドレスの高位ビットによって選択する。例えば、
チャネルが16本の場合、ローカル・バス・アドレス
は、チャネル機能を選択するためのビットと、特定のチ
ャネルをアドレスする4つのビットとを含む。本発明の
この実施形態で使用するローカル・バス・アドレスを図
6に示す。各チャネルは機能フィールドおよび関連する
パラメータを有する。パラメータは、チャネル・ハード
ウェア内のチャネルRAM内に記憶され、チャネルをデ
ータ転送に使用する前にファームウェアによって初期設
定される。本願に記載の実施形態では、チャネル・ハー
ドウェアは、ローカル・バスとDRAMの間のデータ転
送を管理するために16本のチャネルを具備する。チャ
ネルには、0、1...15の番号が付されている。チ
ャネルは、次のようにローカル・バス・アドレスのビッ
ト31:24によって選択される。 ビット 31:24 Function 0100xxxx Direct access to DRAM 0101cccc Access to DRAM via Channel 'cccc' 例えば、チャネル7は、ビット27:24が'0111'
bの場合に選択される。
Referring to FIG. 3, channel hardware 48 is provided between local bus 28 and DRAM control unit 49 for address information and data manipulation when data is continuously accessed in DRAM 30. There is. The DRAM controller operates in a conventional manner to access data in the DRAM, multiplex matrix addresses, and generate DRAM control signals. Use page mode cycles to maximize bandwidth during burst transfers. The channel hardware acts as a slave on the local bus, such as a normal DRAM controller, and the operation of the channel hardware is transparent to the master transferring data through the channel. It is advantageous to provide multiple channels to allow simultaneous data transfer. The specific channel is
Select by high-order bit of input address. For example,
For 16 channels, the local bus address contains a bit to select the channel function and 4 bits to address the particular channel. The local bus address used in this embodiment of the invention is shown in FIG. Each channel has a function field and associated parameters. The parameters are stored in the channel RAM in the channel hardware and initialized by the firmware before using the channel for data transfer. In the embodiment described herein, the channel hardware comprises 16 channels to manage the data transfer between the local bus and the DRAM. Channels include 0, 1. . . The number of 15 is attached. The channel is selected by bits 31:24 of the local bus address as follows. Bit 31:24 Function 0100xxxx Direct access to DRAM 0101cccc Access to DRAM via Channel 'cccc' For example, for channel 7, bits 27:24 are '0111'
It is selected in the case of b.

【0013】本発明の実施形態では、以下に記載するよ
うに、RAID3ストライプ・オペレーションおよび書
込みオペレーションでは任意のチャネルを使用できる。
ただし、RAID3再構成オペレーションではチャネル
15しか使用できない。さらに、これらのチャネルは同
時に動作するように設計されており、コントローラ・ハ
ードウェア内でデータ・バッファおよびパリティ・バッ
ファを使用する場合に衝突が生じる。以下に例を示す。
In an embodiment of the invention, any channel can be used for RAID 3 stripe and write operations, as described below.
However, only channel 15 can be used in the RAID3 reconfiguration operation. In addition, these channels are designed to operate simultaneously, causing collisions when using data and parity buffers within the controller hardware. An example is shown below.

【0014】16本のチャネルはすべてストライプ機能
およびRAID3書込み機能を同時に実行できる。チャ
ネル「n」がチャネル「n+8」と同時に使用されてい
ないことを条件として(どちらもRAID3書込みに使
用されている場合)、最大8本のチャネルがRAID3
書込み機能を同時に実行できる。チャネル15をRAI
D3再構成に使用し、他の任意のチャネルをストライプ
に使用できる。以下のRAMバッファがコントローラ内
に必要である(図5参照)。
All 16 channels can perform stripe and RAID3 write functions simultaneously. Up to eight channels are RAID3, provided channel "n" is not used at the same time as channel "n + 8" (both used for RAID3 writes).
The write function can be executed simultaneously. Channel 15 to RAI
Used for D3 reconstruction, any other channel can be used for stripes. The following RAM buffers are required in the controller (see Figure 5).

【0015】32ワード×36ビット・デュアル・ポー
トRAMから構成されるデータ・バッファ1個。このデ
ータ・バッファはRAID3再構成およびRAID3書
込みに使用される。
One data buffer composed of 32 word × 36 bit dual port RAM. This data buffer is used for RAID3 reconstruction and RAID3 writes.

【0016】それぞれ4ワード×36ビット・デュアル
・ポートRAMから構成されるパリティ・バッファ2
個。RAID3再構成のみに使用される。
Parity buffer 2 composed of 4 words × 36 bits dual port RAM each
Individual. Used only for RAID3 reconstruction.

【0017】データ・バッファおよびパリティ・バッフ
ァは、選択したチャネル内のBufPtrフィールドに
よってアドレスされる。
The data and parity buffers are addressed by the BufPtr field in the selected channel.

【0018】これらのチャネルを使用して、定義された
アレイ機能を実行する。次に、これらの機能およびチャ
ネル・ハードウェアの使用について、RAID3として
構成されたアレイを参照しながら説明する。そのような
構成では、機能は次のように分類することができる。
These channels are used to perform defined array functions. The use of these features and channel hardware will now be described with reference to an array configured as RAID3. In such a configuration, the functions can be categorized as follows.

【0019】1.RAID3ストライプ:このオペレー
ションは、デバイスからDRAMへのデータのストライ
プと、DRAMからデバイスへのデータのストライプの
両方を含む。各デバイスごとに1本のチャネルを使用す
る。 2.RAID3書込み:このオペレーションは、ホスト
からDRAMへのデータの転送を含む。この実施形態で
は、このオペレーションは、データをDRAM内に転送
する際にパリティ・データをオンザフライで生成する。
このタイプの転送には単一のチャネルが使用される。こ
の機能は、ディスクが破壊された場合でも、ホストから
DRAMへのすべての転送に使用されることに留意され
たい。その場合、そのディスクのデータはまったく使用
できない。 3.RAID3再構成:このオペレーションは、DRA
Mからホストへのデータの転送を含み、データ記憶装置
のうちの1つが動作不能になった場合に効力を発する。
この実施形態では、データをDRAMから転送する際に
失われたデータをオンザフライで再構成する。このタイ
プの転送には単一のチャネルが使用される。
1. RAID 3 stripes: This operation includes both stripes of data from device to DRAM and stripes of data from DRAM to device. Use one channel for each device. 2. RAID3 write: This operation involves the transfer of data from the host to DRAM. In this embodiment, this operation produces parity data on the fly as the data is transferred into DRAM.
A single channel is used for this type of transfer. Note that this feature is used for all transfers from host to DRAM, even if the disk is destroyed. In that case, the data on that disk is completely unavailable. 3. RAID3 Reconfiguration: This operation is DRA
Includes the transfer of data from M to the host and takes effect if one of the data stores becomes inoperable.
In this embodiment, data lost when transferring data from DRAM is reconstructed on the fly. A single channel is used for this type of transfer.

【0020】まず、ホスト・メモリからRAID3アレ
イとして構成されたデバイスへのデータの書込みを実行
する場合のシステムのセットアップおよびオペレーショ
ンについて説明する。
First, the setup and operation of the system for executing the writing of data from the host memory to the device configured as the RAID3 array will be described.

【0021】ホスト上で動作しているアプリケーション
が記憶装置へのデータの書込みを要求した場合、まずコ
ントローラDRAMバッファにデータを書き込むため
に、RAID3書込みを実行するようにコントローラ・
ハードウェアおよびファームウェアを設定し、またRA
IDバッファから個々のディスク記憶装置へデータを転
送するために、RAID3ストライプを実行するように
コントローラ・ハードウェアおよびファームウェアを設
定する必要がある。以下の議論を簡単にするために、R
AID3書込みとRAID3ストライプの2つのオペレ
ーションは同時に起こるものとして説明する。ただし、
ホスト・メモリとデバイスの間のデータのパイプライン
が効率的に行われるように、RAID3書込みとRAI
D3ストライプの2つのオペレーションは、一般に、並
列に動作するように配置される。以下に詳細に説明する
ように、ホストから指定された量のデータを受け取ると
ディスク・ドライブに書き込むことができるように、コ
ントローラ内でA/Bバッファリングが行われる。次
に、図4を参照しながらRAID3書込みオペレーショ
ンとRAID3ストライプ・オペレーションについて説
明する。
When an application running on the host requests the writing of data to the storage device, first the controller / controller executes a RAID3 write to write the data to the controller DRAM buffer.
Set up hardware and firmware and also RA
In order to transfer data from the ID buffer to individual disk storage devices, the controller hardware and firmware must be set up to perform RAID 3 stripes. To simplify the following discussion, R
The two operations of AID3 write and RAID3 stripe are described as occurring at the same time. However,
RAID3 writes and RAIs are provided so that the pipeline of data between the host memory and the device is efficient.
The two operations of the D3 stripe are generally arranged to operate in parallel. A / B buffering is performed in the controller so that it can write to the disk drive upon receipt of a specified amount of data from the host, as described in detail below. RAID 3 write operations and RAID 3 stripe operations will now be described with reference to FIG.

【0022】RAID3書込み RAID3書込みは、ホスト上で動作しているアプリケ
ーション100が記憶装置へのデータの書込みを要求す
ることによって開始する。アプリケーションは、ホスト
・メモリ内のデータのアドレスを含む転送すべきデータ
の詳細を、ホスト・システムと関連するファイル・シス
テム102へ送る。ファイル・システムはこの要求を、
ディスク数、開始論理ブロック・アドレスおよび書き込
むべきデータのブロックの数を含む物理要求に変換す
る。デバイス・ドライバ104のマスタ・プロセスがこ
の要求とともに提示された場合、トランザクションが発
生し、コントローラに発行される。このマスタ・プロセ
スは、トランザクション用のマスタ制御ブロック(MC
B)を指すポインタでホスト・カーネルを呼び出す。M
CBは、コントローラ内で所要のサービスにアドレスさ
れる。本発明の場合、必要とされるサービスはRAID
3である。ホスト・カーネルは、MCBを指すポインタ
でゲートウェイを呼び出す。ゲートウェイのホスト側
は、ホスト・メモリ内の書込みオペレーションのために
ゲートウェイ・トランザクション制御ブロック(GTC
B)を生成する。GTCBは、本発明の議論では、
(i)宛先サービス(コントローラ・ファームウェアに
よって提供されるRAID3サービス)、(ii)ホスト
・メモリ内の書込みデータを指すポインタ、(iii)実
際のオペレーション・パラメータの詳細を指すポインタ
を含む多数のパラメータを指定する。
RAID3 Writing RAID3 writing starts when the application 100 running on the host requests writing of data to the storage device. The application sends details of the data to be transferred, including the address of the data in host memory, to the file system 102 associated with the host system. The file system makes this request
Translate to a physical request containing the number of disks, the starting logical block address and the number of blocks of data to write. If the device driver 104 master process is presented with this request, a transaction occurs and is issued to the controller. This master process uses the master control block (MC
Call the host kernel with a pointer to B). M
The CB is addressed in the controller to the required service. In the case of the present invention, the required service is RAID
It is 3. The host kernel calls the gateway with a pointer to the MCB. The host side of the gateway uses the gateway transaction control block (GTC) for write operations in host memory.
B) is generated. GTCB, in the discussion of the present invention,
A number of parameters including (i) destination service (RAID3 service provided by controller firmware), (ii) pointer to write data in host memory, and (iii) pointer to details of actual operation parameters. specify.

【0023】PCIゲートウェイは、GTCBを指すポ
インタをメモリ内の待ち行列に書き込む。ホスト・ハー
ドウェアは、ホストがGTCBポインタを書き込む場合
にコントローラに割込みを発生する。ゲートウェイ10
6のコントローラ側は、ホスト・インタフェース・チッ
プを使用して、DMA109によってGTCBをフェッ
チする。次いで、ゲートウェイは、コントローラ・アド
レス空間内にトランザクション制御ブロック(TCB)
を生成する。最後に、ゲートウェイは、TCBに実行要
求するためにコントローラ・カーネル110を呼び出
す。コントローラ・カーネルは、TCBを指すポインタ
でRAID3サービス108を呼び出す。次いで、RA
ID3サービスは、RAID3アレイを構成する各ディ
スク・ドライブごとに書込みトランザクションを生成
し、カーネルを使用してこれらのトランザクションをデ
ィスク・サービス112へ送る。ディスク・サービス
は、適切なSSA−SCSI読出しコマンドを発生し、
これらをシリアル・インタフェース・チップ116を含
むSSAドライバ114へ送る。
The PCI gateway writes a pointer to the GTCB to a queue in memory. The host hardware issues an interrupt to the controller when the host writes the GTCB pointer. Gateway 10
The controller side of 6 fetches the GTCB by the DMA 109 using the host interface chip. The gateway then enters the transaction control block (TCB) in the controller address space.
To generate. Finally, the gateway calls the controller kernel 110 to request the TCB to execute. The controller kernel calls the RAID3 service 108 with a pointer to the TCB. Then RA
The ID3 service generates write transactions for each disk drive that makes up the RAID3 array and sends these transactions to the disk service 112 using the kernel. Disk Services issues the appropriate SSA-SCSI read command,
These are sent to the SSA driver 114 which includes the serial interface chip 116.

【0024】SSAドライバは、SSAプロトコルおよ
びシリアル・インタフェース・チップを使用してディス
ク・ドライブ120にSCSIコマンドを発行する。各
ディスク・ドライブへのSCSIコマンドでは、開始L
BAおよび書き込むべきブロックの数を指定する。
The SSA driver issues SCSI commands to the disk drive 120 using the SSA protocol and serial interface chip. For SCSI commands to each disk drive, start L
Specify the BA and the number of blocks to write.

【0025】コントローラでは、メモリ割振りサービス
は、書込みデータ用にDRAMバッファ内に空間を割り
振る。メモリ割振りサービスは、RAID3書込み用の
チャネル・ハードウェア内に1つのチャネルを割り振
り、初期設定する。この初期設定では、次のパラメータ
をチャネルRAM内に書き込む(本発明の説明では、1
ワードは4バイトに等しい)。
At the controller, the memory allocation service allocates space in the DRAM buffer for write data. The memory allocation service allocates and initializes one channel in the channel hardware for RAID3 writes. In this initialization, the following parameters are written into the channel RAM (1 in the description of the invention).
Word equals 4 bytes).

【0026】(i)Addrl DRAMワード・アド
レスを含む。 (ii)InP パリティをデータによってインタリーブ
すべきか(InP=1)、またはパリティを割り振られ
たバッファ空間内の別のパリティ・データ領域に書き込
むべきか(InP=0)を指定するためのビットであ
る。 (iii)Fun チャネル機能を選択するためにコード
化された2ビット・フィールドである(RAID3書込
みの場合、このフィールドは10bに設定する)。 (iv)Addr2 追加のDRAMワード・アドレスを
含む(InP=0の場合にパリティに対してDRAM内
のアドレスを指定する)。 (v)ArrWid RAID3アレイの幅を指定す
る。ArrWidは、N−1に等しいと定義する。ただ
し、Nはデータ・ディスクの数である(すなわち、パリ
ティ・ディスクは含まない)。
(I) Contains the Addrl DRAM word address. (Ii) InP This is a bit for specifying whether the parity should be interleaved by data (InP = 1) or whether the parity should be written in another parity data area in the allocated buffer space (InP = 0). . (Iii) A 2-bit field coded to select the Fun channel function (for RAID3 writing, this field is set to 10b). (Iv) Addr2 Includes additional DRAM word address (specifies address in DRAM for parity if InP = 0). (V) Specifies the width of the ArrWid RAID3 array. ArrWid is defined to be equal to N-1. However, N is the number of data disks (ie, parity disks are not included).

【0027】ストライプ・サイズ(すなわち、各ディス
クごとにDRAMに記憶されるデータの単位のサイズ、
例えば図5参照)は、コントローラ内のオンチップRA
Mの量を最小にすることと、パリティ・ストライプをア
クセスする際のDRAMの帯域幅を最大にすることの折
合いをつけて選択する。以下の議論では、ストライプ・
サイズは16バイトに設定する。
Stripe size (ie, the size of the unit of data stored in DRAM for each disk,
For example, see FIG. 5) is an on-chip RA in the controller.
A tradeoff is made between minimizing the amount of M and maximizing DRAM bandwidth when accessing the parity stripe. In the discussion below, stripes
Set the size to 16 bytes.

【0028】ひとたびチャネルが割り振られると、ホス
ト・インタフェース・チップ32内のDMAエンジン1
08に(元の入出力要求時に提供された)ホスト内のソ
ース・アドレス、DRAM内の宛先アドレス、およびバ
イト・カウントがロードされる。次いで、DMAエンジ
ン108は、DMAによってDRAMへのデータの転送
を制御する。チャネルが指定された場合、RAID3書
込みでは、データ・バッファの1つのストライプを使用
して、各ストライプごとのパリティを計算する。ローカ
ル・バス上のデータは、直線的にDRAMのアドレスA
ddr1に記憶される。DRAM内のデータの記憶と同
時に、データの各ストライプ(すなわち、16バイト)
上でXORオペレーションを実行する。第1のディスク
のデータのストライプは、ローカル・バス・アドレスの
ビット26:24によって選択したデータ・バッファ・
ストライプ内に記憶される。残りのディスクのデータ・
ストライプは、バッファ内にXORされる。ストライプ
・バッファ(すなわち、パリティ)の内容は、ひとたび
発生すると、InP=0の場合、Addr2を使用して
DRAMの個別の領域内で直線的に記憶され、またIn
P=1の場合は、追加のデータ・ストライプとして記憶
される。
Once the channels are allocated, the DMA engine 1 in the host interface chip 32
08 is loaded with the source address in the host (provided on the original I / O request), the destination address in DRAM, and the byte count. The DMA engine 108 then controls the transfer of data to DRAM by DMA. If a channel is specified, a RAID3 write uses one stripe of the data buffer to calculate the parity for each stripe. The data on the local bus goes straight to the address A of the DRAM.
It is stored in ddr1. Each stripe of data (ie 16 bytes) at the same time the data is stored in the DRAM
Perform the XOR operation above. The stripe of data on the first disk is the data buffer selected by bits 26:24 of the local bus address.
Stored in stripes. Data on the remaining disk
The stripes are XOR'd into the buffer. The contents of the stripe buffer (ie, parity), once generated, are linearly stored in separate areas of the DRAM using Addr2 if InP = 0, and In
If P = 1, it is stored as an additional data stripe.

【0029】RAID3ストライプ すでに述べたように、DRAMからディスクへのRAI
D3ストライプ・オペレーションは、一般に、ホストと
DRAMの間のRAID3書込みオペレーションと並列
に動作する。RAID3ストライプ・オペレーション
は、次のように進行する。
RAID 3 Stripe As already mentioned, the RAI from DRAM to disk.
D3 stripe operations generally operate in parallel with RAID3 write operations between the host and DRAM. The RAID 3 stripe operation proceeds as follows.

【0030】コントローラによってシリアル・リンクを
介して発行されるSCSIコマンドに応答して、各ディ
スク・ドライブは、データを受け取る用意ができた場合
にデータ要求メッセージを戻す。各ドライブからデータ
要求メッセージを受け取ると、SSAドライバは、デー
タをDMAによってローカル・バスを介してDRAMへ
転送するようにSICをセットアップする。各ディスク
・ドライブでは、SSAドライバがSIC DMAチャ
ネルを動的に割り振り、(RAID3サービスによって
発行された元の書込みトランザクション内に提供され
た)ローカル・バス・アドレスの詳細、転送すべきバイ
トの合計数、およびオペレーションが書込みオペレーシ
ョンであることによってDMAチャネルを初期設定す
る。ローカル・バス・アドレスのビット31:24は、
コントローラ・チャネルの識別および転送がDRAMを
介する必要があることを指定する。
In response to the SCSI command issued by the controller via the serial link, each disk drive returns a data request message when it is ready to receive data. Upon receiving the data request message from each drive, the SSA driver sets up the SIC to transfer the data by DMA to the DRAM over the local bus. For each disk drive, the SSA driver dynamically allocates a SIC DMA channel, details of the local bus address (provided within the original write transaction issued by the RAID3 service), and the total number of bytes to transfer. , And the operation is a write operation, the DMA channel is initialized. Bits 31:24 of the local bus address are
Specifies that controller channel identification and transfer should go through DRAM.

【0031】アレイの各ディスク・ドライブには1つの
コントローラ・チャネルが割り振られ、初期設定され
る。コントローラ・ファームウェアは、アレイの各ディ
スクの指定されたチャネル用のチャネルRAMに、パラ
メータInP、ArrWidおよびAddr1をロード
する(これらのパラメータの定義については上記を参照
せよ)。ストライプは、ローカル・バスを介してデータ
を読み書きする際に実行される。各ディスクごとに、チ
ャネル・ハードウェアは、ワード・アドレスAddr1
を使用してDRAMから要求されたデータにアクセスす
る。Addr1は、通常、各ワードにアクセスした後で
1ずつ増分される。ただし、それぞれのディスクのデー
タ(すなわち、16バイト)の第1のストライプの終了
時には、Addr1は、InP=0(RAID3書込み
中DRAMの個別の領域内に記憶されたパリティ・デー
タ)の場合は1+4*ArrWidだけ増分され、また
InP=1の場合は1+4*(1+ArrWid)だけ
増分される。このようにして、データが割り振られたコ
ントローラ・チャネルによって各ディスクに転送され
る。
One controller channel is allocated and initialized for each disk drive in the array. The controller firmware loads the parameters InP, ArrWid and Addr1 into the channel RAM for the specified channel of each disk in the array (see above for definitions of these parameters). Striping is performed when reading and writing data over the local bus. For each disk, the channel hardware uses the word address Addr1
To access the requested data from the DRAM. Addr1 is typically incremented by 1 after each word is accessed. However, at the end of the first stripe of data (ie, 16 bytes) on each disk, Addr1 is 1 + 4 if InP = 0 (parity data stored in a separate area of DRAM during RAID3 writing). It is incremented by * ArrWid, and when InP = 1, it is incremented by 1 + 4 * (1 + ArrWid). In this way, data is transferred to each disk by the allocated controller channel.

【0032】次に、チャネル・ハードウェアをRAID
3再構成オペレーションの一部として使用する場合につ
いて説明する。このオペレーションを使用して、アレイ
読取りコマンドの間に、破壊されたデータ・ディスクか
ら読取りデータを再構成する。再構成オペレーションの
データの流れを図5に示す。再構成オペレーション中、
オペレーショナル・ディスクからのデータを、上述の方
法で任意の使用可能なチャネルを使用してDRAM内に
ストライプする(もちろん、データをDRAMからでは
なくDRAM内に転送する場合を除く)。インタリーブ
されていないパリティを選択した場合(InP=0)、
破壊されたディスクのストライプは空になり、パリティ
・ディスクからの読取りデータは、Addr2を使用し
てDRAMの別個の領域内に直線的に記憶される。しか
しながら、インタリーブされたパリティ・モードを選択
した場合(InP=1)、パリティは、破壊されたディ
スクの代わりにストライプを使用する(Addr2を使
用しない)。RAID3再構成では、A/Bデータおよ
びパリティ・バッファおよびチャネル15を使用する。
ファームウェアは、パラメータInP、ArrWid、
Addr1、Addr2およびBufPtrでチャネル
15用のチャネルRAMを初期設定する。破壊されたデ
ィスクの識別は、RAID3再構成機能を制御する再構
成レジスタ内に記憶される。
Next, RAID the channel hardware.
The case of use as a part of the three reconstruction operation will be described. This operation is used to reconstruct read data from a corrupted data disk during an array read command. The data flow of the reconstruction operation is shown in FIG. During the reconstruction operation,
The data from the operational disk is striped into DRAM using any available channel in the manner described above (unless, of course, the data is transferred into DRAM rather than from DRAM). When non-interleaved parity is selected (InP = 0),
The stripes on the destroyed disk are emptied and the read data from the parity disk is stored linearly in a separate area of DRAM using Addr2. However, if the interleaved parity mode is selected (InP = 1), the parity will use stripes instead of corrupted disks (no Addr2). RAID 3 reconstruction uses A / B data and parity buffers and channel 15.
The firmware has parameters InP, ArrWid,
Initialize the channel RAM for channel 15 with Addr1, Addr2 and BufPtr. The identification of the destroyed disk is stored in the reconfiguration register that controls the RAID3 reconfiguration function.

【0033】フロースルーXORは、次のように各ディ
スクから1つのストライプを処理する。
The flow-through XOR processes one stripe from each disk as follows.

【0034】1.ホスト・ブリッジによって要求された
データは、通常、データ・バッファ80からローカル・
バスへ転送され、各ワードの後にバッファ・ポインタ
(BufPtr)を増分する。しかしながら、バッファ
・ポインタが破壊されたディスク(再構成レジスタ内で
識別される)に対応するストライプをアドレスした場
合、データは、代わりに現在のパリティ・バッファ(8
2または84)から転送される。 2.各ワードがローカル・バスを介して転送されると
き、他のデータおよびパリティ・バッファがDRAMか
ら次の1組のストライプで充填される。チャネル15内
の有効データ・ストライプをAddr1を使用してフェ
ッチする。Addr1は各ワード後に増分される。破壊
されたディスクに割り振られたストライプに達すると、
Addr1が増分し続け、InP=0の場合、Addr
2によって指示されるアドレスからパリティ・ストライ
プをフェッチし(この場合、Addr2はパリティ・ス
トライプの各ワード後に増分される)、またInP=1
の場合は破壊されたディスクのストライプ位置からフェ
ッチする(この場合、Addr2は不変である)。フェ
ッチされた各ワードはBufPtrでデータ・バッファ
内に記憶される。第1のストライプもパリティ・バッフ
ァ内に記憶される。次のストライプはパリティ・バッフ
ァ内にXORされる。
1. The data requested by the host bridge is typically local to the data buffer 80.
Transfer to the bus, increment the buffer pointer (BufPtr) after each word. However, if the buffer pointer addressed the stripe corresponding to the corrupted disk (identified in the reconstruction register), the data would instead replace the current parity buffer (8
2 or 84). 2. As each word is transferred over the local bus, the other data and parity buffers are filled from DRAM with the next set of stripes. Fetch valid data stripe in channel 15 using Addr1. Addr1 is incremented after each word. When you reach the stripe allocated to the destroyed disk,
If Addr1 keeps incrementing and InP = 0, Addr1
Fetch the parity stripe from the address pointed to by 2 (where Addr2 is incremented after each word of the parity stripe) and InP = 1
In the case of, the fetch is performed from the stripe position of the destroyed disk (Addr2 is unchanged in this case). Each word fetched is stored in the data buffer at BufPtr. The first stripe is also stored in the parity buffer. The next stripe is XOR'd into the parity buffer.

【0035】まとめとして、本発明の構成に関して以下
の事項を開示する。
In summary, the following matters will be disclosed regarding the configuration of the present invention.

【0036】(1)ホスト・システムからデータ記憶装
置のアレイへのデータの転送を制御するアレイ・コント
ローラにおいて、ローカル・バスを介して前記転送時に
データをステージングするデータ・バッファに接続され
たプロセッサと、バッファの動作を制御するバッファ・
コントローラと、データ・バッファとの間でデータを転
送するのに使用する、ローカル・バス・アドレスによっ
て選択可能な複数のデータ・チャネルを提示するチャネ
ル・ハードウェアとを含むアレイ・コントローラ。 (2)チャネル・ハードウェアが、各データ・チャネル
と関連したパラメータを記憶するチャネル記憶装置を含
むことを特徴とする、上記(1)に記載のアレイ・コン
トローラ。 (3)ローカル・バス・アドレスが、データをデータ・
バッファによって転送すべきことを指定する識別ビット
を含むことを特徴とする、上記(1)に記載のアレイ・
コントローラ。 (4)ローカル・バス・アドレスが、データ転送用に選
択すべきデータ・チャネルを識別するチャネル識別ビッ
トを含むことを特徴とする、上記(3)に記載のアレイ
・コントローラ。 (5)ローカル・バス・アドレスが、選択したチャネル
上に転送すべきデータに対して実行すべきアレイ・コン
トローラ・サービスを指定することを特徴とする、上記
(4)に記載のアレイ・コントローラ。 (6)さらに、それによってRAID3による記憶装置
上にデータを記憶する、ローカル・バス・アドレスによ
って選択可能なRAID3アレイ・コントローラ・サー
ビスを提供する手段を含むことを特徴とする、上記
(5)に記載のアレイ・コントローラ。 (7)前記RAID3サービスのうちの1つが、後でデ
ータ記憶装置上に記憶するために、ローカル・バス・ア
ドレスによって指定されたチャネルを介してデータをホ
ストからデータ・バッファへ転送し、後でパリティ記憶
装置上に記憶するために、データと関連したパリティを
発生させるRAID3書込みオペレーションであること
を特徴とする、上記(6)に記載のアレイ・コントロー
ラ。 (8)前記RAID3サービスのうちの1つが、データ
記憶装置とパリティ記憶装置とデータ・バッファとの間
でデータを転送し、各記憶装置用に1つのデータ・チャ
ネルを選択するRAID3分割オペレーションであるこ
とを特徴とする、上記(7)に記載のアレイ・コントロ
ーラ。 (9)前記RAID3サービスのうちの1つが、故障し
たドライブ上のデータを再構成するRAID3再構成オ
ペレーションであることを特徴とする、上記(8)に記
載のアレイ・コントローラ。 (10)データ・バッファが、ダイナミック・ランダム
・アクセス・メモリ(DRAM)であることを特徴とす
る、上記(1)に記載のアレイ・コントローラ。 (11)アレイとして構成可能な複数のデータ記憶装置
と、ホスト・システムからデータ記憶装置のアレイへの
データの転送を制御するアレイ・コントローラとを含
む、ホスト・コンピュータ・システムと接続するデータ
記憶アレイにおいて、ローカル・バスを介して前記転送
時にデータをステージングするデータ・バッファに接続
されたプロセッサと、バッファの動作を制御するバッフ
ァ・コントローラと、データ・バッファとの間でデータ
を転送するために使用する、ローカル・バス・アドレス
によって選択可能な複数のデータ・チャネルを提示する
チャネル・ハードウェアとを含むアレイ。 (12)チャネル・ハードウェアが、各データ・チャネ
ルと関連したパラメータを記憶するチャネル記憶装置を
含むことを特徴とする、上記(11)に記載のアレイ。 (13)ローカル・バス・アドレスが、データをデータ
・バッファによって転送すべきことを指定する識別ビッ
トを含むことを特徴とする、上記(11)に記載のアレ
イ。 (14)ローカル・バス・アドレスが、データ転送用に
選択すべきデータ・チャネルを識別するチャネル識別ビ
ットを含むことを特徴とする、上記(13)に記載のア
レイ。 (15)ローカル・バス・アドレスが、選択したチャネ
ル上に転送すべきデータに対して実行すべきアレイ・コ
ントローラ・サービスを指定することを特徴とする、上
記(14)に記載のアレイ。 (16)さらに、それによってRAID3による記憶装
置上にデータを記憶する、ローカル・バス・アドレスに
よって選択可能なRAID3アレイ・コントローラ・サ
ービスを提供する手段を含むことを特徴とする、上記
(15)に記載のアレイ。 (17)前記RAID3サービスのうちの1つが、後で
データ記憶装置上に記憶するために、ローカル・バス・
アドレスによって指定されたチャネルを介してデータを
ホストからデータ・バッファへ転送し、後でパリティ記
憶装置上に記憶するために、データと関連したパリティ
を発生させるRAID3書込みオペレーションであるこ
とを特徴とする、上記(16)に記載のアレイ。 (18)前記RAID3サービスのうちの1つが、デー
タ記憶装置とパリティ記憶装置とデータ・バッファとの
間でデータを転送し、各記憶装置用に1つのデータ・チ
ャネルを選択するRAID3分割オペレーションである
ことを特徴とする、上記(17)に記載のアレイ。 (19)前記RAID3サービスのうちの1つが、故障
したドライブ上のデータを再構成するRAID3再構成
オペレーションであることを特徴とする、上記(18)
に記載のアレイ。 (20)データ・バッファが、ダイナミック・ランダム
・アクセス・メモリ(DRAM)であることを特徴とす
る、上記(11)に記載のアレイ。
(1) In an array controller that controls the transfer of data from a host system to an array of data storage devices, a processor connected to a data buffer that stages the data during the transfer via a local bus. , A buffer that controls the behavior of the buffer
An array controller that includes a controller and channel hardware used to transfer data to and from a data buffer that presents multiple data channels selectable by a local bus address. (2) The array controller according to (1) above, wherein the channel hardware includes a channel storage device that stores parameters associated with each data channel. (3) Local bus address transfers data to data
The array according to (1) above, characterized in that it includes an identification bit specifying that it should be transferred by a buffer.
controller. (4) The array controller according to (3) above, wherein the local bus address includes a channel identification bit that identifies a data channel to be selected for data transfer. (5) The array controller described in (4) above, wherein the local bus address specifies an array controller service to be executed for the data to be transferred on the selected channel. (6) In the above (5), further comprising means for providing a RAID3 array controller service selectable by a local bus address, thereby storing data on a storage device according to RAID3. Array controller described. (7) One of the RAID 3 services transfers data from the host to a data buffer over a channel designated by a local bus address for later storage on a data storage device, and later The array controller of (6) above, which is a RAID3 write operation that generates parity associated with the data for storage on parity storage. (8) One of the RAID 3 services is a RAID 3 partition operation that transfers data between a data storage device, a parity storage device and a data buffer and selects one data channel for each storage device. The array controller according to (7) above, characterized in that: (9) The array controller according to (8) above, wherein one of the RAID3 services is a RAID3 reconstruction operation that reconstructs data on a failed drive. (10) The array controller according to (1) above, wherein the data buffer is a dynamic random access memory (DRAM). (11) A data storage array connected to a host computer system including a plurality of data storage devices configurable as an array and an array controller controlling transfer of data from the host system to the array of data storage devices. To transfer data between a processor connected to a data buffer that stages the data during the transfer via a local bus, a buffer controller that controls the operation of the buffer, and the data buffer And channel hardware presenting a plurality of data channels selectable by local bus address. (12) The array according to (11) above, wherein the channel hardware includes a channel storage device that stores parameters associated with each data channel. (13) The array described in (11) above, wherein the local bus address includes an identification bit that specifies that the data should be transferred by the data buffer. (14) The array described in (13) above, wherein the local bus address includes a channel identification bit that identifies a data channel to be selected for data transfer. (15) The array described in (14) above, wherein the local bus address specifies an array controller service to be performed on the data to be transferred on the selected channel. (16) In the above (15), further comprising means for providing a RAID3 array controller service selectable by a local bus address, thereby storing data on a storage device according to RAID3. The array described. (17) One of the RAID3 services has a local bus connection for later storage on a data storage device.
A RAID3 write operation that transfers data from a host to a data buffer over a channel specified by an address and generates parity associated with the data for later storage on parity storage. The array according to (16) above. (18) One of the RAID 3 services is a RAID 3 partition operation that transfers data between a data storage device, a parity storage device and a data buffer and selects one data channel for each storage device. The array according to (17) above, which is characterized in that (19) One of the RAID3 services is a RAID3 reconfiguration operation for reconfiguring data on a failed drive, (18).
The array described in. (20) The array described in (11) above, wherein the data buffer is a dynamic random access memory (DRAM).

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

【図1】RAIDコントローラを介してハード・ディス
ク・デバイスのアレイに接続されたホストを含むデータ
処理システムのブロック図である。
FIG. 1 is a block diagram of a data processing system that includes a host connected to an array of hard disk devices via a RAID controller.

【図2】図1のRAIDコントローラの主要な論理構成
要素を示すブロック図である。
2 is a block diagram showing the main logical components of the RAID controller of FIG. 1. FIG.

【図3】図1のRAIDコントローラのチャネル・ハー
ドウェアとDRAMコントローラ・ハードウェアの関係
を示すブロック図である。
3 is a block diagram showing a relationship between channel hardware and DRAM controller hardware of the RAID controller of FIG.

【図4】本発明によるRAIDオペレーションを実現す
るデータ処理システムによって提供されるサービスを示
すブロック図である。
FIG. 4 is a block diagram illustrating services provided by a data processing system that implements RAID operations according to the present invention.

【図5】RAIDコントローラのDRAMハードウェア
およびフロースルーXORハードウェアのブロック図で
ある。
FIG. 5 is a block diagram of RAID controller DRAM hardware and flow-through XOR hardware.

【図6】ローカル・バス・アドレスの図である。FIG. 6 is a diagram of a local bus address.

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

10 ホスト・コンピュータ・システム 12 データ・バス 20 RAIDコントローラ 40 データ・リンク 42 データ・リンク 44 データ・リンク 46 データ・リンク 50 ディスク・ドライブ 52 ディスク・ドライブ 54 ディスク・ドライブ 56 ディスク・ドライブ 10 Host computer system 12 data buses 20 RAID controller 40 data links 42 Data Link 44 data links 46 data links 50 disk drive 52 disk drive 54 disk drive 56 disk drive

───────────────────────────────────────────────────── フロントページの続き (72)発明者 スチーブン・ジー・ルーニン アメリカ合衆国95120 カリフォルニア 州サンノゼソーンツリー・ドライブ 5966 (56)参考文献 特開 平8−221326(JP,A) 特開 平6−332626(JP,A) 特開 昭59−98234(JP,A) 特開 昭49−112544(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 3/06 - 3/08 G06F 12/08 G06F 13/12 - 13/18 ─────────────────────────────────────────────────── ─── Continuation of the front page (72) Inventor Stephen G. Lunin United States 95120 San Jose Thorntree Drive, California 5966 (56) Reference JP-A-8-221326 (JP, A) JP-A-6-332626 ( JP, A) JP 59-98234 (JP, A) JP 49-112544 (JP, A) (58) Fields investigated (Int.Cl. 7 , DB name) G06F 3/06-3/08 G06F 12/08 G06F 13/12-13/18

Claims (12)

(57)【特許請求の範囲】(57) [Claims] 【請求項1】ホスト・システムからデータ記憶装置のア
レイへのデータの転送を制御するアレイ・コントローラ
において、 ローカル・バスを介して前記転送時にデータをステージ
ングするデータ・バッファに接続されたプロセッサと、 バッファの動作を制御するバッファ・コントローラと、 データ・バッファとの間でデータを転送するのに使用す
る、ローカル・バス・アドレスによって選択可能な複数
のデータ・チャネルを提示するチャネル・ハードウェア
とを含んでいて ローカル・バス・アドレスが、データをデータ・バッフ
ァによって転送すべきことを指定する識別ビットを含
み、データ転送用に選択すべきデータ・チャネルを識別
するチャネル識別ビットを含み、選択したチャネル上に
転送すべきデータに対して実行すべきアレイ・コントロ
ーラ・サービスを指定することを特徴とする、 アレイ・コントローラ。
1. An array controller for controlling the transfer of data from a host system to an array of data storage devices, the processor connected to a data buffer for staging the data during said transfer via a local bus; A buffer controller that controls the operation of the buffer and channel hardware that presents multiple data channels selectable by local bus address used to transfer data to and from the data buffer. A selected channel that contains a local bus address that contains an identification bit that specifies that data should be transferred by the data buffer, and that contains a channel identification bit that identifies the data channel that should be selected for the data transfer. The array to perform on the data to be transferred Characterized by specifying a controller service, array controller.
【請求項2】さらに、それによってRAID3による記
憶装置上にデータを記憶する、ローカル・バス・アドレ
スによって選択可能なRAID3アレイ・コントローラ
・サービスを提供する手段を含むことを特徴とする、請
求項1に記載のアレイ・コントローラ。
2. The method of claim 1, further comprising means for providing a RAID3 array controller service selectable by a local bus address, thereby storing data on a RAID3 storage device. The array controller described in.
【請求項3】前記RAID3サービスのうちの1つが、
後でデータ記憶装置上に記憶するために、ローカル・バ
ス・アドレスによって指定されたチャネルを介してデー
タをホストからデータ・バッファへ転送し、後でパリテ
ィ記憶装置上に記憶するために、データと関連したパリ
ティを発生させるRAID3書込みオペレーションであ
ることを特徴とする、請求項2に記載のアレイ・コント
ローラ。
3. One of the RAID 3 services is
Transfers the data from the host to the data buffer via the channel specified by the local bus address for later storage on the data storage and the data for later storage on the parity storage. The array controller of claim 2, wherein the array controller is a RAID3 write operation that produces associated parity.
【請求項4】前記RAID3サービスのうちの1つが、
データ記憶装置とパリティ記憶装置とデータ・バッファ
との間でデータを転送し、各記憶装置用に1つのデータ
・チャネルを選択するRAID3分割オペレーションで
あることを特徴とする、請求項3に記載のアレイ・コン
トローラ。
4. One of the RAID 3 services is
4. The RAID 3 partition operation of transferring data between a data storage device, a parity storage device, and a data buffer, and selecting one data channel for each storage device, as set forth in claim 3. Array controller.
【請求項5】前記RAID3サービスのうちの1つが、
故障したドライブ上のデータを再構成するRAID3再
構成オペレーションであることを特徴とする、請求項4
に記載のアレイ・コントローラ。
5. One of the RAID 3 services is
5. A RAID3 reconstruction operation that reconstructs data on a failed drive.
The array controller described in.
【請求項6】データ・バッファが、ダイナミック・ラン
ダム・アクセス・メモリ(DRAM)であることを特徴
とする、請求項1に記載のアレイ・コントローラ。
6. The array controller according to claim 1, wherein the data buffer is a dynamic random access memory (DRAM).
【請求項7】アレイとして構成可能な複数のデータ記憶
装置と、ホスト・システムからデータ記憶装置のアレイ
へのデータの転送を制御するアレイ・コントローラとを
含む、ホスト・コンピュータ・システムと接続するデー
タ記憶アレイにおいて、 ローカル・バスを介して前記転送時にデータをステージ
ングするデータ・バッファに接続されたプロセッサと、 バッファの動作を制御するバッファ・コントローラと、 データ・バッファとの間でデータを転送するために使用
する、ローカル・バス・アドレスによって選択可能な複
数のデータ・チャネルを提示するチャネル・ハードウェ
アとを含んでいて、 ローカル・バス・アドレスが、データをデータ・バッフ
ァによって転送すべきことを指定する識別ビットを含
み、データ転送用に選択すべきデータ・チャネルを識別
するチャネル識別ビットを含み、選択したチャネル上に
転送すべきデータに対して実行すべきアレイ・コントロ
ーラ・サービスを指定することを特徴とする、 アレイ。
7. Data for connection with a host computer system including a plurality of data storage devices configurable as an array and an array controller for controlling transfer of data from the host system to the array of data storage devices. In a storage array, to transfer data between a processor connected to a data buffer that stages the data at the time of the transfer through a local bus, a buffer controller that controls the operation of the buffer, and the data buffer Channel hardware that presents multiple data channels selectable by local bus address for use with the local bus address to specify that data should be transferred by the data buffer. Selection bit for data transfer. An array characterized by including a channel identification bit that identifies a data channel and specifying an array controller service to perform on the data to be transferred on the selected channel.
【請求項8】さらに、それによってRAID3による記
憶装置上にデータを記憶する、ローカル・バス・アドレ
スによって選択可能なRAID3アレイ・コントローラ
・サービスを提供する手段を含むことを特徴とする、請
求項7に記載のアレイ。
8. The method of claim 7, further comprising means for providing a RAID3 array controller service selectable by a local bus address, thereby storing data on a RAID3 storage device. The array described in.
【請求項9】前記RAID3サービスのうちの1つが、
後でデータ記憶装置上に記憶するために、ローカル・バ
ス・アドレスによって指定されたチャネルを介してデー
タをホストからデータ・バッファへ転送し、後でパリテ
ィ記憶装置上に記憶するために、データと関連したパリ
ティを発生させるRAID3書込みオペレーションであ
ることを特徴とする、請求項8に記載のアレイ。
9. One of the RAID 3 services is
Transfers the data from the host to the data buffer via the channel specified by the local bus address for later storage on the data storage and the data for later storage on the parity storage. 9. The array of claim 8, wherein the array is a RAID3 write operation that produces associated parity.
【請求項10】前記RAID3サービスのうちの1つ
が、データ記憶装置とパリティ記憶装置とデータ・バッ
ファとの間でデータを転送し、各記憶装置用に1つのデ
ータ・チャネルを選択するRAID3分割オペレーショ
ンであることを特徴とする、請求項9に記載のアレイ。
10. A RAID3 split operation in which one of the RAID3 services transfers data between a data store, a parity store and a data buffer and selects one data channel for each store. 10. The array according to claim 9, characterized in that
【請求項11】前記RAID3サービスのうちの1つ
が、故障したドライブ上のデータを再構成するRAID
3再構成オペレーションであることを特徴とする、請求
項10に記載のアレイ。
11. A RAID in which one of the RAID 3 services reconstructs data on a failed drive.
11. Array according to claim 10, characterized in that it is a 3 reconstruction operation.
【請求項12】データ・バッファが、ダイナミック・ラ
ンダム・アクセス・メモリ(DRAM)であることを特
徴とする、請求項7に記載のアレイ。
12. The array according to claim 7, wherein the data buffer is a dynamic random access memory (DRAM).
JP26051896A 1996-10-01 1996-10-01 Array controller and data storage array Expired - Fee Related JP3393765B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP26051896A JP3393765B2 (en) 1996-10-01 1996-10-01 Array controller and data storage array

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP26051896A JP3393765B2 (en) 1996-10-01 1996-10-01 Array controller and data storage array

Publications (2)

Publication Number Publication Date
JPH10124263A JPH10124263A (en) 1998-05-15
JP3393765B2 true JP3393765B2 (en) 2003-04-07

Family

ID=17349088

Family Applications (1)

Application Number Title Priority Date Filing Date
JP26051896A Expired - Fee Related JP3393765B2 (en) 1996-10-01 1996-10-01 Array controller and data storage array

Country Status (1)

Country Link
JP (1) JP3393765B2 (en)

Also Published As

Publication number Publication date
JPH10124263A (en) 1998-05-15

Similar Documents

Publication Publication Date Title
US5893138A (en) System and method for improving channel hardware performance for an array controller
US6304942B1 (en) Providing an upgrade path for an existing data storage system
US6684295B2 (en) Disk array control device with two different internal connection systems
JP3151008B2 (en) Disk sector analysis method
US5526507A (en) Computer memory array control for accessing different memory banks simullaneously
US6219753B1 (en) Fiber channel topological structure and method including structure and method for raid devices and controllers
US6370611B1 (en) Raid XOR operations to synchronous DRAM using a read buffer and pipelining of synchronous DRAM burst read data
US5345565A (en) Multiple configuration data path architecture for a disk array controller
US5148432A (en) Arrayed disk drive system and method
US7032228B1 (en) Common device interface
US5978856A (en) System and method for reducing latency in layered device driver architectures
US20050027938A1 (en) Method, apparatus and program storage device for dynamically resizing mirrored virtual disks in a RAID storage system
JP2001256003A (en) Disk array controller, its disk array control unit and its expanding method
WO2009044397A2 (en) Thin provisioning migration and scrubbing
WO1996018141A1 (en) Computer system
US6425053B1 (en) System and method for zeroing data storage blocks in a raid storage implementation
US5862313A (en) Raid system using I/O buffer segment to temporary store striped and parity data and connecting all disk drives via a single time multiplexed network
JP3736134B2 (en) Distributed storage method, distributed storage system, and recording medium recording distributed storage program
GB2297636A (en) Storing data on emulated, logical, removable, disc drives
US6370616B1 (en) Memory interface controller for datum raid operations with a datum multiplier
US6851023B2 (en) Method and system for configuring RAID subsystems with block I/O commands and block I/O path
CA2134016A1 (en) Data storage device and method of operation
CA2126754A1 (en) Method for performing disk array operations using a nonuniform stripe size mapping scheme
JP3393765B2 (en) Array controller and data storage array
EP0548153A1 (en) Computer memory array control

Legal Events

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

Free format text: PAYMENT UNTIL: 20080131

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20090131

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20090131

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20100131

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20100131

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20110131

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20120131

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20130131

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20130131

Year of fee payment: 10

S802 Written request for registration of partial abandonment of right

Free format text: JAPANESE INTERMEDIATE CODE: R311802

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

Free format text: PAYMENT UNTIL: 20130131

Year of fee payment: 10

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20140131

Year of fee payment: 11

LAPS Cancellation because of no payment of annual fees