JP2002278707A - ディスクコントローラ - Google Patents
ディスクコントローラInfo
- Publication number
- JP2002278707A JP2002278707A JP2002009660A JP2002009660A JP2002278707A JP 2002278707 A JP2002278707 A JP 2002278707A JP 2002009660 A JP2002009660 A JP 2002009660A JP 2002009660 A JP2002009660 A JP 2002009660A JP 2002278707 A JP2002278707 A JP 2002278707A
- Authority
- JP
- Japan
- Prior art keywords
- parity
- data
- memory
- tdb
- segment
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Detection And Correction Of Errors (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
記述ブロックを用いて演算に関する情報を維持し、適切
なデータスループットを確保する。 【解決手段】 ディスクコントローラはマイクロプロセ
ッサ及び演算ロジックの両方がアクセス可能なメモリを
含む。演算を実行するために演算ロジックが必要とする
情報は、マイクロプロセッサにより、メモリ内のタスク
記述ブロックに格納される。タスク記述ブロックへのポ
インタは、タスク記述ブロック待ち行列に加えられる。
すると、演算ロジックは、待ち行列内のポインタに基づ
いてタスク記述ブロックにアクセス可能となり、対応す
る演算を実行する。
Description
連する情報の維持に関し、特にタスク記述ブロックを使
用して演算に関連する情報を維持することに関する。
ータの冗長記憶のために複数の物理ディスクドライブを
利用することが多い。このような構成により、データア
クセス速度が向上すると共に、任意の単一ディスクの障
害により発生しうるデータ損失の保護が容易になる。
がある。第1の方法、すなわち「ミラーリング」法で
は、データは複製されて記憶システムの2つの別個の領
域に格納される。ディスクアレイには、例えば、同一の
データが2つの別個のディスクに格納される。この方法
は、性能が高くまたデータ可用性も高いという利点があ
る。しかし、ミラーリング法は比較的高価でもあり、デ
ータ格納のコストが事実上2倍になる。
は、記憶領域の一部を使用して冗長データを格納する
が、冗長記憶領域のサイズは、元のデータの格納に使用
される残りの記憶空間よりも小さい。例えば、6枚のデ
ィスクを有するディスクアレイでは、5枚のディスクを
データの格納に使用し、6枚目のディスクを「パリテ
ィ」データと呼ばれる冗長データの格納専用とする。パ
リティデータを生存ディスクからのデータと併せて使用
することで、1枚のデータディスクからデータを再構築
できるようになる。パリティ法は、ミラーリング法より
も費用が低いため有利であるが、同時にミラーリング法
と比較して性能が低く可用性も低いという特徴がある。
レイでは、記憶ディスクにおける空間は、複数の記憶デ
ィスクにわたる複数の記憶ストライプに構成される。各
ストライプは複数の記憶空間セグメントからなり、各セ
グメントは、ディスクアレイの単一記憶ディスク上にあ
るストライプの一部分である。
来のディスクアレイ12を示す。この単純化した例では、
複数の記憶ディスクにわたる5つの記憶ストライプがあ
る。図1は、これら5つのストライプのうちの1つのス
トライプのデータセグメント及び記憶セグメントを強調
して示している。強調して示されたストライプのデータ
セグメントは、網掛けで示されている。このストライプ
に対応するパリティセグメントは、黒塗りで示されてい
る。一般に、任意の所与のストライプを構成する6つの
セグメントのうち、5つのセグメントはデータセグメン
トであり、6番目のセグメントがパリティセグメントで
ある。
憶と呼ばれ、単一のパリティセグメントにつき5つのデ
ータセグメントがあることを示している。この方式はよ
り一般的にN+1グループ化と呼ばれる。ここで、Nは
データストライプにおけるデータセグメントの実際の数
である。
は、任意の1つの物理記憶装置をデータ損失から保護す
る。記憶装置に障害が発生した場合、生存データからそ
のデータを再構築することができる。データを回復する
ために実行される計算は単純であり、この計算は既知で
ある。一般に、次式に従って、データセグメントD0〜
DN−1から単一のパリティセグメントPが計算され
る。
N−1からのデータに相当する。任意の単一データセグ
メントを損失した後、同じ式を簡単に変形することでそ
のデータを回復することができる。
記憶装置を損失から保護することが重要になりつつあ
る。そのため、冗長格納システムにおいてN+2グルー
プ化を実施することが必要になりつつある。
強化されるが、その一方、最初のパリティセグメントの
計算及び任意の損失データセグメントの再構築の両方
で、より複雑な計算が必要となる。
になる。
第2のパリティセグメントの値であり、x0〜xN−1
はデータセグメントの値であり、p0〜pN−1及びq
0〜qN−1は所与のパリティ方式に固有の定数係数で
ある。
意の2つの障害が発生した記憶装置の単一ストライプか
らのデータを表す任意の2つの未知のxa〜xbについ
て潜在的に解くことができる2つの等式システムを形成
する。1つの要件は、2つの係数セットpi及びqiが
一次独立していることである。この要件は、例えば、p
0=1、p1=1、p2=1、かつq0=1、q1=
2、q2=3の場合に満たされる。また他の例も可能で
ある。
り、本説明の主題ではない。しかし、上記の簡潔な説明
から、N+2パリティの計算はN+1パリティの計算よ
りもかなり複雑であることは明白である。N+2ディス
クアレイの実際の実施において、この複雑さは、記憶装
置コントローラ及び結果的にディスクアレイ全体のデー
タスループットを制限する恐れがある。
obsonによる「Efficient Parity Operations(効率的な
パリティ演算)」という名称の同時係属中の米国特許出
願(代理人整理番号10971442)には、N+2パリティ計
算により複雑性が追加されるにも関わらず、適切なデー
タスループットを維持するより効率的な方法が記載され
ており、この出願は参照により本明細書に援用される。
しかし、この同時係属中の出願に記載のより効率的な方
法及び手段を用いても、記憶装置コントローラのデータ
スループットは、パリティ計算の実行に必要な情報を格
納するためのメモリ構造が非効率的であることによりな
お悪影響を受けることがある。本発明は、タスク記述ブ
ロックを用いて、パリティ(または他の)演算に関する
情報を維持し、適切なデータスループットを維持する方
法及び装置を提供する。
述ブロックを用いた演算に関連する情報の維持を説明す
る。
ック待ち行列は複数のタスク記述ブロックそれぞれを指
すポインタを格納し、各タスク記述ブロックは1つの演
算についての情報を格納する。演算のデータはメモリに
格納される。各タスク記述ブロックは、メモリに格納さ
れているデータを指すポインタと、演算ロジックが演算
の結果を格納すべきメモリ内の結果位置を指すポインタ
とを含めた、演算ロジックが単一の演算を実行するため
に必要な情報を格納する。この情報がすべてタスク記述
ブロックに格納されると、タスク記述ブロックを指すポ
インタがタスク記述ブロック待ち行列に格納され、演算
ロジックが要求するときにいつでもその演算を実行する
ことが可能になる。
によると、タスク記述ブロック待ち行列は複数のタスク
記述ブロックそれぞれを指すポインタを格納し、各タス
ク記述ブロックは1つのパリティ演算についての情報を
格納する。パリティ演算についてのデータは、異なるパ
リティ演算に使用される様々な複数の係数と同様に、メ
モリに格納される。各タスク記述ブロックは、下記を含
め、パリティ演算ロジックが単一パリティ演算を実行す
るために使用する情報を格納する。すなわち、実行する
演算のタイプ、タスク記述ブロックのサイズ、オプショ
ンであるタグ番号(一貫性チェックのため)、実行する
演算のステータス結果のどれを格納するかについての応
答待ち行列の指示、メモリに格納されているデータを指
すポインタ、複数の係数のサブセットを指すポインタ、
サブセット内の係数の数の指示、及びパリティ演算ロジ
ックがパリティ演算の結果を格納するメモリ内の結果位
置を指すポインタを格納する。この情報がすべてタスク
記述ブロックに格納されると、タスク記述ブロックを指
すポインタがタスク記述ブロック待ち行列に格納され、
パリティ演算ロジックが要求するときはいつでもパリテ
ィ演算を実行することが可能になる。
と、本発明による冗長データ格納システム20は、データ
ストライプ24を有する格納ディスク22を利用する。各デ
ータストライプ24は、複数のデータセグメントx0〜x
N−1と、少なくとも2つの対応するパリティセグメン
トP及びQとを含む。P及びQは、データセグメントx
0〜xN−1、第1のパリティ係数セットp0〜p
N−1、及び第2のパリティ係数セットq0〜qN− 1
から導出される。パリティ係数は以下の式に従い、各デ
ータセグメントに対応する。
ィセグメント生成演算、パリティセグメント再生成演
算、及びデータセグメント再構築演算に分類することが
できる。
ータストライプを作成する場合、すなわちパリティセグ
メントが全く新しいデータに基づいて作成される場合に
行われる。
データにより新しいデータセグメントが追加される場
合、または読み出し/変更/書き込みサイクルにより1
つまたは複数の既存のデータセグメントが変更される場
合に、既存のストライプに対して行われる。パリティセ
グメント再生成演算では、パリティセグメントが、デー
タストライプ全体を読み出すことなく増分的に変更され
る。例えば、新しいデータにより新しいデータセグメン
トx4が追加されるものと想定する。PNEWは、次の
ように計算される。
ルの結果、データセグメントx2が変更されるものと想
定する。この場合、PNEWは、次のように計算され
る。
Qの値を計算するために要するメモリは、ストライプが
変更される都度初めからP及びQを計算するために要す
るメモリよりもはるかに少ない。
成演算は、データセグメントの追加から生じるパリティ
再生成、またはデータセグメントの変更から生じるパリ
ティ再生成のいずれかにさらに分類することができる。
位分類、すなわち、単一データセグメント再構築演算
と、二重データセグメント再構築演算とを含む。生存デ
ータセグメントと組み合わせて、Pパリティセグメント
またはQパリティセグメントのいずれかから、単一デー
タセグメントを再構築することができる。一般に、デー
タセグメントxaは、次のようにしてパリティセグメン
トPまたはQのいずれかから再構築される。
有の適切な係数を生成する変換関数である。
りである。
パリティセグメント及びQパリティセグメントから、2
つのデータセグメントを再構築することができる。一般
に、2つのデータセグメントxa及びxbは、次のよう
にしてパリティセグメントP及びQから再構築される。
有の適切な係数を生成する変換関数である。
りである。
個のかかる係数を有するベースセットから選択される既
知の係数の種々の組み合わせを用いることで達成するこ
とができる。これら係数は、p0〜pN−1、q0〜q
N−1、及び変換関数f( )から得られる係数を含む。
任意の特定のパリティ演算は、計算中の実際のデータセ
グメントまたはパリティセグメントに応じて、これら係
数のサブセットを利用する。特定の計算に必要な特定の
係数サブセットは、演算の分類及び関係する特定のデー
タセグメントやパリティセグメントの双方に依存する。
従って、所与のパリティ演算の分類内には種々の状況す
なわちシナリオがあり、それぞれに異なる係数サブセッ
トが必要となる。例えば、データセグメントx5をスト
ライプに追加する場合、係数p5及びq5が必要とされ
る場合に1つのシナリオが発生する。データセグメント
x6をストライプに追加する場合、係数p6及びq6が
必要な場合に別のシナリオが発生する。
ブセット31を含むメモリアレイ30を示している。各係数
サブセットは、対応するデータセグメントに適用されパ
リティ計算結果を生成する、予め選択された、かつ/ま
たは予め計算された係数のリストまたは連結である。本
発明によれば、異なる係数サブセットが予め選択され、
各異なる演算シナリオについて格納される。次に、パリ
ティ演算ロジックによる参照及び直接の使用のため、サ
ブセットはフォーマットされ線形メモリアレイにパック
される。異なるシナリオには異なる数の係数が必要であ
るため、サブセットは同じ長さまたはサイズである必要
はない。
バイトである。「パックされる」という語は、好ましく
は使用していない空間に干渉することなく、係数のサブ
セットまたはストリングが線形メモリ内で連結され、記
憶空間を節約することを意味する。
ット内の係数とデータのセグメント(データセグメント
またはパリティセグメントのいずれか)との間には1対
1の対応がある。各係数は、対応するデータセグメント
またはパリティセグメントにのみ適用されて、演算結果
を生成する。
ナリオにつき、1つの係数サブセットがアレイに含まれ
る。特定の各計算シナリオに関するアレイ内のサブセッ
トの開始位置を見つけるために、固有のインデックス式
を用いることができる。一般に、サブセットは、P及び
Qそれぞれに関わる計算に対応する対で構成される。
数の分類グループ32、33、34、35、及び36を含み、各分
類グループは、特定のパリティ演算分類に対応する係数
サブセット31を含む。分類グループにおける各サブセッ
トは、グループの分類内で発生する特定のシナリオに関
する係数を有する。1つの例外を除き、係数サブセット
は任意の所与の分類グループ内で同一のサイズである。
までのグループオフセットを計算することで、アレイ30
内で特定の分類グループを見つけることができる。この
グループ・オフセットは、グループのアレイへのベース
インデックスである。分類グループ内で特定の係数サブ
セットを見つけるために、グループの開始位置からのサ
ブセット・オフセットがベースインデックスに加えられ
る。これにより、所望の係数サブセットの開始位置を見
つけるアレイ内へのインデックスが生成される。
リティ演算分類は以下のように定義される。
はパリティを持たない部分ストライプまたは完全に新し
いストライプ。
ティ再生成演算―新しいデータセグメントを2つのパリ
ティセグメントに組み込むことによる、ストライプの増
分的成長。
ティ再生成演算―すでに2つのパリティセグメントに組
み込まれているデータセグメントの変更(読み出し/変
更/書き込み)。
パリティセグメントの一方とストライプからの生存デー
タセグメントとを使用した単一データセグメントの再構
築。2つの記憶装置に障害が発生する場合に、障害が発
生した2つの記憶装置の一方がPまたはQを保持するこ
とができるため、PパリティセグメントまたはQパリテ
ィセグメントの何れかからの再構築がサポートされる。
パリティセグメントP及びQと、ストライプからの生存
データセグメントとを用いたストライプの2つのデータ
セグメントの再構築。
の第1の分類グループ32は、パリティ生成演算のための
係数サブセットを含む。パリティ生成演算は、新しいP
セグメント及びQセグメントを新しいデータセグメント
x0〜xN−1から生成する。この分類グループには、
2つの係数サブセットしかない。サブセットはそれぞ
れ、パリティセグメントP及びQの生成に対応してい
る。
の第2の分類グループ33は、ストライプを増分的に追加
するパリティ演算のための係数サブセットを含む。この
タイプの演算は、任意の所与の新しいまたは追加のデー
タセグメントxa〜xb(但し、b<N、かつa≦b)
の連続範囲と組み合わせてP及びQの各セグメントを更
新する。データセグメント0〜N−1内のデータセグメ
ントのあらゆる可能な範囲a〜bに対応する、これら演
算の異なるシナリオが多数ある。各シナリオには、異な
る係数サブセットが必要である。例えば、新しいまたは
追加のデータセグメントがx3及びx4である場合、P
の計算に必要な係数サブセットは{p3,p4}であ
る。新しいまたは追加のデータセグメントがx2〜x5
である場合、Pの計算に必要な係数サブセットは
{p2,p3,p4,p5}である。データセグメント
0〜N−1内の可能な範囲の総計は、Nの値に依存す
る。
ブセットがPの計算に適用されるか、またはQの計算に
適用されるかを示す2つの初期パラメータを含む。これ
ら初期パラメータはそれぞれ「0」または「1」のいず
れかに設定される。これら係数のうちの最初の値「1」
は、計算がパリティセグメントPに関わることを示す。
これら係数の二番目の値「1」は、計算がパリティセグ
メントQに関わることを示す。これら2つのパラメータ
の一方のみが随時「1」に等しく設定されるべきであ
る。
く追加されたデータストライプからP及びQを再生成す
るために使用される係数の部分範囲(sub-range)であ
る。従って、この分類グループは以下の形態の複数の係
数サブセットを含む。
範囲の0〜N−1内のあらゆる範囲a〜bに対応するよ
うな複数のサブセットを含む。アレイのこのセクション
内の係数サブセットの長さすなわちサイズは可変であ
り、各演算シナリオについて(b−a)に等しい。
ットは、長さによって配列されグループ化される。すな
わち、最小数の係数を含む係数サブセットは、分類グル
ープの最初の部分に配置される。最大数の係数を含む係
数サブセットは、分類グループの最後に配置される。こ
れらの各グループの中で、係数サブセットは、係数サブ
セットでカバーされる範囲の係数の下付文字に従った順
に配列される。従って、a=0を有するサブセットが最
初に配置され、a=1を有するサブセットが次に配置さ
れ、以下同様である。
分類グループ34内の係数サブセットは、単一データセグ
メントが変更されるとき、P及びQを更新するために使
用される。このタイプの演算は、データセグメントxa
が変更される場合に、Pセグメント及びQセグメントを
更新する。
セットの最初の2つのパラメータは、グループの係数が
Pの計算またはQの計算に適用可能であるか否かを示
す。これら係数はそれぞれ「0」または「1」に設定さ
れる。これら係数の最初の値が「1」であることは、サ
ブセットの係数がパリティセグメントPに適用されるこ
とを示す。これら係数の二番目の値が「1」であること
は、サブセットの係数がパリティセグメントQに適用さ
れることを示す。
トxaに対応する単一の残りの係数を含む。
でのaのすべての値に対応するN対のこのようなサブセ
ットを含む。これらサブセットは、a=bである分類2
係数サブセットの特別な場合に対応するため、新しい単
一データセグメントをストライプに追加する際に使用可
能なことに留意されたい。
分類グループ35内の係数サブセットは、パリティセグメ
ントの一方及び生存データセグメントに基づいて単一デ
ータセグメントxaを再構築するために使用される。係
数は、選択された誤り修正コードの数学的処理(f
( ))に従って変換されて再構築演算を実行することを
除き、分類1の係数に密接に対応する。
のaのすべての値に対応するN対のこのようなサブセッ
トを含む。各サブセットにおいて、係数f(pa)または
係数f(qa)はデータセグメントxaに対応することに
留意されたい。
分類グループ36内の係数サブセットは、2つのパリティ
セグメント及び生存データセグメントに基づいて、2つ
のデータセグメントxa及びxbを再構築するために使
用される。係数は、選択された誤り修正コードの数学的
処理(f( ))に従って変換されて再構築演算を実行す
ることを除き、分類1の係数に密接に対応する。
−1の範囲内のa及びbのあらゆる可能な組み合わせに
対応する、(N×(N−1))/2対のかかるサブセッ
トを含む。各サブセットにおいて、係数f(pa,
pb,qa,qb)は、データセグメントのうちどれが
再構築されているかに応じて、データセグメントxaま
たはxbに対応することに留意されたい。
下の通りである。
レイ格納方式に従ってパリティ演算を実行する方法を示
す。第1のステップ100で、種々のパリティ演算をパリ
ティセグメント生成演算、パリティセグメント再生成演
算、及びデータセグメント再構築演算を含む分類に分類
する。より具体的には、演算は、パリティ生成演算、セ
グメント追加によって生じるパリティ再生成演算、セグ
メントの変更によって生じるパリティ再生成演算、単一
データセグメント再構築演算、または二重データセグメ
ント再構築演算のいずれかに分類される。パリティ演算
の各分類は、複数の多様な分類シナリオを含み、その各
シナリオは各パリティ係数サブセットに関係する。
め計算し、異なるパリティ演算及びパリティ演算の異な
るシナリオに使用するパリティ係数サブセットを予め選
択する。このステップは、すでに述べた説明に従って行
われる。
数サブセットのすべてを、インデックスの付いた線形メ
モリアレイに格納する。サブセットには、パリティ計算
ロジックによりアクセス可能である。このステップは、
係数サブセットを予めフォーマットして、ハードウェア
ベースのパリティ演算ロジックが効率的に利用できるよ
うにすることを含む。特に、各サブセットの個々の係数
は隣接するバイトまたは記憶装置にパックされ、ハード
ウェアベースのパリティ演算ロジックに固有の様式に配
列される。このステップの結果、メモリアレイは、種々
の計算シナリオそれぞれに対応する単一の係数サブセッ
トを含むようになる。
データ要素を用いてパックされる。アレイのサブセット
はグループ化され、すでに述べたように順序づけられ、
係数サブセットはそれらの分類順によって分類グループ
にグループ化される。第2の分類グループ内では、サブ
セットは可変サイズを有する。さらに、第2の分類グル
ープ内のサブセットは、サイズによりサブグループ化さ
れ、最小の番号を有する係数に従い昇順に順序づけられ
る。
メモリアレイにアクセスし、パリティ演算の種々のシナ
リオでの使用に適した係数サブセットを得る。よって、
ステップ106で、格納されているパリティ係数サブセッ
トのうちどれが特定のパリティ演算に必要なのかを決定
する。このステップは、パリティ演算の分類と線形メモ
リアレイへのグループオフセットの決定を含み、そのパ
リティ演算分類に対応する分類グループの開始位置を示
す。次に、グループ内への所望の係数サブセットの位置
までのサブセットオフセットが計算される。
は単純である。詳細に上述したように、第2の分類グル
ープは長さすなわちサイズが可変の係数サブセットを含
み、特定の係数サブセットのオフセットを決定すること
が困難である。しかし、本願発明者らは、第2の分類グ
ループが上述したように配列されるとき、同じサイズの
係数サブセットのサブグループを順序づけると、特定の
サブグループに対するオフセットを、係数サブセットの
サブグループのサイズ及びN(任意のサブグループに含
まれる最大数の係数)の関数として計算することができ
ることを見出した。具体的には、サブセットサイズLi
に対応する特定のサブグループiに対するオフセット
は、以下に等しい。
対応する定数の対(上述)が存在するものと想定してい
る。しかし、Lは(b−a)に等しい。サブグループi
内において、特定の係数サブセットのオフセットはa
(Li+2)に等しい。従って、xa〜xbに対応する係
数の範囲に関して、分類グループへの全体的なオフセッ
トは、次のようになる。
れる。
した後、決定したパリティ係数サブセットをメモリから
読み出すステップ108が行われる。ステップ110で、メモ
リから読み出されたパリティ係数サブセットを用いて、
特定のパリティ演算を実行する。
本発明によるディスクコントローラ200の最も適切な構
成要素を示す。ディスクコントローラ200は、マイクロ
プロセッサ201及び関連するメモリ202を有する。さら
に、ディスクコントローラ200は、ハードディスクイン
タフェースコンポーネント203及び通信コンポーネント2
04を備える。ハードディスクインタフェースコンポーネ
ント203は、ディスクコントローラ200に接続されて制御
されるハードディスクへのアクセス手段を提供する。通
信コンポーネント204は、ホストコンピュータとハード
ディスクコントローラ200の間のインタフェースとして
機能する。
スクコントローラ200は、特定用途向け集積回路(AS
IC)の形態のハードウェアベースのパリティ演算ロジ
ック205を備える。「ハードウェアベース」という語
は、このロジックコンポーネントが、ソフトウェアベー
スのロジックとは対照的に、プログラムメモリからの命
令の検索や実行を行わないことを意味する。むしろ、ロ
ジックコンポーネントは、信号及びデータを処理する専
用の相互接続されるロジック要素を有する。このような
ハードウェアベースのロジックはマイクロプロセッサま
たは他の命令ベースのプロセッサよりも柔軟性が低い
が、ハードウェアベースのロジックは命令ベースのロジ
ックよりもはるかに高速であることが多い。
うに動作する。マイクロプロセッサ201は、ホストコン
ピュータとの通信を処理し、ホストコントローラへの、
かつホストコントローラからのすべてのデータ転送を調
整する。さらに、マイクロプロセッサ201は、実際のデ
ィスク転送をすべて調整する。しかし、データは、ディ
スクに書き込まれる前にメモリ202にバッファリングさ
れる。パリティ演算は、マイクロプロセッサ201の制御
下でメモリ202内のデータに対して行われる。
モリ202内に係数サブセットテーブル212を構築する。続
いて、パリティ演算のときになると、マイクロプロセッ
サ201は、パリティ演算の分類及びシナリオを決定す
る。この情報がいったん決定されると、マイクロプロセ
ッサ201は、パリティ演算の目的となる1つまたは複数
のデータセグメント及びパリティセグメント(まとめて
データブロック214と呼ぶ)の、メモリ202における位置
を示すスクリプトを作成する。スクリプトは、パリティ
演算に適切な係数サブセットが見つかる係数サブセット
テーブル212へのオフセット、及び係数サブセットに含
まれる係数の数を示す。スクリプトはまた、要求された
計算の結果が配置されるメモリ202内の位置も示す。各
スクリプトは、単一パリティ演算についての情報を格納
し、かかるスクリプトを格納するためのメモリ構造は、
本明細書においてタスク記述ブロック(TDB)と呼ば
れる。TDBはメモリ202内の特定の位置に格納され、
その位置(例えば、32ビットアドレス)へのポインタ
はメモリ202内のTDB待ち行列216に格納される。応答
待ち行列218もまたメモリ202に格納され、ハードウェア
ロジック205がこれを用いて、パリティ演算が成功した
か否かについての指示をマイクロプロセッサ201に戻
す。
行列216におけるスクリプトに対するTDBへのポイン
タが存在することで、ハードウェアロジックに通知され
る。ハードウェアロジックはこれに応答して、(a)指
示された係数、データセグメント、及びパリティセグメ
ントを検索し、(b)指示された係数に基づいて適切な
パリティ演算を行い、(c)データ及び/または計算し
たパリティセグメントをメモリに戻し、(d)エントリ
を応答待ち行列218に書き込むことで、演算が首尾良
く完了したか否かをマイクロプロセッサ201に知らせ
る。
/パリティセグメントの積を合計することで、各種の異
なるパリティ演算を行うように構成される。異なる演算
は実際に、係数、データセグメント、及びパリティセグ
メントの数及び選択においてのみ異なる。これら変数
は、スクリプトによって特定される。このように、この
演算は、ハードウェアベースの計算に非常に都合が良
い。
な構造をさらに詳細に示す。本明細書において、TDB
250は、TDB250内の情報に基づいてパリティ演算を行
うために、ハードウェアロジック205によりアクセスさ
れることに関連して説明される。代わりに、図6に示す
メモリ構造は、種々の方法で(例えば、ソフトウェアま
たはファームウェアを実行するマイクロプロセッサまた
は他の命令ベースのプロセッサにより)パリティ演算を
実行する他のシステムで使用することもできる。
み、各待ち行列エントリは、要求ヘッダ及びTDBポイ
ンタの両方を含む。TDBポインタ252はTDB250をポ
イントするが(例えば、TDB250の開始アドレスをメ
モリ202に格納する)、対応する要求ヘッダ251は、TD
B250に基づいて実行される要求された動作についての
様々な情報を格納する。一実施形態においては、TDB
ポインタ252及び要求ヘッダ251の両方が32ビット値で
あり、要求ヘッダ251は以下の情報を含む。すなわ
ち、TDB20のサイズ(例えば、8バイトダブルワード
グループで)、ハードウェアロジック205がTDB250内
のデータに基づいて実行すべき演算の指示、タグベース
の一貫性チェック(より詳細に後述する)を実行すべき
か否か、演算完了情報を書き込むべき応答待ち行列218
の識別、及びタグ番号(タグベースの一貫性チェックが
実行中である場合)である。
クデータポインタ254と、出力ポインタ256と、係数ポイ
ンタ及びデータ258とを含む複数のフィールドを有す
る。ヘッダ253は、TDBについての様々な情報を含
み、一実施形態では以下を含む。すなわち、TDB250
のサイズ(例えば、8バイトダブルワードグループ
で)、ハードウェアロジック205がTDB250内のデータ
に基づいて実行すべき演算の指示(例えば、上記パリテ
ィ演算の5つの分類のうちの1つの識別)、ハードウェ
アロジック205がTDB250内のデータに基づいて実行す
べき演算の実行優先度(例えば、所望であれば、異なる
タイプの演算に異なる実行優先度を割り当てることがで
きる)、及びタグ番号(タグベースの一貫性チェックが
実行中である場合)である。
ィ演算に関するディスクデータのメモリ202内の位置を
ポイントする(図5のデータブロック214のうちの1
つをそれぞれポイントする)。実行中のパリティ演算に
応じて、各ポインタ254によってポイントされるデータ
は、パリティ演算を行うべきストライプのデータセグメ
ントまたはパリティセグメントである。ポインタ254
は、ハードウェアロジック205により(ストライプにお
いて最も小さい番号の付いたデータセグメントから最も
大きな番号の付いたデータを配列し、その後にPパリテ
ィセグメント及びQパリティセグメントが続くといっ
た)既知の順に従って配列されるため、ハードウェアロ
ジック205は、パリティ演算についてどのメモリ位置に
どのセグメントデータがあるかを知る。出力ポインタ25
6は、パリティ演算ロジック205がパリティ演算の結果を
書き込むべきメモリ202内の位置260を指すポインタであ
る。実行中のパリティ演算のタイプに応じて、演算の結
果はPパリティ値及びQパリティ値のいずれか(例え
ば、パリティ生成演算またはパリティ再生成演算の場
合)、またはデータセグメント値(例えば、データセグ
メント再構築の場合)であることができる。単一の出力
ポインタ256を図6に示しているが、代わりに複数の出
力ポインタをTDB250に含めてもよい(例えば、P値
に1つのポインタ、Q値に1つのポインタというよう
に、複数の値が生成される場合)。
演算ロジック205が使用すべき係数サブセットが位置す
る、係数テーブル30内の位置を指すポインタを含む。ポ
インタ及びデータ258内には、係数テーブルから検索す
べき係数の数の指示も存在し得る(これは、ヘッダ253
において識別される実行すべきパリティ演算のタイプの
指示とは別のものであってもよく、また代わりに実行す
べきパリティ演算のタイプの指示に埋め込んでも(また
は固有であっても)よい)。従って、係数ポインタ及び
データ258は(ヘッダ253と組み合わせて)、どこでパリ
ティ演算に関する係数を得るか、及びどのくらい係数を
得るべきか、ならびにどのパリティ演算を実行すべきか
という必要な情報をパリティ演算ロジック205に与え
る。
250に格納されると、マイクロプロセッサ201は、そのT
DBを指すポインタ及び対応する要求ヘッダ情報を含む
エントリをTDB待ち行列216に追加する。待ち行列216
に演算を加え、必要なデータが適切な位置で利用できる
ようになるまで待ち行列216へのエントリの追加を行わ
ないことにより、パリティ演算ロジック205は、確実に
パリティ演算の実行に必要な情報を有する。従って、パ
リティ演算ロジック205は、他のパリティ演算が待ち行
列で待機している間、パリティに関する追加情報を待つ
ことで遅延されず、ロジック205の高速演算が可能にな
る。
算ロジック205は、一貫性チェックをオプションとして
実行して、正しいTDBを使用していることを検証する
ことができる。一実施形態では、この一貫性チェック
は、演算のタイプ及びTDBのサイズの検証に基づく。
この実施では、TDB250のヘッダ253は、上記と同様
に、実行すべき演算のタイプの指示及びTDB250のサ
イズを含む。正しいTDBにアクセスしていることを検
証するために、ハードウェアロジック205は、要求ヘッ
ダ251内の演算のタイプ及びTDBサイズにアクセス
し、これらがヘッダ253に格納されている演算のタイプ
及びTDBサイズに一致するか否かをチェックする。ハ
ードウェアロジック205が、2つの演算タイプ及び2つ
のTDBサイズが一致すると判断した場合、TDB250
は正しいTDBであると検証され、その他の場合、TD
Bは正しいTDBではなく、ハードウェアロジック205
は、(例えば、応答待ち行列218内のエントリを介し
て)コマンド不一致のためにパリティ演算が失敗したこ
とをマイクロプロセッサ201に知らせる。
あり、本明細書においてこれはタグベースの一貫性チェ
ックと呼ばれる。タグベースの一貫性チェックを用いる
場合、マイクロプロセッサ201はタグ番号を演算に割り
当て、タグ番号は要求ヘッダ251及びヘッダ253の両方に
格納される。ハードウェアロジック205は、演算タイプ
及びTDBサイズを検証することに加え、ヘッダ251及
び253におけるタグ番号の一致もチェックする。タグ番
号が一致する場合、TDB250は正しいTDBであると
検証され(演算タイプ及びTDBサイズも一致するもの
と仮定する)、その他の場合は、TDBは正しいTDB
ではなく、ハードウェアロジック205は、(例えば、応
答待ち行列218内のエントリを介して)タグ不一致によ
りパリティ演算が失敗したことをマイクロプロセッサ20
1に知らせる。
ると、計算した演算結果が、出力ポインタ256によって
ポイントされるメモリ位置260に格納される。さらに、
ハードウェアロジック205によって実行された演算のス
テータスを示すエントリが応答待ち行列218に追加され
る。複数の応答待ち行列218が存在する場合があり、ハ
ードウェアロジック205がエントリを追加する適切な応
答待ち行列は、演算に対応する要求ヘッダ251で示され
る。
むことができ、各エントリは応答ヘッダ及びTDBポイ
ンタを含む。TDBポインタ262は、TDB250をポイン
トするが(例えば、TDB250の開始アドレスをメモリ2
02に格納する)、対応する応答ヘッダ261は、TDB250
に基づいて実行された演算についての様々な情報を格納
する。一実施形態では、TDBポインタ262及び応答ヘ
ッダ261の両方が32ビット値であり、応答ヘッダ261は
以下の情報を含む。すなわち、TDB250のサイズ(例
えば、8バイトダブルワードグループで)、ハードウェ
アロジック205がTDB250内のデータに基づいて実行し
た演算の指示、タグベースの一貫性チェックが実行され
たかどうか、二重パリティブロック計算の結果、ゼロし
か含まないPパリティブロック及びQパリティブロック
が生じたり、または単一パリティブロック計算の結果ゼ
ロしか含まないPパリティブロックが生じる場合に設定
される「パリティ・オール・ゼロ」フラグ(このフラグ
は、演算がパリティ演算ではない場合でも設定され
る)、ソースデータが定義されたフォーマットパターン
に一致する場合に設定される「パターン一致」フラグ、
演算を実行する際にどのタイプのエラーが(もしあれ
ば)発生したかに関する指示、及びタグ番号(タグベー
スの一貫性チェックが実行中である場合)を含む。一実
施形態では、応答ヘッダ261を介して以下のエラーを示
すことができる。すなわち、タグ不一致(待ち行列216
のヘッダ251内のタグが、TDB250のヘッダ253内のタ
グと一致しない)、コマンド不一致(ヘッダ251におけ
る演算タイプ及びTDBサイズが、ヘッダ253内の演算
タイプ及びTDBサイズに一致しない)、パリティエラ
ー(メモリ202から戻されるデータにおいて検出された
パリティエラー)、メモリテストデータ不一致(miscom
pare)(パリティ演算ではなくメモリテスト演算が実行
中である場合、これは、メモリテスト中メモリ202から
戻されるデータが不正確であったことを示す)、及び不
正コマンド(ヘッダ251及びヘッダ253で示される演算タ
イプが正当な値ではない)である。
て、単一TDBを用いてパリティ演算ロジック205がパ
リティ演算を実行するために必要な情報をすべて識別す
る。単一ポインタを用いて各TDBを識別することがで
き、複数のパリティ演算を図5のTDB待ち行列216に
容易に入れることが可能になる。次いで、パリティ演算
ロジック205は、演算を待ち行列216から取り除くことに
より、パリティ演算を特定の様式で(例えば、先入れ先
出し(FIFO)方式で)処理することができる。
演算を実行する必要があるかについての記述は、作業を
実際に実行するコンポーネントから分離される。この分
離により、2つの異なるプロセス(何をすべきかを記述
するプロセス及びする必要があることを実際に実行する
プロセス)を、他方がどのように実行されているか(あ
るいは、どのコンポーネントまたはエンティティがその
プロセスを実行しているか)に関わらず、互いに独立し
て動作することが可能になる。従って、図5のマイクロ
プロセッサ201は、どのコンポーネントが実際にパリテ
ィ演算を実行しているのかに関わらず(例えば、パリテ
ィ演算は、ハードウェアロジック205または代替として
他のコンポーネント(ソフトウェア命令を実行する別の
マイクロプロセッサ等)によって実行することができ
る)、パリティ演算についての必要な情報を準備するこ
とができる。同様に、ハードウェアロジック205は、パ
リティ演算についての情報をメモリ202から獲得でき、
どのエンティティが情報をメモリ202内に準備するか、
または情報がどのように得られたかに関わらず、パリテ
ィ演算を実行することができる。
算についてのタスク記述ブロックを使用する方法を示
す。図7の方法は、図5のマイクロプロセッサ201及び
ハードウェアロジック205によって実行される動作を示
す(マイクロプロセッサ201によって実行される動作は
左側にあり、ハードウェアロジック205によって実行さ
れる動作は右側にある)。第1のステップ270で、実行
するパリティ演算のTDBを生成する。この生成は、様
々な従来の方法の任意のもので実行することができる
(例えば、TDBにメモリを割り当てる、既に割り当て
られたが使用されていないメモリを使用するなど)。ス
テップ272で、コマンドタイプ、応答待ち行列識別子、
及びタグ番号(オプション)をTDBのヘッダに格納す
る。他の情報(上述)がヘッダに含まれてもよい。ステ
ップ274で、パリティ演算に関するディスクデータメモ
リ位置を指すポインタをTDBに格納し、ステップ276
で、パリティ演算に関する結果メモリ位置を指すポイン
タをTDBに格納する。ステップ278で、使用に適した
係数サブセットを決定し(上記図4のステップ106と同
様)、ステップ280で、その係数サブセットを指すポイ
ンタをTDBに格納する。ステップ282で、パリティ演
算ロジックにどのパリティ演算を実行すべきかを知らせ
るために、パリティ演算分類の指示をTDBに格納す
る。これらの情報すべてがTDBに格納されると、ステ
ップ284で、TDB待ち行列に、要求ヘッダ及びこの新
たに追加されたTDBを指すポインタを含むエントリを
追加する。従って、TDBの指示は、パリティ演算につ
いてのすべてのデータがメモリ202内で利用できるよう
になるまで、TDB待ち行列に追加されず、これによっ
て、パリティ演算ロジックがメモリ202にアクセスし、
所望のときにいつでもパリティ演算を実行することが可
能になる。
ある時点において、ステップ286で、ハードウェアロジ
ック205が要求された演算を実行する。演算が完了また
は失敗すると、ステップ288で、演算が首尾良く完了し
たか、それともエラーが発生したかを示す(上記ステッ
プ272において識別されるような)応答エントリを適切
な応答待ち行列に追加する。
ダ及びTDBポインタの両方)が同時にTDB待ち行列
に追加される(ステップ284)ことを述べている。代わ
りに、情報が利用可能な場合はTDB待ち行列内の要求
ヘッダを埋めても良く、この場合は、ステップ284で、
TDBポインタだけを待ち行列エントリに追加する(及
び本質的にTDB待ち行列エントリが完全に埋められた
ことをハードウェアロジック205に通知する)。
ティ演算を冗長ディスクドライブシステムにおいて実行
することに関連して説明したが、本発明は、代替的に他
の状況で使用することができる。例えば、本発明は、ハ
ードウェア加速メモリテストを実行するために使用する
ことも可能であり、この場合、検証のために書き込まれ
るべきメモリアドレスは、図6のフィールド254によっ
て識別され、図5のハードウェアロジック205がテスト
データを識別されたメモリアドレスに書き込み、そのメ
モリアドレスからデータを読み戻し、読み戻されたデー
タをポインタ256によって識別される位置に格納する。
行するために使用することができる。この場合、コピー
するデータはポインタ254によって識別され、得られる
コピーの位置はポインタ256によって識別され、ハード
ウェアロジック205がコピーを実行する。
ンマッチングを実行するために使用することもできる。
この場合、比較されるデータセグメントはポインタ254
によって識別され、ハードウェアロジック205が比較を
実行し、比較の結果(例えば、2つのデータセグメント
が一致するかどうかの指示)をポインタ256によって識
別される位置に書き込む。
サム計算の実行に使用することもできる。この場合、チ
ェックサムが計算されるデータセグメントがポインタ25
4によって識別され、ハードウェアロジック205がチェッ
クサムを計算し、得られるチェックサム値をポインタ25
6によって識別される位置に書き込む。
れる。
ティ演算を実行するディスクコントローラ(200)であ
って、実行すべき前記パリティ演算についての情報をそ
れぞれ識別する複数のタスク記述ブロック(250)を格
納するメモリ(202)と、前記メモリ(202)に接続さ
れ、前記複数のタスク記述ブロック(250)のそれぞれ
にアクセスし、前記タスク記述ブロック(250)で識別
される情報に基づいて前記パリティ演算を実行するパリ
ティ演算ロジック(205)と、を備えるディスクコント
ローラ。
記複数のタスク記述ブロック(250)のうちの1つを識
別する複数のエントリを有するタスク記述ブロック待ち
行列(216)をさらに格納し、前記パリティ演算ロジッ
ク(205)は、前記複数のエントリのうちの1つによっ
て識別されるタスク記述ブロック(250)にアクセスす
ることによって、パリティ演算の実行に必要な情報を得
る、上記1に記載のディスクコントローラ(200)。
0)はそれぞれ、対応するパリティ演算を実行するため
に必要な情報を格納し、前記情報には、前記パリティ演
算に関するディスクデータについて、前記メモリ(20
2)内の位置をそれぞれ識別する複数のディスクデータ
ポインタ(254)と、前記パリティ演算の結果を格納す
べき前記メモリ(202)内の位置を識別する出力ポイン
タ(256)と、前記パリティ演算に関するパリティ係数
が格納される前記メモリ(202)内の位置を識別する係
数ポインタ(258)と、実行すべき前記パリティ演算の
タイプの識別子(253)と、が含まれる、上記1に記載
のディスクコントローラ。
(202)に格納するステップ(272、274、276、280、
282)であって、前記パリティ演算は、冗長データ記憶
システムにおけるストライプについて少なくとも1つの
パリティセグメントを生成するか、または前記ストライ
プについて少なくとも1つのデータセグメントを再生成
するものである、ステップと、前記パリティ演算に必要
な前記情報がすべて前記メモリ(202)に格納された後
でのみ、パリティ演算ロジック(205)が前記情報を利
用できるようにするステップと、を含む方法。
算についての前記情報を前記メモリ(202)に格納する
ステップと、前記情報を指すポインタを前記パリティ演
算に対応するタスク記述ブロック(250)に格納するス
テップと、を含む上記4に記載の方法。
リ位置識別子を前記パリティ演算に対応するタスク記述
ブロック(250)に格納するステップを含み、前記情報
を利用できるようにするステップは、前記タスク記述ブ
ロック(250)の識別子を、前記パリティ演算ロジック
(205)がアクセス可能なタスク記述ブロック待ち行列
(216)に追加するステップを含む、上記4に記載の方
法。
2)内にタスク記述ブロック(250)を生成するステップ
(270)を含み、該タスク記述ブロック(250)には、前
記パリティ演算に関するディスクデータの、前記メモリ
(202)内の位置をそれぞれ識別する複数のディスクデ
ータポインタ(254)と、前記パリティ演算の結果を格
納すべき前記メモリ(202)内の位置を識別する出力ポ
インタ(256)と、前記パリティ演算に関するパリティ
係数が格納される前記メモリ(202)内の位置を識別す
る係数ポインタ(258)と、実行すべき前記パリティ演
算のタイプの識別子(253)と、を含む、上記4に記載
の方法。
情報を利用できるようにして、1つまたは複数のデータ
セグメントに基づいて演算を実行する方法であって、演
算に関する1つまたは複数のデータセグメントをそれぞ
れメモリ(202)内の別々の位置に格納するステップ
と、前記演算に対応するタスク記述ブロック(250)
に、前記メモリ(202)内の別々の位置それぞれへのポ
インタ(254)を格納するステップと、前記タスク記述
ブロック(250)に、前記演算の結果を格納すべき前記
メモリ(202)内の結果位置へのポインタ(256)を格納
するステップと、タスク記述ブロック待ち行列(216)
に、前記タスク記述ブロック(250)へのポインタ(25
2)を格納するステップと、を含む方法。
5)が前記パリティ演算を実行し、前記方法は、前記メ
モリ(202)に異なる前記パリティ演算に使用される複
数の係数を格納するステップと、前記タスク記述ブロッ
ク(250)に、前記パリティ演算ロジック(205)が前記
パリティ演算に使用する複数の係数サブセットへのポイ
ンタ(258)を格納するステップと、をさらに含む、上
記8に記載の方法。
記述ブロック(250)に格納するステップは、前記メモ
リ(202)内の前記複数の異なる位置それぞれを指す前
記ポインタ(254)が前記タスク記述ブロック(250)に
格納された後でのみ、かつ前記結果位置を指す前記ポイ
ンタ(256)が前記タスク記述ブロック(250)に格納さ
れた後でのみ、前記タスク記述ブロック(250)を指す
前記ポインタを前記タスク記述ブロック待ち行列(21
6)に格納するステップを含む、上記8に記載の方法。
ロック図である。
長グループ化を示すブロック図である。
すブロック図である。
実行する方法を示す図である。
ポーネントを示すブロック図である。
細に示す図である。
ックを使用する方法を示す図である。
Claims (1)
- 【請求項1】 冗長データ記憶システムにおいてパリテ
ィ演算を実行するディスクコントローラであって、 実行すべき前記パリティ演算についての情報をそれぞれ
識別する複数のタスク記述ブロックを格納するメモリ
と、 前記メモリに接続され、前記複数のタスク記述ブロック
のそれぞれにアクセスし、前記タスク記述ブロックで識
別される情報に基づいて前記パリティ演算を実行するパ
リティ演算ロジックと、 を備えるディスクコントローラ。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/808,713 US6766480B2 (en) | 2001-03-14 | 2001-03-14 | Using task description blocks to maintain information regarding operations |
US09/808,713 | 2001-03-14 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002278707A true JP2002278707A (ja) | 2002-09-27 |
JP2002278707A5 JP2002278707A5 (ja) | 2005-08-04 |
Family
ID=25199506
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002009660A Pending JP2002278707A (ja) | 2001-03-14 | 2002-01-18 | ディスクコントローラ |
Country Status (3)
Country | Link |
---|---|
US (1) | US6766480B2 (ja) |
EP (1) | EP1241560A3 (ja) |
JP (1) | JP2002278707A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7529904B2 (en) | 2004-03-31 | 2009-05-05 | International Business Machines Corporation | Storing location identifier in array and array pointer in data structure for write process management |
JP2014521130A (ja) * | 2011-10-19 | 2014-08-25 | 株式会社日立製作所 | ストレージシステム |
US11971782B2 (en) | 2020-02-20 | 2024-04-30 | Sk Hynix Nand Product Solutions Corp. | On-SSD erasure coding with uni-directional commands |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050273651A1 (en) * | 2004-05-18 | 2005-12-08 | Aristos Logic Corporation | Method of implementing XOR based raid algorithms |
US7290199B2 (en) * | 2004-11-19 | 2007-10-30 | International Business Machines Corporation | Method and system for improved buffer utilization for disk array parity updates |
US7392428B2 (en) * | 2004-11-19 | 2008-06-24 | International Business Machines Corporation | Method and system for recovering from abnormal interruption of a parity update operation in a disk array system |
US7392458B2 (en) * | 2004-11-19 | 2008-06-24 | International Business Machines Corporation | Method and system for enhanced error identification with disk array parity checking |
US20060123312A1 (en) * | 2004-11-19 | 2006-06-08 | International Business Machines Corporation | Method and system for increasing parallelism of disk accesses when restoring data in a disk array system |
US20060123271A1 (en) * | 2004-11-19 | 2006-06-08 | International Business Machines Corporation | RAID environment incorporating hardware-based finite field multiplier for on-the-fly XOR |
JP2006171957A (ja) * | 2004-12-14 | 2006-06-29 | Fujitsu Ltd | ストレージ制御装置および方法 |
US8631284B2 (en) * | 2010-04-30 | 2014-01-14 | Western Digital Technologies, Inc. | Method for providing asynchronous event notification in systems |
US8762682B1 (en) | 2010-07-02 | 2014-06-24 | Western Digital Technologies, Inc. | Data storage apparatus providing host full duplex operations using half duplex storage devices |
JP6341795B2 (ja) * | 2014-08-05 | 2018-06-13 | ルネサスエレクトロニクス株式会社 | マイクロコンピュータ及びマイクロコンピュータシステム |
US10725963B2 (en) | 2015-09-12 | 2020-07-28 | Microsoft Technology Licensing, Llc | Distributed lock-free RDMA-based memory allocation and de-allocation |
US10713210B2 (en) * | 2015-10-13 | 2020-07-14 | Microsoft Technology Licensing, Llc | Distributed self-directed lock-free RDMA-based B-tree key-value manager |
US10375167B2 (en) | 2015-11-20 | 2019-08-06 | Microsoft Technology Licensing, Llc | Low latency RDMA-based distributed storage |
WO2019102656A1 (ja) * | 2017-11-21 | 2019-05-31 | ソニーセミコンダクタソリューションズ株式会社 | メモリコントローラ、メモリ、メモリシステム、情報処理システム、および、それらにおける制御方法 |
CN111679990B (zh) * | 2020-06-17 | 2023-08-08 | 北京字节跳动网络技术有限公司 | 测试数据生成方法、装置、可读介质及电子设备 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4433388A (en) * | 1980-10-06 | 1984-02-21 | Ncr Corporation | Longitudinal parity |
US5134619A (en) * | 1990-04-06 | 1992-07-28 | Sf2 Corporation | Failure-tolerant mass storage system |
JPH04184634A (ja) * | 1990-11-20 | 1992-07-01 | Matsushita Electric Ind Co Ltd | マイクロコンピュータ |
JP3409859B2 (ja) * | 1991-01-31 | 2003-05-26 | 株式会社日立製作所 | 制御装置の制御方法 |
US5446855A (en) * | 1994-02-07 | 1995-08-29 | Buslogic, Inc. | System and method for disk array data transfer |
JP3209634B2 (ja) * | 1994-03-28 | 2001-09-17 | 株式会社日立製作所 | 計算機システム |
JP3011035B2 (ja) * | 1994-12-08 | 2000-02-21 | 株式会社日立製作所 | 計算機システム |
US5893162A (en) * | 1997-02-05 | 1999-04-06 | Transwitch Corp. | Method and apparatus for allocation and management of shared memory with data in memory stored as multiple linked lists |
US6523087B2 (en) * | 2001-03-06 | 2003-02-18 | Chaparral Network Storage, Inc. | Utilizing parity caching and parity logging while closing the RAID5 write hole |
US6567891B2 (en) * | 2001-03-14 | 2003-05-20 | Hewlett-Packard Development Company, L.P. | Methods and arrangements for improved stripe-based processing |
US7062702B2 (en) * | 2001-03-14 | 2006-06-13 | Hewlett-Packard Development Company, L.P. | Efficient parity operations |
US6687872B2 (en) * | 2001-03-14 | 2004-02-03 | Hewlett-Packard Development Company, L.P. | Methods and systems of using result buffers in parity operations |
-
2001
- 2001-03-14 US US09/808,713 patent/US6766480B2/en not_active Expired - Lifetime
-
2002
- 2002-01-18 JP JP2002009660A patent/JP2002278707A/ja active Pending
- 2002-03-07 EP EP02251618A patent/EP1241560A3/en not_active Withdrawn
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7529904B2 (en) | 2004-03-31 | 2009-05-05 | International Business Machines Corporation | Storing location identifier in array and array pointer in data structure for write process management |
US7818533B2 (en) | 2004-03-31 | 2010-10-19 | International Business Machines Corporation | Storing location identifier in array and array pointer in data structure for write process management |
JP2014521130A (ja) * | 2011-10-19 | 2014-08-25 | 株式会社日立製作所 | ストレージシステム |
US9519554B2 (en) | 2011-10-19 | 2016-12-13 | Hitachi, Ltd. | Storage system with rebuild operations |
US11971782B2 (en) | 2020-02-20 | 2024-04-30 | Sk Hynix Nand Product Solutions Corp. | On-SSD erasure coding with uni-directional commands |
JP7529947B2 (ja) | 2020-02-20 | 2024-08-07 | エスケイ ハイニックス ナンド プロダクト ソリューションズ コーポレーション | 単方向コマンドによるオン-ssdの消失訂正符号化 |
Also Published As
Publication number | Publication date |
---|---|
US6766480B2 (en) | 2004-07-20 |
EP1241560A3 (en) | 2004-09-22 |
EP1241560A2 (en) | 2002-09-18 |
US20020166078A1 (en) | 2002-11-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5166936A (en) | Automatic hard disk bad sector remapping | |
US6138125A (en) | Block coding method and system for failure recovery in disk arrays | |
US10210045B1 (en) | Reducing concurrency bottlenecks while rebuilding a failed drive in a data storage system | |
US5375128A (en) | Fast updating of DASD arrays using selective shadow writing of parity and data blocks, tracks, or cylinders | |
US6687872B2 (en) | Methods and systems of using result buffers in parity operations | |
US6567891B2 (en) | Methods and arrangements for improved stripe-based processing | |
JP2002278707A (ja) | ディスクコントローラ | |
CA1270333A (en) | Parity spreading to enhance storge access | |
US7406621B2 (en) | Dual redundant data storage format and method | |
US6918007B2 (en) | Memory controller interface with XOR operations on memory read to accelerate RAID operations | |
EP0503768B1 (en) | Method and means for accessing arrays of DASDS | |
US7797612B2 (en) | Storage accelerator | |
US20020035666A1 (en) | Method and apparatus for increasing raid write performance by maintaining a full track write counter | |
US5978856A (en) | System and method for reducing latency in layered device driver architectures | |
JP2004227560A (ja) | 外部格納サブシステムにおけるパリティー格納方法及びエラーブロック復旧方法 | |
US6343343B1 (en) | Disk arrays using non-standard sector sizes | |
US7346733B2 (en) | Storage apparatus, system and method using a plurality of object-based storage devices | |
US7356757B2 (en) | Fault tolerance system and method for one or two failed disks in a disk array | |
JP2002328814A (ja) | パリティ演算を実行する方法 | |
US20050278612A1 (en) | Storage device parity computation | |
JP2006178926A (ja) | 複数のオブジェクトベースのストレージ装置を使用したストレージ装置、システム、および方法 | |
US7788525B2 (en) | Fault tolerance system and method for multiple failed disks in a disk array | |
WO2001001581A1 (en) | Data integrity management for data storage systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050105 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050105 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060920 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061218 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070227 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20070523 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20070528 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20070620 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20070625 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070823 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20071009 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20071225 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20071228 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080402 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20080520 |