(57)【要約】【課題】仮想記憶空間内のコマンド・キューを順序づけ、アクチュエータをショート・ストロークして平均シーク距離を小さくする装置および方法を提供する。【解決手段】記憶空間のアクティブ・ゾーン・サブポーションを有する記憶領域１０１と、アクティブ・ゾーンに向かうアクチュエータ１２４をショート・ストロークするためのコマンド・キュー・コントローラ１９８とを備えるデータ記憶システム１０４を提供する。また記憶空間を仮想化して、ユーザ・データを第１の領域に、冗長データを第２の領域に記憶し、各領域を記憶空間のアクティブ・ゾーンとイナクティブ・ゾーンとに分割し、検索アクセス・コマンドに関連するＬＢＡをどの領域のアクティブ・ゾーンが含むかに従って第１領域と第２領域の一方からの検索アクセス・コマンドを実行する方法を提供する。【選択図】図１
2008016025.tif 000002
【特許請求の範囲】
【請求項１】
データ記憶システムであって、記憶空間のアクティブ・ゾーン・サブポーションを有する記憶領域と、前記アクティブ・ゾーンに向かうアクチュエータをショート・ストロークするためのコマンド・キュー・コントローラとを備えるデータ記憶システム。
【請求項２】
主記憶領域と冗長記憶領域とで構成し、仮想記憶空間を各領域内の同じＬＢＡで始まる領域にマップする、請求項１記載のデータ記憶システム。
【請求項３】
前記主記憶領域のアクティブ・ゾーンは前記冗長記憶領域のアクティブ・ゾーン内に含まれるＬＢＡとは異なるＬＢＡを含む、請求項２記載のデータ記憶システム。
【請求項４】
前記主記憶領域のアクティブ・ゾーン内のＬＢＡと前記冗長記憶領域のアクティブ・ゾーン内のＬＢＡとを結合すると前記２つの領域のそれぞれのＬＢＡの全数を表す、請求項３記載のデータ記憶システム。
【請求項５】
前記複数の記憶領域内にそれぞれイナクティブ・ゾーンを含み、各イナクティブ・ゾーンはそれぞれのアクティブ・ゾーン内に含まれないＬＢＡを有する、請求項２記載のデータ記憶システム。
【請求項６】
前記イナクティブ・ゾーンは前記アクティブ・ゾーンと相補的である、請求項５記載のデータ記憶システム。
【請求項７】
反転機能を備え、前記コマンド・キュー・コントローラは各領域内のゾーン状態を反転させて、前のアクティブ・ゾーンを現在のイナクティブ・ゾーンにし、前のイナクティブ・ゾーンを現在のアクティブ・ゾーンにする、請求項５記載のデータ記憶システム。
【請求項８】
各領域は唯一のアクティブ・ゾーンおよび唯一のイナクティブ・ゾーンを有する、請求項７記載のデータ記憶システム。
【請求項９】
各領域は唯一のアクティブ・ゾーンおよび２つ以上のイナクティブ・ゾーンを有する、請求項７記載のデータ記憶システム。
【請求項１０】
方法であって、
記憶空間を仮想化して、ユーザ・データを第１の領域内に、冗長データを第２の領域内に記憶し、
前記各領域を記憶空間のアクティブ・ゾーンとイナクティブ・ゾーンとに分割し、
検索アクセス・コマンドに関連するＬＢＡをどの領域のアクティブ・ゾーンが含むかに従って第１の領域と第２の領域の一方からの検索アクセス・コマンドを実行する、
方法。
【請求項１１】
前記仮想化するステップは前記各領域内の同じＬＢＡで始まることを特徴とする、請求項１０記載の方法。
【請求項１２】
前記第１の領域のアクティブ・ゾーンは前記第２の領域のアクティブ・ゾーン内に含まれるＬＢＡとは異なるＬＢＡを含む、請求項１１記載の方法。
【請求項１３】
前記第１の領域のアクティブ・ゾーン内のＬＢＡと前記第２の領域のアクティブ・ゾーン内のＬＢＡとを結合すると前記２つの領域のそれぞれのＬＢＡの全数を表す、請求項１２記載の方法。
【請求項１４】
区画を反転させて、前のアクティブ・ゾーンを現在のイナクティブ・ゾーンにし、前のイナクティブ・ゾーンを現在のアクティブ・ゾーンにする、請求項１３記載の方法。
【請求項１５】
領域の１つのアクティブ・ゾーン内のＬＢＡに関連する記憶アクセス・コマンドを実行することを更に含む、請求項１４記載の方法。
【請求項１６】
記憶アクセス・コマンドを実行することは、前記反転するステップを実行する前に現在のアクティブ・ゾーン向けのコマンド・キュー内の全ての未処理の記憶アクセス・コマンドを実行することを特徴とする、請求項１５記載の方法。
【請求項１７】
前記記憶アクセス・コマンドを実行することは、前記反転するステップを実行するときに前記アクティブ・ゾーン向けの未処理の記憶アクセス・コマンドをコマンド・キュー内に保つことを特徴とする、請求項１５記載の方法。
【請求項１８】
前記記憶アクセス・コマンドを実行することは、前記反転するステップを実行するときに前記アクティブ・ゾーン向けの開始していない未処理の記憶アクセス・コマンドだけを前記コマンド・キュー内に保つことを特徴とする、請求項１７記載の方法。
【請求項１９】
検索アクセス・コマンドの実行は記憶アクセス・コマンドの実行より優先順位が高い、請求項１５記載の方法。
【請求項２０】
データ記憶装置であって、
ＲＡＩＤ記憶構成と、
ＲＡＩＤを形成するデータ記憶装置を絶えずショート・ストロークするようにコマンド・キュー内のコマンドを順序づけるための手段と、
を備えるデータ記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般にコンピュータ・システム内の処理能力を強化することに関するものであって、より詳しくは、機器および関連する方法に制限なく、仮想記憶空間内のコマンド・キューの順序づけをして、ショート・ストロークを絶えず用いて平均シーク距離を小さくすることに関するものである。
【背景技術】
【０００２】
コンピュータ・システムは、入力装置、出力装置、１個以上のＣＰＵおよび記憶装置（半導体ＲＡＭ、ＥＥＰＲＯＭ、ディスク・ドライブ、ＣＤドライブ、その他の記憶媒体を含んでよい）、およびインテリジェント・コントローラで構成してよい。オペレーティング・システムは種々の周辺装置の構成（例えば、ディスプレイ・アダプタおよびネットワーク・インターフェースなど）を制御してよく、またアプリケーション環境やデータ・システム（ファイルを作成し、変更し、または削除するときに記憶容量を割り当てたり割当てを解除したりする）を提供する。
【０００３】
またサーバや記憶アレイなどの特殊なコンピュータ・システムは、ネットワークまたはその他の接続を通してアクセスできる記憶容量を割り当てるためのシステムを用いる。データは、例えば独立ドライブの冗長アレイ（ＲＡＩＤ）などの冗長記憶フォーマットで、複数のディスク・ドライブにまたがって記憶してよい。ユーザ・データおよび任意のミラー・データまたはパリティ・データ（冗長データ）は、１台以上のディスク・ドライブ上の１つ以上の領域にマップされる。１台以上のディスク・ドライブにデータを記憶する方法を記述する構成情報は、表内にまたはメタデータと呼ぶその他のデータ構造内に含まれる。ファイルを作成し、変更し、または削除したときは、メタデータを更新して、記憶容量の割当てまたは割当て解除を反映する。
【０００４】
ホストのアクセス・コマンド（記憶コマンドおよび検索コマンド）を記憶アレイに送るときのコンピュータ・システムの性能は、アクセス・コマンドをキャッシュに書き込み、これをすぐにホストに通知することにより強化することができる。これにより、システムから要求があるたびにシステム資源を全体的に調べることに比べて、記憶アレイとキャッシュとの間の実際の転送を最適時間で行うことができる。例えば、現在システムがデータ記憶装置を他のタスクに必要としていないときは、コマンド・キュー内の未処理の多くのアクセス・コマンドを実行することができる。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、コマンド・キューが長くなるとシステム処理能力が低下し、また受けたことは通知したがまだ実行していないアクセス・コマンドの数が余り多くなるとデータのミスマッチが大きな問題になる。このため、コマンド・キュー内のコマンドをできるだけ効率的に通すことが望ましい。
したがって、コマンド・キューを管理する方法を改善することが絶えず必要になる。本発明の実施の形態が一般に目指すのはかかる改善である。
【課題を解決するための手段】
【０００６】
ここに実現しまた後でクレームするように、本発明の実施の形態は一般に、コマンド・キューを効率的にスケジューリングしてデータ記憶システムの処理能力を最大にすることを目指す。
或る実施の形態では、記憶空間のアクティブ・ゾーン・サブポーションを有する記憶領域と、アクティブ・ゾーンに向かうアクチュエータをショート・ストロークするためのコマンド・キュー・コントローラとを備えるデータ記憶システムを提供する。
【０００７】
別の実施の形態では、記憶空間を仮想化して、ユーザ・データを第１の領域に記憶し、冗長データを第２の領域に記憶する方法を提供する。この方法は更に、各領域を記憶空間のアクティブ・ゾーンとイナクティブ・ゾーンとに分割する。この方法は更に、検索アクセス・コマンドに関連するＬＢＡをどの領域のアクティブ・ゾーンが含むかに従って第１領域と第２領域の一方からの検索アクセス・コマンドを実行する。
別の実施の形態では、ＲＡＩＤ記憶構成と、ＲＡＩＤを形成するデータ記憶装置を絶えずショート・ストロークするようにコマンド・キュー内のコマンドを順序づけるための手段とを備えるデータ記憶装置を提供する。
本発明の実施の形態を特徴づけるこれらの特徴および利点は、以下の詳細な説明を読み、関連する図面を参照すれば明らかになる。
【実施例】
【０００８】
本発明の実施の形態は、内蔵のまたは付属のデータ記憶装置を持つ、またはインテリジェント記憶システム内の、コンピュータまたはサーバなどの種々の環境で用いることができる。インテリジェント記憶システムはインテリジェント・コントローラおよびインターフェースを有し、また１つ以上のデータ記憶アレイを有してよい。本発明の好ましい実施の形態を実施するのに適した例示的な環境を示すために、図１に大容量記憶を用いるワイド・エリア・ネットワーク（ＷＡＮ）として特徴づけられるコンピュータ・ベースのシステム１００を示す。
【０００９】
システム１００は、ホストＡ，Ｂ，Ｃでそれぞれ示す多数のホスト・コンピュータ１０２を含む。ホスト・コンピュータ１０２は構造１０６を介して、相互にまた１対のデータ記憶アレイ１０４（ＡおよびＢでそれぞれ示す）と情報を交換する。構造１０６は好ましくはファイバ・チャネル・ベースの切換えネットワークとして特徴づけられるが、インターネットを含む他の構成を用いてもよい。
【００１０】
各アレイ１０４は１対のコントローラ１０８（Ａ１，Ａ２およびＢ１，Ｂ２で示す）と、ＲＡＩＤとして動作するディスク・ドライブ（限定されない）としてここで特徴づけられる一組のデータ記憶装置１０１とを含む。コントローラ１０８およびデータ記憶装置１０１は好ましくは耐故障性配置を用いるので、種々のコントローラ１０８は並列の冗長リンクを用い、またシステム１００が記憶するユーザ・データの少なくとも一部は少なくとも一組のデータ記憶装置１０１内に冗長フォーマットで記憶する。
【００１１】
更に、Ａホスト・コンピュータ１０２およびＡデータ記憶アレイ１０４は物理的に第１のサイトにあり、Ｂホスト・コンピュータ１０２およびＢデータ記憶アレイ１０４は物理的に第２のサイト（ＡおよびＣから離れた）にあり、Ｃホスト・コンピュータ１０２は更に第３のサイト（ＡおよびＢから離れた）にあるとする。ただしこれは単なる例であって、制限するものではない。
【００１２】
図２は本発明の実施の形態に従って構築されたアレイ１０４を示す。それぞれが１０個のデータ記憶装置１１４の容量を持つ２台の多重ドライブ・アレイ（ＭＤＡ）１０１を用いる。ＭＤＡ１０１は大容量記憶のための転換可能な複数のデータ記憶装置１１４を備える。「転換可能」とは、既存のＭＤＡ１０１内の１個以上のデータ記憶装置１１４を容易に置換し、追加し、または除去できること、または種々の数、サイズまたは配置のデータ記憶装置１１４をサポートすることができる異なるＭＤＡを用いてよいことを意味する。「構成要素化」とは、記憶容量の一体となったブロックとしてアレイ１０４が機能的に提示できるように、ＭＤＡ１０１内のデータ記憶装置１１４および関連する制御電子装置を集合的にまとめることを意味する。
【００１３】
図３は本発明の実施の形態を実施するのに適した１個のデータ記憶装置１１４の等角図を示す。しかし理解されるように、本発明の実施の形態はこれに限定されるものではない。
【００１４】
装置１１４は好ましくはベース１１６およびカバー１１８（一部を切り取って示す）を含み、全体で多数の構成要素のハウジングを形成する。構成要素はモータ１２０を含み、共に回転する１個以上の記憶媒体１２２をこれに固定する。記憶媒体１２２に近接してアクチュエータ組立体１２４があり、ボイス・コイル・モータ（ＶＣＭ）１２６に電流を流すと軸受組立体の回りに旋回する。このようにして、ＶＣＭ１２６を制御して動作させると、アクチュエータ１２４は記憶媒体１２２上を半径方向に動く。
【００１５】
アクチュエータ組立体１２４はロード・アーム１３０を支持するアクチュエータ・アーム１２８を含み、ロード・アーム１３０はその先端にヘッド１３２（または変換器）を支持して、近接する記憶媒体１２２との間でデータを転送する。各記憶媒体１２２を分割してデータ・トラックを形成してよく、またヘッド１３２はトラックからデータを検索しまたはトラックにデータを記憶するために位置決めすることができる。
【００１６】
ヘッド１３２と装置１１４の制御回路との間に必要な電気伝導経路を形成するためヘッド１３２は可撓回路を有する。その経路は、アクチュエータ組立体１２４上でヘッド１３２から、ロード・アーム組立体１３０およびアクチュエータ・アーム１２８に沿って、アクチュエータ組立体１２４の近接端（「Ｅブロック」と呼ぶことがある）で支持される回路部１３４まで伸びる。回路部１３４はヘッド１３２の可撓回路を、ベース１１６を通してプリント回路板（ＰＣＢ）１３８まで延びる別の可撓回路１３６に接続する。ＰＣＢ１３８に取りつけられた電気コネクタ１４０は装置１１４をはめ合いコネクタ（図示しない）に接続するための複数の接触子１４２を有し、例えば装置１１４が外部制御回路と通信できるようにする。
【００１７】
図４は図３の装置１１４の機能的ブロック図である。プログラマブル・コントローラ１４８は装置１１４のトップ・レベルの通信および制御を行う。インターフェース（Ｉ／Ｆ）１５０は、装置１１４と結合する外部装置との入出力（Ｉ／Ｏ）通信および転送を容易にする。読取り／書込み（Ｒ／Ｗ）チャネル１５４は、データ記憶動作中は記憶媒体１２２に書き込むデータを調整し、またデータ検索動作中は記憶媒体１２２から検索したデータを再構築して外部装置に転送できるようにする。
【００１８】
サーボ回路１５６は、記憶媒体１２２に記憶されているサーボ・データを用いるなどしてヘッド１３２の閉ループ位置決め制御を行う。サーボ回路１５６は好ましくは多数の制御機能を実行する。例えば、選択されたヘッドが記憶媒体１２２上の対応するトラックを追従するトラック追従動作や、選択されたヘッド１３２を開始トラックから宛先トラックまで移動させるシーク動作や、ヘッド１３２を待機ゾーンまたは構造に入れたり出したりして移動させるヘッド１３２ロード／アンロード動作などを含む。
【００１９】
サーボ回路１５６は必要な電流をＶＣＭ１２６のコイル１６０に与えて、記憶媒体１２２のトラックに対してヘッド１３２を選択的に移動させる。サーボ回路１５６は更に、好ましくはスピンドル・モータ１２０を制御するためのスピンドル・モータ・ドライバ回路１６２を含む。これらのサーボ機能実行の処理要求は、好ましくはディジタル信号処理プロセッサ（ＤＰＳ）１６４またはサーボ回路１５６の他の処理装置（ＡＲＭなど）から与える。また単一プロセッサ環境では、サーボ処理はトップ・レベル・コントローラ１４８から与える。
【００２０】
図２に戻って、棚１６８は空洞１７０を定義し、バックプレーン１７２と通信できるようにそれぞれの中にＭＤＡ１０１を受けて係合する。同様に、棚１６８は他の電気モジュールを受けてバックプレーン１７２と係合するための空洞を定義する。他の電気モジュールは、記憶コントローラ１０８、電池１７６、電源１７８、およびインターフェース１８０などであるが、これらに限定されない。
【００２１】
図５はコントローラ１０８の選択された１つを詳細に示す。コントローラ１０８は単一集積回路で実現し、または必要に応じて多数の離散回路に分散して、実現してよい。主プロセッサ１８２（好ましくは、プログラマブル・コンピュータ・プロセッサとして特徴づけられる）は、好ましくは不揮発性メモリ１８４（フラッシュ・メモリなど）およびダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）１８６内に記憶されたプログラミング・ステップおよび処理データに従って制御する。
【００２２】
構造インターフェース（Ｉ／Ｆ）１８８は構造１０６を介して他のコントローラ１０８およびホスト・コンピュータ１０２と通信し、装置Ｉ／Ｆ回路１９０は記憶装置１１４と通信する。Ｉ／Ｆ回路１８８，１９０および経路コントローラ１９２は、キャッシュ・メモリ１９４を用いるなどして、記憶アレイ１０４とホスト１０２との間でコマンドおよびデータを渡すための通信路を形成する。離散的に図示したが、理解されるように、経路コントローラ１９２およびＩ／Ｆ回路１８８，１９０は一体で構築してよい。
【００２３】
好ましくは、ホストの処理性能を高めるため、書込みコマンドをキャッシュ・メモリ１９４内にライトバック・キャッシュして、コマンド・キュー１９６内に未処理として保つ。経路コントローラ１９２のコマンド・キュー・コントローラ１９８の部分は、本発明の実施の形態に従って、書込みコマンドならびに優先順位の高い読取りコマンドを通す順序を決める。
【００２４】
各データ記憶装置１１４の容量を結合した容量で定義されるアレイ１０４のデータ記憶容量を編成して、アレイ１０４に書き込みまたアレイ１０４から読み取ることのできる論理装置を形成する。システム構成情報は、ユーザ・データならびに任意の関連するパリティおよびミラー・データ（冗長データ）とそれぞれの記憶位置との関係を定義する。システム構成情報は更に、データに割り当てられた記憶容量のブロックとメモリ記憶位置（論理ブロック・アドレス（ＬＢＡ）など）との関係を定義する。システム構成情報は更に、論理ブロック・アドレスにマップされる仮想ブロック・アドレスを定義することによる仮想化を含んでよい。
【００２５】
本発明の実施の形態は、複数のデータ記憶装置１１４にわたってマップされるデータ記憶グリッド構造を用いる。データ・グリッドは複数の記憶領域内の複数の連続したデータ・ブロックを含む。記憶領域毎の各複数のデータ・ブロックの第１のデータ・ブロックは一般に同じアドレス（グリッド・ベース・アドレスと呼ぶ）にあるのでアドレス生成は簡単である。しかし、２つ以上の記憶領域では異なるベース・アドレスを用いてよい。グリッドは予め定義された量のデータ記憶空間を形成する。１つのグリッド内のデータ記憶空間の量を１つの論理ユニットに割り当ててよく、各グリッドは簡単なメタデータ・オーバーヘッドで実質的にマップしてよい。
【００２６】
図６は、同じサイズのデータ・ブロックの二次元アレイとして見てよいデータ記憶グリッドを示す。アレイの列はデータ記憶装置１１４に対応し、行は各データ記憶装置１１４内の同じＬＢＡで始まるデータ・ブロックに対応する。したがって、図６のデータ記憶グリッドでは、Ａ，Ｂ，Ｃ，Ｄ，Ｅ，Ｆ，Ｇ，Ｈで示すデータ記憶装置１１４（領域）と交差してデータ・ブロックのアレイを定義する複数の行２００を有する。
【００２７】
グリッド内のデータ・ブロックのサイズ（記憶容量）は同じであるが、特定のサイズに限定されるわけではない。データ・ブロックのサイズは記憶システムを設計するときに指定してよく、そのシステム内のデータ記憶装置のサイズ（記憶容量）、ユーザ・アプリケーション、コントローラ・ハードウエアおよびソフトウエア、およびその他の要因を反映してよい。行２００は連続的であって、グリッドの隣接する行の間には定義されない記憶空間はない。グリッド内の第１行の開始アドレスはグリッドのベース・アドレスとして働き、ベース・アドレスがデータ記憶ブロックのサイズとグリッド内の行数との積の倍数のアドレスになるように各グリッドを定義してよい。
【００２８】
グリッドに番号をつけてよく、１つのグリッド内に含まれる記憶容量はグリッドのポインタを用いて割り当ててよい。ポインタ表はポインタとグリッド番号とを関連づけるので、仮想化が容易になりまたメタデータ・オーバーヘッドを減らすことができる。アレイ内のデータ記憶装置の利用可能な記憶容量の一部を占める複数のグリッドを定義してよい。グリッドの一部のドライブまたはデータ・ブロックを予備に指定することにより、システム内の他のデータ記憶装置が故障した場合に再構築されたデータまたはコピーされたデータを記憶するのに用いられる追加の記憶容量を備えることができる。グリッド内の一部のデータ・ブロックを、主要なユーザ・データの記憶専用、または誤り回復のための冗長データの記憶専用にしてもよい。
【００２９】
図６のグリッドは、好ましくは水平および垂直の分割線２０２，２０４により４つの同じサイズの象限に分割される。垂直分割線２０４は最初の４つの領域Ａ，Ｂ，Ｃ，Ｄと最後の４つの領域Ｅ，Ｆ，Ｇ，Ｈとを分離する。かかる分離は、例示の目的で以下の説明に用いるＲＡＩＤ１データ・システムを用いる際に有用である。すなわち、実行する記憶アクセス・コマンド毎に主（ユーザ）データを主領域Ａ，Ｂ，Ｃ，Ｄ，の１つに記憶し、この主データをそれぞれの冗長領域Ｅ，Ｆ，Ｇ，Ｈ内にミラリングする。簡単のために、各領域内の同じＬＢＡで始まるグリッドに仮想化記憶空間をマップする。更に、主領域Ａ内に記憶されたデータを冗長領域Ｅ内にミラリングする、など。
【００３０】
水平分割線２０２は各領域をデータ記憶媒体１２２の外半分と内半分とに分離する。これにしたがって、象限をゾーン１およびゾーン２で示すゾーンの対にする。すなわち、ゾーン１は主領域Ａ，Ｂ，Ｃ，Ｄの外半分と冗長領域Ｅ，Ｆ，Ｇ，Ｈの内半分とを含む。ゾーン２は主領域Ａ，Ｂ，Ｃ，Ｄの内半分と冗長領域Ｅ，Ｆ，Ｇ，Ｈの外半分とを含む。
【００３１】
図７は図６のグリッドを簡単化した線図の一部であって、主記憶領域Ａとその冗長記憶領域Ｅだけを示す。経路コントローラ１９２はゾーン１をアクティブ・ゾーンと指定したので、図に示すようにヘッド１３２はゾーン１内にあり、ゾーン１内の各トラックに向かって動くよう指示される。すなわち、領域Ａ内のヘッド１３２は各データ記憶媒体１２２の外半分の付近だけ動くよう指示され、領域Ｅ内のヘッド１３２はその内半分の付近だけ動くよう指示される。
【００３２】
認識されるように、アクティブ・ゾーンとイナクティブ・ゾーンとは好ましくは重ならないので、主記憶領域Ａのアクティブ・ゾーンは冗長記憶領域Ｅのアクティブ・ゾーン内に含まれるＬＢＡとは異なるＬＢＡを含む。しかし、好ましくは主記憶領域Ａのアクティブ・ゾーン内のＬＢＡと冗長記憶領域Ｅのアクティブ・ゾーン内のＬＢＡとを結合すると２つの領域のそれぞれのＬＢＡの全数を表すので、任意の読取りコマンドを２つの領域の一方または他方で実行することができる。
【００３３】
この配置では、コマンド・キュー・コントローラ１９８はゾーン１（アクティブ・ゾーン）向けのデータ記憶アクセス・コマンドだけを通す。ゾーン２（イナクティブ・ゾーン）向けの未処理のデータ記憶アクセス・コマンドはコマンド・キュー１９６内で未処理のままに保つ。イナクティブ・ゾーン向けの未処理のデータ記憶アクセス・コマンドの数が或るしきい値に達すると、図８に示すように、コマンド・キュー・コントローラ１９８はゾーンを反転させ、ゾーン２をアクティブに、そしてゾーン１をイナクティブにしてよい。
【００３４】
しかし、図７と図８のどちらの配置でも、優先順位の高いデータ検索アクセス・コマンドは、どのアクティブ領域がこのデータ検索アクセス・コマンドに関連するＬＢＡを含むかに従って、受けるとすぐどちらかの領域に渡してよい。各ヘッド１３２は記憶媒体１２２の半分だけ動くように制限されるので、データ検索アクセス・コマンドが渡される領域は必ずショート・ストロークになり、したがってデータ・アクセスのシーク効率は高くなる。例えば、図７の条件（ゾーン１がアクティブ）ではＬＢＡ２１０に関連するデータ検索アクセス・コマンドは領域Ａに渡されるが、図８の条件（ゾーン２がアクティブ）では同じデータ検索アクセス・コマンドは領域Ｅに渡される。どちらの場合もアクチュエータ１２４はショート・ストロークになり、シーク時間は短くなる。
【００３５】
図９は、本発明の実施の形態に従ってコマンド・キューを順序づける方法２２０の流れ図である。方法２２０はブロック２２２で始まり、経路コントローラ１９２はまずどのゾーンがアクティブか指定する。したがって、他のゾーンはデフォールトでイナクティブに指定する。
【００３６】
ブロック２２４で、現在コマンド・キュー１９６内に未処理の優先順位の高いデータ検索アクセス・コマンドがあるかどうか判定する。ブロック２２４の判定がイエスの場合は、ブロック２２６でコマンド・キュー・コントローラ１９８は要求されたデータがダーティ（ｄｉｒｔｙ）かどうか判定する。ブロック２２６の判定がイエスの場合は、ブロック２２８でキャッシュ・ヒットを行ってデータ検索アクセス・コマンドを実行し、制御はブロック２２４に戻る。ブロック２２６の判定がノーの場合は、ブロック２３０で経路コントローラ１９２は未処理の検索コマンドに関連するＬＢＡを含むアクティブ・ゾーンをどの領域が有するか判定する。ブロック２３２で、経路コントローラ１９２はこのアクティブ・ゾーンからデータを検索し、制御はブロック２２４に戻る。
【００３７】
ブロック２２４の判定がノーの場合は、ブロック２３４で経路コントローラ１９２はコマンド・キュー１９６が満杯（予め決められたしきい値より深い）かどうか判定する。ブロック２２４の判定がイエスの場合は、ブロック２３６で経路コントローラ１９２はアクティブ・ゾーンとイナクティブ・ゾーンとを反転させて、イナクティブ・ゾーン向けにこれまで蓄積された書込みコマンドをフラッシュする。
【００３８】
ブロック２３６で反転するステップを実行する前に、経路コントローラ１９２は多数の異なる方法のどれかで、アクティブ・ゾーンへの未処理の書込みコマンドを処理してよい。例えば或る実施の形態では、ゾーンを反転させる前に現在のアクティブ・ゾーンへの全て未処理の書込みコマンドを実行することによりコマンド・キューの深さをできる限り減らしてよい。または、反転応答を速くするために、ゾーンが再び反転するまで未処理の書込みコマンドをコマンド・キュー１９６内に保って、再びアクティブ・ゾーンに向けてよい。妥協案として、ブロック２３６で反転するステップを実行する前に、アクティブ・ゾーンへの予め決められた数の未処理の書込みコマンドを、またはすでに開始した書込みコマンドだけを、渡してよい。
【００３９】
次に制御はブロック２３８に進む。または、ブロック２３４の判定がノーの場合はすでにブロック２３８に進んでいるが、ここで未処理の書込みコマンドがダーティ・データに関連するかどうか判定する。ブロック２３８の判定がイエスの場合は、ブロック２４０で経路コントローラ１９２はキャッシュ・ヒットを行って未処理の書込みコマンドを実行し、制御はブロック２２４に戻る。ブロック２３８の判定がノーの場合は、ブロック２４２で経路コントローラ１９２は、１つの領域の中の現在アクティブなゾーンが含む、ＬＢＡに関連するコマンド・キュー１９６内の未処理の書込みコマンドを識別する。ブロック２４４で経路コントローラ１９２は、識別された未処理の書込みコマンドをアクティブ・ゾーンに渡す。
最後に、ブロック２４６で、コマンド・キュー１９６が空かどうか判定する。イエスの場合はこの方法は終わり、ノーの場合は制御はブロック２２４に戻る。
【００４０】
ＲＡＩＤ１構成で用いられる本発明の例示の実施の形態は、各領域内に１つのアクティブ・ゾーンと１つだけのイナクティブ・ゾーンとを用いる。しかし別の実施の形態では、この一般的な方式を拡張して、１つのアクティブ・ゾーンと複数のイナクティブ・ゾーンとを用いてアクティブ・ゾーン内の平均シーク距離を更に小さくしてよい。例えば図１０は、ユーザ・データ領域Ａ，Ｂ，Ｃ，Ｄと行パリティ領域Ｅおよび列パリティ領域Ｆとを持ち、ＲＡＩＤ１内で３つの構成で用いるのに適したデータ・グリッドを示す。認識されるように、この配置では任意の所定のときに各領域が１つのアクティブ・ゾーンと２つのイナクティブ・ゾーンとを有するように３つのゾーンを定義してよい。
【００４１】
上に説明した実施の形態では、コマンド・キュー・コントローラ１９８はＭＤＡ１０１内のコントローラ１０８内に含まれる。これらの説明は単なる例であって、本発明の範囲を制限するものではなく、またコマンド・キュー・コントローラの機能の一部または全てを、ホスト１０２内に、またはホストとＭＤＡ１０１との間の別の外部装置内に、またはデータ記憶装置１１４内に置くことも考えられる。
【００４２】
要約すると、本発明の好ましい実施の形態の特徴は、ＲＡＩＤ記憶構成と、コマンド・キュー内のコマンドを順序づけてＲＡＩＤを形成するデータ記憶装置をショート・ストロークするための手段とを有するデータ記憶システムである。この説明から当業者が理解するように、この説明およびクレームの目的では、「コマンドを順序づけるための手段」という用語の意味はＲＡＩＤを形成する複数の領域内でそれぞれアクティブ・ゾーンとイナクティブ・ゾーンの分割配置を必要とし、アクチュエータは現在指定されているアクティブ・ゾーン内だけをシークするように指示されて、アクセス・コマンドを実行するときにショート・ストロークする。また「コマンドを順序づけるための手段」は、結合したアクティブ・ゾーンが相補的であって、読取りコマンドでも書込みコマンドでも、任意の優先順位の高いアクセス・コマンドを領域の１つですぐ実行できることを必要とする。
【００４３】
理解されるように、これまでの説明で本発明の種々の実施の形態の多くの特徴および利点を、本発明の種々の実施の形態の構造および機能の詳細と共に述べたが、この詳細な記述は単なる例示であって、詳細に関しては、特に本発明の原理内の部分の構造および配置に関してクレームを表現する用語の広い一般的な意味で示す範囲で、変更を行ってよい。例えば、本発明の精神と範囲から逸れない限り、組み込まれた装置または用いられる特定の環境に従って特定の要素を変えてよい。
【００４４】
更に、ここに述べた例示の実施の形態はデータ記憶システムに関するものであるが、当業者が認識するように、クレームされた主題はこれに限定されるものではなく、本発明の精神と範囲から逸れない限り、種々の他の電子装置は本発明の実施の形態を用いてよい。
【図面の簡単な説明】
【００４５】
【図１】大容量記憶を用いるワイド・エリア・ネットワークとして特徴づけられるコンピュータ・ベースのシステムのトップ・レベルの機能ブロック図である。
【図２】図１に従って構築されたコンピュータ・ベースのシステムの関連する部分の組立分解等角図である。
【図３】本発明の実施の形態を実施するのに用いてよいデータ記憶装置の等角図である。
【図４】図３のデータ記憶装置の機能的ブロック図である。
【図５】図１のコントローラの選択された１つを示す機能的ブロック図である。
【図６】本発明の実施の形態に係るＲＡＩＤ１記憶システムを用いるデータ記憶グリッドの線図である。
【図７】図６のデータ記憶グリッドの一部の線図である。
【図８】図７と同様であるがアクティブ・ゾーンを反転させた後の線図である。
【図９】本発明の実施の形態に係るコマンド・キューを順序づける方法を実施するステップを示す流れ図である。
【図１０】本発明の実施の形態に係る３つの記憶システムでＲＡＩＤ１を用いるデータ記憶グリッドの線図である。
【符号の説明】
【００４６】
１０１  記憶領域
１０４  データ記憶システム
１２４  アクチュエータ
１９８  コマンド・キュー・コントローラ
【図１】
2008016025.tif 000003
【図２】
2008016025.tif 000004
【図３】
2008016025.tif 000005
【図４】
2008016025.tif 000006
【図５】
2008016025.tif 000007
【図６】
2008016025.tif 000008
【図７】
2008016025.tif 000009
【図８】
2008016025.tif 000010
【図９】
2008016025.tif 000011
【図１０】
2008016025.tif 000012
【外国語明細書】
2008016025000001.pdf