(57)【特許請求の範囲】
【請求項１】
ホスト・システムに接続された第１制御装置と、該第１制御装置に接続されそれぞれが記憶媒体及び該記憶媒体を制御する第２制御装置を有する複数の記憶ユニットとを有するシステムの前記複数の記憶ユニットのそれぞれの記憶媒体を初期化する方法であって、
前記第１制御装置が、
（ｉ）前記複数の記憶ユニットの前記記憶媒体に亘る記憶スペースを初期化する要求を受け取るステップと、
（ｉｉ）前記複数の記憶ユニットの前記記憶媒体のそれぞれ毎に、連続するデータ・ブロックのセットを決定することにより、前記複数の記憶ユニットの前記記憶媒体に亘る複数の前記セットのレイアウトを決定するステップと、
（ｉｉｉ）前記セット毎に、初期化データを最初に書き込む記憶ユニットの記憶媒体の最初のブロック・アドレスを決定するステップと、
（ｉｖ）前記最初のブロック・アドレス及びブロック数を示す書込みコマンドを前記複数の記憶ユニットのそれぞれに対して生成するステップと、
（ｖ）前記書込みコマンドを前記初期化データと共に前記複数の記憶ユニットの前記第２制御手段のそれぞれに送信するステップとを行い、
前記複数の記憶ユニットの前記第２制御装置のそれぞれが、
（イ）前記書込コマンド及び前記初期化データを受け取るステップと、
（ロ）前記初期化データを、前記記憶媒体の前記連続するデータ・ブロックのセットのうち前記書込コマンドが示す前記最初のブロック・アドレスに書込むステップと、
（ハ）前記書込コマンドが示す最初のブロック・アドレスに続く前記記憶媒体内のその後の連続する各データ・ブロックに前記初期化データを前記ブロック数に等しい回数書込むステップとを行うことを特徴とする、方法。
【請求項２】
前記初期化データが０データを含む、請求項１に記載の方法。
【請求項３】
ディスク・アレイを構成する前記複数の記憶ユニットがハード・ディスク・ドライブを備え、連続するデータ・ブロックの前記セットが、前記複数の記憶ユニットにわたって書込まれるデータのストライプの一部を含み、前記複数の記憶ユニットにわたって複数のストライプが書込まれる、請求項１に記載の方法。
【請求項４】
前記初期化データが書込まれる各ブロックに誤り訂正コードを書込むことを、前記書込みコマンドを受け取る前記第２制御装置に行わせるコードを前記書込みコマンド内に示すこと
をさらに含む、請求項１に記載の方法。
【請求項５】
前記第２制御装置によって書込まれた前記誤り訂正コードが、前記誤り訂正コードが書込まれるブロック内のすべてのデータに対して排他的ＯＲ演算を実行することによって計算される水平冗長チェック（ＬＲＣ）コードを含む、請求項４に記載の方法。
【請求項６】
前記データ・ブロックが、少なくともヘッダ・セクション、ユーザ・データ・セクション、および誤り訂正コード・セクションを含むセクタを含む、請求項１に記載の方法。
【請求項７】
前記ステップ（ｉｉｉ）に続いて、前記第１制御装置が前記セット毎に、該セットの連続するデータ・ブロックのうち最初に前記初期化データが書き込まれるデータ・ブロックのシーケンス番号を決定し、前記ステップ（ｉｖ）において、前記最初のブロック・アドレス、前記シーケンス番号及びブロック数を示す書込みコマンドを前記複数の記憶ユニットのそれぞれに対して生成し、
前記第２制御装置のそれぞれが、前記ステップ（ロ）において、前記初期化データ及び前記シーケンス番号を、前記記憶媒体の前記連続するデータ・ブロックのセットのうち前記書込コマンドが示す前記最初のブロック・アドレスに書込み、前記ステップ（ハ）において、前記書込コマンドが示す最初のブロック・アドレスに続く前記記憶媒体内のその後の連続する各データ・ブロックに前記初期化データ及び前記シーケンス番号を増分した番号を前記ブロック数に等しい回数書込む、請求項１に記載の方法。
【請求項８】
ホスト・システムに接続された第１制御装置と、該第１制御装置に接続されそれぞれが記憶媒体及び該記憶媒体を制御する第２制御装置を有する複数の記憶ユニットとを有するシステムの前記複数の記憶ユニットのそれぞれの記憶媒体を初期化するシステムであって、
前記第１制御装置が、
（ｉ）前記複数の記憶ユニットの前記記憶媒体に亘る記憶スペースを初期化する要求を受け取り、
（ｉｉ）前記複数の記憶ユニットの前記記憶媒体のそれぞれ毎に、連続するデータ・ブロックのセットを決定することにより、前記複数の記憶ユニットの前記記憶媒体に亘る複数の前記セットのレイアウトを決定し、
（ｉｉｉ）前記セット毎に、初期化データを最初に書き込む記憶ユニットの記憶媒体の最初のブロック・アドレスを決定し、
（ｉｖ）前記最初のブロック・アドレス及びブロック数を示す書込みコマンドを前記複数の記憶ユニットのそれぞれに対して生成し、
（ｖ）前記書込みコマンドを前記初期化データと共に前記複数の記憶ユニットの前記第２制御手段のそれぞれに送信し、
前記複数の記憶ユニットの前記第２制御装置のそれぞれが、
（イ）前記書込コマンド及び前記初期化データを受け取り、
（ロ）前記初期化データを、前記記憶媒体の前記連続するデータ・ブロックのセットのうち前記書込コマンドが示す前記最初のブロック・アドレスに書込み、
（ハ）前記書込コマンドが示す最初のブロック・アドレスに続く前記記憶媒体内のその後の連続する各データ・ブロックに前記初期化データを前記ブロック数に等しい回数書込むことを特徴とする、システム。
【請求項９】
前記初期化データが０データを含む、請求項８に記載のシステム。
【請求項１０】
ディスク・アレイを構成する前記複数の記憶ユニットがハード・ディスク・ドライブを備え、連続するデータ・ブロックの前記セットが、前記複数の記憶ユニットにわたって書込まれるデータのストライプの一部を含み、前記複数の記憶ユニットにわたって複数のストライプが書込まれる、請求項８に記載のシステム。
【請求項１１】
前記初期化データが書込まれる各ブロックに誤り訂正コードを書込むことを、前記書込みコマンドを受け取る前記第２制御装置に行わせるコードを前記書込みコマンド内に示す、請求項８に記載のシステム。
【請求項１２】
前記第２制御装置によって書込まれた前記誤り訂正コードが、前記誤り訂正コードが書込まれるブロック内のすべてのデータに対して排他的ＯＲ演算を実行することによって計算される水平冗長チェック（ＬＲＣ）コードを含む、請求項１１に記載のシステム。
【請求項１３】
前記データ・ブロックが、少なくともヘッダ・セクション、ユーザ・データ・セクション、および誤り訂正コード・セクションを含むセクタを含む、請求項８に記載のシステム。
【請求項１４】
前記（ｉｉｉ）に続いて、前記第１制御装置が前記セット毎に、該セットの連続するデータ・ブロックのうち最初に前記初期化データが書き込まれるデータ・ブロックのシーケンス番号を決定し、前記（ｉｖ）において、前記最初のブロック・アドレス、前記シーケンス番号及びブロック数を示す書込みコマンドを前記複数の記憶ユニットのそれぞれに対して生成し、
前記第２制御装置のそれぞれが、前記（ロ）において、前記初期化データ及び前記シーケンス番号を、前記記憶媒体の前記連続するデータ・ブロックのセットのうち前記書込コマンドが示す前記最初のブロック・アドレスに書込み、前記（ハ）において、前記書込コマンドが示す最初のブロック・アドレスに続く前記記憶媒体内のその後の連続する各データ・ブロックに前記初期化データ及び前記シーケンス番号を増分した番号を前記ブロック数に等しい回数書込む、請求項８に記載のシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数の記憶ユニットを備える記憶装置を、ストレージ・コントローラを介して初期化するためのシステム、方法およびプログラムに関する。
【０００２】
【従来の技術】
ハイ・エンドのストレージ・コントローラは、ネットワーク化されたホストから、直接アクセス記憶装置（ＤＡＳＤ）、ＲＡＩＤ  Ａｒｒａｙ（Redundant Array of Independent Disks）、ＪＢＯＤ（Just a Bunch of Disks）など１つまたは複数の記憶装置への入力／出力（Ｉ／Ｏ）要求を管理する。ストレージ・コントローラは、ネットワークを介して１つまたは複数のホストと通信するための１つまたは複数のホスト・バス・アダプタ（ＨＢＡ）カードと、記憶装置と通信するためのアダプタとを含む。
【０００３】
ストレージ・コントローラによって管理されるディスクを使用できるようにする前に、それらを初期化しなければならない。例えば５２４バイトのセクタを初期化するには、ストレージ・コントローラが、そのセクタの最初の８バイトのヘッダに０データを、続いて５１２バイトの０データを、続いて論理セクタ番号である２バイトのシーケンス番号、および物理セクタ番号または論理ブロック・アドレス（ＬＢＡ）をシードとする２バイトの水平冗長コード（ＬＲＣ）を書込む。０データおよびＬＢＡをシードとする２バイトのＬＲＣコードでそれぞれのセクタを初期化するこの処理は、数時間かかる可能性がある。ほとんどの従来技術のデバイスは、「フル・ストライプ」書込みを実行することによってＲＡＩＤアレイなどのアレイ内のディスクを初期化し、この場合、ストレージ・コントローラは、各セクタに対して１つの書込みコマンドを使用してストライプ内の各ディスクにストライプ全体のデータおよびパリティを書込み、そのストライプの各セクタ内のデータを初期化する。
【０００４】
多数のストレージ・コントローラが、接続された多数のハード・ディスク・ドライブを初期化しなければならない可能性がある。例えばあるファイバ・チャネル実施例では、ストレージ・コントローラが、ファイバ・チャネル・アービトレイテッド・ループ（Fibre Channel Arbitrated Loop）上の１２６台程度までのハード・ディスク・ドライブに接続する可能性がある。そのような大きなアレイ内の初期化性能に不利に影響する一要素は、デバイス間のループ上転送レートとハード・ディスク・ドライブ内の内部データ転送レートとの不一致である。アービトレイテッド・ループ技術は毎秒２００メガバイト（ＭＢ／ｓ）の転送レートをサポートし、ディスク・ドライブは、最大１５ＭＢ／ｓのレートで内部的にデータを転送することができる。そのような比率は、ループ・スループットを最大化する前に、ストレージ・コントローラが７つの接続されたディスク・ドライブにしか初期化データを書込めないことを意味する。したがって、ストレージ・コントローラとディスク・ドライブ間の接続のスループットは、１０より多いディスク・ドライブがあるときに、システム内の初期化性能に著しく影響する可能性のあるボトルネックである。実際、２．８テラバイトのデータを有する８０ディスク・ドライブのシステムでは、初期化処理が完了するのに最大１０時間かかる可能性がある。
【０００５】
【発明が解決しようとする課題】
これらの理由で、当技術分野では、ディスク・アレイ内のデータを初期化するための改善された手法を提供することが必要とされている。
【０００６】
【課題を解決するための手段】
複数の記憶ユニットを備える記憶装置をストレージ・コントローラを介して初期化するための方法、システムおよびプログラムが提供される。記憶ユニットに広がる記憶スペースを初期化するために要求が受け取られる。記憶スペースの連続するデータ・ブロックのセットのレイアウトが記憶ユニット上に決定され、記憶ユニットの全体にわたって連続するデータ・ブロックのセットが書込まれる。連続するデータ・ブロックの各セットについて、連続するデータ・ブロックのそのセット内の第１データ・ブロックが書込まれる各記憶ユニット内のブロック・アドレスが決定される。記憶ユニットのそれぞれに対して書込みコマンドが生成され、各書込みコマンドは、記憶ユニットに対して決定されたブロック・アドレスおよびブロック数を示す。１ブロックの初期化データと共に書込みコマンドが記憶ユニットに送信される。書込みコマンドを受け取る記憶ユニットは、示されたブロック・アドレスからその１ブロックの初期化データを書込み、その１ブロックの初期化データを、記憶ユニット内のその後の連続する各ブロックに、ブロック数に等しい回数で書込む。
【０００７】
他の実施例では、決定されたレイアウトが、各記憶ユニットに書込まれる連続するデータ・ブロックの複数のセットを含み、その複数のセットは、１つの記憶ユニット内の非連続的ブロック・アドレスに書込まれる。
【０００８】
特定の実施例では、記憶ユニットが１ディスク・アレイ内にハード・ディスク・ドライブを備える。そのような場合、連続するデータ・ブロックのセットは、記憶ユニット全体にわたって書込まれるデータのストライプの一部を含み、複数のストライプが記憶ユニット全体にわたって書込まれる。
【０００９】
ストレージ・コントローラによって管理される複数の記憶ユニットの１つを備える記憶ユニットを初期化するための方法、システムおよびプログラムがさらに提供される。記憶スペース内の連続するブロックのセットを初期化するために書込みコマンドが１ブロックの初期化データと共にストレージ・コントローラから受け取られる。書込みコマンドは、連続するデータ・ブロックのそのセット内の第１データ・ブロックが書込まれる記憶ユニット内のブロック・アドレスおよびブロック数を示す。書込みコマンドと共に送信された初期化データ・ブロックは、示されたブロック・アドレスに書込まれる。さらに、初期化データ・ブロックは、示されたブロック・アドレスに従って記憶ユニット内のその後の連続する各ブロックに、ブロック数に等しい回数書込まれる。
【００１０】
本明細書に述べた実施例は、ストレージ・コントローラと初期化されるアレイ内の記憶ユニットの間のチャネル帯域幅の使用を少なくするための方法で、記憶アレイの記憶ユニット内の複数ブロックのデータを初期化する単一書込みコマンドを使用することによって記憶スペースを初期化する手法を提供する。
【００１１】
【発明の実施の形態】
次に図面を参照すると、全体を通して同様の参照番号は対応する部分を表す。
【００１２】
次の記述では、本明細書の一部を形成し本発明のいくつかの実施形態を示す添付の図面を参照する。本発明の範囲から逸脱することなく、他の実施形態を使用できること、ならびに構造およびオプションの変更を加えることができることを理解されたい。
【００１３】
図１は、本発明の態様が実施されるコンピューティング環境を示す。ホスト・システム２は、記憶装置４に対するアクセスを管理する記憶サブシステム６を介して記憶装置４に入力／出力（Ｉ／Ｏ）要求を送信する。記憶装置４は、当技術分野で知られているＲＡＩＤアレイ記憶装置によるハード・ディスク・ドライブ８ａ、ｂ、ｃ．．．ｎのアレイを備える。記憶装置４は、５０またはそれより多数のハード・ディスク・ドライブ８ａ、ｂ、ｃ．．．ｎをいくつでも備えることができる。記憶サブシステム６は、ホスト２との通信を可能にするホスト・バス・アダプタ（ＨＢＡ）１０、および記憶装置４内のディスク・ドライブ８ａ、ｂ、ｃ．．．ｎに対するアクセスを可能にする周辺コンポーネント相互接続（ＰＣＩ）ＲＡＩＤアダプタ１２を含む。記憶サブシステム６は、例えばＲＯＭ、ＰＲＯＭ、ＥＥＰＲＯＭ等の不揮発性記憶ユニット（図に示されていない）内でコード２２を実行する制御装置２０をさらに含み、当技術分野で知られている方法で記憶サブシステム動作を実行する。さらにＰＣＩ  ＲＡＩＤアダプタ１２は、ディスク・ドライブ８ａ、ｂ、ｃ．．．ｎをＲＡＩＤデバイスとして構成かつ初期化し、当技術分野で知られている方法でディスク・ドライブ８ａ、ｂ、ｃ．．．ｎにデータをストライピングすることができる。
【００１４】
図２は、各ディスク・ドライブ８ａ、ｂ、ｃ．．．ｎ内のコンポーネントを示し、ディスク制御装置３０および記憶媒体３２を含む。ディスク・ドライブの実施例では、記憶媒体３２は、１つまたは複数のディスクの磁気表面を備える。ディスク制御装置３０は、記憶媒体３２に対する入力／出力動作を当技術分野で知られている方法で管理するロジックを実施し、さらに本明細書に述べた初期化動作を実行するロジックを含む。ディスク制御装置３０は、ＰＲＯＭ、ＥＥＰＲＯＭ、ＲＯＭなどの不揮発性メモリ内のコードを実行するプロセッサを備えるか、あるいは特定用途向けＩＣ（ＡＳＩＣ）または他の論理デバイスなどの集積回路を備えることができる。
【００１５】
本明細書に述べた実施例では、記憶サブシステム６が初期化を実行し、ＰＣＩＲＡＩＤアダプタ１２が初期化データをディスク・ドライブ８ａ、ｂ、ｃ．．．ｎに書込む代わりをする。これは、同時係属中の同一出願人による米国特許出願第            号に述べた通りであり、その出願は、本明細書中で参考としてその全体を援用する。しかし、代替実施例では、ＰＣＩ  ＲＡＩＤアダプタ１２が、本明細書に述べた初期化動作を実行することができる。
【００１６】
図３は、特定の実施例によるセクタのフォーマットを示す。特定の実施例では、セクタ５０は５２４バイトであり、８バイトのヘッダ・フィールド５２、５１２バイトのユーザ・データ５４、２バイトのシーケンス番号５６、および２バイトのＬＲＣフィールド５８を含む。特定の実施例では、セクタは様々な数の合計バイト、例えば５１２、５１６等を有することができる。さらにセクタは、ヘッダ５２、シーケンス番号５６、またはＬＲＣ値５８、あるいはそのすべてを含まなくもよい。
【００１７】
ＲＡＩＤアレイ実施例では、ディスク８ａ、ｂ、ｃ．．．ｎ全てにわたって初期化データをストライピングすることによって、制御装置２０がアレイを初期化する。制御装置２０は、１つのディスクにセクタ深度に等しい数のセクタに対するデータを書込んでから、次のディスクにスイッチして次のセクタ深度を書込む。したがって、ストライプは、アレイ内のディスク数に等しい長さおよびそのストライプ内の次のディスクにスイッチする前にデータが書込まれるセクタ深度に等しい幅を有する。それぞれのストライプはパリティ・セクタを含む。
【００１８】
本明細書に述べた実施例では、制御装置２０は、セクタに対する単一ブロック、例えば５１２または５２４バイト、の初期化データと共に転送された単一の増分書込みコマンド（write increment command）を使用して、アレイ内の各ディスク８ａ、ｂ、ｃ．．．ｎが初期化データをストライプ内のすべてのセクタに書込むようにさせる。初期化データは、そのセクタに対するすべて０のデータを含む。このように、わずか１６バイトくらいのおよそセクタ・サイズおよびコマンド・サイズの単一送信を介して、受け取りディスク上の多数のセクタが初期化される。したがって単一の増分書込みコマンドは、以前は初期化する各セクタに対する複数の書込みコマンドを必要とした複数セクタの初期化を可能にする。
【００１９】
図４は、本発明の実施例による増分書込みコマンド７０内のフィールドのフォーマットを示す。増分書込みコマンド７０は、小さなコンピュータ・システム・インタフェース（ＳＣＳＩ）コマンドとして実施することができる。増分書込みコマンドは、
動作コード７２：増分書込みコマンドを指定するために使用されるユニークな動作コードを提供する。
ＰＢＤＡＴＡ７４：このフィールドが０のとき、ディスク・ドライブ８ａ、ｂ、ｃ．．．ｎはシーケンス番号を無視する。例えば、固定ブロック・アーキテクチャ（ＦＢＡ）では、カウント・キー・データ（Count-Key-Data）アーキテクチャとは反対にシーケンス番号が使用されない。そうではなくて、このフィールドが非０である場合、初期化中にシーケンス番号がセクタ内に含まれる。
ＬＢＤＡＴＡ７６：このフィールドが０であるとき、ディスク・ドライブ８ａ、ｂ、ｃ．．．ｎは水平冗長チェック（ＬＲＣ：Longitudinal Redundancy Code）誤り訂正コードをセクタに書込まない。そうではなくてこのフィールドが非０である場合、ＬＲＣコードが書込まれる。
シーケンス番号７８：使用する開始シーケンス番号を含む。
論理ブロック・アドレス（ＬＢＡ）８０：データが書込まれるディスク８ａ、ｂ、ｃ．．．ｎ内の開始ＬＢＡを含む。
ブロック数８２：増分書込みコマンド７０に応答してディスクによって初期化されるセクタの数。
を含む。
【００２０】
図５は、特定の実施例においてＲＡＩＤアレイを備えるディスク・ドライブ８ａ、ｂ、ｃ．．．ｎのアレイ内の論理ボリュームを初期化するために制御装置２０によって実行されるコード２２内に実施されるロジックを示す。制御は、論理ボリュームを作成する要求を制御装置２０が受け取るブロック１００で始まる。次いで制御装置２０は、ＲＡＩＤアレイ内のディスク８ａ、ｂ、ｃ．．．ｎ全体にわたる論理ボリュームのレイアウトを決定する（ブロック１０２）。制御装置２０は、ディスク・ドライブ８ａ、ｂ、ｃ．．．ｎ内のセクタ全体にわたって論理ボリュームのセクタがどのようにストライピングされるかを、当技術分野で知られている方法で決定する。例えばＲＡＩＤアレイ実施例では、セクタ深度に等しい数のセクタに対するデータを１つのディスクに書込んでから次のディスクにスイッチして次のセクタ深度を書込むことによって、制御装置２０がディスク８ａ、ｂ、ｃ．．．ｎ全体にわたってデータをストライピングする。したがってストライプは、アレイ内のディスク数に等しい長さ、およびストライプ内の次のディスクにスイッチする前にデータが書込まれるセクタ深度に等しい幅を有する。シーケンス数（ｓｅｑＮｕｍ）は０に初期化される（ブロック１０４）。
【００２１】
ブロック１０２で決定された各ストライプｉに対して、制御装置２０はブロック１０６からブロック１２６のループを開始する。各ストライプｉに対して、制御装置２０はさらに、データがストライピングされる記憶装置４アレイ内の各ディスク・ドライブｊに対してブロック１０８から１２２のループを実行する。ブロック１１０において制御装置２０は、先に決定されたレイアウトからストライプｉ内のドライブｊ上の第１セクタの論理ブロック・アドレス（ＬＢＡi、j）を決定する。制御装置２０は、ディスクｊ内のストライプｉに対するデータを初期化する増分書込みコマンド７０を生成する（ブロック１１２）。ＬＢＡフィールド８０は決定されたＬＢＡi、jに設定され（ブロック１１４）、シーケンス番号フィールド７８は、ディスクｊ内のストライプｉの第１セクタ番号を示すシーケンス番号変数（ｓｅｑＮｕｍ）に設定される（ブロック１１６）。ブロック数フィールド８２は、増分書込みコマンド７０に応答してディスクｊ内で初期化されるセクタ数を示すストライプ深さに設定される（ブロック１１８）。次いでシーケンス番号変数（ｓｅｑＮｕｍ）は、生成されている現在の増分書込みコマンド７０に応答して、ディスクｊ内で初期化されるブロック数であるストライプ深さだけ増分される（ブロック１２０）。次いで制御は、ブロック１０８に戻って、ストライプｉからアレイ内の次のディスク８ａ、ｂ、ｃ．．．ｎにデータを書込む。
【００２２】
特定の実施例では、ストライプｉ内のすべてのディスク８ａ、ｂ、ｃ．．．ｎに対する増分書込みコマンドを生成した後に、アレイ内のすべてのディスク８ａ、ｂ、ｃ．．．ｎ全体にわたってストライプｉに対するデータを同時に初期化するために、制御装置２０が、接続を介して生成された書込みコマンドをディスク・ドライブ８ａ、ｂ、ｃ．．．ｎに送信する（ブロック１２４）。特定の実施例では、それぞれの増分書込みコマンド７０は、セクタに対するすべて０のデータ・ブロックと共に送信される。次いで制御は、ブロック１０６に戻って（ブロック１２６）、次のストライプに対するデータを初期化するための増分書込みコマンド７０を生成する。あるいは、制御装置２０は、ブロック１１８でコマンドを生成した直後または複数ストライプに対する増分書込みコマンド７０を生成した後に、増分書込みコマンド７０を送ることができる。
【００２３】
図６は、図５内のブロック１２４で送信された増分書込みコマンド７０の１つを受け取る（ブロック１５０）ことに応答して記憶媒体３２を初期化するためにディスク制御装置３０内に実施されるロジックを示す。ディスク制御装置３０は、特定の実施例ではストライプ深さであるブロック・フィールド数８２に等しい数のブロックに対して、ブロック１５２から１７０のループを実行する。次いでディスク制御装置３０は、本明細書に述べた実施例では増分書込みコマンド７０と共に送信されたセクタに対する１ブロックの０のデータを、ＬＢＡフィールド８０内に示されるＬＢＡを有するセクタに書込む（ブロック１５６）。ＰＢＤＡＴＡフィールド７４が非０である場合（ブロック１５８）、ディスク制御装置３０は、セクタ・シーケンス番号５６（図２）を、受け取った増分書込みコマンド７０のシーケンス番号フィールド７８（図３）内の値に設定する（ブロック１６０）。次いで増分書込みコマンド７０内のシーケンス番号７８は、次のセクタの初期化で使用するために１だけ増分される（ブロック１６２）。
【００２４】
そうではなくてＰＢＤＡＴＡフィールド５４が０またはブロック１６２から来ている場合（ブロック１５８）、制御装置３０はＬＢＤＡＴＡフィールド７６が０であるかどうかを判断する（ブロック１６４）。そうでなければ、制御装置３０は、セクタＬＲＣバイト５８（図２）を、０とＬＢＡ値のＸＯＲの値に設定する（ブロック１６６）。このように、セクタのＬＲＣフィールド５８には、そのセクタのＬＢＡがシードされる。初期化データがすべて０であるので、セクタ５０の非ＬＲＣ部分内のすべてのビットのＸＯＲを取った結果は０となる。ＬＢＤＡＴＡフィールド５４が０またはブロック１６６から来ている場合（ブロック１６４）、制御装置３０は、ストライプｉに対するディスクｊの次のセクタに初期化データを書込む際に使用するために、受け取った増分書込みコマンド７０内のＬＢＡフィールド６０を１だけ増分する（ブロック１６８）。このようにディスク制御装置は、その後のセクタを初期化するために使用されるＬＢＡおよびシーケンス番号データのための変数として、書込みコマンド７０フィールドを使用する。現在のセクタの初期化完了後に、制御は、ブロック・フィールド８２の数に等しい数のセクタが初期化されるまで、初期化すべき次のセクタのためにブロック１５２に戻る（ブロック１７０）。
【００２５】
図５および６のロジックで、制御装置２０は、初期化されている各セクタに対する各ディスク・ドライブ８ａ、ｂ、ｃ．．．ｎに０セクタ・データを送信する必要なく、ディスク８ａ、ｂ、ｃ．．．ｎ上のデータを初期化することができる。代わりに、制御装置２０は、各ストライプ内の各ディスクに対する１ブロックの０データを有するたった１つの書込みコマンドを送信し、それによってディスク・ドライブ８ａ、ｂ、ｃ．．．ｎに対する回線を越えて送信される書込みコマンド数およびデータのバイトを著しく減らす。本明細書に述べた実施例の増分書込みコマンドが従来技術の初期化方式より著しく少ない帯域幅を使用するので、制御装置２０は、増分書込みコマンドをすべてのディスク８ａ、ｂ、ｃ．．．ｎに同時に送ることができる。本明細書に述べた実施例は、記憶サブシステム６と記憶装置４の間の接続ボトルネックを取り除く。このように、初期化は、記憶装置８ａ、ｂ、ｃ．．．ｎ内の転送容量によってのみ制限される。ファイバ・チャネル・アービトレイテッド・ループ上のストレージ・コントローラに接続された８０のディスク・ドライブがあるシステムにおいて、本明細書に述べた実施例の増分書込みコマンド７０を使用する初期化は４０分かかる可能性があり、これは、従来技術の初期化手法を使用してこの多数のディスク・ドライブを初期化するために必要な数時間よりも著しく少ない、ということが観測された。
【００２６】
本明細書に述べた本発明の実施例は、ソフトウェア、ファームウェア、ハードウェアまたはそれらの任意の組合わせを生成する標準プログラミングまたはエンジニアリング手法あるいはその両方を使用するための方法、装置または製品として実現することができる。本明細書に使用される「製品」という用語は、ハードウェア論理回路（例えば、ＩＣチップ、フィールド・プログラム可能ゲート・アレイ（ＦＰＧＡ）、特定用途向けＩＣ（ＡＳＩＣ）、複雑なプログラム可能論理回路デバイス（ＣＰＬＤ）など）、複雑なプログラム可能論理回路デバイス（ＣＰＬＤ）またはコンピュータ可読媒体（例えば、磁気記憶媒体（例えばハード・ディスク・ドライブ、フロッピー（登録商標）ディスク、テープなど）、光記憶（ＣＤ−ＲＯＭ、光ディスクなど）、揮発性および不揮発性メモリ・デバイス（例えば、ＥＥＰＲＯＭ、ＲＯＭ、ＰＲＯＭ、ＲＡＭ、ＤＲＡＭ、ＳＲＡＭ、ファームウェア、プログラム可能論理回路など）に実施されるコードまたは論理回路を指す。コンピュータ可読媒体内のコードは、プロセッサによってアクセスされ実行される。好ましい実施形態が実施されるコードはさらに、送信媒体を介して、またはネットワークを介してファイル・サーバからアクセス可能でよい。そのような場合、コードが実施される製品は、ネットワーク伝送回線、無線伝送媒体、衛星通信信号（signals propagating through space）、高周波、赤外線信号などの伝送媒体を含むことができる。もちろん、本発明の範囲から逸脱することなくこの構成に多数の修正を加えることができること、およびこの製品が当技術分野で知られている任意の情報保有媒体を含むことができること、を当業者は理解するであろう。
【００２７】
図５および図６のロジックは特定の順序で行われる具体的動作を述べている。代替実施例では、特定のロジック動作を異なる順序で実行すること、修正すること、または取り除くことが可能である。さらに、上述のロジックにステップを追加し、それでもなお本明細書に述べた実施例に適合することができる。さらに、本明細書に述べた動作を逐次行うこと、または特定の動作を並行して処理することが可能である。
【００２８】
本明細書に述べた実施例では、セクタ内のデータが初期化された。代替実施例では、１ブロックだけのためのデータ送信で複数ブロックを初期化する増分書込みコマンドを使用して、セクタ以外のフォーマットのデータ・ブロックを初期化することができる。
【００２９】
本明細書に述べた実施例では、ＲＡＩＤ記憶装置を初期化する増分書込みコマンドを制御装置２０が生成した。さらに、上述の増分書込みコマンドおよびロジックは、非ＲＡＩＤ記憶装置を構成するために使用することができる。そのような場合であれば、制御装置２０は、１つまたは複数のディスク・ドライブ上のデータのレイアウトを決定し、各デバイスに書込まれたデータの連続するブロックに対する書込みコマンドを生成しなければならない。
【００３０】
記憶サブシステム６が制御したアダプタは、ＰＣＩ  ＲＡＩＤアダプタを含んだ。しかし、本明細書に述べた記憶サブシステム初期化手法は、他のタイプの記憶アダプタ、例えば、小さいコンピュータ・システム・インタフェース（ＳＣＳ）、ファイバ・チャネルなどのアダプタとともに使用することもできる。
【００３１】
本明細書に述べた実施例では、ＰＣＩ  ＲＡＩＤアダプタは記憶サブシステム内で使用される。さらに、記憶サブシステムは、接続された記憶装置を構成するためにアダプタを使用する任意のデバイス、例えば、ホスト、コンピュータなどを備えることができる。
【００３２】
本明細書に述べた実施例では、ディスク・ドライブ８ａ、ｂ、ｃ．．．ｎは磁気ハード・ディスク・ドライブを備えた。代替実施例では、記憶装置４は、光ディスク、テープなど当技術分野で知られている任意の記憶装置を備えることができる。
【００３３】
本明細書に述べた実施例では、初期化データは０データを含んだ。さらに、初期化データは０データ以外のデータ値を含むことができる。
【００３４】
本明細書に述べた実施例では、セクタに書込まれる誤り訂正コードは、セクタ内のデータおよびセクタのＬＢＡに対する排他的ＯＲ演算を実行することによって生成された水平冗長チェック（ＬＲＣ：Longitudinal Redundancy Code）コードを含む。さらに、誤り訂正コードは、当技術分野で知られている任意の誤り訂正コード化手法を使用して生成することができ、本明細書に述べたＬＲＣ手法に限定されない。
【００３５】
ストレージ・コントローラは、１つまたは複数のディスク・ドライブを構成し使用することができる任意のプロセッサ、システムまたはアダプタを備えることができる。
【００３６】
本発明の好ましい実施形態の前述の記述は、例示および説明の目的で提示された。本発明を網羅または開示された正確な形態に限定するものではない。上記教示に照らして、多数の修正および変形形態が可能である。本発明の範囲は、この詳細な説明ではなく、本明細書に添付された請求の範囲によって限定されるものである。上記仕様、実施例、およびデータは、製造の完全な記述および本発明の構成の使用を提供する。本発明の精神および範囲から逸脱することなく本発明の多数の実施形態を加えることができるので、本発明は、本明細書に添付された請求の範囲にある。
【００３７】
まとめとして、本発明の構成に関して以下の事項を開示する。
【００３８】
（１）複数の記憶ユニットを備える記憶装置を、ストレージ・コントローラを介して初期化するための方法であって、
前記記憶ユニットに広がる記憶スペースを初期化する要求を受け取ること、
前記記憶スペースの連続するデータ・ブロックのセットのレイアウトを前記記憶ユニット上に決定することであって、連続するデータ・ブロックのセットが前記記憶ユニット全体にわたって書込まれること、
連続するデータ・ブロックの各セットに対して、
（ｉ）連続するデータ・ブロックの前記セット内の第１データ・ブロックが書込まれる各記憶ユニット内のブロック・アドレスを決定すること、
（ｉｉ）前記記憶ユニットのそれぞれのための書込みコマンドを生成することであって、前記記憶ユニットに対して決定されたブロック・アドレスおよびブロック数をそれぞれの書込みコマンドが示すこと、および
（ｉｉｉ）前記書込みコマンドを１ブロックの初期化データと共に前記記憶ユニットに送信することであって、前記書込みコマンドを受け取る記憶ユニットが、前記１ブロックの初期化データを前記示されたブロック・アドレスから書込み、前記１ブロックの初期化データを、前記記憶ユニット内のその後の連続するブロックのそれぞれに前記ブロック数に等しい回数書込むこと
を実行すること
を含む方法。
（２）前記決定されたレイアウトが、それぞれの記憶ユニットに書込まれる連続するデータ・ブロックの複数のセットを含み、１つの記憶ユニットに書込まれるそれぞれのセットの前記連続するデータ・ブロックが、前記記憶ユニットに書込まれた近接セット内の連続するデータ・ブロックに対して非連続である、上記（１）に記載の方法。
（３）前記初期化データが前記ブロックに対する０データを含む、上記（１）に記載の方法。
（４）前記記憶ユニットがディスク・アレイ内にハード・ディスク・ドライブを備え、連続するデータ・ブロックの前記セットが、前記記憶ユニット全体にわたって書込まれるデータのストライプの一部を含み、前記記憶ユニット全体にわたって複数のストライプが書込まれる、上記（１）に記載の方法。
（５）前記初期化データが書込まれる各ブロックに誤り訂正コードを書込むことを、前記書込みコマンドを受け取る記憶ユニットに行わせるコードを前記書込みコマンド内に示すこと
をさらに含む、上記（１）に記載の方法。
（６）前記書込みコマンド内に示されたコードが、前記書込みコマンドを受け取る記憶ユニットに、
前記誤り訂正コードが書込まれるブロックのブロック・アドレスと前記誤り訂正コードを組合わせること
をさらに実行させる、上記（５）に記載の方法。
（７）前記記憶ユニットによって書込まれた誤り訂正コードが、前記誤り訂正コードが書込まれるブロック内のすべてのデータに対して排他的ＯＲ演算を実行することによって計算される水平冗長チェック（ＬＲＣ）コードを含む、上記（５）に記載の方法。
（８）前記データ・ブロックが、少なくともヘッダ・セクション、ユーザ・データ・セクション、および誤り訂正コード・セクションを含むセクタを含む、上記（１）に記載の方法。
（９）連続するデータ・ブロックのそれぞれのセットに対して、連続するデータ・ブロックの前記セット内の第１データ・ブロックが書込まれる各記憶ユニット内のシーケンス番号を決定することであって、前記記憶スペース内の各データ・ブロックに、他のすべてのデータ・ブロックを基準にして前記記憶スペース内の位置を示すシーケンス番号を割り当てること、および
初期化データが書込まれる各データ・ブロックに前記記憶スペース内のデータ・ブロックのシーケンス番号を書込むことを、前記記憶ユニットに行わせる前記決定されたシーケンス番号を前記書込みコマンド内に示すこと
をさらに含む、上記（１）に記載の方法。
（１０）ストレージ・コントローラによって管理される複数の記憶ユニットの１つを備える記憶ユニットを初期化するための方法であって、
記憶スペース内の連続するブロックのセットを初期化するために前記ストレージ・コントローラから１ブロックの初期化データと共に書込みコマンドを受け取ることであって、前記書込みコマンドが、連続するデータ・ブロックの前記セット内の第１データ・ブロックが書込まれる記憶ユニット内のブロック・アドレスおよびブロック数を示すこと、
前記書込みコマンドと共に送信された初期化データのブロックを前記示されたブロック・アドレスに書込むこと、および
前記示されたブロック・アドレスに続く前記記憶ユニット内のその後の連続する各ブロックに前記１ブロックの初期化データを前記ブロック数に等しい回数書込むこと
を含む方法。
（１１）前記記憶ユニット内の連続するデータ・ブロックの複数のセットを初期化する複数の書込みコマンドを各記憶ユニットが受け取る方法であって、１つの記憶ユニットに書込まれる各セットの前記連続するデータ・ブロックが、前記記憶ユニットに書込まれた近接セット内の連続するデータ・ブロックを基準にして非連続的である、上記（１０）に記載の方法。
（１２）前記記憶ユニットがディスク・アレイ内にハード・ディスク・ドライブを備え、連続するデータ・ブロックの前記セットが、前記アレイ内の前記記憶ユニット全体にわたって書込まれるデータ・ストライプの一部を含み、複数のストライプが前記記憶ユニット全体にわたって書込まれる、上記（１０）に記載の方法。
（１３）前記初期化データが書込まれる各ブロックに誤り訂正コードを書込むこと
をさらに含む、上記（１０）に記載の方法。
（１４）前記誤り訂正コードが書込まれるブロックのブロック・アドレスと前記誤り訂正コードを組合わせること、
を前記誤り訂正コードを書込むことがさらに含む、上記（１３）に記載の方法。
（１５）前記データ・ブロックが、少なくともヘッダ・セクション、ユーザ・データ・セクション、および誤り訂正コード・セクションを含むセクタを含む、上記（１）に記載の方法。
（１６）複数の記憶ユニットを備える記憶装置を初期化するためのシステムであって、
前記記憶ユニットに広がる記憶スペースを初期化する要求を受け取るための手段と、
前記記憶ユニット上に前記記憶スペースの連続するデータ・ブロックのセットのレイアウトを決定するための手段であって、連続するデータ・ブロックのセットが前記記憶ユニット全体にわたって書込まれる手段と、
連続するデータ・ブロックの各セットに対して、
（ｉ）連続するデータ・ブロックの前記セット内の第１データ・ブロックが書込まれる各記憶ユニット内のブロック・アドレスを決定すること、
（ｉｉ）前記記憶ユニットのそれぞれに対する書込みコマンドを生成することであって、各書込みコマンドが、前記記憶ユニットに対して決定されたブロック・アドレスおよびブロック数を示すこと、ならびに
（ｉｉｉ）前記書込みコマンドを１ブロックの初期化データと共に前記記憶ユニットに送信することであって、前記書込みコマンドを受け取る記憶ユニットが、前記示されたブロック・アドレスから前記１ブロックの初期化データを書込み、前記記憶ユニット内のその後の連続する各ブロックに前記１ブロックの初期化データを前記ブロック数に等しい回数書込むこと
を実行するための手段とを備えるシステム。
（１７）前記決定されたレイアウトが、各記憶ユニットに書込まれる連続するデータ・ブロックの複数のセットを含み、１つの記憶ユニットに書込まれる各セットの前記連続するデータ・ブロックが、前記記憶ユニットに書込まれた近接セット内の連続するデータ・ブロックを基準にして非連続的である、上記（１６）に記載のシステム。
（１８）前記初期化データが、前記ブロックに対する０データを含む、上記（１６）に記載のシステム。
（１９）前記記憶ユニットがディスク・アレイ内にハード・ディスク・ドライブを備え、連続するデータ・ブロックの前記セットが、前記記憶ユニット全体にわたって書込まれるデータ・ストライプの一部を含み、複数のストライプが前記記憶ユニット全体にわたって書込まれる、上記（１６）に記載のシステム。
（２０）前記初期化データが書込まれる各ブロックに誤り訂正コードを書込むことを、前記書込みコマンドを受け取る記憶ユニットに行わせるコードを、前記書込みコマンド内に示すための手段
をさらに備える、上記（１６）に記載のシステム。
（２１）前記誤り訂正コードが書込まれるブロックのブロック・アドレスと前記誤り訂正コードを組合わせることを、前記書込みコマンド内に示されたコードが、前記書込みコマンドを受け取る記憶ユニットにさらに行わせる、上記（１０）に記載のシステム。
（２２）前記記憶ユニットによって書込まれた誤り訂正コードが、前記誤り訂正コードが書込まれるブロック内のすべてのデータに関する排他的ＯＲ演算を実行することによって計算される水平冗長チェック（ＬＲＣ）コードを含む、上記（２０）に記載のシステム。
（２３）前記データ・ブロックが、少なくともヘッダ・セクション、ユーザ・データ・セクション、および誤り訂正コード・セクションを含むセクタを含む、上記（１６）に記載のシステム。
（２４）連続するデータ・ブロックの各セットに対して、連続するデータ・ブロックの前記セット内の第１データ・ブロックが書込まれる各記憶ユニット内のシーケンス番号を決定するための手段であって、前記記憶スペース内の各データ・ブロックに、他のすべてのデータ・ブロックを基準にした前記記憶スペース内の位置を示すシーケンス番号が割り当てられる手段と、
初期化データが書込まれる各データ・ブロックに、前記記憶スペース内のデータ・ブロックのシーケンス番号を書込むことを、前記記憶ユニットに行わせるための決定されたシーケンス番号を前記書込みコマンド内に示すための手段とをさらに備える、上記（１６）に記載のシステム。
（２５）ストレージ・コントローラによって送信されるコマンドに応答してデータを初期化するためのシステムであって、
記憶ユニットと、
記憶スペース内の連続するブロックのセットを初期化するために前記ストレージ・コントローラから１ブロックの初期化データと共に書込みコマンドを受け取るための手段であって、前記書込みコマンドが、連続するデータ・ブロックの前記セット内の第１データ・ブロックが書込まれる記憶ユニット内のブロック・アドレスおよびブロック数を示す手段と、
前記書込みコマンドと共に送信された初期化データの前記ブロックを前記記憶ユニット内の前記示されたブロック・アドレスに書込むための手段と、
前記示されたブロック・アドレスに続く前記記憶ユニット内のその後の連続する各ブロックに初期化データの前記ブロックを前記ブロック数に等しい回数書込むための手段とを備えるシステム。
（２６）前記記憶ユニット内の連続するデータ・ブロックの複数のセットを初期化する複数の書込みコマンドを受け取るための手段であって、１つの記憶ユニットに書込まれる各セットの前記連続するデータ・ブロックが、前記記憶ユニットに書込まれた近接セット内の連続するデータ・ブロックを基準にして非連続的である手段
をさらに備える、上記（２５）に記載のシステム。
（２７）複数の記憶ユニットを含むディスク・アレイであって、前記記憶ユニットがディスク・アレイ内にハード・ディスク・ドライブを備え、連続するデータ・ブロックの前記セットが、前記アレイ内の記憶ユニット全体にわたって書込まれたデータ・ストライプの一部を含み、複数のストライプが前記記憶ユニット全体にわたって書込まれるディスク・アレイ
をさらに備える、上記（２５）に記載のシステム。
（２８）前記初期化データが書込まれる各ブロックに誤り訂正コードを書込むための手段
をさらに備える、上記（２５）に記載のシステム。
（２９）前記誤り訂正コードが書込まれるブロックのブロック・アドレスと前記誤り訂正コードを組合わせること
を前記誤り訂正コードを書込むための手段がさらに実行する、上記（２８）に記載のシステム。
（３０）前記データ・ブロックが、少なくともヘッダ・セクション、ユーザ・データ・セクション、および誤り訂正コード・セクションを含むセクタを含む、上記（２５）に記載のシステム。
（３１）ストレージ・コントローラによって実行されるコードを含む製品であって、
記憶ユニットに広がる記憶スペースを初期化する要求を受け取ること、
前記記憶ユニット上に前記記憶スペースの連続するデータ・ブロックのセットのレイアウトを決定することであって、連続するデータ・ブロックのセットが前記記憶ユニット全体にわたって書込まれること、
連続するデータ・ブロックの各セットに対して、
（ｉ）連続するデータ・ブロックのセット内の第１データ・ブロックが書込まれる各記憶ユニット内のブロック・アドレスを決定すること、
（ｉｉ）前記記憶ユニットのそれぞれに対する書込みコマンドを生成することであって、各書込みコマンドが、前記記憶ユニットに対して決定されたブロック・アドレスおよびブロック数を示すこと、
（ｉｉｉ）１ブロックの初期化データと共に前記書込みコマンドを前記記憶ユニットに送信することであって、前記書込みコマンドを受け取る記憶ユニットが、初期化データの前記ブロックを前記示されたブロック・アドレスから書込み、前記記憶ユニット内のその後の連続する各ブロックに初期化データの前記ブロックを前記ブロック数に等しい回数書込むこと
を実行すること
によって、複数の記憶ユニットを備える記憶装置を初期化するための製品。
（３２）前記決定されたレイアウトが、各記憶ユニットに書込まれる連続するデータ・ブロックの複数のセットを含み、１つの記憶ユニットに書込まれる各セットの前記連続するデータ・ブロックが、前記記憶ユニットに書込まれる近接セット内の連続するデータ・ブロックを基準にして非連続的である、上記（３１）に記載の製品。
（３３）前記初期化データが前記ブロックに対する０データを含む、上記（３１）に記載の製品。
（３４）前記記憶ユニットがディスク・アレイ内にハード・ディスク・ドライブを備え、連続するデータ・ブロックの前記セットが、前記記憶ユニット全体にわたって書込まれるデータ・ストライプの一部を含み、複数のストライプが前記記憶ユニット全体にわたって書込まれる、上記（３１）に記載の製品。
（３５）前記初期化データが書込まれる各ブロックに誤り訂正コードを書込むことを、前記書込みコマンドを受け取る記憶ユニットに行わせるコードを、前記書込みコマンド内に示すこと、
を前記コードが前記ストレージ・コントローラにさらに実行させる、上記（３１）に記載の製品。
（３６）前記誤り訂正コードが書込まれるブロックのブロック・アドレスと前記誤り訂正コードを組合わせること、
を前記書込みコマンド内に示されたコードが、前記書込みコマンドを受け取る記憶ユニットにさらに実行させる、上記（３５）に記載の製品。
（３７）前記記憶ユニットによって書込まれた誤り訂正コードが、前記誤り訂正コードが書込まれたブロック内のすべてのデータに関する排他的ＯＲ演算を実行することによって計算される水平冗長チェック（ＬＲＣ）コードを含む、上記（３５）に記載の製品。
（３８）前記データ・ブロックが、少なくともヘッダ・セクション、ユーザ・データ・セクション、および誤り訂正コード・セクションを含むセクタを含む、上記（３１）に記載の製品。
（３９）連続するデータ・ブロックの各セットに対して、連続するデータ・ブロックの前記セット内の第１データ・ブロックが書込まれる各記憶ユニット内のシーケンス番号を決定することであって、前記記憶スペース内の各データ・ブロックに、他のすべてのデータ・ブロックを基準にして前記記憶スペース内の位置を示すシーケンス番号を割り当てること、および
前記記憶スペース内のデータ・ブロックのシーケンス番号を、初期化データが書込まれる各データ・ブロックに書込むことを、前記記憶ユニットに行わせる前記決定されたシーケンス番号を前記書込みコマンド内に示すこと
を前記コードが前記ストレージ・コントローラにさらに実行させる、上記（３１）に記載の製品。
（４０）記憶ユニットによって実行されるコードを含む、前記コードを実行して前記記憶ユニットを初期化するための製品であって、前記記憶ユニットが、ストレージ・コントローラによって管理される複数の記憶ユニットの１つであり、前記コードが、
記憶スペース内の連続するブロックのセットを初期化するために前記ストレージ・コントローラから１ブロックの初期化データと共に書込みコマンドを受け取ることであって、前記書込みコマンドが、連続するデータ・ブロックの前記セット内の第１データ・ブロックが書込まれる記憶ユニット内のブロック・アドレスおよびブロック数を示すこと、
前記書込みコマンドと共に送信された前記１ブロックの初期化データを前記示されたブロック・アドレスに書込むこと、
前記示されたブロック・アドレスに続く前記記憶ユニット内のその後の連続する各ブロックに前記１ブロックの初期化データを前記ブロック数に等しい回数書込むこと
を前記記憶ユニットに実行させる製品。
（４１）各記憶ユニットが、前記記憶ユニット内の連続するデータ・ブロックの複数セットを初期化するための複数の書込みコマンドを受け取り、１つの記憶ユニットに書込まれる前記連続するデータ・ブロックの各セットが、前記記憶ユニットに書込まれた近接するセット内の連続するデータ・ブロックを基準にして非連続的である、上記（４０）に記載の製品。
（４２）前記記憶ユニットがディスク・アレイ内にハード・ディスク・ドライブを備え、連続するデータ・ブロックの前記セットが、前記アレイ内の前記記憶ユニット全体にわたって書込まれたデータ・ストライプの一部を含み、複数ストライプが前記記憶ユニット全体にわたって書込まれる、上記（４０）に記載の製品。
（４３）前記初期化データが書込まれる各ブロックに誤り訂正コードを書込むこと
を前記コードが前記記憶ユニットにさらに実行させる、上記（４０）に記載の製品。
（４４）前記誤り訂正コードを書込むことが、
前記誤り訂正コードが書込まれるブロックのブロック・アドレスと前記誤り訂正コードを組合わせること
をさらに含む、上記（４３）に記載の製品。
（４５）前記データ・ブロックが、少なくともヘッダ・セクション、ユーザ・データ・セクション、および誤り訂正コード・セクションを含むセクタを含む、上記（４０）に記載の製品。
（４６）ストレージ・コントローラによって管理される複数の記憶ユニットの１つを備える記憶ユニットを初期化するために使用されるコマンドを含むコンピュータ可読媒体であって、前記コマンドが次のデータ、すなわち、
記憶スペース内の１組の連続するブロックを初期化するために使用される１ブロックの初期化データと、
前記１組の連続するデータ・ブロック内の第１データ・ブロックが書込まれる記憶ユニット内のブロック・アドレスと、
ブロック数であって、前記１ブロックの初期化データを前記示されたブロック・アドレス、および前記示されたブロック・アドレスに続く前記記憶ユニット内のその後の連続する各ブロックに、前記ブロック数に等しい回数書込むことを、前記コマンドが前記記憶ユニットに行わせるブロック数とに関連付けられるコンピュータ可読媒体。
（４７）前記記憶ユニットがディスク・アレイ内にハード・ディスク・ドライブを備え、連続するデータ・ブロックの前記セットが、前記アレイ内の前記記憶ユニット全体にわたって書込まれるデータ・ストライプの一部を含み、複数ストライプが前記記憶ユニット全体にわたって書込まれる、上記（４６）に記載のコンピュータ可読媒体。
（４８）前記初期化データが書込まれる各ブロックに誤り訂正コードを書込むかどうかを示すデータ、
を前記コマンドがさらに含む、上記（４６）に記載のコンピュータ可読媒体。
（４９）初期化される前記データ・ブロックがそれぞれ、少なくともヘッダ・セクション、ユーザ・データ・セクション、および誤り訂正コード・セクションを含むセクタを含む、上記（４６）に記載のコンピュータ可読媒体。
（５０）前記初期化データが前記ブロックに対する０データを含む、上記（４６）に記載のコンピュータ可読媒体。
（５１）前記記憶スペース内の各データ・ブロックに、他のすべてのデータ・ブロックを基準にして前記記憶スペース内の位置を示すシーケンス番号が割り当てられる、決定されたシーケンス番号をさらに含む上記（４６）に記載のコンピュータ可読媒体。
【図面の簡単な説明】
【図１】本発明の態様が実施されるコンピューティング環境を示す図である。
【図２】本発明の実施例と共に使用されるディスク・ドライブ内のコンポーネントを示す図である。
【図３】従来技術で知られている方法でセクタのフォーマットを示す図である。
【図４】本発明の実施例にしたがって書込み実施コマンドのフォーマットを示す図である。
【図５】本発明の実施例にしたがって記憶装置のアレイ内のデータを初期化する記憶サブシステムに実施されるロジックを示す図である。
【図６】本発明の実施例にしたがってデータを初期化するためのディスク・ドライブ内に実施されるロジックを示す図である。
【符号の説明】
２  ホスト
４  記憶装置
６  記憶サブシステム
８ａ  ハード・ディスク・ドライブ
８ｂ  ハード・ディスク・ドライブ
８ｃ  ハード・ディスク・ドライブ
８ｎ  ハード・ディスク・ドライブ
１０  ホスト・バス・アダプタ
１２  ＰＣＩ  ＲＡＩＤアタプタ
２０  制御装置
２２  コード
【図１】
0003782982.tif 000002
【図２】
0003782982.tif 000003
【図３】
0003782982.tif 000004
【図４】
0003782982.tif 000005
【図５】
0003782982.tif 000006
【図６】
0003782982.tif 000007