(57)【要約】【課題】ＲＡＩＤ情報を検査する方法において、ＩＤストリップを提供するために複数の記憶装置を制御すること（段落［０００７］より）【解決手段】ＲＡＩＤデータ検査システムにおいて、Ｐ＋Ｑ検査機能は、仮想メモリ・アドレス範囲に送信されたデータを受信するものの、入ってくるデータを格納する代わりに、Ｐ＋Ｑ検査機能は、入ってくるデータに関連付けられるＰおよびＱ冗長データ計算の中間値をアップデートする。全てのストリップが受信されると、Ｐ＋Ｑ検査機能はＰおよびＱ冗長データの計算を完了したことになる。Ｐ＋Ｑ検査機能は、記憶装置からＰまたはＱデータを受け取ってもよい。この場合、全てのストリップおよびＰまたはＱデータの受信後、全てのデータならびにＰおよびＱデータが正しかった場合、Ｐ＋Ｑ検査機能はゼロを保持する。エラーがあった場合、Ｐ＋Ｑ検査機能は非ゼロ値を保持する。【選択図】図１
2014041664.tif 000002
【特許請求の範囲】
【請求項１】
ＲＡＩＤ情報を検査するシステムであって、
ＲＡＩＤ検査範囲に対応するシステム・バス上の第１アドレスを決定するアドレス比較と、
ＲＡＩＤ  Ｐ−データ・アキュムレータに格納されたデータの排他的論理和の第１結果および前記システム・バスから受信されたデータを格納するＲＡＩＤ  Ｐ−データ・アキュムレータとを含み、前記システム・バスから受信された前記データが、前記システム・バス上の前記第１アドレスに送信されるデータに対応し、前記システム・バス上の前記第１アドレスが前記ＲＡＩＤ検査範囲に対応するものであり、さらに、
前記システム・バス上の前記第１アドレスに基づいて、前記システム・バスから受信された前記データに対応する定数のセットのうちの１つを選択する定数セレクタと、
ＲＡＩＤ  Ｑ−データ・アキュムレータに格納されたデータの排他的論理和の第２結果、および定数の前記セットのうちの前記１つのガロア体乗算の第３結果、ならびに前記システム・バスから受信された前記データを格納するＲＡＩＤ  Ｑ−データ・アキュムレータとを備えるシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、２００８年１１月１９日にＷｉｌｌｉａｍ  Ｐａｔｒｉｃｋ  Ｄｅｌａｎｅｙによって出願された米国仮特許出願第６１／１１６，２６５号「Ｍｅｍｏｒｙ  Ｅｆｆｉｃｉｅｎｔ  Ｃｈｅｃｋ  ｏｆ  ＲＡＩＤ  Ｉｎｆｏｒｍａｔｉｏｎ」の利益を主張する。上記出願の内容全体をその開示および教示について参照により本明細書に明確に組み込む。
【背景技術】
【０００２】
大容量記憶システムは、ユーザの要望を満たすために、増加した記憶容量を提供し続けている。ますます大きな記憶システムを求める要望の増大に拍車をかける用途の例には、写真および映画記憶装置ならびに写真および映画共有がある。
【０００３】
これらの高まりつつある要望への解決策は、複数の安価なディスクのアレイを使用することである。これらのアレイはいかなるデータ損失もなしに冗長性およびエラー回復を提供するような方法で構成されうる。これらのアレイはまた、複数のディスク・ドライブでデータが同時に読み取りまたは書き込みできるようにすることによって、読取りおよび書込み性能が向上するように構成されうる。これらのアレイはまた、アレイの記憶サービスを中断せずに異常を起こしたディスクの交換ができるようにする「ホット・スワッピング」ができるように構成されうる。冗長性が提供されるかどうかにかかわらず、これらのアレイは一般に独立ディスクの冗長アレイ（または、より一般的には頭字語でＲＡＩＤ）と呼ばれる。カリフォルニア大学バークレー校のＤａｖｉｄ  Ａ．  Ｐａｔｔｅｒｓｏｎ他による１９８７年の刊行物「Ａ  Ｃａｓｅ  ｆｏｒ  Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙｓ  ｏｆ  Ｉｎｅｘｐｅｎｓｉｖｅ  Ｄｉｓｋｓ（ＲＡＩＤ）」は、基本概念およびＲＡＩＤ技術のレベルを論じている。
【０００４】
ＲＡＩＤ記憶システムは、記憶アレイを管理することの詳細をユーザまたはホスト・システムから見えないようにするコントローラを一般的に利用する。コントローラは記憶アレイを１つまたは複数のディスク・ドライブ（またはボリューム）に見せる。これは、特定のボリュームのためのデータ（または冗長データ）が複数のディスク・ドライブに分散されうるという事実にもかかわらず達成される。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】カリフォルニア大学バークレー校のＤａｖｉｄ  Ａ．  Ｐａｔｔｅｒｓｏｎ他による１９８７年の刊行物「Ａ  Ｃａｓｅ  ｆｏｒ  Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙｓ  ｏｆ  Ｉｎｅｘｐｅｎｓｉｖｅ  Ｄｉｓｋｓ（ＲＡＩＤ）」
【発明の概要】
【課題を解決するための手段】
【０００６】
したがって本発明の一実施形態は、ＲＡＩＤ情報を検査するためのシステムにおいて、ＲＡＩＤ検査範囲に対応するシステム・バス上の第１アドレスを決定するアドレス比較と、ＲＡＩＤ  Ｐ−データ・アキュムレータに格納されたデータの排他的論理和の第１結果および前記システム・バスから受信されたデータを格納するＲＡＩＤ  Ｐ−データ・アキュムレータであって、前記システム・バスから受信された前記データが、前記システム・バス上の前記第１アドレスに送信されるデータに対応し、前記システム・バス上の前記第１アドレスが前記ＲＡＩＤ検査範囲に対応するＲＡＩＤ  Ｐ−データ・アキュムレータと、前記システム・バス上の前記第１アドレスに基づいて、前記システム・バスから受信された前記データに対応する定数のセットのうちの１つを選択する定数セレクタと、ＲＡＩＤ  Ｑ−データ・アキュムレータに格納されたデータの排他的論理和の第２結果、および定数の前記セットのうちの前記１つのガロア体乗算の第３結果、ならびに前記システム・バスから受信された前記データを格納するＲＡＩＤ  Ｑ−データ・アキュムレータとを備えるシステムを備えうる。
【０００７】
したがって本発明の一実施形態は、ＲＡＩＤ情報を検査する方法において、ＩＤストリップを提供するために複数の記憶装置を制御することであって、前記複数のＲＡＩＤストリップが複数の仮想バッファに送信されることと、前記複数のＲＡＩＤストリップを受信することと、それぞれの前記複数の仮想バッファに対応する複数のＰ−データ値および複数のＱ−データ値を累算することであって、前記複数のＰ−データ値および前記複数のＱ−データ値が、それぞれの前記複数の仮想バッファのために受信された前記複数のＲＡＩＤストリップに対応することとを備える方法をさらに備えうる。
【０００８】
したがって本発明の一実施形態は、ＲＡＩＤ情報を検査するためのシステムであって、システム・バス上に提示されたアドレスを複数の仮想アドレス・バッファ範囲と比較する仮想バッファ比較と、前記複数の仮想アドレス・バッファ範囲のうちの１つに対応する前記システム・バス上に提示された前記アドレスに応答して、ガロア体定数およびアキュムレータ・バッファ・アドレスを選択するセレクタと、前記ガロア体定数および前記システム・バス上に提示された前記アドレスに対応するデータのブロックにガロア体乗算を実行するガロア体乗算器と、データの前記ブロックおよび前記アキュムレータ・バッファ・アドレスに対応する格納されたＰ−データ値への排他的論理和演算のＰ−データ結果を格納するＰ−データ排他的論理和アキュムレータと、ガロア体乗算結果および前記アキュムレータ・バッファ・アドレスに対応する格納されたＱ−データ値への排他的論理和演算のＱ−データ結果を格納するＱ−データ排他的論理和アキュムレータとを備えるシステムをさらに備えうる。
【図面の簡単な説明】
【０００９】
【図１】ＲＡＩＤ情報を検査するためのシステムのブロック図である。
【図２】ＲＡＩＤ情報のブロックを検査するためのシステムのブロック図である。
【図３】ＲＡＩＤ情報を検査する方法の流れ図である。
【図４】コンピュータ・システムのブロック図である。
【発明を実施するための形態】
【００１０】
図１はＲＡＩＤ情報を検査するためのシステムのブロック図である。Ｐ＋Ｑ検査システム１００はアドレス・バス１０１、データ・バス１０２、アドレス比較１１０、定数セレクタ１２０、ガロア体（ＧＦ）乗算器１３０、Ｐ−データ・アキュムレータ１４０、Ｑ−データ・アキュムレータ１５０、排他的論理和（ＸＯＲ）１６０、および排他的論理和１６１を備える。アドレス・バス１０１およびデータ・バス１０２はシステム・バス１０３を共同で備える。アドレス・バス１０１はアドレス比較１１０および定数セレクタ１２０に動作可能なように結合される。データ・バス１０２はＧＦ乗算器１３０およびＸＯＲ１６０に動作可能なように結合される。
【００１１】
アドレス比較１１０はＨＩＴＰ、ＨＩＴＤ、およびＨＩＴＱの３つの信号を生成する。
ＨＩＴＤはＱ−データ・アキュムレータ１５０およびＰ−データ・アキュムレータ１４０に動作可能なように結合される。ＨＩＴＰはＰ−データ・アキュムレータ１４０に動作可能なように結合される。ＨＩＴＱはＱ−データ・アキュムレータ１５０に動作可能なように結合される。アドレス比較１１０はあらかじめ定義されたデータ範囲内のアドレス・バス１０１上のメモリ・アドレスに応答してＨＩＴＤを生成する。このあらかじめ定義されたデータ範囲は、システム・バス１０３に結合された記憶装置から送信されたＲＡＩＤデータを受信するためにＰ＋Ｑ検査システム１００がエミュレートする仮想メモリのブロックを定義する。アドレス比較１１０はあらかじめ定義されたＰ−データ範囲内のアドレス・バス１０１上のメモリ・アドレスに応答してＨＩＴＰを生成する。このあらかじめ定義されたＰ−データ範囲は、システム・バス１０３に結合された記憶装置から送信されたＲＡＩＤ  Ｐ−データを受信するためにＰ＋Ｑ検査システム１００がエミュレートする仮想メモリのブロックを定義する。アドレス比較１１０はあらかじめ定義されたＱ−データ範囲内のアドレス・バス１０１上のメモリ・アドレスに応答してＨＩＴＱを生成する。このあらかじめ定義されたＱ−データ範囲は、システム・バス１０３に結合された記憶装置から送信されたＲＡＩＤ  Ｑ−データを受信するためにＰ＋Ｑ検査システム１００がエミュレートする仮想メモリのブロックを定義する。ＨＩＴＤおよびＨＩＴＱはまた、定数セレクタ１２０に動作可能なように結合される。
【００１２】
一般にＲＡＩＤシステムは複数の記憶装置を介してデータおよび冗長データを配信する。全てが相互に関連しているデータおよび冗長データのブロックはストライプと呼ばれる。特定のディスク上にストライプを備えるデータのブロックはストリップと呼ばれうる。
ＲＡＩＤ−５には単一の冗長ブロックしかない。この冗長ブロックはストライプのためのパリティを格納する。したがって、Ｐ−ブロックまたはＰ−データと呼ばれる。Ｐ−データ内のそれぞれのビットは単にデータ・ストリップ内の対応するビットの、ビット単位の排他的論理和（ＸＯＲ）である。したがってＰ−データ計算は、
【数１】
2014041664.tif 000003
として表すことができ、上式でＤ１［ｉ］は第１データ・ストリップ内のｉ番目のバイトであり、Ｄ２［ｉ］は第２データ・ストリップ内のｉ番目のバイトであり、以下同様である。
【００１３】
ＲＡＩＤ−６には少なくとも２つの冗長ブロックがある。１つはＰ−ブロックであり、もう１つはＱ−ブロック（またはＱ−データ）と呼ばれる。Ｑ−データは以下の数式に従って計算される。
【数２】
2014041664.tif 000004
上式でＤ１［ｉ］は第１データ・ストリップ内のｉ番目のバイトであり、Ｄ２［ｉ］は第２データ・ストリップ内のｉ番目のバイトであり、以下同様である。Ｃ１、Ｃ２などは、Ｑ−データを生成するために使用される冗長法（たとえばＲｅｅｄ−Ｓｏｌｏｍｏｎ）によって値が管理された固定定数バイトである。これらの定数はＱ−データ定数と呼ばれうる。「・」記号はＧＦ（２８）におけるガロア体乗算を表すことを意図する。Ｑ−データ定数Ｃ１からＣＮのための適当な値を選択することによって、Ｑ−データの追加ブロックが生成されうることが理解されるべきである。Ｑ−データのこれらの追加ブロックにより、ＲＡＩＤシステムはより多くのエラーを検出して回復できるようになる。
【００１４】
一実施形態では、ＲＡＩＤアレイからのデータは、最初にメモリに格納されずに記憶装置からＰ＋Ｑ検査システム１００に直接送信される。Ｐ＋Ｑ検査システム１００は、ＲＡＩＤアレイの記憶装置を制御するＩ／Ｏコントローラにとってメモリ・スペースに見えるようにシステム・バス１０３に結合される。したがって既存のＩ／Ｏコントローラは修正なしに機能して制御されうる。
【００１５】
ＲＡＩＤ制御ソフトウェアは、Ｉ／Ｏコントローラが記憶装置からＲＡＩＤデータを読み取って、そのデータを仮想メモリ・アドレス範囲に転送するようにプログラムする。これらの仮想メモリ・アドレス範囲はＰ＋Ｑ検査システム１００によって認識される。Ｐ＋Ｑ検査システム１００は仮想メモリ・アドレス範囲に送信されたデータを受信する。しかし、入ってくるデータを格納する代わりに、Ｐ＋Ｑ検査システム１００は入ってくるデータに関連付けられるＰおよびＱ冗長データ計算の中間値をアップデートする。全てのストリップが受信されると、Ｐ＋Ｑ検査システム１００はＰおよびＱ冗長データの計算を完了したことになる。Ｐ＋Ｑ検査システム１００は、記憶装置からＰまたはＱデータも受け取ってよい。この場合、全てのストリップおよびＰまたはＱデータの受信後、全てのデータならびにＰおよびＱデータが正しかった場合、Ｐ＋Ｑ検査システム１００はゼロを保持する。エラーがあった場合、Ｐ＋Ｑ検査システム１００は非ゼロ値を保持する。
【００１６】
Ｐ＋Ｑ検査システム１００はＲＡＩＤ−５および／またはＲＡＩＤ−６検証操作のためのメモリの利用を減らす。これらの検証操作は、ＲＡＩＤシステムのためのデータ統合性の保証において重要な要素である。これは、消費者クラスの記憶装置が使用される場合、それらは企業クラスの装置よりも信頼性が低いため、特に重要である。検証操作を実行するためにメモリ・ベース技法を使用することは、メモリおよびシステム・バスの負荷を増加させる。これはＲＡＩＤシステムの性能を低下させる。Ｐ＋Ｑ検査システム１００はＰ＋Ｑ冗長データの計算および／または検査のためのメモリ・アクセスを削除する。
【００１７】
定数セレクタ１２０は、ＨＩＴＤまたはＨＩＴＱ信号に応答してＱデータ定数を生成する。生成されたＱデータ定数は、アドレス・バス１０１に存在するアドレスに基づく。アドレス・バス１０１上の特定のビットを検査することによって、定数セレクタ１２０はどのデータ・ストリップ（すなわちＤ１、Ｄ２など）がデータ・バス１０２上にあるかを決定できる。したがって、定数セレクタ１２０はデータ・バス１０２上のストリップのために対応する定数を出力する。定数セレクタ１２０によって出力された定数およびデータ・バス１０２上のストリップのためのデータは、ＧＦ乗算器１３０によってＧＦ乗算される。この演算は、Ｑ−データの計算におけるＤｘ［ｉ］・Ｃｘ項を形成する。
【００１８】
データ・バス１０２上のデータはＸＯＲ１６０にも入力される。ＸＯＲ１６０への他の入力はＰ−データ・アキュムレータ１４０からである。ＨＩＴＤまたはＨＩＴＰ信号に応答して、Ｐ−データ・アキュムレータは、ＸＯＲ１６０の出力をＸＯＲ１６０に入力されるべき次の値として格納する。したがって、Ｐ−データ・アキュムレータ１４０およびＸＯＲ１６０によるこの演算は
【数３】
2014041664.tif 000005
演算を形成し、上式でＤｘ［ｉ］はデータ・バス１０２上の現在の値であり、
【数４】
2014041664.tif 000006
は以前のＸＯＲ演算の結果である。一旦１からＮまでの全てのデータ値がＸＯＲ１６０によってＸＯＲされ、その結果がＰ−データ・アキュムレータ１４０によって累算されると、Ｐ−データ・アキュムレータ１４０は結果Ｐ［ｉ］を保持することになることが理解されるべきである。さらに、Ｐ−データのために格納された値が受信されてＸＯＲ１６０によってＸＯＲされると（たとえばＨＩＴＰ信号に応答して）、全てのデータおよび格納されたＰ−データが正しい場合、Ｐ−データ・アキュムレータ１４０に格納された結果はゼロになる。そうでない場合はＰ−データ・アキュムレータ１４０に格納された結果は非ゼロになり、したがってエラーを示す。
【００１９】
ＧＦ乗算器１３０によって出力されたデータはＸＯＲ１６１に入力される。ＸＯＲ１６１への他の入力はＱ−データ・アキュムレータ１５０からである。ＨＩＴＤまたはＨＩＴＱ信号に応答して、Ｑ−データ・アキュムレータはＸＯＲ１６１の出力をＸＯＲ１６１に入力されるべき次の値として格納する。したがって、Ｑ−データ・アキュムレータ１５０およびＸＯＲ１６１によるこの演算は
【数５】
2014041664.tif 000007
演算を形成し、上式でＤｘ［ｉ］はデータ・バス１０２上の現在の値であり、
【数６】
2014041664.tif 000008
は以前のＸＯＲ演算の結果である。一旦１からＮまでの全てのデータ値がＧＦ乗算器１３０によってＧＦ乗算され、その結果がＸＯＲ１６０によってＸＯＲされ、ＸＯＲの結果がＱ−データ・アキュムレータ１５０によって累算されると、Ｑ−データ・アキュムレータ１５０は結果Ｑ［ｉ］を保持することになることが理解されるべきである。さらに、Ｑ−データのために格納された値が受信され、Ｑ−データ値を変更しない定数値によってＧＦ乗算され、ＸＯＲ１６１によってＸＯＲされると（たとえば、ＨＩＴＱ信号に応答して）、全てのデータおよび格納されたＱ−データが正しい場合、Ｑ−データ・アキュムレータ１５０に格納された結果はゼロになる。そうでない場合はＱ−データ・アキュムレータ１５０に格納された結果は非ゼロになり、したがってエラーを示す。追加のＱ−データ・ブロックを検査するために、追加のＧＦ乗算器、ＸＯＲ、およびＱ−データ・アキュムレータが使用されてよいことも理解されるべきである。
【００２０】
図２はＲＡＩＤ情報のブロックを検査するためのシステムのブロック図である。図２に示されたシステムは図１に示されたシステムとよく似た機能をする。しかし、図２に示されたシステムは、データの複数のＰおよびＱブロックを計算して累算するように構成されている。Ｐ＋Ｑ検査システム２００はアドレス・バス２０１、データ・バス２０２、アドレス比較２１０、ガロア体（ＧＦ）乗算器２３０、Ｐ−データ・アキュムレータ・バッファ２４０、Ｑ−データ・アキュムレータ・バッファ２５０、排他的論理和（ＸＯＲ）２６０、および排他的論理和２６１を備える。アドレス比較２１０は定数セレクタ２１１、完了検出器２１２、およびバッファ管理２１３を含む。アドレス・バス２０１およびデータ・バス２０２は、システム・バス２０３を共同で備える。アドレス・バス２０１はアドレス比較２１０、そして定数セレクタ２１１に動作可能なように結合される。アドレス・バス２０１はＱ−データ・アキュムレータ・バッファ２５０およびＰ−データ・アキュムレータ・バッファ２４０に動作可能なように結合される。データ・バス２０２はＧＦ乗算器２３０およびＸＯＲ２６０に動作可能なように結合される。
【００２１】
アドレス比較２１０はＨＩＴＰ、ＨＩＴＤ、およびＨＩＴＱの３つの信号を生成してよい。ＨＩＴＤはＱ−データ・アキュムレータ・バッファ２５０およびＰ−データ・アキュムレータ・バッファ２４０に動作可能なように結合される。ＨＩＴＰはＰ−データ・アキュムレータ・バッファ２４０に動作可能なように結合される。ＨＩＴＱはＱ−データ・アキュムレータ・バッファ２５０に動作可能なように結合される。アドレス比較２１０はあらかじめ定義されたデータ範囲内のアドレス・バス２０１上のメモリ・アドレスに応答してＨＩＴＤを生成する。このあらかじめ定義されたデータ範囲は、システム・バス２０３に結合された記憶装置から送信されたＲＡＩＤデータを受信するためにＰ＋Ｑ検査システム２００がエミュレートする仮想メモリのブロックを定義する。アドレス比較２１０はあらかじめ定義されたＰ−データ範囲内のアドレス・バス２０１上のメモリ・アドレスに応答してＨＩＴＰを生成する。このあらかじめ定義されたＰ−データ範囲は、システム・バス２０３に結合された記憶装置から送信されたＲＡＩＤ  Ｐ−データを受信するためにＰ＋Ｑ検査システム２００がエミュレートする仮想メモリのブロックを定義する。アドレス比較２１０はあらかじめ定義されたＱ−データ範囲内のアドレス・バス２０１上のメモリ・アドレスに応答してＨＩＴＱを生成する。このあらかじめ定義されたＱ−データ範囲は、システム・バス２０３に結合された記憶装置から送信されたＲＡＩＤ  Ｑ−データを受信するためにＰ＋Ｑ検査システム２００がエミュレートする仮想メモリのブロックを定義する。
【００２２】
完了検出器２１２は、あるブロックのために格納された全てのデータがいつ受信されてＱ−データ・アキュムレータ・バッファ２５０またはＰ−データ・アキュムレータ・バッファ２４０によって累算されたかを決定するために、アドレス・バス２０１上のアドレスを追跡してよい。バッファ管理２１３はＰ＋Ｑ検査システム２００に関連付けられる仮想バッファを管理してよい。たとえば、バッファ管理２１３は仮想バッファのアドレス範囲を決定してよい。バッファ管理は、特定の仮想バッファ・アドレス範囲に関連付けられるＱ−データ・アキュムレータ・バッファ２５０およびＰ−データ・アキュムレータ・バッファ２４０内の位置も決定してよい。
【００２３】
定数セレクタ２１１はＱ−データ定数を生成する。生成されたＱデータ定数は、アドレス・バス２０１に存在するアドレスに基づく。アドレス・バス２０１上の特定のビットを検査することによって、定数セレクタ２１１はどのデータ・ストリップ（すなわちＤ１、Ｄ２など）がデータ・バス２０２上にあるかを決定できる。したがって、定数セレクタ２１１はデータ・バス２０２上のストリップのために対応する定数を出力する。定数セレクタ２１１によって出力された定数およびデータ・バス２０２上のストリップのためのデータは、ＧＦ乗算器２３０によってＧＦ乗算される。この演算は、ブロックｊのためのＱ−データの計算におけるＤｘ［ｉ］［ｊ］・Ｃｘ項を形成する。どのブロック、ｊがデータ・バス２０２上にあるかが、アドレス・バス２０１上の特定のビットから決定される。
【００２４】
データ・バス２０２上のデータもＸＯＲ２６０に入力される。ＸＯＲ２６０への他の入力はＰ−データ・アキュムレータ・バッファ２４０からである。アドレス比較２１０からの信号に応答して、Ｐ−データ・アキュムレータ・バッファ２４０はＸＯＲ２６０の出力をＸＯＲ１６０に入力されるべきブロックｊのための次の値として格納する。どの累算されたＰ−データを取り出して格納するべきかを決定するために、Ｐ−データ・アキュムレータ・バッファ２４０はアドレス・バス２０１からの特定のビットを使用する。したがって、Ｐ−データ・アキュムレータ・バッファ２４０およびＸＯＲ２６０によるこの演算は    
【数７】
2014041664.tif 000009
演算を形成し、上式でＤｘ［ｉ］［ｊ］はデータ・バス２０２上の現在の値であり、
【数８】
2014041664.tif 000010
はブロックｊに関連付けられるＰ−データ・アキュムレータ・バッファ２４０位置における以前のＸＯＲ演算の結果である。一旦ブロックｊのための１からＮまでの全てのデータ値がＸＯＲ２６０によってＸＯＲされ、その結果がＰ−データ・アキュムレータ・バッファ２４０によって累算されると、ブロックｊに関連付けられるＰ−データ・アキュムレータ・バッファ２４０内の位置は結果Ｐ［ｉ］［ｊ］を保持することになることが理解されるべきである。さらに、ブロックｊに関連付けられるＰ−データのために格納された値が受信されてＸＯＲ２６０によってＸＯＲされると（たとえばＨＩＴＰ信号に応答して）、全てのデータおよび格納されたブロックｊに関連付けられるＰ−データが正しい場合、ブロックｊに関連付けられるＰ−データ・アキュムレータ・バッファ２４０に格納された結果はゼロになる。そうでない場合はブロックｊに関連付けられるＰ−データ・アキュムレータ・バッファ２４０に格納された結果は非ゼロになり、したがってエラーを示す。
【００２５】
ＧＦ乗算器２３０によって出力されたデータはＸＯＲ２６１に入力される。ＸＯＲ２６１への他の入力は、Ｑ−データ・アキュムレータ・バッファ２５０からである。ＨＩＴＤまたはＨＩＴＱ信号に応答して、Ｑ−データ・アキュムレータ・バッファ２５０はＸＯＲ２６１の出力をＸＯＲ２６１に入力されるべきブロックｊのための次の値として格納する。したがって、Ｑ−データ・アキュムレータ・バッファ２５０およびＸＯＲ２６１によるこの演算は
【数９】
2014041664.tif 000011
演算を形成し、上式でＤｘ［ｉ］［ｊ］はデータ・バス２０２上の現在の値であり、
【数１０】
2014041664.tif 000012
はブロックｊに関連付けられるＱ−データ・アキュムレータ・バッファ２５０位置における以前のＸＯＲ演算の結果である。一旦ブロックｊに関連付けられる１からＮまでの全てのデータ値がＧＦ乗算器２３０によってＧＦ乗算され、その結果がＸＯＲ２６０によってＸＯＲされ、ＸＯＲの結果がＱ−データ・アキュムレータ・バッファ２５０によって累算されると、ブロックｊに関連付けられるＱ−データ・アキュムレータ・バッファ２５０における位置は結果Ｑ［ｉ］［ｊ］を保持することになることが理解されるべきである。さらに、ブロックｊに関連付けられるＱ−データのために格納された値が受信され、Ｑ−データ値を変更しない定数値によってＧＦ乗算され、ＸＯＲ２６１によってＸＯＲされると（たとえば、ＨＩＴＱ信号に応答して）、全てのデータおよび格納されたブロックｊに関連付けられるＱ−データが正しい場合、ブロックｊに関連付けられるＱ−データ・アキュムレータ・バッファ２５０に格納された結果はゼロになる。そうでない場合はブロックｊに関連付けられるＱ−データ・アキュムレータ・バッファ２５０に格納された結果は非ゼロになり、したがってエラーを示す。追加のＱ−データ・ブロックを検査するために、追加のＧＦ乗算器、ＸＯＲ、およびＱ−データ・アキュムレータが使用されてよいことも理解されるべきである。
【００２６】
図３はＲＡＩＤ情報を検査する方法の流れ図である。図３に示された諸ステップは、Ｐ＋Ｑ検査システム１００およびＰ＋Ｑ検査システム２００のうちの１つまたは複数の要素によって実行されうる。
【００２７】
複数のＲＡＩＤストリップを複数の仮想バッファに提供するために複数の記憶装置が制御される（３０２）。たとえば、ＲＡＩＤアレイにおける複数の記憶装置はそれらのＲＡＩＤストリップをＰ＋Ｑ検査システム２００によってエミュレートされたアドレス範囲に提供するために制御されてよい。複数のＲＡＩＤストリップが受信される（３０４）。たとえば、ＸＯＲ２６０およびＧＦ乗算器２３０はブロック３０２で提供されたＲＡＩＤストリップを受信してよい。
【００２８】
複数のＲＡＩＤストリップに基づいて複数のＰ−データ値が累算される（３０６）。たとえば、Ｐ−データ・アキュムレータ・バッファ２４０はブロック３０４で受信されたＲＡＩＤストリップに基づいて複数のＰ−データ値を累算してよい。複数のＱ−データ値が複数のＲＡＩＤストリップおよび複数の定数に基づいて累算される（３０８）。たとえば、Ｑ−データ・アキュムレータ・バッファ２５０はＧＦ乗算器２３０から受信された複数のＱ−データ値を累算してよい。ＧＦ乗算器２３０から受信された結果は、ブロック３０４で受信されたＲＡＩＤストリップおよび定数セレクタ２１１から受信された定数に基づいてよい。
【００２９】
上述の方法、システム、および機能は１つまたは複数のコンピュータ・システムに実装されてもよく、１つまたは複数のコンピュータ・システムによって実行されてもよい。上述の方法はコンピュータ可読媒体に格納されてもよい。Ｐ＋Ｑ検査システム１００およびＰ＋Ｑ検査システム２００のうちの諸要素の多くはコンピュータ・システムを備えてもよく、含んでもよい。これは、アドレス比較１１０、定数セレクタ１２０、ガロア体（ＧＦ）乗算器１３０、Ｐ−データ・アキュムレータ１４０、Ｑ−データ・アキュムレータ１５０、排他的論理和（ＸＯＲ）１６０、排他的論理和１６０、アドレス比較２１０、ガロア体（ＧＦ）乗算器２３０、Ｐ−データ・アキュムレータ・バッファ２４０、Ｑ−データ・アキュムレータ・バッファ２５０、排他的論理和（ＸＯＲ）２６０、排他的論理和２６１、定数セレクタ２１１、完了検出器２１２、およびバッファ管理２１３を含むが、これに限定されない。
【００３０】
図４はコンピュータ・システムのブロック図を示している。コンピュータ・システム４００は通信インターフェース４２０、処理システム４３０、記憶システム４４０、およびユーザ・インターフェース４６０を含む。処理システム４３０は記憶システム４４０に動作可能なように結合される。記憶システム４４０はソフトウェア４５０およびデータ４７０を格納する。処理システム４３０は通信インターフェース４２０およびユーザ・インターフェース４６０に動作可能なように結合される。コンピュータ・システム４００はプログラムされた汎用コンピュータを備えてよい。コンピュータ・システム４００はマイクロプロセッサを含んでよい。コンピュータ・システム４００はプログラム可能または特殊用途回路を備えてよい。コンピュータ・システム４００は、ともに要素４２０〜４７０を備える複数の装置、プロセッサ、記憶装置、および／またはインターフェースの間で分散されてよい。
【００３１】
通信インターフェース４２０はネットワーク・インターフェース、モデム、ポート、バス、リンク、トランシーバ、または他の通信装置を備えてよい。通信インターフェース４２０は複数の通信装置の間で分散されてよい。処理システム４３０はマイクロプロセッサ、マイクロコントローラ、論理回路、または他の処理装置を備えてよい。処理システム４３０は複数の処理装置の間で分散されてよい。ユーザ・インターフェース４６０はキーボード、マウス、音声認識インターフェース、マイクロフォンおよびスピーカ、グラフィカル・ディスプレイ、タッチ・スクリーン、または他のタイプのユーザ・インターフェース装置を備えてよい。ユーザ・インターフェース４６０は複数のインターフェース装置の間で分散されてよい。記憶システム４４０はディスク、テープ、集積回路、ＲＡＭ、ＲＯＭ、ネットワーク記憶装置、サーバ、または他のメモリ機能を備えてよい。記憶システム４４０はコンピュータ可読媒体でよい。記憶システム４４０は複数のメモリ装置の間で分散されてよい。
【００３２】
処理システム４３０は記憶システム４４０からソフトウェア４５０を取り出して実行する。処理システムはデータ４７０を取り出して格納してよい。処理システムは通信インターフェース４２０を介してデータを取り出して格納してもよい。明確な結果を達成するために、処理システム４５０はソフトウェア４５０またはデータ４７０を作成してもよく、修正してもよい。明確な結果を達成するために、処理システムは通信インターフェース４２０またはユーザ・インターフェース４７０を制御してよい。処理システムは遠隔に格納されたソフトウェアを通信インターフェース４２０を介して取り出して実行してよい。
【００３３】
ソフトウェア４５０および遠隔に格納されたソフトウェアはオペレーティング・システム、ユーティリティ、ドライバ、ネットワーキング・ソフトウェア、および一般にコンピュータ・システムによって実行される他のソフトウェアを備えてよい。ソフトウェア４５０はアプリケーション・プログラム、アプレット、ファーム・ウェア、または一般にコンピュータ・システムによって実行される他の形式の機械可読の処理命令を備えてよい。処理システム４３０によって実行されると、ソフトウェア４５０または遠隔に格納されたソフトウェアは、本明細書に説明されたように機能するようコンピュータ・システム４００に指示してよい。
【００３４】
本発明の上記の記述は例示および説明の目的で提示された。上記の記述は網羅的であることまたは本発明を開示した正確な形式に限定することを意図するものではなく、上記の教示を踏まえて他の変形および変更が可能でよい。当分野の他の技術者が、企図された特定の使用に適する様々な実施形態および様々な修正形態で本発明を最もよく利用できるようにするために、本発明の原則および実際的なアプリケーションを最もよく説明するために実施形態が選択されて説明された。添付の特許請求の範囲は、従来技術によって限定される範囲を除く本発明の他の代替実施形態を含むものと解釈されることを意図する。
【図１】
2014041664.tif 000013
【図２】
2014041664.tif 000014
【図３】
2014041664.tif 000015
【図４】
2014041664.tif 000016