JPH10105476A - パリティブロックの生成装置 - Google Patents

パリティブロックの生成装置

Info

Publication number
JPH10105476A
JPH10105476A JP9216578A JP21657897A JPH10105476A JP H10105476 A JPH10105476 A JP H10105476A JP 9216578 A JP9216578 A JP 9216578A JP 21657897 A JP21657897 A JP 21657897A JP H10105476 A JPH10105476 A JP H10105476A
Authority
JP
Japan
Prior art keywords
parity
data
memory
block
generation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP9216578A
Other languages
English (en)
Other versions
JP3247075B2 (ja
Inventor
Barry J Oldfield
バリー・ジェイ・オールドフィールド
Mark D Petersen
マーク・ディー・ペーターセン
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.)
HP Inc
Original Assignee
Hewlett Packard Co
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 Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of JPH10105476A publication Critical patent/JPH10105476A/ja
Application granted granted Critical
Publication of JP3247075B2 publication Critical patent/JP3247075B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1054Parity-fast hardware, i.e. dedicated fast hardware for RAID systems with parity

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Detection And Correction Of Errors (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

(57)【要約】 【課題】 次世代のRAIDシステムにおいて最適な性
能を達成するため、バスのデータ転送速度性能を低下さ
せないパリティブロック生成システムの実現を図る。 【解決手段】 パリティ生成データワードを保持する2
つのメモリを用いることによってパリティデータの生成
速度の向上を実現するものであり、パリティデータブロ
ック内のパリティデータワードの生成は、そのデータワ
ードがバス上で転送される際にストライプのデータブロ
ック内のデータワードと対応するパリティ生成データワ
ードとの間で排他的論理和演算を連続的に実行すること
によって行なわれる。パリティ生成データワードの読み
出しと書き込みにメモリを交互に割り当てることによっ
て、転送される各データワードについて、2つのメモリ
のうちの1つへの読み出しアクセスおよび2つのメモリ
のうちの他方への書き込みアクセスを連続して完了する
のに要する時間が、1つのメモリへの読み出しおよび書
き込みアクセスを連続して完了するのに要する時間より
短くなる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はディスクアレイ(R
AID)システムに係り、とりわけRAIDシステムに
おけるパリティブロックの生成に関するものである。
【0002】
【従来の技術】RAIDシステムは、データの利用可能
性およびシステム性能をさまざまなレベルで達成するた
めの、ハードディスクドライブ(HDD)等のデータ記
憶装置アレイ内のデータの構成である。データの利用可
能性とは、RAIDシステムが、データ記憶装置アレイ
内のデータ記憶装置のうちの1つあるいはそれ以上が故
障した場合にもそのアレイに記憶されたデータを供給す
る能力を指す。システム性能はRAIDシステムとのデ
ータの送受信速度で表わされる。
【0003】RAIDシステム用に開発された5つの基
本的なアーキテクチャのうち、RAID1およびRAI
D5アーキテクチャは最もよく使用されるものである。
RAID1アーキテクチャは第1のデータ記憶装置群を
有するアレイを含み、第2のデータ記憶装置群が第1の
データ記憶装置群のデータを複製する。あるデータ記憶
装置が故障した場合に、その情報を複製装置から得るこ
とができる。このRAIDシステムの実施態様の欠点は
2倍の記憶スペースを必要とする点であることは明らか
である。
【0004】RAID5アーキテクチャはパリティデー
タを生成することによってデータの冗長性を与えるもの
である。それぞれのデータ記憶装置は同数のデータワー
ドを含む、ブロックとして知られる複数のデータ単位に
分割される。アレイ内各データ記憶装置からの、同じデ
ータ記憶装置アドレス範囲に該当するブロックは「スト
ライプ」と呼ばれる。各ストライプにパリティブロック
が関係付けられる。パリティブロックは各データブロッ
ク内の対応するデータワードの間で連続排他的論理和演
算を実行することによって生成される。あるストライプ
内のデータブロックを変更するにはそのストリップに関
係するパリティブロックを計算し直さねばならない。R
AID4システムにおいては、全てのパリティブロック
がアレイ内の1単位に記憶される。その結果、そのパリ
ティブロックを含むデータ記憶装置はアレイ内の他のデ
ータ記憶装置に対して不均衡にアクセスされる。その結
果RAID4システム内のデータフローに生じる集中を
なくすために、RAID5アーキテクチャではパリティ
ブロックがアレイ内の全てのデータ記憶装置に分散され
る。通常、RAID5システムの場合、N+1のデータ
記憶装置群によってアレイが形成される。各ストライプ
はNのデータブロックと1つのパリティデータブロック
を有する。パリティデータのブロックはN+1のデータ
記憶装置の1つに記憶される。このRAIDシステムの
他のストライプに対応するパリティブロックはアレイ内
のデータ記憶装置全体に分散して記憶される。例えば、
5つのデータ記憶装置を用いるRAID5システムで
は、第1のブロックストライプのパリティブロックは第
5の装置に、第2のブロックストライプのパリティブロ
ックは第4の駆動装置に、第3のブロックストライプの
パリティブロックは第3の駆動装置に、とういうように
記憶される。通常、アレイ内の連続するブロックのパリ
ティブロックの位置はアレイ内の連続する論理装置に移
動していくが、他のパターンを使用することもできる。
参考として、RAIDシステムのアーキテクチャおよび
性能に関するより詳細な情報を、RAID Advis
ory Board刊行のRAID Book: A
Source Book for RAID Tech
nology(1993年)に見ることができる。
【0005】RAID5アレイのN+1の記憶装置に記
憶されたデータに変更が加えられるとき、そのデータの
位置するストライプのパリティブロックも変更しなけれ
ばなならい。この変更処理は、「読み出し−変更−書き
込み」シーケンスあるいは「ライトインプレイス(wr
ite in place)」シーケンスとして知られ
るものによって行うことができる。読み出し−変更−書
き込みシーケンスでは、パリティブロックはストライプ
を形成するデータブロックの対応するワード間で排他的
論理和演算を実行する処理によって計算し直される。
【0006】ライトインプレイスシーケンスではパリテ
ィブロック内の変更される記憶位置に現在含まれるデー
タを無効にし、そのパリティブロックに新たなデータの
効果を加えることによってそのパリティブロックを計算
し直す。ライトインプレイスシーケンスを実行するに
は、変更される記憶位置を有するデータブロックに現在
記憶されたデータが読み出される。この変更される記憶
位置を含むストライプのパリティブロックの対応する部
分が読み出される。データブロックとパリティブロック
の対応する部分に現在記憶されたデータの間で排他的論
理和演算が実行され、パリティブロックに現在記憶され
たデータが無効とされる。次に、新たなデータと前の排
他的論理和演算の結果との間で排他的論理和演算が実行
される。その結果が、パリティブロックのその部分がロ
ードされた対応する位置にあるデータ記憶装置に記憶さ
れ、そのストライプに新たなデータが記憶される。
【0007】これらのパリティブロック計算方法のいず
れを用いるかは効率を考慮して決定される。これらのパ
リティブロック生成法のどれが最も効率的であるかの判
断に用いられるファクタは、RAIDシステムの構成と
変更されるデータブロックによって異なる。例えば、そ
のストライプの各部が多数のデータ記憶装置に記憶さ
れ、かかるデータ記憶装置のごく少数しか使用しないデ
ータブロックに変更が加えられていた場合、最も効率的
なパリティブロック再計算方法はライトインプレイスで
あろう。しかし、データブロックへの変更に関わるデー
タ記憶装置の数が比較的多い場合、最も効率的なパリテ
ィブロック再計算方法は読み出し−変更−書き込みであ
ろう。アレイへの各データ転送について最も効率的なパ
リティブロック再計算方法はRAIDシステムの動作を
制御するファームウェアによって決まる。
【0008】ホストコンピュータシステムにインストー
ルされたソフトウェアを用いて低コストRAIDシステ
ムを構成してRAIDシステム管理機能を実行すること
ができる。このタイプのRAIDシステムの場合、ホス
トコンピュータシステムがデータ記憶装置のアレイ全体
へのデータブロックとパリティブロックの配分を管理
し、パリティブロック計算を実行する。このことから予
想されるように、この低コストなRAIDシステム構成
は、ホストコンピュータシステムが他のデータ処理動作
を実行する能力を大きく低下させるものである。高性能
RAIDシステムにはデータ記憶装置アレイ内のデータ
ブロックおよびパリティブロックの記憶を管理するため
の専用のコントローラが用いられる。かかる高性能RA
IDシステムの場合、ホストコンピュータは1つのデー
タ記憶単位としてのRAIDシステムと対話することが
できる。
【0009】コントローラを用いた高性能RAIDシス
テムのカテゴリには、低コストコンピュータと高性能コ
ントローラとがある。低コストコントローラは自己のマ
イクロプロセッサを用いてパリティブロックの生成を実
行する。パリティブロック生成のこの実施態様は、RA
IDシステムコントローラの性能とそのコントローラの
コストとの妥協を図ったものである。高性能コントロー
ラには状態機械(state machine)あるい
は専用マイクロプロセッサといった専用のハードウェア
が用いられ、パリティブロックの生成がより高速に実行
される。
【0010】高性能コントローラに用いられる従来の専
用ハードウェアには、パリティブロックの生成に用いら
れる中間計算結果を記憶するための1つの専用メモリが
含まれる。新たなデータストライプを読み出し−変更−
書き込みシーケンスを採用し専用ハードウェアのパリテ
ィ生成論理を用いるRAIDシステムに記憶する処理は
次のように行なわれる。 1.そのストライプの1つのデータブロックがRAID
システムのデータバス上でデータ記憶装置に転送され、
RAIDコントローラ内の専用ハードウェアがそのデー
タブロックを前記の1つの専用メモリに書き込む。 2.そのストライプの次のデータブロックのデータワー
ドがRAIDシステムのデータバス上でデータ記憶装置
に転送されるとき、かかるデータワードはRAIDコン
トローラ内の専用ハードウェアにロードされる。 3.前ステップにおいてデータワードが専用ハードウェ
アにロードされるとき、前記の1つの専用メモリに記憶
された対応するデータワードあるいは前の排他的論理和
演算の結果もまた専用ハードウェアにロードされる。 4.この対応するデータワードをオペランドとして用い
て排他的論理和演算が実行される。 5.この排他的論理和演算の結果が前記の1つの専用メ
モリに書き込まれる。 6.ステップ2から始まる上記ステップが、そのストラ
イプのデータブロックの対応するワードの全てに排他的
論理和演算が実行されるまで繰り返される。 7.その結果得られるそのストライプの新たに生成され
たパリティブロックがそのストライプのパリティブロッ
クを保持するように指定されたアレイ内のデータ記憶装
置に記憶される。
【0011】
【発明が解決しようとする課題】読み出し−変更−書き
込みパリティブロック生成法では、1つの専用のメモリ
に記憶された中間結果を専用ハードウェアにロードし、
その後その1つの専用メモリにおける排他的論理和演算
の結果を、実行される各排他的論理和演算について記憶
しなければならない。パリティブロックの計算はデータ
ストライプがバス上を転送される際に行なわれる。従来
のパリティ生成論理を用いてパリティブロックを計算を
行うには、バス上で転送されるそれぞれのデータワード
についてこの1つの専用メモリに2回アクセスしなけれ
ばならない。
【0012】最高40MB/sでデータバス上のデータ
転送を行うRAIDシステムの場合、このパリティデー
タブロック生成法はバスのデータ転送速度を満足する速
度で実行可能である。100MB/sを越えるバス上の
データ転送速度を有する次世代のRAIDシステムに対
しては、このパリティブロック生成法をバス上でのデー
タストライプの転送の際にパリティブロックの生成を行
ない得るほど高速に実行することは不可能である。この
パリティブロック生成法を次世代のRAIDシステムに
用いるには、バスのデータ転送速度を低下させなければ
ならない。次世代のRAIDシステムにおいて最適な性
能を達成するためには、バスのデータ転送速度性能を低
下させないパリティブロック生成システムが必要であ
る。
【0013】
【課題を解決するための手段】本発明はバス上でのデー
タワードの転送時にパリティブロックを生成することを
可能とする。本発明はバス上でのデータ転送速度の高い
冗長アレイメモリシステムにおけるパリティブロックの
生成に特に適したものである。本発明を用いてパリティ
ブロックを生成することによって、冗長アレイメモリシ
ステムをバス上で最大データ転送速度で動作させること
ができる。
【0014】本発明はパリティ生成データワードを保持
する2つのメモリを用いることによってパリティデータ
の生成速度の向上を実現する。パリティデータブロック
内のパリティデータワードの生成は、そのデータワード
がバス上で転送される際にストライプのデータブロック
内のデータワードと対応するパリティ生成データワード
との間で排他的論理和演算を連続的に実行することによ
って行なわれる。この連続的排他的論理和演算のそれぞ
れに用いられ、またその結果得られるパリティ生成デー
タワードは、連続するデータブロックあるいはデータブ
ロックフラグメントがバス上で転送される際に2つのメ
モリの対応する位置から交互にロードされ、またかかる
位置に交互に記憶される。パリティ生成データワードの
読み出しと書き込みにメモリを交互に割り当てることに
よって、転送される各データワードについて、2つのメ
モリのうちの1つへの読み出しアクセスおよび2つのメ
モリのうちの他方への書き込みアクセスを連続して完了
するのに要する時間が、転送される各データワードにつ
いて1つのメモリへの読み出しおよび書き込みアクセス
を連続して完了するのに要する時間より短くなる。これ
によって、パリティデータブロック生成の実行速度が上
がる。
【0015】このパリティデータ生成装置はパリティ生
成・制御ユニットに結合された第1および第2のパリテ
ィメモリを含む。パリティ生成・制御ユニットはバスか
らデータワードを受け取る。パリティデータの生成中、
パリティ生成データは第1および第2のパリティメモリ
に選択的に記憶され、またそこから選択的にロードされ
る。
【0016】
【発明の実施の形態】本発明は図示する具体的実施例に
は限定されない。パリティブロック生成装置の各実施例
の諸相を効果的に説明するために3つの実施例を提示す
る。各実施例は次第に複雑かつ大きくなるパリティブロ
ックを連続して生成することを可能にするものである。
このパリティブロック生成法の第1の実施例では、デー
タブロックの分割を行なわずにそのデータブロック内の
データワードを順次転送するためのパリティブロックの
生成のみが支援可能である。このパリティブロック生成
法の第2の実施例はデータブロックの順次転送および分
割転送を支援する。このパリティブロック生成法の第3
の実施例は、データブロックのデータワードレベルへの
分割を行なった任意の順序でのデータブロックの転送を
行うためのパリティブロック生成を支援する。
【0017】パリティブロック生成装置の第1の実施例
を、5つのハードディスクドライブのアレイを有しPC
I(Peripheral Component In
terface)バスを用いた簡略化したRAID−5
システムを例にとって説明する。パリティブロック生成
装置の第2および第3の実施例もまた、PCIバスを用
いた冗長アレイメモリシステムを例にとって説明する。
しかし、当業者にはここに開示するパリティブロック生
成装置の実施例はパリティブロック生成速度の向上が有
益となるいくつかの可能なバスアーキテクチャのうちの
1つを用いた任意のシステムに適用可能であることが理
解されよう。さらに、ここに例示するRAIDシステム
に用いられるデータ記憶装置はハードディスクドライブ
であるが、一般的には、RAMを用いたメモリアレイあ
るいは磁気光学装置等の他のランダムアクセス読み出し
/書き込みデータ記憶装置を用いることができる。
【0018】図1には、RAID−5システム内のデー
タブロック間でのパリティブロック配分方法を示すため
に、RAID−5システムの概略ブロック図を示す。コ
ンピュータシステム1はバス3を介してコントローラ2
との間でデータ、コマンドおよび制御信号を送受信す
る。コントローラ2はバス4a〜4eを介してハードデ
ィスクドライブ(HDD)D1〜D5との間でデータお
よび制御信号を送受信する。通常、コントローラ2はハ
ードディスクドライブD1〜D5とコンピュータシステ
ム1との間でのデータのフローを管理し、ハードディス
クドライブD1〜D5内のデータの記憶を最適化するの
に必要な機能を実行する高性能プロセッサ(図1には示
さない)を内蔵する。コントローラ2はハードディスク
ドライブD1〜D5とコンピュータシステム1との間で
直接メモリアクセス(DMA)転送を実行する機能を有
する。
【0019】図2は図1のRAID−5システム内のハ
ードディスクドライブ上でのデータブロックおよびパリ
ティブロックの配分を示す。各コラムの最上部の符号D
1〜D5はアレイ内の個々のハードディスクドライブを
表す。RAID−5システムの有するデータ記憶装置の
数は5以上あるいは5以下である場合があることは理解
されよう。各コラムの最上部の符号の下の各項目は、そ
のコラムに対応するハードディスクドライブに記憶され
たデータブロックを表す。説明の簡略化のために、各ハ
ードディスクドライブを8ブロックの記憶容量しか有し
ないものとして示す。RAIDシステム内の各ハードデ
ィスクドライブの有するブロックの数は8以上あるいは
8以下である場合があることは理解されよう。ブロック
は「X−X」で指定され、最初の「X」はハードディス
クの番号(1〜5、これはハードディスクドライブD1
〜D5に対応する)を表わし、後の「X」はハードディ
スクドライブ内のデータブロックの番号(1〜8)を表
す。一群のデータブロックからストライプが形成され、
各ハードディスクドライブに1つのデータブロックが記
憶される。「X−X−P」で示すブロックはストライプ
に関係するパリティブロックを表す。パリティブロック
はストライプの全てのデータブロック内の対応するデー
タワードを用いて排他的論理和演算を実行することによ
って生成される。このRAID−5システムでは、パリ
ティブロックはハードディスクドライブ全体に繰り返し
パターンで分散されるが、これは必須ではない。
【0020】図3にはコントローラ2およびこのパリテ
ィブロック生成装置の第1の実施例の各要素の概略ブロ
ック図を示す。プロセッサ6はハードディスクドライブ
D1〜D5へのデータの記憶およびそこからのデータの
検索を行うためのDMAチップ15a〜15eを構成す
る高性能プロセッサである。プロセッサ6は専用バス1
6を有し、これを介してDRAM17との間のデータ転
送を行う。コンピュータシステム1からRAIDシステ
ムに最も高速にデータ転送を行うべき場合には、DRA
M7はデータの一時記憶位置として用いられる。この転
送が完了すると、プロセッサ6はDRAM7からハード
ディスクドライブD1〜D5へのDMAデータ転送を開
始する。RAIDシステムからコンピュータシステム1
に転送されるデータはハードディスクドライブD1〜D
5から直接転送することができ、あるいはハードディス
クドライブD1〜D5からDRAM7に転送し、次にコ
ンピュータシステム1に転送することもできる。第1の
パリティメモリSRAM010および第2のパリティメ
モリSRAM1 11はスタティックランダムアクセス
メモリ(SRAM)等の高速メモリ記憶装置であり、こ
れらはパリティブロックの計算に用いるためにデータブ
ロックの記憶を行ない、またパリティブロック計算の中
間結果を記憶する。
【0021】パリティ生成・制御ユニット(その第1の
実施例はPRAM制御12である)は、PCIバス4を
介してプロセッサ6からコマンドを受け取り、データ記
憶装置D1〜D5との間でのデータストライプの転送時
にPCIバス4からのデータワードをロードし、DMA
チップ15a〜15eにパリティブロックを転送し、第
1のパリティメモリSRAM0 10および第2のパリ
ティメモリSRAM111との間でデータワードを転送
し、連続的排他的論理和演算を実行する機能を有する。
さらにPRAM制御12は、例えばフリップフロップを
用いて、パリティブロックの計算において実行すべき次
の排他的論理和演算のためのオペランドとして用いるべ
きパリティ生成データが第1のパリティメモリSRAM
0 10と第2のパリティメモリSRAM1 11のど
ちらに保持されているかを判定する機能を有する。ハー
ドディスクドライブD1〜D5へのあるデータストライ
プの転送が完了する前に、パリティデータの生成のため
のデータワードがハードディスクドライブD1〜D5か
らRRAM制御12に転送されることに注意しなければ
ならない。さらに、ライトインプレイス法を用いてパリ
ティデータブロックを生成する場合、データワードに加
えてパリティデータワードがデータ記憶装置D1〜D5
からPRAM制御12に転送される。
【0022】PCIバス規格によれば、このバスに接続
された任意の装置がバスマスタとして動作することがで
きる。このバスに接続された各装置はDMA転送を実行
することができる。バス上にはアレイへの各転送のため
のバストラフィックをモニタおよび制御するための専用
のコントローラは設けられない。したがって、PRAM
制御に対してストライプの転送開始時にパリティブロッ
クの生成を開始するよう命令するバスコントローラは設
けられない。したがって、PCIバス環境においては、
図3にPRAM制御12として示すパリティ生成・制御
ユニットはパリティブロック生成を必要とするデータが
転送されていることを判定し、バスをモニタし、パリテ
ィブロックの生成に必要なデータの転送時にそれをロー
ドし、計算されたパリティブロックの転送が必要である
ときPCIバス上のスレーブとして応答する機能を有す
るものでなければならない。上述した機能はあらゆるマ
ルチマスタバスアーキテクチャに存在することを指摘し
ておく。
【0023】プロセッサ6はDMAチップ15a〜15
eをDRAM7とハードディスクドライブD1〜D5と
の間でDMA転送を実行するように構成し、またインタ
ーフェース14をインターフェース14とDRAM7と
の間でDMA転送が行なわれるように構成する。さら
に、プロセッサ6はPRAM制御12を、ハードディス
クドライブD1〜D5との間でのストライプの転送時に
パリティブロック計算を行うためにPCIバス4からの
データワードをロードするように構成する。ストライプ
の転送時に、PRAM制御12はパリティブロックを計
算する。ストライプの転送後、プロセッサ6はPRAM
制御12からハードディスクドライブD1〜D5の1つ
へのパリティブロックの転送を開始する。
【0024】パリティブロック生成処理の間、第1のパ
リティメモリSRAM0 10および第2のパリティメ
モリSRAM1 11の記憶領域にはパリティブロック
の計算に用いられるデータが保持される。このデータに
は、PCIバス4上を転送されてハードディスクドライ
ブD1〜D5に記憶される最新の排他的論理和演算の結
果であるデータブロック、あるいは新たなパリティブロ
ックのライトインプレイス生成を実行するためにハード
ディスクドライブD1〜D5から転送されるパリティブ
ロックが含まれる。PRAM制御12内のフリップフロ
ップはパリティブロック計算の中間結果であるデータブ
ロックあるいはその結果得られるパリティブロックが第
1のパリティメモリSRAM0 10と第2のパリティ
メモリSRAM1 11のどちらに保持されているかを
示す。第1のパリティメモリSRAM0 10および第
2のパリティメモリSRAM1 11に記憶されたデー
タを本明細書では「パリティ生成データ」と呼ぶ。パリ
ティ生成データワードには、第1のパリティメモリSR
AM0 10あるいは第2のパリティメモリSRAM1
11に記憶されたパリティ生成データワードとPCI
バス4からロードされたデータワードとの間での排他的
論理和演算の結果とが含まれる。また、パリティ生成デ
ータワードには、PCIバス4からロードされ、変更さ
れることなく第1のパリティメモリSRAM0 10あ
るいは第2のパリティメモリSRAM1 11に記憶さ
れるデータワードが含まれる。注目されるパリティ生成
データを保持しているメモリは「有効な内容」を有する
ものとされ、有効メモリと呼ばれる。逆に、注目される
パリティ生成データを保持していないメモリは「無効な
内容」を有するものとされ、無効メモリと呼ばれる。
【0025】図11にはPRAM制御12と第1のパリ
ティメモリSRAM0 10および第2のパリティメモ
リSRAM1 11の内部機能ブロックのブロック図を
示し、データ入出力およびアドレス入力をそれぞれ
「D」および「A」で示す。構成レジスタ群20はPC
Iバス4を介してプロセッサ6から受信されるPRAM
制御構成データを記憶する一群のレジスタである。この
構成データには、パリティメモリ10、11の基底アド
レス、転送メモリ21に記憶された転送テーブルエント
リの基底アドレス、およびPRAM制御12内のアドレ
ス指定可能なレジスタの全ての基底アドレスが含まれ
る。構成レジスタ群20を用いて基底アドレスを指定す
る場合、アドレス指定可能なレジスタの基底アドレスを
メモリマップ内の利用可能アドレス空間に対応するよう
に割り当てることを可能とすることによって、PRAM
制御12を異なるメモリマップを有するシステムに使用
可能に構成することができる。
【0026】転送メモリ21は、PCIバス4上に存在
するアドレスがパリティブロックの生成に用いられるデ
ータブロックに対応するかどうかの判定およびパリティ
メモリ10、11へのアクセスに用いるアドレスの生成
に用いられる値のn組の集合を保持する。これらn組の
値の集合はそれぞれバスアドレス、パリティメモリ基底
アドレス、および一組の比較マスクビットを含む。これ
らn組の値の集合は冗長アレイメモリシステムに記憶さ
れたnのストライプに対応するnのパリティブロックの
生成を可能とする。比較マスクビットはバスアドレスの
マスクビットへのバスアドレスに適用され、転送テーブ
ルエントリレンジを規定する。この転送テーブルエント
リレンジは対応するストライプを形成するデータブロッ
クのデータワードの全てのアドレスを含む。あるストラ
イプ中のあるデータブロックの転送が開始されるとき、
そのデータブロックの開始アドレスがPCIバス4上に
送出される、転送テーブルエントリレンジを用いてそれ
に続いてPCIバス4上で転送されるデータブロックが
その転送テーブルエントリレンジが対応するストライプ
の一部であるかどうかが判定される。パリティメモリ基
底アドレスは、対応するストライプのパリティデータブ
ロックの計算中にパリティ生成データワードの記憶に用
いられるパリティメモリ10、11のセグメントの開始
アドレスである。
【0027】アドレスラッチ23がアドレス復号器24
に復号され比較機能ブロック22において用いられるア
ドレスをPCIバス4からロードする。アドレス復号器
24は、パリティ生成データ、転送テーブルデータ、あ
るいは構成データをそれぞれ検索あるいは記憶するため
のPRAM制御12内のパリティメモリ10、11、転
送メモリ21、あるいはアドレス指定可能なレジスタの
選択に用いるアドレスラッチ23内のアドレスを復号す
る。
【0028】比較機能ブロック22は転送メモリ21内
のnのセルのそれぞれに実際に存在する比較機能を表
す。転送メモリ21のnのセルのそれぞれが、転送テー
ブルエントリレンジとアドレスラッチ23に記憶された
データブロック開始アドレスとの間の一致が存在すると
きこれを同定する機能を有する。これによって、転送テ
ーブルエントリレンジとnのセルのそれぞれにあるデー
タブロック開始アドレスとの間の一致を同時に判定する
ことを可能とする。一致のチェックを順次ではなく同時
に実行することによって、PRAM制御12は入力FI
FOレジスタ29がごく少数のワードをロードする間に
パリティブロックの計算を開始することができ、これに
よって入力FIFOレジスタ29の必要な記憶域サイズ
を縮小することができる。一致が検出されると、比較機
能ブロック22のnの出力21aの1つが表明され、そ
の一致する転送テーブルエントリレンジを有する転送テ
ーブルエントリの1つが示される。アドレス処理ブロッ
ク25は比較機能ブロック22からのnの出力を受け取
り、アドレスラッチ23の内容とこの表明された出力に
対応する転送メモリ21からのパリティメモリ基底アド
レスとをロードする。アドレスラッチ23内のアドレス
の下位ビットがパリティメモリ基底アドレスと組み合わ
せられ、パリティデータブロック生成の対象となるスト
ライプに対応する、パリティメモリ10、11のセグメ
ント内の適当な位置をアドレス指定するアドレスが生成
される。このアドレスがパリティメモリアドレスカウン
タ27にロードされる。そのブロックのデータワードが
転送されるとき、パリティメモリアドレスカウンタ27
がインクリメントされ、PCIバス4上で次に転送すべ
きデータワードに対応するパリティ生成データワードを
記憶するためのパリティメモリ10、11のアドレスが
指示される。
【0029】ストライプ内の最初に転送されるデータブ
ロックのデータワードが有効な内容を有するものと示さ
れるパリティメモリ10、11に記憶される。それに続
いて転送されるデータブロックのデータワードが先に記
憶された対応するパリティ生成データワードと排他的論
理和され、有効な内容を有するものとして示されたパリ
ティメモリ10、11に記憶される。最初に転送された
データブロックからのデータワードがロードされた、転
送中のストライプに対応するパリティメモリ10、11
内のセグメント内の位置を追跡する方法が必要とされ
る。トップカウンタ26がこの役割をはたす。ストライ
プの転送が開始される前に、トップカウンタ26にその
ストライプに関係するパリティメモリ基底アドレスに対
応する値がロードされる。この値は転送メモリ21に記
憶されたn組の値の集合とともに記憶される。このスト
ライプの最初のデータブロックのデータワードが転送さ
れ適当なパリティメモリに記憶されるとき、トップカウ
ンタ26がインクリメントされる。トップカウンタ26
はパリティメモリ10、11内のそれ以前にデータワー
ドが記憶された位置を示す。トップカウンタ26内の対
応する値より小さいアドレスを有するパリティメモリ1
0、11内の位置にはそれ以前にデータワードがロード
されている。比較機能ブロック28が、パリティメモリ
アドレスカウンタ27がトップカウンタ26の値に等し
い値を有するかどうかをこれらのカウンタの値を比較す
ることによって判定する。そのストライプの転送が別の
ストライプが転送されるまで中断される場合、トップカ
ウンタ26の値が転送メモリ21に記憶され、そのスト
ライプの転送が再開されるとき再びロードされる。
【0030】入力FIFOレジスタ29が、PCIバス
4からロードされたデータワードを、それらを排他的論
理和演算ブロック30に送ってそれらのデータワードと
パリティ生成データワードすなわちデジタル値0との間
でビット毎の排他的論理和演算を実行する必要が生じる
まで保持する。出力FIFO31がパリティブロックワ
ードを、それらがPCIバス4上をDMAチップ15a
〜15eに送られるまでの間保持する。パリティブロッ
クの生成中、パリティメモリアドレスカウンタ27の値
がトップカウンタ26の値に等しい場合、比較機能ブロ
ック28からの制御出力がマルチプレクサ32に対し
て、入力FIFOレジスタ29からのデータワードとの
排他的論理和演算を実行するべくデジタル値0を選択す
ることを命令する。デジタル値0をオペランドとして排
他的論理和演算を実行すると、データワードは変更され
ない。ストライプの最初に転送されるデータブロックの
各データワードがパリティメモリ10、11の一方に変
更されずに記憶される。この機能は、パリティメモリア
ドレスカウンタ27の値がトップカウンタ26の値に等
しい場合に排他的論理和演算ブロック30をバイパスす
るマルチプレクサを用いることによって、これに代わる
方法で実行することができる。パリティメモリアドレス
カウンタ27の値がトップカウンタ26の値より小さい
場合、比較機能ブロック28の制御出力は、マルチプレ
クサ32にパリティメモリ10、11の一方からアクセ
スされたパリティ生成データワードを選択して排他的論
理和演算ブロック30に入力するように命令する。
【0031】フリップフロップ33はそれぞれがn組の
転送テーブルエントリ群の1つに関係付けられたnのフ
リップフロップ群を表す。nのフリップフロップ33の
それぞれは、対応するストライプの有効なパリティ生成
データを有するパリティメモリの追跡に用いられる。フ
リップフロップ33の出力はマルチプレクサ34の入力
の1つの出力への接続を制御するのに用いられる。パリ
ティブロックの生成中、有効なパリティメモリからアク
セスされたパリティ生成データワードが排他的論理和演
算ブロック30の入力に送られ、PCIバス4からロー
ドされたデータワードとの排他的論理和演算を実行する
際のオペランドとして用いられる。この排他的論理和演
算の結果が、オペランドの1つとしてパリティ生成デー
タワードが用いられたかデジタル値0が用いられたかに
かかわらず、フリップフロップ33によって無効な内容
を有するものとして示されたパリティメモリに記憶され
る。パリティメモリアドレスカウンタ27はこの排他的
論理和演算の結果が記憶されるパリティメモリ内のアド
レスを供給する。フリップフロップ33の出力を用い
て、この結果を無効パリティメモリに送り記憶するため
のバッファ35、36のいずれかの選択が制御される。
データブロックの転送が完了すると、フリップフロップ
33がトグルされ、有効な内容を含むパリティメモリ1
0、11が示される。
【0032】このシステムの図示する要素に入る終端を
示さない矢印はそれぞれ制御信号を表す。図11に示す
ようなPRAM制御12の機能を実行するためのハード
ウェアの設計に用いる技術はデジタル設計技術に精通す
る者には周知である。
【0033】図3および図11のハードウェアを用いた
第1のパリティブロック生成法を図4および図5のフロ
ーチャートに示す。この第1の方法はデータストライプ
をDRAM7からハードディスクドライブD1〜D5に
転送する場合に適用される。さらに、データブロックの
データワードの転送は、連続するアドレスを有するデー
タワードが分割されることなく(分割とは転送が不完全
なデータブロックからなる場合を指す)連続して転送さ
れ(順次転送)、データブロックが順次転送されるよう
に行なわれなければならない。データブロックのインタ
ーリーブ転送は許されない。
【0034】まず、プロセッサ6がPRAM制御12内
の転送メモリ21あるいは構成レジスタ群20がアドレ
ス指定されているかどうかを判定する(100)。転送
メモリ21と構成レジスタ群20のうちのいずれかある
いはその両方がアドレス指定されている場合、それぞれ
がバスアドレス値、マスクビット群、パリティメモリ基
底アドレス(これはトップカウンタの初期値ともなる)
を含むnのデータ群をロードすることによって転送メモ
リ21が(116)、また構成データをロードすること
によって構成レジスタ群20が(116)適宜構成され
る。次に、制御はステップ100に返され、PCIバス
4上に送出された次のアドレスがチェックされる。ステ
ップ100において、転送メモリ21と構成レジスタ群
20のいずれもアドレス指定されていないと判定される
と、PRAM制御12はPCIバス4上に現れるアドレ
スがパリティメモリ10、11内のある位置のアドレス
に対応するかどうかを判定する(101)。一致が検出
されない場合、PRAM制御12はPCIバス4上に現
れるアドレスが転送テーブルエントリレンジ内にあるか
どうかを判定する(102)。一致が検出されない場
合、制御はステップ100に戻り、このループが繰り返
される。一致が検出されると、PRAM制御12はトッ
プカウンタ26およびパリティメモリアドレスカウンタ
27に適当な値をロードする(103)。次に、PRA
M制御12は入力FIFOレジスタ29からのデータワ
ードを排他的論理和演算ブロック30にロードする(1
04)。入力FIFOレジスタ29はPCIバス4上で
転送されるデータワードをDMAチップ15a〜15e
の1つにロードする。データワードは一致が検出される
前に転送開始時に入力FIFOレジスタ29にプリロー
ドされ、したがって一致が検出されたときデータワード
を用いてパリティデータの計算を開始することができ
る。データワードの転送開始前に転送テーブルエントリ
レンジとPCIバス4上に現れるアドレスとの間に一致
が検出されない場合、データワードは放棄される。
【0035】次に、PRAM制御12が排他的論理和演
算ブロック30内のデータワードに対応するパリティメ
モリ内の1対の対応する位置のうちの1つにデータが記
憶されているかどうかを判定する(105)。これは、
比較機能ブロック28を用いてパリティメモリアドレス
カウンタ27の値をトップカウンタ26の値と比較する
ことによって行なわれる。パリティメモリアドレスカウ
ンタの値がトップカウンタの値より小さい場合、これは
その位置にデータワードが記憶されていることを意味す
る。パリティメモリアドレスカウンタ27の値がトップ
カウンタの値と等しい場合、このデータワードはデジタ
ル値0と排他的論理和され、無効メモリ位置に記憶され
る(109)。次に、トップカウンタ26がインクリメ
ントされる(110)。
【0036】パリティメモリアドレスカウンタの値がト
ップカウンタの値より小さい場合、有効メモリから対応
するパリティ生成データワードがロードされる(10
6)。次に、これらのパリティ生成データワードおよび
データワードをオペランドとして用いて排他的論理和演
算が実行される(107)。この排他的論理和演算の結
果が有効メモリからロードされたパリティ生成データワ
ードの位置に対応する無効メモリの位置に記憶される
(108)。
【0037】トップカウンタ26がインクリメントされ
る(105)かあるいは排他的論理和演算の結果が記憶
された(108)後、パリティメモリアドレスカウンタ
27がインクリメントされ、パリティ生成データワード
の記憶およびローディングに用いられるパリティメモリ
10、11内の次の位置の対が指示される(111)。
次に、PRAM制御12が入力FIFOレジスタ29を
チェックすることによってそのデータブロックの転送が
完了したかどうかを判定する(112)。完了していな
い場合、制御はステップ104に戻される。完了してい
れば、フリップフロップ33がトグルされ、現在2つの
パリティメモリ10、11のどちらが有効メモリである
かが示され(113)、続いてトップカウンタの値が転
送メモリ21に記憶される(114)。
【0038】次に、制御はステップ100に戻され、転
送メモリ21あるいは構成レジスタ群20が構成を行う
ようアドレス指定されているか、パリティメモリ10、
11がアドレス指定されているか、あるいは次のデータ
ブロックの開始アドレスがPCIバス4上に送出されて
いるかが判定される。パリティメモリ10、11が読み
出し動作のためにアドレス指定されている場合、出力F
IFO31を介してパリティブロックデータワードが順
次転送される(115)。
【0039】この第1のパリティブロック生成法は1つ
のメモリを用いてパリティ生成データを保持する従来の
方法より高速に実行することができる。この方法では、
第1のパリティメモリSRAM0 10と第2のパリテ
ィメモリSRAM1 11の1つがロードされるパリテ
ィ生成データを供給するメモリとして、他方は排他的論
理和演算の結果が記憶されるメモリとして交互に用いら
れる。この方法を用いるには、排他的論理和演算が実行
されるたびに第1のパリティメモリSRAM010と第
2のパリティメモリSRAM1 11のそれぞれに1回
アクセスしなければならない。1つのメモリを用いる従
来の方法では、排他的論理和演算が実行されるたびにこ
の1つのメモリへの読み出しアクセスと書き込みアクセ
スが必要である。この1つのメモリへのバスが読み出し
状態から書き込み状態に、あるいは書き込み状態から読
み出し状態に切り替わるとき、バスは接続された装置間
の競合を避けるためにトライステート状態にしなければ
ならない。このトライステート状態に達する際のバスの
ために必要とされる遅延がこの1つのメモリへの各アク
セスに生じる。トライステート状態に達するまでに要す
る時間はメモリ装置へのアクセス時間より長い場合もあ
る。この遅延によって従来の実施態様におけるパリティ
ブロック生成速度が大幅に低下する。データブロックが
連続して転送される際にパリティ生成データワードのロ
ーディングおよび記憶に専用の2つのメモリを交互に用
いることによって、トライステート状態になるための遅
延はデータブロックの各転送の合間にのみ生じる。した
がって、2つのメモリを用いることによってパリティデ
ータブロックの生成速度が大幅に上がる。
【0040】2つのメモリを用いることによって、パリ
ティデータブロックの生成速度に関してもう一つの利点
がある。1つのメモリを用いる場合、読み出しアクセス
とそれに続く書き込みアクセスを実行するのに要する総
時間は読み出しアクセス時間、書き込みアクセス時間お
よびトライステート状態に達するまでの遅延の和に等し
い。このパリティブロック生成装置の各実施例では2つ
の別個のメモリが用いられるため、読み出しアクセスと
書き込みアクセスの性能をパイプライン処理して、読み
出しアクセスと書き込みアクセスの両方の実行に要する
総時間を読み出しアクセス時間と書き込みアクセス時間
の和より短くすることができる。実際に、現在の排他的
論理和演算の結果について書き込みアクセスが実行され
ている時間中に次の排他的論理和演算に必要なパリティ
生成データワードを先取りするための読み出しアクセス
を用いることによって、読み出しアクセス時間と書き込
みアクセス時間の和を、1つのパリティメモリを用いる
実施態様に要する読み出しアクセス時間と書き込みアク
セス時間の和の半分に短縮することができる。
【0041】最新世代のRAIDシステムにもPCIバ
スが用いられる。データブロックの分割転送および/ま
たは順次転送を支援するPCI環境におけるパリティブ
ロックの生成には、解決しなければならない固有の問題
がある。図6のPRAM制御62は一般には任意の転送
順序および転送サイズのデータブロックを処理し、ブロ
ック転送を個々のワードにまで分割可能な環境における
パリティブロックの生成を支援する機能を持っていなけ
ればならない。これは、図3のシステムの動作に要する
ものに比べてパリティ生成・制御ユニットの機能のかな
りの拡張となる。
【0042】図6にはPCIバス51を用いる冗長アレ
イメモリシステムを示す。PCIバス51のデータ経路
の幅は通常32ビットあるいは64ビットである。プロ
セッサ53はシステム性能パラメータの最適化の達成に
要する記憶システムの各種の機能を制御するRISCを
用いたプロセッサ等の高性能プロセッサである。プロセ
ッサ53はブリッジ59を介してPCIバス51にイン
ターフェースされる。プロセッサ53はプロセッサバス
64上で専用メモリ65間のデータ転送を行う。ホスト
コンピュータインターフェース54がホストコンピュー
タ52とPCIバス51との間の通信を処理する。ホス
トコンピュータ52とホストコンピュータインターフェ
ース54とを接続するバス55は周辺装置と通信するコ
ンピュータシステムに用いられる任意のバスタイプとす
ることができる。
【0043】図6に例示する記憶システムはPCIバス
51に接続された4つの記憶装置アレイコントローラ5
6a〜56dを含む。これらの記憶装置アレイコントロ
ーラ56a〜56dはそれぞれ対応するデータ記憶装置
56a1〜56d6へのデータの記憶およびそこからの
データの検索を管理する。この記憶システムにはDRA
Mアレイ57とそれに関係付けられたメモリコントロー
ラ58が含まれる。データ記憶装置56a1〜56d6
のアレイに対するDRAMアレイ57の高速なアクセス
時間によってホストコンピュータ52と記憶システムと
の間のデータ転送速度を向上させることができる。ホス
トコンピュータ52から記憶システムに転送される全て
のデータがDRAMアレイ57に記憶され、ホストによ
る転送の実行に要する時間が最小限となる。記憶システ
ムはデータアクセスの頻度に応じてデータをデータ記憶
装置56a1〜56d6に移動させる。ホストコンピュ
ータ52によって頻繁にアクセスされるデータブロック
はDRAMアレイ57にキャッシュされる。データ記憶
装置56a1〜56d6からホストコンピュータ52に
データが転送されるとき、そのデータの一部がまずDR
AMアレイ57にロードされる。DRAMアレイ57か
らホストコンピュータ52にデータが転送されるとき、
データ記憶装置56a1〜56d6からDRAMアレイ
57に追加のデータが転送される。図6の記憶システム
は4つの記憶装置アレイコントローラ56a〜56dお
よびこれらの記憶装置アレイコントローラのそれぞれに
対する6つのデータ記憶装置を用いるものとして示され
ているが、当業者には記憶システムはこれ以上あるいは
これ以下の数の記憶装置アレイコントローラおよびデー
タ記憶装置を用いて構成することができることが理解さ
れよう。
【0044】各記憶装置アレイコントローラ56a〜5
6dおよびメモリコントローラ58は対応するデータ記
憶装置56a1〜56d6とDRAMアレイ57との間
でPCIバス51を用いてDMA転送を開始する機能を
有する。これらのDMA転送はプロセッサ53が直接介
入することなく実行される。データ記憶装置56a1〜
56d6へのDMAデータ転送はPRAM制御62によ
るパリティブロック生成を複雑化させる。図6にはPR
AM制御62を有するパリティブロック生成装置の第2
の実施例が示されている。図3のシステムと同様に、プ
ロセッサ53はデータ記憶装置56a1〜56d6への
全ての転送を制御するわけではないため、DRAMアレ
イ57からデータ記憶装置56a1〜56d6へのスト
ライプの転送が発生するとき、DRAMアレイ57にパ
リティブロックの生成を開始させることはない。PRA
M制御62はPCIバス51上の転送をモニタし、PR
AMによる計算を必要とする転送を判定し、それに応じ
て必要なパリティブロック生成動作を実行する機能を持
っていなければならない。さらに、この記憶システムの
動作機能から、PRAM制御62は一般的には任意の順
序で転送される任意のサイズの分割されたブロックに対
してパリティブロック生成動作を実行することができな
ければならない。
【0045】図6の記憶システム内のPRAM制御62
によるパリティブロックの生成を2つの場合について説
明する。まず、このパリティブロックの生成を、DMA
転送を制御するバスマスタとして動作する記憶装置アレ
イコントローラ56a〜56dがPCIバス51上をD
RAMアレイ57からデータ記憶装置56a1〜56d
6のアレイに転送される連続するワードが対応する連続
するアドレスを持つように転送を実行するPRAM制御
62の第2の実施例について説明する。前述したよう
に、これは順次転送と呼ばれる。データブロックの分割
転送も可能である。次に、このパリティブロックの生成
を、ブロック内のデータを任意の順序で転送可能であ
り、またデータブロックの分割転送も可能なPRAM制
御62の第3の実施例について説明する。
【0046】プロセッサ53は転送テーブルデータを生
成し、これをPRAM制御62に送って、PRAM制御
62をDRAMアレイ57からデータ記憶装置56a1
〜56d6へのDMA転送中にパリティブロック生成を
行うように構成する。この転送テーブルデータには、D
MA転送中に移動されるDRAMアレイ57内のデータ
ブロックのアドレスが含まれる。記憶装置アレイコント
ローラ56a〜56dはかかる転送の間はバスマスタと
なる。PRAM制御62はPCIバス51上の動作をモ
ニタする。DRAMアレイ57に記憶されたストライプ
のDMA転送にかかわるデータブロックあるいはデータ
ブロックフラグメントの開始アドレスがそのストライプ
に対応する(対応する転送テーブルエントリのバスアド
レスおよびマスクビットから計算された)転送テーブル
エントリレンジに一致するとき、PRAM制御62はP
CIバス51からロードされるデータワードが記憶装置
アレイコントローラ56a〜56dに転送されるときこ
れらのデータワードを用いてパリティブロックを計算す
る。PCIバス51からデータワードをロードするため
のハードウェアはPRAM制御62に含まれる。
【0047】PRAM制御62には第1のパリティメモ
リSRAM0 60および第2のパリティメモリSRA
M1 61が結合されている。これらの等しい大きさの
メモリを用いてパリティブロック生成処理中にパリティ
生成データワードが記憶される。好適には、第1のパリ
ティメモリSRAM0 60および第2のパリティメモ
リSRAM1 61には高速スタティックランダムアク
セスメモリが用いられる。
【0048】有効内容メモリ63がパリティブロック計
算に用いられる有効な内容を有する第1のパリティメモ
リSRAM0 60あるいは第2のパリティメモリSR
AM1 61の一方を追跡する。有効内容メモリ63は
第1のパリティメモリSRAM0 60あるいは第2の
パリティメモリSRAM1 61の一方のアドレス空間
に記憶可能な各データワードに対して、有効内容ビット
と呼ばれる1つのビットを記憶する。この有効内容ビッ
トの状態は、このアドレス空間内の対応するワードに関
して注目されるパリティ生成データを第1のパリティメ
モリSRAM060と第2のパリティメモリSRAM1
61のどちらが保持しているかを示す。有効内容メモ
リ63内のワードの幅は読み出される有効内容メモリの
各ワードについて処理すべきデータワードの所望の数に
基づいて選択される。例えば、有効内容メモリの幅を1
6ビットとすると、読み出される有効内容メモリの各ワ
ードについてPRAM制御62によって16ワードのブ
ロックフラグメントを処理することができる。
【0049】PRAM制御62の第2の実施例はデータ
ブロックの順次分割転送を支援するものである。PRA
M制御62の内部では、トップカウンタ26を用いたパ
リティブロックの計算中、データワードの記憶に用いら
れていたパリティメモリ60、61内の記憶位置が追跡
される。最初のデータブロックが転送される際にパリテ
ィメモリ60、61の一方にデータワードがロードされ
るとき、トップカウンタは第1のパリティメモリSRA
M0 60あるいは第2のパリティメモリSRAM1
61のこの最初のデータブロックからのデータワードが
まだロードされていない部分を示す。第1のパリティメ
モリSRAM0 60あるいは第2のパリティメモリS
RAM1 61内のトップカウンタの値より小さいアド
レスにはこの最初に転送されるブロックのデータワード
がロードされている。トップカウンタのアドレスにある
アドレスには最初のデータブロックの転送中にはデータ
ワードが転送されない。そのストライプの次のデータブ
ロックフラグメントがPCIバス51上を転送されると
き、このフラグメントのアドレスレンジとトップカウン
タの値はそのフラグメントが適当なパリティメモリ6
0、61に直接書き込まれるかどうか、あるいはパリテ
ィメモリの1つに記憶されたパリティ生成データとの排
他的論理和演算が必要であるかどうかを示す。
【0050】図12は分割されたデータブロックの順次
転送を実行する実施態様に用いられるPRAM制御62
の概略ブロック図である。本実施態様では、PRAM制
御62はPCIバス51に接続されている。図11に示
すものと対応するブロックは同じ機能を有する。かかる
ブロックの機能についてはここでは説明しない。有効内
容メモリ63はパリティメモリ60、61のメモリスペ
ース内のパリティ生成データワードのそれぞれに対応す
るビットを記憶する。それぞれ「D」および「A」の符
号を付したデータ入力およびアドレス入力が示されてい
る。有効内容メモリアドレスカウンタ37が処理すべき
次のデータワード群に対応する有効内容メモリワードを
保持する有効内容メモリ63内の位置を指示する。有効
内容メモリアドレスカウンタ37へのアドレス入力の下
位ビットは、パリティブロックの生成中に、有効内容メ
モリアドレスカウンタ37が有効内容メモリワードに対
応するデータワード群が処理された後にのみインクリメ
ントされるようにマスクされる。
【0051】先取りラッチ38はパリティブロックの生
成中処理すべき次のデータワード群に対応する有効内容
メモリワードを保持する。ライトバックラッチ39は最
後に処理されたデータワード群に対応する更新された有
効内容メモリワードを保持する。この有効内容メモリワ
ードのビットはパリティメモリ60、61のどちらが有
効な内容を有するかを反映するように変更されている。
バッファ40は、更新された有効内容メモリワードが有
効内容メモリ63に書き込まれるとき、ライトバックラ
ッチ39の出力を有効内容メモリ63のデータ入力に接
続する。有効内容処理機能ブロック41が、データワー
ドが有効な内容を有するパリティメモリ60、61を反
映するように処理されるとき、有効内容メモリワードの
ビットを変更する。
【0052】図7および図8にはパリティ生成装置の第
2の実施例を用いた第2のパリティブロック生成法のフ
ローチャートを示す。この第2のパリティブロック生成
法を説明するために、ストライプ内のデータブロックの
転送が分割され、順次実行されるものと仮定する。ホス
トコンピュータから転送されるデータはまずDRAMア
レイ57に記憶される。DRAMアレイ57に十分なデ
ータが蓄積された後、DRAMアレイ57とデータ記憶
装置56a1〜56d6の間でストライプが転送され
る。PCIバス51上の転送は、バスマスタによるバス
制御の調停、バスマスタによるバス上で転送すべきデー
タブロックあるいはデータブロックフラグメントの開始
アドレスの送出、およびそれに続く目標装置によるその
ブロックあるいはフラグメントのデータワードのバス上
への送出、という態様で行なわれる。これらの転送にお
いて、バスマスタは記憶装置アレイコントローラ56a
〜56dのうちの1つであり、スレーブ装置はDRAM
アレイ57である。
【0053】まず、プロセッサ53がPRAM制御62
内の転送メモリ21あるいは構成レジスタ群20がアド
レス指定されているかどうかを判定する(200)。転
送メモリ21と構成レジスタ群20のうちのいずれかあ
るいはその両方がアドレス指定されている場合、それぞ
れがバスアドレス値、マスクビット群、パリティメモリ
基底アドレス(これはトップカウンタの初期値ともな
る)を含むnのデータ群をロードすることによって転送
メモリ21が(223)、また構成データをロードする
ことによって構成レジスタ群20が(223)適宜構成
される。次に、制御はステップ200に返され、PCI
バス51上に送出された次のアドレスがチェックされ
る。ステップ200において、転送メモリ21と構成レ
ジスタ群20のいずれもアドレス指定されていないと判
定されると、PRAM制御62はPCIバス51上に現
れるアドレスがパリティメモリ60、61内の位置のア
ドレスに対応するかどうかを判定する(201)。一致
が検出されない場合、PRAM制御62はPCIバス5
1上に現れるアドレスが転送テーブルエントリレンジ内
にあるかどうかを判定する(202)。一致が検出され
ない場合、制御はステップ200に戻り、このループが
繰り返される。転送テーブルエントリレンジとの一致が
検出されると、PRAM制御62はトップカウンタ26
およびパリティメモリアドレスカウンタ27に適当な値
をロードする(203)。次に、PRAM制御62はP
CIバス51上にあったアドレスに対応する有効内容メ
モリワードを先取りラッチ38を介して有効内容処理機
能ブロック41にロードし、連続するアドレスを有する
先取りされた有効内容メモリワードを先取りラッチ38
にロードする(204)。次に、PRAM制御62は入
力FIFOレジスタ29から排他的論理和演算ブロック
30にデータワードをロードする(205)。入力FI
FOレジスタ29はPCIバス51上で転送されるデー
タワードを記憶装置アレイコントローラ56a〜56d
にロードする。データワードは一致が検出される前に転
送開始時に入力FIFOレジスタ29にプリロードさ
れ、したがって一致が検出されたときデータワードを用
いてパリティデータの計算を開始することができる。デ
ータワードの転送開始前に転送テーブルエントリレンジ
とPCIバス51上に現れるアドレスとの間に一致が検
出されない場合、データワードは放棄される。
【0054】次に、PRAM制御62が排他的論理和演
算ブロック30内のデータワードに対応する無効メモリ
内の位置にデータワードが記憶されているかどうかを判
定する(206)。これは、比較機能ブロック28を用
いてパリティメモリアドレスカウンタ27の値をトップ
カウンタ26の値と比較することによって行なわれる。
パリティメモリアドレスカウンタの値がトップカウンタ
の値より小さい場合、これはその位置にすでにデータワ
ードが記憶されていることを意味する。パリティメモリ
アドレスカウンタ27の値がトップカウンタの値と等し
い場合、このデータワードはデジタル値0と排他的論理
和され、無効メモリ位置に記憶される(210)。次
に、トップカウンタ26がインクリメントされる(22
1)。
【0055】パリティメモリアドレスカウンタの値がト
ップカウンタの値より小さい場合、有効内容ビットによ
って判定された有効メモリから対応するパリティ生成デ
ータワードがロードされる(207)。次に、これらの
パリティ生成データワードおよびデータワードをオペラ
ンドとして用いて排他的論理和演算が実行される(20
8)。この排他的論理和演算の結果が有効メモリからロ
ードされたパリティ生成データワードの位置に対応する
無効メモリの位置に記憶される(209)。
【0056】トップカウンタ26がインクリメントされ
る(211)かあるいは排他的論理和演算の結果が記憶
された(209)後、パリティメモリアドレスカウンタ
27がインクリメントされ、パリティ生成データワード
の記憶およびローディングに用いられるパリティメモリ
60、61内の次の位置の対が指示される(212)。
次に、対応する有効内容メモリワードビットの状態が、
現在パリティメモリ60、61のどちらが有効なパリテ
ィ生成データワードを保持しているかを示すように変更
される(213)。次に、PRAM制御62が入力FI
FOレジスタ29をチェックすることによってそのデー
タブロックあるいはデータブロックフラグメントの転送
が完了したかどうかを判定する(214)。完了してい
れば、有効内容処理機構ブロック41内の有効内容メモ
リワードがライトバックラッチ39に移動され、有効内
容メモリ63に記憶される(215)。さらに、トップ
カウンタの値が転送メモリ21に記憶される(21
5)。その後、制御はステップ200に戻される。
【0057】データブロックあるいはデータブロックフ
ラグメントの転送が完了していない場合、PRAM制御
62は最後に処理されたパリティ生成データワードが有
効内容メモリワードに含まれたパリティ生成データワー
ドのレンジの最後のワードであるかどうかを判定する
(216)。そうであれば、有効内容処理機能ブロック
41に保持された有効内容メモリワードがライトバック
ラッチ39に転送され、その後有効内容メモリ63に記
憶される(217)。次に、先取りラッチ38に保持さ
れた前に取り出された有効内容メモリワードが有効内容
処理機能ブロック41にロードされる(218)。次
に、有効内容メモリアドレスカウンタ37がインクリメ
ントされ、有効内容処理機能ブロック41に最後に転送
された有効内容メモリワードの連続するアドレスを有す
る有効内容メモリワードが指示される(219)。その
後、この有効内容メモリワードが有効内容メモリ63か
ら先取りラッチ38に転送される(220)。最後に処
理されたパリティ生成データワードが有効内容メモリワ
ードに含まれたパリティ生成データワードのレンジの最
後のワードでない場合、制御はステップ205に戻され
る。
【0058】パリティブロックの生成が完了すると、P
RAM制御62はステップ200、201および202
を実行しながらPCIバス51上に送出されるアドレス
をモニタする。パリティブロックは、DMAマスタの制
御のもとにパリティメモリ60、61のうちそれが存在
する方からデータ記憶装置56a1〜56d6の1つに
転送される。DMAマスタがPCIバス51上にパリテ
ィメモリ基底アドレスレンジ内のアドレスを送出するこ
とによってパリティメモリ60、61への読み出しアク
セスを実行するとき、PRAM制御62は有効なパリテ
ィメモリからのパリティブロックデータワードを出力F
IFO31を介してPCIバス51に順次転送する(2
21)。PRAM制御62は選択可能な有効内容ビット
初期化機能を有する。パリティメモリがキャッシュメモ
リとして用いられる場合、有効内容メモリビットは有効
内容メモリの読み出し中初期化されない。PRAM制御
62が有効内容メモリビットの初期化を行うように設定
されている場合、PRAM制御62は、PCIバス51
へのパリティブロックデータワードの転送時に、次のデ
ータストライプの転送に備えて対応する有効内容メモリ
ビットの状態をチェックし、初期化する(222)。
【0059】パリティ生成データワードは、そのストラ
イプのデータブロックのデータワードがPCIバス51
上を転送されるときに第1のパリティメモリSRAM0
60と第2のパリティメモリSRAM1 61との間
を移動する。パリティ生成装置の第1の実施例の場合と
同様に、パリティブロック生成の進行中に第1のパリテ
ィメモリSRAM0 60と第2のパリティメモリSR
AM1 61とを読み出しと書き込みに交互に用いるこ
とによって、PRAM制御62とこれらのスタティック
RAMとの間のデータ転送を、PCIバス51上でのス
トライプデータの転送時にパリティブロックを生成でき
るだけの高い速度で実行することができる。PCIバス
51上で高速データ転送が行なわれる環境では、これは
PRAMメモリに1つのスタティックRAMを用いる従
来の方法に比べてデータ転送性能の向上をもたらすもの
である。
【0060】そのストライプの全てのデータワードの転
送が終了すると、得られたパリティブロックは全て一方
のスタティックRAM内に存在し、有効内容ビットは全
て同じ状態にある。これは、初期の各データブロックフ
ラグメントが同じスタティックRAMにロードされ、パ
リティブロックの各ワードの計算に要する排他的論理和
演算の数が同じであるためである。このため、有効内容
メモリビットの初期化は電源投入後、転送打ち切り後、
あるいはブロックサイズが変更されるときにのみ実行す
ればよい。しかし、各ストライプの転送後に有効内容ビ
ットを初期化しない場合は、有効内容ビットの状態とパ
リティメモリの間の関係を追跡する方法が必要となる。
【0061】PRAM制御62の第3の実施例を用いる
パリティ生成装置の第3の実施例には、有効内容メモリ
63内に、パリティブロックの計算中にまだ初回書き込
みの行なわれていないスタティックRAMの位置を追跡
するための追加のビットが用いられる。第1アクセスビ
ットと呼ばれるこの追加ビットはパリティブロックの計
算中に第1のパリティメモリSRAM0 60と第2の
パリティメモリSRAM1 61のどちらが有効メモリ
であるかを追跡するのに用いられる有効内容ビットと対
を成す。この第1アクセスビットを用いることによっ
て、ストライプ中のブロックのフラグメントの転送を、
トップカウンタを用い順次転送を必要とした第2の実施
例と違って、任意の順序で行うことができる。
【0062】図13にはPRAM制御62のこの第3実
施例の内部機能ブロックのブロック図を示す。図11お
よび図12に示すブロックに対応するブロックはそれら
と同じ機能を有する。かかるブロックの機能については
説明を繰り返さない。第1アクセスビットを各有効内容
ビットと対にすることによって、トップカウンタ26が
不要となる。その結果、比較機能ブロック28が不要と
なる。PRAM制御62のこの第3実施例においては、
有効内容処理機能ブロック41はデータワードの処理時
に第1アクセスビットおよび有効内容ビットを変更する
機能を有する。第1アクセスビットは、パリティブロッ
クの生成中に、データワードが前に書き込まれたパリテ
ィメモリ60、61のアドレスレンジ内のアドレスを示
す。PRAM制御の各実施例は好適には1つの専用集積
回路上で実施される。
【0063】図9および図10には、このパリティブロ
ック生成装置の第3実施例を用いたパリティブロック生
成法のフローチャートを示す。第2のパリティブロック
生成法の場合と同様に、パリティブロックの計算はPC
Iバス51上でのデータストライプの転送時に行なわれ
る。この第3のパリティブロック生成法を説明の目的
上、ストライプ中のデータブロックの転送は分割され、
また転送は順次に行なわれないものと仮定する。ホスト
コンピュータから転送されるデータはまずDRAMアレ
イ57に記憶される。DRAMアレイ57に十分なデー
タが蓄積されると、DRAMアレイ57とデータ記憶装
置56a1〜56d6との間でストライプの転送が行な
われる。PCIバス51上でのデータ転送に用いられる
プロトコルは第2のパリティブロック生成法について説
明したものと同様である。
【0064】まず、プロセッサ53がPRAM制御62
内の転送メモリ21あるいは構成レジスタ群20がアド
レス指定されているかどうかを判定する(300)。転
送メモリ21と構成レジスタ群20のうちのいずれかあ
るいはその両方がアドレス指定されている場合、それぞ
れがバスアドレス値、マスクビット群、パリティメモリ
基底アドレス(これはトップカウンタの初期値ともな
る)を含むnのデータ群をロードすることによって転送
メモリ21が(323)、また構成データをロードする
ことによって構成レジスタ群20が(323)適宜構成
される。次に、制御はステップ300に返され、PCI
バス51上に送出された次のアドレスがチェックされ
る。ステップ300において、転送メモリ21と構成レ
ジスタ群20のいずれもアドレス指定されていないと判
定されると、PRAM制御62はPCIバス51上に現
れるアドレスがパリティメモリ60、61内の位置のア
ドレスに対応するかどうかを判定する(301)。一致
が検出されない場合、PRAM制御62はPCIバス5
1上に現れるアドレスが転送テーブルエントリレンジ内
にあるかどうかを判定する(302)。一致が検出され
ない場合、制御はステップ301に戻り、このループが
繰り返される。一致が検出されると、PRAM制御62
はパリティメモリアドレスカウンタ27および有効内容
メモリアドレスカウンタ37に適当な値をロードする
(303)。次に、PRAM制御62はPCIバス51
上にあったアドレスに対応する有効内容メモリワードを
先取りラッチ38を介して有効内容処理機能ブロック4
1にロードし、連続するアドレスを有する先取りされた
有効内容メモリワードを先取りラッチ38にロードする
(304)。次に、PRAM制御62は入力FIFOレ
ジスタ29から排他的論理和演算ブロック30にデータ
ワードをロードする(305)。データワードは一致が
検出される前に転送開始時に入力FIFOレジスタ29
にプリロードされ、したがって一致が検出されたときデ
ータワードを用いてパリティデータの計算を開始するこ
とができる。データワードの転送開始前に転送テーブル
エントリレンジとPCIバス51上に現れるアドレスと
の間に一致が検出されない場合、データワードは放棄さ
れる。
【0065】次に、PRAM制御62が排他的論理和演
算ブロック30内のデータワードに対応する無効メモリ
内の位置にデータワードが記憶されているかどうかを判
定する(306)。これは、無効メモリ内のその位置に
関係付けられた第1アクセスビットの状態をチェックす
ることによって行なわれる。このビットがその初期状態
から変更されている場合、これはパリティメモリ60、
61内の対応する位置の対のうちの1つにデータワード
が記憶されていることを意味する。第1アクセスビット
がその初期状態から変更されていない場合、これはパリ
ティメモリ60、61内の対応する位置の対のいずれに
もデータワードが記憶されていないことを意味する。第
1アクセスビットが変更されていない場合、そのデータ
ワードはデジタル値0と排他的論理和され、無効メモリ
位置に記憶される(310)。その後、有効内容メモリ
ワードの対応する第1アクセスビットの状態が変更され
る(311)。
【0066】第1アクセスビットが変更されている場
合、有効内容ビットによって判定された有効メモリから
対応するパリティ生成データワードがロードされる(3
07)。次に、これらのパリティ生成データワードおよ
びデータワードをオペランドとして用いて排他的論理和
演算が実行される(308)。この排他的論理和演算の
結果が有効メモリからロードされたパリティ生成データ
ワードの位置に対応する無効メモリの位置に記憶される
(309)。
【0067】第1アクセスビットの状態が変更される
(311)かあるいは排他的論理和演算の結果が記憶さ
れた(309)後、パリティメモリアドレスカウンタ2
7がインクリメントされ、パリティ生成データワードの
記憶およびローディングに用いられるパリティメモリ6
0、61内の次の位置の対が指示される(312)。次
に、対応する有効内容メモリワードビットの状態が、現
在パリティメモリ60、61のどちらが有効なパリティ
生成データワードを保持しているかを示すように変更さ
れる(313)。次に、PRAM制御62が入力FIF
Oレジスタ29をチェックすることによってそのデータ
ブロックあるいはデータブロックフラグメントの転送が
完了したかどうかを判定する(314)。完了していれ
ば、有効内容処理機構ブロック41内の(第1アクセス
ビットおよび有効内容ビットを含む)有効内容メモリワ
ードがライトバックラッチ39に移動され、有効内容メ
モリ63に記憶される(315)。その後、制御はステ
ップ301に戻される。
【0068】データブロックあるいはデータブロックフ
ラグメントの転送が完了していない場合、PRAM制御
62は最後に処理されたパリティ生成データワードが有
効内容メモリワードに含まれたパリティ生成データワー
ドのレンジの最後のワードであるかどうかを判定する
(316)。そうであれば、有効内容処理機能ブロック
41に保持された有効内容メモリワードがライトバック
ラッチ39に転送され、その後有効内容メモリ63に記
憶される(317)。次に、先取りラッチ38に保持さ
れた前に取り出された有効内容メモリワードが有効内容
処理機能ブロック41にロードされる(318)。次
に、有効内容メモリアドレスカウンタ37がインクリメ
ントされ、有効内容処理機能ブロック41に最後に転送
された有効内容メモリワードの連続するアドレスを有す
る有効内容メモリワードが指示される(319)。その
後、この有効内容メモリワードが有効内容メモリ63か
ら先取りラッチ38に転送される(320)。最後に処
理されたパリティ生成データワードが有効内容メモリワ
ードに含まれたパリティ生成データワードのレンジの最
後のワードでない場合、制御はステップ305に戻され
る。
【0069】パリティブロックの生成が完了すると、P
RAM制御62はステップ300、301および302
を実行しながらPCIバス51上に送出されるアドレス
をモニタする。パリティブロックは、DMAマスタの制
御のもとにパリティメモリ60、61のうちそれが存在
する方からデータ記憶装置56a1〜56d6の1つに
転送される。DMAマスタがPCIバス51上にパリテ
ィメモリ基底アドレスレンジ内のアドレスを送出するこ
とによってパリティメモリ60、61への読み出しアク
セスを実行するとき、PRAM制御62は有効なパリテ
ィメモリからのパリティブロックデータワードを出力F
IFO31を介してPCIバス51に順次転送する(3
21)。PRAM制御62は選択可能な有効内容ビット
初期化機能を有する。パリティメモリがキャッシュメモ
リとして用いられる場合、有効内容メモリビットは有効
内容メモリの読み出し中初期化されない。PRAM制御
62が有効内容メモリビットの初期化を行うように設定
されている場合、PRAM制御62は、PCIバス51
へのパリティブロックデータワードの転送時に、次のデ
ータストライプの転送に備えて対応する有効内容メモリ
ビットの状態をチェックし、初期化する(322)。
【0070】このループが実行されるとき、ストライプ
中のデータブロックのフラグメントがPCIバス上を転
送され、そのストライプのパリティブロックの計算が進
行する。データブロックフラグメントはデータブロック
アドレスレンジ内のそれらの位置に対して任意の順序で
転送することができる。パリティブロック計算の中間結
果のフラグメントは単一データワードに等しいほど小さ
い場合もあるが、これらはそのストライプのデータブロ
ックのフラグメントがPCIバス51上で転送されると
き第1のパリティメモリSRAM0 60と第2のパリ
ティメモリSRAM1 61との間で切り替わる。その
ストライプの全てのデータワードの転送が終了すると、
得られたパリティブロックは全て一方のパリティメモリ
内に存在し、有効内容ビットは全て同じ状態にある。こ
れは、初期の各データブロックフラグメントが同じスタ
ティックRAMにロードされ、パリティブロックの各ワ
ードの計算に要する排他的論理和演算の数が同じである
ためである。同じ理由から、第1アクセスビットは全て
このストライプ転送の開始時における状態と反対の状態
にある。PRAM制御62内のフリップフロップを用い
て第1アクセスビットの状態に適用される定義を追跡す
る場合、第1アクセスビットの初期化は電源投入後、転
送打ち切り後、あるいはブロックサイズが変更されると
きにのみ実行すればよい。
【0071】ここに開示したPRAM制御の各実施例は
複数のストライプに対するパリティブロックの同時生成
を支援するものである。パリティメモリは転送テーブル
に記憶されたn組のデータ値のそれぞれに対応するnの
ブロックに区分される。このPRAM制御の第1および
第2の実施例においては、トップカウンタには対応する
ストライプのパリティブロックの生成の前に転送テーブ
ルに記憶されたパリティメモリ基底アドレスがロードさ
れる。ストライプの一部の転送が完了すると、トップカ
ウンタの現在の値が転送テーブルに保管される。他のス
トライプの一部の転送に備えて、このトップカウンタ値
が転送テーブルからトップカウンタにロードされる。こ
れによって、1つのトップカウンタだけを用いて複数の
ストライプのパリティブロックを生成することができ
る。このPRAM制御の第2および第3の実施例におい
ては、有効内容メモリはパリティメモリのnのブロック
に対応するnのブロックに区分される。パリティブロッ
クの生成中、有効内容メモリ内の対応するブロックが用
いられる。
【0072】Youngerthに発行された米国特許
第5,289,418号にはパリティの生成をCPUか
ら独立して実行可能な専用のパリティ生成回路が開示さ
れている。この回路は組み合わせ論理を用いてメモリア
レイの内容とデータワードとの間で排他的論理和演算を
連続的に実行し、その後その結果をそのメモリアレイに
返すものである。これに対して、ここに開示したパリテ
ィブロック生成装置の各実施例には、一対のメモリが用
いられ、かかるメモリの対応する記憶位置にパリティブ
ロックの生成が進行するにつれて中間結果が交互に記憶
される。Youngerthの特許には、パリティブロ
ックの生成中に中間結果を交互に記憶するためのメモリ
対の使用は開示されていない。
【0073】Callisonその他に発行された米国
特許第5,206,943号には、データバスの各ビッ
トに対して動作する専用の排他的論理和ゲートのアレイ
を用いることによってパリティワードを生成するパリテ
ィ生成エンジンが説明されている。このCalliso
nその他の特許にはパリティ演算の中間結果を交互に記
憶するための交互のメモリ対の使用は説明されていな
い。
【0074】Jibbeその他に発行された米国特許第
5,345,565号には、排他的論理和回路のアレイ
を用いてパリティデータを平行して生成し、またこの排
他的論理和回路アレイを用いてRAID−1フォーマッ
トで記憶されたかかるデータが適正であることを確認す
るアレイ記憶システムが開示されている。Jibbeそ
の他はパリティ演算の中間結果を交互に記憶するための
交互のメモリ対の使用については説明していない。
【0075】本発明のいくつかの実施例を図示し、その
態様を説明したが、当業者には本発明の精神あるいは特
許請求の範囲から逸脱することなくさまざまな変更が可
能であることは明らかである。
【0076】以下に本発明の実施の形態を要約する。 1. 複数のデータワードからパリティデータを生成す
るパリティブロックの生成装置(10、11、12、6
0、61、62、63)において、第1のパリティメモ
リ(10、60)と、第2のパリティメモリ(11、6
1)と、前記複数のデータワードを受信するように構成
され、前記第1のパリティメモリ(10、60)および
前記第2のパリティメモリ(11、61)に結合され、
前記パリティデータを生成するためのパリティ生成デー
タワードをそこに選択的に記憶し、またそこから選択的
にロードするためのパリティ生成・制御ユニット(1
2、62)とからなるパリティブロックの生成装置。
【0077】2. 前記パリティ生成・制御ユニット
(12、62)は一連の排他的論理和演算を選択的に実
行して前記パリティ生成データワードを生成する手段
(30)を含み、前記パリティ生成・制御ユニット(1
2、62)は、前記パリティ生成データワードを前記第
1のパリティメモリ(10、60)および前記第2のパ
リティメモリ(11、61)に選択的に記憶し、またそ
こから選択的にロードする手段(34、35、36)を
含み、前記選択的記憶および選択的ローディングを行う
手段(34、35、36)は前記一連の排他的論理和演
算選択的に実行してパリティ生成データワードを生成す
る手段(30)に結合されており、前記パリティ生成・
制御ユニット(12、62)はバス(4、51)から前
記複数のデータワードを受信する手段(29)と、前記
バス(4、51)に前記パリティ生成データワードを送
信する手段(31)とを含み、前記受信手段(29)は
前記一連の排他的論理和演算を選択的に実行してパリテ
ィ生成データワードを生成する手段(30)に結合され
ており、前記送信手段(31)は前記選択的記憶および
選択的ローディングを行う手段(34、35、36)に
結合されており、前記パリティ生成・制御ユニット(1
2、62)はn組の値の集合を記憶する転送メモリ(2
1)を含み、前記n組の値の集合のそれぞれはバスアド
レス値、パリティメモリ基底アドレスおよび一群の比較
マスクビットを含み、対応する前記バスアドレス値に適
用される前記比較マスクビット群のそれぞれは、前記受
信手段(29)によって受信される前記複数のデータワ
ードのうち前記パリティデータの生成に用いられるもの
を判定するための転送テーブルエントリレンジを形成
し、前記パリティメモリ基底アドレスのそれぞれは、前
記第1のパリティメモリ(10、60)および前記第2
のパリティメモリ(11、61)内の対応する1対の記
憶位置レンジの開始アドレスを規定し、前記一連の排他
的論理和演算を選択的に実行してパリティ生成データワ
ードを生成する手段(30)は、前記複数のデータワー
ドの1つとデジタル値0、あるいは前記複数のデータワ
ードの1つと前記パリティ生成データワードの対応する
1つからなるグループから選択された1対のオペランド
を用いて排他的論理和演算を実行する上記1に記載のパ
リティブロックの生成装置(10、11、12、60、
61、62、63)。
【0078】3. 前記パリティ生成・制御ユニット
(62)に結合された有効内容メモリ(63)を有し、
前記有効内容メモリ(63)は前記パリティ生成データ
ワードのうち有効なものを保持する前記第1のパリティ
メモリ(60)および前記第2のパリティメモリ(6
1)内の前記記憶位置を示す有効内容ビットを保持し、
前記パリティ生成・制御ユニット(62)は前記有効内
容メモリ(63)に結合された前記有効内容メモリ(6
3)内の前記有効内容ビットを変更する手段(39、4
0、41)を含む上記2に記載のパリティブロックの生
成装置(60、61、62、63)。
【0079】4. 冗長アレイメモリシステムが前記バ
ス(51)を含み、前記冗長アレイメモリシステムは連
続するアドレスを有する前記連続する複数のデータワー
ドを前記バス(51)上で転送し、前記選択的記憶およ
び選択的ローディングを行う前記手段(34、35、3
6)は前記複数のデータワードを前記有効内容ビットか
ら判定された前記第1のパリティメモリ(60)および
前記第2のパリティメモリ(61)に記憶し、前記記憶
位置は前記アドレスから判定され、前記パリティメモリ
基底アドレスに対応し、前記パリティ生成・制御ユニッ
ト(62)は前記選択的記憶および選択的ローディング
を行う手段(34、35、36)に結合され、前記パリ
ティ生成データワードの記憶に前に用いられた前記第1
のパリティメモリ(60)および前記第2のパリティメ
モリ(61)内の前記記憶位置を示すトップカウンタ
(26)を含み、前記のn組の値の集合のそれぞれはト
ップカウンタ値を含み、前記有効内容メモリ(63)は
前記パリティ生成データワードの記憶に前に用いられた
前記第1のパリティメモリ(60)および前記第2のパ
リティメモリ(61)内の記憶位置を示す第1アクセス
ビットを記憶し、前記パリティ生成・制御ユニット(6
2)は専用集積回路に含まれる上記3に記載のパリティ
ブロックの生成装置(60、61、62、63)。
【0080】5. バス(4、51)と、複数のデータ
記憶装置(D1〜D5、56a1〜56d6)と、パリ
ティ生成・制御ユニット(12、62)と、複数のパリ
ティ生成データワードを記憶するための第1のパリティ
メモリ(10、60)および第2のパリティメモリ(1
1、61)と、前記第1のパリティメモリ(10、6
0)と前記第2のパリティメモリ(11、61)のどち
らが有効な内容を保持しているかまた前記第1のパリテ
ィメモリ(10、60)と前記第2のパリティメモリ
(11、61)のどちらが無効な内容を保持しているか
を判定する手段(33、41、63)を含む冗長アレイ
メモリシステムにおいて、前記バス(4、51)上での
前記データワードの転送中に複数のデータワードからパ
リティデータを生成する方法であって、前記の方法は、
前記有効な内容を保持する前記第1のパリティメモリ
(10、60)および前記第2のパリティメモリ(1
1、61)の1つからの前記複数のパリティ生成データ
ワードのうちの第1のものを前記パリティ生成・制御ユ
ニット(12、62)にロードするステップと、前記バ
スからの前記複数のデータワードのうちの第1のものを
前記パリティ生成・制御ユニット(12、62)にロー
ドするステップと、前記複数のパリティ生成データワー
ドのうちの前記第1のものと前記複数のデータワードの
うちの前記第1のものをオペランドとして用いて排他的
論理和演算を実行して結果を得るステップと、前記結果
を前記第1のパリティメモリ(10、60)と前記第2
のパリティメモリ(11、61)のうち無効な内容を有
する方に記憶するステップとからなるパリティブロック
の生成方法。
【0081】6. 前記複数のパリティ生成データワー
ドのうちの前記第1のものを前記第1のパリティメモリ
(10、60)と前記第2のパリティメモリ(11、6
1)のうち無効な内容を有する方に記憶するステップで
あって、前記複数のパリティ生成データワードのうちの
前記第1のものを記憶する前記ステップは、前記第1の
パリティメモリ(10、60)と前記第2のパリティメ
モリ(11、61)の1つから前記複数のパリティ生成
データワードのうちの前記第1のものをロードする前記
ステップの前に発生するステップと、前記バス(4、5
1)からの前記複数のパリティ生成データワードのうち
の前記第1のものを前記パリティ生成・制御ユニット
(12、62)にロードするステップであって、前記複
数のパリティ生成データワードのうちの前記第1のもの
をロードする前記ステップは、前記第1のパリティメモ
リ(10、60)と前記第2のパリティメモリ(11、
61)のうち無効な内容を有する方に前記複数のパリテ
ィ生成データワードのうちの前記第1のものを記憶する
前記ステップの前に発生するステップとを含む上記5に
記載のパリティブロックの生成方法。
【0082】7. 前記第1のパリティメモリ(60)
と前記第2のパリティメモリ(61)のどちらが有効な
内容を保持しているかまた前記第1のパリティメモリ
(60)と前記第2のパリティメモリ(61)のどちら
が無効な内容を保持しているかを判定する前記の手段
(63)は、有効内容ビットのための第1の記憶位置群
を有する有効内容メモリ(63)を含み、前記第1のパ
リティメモリ(60)および前記第2のパリティメモリ
(61)の1つから前記複数のパリティ生成データワー
ドのうちの前記第1のものをロードする前記ステップ
は、前記有効内容ビットを用いて、前記第1のパリティ
メモリ(60)と前記第2のパリティメモリ(61)の
うち前記有効な内容を保持している方を選択するステッ
プを含み、前記結果を記憶する前記ステップは、前記有
効内容ビットを用いて、前記第1のパリティメモリ(6
0)と前記第2のパリティメモリ(61)のうち前記無
効な内容を保持している方を判定するステップを含む上
記6に記載のパリティブロックの生成方法。
【0083】8. 冗長アレイメモリシステムにおい
て、それぞれが複数のデータワードを含む複数のデータ
ブロックからパリティブロックを生成するパリティブロ
ックの生成装置(10、11、12、60、61、6
2、63)であって、前記パリティブロックの生成装置
(10、11、12、60、61、62、63)は、排
他的論理和演算を選択的に実行してパリティ生成データ
ワードを生成する手段(30)と、前記冗長アレイメモ
リシステムから前記複数のデータワードを受信するよう
に構成され、前記の排他的論理和演算を選択的に実行し
てパリティ生成データワードを生成する手段(30)に
結合されたローディング手段(29)と、第1のパリテ
ィメモリ(10、60)と、第2のパリティメモリ(1
1、61)と、前記排他的論理和演算を選択的に実行し
てパリティ生成データワードを生成する手段(30)か
らの前記パリティ生成データワードを受信するように構
成された、選択的記憶および選択的ローディングを行う
手段(34、35、36)であって、前記選択的記憶お
よび選択的ローディングを行う手段(34、35、3
6)は前記第1のパリティメモリ(10、60)および
前記第2のパリティメモリ(11、61)に前記パリテ
ィ生成データワードを記憶し、またそこから前記パリテ
ィ生成データワードをロードするように構成され、前記
パリティ生成データワードを前記排他的論理和演算を選
択的に実行してパリティ生成データワードを生成する手
段(30)に送信するように構成された手段とからなる
パリティブロックの生成装置。
【0084】9. n組の値の集合を記憶する手段(2
1)であって、前記n組の値の集合のそれぞれはバスア
ドレス値、パリティメモリ基底アドレスおよび一群の比
較マスクビットを含み、対応する前記バスアドレス値に
適用される前記比較マスクビット群のそれぞれは、前記
ローディング手段(29)によってロードされる前記複
数のデータワードのうち前記パリティデータの生成に用
いられるものを判定するための転送テーブルエントリレ
ンジを形成し、前記パリティメモリ基底アドレスのそれ
ぞれは、前記第1のパリティメモリ(10、60)およ
び前記第2のパリティメモリ(11、61)内の対応す
る1対の記憶位置レンジの開始アドレスを規定する手段
と、前記パリティ生成データワードのうち有効なものを
保持する前記第1および第2のパリティメモリ内の記憶
位置を示す手段(33、41、63)であって、前記手
段(33、41、63)は前記選択的記憶および選択的
ローディングを行う手段(34、35、36)に結合さ
れる手段とからなり、前記選択的記憶および選択的ロー
ディングを行う手段(34、35、36)は、前記第1
のパリティメモリ(10、60)および前記第2のパリ
ティメモリ(11、61)内の前記1対のレンジに含ま
れる記憶位置にパリティ生成データワードを記憶し、ま
たそこからパリティ生成データワードをロードする上記
8に記載のパリティブロックの生成装置(10、11、
12、60、61、62、63)。
【0085】10. 前記第1のパリティメモリ(6
0)および前記第2のパリティメモリ(61)内の前記
複数のデータワードの記憶に前に使用された記憶位置を
判定する手段(41、63)を有し、前記判定手段(4
1、63)および前記表示手段(63)は有効内容ビッ
トおよび第1アクセスビットを記憶するための有効内容
メモリ(63)を含む上記9に記載のパリティブロック
の生成装置(60、61、62、63)。
【0086】
【発明の効果】本発明はバス上でのデータワードの転送
時にパリティブロックを生成することを可能とし、特に
バス上でのデータ転送速度の高い冗長アレイメモリシス
テムにおけるパリティブロックの生成に適したものであ
る。このパリティブロックの生成によって、冗長アレイ
メモリシステムをバス上で最大データ転送速度で動作さ
せることができる。また、パリティ生成データワードを
保持する2つのメモリを用いることによってパリティデ
ータの生成速度の向上を実現できる。
【図面の簡単な説明】
【図1】5つのデータ記憶装置を有するRAIDシステ
ムの基本要素を示すブロック図である。
【図2】簡略化したRAID−5システム内のデータ記
憶装置上でのデータブロックおよびパリティブロックの
配分を示す。
【図3】パリティブロック生成装置の第1の実施例の基
本要素を示すブロック図である。
【図4】パリティブロック生成装置の第1の実施例を用
いた第1のパリティブロック生成法のフローチャートの
一部である。
【図5】パリティブロック生成装置の第1の実施例を用
いた第1のパリティブロック生成法のフローチャートの
一部である。
【図6】PCI環境におけるパリティブロック生成装置
の第2の実施例の基本要素を示すブロック図である。
【図7】パリティブロック生成装置の第2の実施例を用
いた第2のパリティブロック生成法のフローチャートの
一部である。
【図8】パリティブロック生成装置の第2の実施例を用
いた第2のパリティブロック生成法のフローチャートの
一部である。
【図9】パリティブロック生成装置の第3の実施例を用
いた第3のパリティブロック生成法のフローチャートの
一部である。
【図10】パリティブロック生成装置の第3の実施例を
用いた第3のパリティブロック生成法のフローチャート
の一部である。
【図11】パリティブロック生成装置の第1の実施例の
パリティ生成・制御ユニットの基本要素を示すブロック
図である。
【図12】パリティブロック生成装置の第2の実施例の
パリティ生成・制御ユニットの基本要素を示すブロック
図である。
【図13】パリティブロック生成装置の第3の実施例の
パリティ生成・制御ユニットの基本要素を示すブロック
図である。
【符号の説明】
1 コンピュータシステム 2 コントローラ 3、4a〜4e、55 バス D1〜D5 ハードディスクドライブ 6 プロセッサ 10、60 第1のパリティメモリSRAM0 11、61 第2のパリティメモリSRAM1 12、62 PRAM制御 14 インターフェース 15a〜15e DMAチップ 16 専用バス 17 DRAM 20 構成レジスタ群 21 転送メモリ 22 比較機能ブロック 23 アドレスラッチ 24 アドレス復号器 25 アドレス処理ブロック 26 トップカウンタ 27 パリティメモリアドレスカウンタ 28 比較機能ブロック 29 入力FIFOレジスタ 30 排他的論理和演算ブロック 31 出力FIFO 32、34 マルチプレクサ 33 フリップフロップ 35、36、40 バッファ 38 先取りラッチ 39 ライトバックラッチ 41 有効内容処理機能ブロック 51 PCIバス 52 ホストコンピュータ 53 プロセッサ 54 ホストコンピュータインターフェース 56a〜56d 記憶装置アレイコントローラ 56a1〜56d6 データ記憶装置 57 DRAMアレイ 58 メモリコントローラ 59 ブリッジ 63 有効内容メモリ 64 プロセッサバス 65 専用メモリ

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 複数のデータワードからパリティデータ
    を生成するパリティブロックの生成装置(10、11、
    12、60、61、62、63)において、 第1のパリティメモリ(10、60)と、 第2のパリティメモリ(11、61)と、 前記複数のデータワードを受信するように構成され、前
    記第1のパリティメモリ(10、60)および前記第2
    のパリティメモリ(11、61)に結合され、前記パリ
    ティデータを生成するためのパリティ生成データワード
    をそこに選択的に記憶し、またそこから選択的にロード
    するためのパリティ生成・制御ユニット(12、62)
    とからなることを特徴とするパリティブロックの生成装
    置。
JP21657897A 1996-08-13 1997-08-11 パリティブロックの生成装置 Expired - Fee Related JP3247075B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/696,220 US5856989A (en) 1996-08-13 1996-08-13 Method and apparatus for parity block generation
US696-220 1996-08-13

Publications (2)

Publication Number Publication Date
JPH10105476A true JPH10105476A (ja) 1998-04-24
JP3247075B2 JP3247075B2 (ja) 2002-01-15

Family

ID=24796186

Family Applications (1)

Application Number Title Priority Date Filing Date
JP21657897A Expired - Fee Related JP3247075B2 (ja) 1996-08-13 1997-08-11 パリティブロックの生成装置

Country Status (4)

Country Link
US (1) US5856989A (ja)
EP (1) EP0825534B1 (ja)
JP (1) JP3247075B2 (ja)
DE (1) DE69734551T2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100380221B1 (ko) * 1999-03-31 2003-04-16 인터내셔널 비지네스 머신즈 코포레이션 Raid 데이터 저장 시스템에 있어서 즉시 백업을제공하는 방법 및 시스템
US6694475B1 (en) 1997-12-17 2004-02-17 Matsushita Electric Industrial Co., Ltd. Magnetic disk apparatus and method of data transfer
JP2013131192A (ja) * 2011-12-22 2013-07-04 Fujitsu Ltd ストレージ装置及びストレージ装置の制御方法

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6496916B1 (en) * 1998-04-17 2002-12-17 Agere Systems Inc. System for flexible memory paging in partitioning memory
US6223323B1 (en) * 1998-07-17 2001-04-24 Ncr Corporation Method for storing parity information in a disk array storage system
US6715101B2 (en) 2001-03-15 2004-03-30 Hewlett-Packard Development Company, L.P. Redundant controller data storage system having an on-line controller removal system and method
US6802023B2 (en) 2001-03-15 2004-10-05 Hewlett-Packard Development Company, L.P. Redundant controller data storage system having hot insertion system and method
US6708285B2 (en) 2001-03-15 2004-03-16 Hewlett-Packard Development Company, L.P. Redundant controller data storage system having system and method for handling controller resets
US6910100B2 (en) * 2002-03-13 2005-06-21 Intel Corporation Detecting open write transactions to mass storage
GB2402803B (en) * 2003-06-11 2006-06-28 Ibm Arrangement and method for detection of write errors in a storage system
US7380198B2 (en) 2003-06-11 2008-05-27 International Business Machines Corporation System and method for detecting write errors in a storage device
GB0315063D0 (en) 2003-06-27 2003-07-30 Ibm Memory devices
KR100843142B1 (ko) * 2006-09-19 2008-07-02 삼성전자주식회사 반도체 메모리 장치 및 이를 포함하는 메모리 시스템
CN101556556B (zh) * 2009-05-22 2012-02-22 炬力集成电路设计有限公司 一种数据存储方法及装置
US8898381B2 (en) * 2009-12-08 2014-11-25 OCZ Storage Solutions Inc. Raid storage systems having arrays of solid-state drives and methods of operation
US8566686B2 (en) * 2011-05-13 2013-10-22 Lsi Corporation System and method for optimizing read-modify-write operations in a RAID 6 volume
US10120751B2 (en) * 2015-09-25 2018-11-06 Intel Corporation Techniques to recover data using exclusive OR (XOR) parity information
US10599518B2 (en) 2015-12-31 2020-03-24 Texas Instruments Incorporated Protecting data memory in a signal processing system
CN105589815B (zh) * 2016-03-04 2018-10-12 北京左江科技股份有限公司 一种存储器间的数据搬移的方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4546475A (en) * 1982-12-06 1985-10-08 At&T Bell Laboratories Parity checking arrangement
US4761785B1 (en) * 1986-06-12 1996-03-12 Ibm Parity spreading to enhance storage access
US4989206A (en) * 1988-06-28 1991-01-29 Storage Technology Corporation Disk drive memory
EP0379625B1 (de) * 1989-01-27 1995-07-19 Siemens Aktiengesellschaft Verfahren zur Behandlung von paritätsüberwachbaren Binärcodeworten, die im Zuge ihrer Übertragung eine digitale Dämpfung und/oder Codekonvertierung erfahren
US5206943A (en) * 1989-11-03 1993-04-27 Compaq Computer Corporation Disk array controller with parity capabilities
US5195100A (en) * 1990-03-02 1993-03-16 Micro Technology, Inc. Non-volatile memory storage of write operation identifier in data sotrage device
US5345565A (en) * 1991-03-13 1994-09-06 Ncr Corporation Multiple configuration data path architecture for a disk array controller
US5289418A (en) * 1992-02-14 1994-02-22 Extended Systems, Inc. Memory apparatus with built-in parity generation
US5708668A (en) * 1992-05-06 1998-01-13 International Business Machines Corporation Method and apparatus for operating an array of storage devices
US5537567A (en) * 1994-03-14 1996-07-16 International Business Machines Corporation Parity block configuration in an array of storage devices
JP2969251B2 (ja) * 1995-01-26 1999-11-02 日本アイ・ビー・エム株式会社 データ記憶システム及びデータ記憶システムのパリティ発生方法
US5677931A (en) * 1995-02-27 1997-10-14 Nec Corporation Transmission path switching apparatus

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6694475B1 (en) 1997-12-17 2004-02-17 Matsushita Electric Industrial Co., Ltd. Magnetic disk apparatus and method of data transfer
KR100380221B1 (ko) * 1999-03-31 2003-04-16 인터내셔널 비지네스 머신즈 코포레이션 Raid 데이터 저장 시스템에 있어서 즉시 백업을제공하는 방법 및 시스템
JP2013131192A (ja) * 2011-12-22 2013-07-04 Fujitsu Ltd ストレージ装置及びストレージ装置の制御方法

Also Published As

Publication number Publication date
EP0825534A3 (en) 2004-02-04
US5856989A (en) 1999-01-05
EP0825534B1 (en) 2005-11-09
DE69734551T2 (de) 2006-07-27
EP0825534A2 (en) 1998-02-25
DE69734551D1 (de) 2005-12-15
JP3247075B2 (ja) 2002-01-15

Similar Documents

Publication Publication Date Title
JP3247075B2 (ja) パリティブロックの生成装置
US5737744A (en) Disk array controller for performing exclusive or operations
US6370611B1 (en) Raid XOR operations to synchronous DRAM using a read buffer and pipelining of synchronous DRAM burst read data
US6542960B1 (en) System and method for parity caching based on stripe locking in raid data storage
US6484234B1 (en) Method and apparatus for efficiently destaging data from a cache to two or more non-contiguous storage locations
US7882320B2 (en) Multi-processor flash memory storage device and management system
US5890219A (en) Redundant writing of data to cached storage system
US5333305A (en) Method for improving partial stripe write performance in disk array subsystems
US5206943A (en) Disk array controller with parity capabilities
US7930468B2 (en) System for reading and writing on flash memory device having plural microprocessors
EP0468823B1 (en) Computer data routing system
US5694581A (en) Concurrent disk array management system implemented with CPU executable extension
JPH10207637A (ja) コンピュータをデータ記憶装置と通信させる方法及び構成
JPH08235754A (ja) 高性能パリティ機能アーキテクチャーを含むディスクアレイ格納システム
US7949820B2 (en) Method for managing memory access and task distribution on a multi-processor storage device
JPH08161124A (ja) 計算機システム
JPH0876941A (ja) ディスクアレイサブシステム
US6370616B1 (en) Memory interface controller for datum raid operations with a datum multiplier
US20060026328A1 (en) Apparatus And Related Method For Calculating Parity of Redundant Array Of Disks
JP2716350B2 (ja) 電子データ記憶システム
WO1993013475A1 (en) Method for performing disk array operations using a nonuniform stripe size mapping scheme
US20020178325A1 (en) Method and apparatus for scalable error correction code generation performance
US6513142B1 (en) System and method for detecting of unchanged parity data
US20050097272A1 (en) Disk array device and control method of disk array device
WO2000025205A1 (en) Controlling access to a primary memory

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20081102

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20091102

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20091102

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20101102

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20111102

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20111102

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20121102

Year of fee payment: 11

LAPS Cancellation because of no payment of annual fees